lpshold

lpshold — Génère un signal de contrôle constitué de segments tenus.

Description

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.

Syntaxe

ksig lpshold kfreq, ktrig, iphase, kvalue0, ktime0  [, kvalue1] [, ktime1] [, kvalue2] [, ktime2] [...]

Exécution

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.

Exemples

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>


Voir aussi

loopseg

Crédits

Auteur : Gabriel Maldonado

Nouveau dans la Version 4.13