lpshold — Génère un signal de contrôle constitué de segments tenus.
Génère un signal de contrôle constitué de segments tenus délimités par deux ou plus points spécifiés. L'enveloppe entière est parcourue en boucle au taux kfreq. Chaque paramètre peut varier au taux-k.
ksig lpshold kfreq, ktrig, iphase, ktime0, kvalue0 [, ktime1] [, kvalue1] [, ktime2] [, kvalue2] [...]
ksig -- Signal de sortie.
kfreq -- Taux de répétition en Hz ou en fraction de Hz.
ktrig -- S'il est non nul, redéclanche l'enveloppe depuis le début (voir l'opcode trigger), avant que le cycle de l'enveloppe ne soit complet.
iphase -- Une valeur comprise entre 0 et 1 pour indiquer où commence la boucle. Zéro, la valeur la plus usuelle, indique le début du signal.
ktime0...ktimeN -- Dates des points ; exprimées en fraction de cycle.
kvalue0...kvalueN -- Valeurs des points.
lpshold est semblable à loopseg, mais il ne peut générer que des segments horizontaux, car il maintient une valeur constante pendant chaque intervalle de temps placé entre ktimeN et ktimeN+1. Il est utile, entre autres, pour un contrôle mélodique comme celui des vieux séquenceurs analogiques.
Voici un exemple de l'opcode lpshold. Il utilise le fichier lpshold.csd.
Exemple 446. Exemple de l'opcode lpshold.
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 lpshold.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 kfrq line 15, p3, .1 klp lpshold kfrq, 0, 0, p3*0.25, 220, p3*0.5, 440, p3*0.25, 0 asig oscili .6, 440+klp, 1 outs asig, asig endin </CsInstruments> <CsScore> ; sine wave. f 1 0 16384 10 1 i 1 0 10 e </CsScore> </CsoundSynthesizer>