GEN27 — Construit des fonctions à partir de morceaux de lignes droites avec des points charnière.
Construit des fonctions à partir de morceaux de lignes droites avec des points charnière.
taille -- nombre de points dans la table. Doit être une puissance de 2 ou une puissance-de-2 plus 1. (voir l'instruction f).
x1, x2, x3, etc. -- positions dans la table auxquelles la valeur y suivante devra être atteinte. Doivent être en ordre croissant. Si la dernière valeur est inférieure à la taille, les positions restantes seront mises à zéro. Ne doivent pas être négatives mais peuvent être nulles.
y1, y2, y3, etc. -- Valeurs charnière atteintes à la position spécifiée par la valeur x précédente.
Note | |
---|---|
Si p4 est positif, les fonctions sont post-normalisées (reproportionnées à une valeur absolue maximale de 1 après génération). Un p4 négatif empêchera cette opération. |
Voici un exemple de la routine GEN27. Il utilise le fichier gen27.csd.
Exemple 1299. Exemple de la routine GEN27.
Voir les sections Audio en Temps Réel et Options de 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 gen27.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 gisin ftgen 1, 0, 32768, 10, 1 gienv ftgen 2, 0, 1025, 27, 0, 0,200, 1, 400, -1, 513, 0 instr 1 kcps init 3/p3 ;play 3x over duration of note kndx phasor kcps ixmode = 1 ;normalize to 0-1 kval table kndx, gienv, ixmode kval = kval*100 ;scale 0-100 asig poscil 1, 220+kval, 1 ;add to 220 Hz outs asig, asig endin </CsInstruments> <CsScore> i 1 0 4 e </CsScore> </CsoundSynthesizer>
Voici le diagramme de la forme d'onde de la routine GEN27 utilisée
dans l'exemple :