envlpx

envlpx — Applique une enveloppe constituée de 3 segments.

Description

envlpx -- applique une enveloppe constituée de 3 segments :

  1. une attaque dont la forme est donnée par une fonction

  2. un pseudo entretien modifié exponentiellement

  3. une chute exponentielle

Syntaxe

ares envlpx xamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod]
kres envlpx kamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod]

Initialisation

irise -- durée de l'attaque en secondes. Une valeur nulle ou négative signifie pas d'attaque.

idur -- durée globale en seconde. Avec une valeur nulle ou négative, l'initialisation sera ignorée.

idec -- durée de la chute en secondes. Zéro signifie pas de chute. Si idec > idur la chute sera tronquée.

ifn -- numéro de la table de fonction avec point de garde dans laquelle la forme de l'attaque est stockée.

iatss -- le rapport entre la valeur finale de la période de pseudo entretien et sa valeur initiale (c'est-à-dire l'atténuation entre la dernière valeur de l'attaque et le début de la chute). Un rapport supérieur à 1 provoque une montée exponentielle tandis qu'un rapport inférieur à 1 crée une descente exponentielle. Un rapport égal à 1 maintient un véritable entretien de la note sur la dernière valeur de l'attaque. Il faut noter que cette atténuation n'évolue pas à vitesse constante (comme dans le cas du piano), mais qu'elle dépend de la durée de la note. Cependant, si iatss est négatif (ou si l'entretien < 4 périodes-k) une vitesse d'atténuation de abs(iatss) par seconde sera utilisée. 0 est interdit.

iatdec -- le rapport entre la dernière valeur de la chute et sa première valeur (la fin du segment d'entretien). Cette valeur doit être positive et elle est normalement de l'ordre de 0,01. Une valeur trop longue ou excessivement courte peut produire une coupure audible. Les valeurs nulles ou négatives sont interdites.

ixmod (facultatif, entre +- 0,9 environ) -- facteur de modification de courbe exponentielle, qui influe sur la raideur de la trajectoire exponentielle pendant l'entretien. Les valeurs négatives provoqueront une montée ou une descente accélérée (par exemple subito piano). Les valeurs positives provoqueront une montée ou une descente ralentie. La valeur par défaut est zéro (exponentielle non modifiée).

Exécution

kamp, xamp -- amplitude du signal d'entrée.

Les modifications de l'attaque sont appliquées pendant les premières irise secondes, et celles de la chute à partir de idur - idec. Si ces périodes sont séparées dans le temps il y aura un entretien au cours duquel amp sera modifié selon le schéma exponentiel décrit. Si la durée globale idur est dépassée pendant l'exécution, la chute continuera dans la même direction, en tendant asymtotiquement vers zéro.

Exemples

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

Exemple 266. Exemple de l'opcode envlpx.

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 realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o envlpx.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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


instr 1

irise = 0.2
idec  = 0.5
idur  = p3 - idec

ifn = 1
iatss = p5
iatdec = 0.01

kenv envlpx .6, irise, idur, idec, ifn, iatss, iatdec
kcps = cpspch(p4)
asig vco2 kenv, kcps
;apply envlpx to the filter cut-off frequency
asig moogvcf asig, kcps + (kenv * 8 * kcps) , .5 ;the higher the pitch, the higher the filter cut-off frequency
     outs asig, asig

endin
</CsInstruments>
<CsScore>
; a linear rising envelope
f 1 0 129 -7 0 128 1

i 1 0 2 7.00 .1
i 1 + 2 7.02  1
i 1 + 2 7.03  2
i 1 + 2 7.05  3
e
</CsScore>
</CsoundSynthesizer>


Voir aussi

envlpxr, linen, linenr

Crédits

Merci à Luis Jure pour avoir signalé une erreur avec iatss.