"exp" — Génère une table dont les valeurs proviennent de la fonction exp.
size -- nombre de points dans la table. Doit être une puissance de 2 ou une puissance-de-2 plus 1 (voir l'instruction f).
start, end -- la première et la dernière valeur à mémoriser. Le GEN dessine une courbe allant de start à end : exp(start) ... exp(end). Les points mis en mémoire sont répartis uniformément entre ces deux valeurs sur la longueur de la table.
rescale -- s'il est différent de zéro, la table n'est pas normalisée.
Voici un exemple simple de la routine GENexp. Il utilise le fichier genexp.csd.
Exemple 1316. Exemple de la routine GENexp.
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 genexp.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 aswp linseg 0.01, p3*.5, .49, p3*.5, 0.01 ;index sweep function aindex poscil aswp, 110, 1 ;sound to waveshape atable tablei aindex, p4, 1, .5 ;waveshape index aenv linen 0.8, .01, p3, .02 ;amplitude envelope asig = (atable*aenv)*p5 ;impose envelope and scale asig dcblock2 asig ;get rid of DC outs asig, asig endin </CsInstruments> <CsScore> f 1 0 8192 10 1 ;sine wave f 2 0 8192 "exp" 0 15 0 f 3 0 8192 "exp" 0 3 0 i1 0 3 2 2 i1 + 3 3 3 e </CsScore> </CsoundSynthesizer>
Voici les diagrammes des formes d'onde des routines GENexp
utilisées dans l'exemple :
Plus d'information sur cette routine : http://www.csoundjournal.com/issue11/distortionSynthesis, écrit par Victor Lazzarini