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, kvalue0, ktime0 [, kvalue1] [, ktime1] [, kvalue2] [, ktime2] [...]
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.
kphase -- point de la séquence lue, exprimé comme une fraction d'un cycle (entre 0 et 1).
kvalue0...kvalueN -- Valeurs des points.
ktime0...ktimeN -- Durées entre les points ; exprimées en fraction d'une période (voir ci-dessous). La dernière durée indique une ligne entre la valeur finale et la première valeur.
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 558. 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 init p4 ; frequency of the loop ifrac = p5 ; fraction of frequency at which to force retrigger ipan = p6 ; pan position ktrig metro kfrq * ifrac ; trigger to force restart the loop iphs = 0 ; initial phase of the loop ; a loop of midi note numbers: note duration etc... knote lpshold kfrq, ktrig, iphs, 61, 0.0625, 60, 0.9375, 61, 1, 58, 1, \ 63, 2, 65, 3 aenv linseg 0,0.01,1,p3-0.11,1,0.1,0 ; amplitude envelope krnd rspline -0.05,0.05,0.5,1 ; random detune asig gbuzz 0.2*aenv, cpsmidinn(knote+krnd), 30, 1, 0.5, 1 outs asig*ipan, asig*(1-ipan) endin </CsInstruments> <CsScore> ; cosine wave. f 1 0 16384 11 1 ; 3 layers of the loop are played, each at a different speed, ; - with different retriggering rate, and pan location. i 1 0 60 0.5 [8/10] 0.5 i 1 0 60 0.375 [8/11] 0.1 i 1 0 60 0.25 [8/13] 0.9 e </CsScore> </CsoundSynthesizer>