flooper2

flooper2 — Lecture en boucle basée sur une table de fonction avec fondu enchainé.

Description

Cet opcode implémente une lecture de boucle avec fondu enchainé, avec des paramètres variables, trois modes de boucle, et une utilisation facultative d'une table pour la forme du fondu enchainé. Il accepte comme source audio des tables dont la longueur n'est pas une puissance de deux, telles que celles de GEN01 à allocation différée, avec un ou deux canaux.

Syntaxe

asig1[,asig2] flooper2 kamp, kpitch, kloopstart, kloopend, kcrossfade, ifn \
      [, istart, imode, ifenv, iskip]

Initialisation

ifn -- numéro de la table de fonction de la source audio, généralement créée au moyen de GEN01

istart -- début de la lecture en secondes

imode -- modes de boucle : 0 à l'endroit, 1 à l'envers, 2 à l'endroit et à l'envers. (0 par défaut)

ifenv -- s'il est non nul, numéro de la table de la forme de l'enveloppe du fondu enchainé. La valeur par défaut, 0, donne un fondu enchainé linéaire.

iskip -- s'il vaut 1, l'initialisation de l'opcode est ignorée, pour les notes liées, l'exécution continuant depuis la position dans la boucle où la note précédente s'est terminée. Avec la valeur par défaut, 0, l'initialisation a lieu.

Exécution

asig1[,asig2] -- signal de sortie (mono ou stéréo).

kamp -- contrôle de l'amplitude

kpitch -- contrôle de la hauteur (rapport de transposition) ; les valeurs négatives sont interdites.

kloopstart -- début de la boucle (en secondes). Noter que bien qu'étant de taux-k, les paramètres de boucle comme celui-ci ne sont mis à jour qu'une fois par itération de la boucle.

kloopend -- fin de la boucle (en secondes), mis à jour une seule fois par itération de la boucle.

kcrossfade -- longueur du fondu enchainé (en secondes), mis à jour une seule fois par itération de la boucle et limité par la longueur de la boucle.

Avec le mode 1 de imode la boucle ne se fait qu'à l'envers depuis la fin jusqu'au début.

Exemples

Exemple 322. 

aout flooper2 16000, 1, 1, 5, 0.05, 1  ; loop starts at 1 sec, for 4 secs, 0.05 crossfade
     out      aout


L'exemple ci-dessus montre l'opération de base de flooper2. La hauteur peut être contrôlée au taux-k ainsi que l'amplitude et les paramètres de boucle. L'exemple suppose que la table 1 contient au moins 5.05 secondes de données audio (boucle durant 4 secondes, commençant 1 seconde après le début de la table, avec un fondu enchainé de 0.05 secondes après la fin de la boucle). La boucle est en mode 0 (boucle normale à l'endroit).

Voici un autre exemple de l'opcode flooper2. Il utilise le fichier flooper2.csd et fox.wav.

Exemple 323. 

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

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

instr 1
; looping back and forth,  0.05 crossfade 
kst  line     .2, p3, 2 ;vary loopstartpoint
aout flooper2 .8, 1, 0, kst, 0.05, 1, 0, 2  
     outs     aout, aout

endin
</CsInstruments>
<CsScore>
; Its table size is deferred,
; and format taken from the soundfile header
f 1 0 0 1 "fox.wav" 0 0 0

i 1 0 12
e
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : Victor Lazzarini
Juillet 2006

Nouveau greffon dans la version 5

Juillet 2006.