xadsr
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## xadsr

xadsr — Calcule l'enveloppe ADSR classique.

## Description

Calcule l'enveloppe ADSR classique.

## Syntaxe

    ares xadsr iatt, idec, islev, irel [, idel]

    kres xadsr iatt, idec, islev, irel [, idel]

## Initialisation

iatt -- durée de l'attaque (attack)

idec -- durée de la première chute (decay)

islev -- niveau d'entretien (sustain)

irel -- durée de la chute (release)

idel -- délai de niveau zéro avant le démarrage de l'enveloppe

## Exécution

L'enveloppe générée évolue dans l'intervalle de 0 à 1 et peut nécessiter un changement d'échelle par la suite, en fonction de l'amplitude demandée. Si l'on utilise 0dbfs = 1, il sera probablement nécessaire de diminuer l'amplitude de l'enveloppe car plusieurs notes simultanées peuvent provoquer un écrêtage. Si l'on utilise pas 0dbfs, une mise à l'échelle à une grande amplitude (par exemple 32000) sera peut-être nécessaire.

Voici une description de l'enveloppe :

Image d'une enveloppe ADSR.

La longueur de la période d'entretien est calculée à partir de la longueur de la note. C'est pourquoi xadsr n'est pas adapté au traitement des évènements MIDI, pour lesquels il faut plutôt utiliser mxadsr. L'opcode xadsr est identique à adsr sauf qu'il utilise des segments exponentiels plutôt que linéaires.

## Exemples

Voici un exemple de l'opcode xadsr. Il utilise le fichier xadsr.csd.

Exemple 1090. Exemple de l'opcode xadsr.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac     ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if RT audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o xadsr.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs = 1

    instr 1

    iatt  = p5
    idec  = p6
    islev = p7
    irel  = p8

    kenv	xadsr iatt, idec, islev, irel
    kcps =  cpspch(p4) 	  ;frequency

    asig	vco2  kenv * 0.8, kcps
    	outs  asig, asig

    endin

    </CsInstruments>
    <CsScore>

    i 1  0  1  7.00  .0001  1  .01  .001 ; short attack
    i 1  2  1  7.02  1  .5  .01  .001    ; long attack
    i 1  4  2  6.09  .0001  1 .1  .7     ; long release

    e
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

adsr, madsr, mxadsr

## Crédits

Auteur : John ffitch xadsr est nouveau dans la version 3.51 de Csound.

Précédent | Niveau supérieur | Suivant
wterrain | Sommaire | xin