sndloop

sndloop — Une boucle de son avec contrôle de la hauteur.

Description

Cet opcode enregistre l'entrée audio et la restitue dans une boucle avec une durée définie par l'utilisateur et un fondu enchainé. On peut également contrôler la hauteur de la boucle et sa lecture à l'envers.

Syntaxe

asig, krec sndloop ain, kpitch, ktrig, idur, ifad

Initialisation

idur -- durée de la boucle en secondes.

ifad -- durée du fondu enchainé en secondes.

Exécution

asig -- signal de sortie.

krec -- signal d'activation de l'enregistrement, 1 lors de l'enregistrement, 0 sinon.

kpitch -- contrôle de la hauteur (rapport de transposition) ; avec des valeurs négatives, la boucle est jouée à l'envers.

ktrig -- signal de déclenchement : lorsqu'il vaut 0, le traitement est suspendu. Lorsqu'il change (ktrig >= 1), l'opcode commence à enregistrer jusqu'à ce que la mémoire de la boucle soit pleine. Puis il restitue ensuite le son en boucle jusqu'au prochain changement (ktrig = 0). Un autre enregistrement peut recommencer lorsque ktrig >= 1.

Exemples

Voici un exemple de l'opcode sndloop. Il utilise le fichier sndloop.csd.

Exemple 798. Exemple de l'opcode sndloop.

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 sndloop.wav -W  ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100 
ksmps = 32 
0dbfs  = 1 
nchnls = 2

instr 1

itrig  = p4
asig   diskin2 "beats.wav", 1, 0, 1		;get the signal in, loop it
ktrig  line 0, itrig, 1				;when to trigger signal = p4
kpitch line 1.2, p3, .5				;vary pitch of recorded signal
aout,krec sndloop asig, kpitch, ktrig, .4, 0.05	;rec starts at p4 sec, for .4 secs and 0.05 crossfade
       printk2 krec               	  	; prints the recording signal
       outs    aout, aout

endin

</CsInstruments>
<CsScore>

i1 0 5 .5	;trigger in seconds (=p4)
i1 + 5 .8
i1 + 10 1.2

e
</CsScore>
</CsoundSynthesizer>


L'exemple ci-dessus montre l'opération de base de sndloop. La hauteur peut-être contrôlée au taux-k, l'enregistrement commence dès que le signal de déclenchement est >= 1. L'enregistrement peut recommencer en fixant la valeur du signal de déclenchement à 0 puis de nouveau à 1.

Crédits

Auteur : Victor Lazzarini
Avril 2005

Nouveau dans la version 5.00