"tanh" — Génère une table avec les valeurs de la fonction tanh.
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 qui va de start à end : tanh(start) ... tanh(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 GENtanh. Il utilise le fichier gentanh.csd.
Exemple 1315. Exemple de la routine GENtanh.
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 gentanh.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 "tanh" -100 100 0 ;symmetrical transfer fuction f 3 0 8192 "tanh" -10 10 0 ;symmetrical f 4 0 8192 "tanh" 0 10 0 ;not symmetrical i1 0 3 2 1 i1 + 3 3 1 i1 + 3 4 2 e </CsScore> </CsoundSynthesizer>
Voici les diagrammes des formes d'onde des routines GENtanh
utilisées dans l'exemple :
Plus d'information sur cette routine : http://www.csoundjournal.com/issue11/distortionSynthesis, écrit par Victor Lazzarini