gtadsr — Attaque-chute-entretien linéaire à seuil avec un relachement exponentiel.
Cet opcode peut fonctionner comme générateur ou comme processeur de signal. Il est contrôlé par un signal seuil de taux-k (0 ou > 0) qui active ou arrête la phase attaque-chute-entretien. Avec un seuil > 0 (haut), l'enveloppe parcourt l'attaque et la chute et reste au niveau d'entretien. Chaque fois que le seuil vaut 0 (bas), l'enveloppe entame sa phase de relachement, diminuant de façon exponentielle jusqu'à 0. Les durées d'attaque et de chute sont fixes tant que le seuil est > 0, mais elles peuvent changer si le seuil vaut zéro.
ares gtadsr asig, katt, kdec, ksus,
krel, kgate
xres gtadsr kamp, katt, kdec, ksus,
krel, kgate
x/ares -- signal de sortie (taux-k ou a)
asig -- signal d'entrée (si l'enveloppe se comporte comme un processeur d'amplitude)
kamp -- amplitude maximale (si l'enveloppe se comporte comme un générateur de signal)
katt -- durée de l'attaque
kdec -- durée de la chute
ksus -- niveau de la phase d'entretien (dans l'intervalle 0 - 1)
krel -- durée de la phase de relachement
kgate -- signal de seuil (0 = bas, > 0 haut).
La longueur de l'entretien est calculée à partie de la longueur de la note. Cela signifie que gtadsr ne convient pas pour des évènements MIDI.
Voici un exemple de l'opcode gtadsr. Il utilise le fichier gtadsr.csd.
Exemple 406. Exemple de l'opcode gtadsr.
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> -odac </CsOptions> <CsInstruments> 0dbfs = 1 instr 1 gkamp = p4 gkfr = p5 gkgate = 1 gkatt = p6 gkdec = p7 gksus = p8 gkrel = p9 endin instr 2 a1 oscili gkamp,gkfr a2 gtadsr a1,gkatt,gkdec,gksus,gkrel,gkgate out a2 gkgate = 0; endin </CsInstruments> <CsScore> i1 0 1 1 440 0.1 0.1 0.5 0.1 i1 1.2 1 1 660 0.01 0.1 0.2 0.3 i1 2.5 1 1 550 0.01 0.1 0.7 1 i2 0 5 </CsScore> </CsoundSynthesizer>