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, 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.
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 283. 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 ; Audio out Audio in No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o lpshold.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1 instr 1 kfreq line 1, p3, 20 klp lpshold kfreq, 0, 0, 0, p3*0.25, 20000, p3*0.75, 0 a1 oscil klp, 440, 1 out a1 endin </CsInstruments> <CsScore> ; Table #1, a sine wave. f 1 0 16384 10 1 ; Play Instrument #1 for five seconds. i 1 0 5 e </CsScore> </CsoundSynthesizer>