GEN13

GEN13 — Mémorise un polynôme dont les coefficients sont dérivés des polynômes de Tchebychev de première espèce.

Description

Utilise les coefficients de Tchebychev pour générer des fonctions polynomiales stockées qui, dans le waveshaping, peuvent être utilisées pour séparer une sinus en harmoniques selon un spectre prédéfini.

Syntaxe

f # date taille 13 xint xamp h0 h1 h2 ...

Initialisation

taille -- nombre de points dans la table. Doit être une puissance de 2 ou une puissance-de-2 plus 1 (voir l'instruction f). La valeur normale est une puissance-de-2 plus 1.

xint -- fournit les valeurs gauches et droites [-xint, +xint] de l'intervalle des x sur lequel le polynôme doit être évalué. GEN13 et GEN14 appellent GEN03 pour évaluer leurs fonctions ; la valeur en p5 est ainsi étendue en une paire négative-positive p5, p6 avant l'appel de GEN03. La valeur normale est 1.

xamp -- facteur de pondération de l'amplitude de l'entrée sinusoïdale qui est attendue pour produire le spectre suivant.

h0, h1, h2, etc. -- importance relative des harmoniques 0 (CC), 1 (fondamental), 2 ... qui résulteront quand une sinus d'amplitude

xamp * int(taille/2)/xint

est traitée en waveshaping avec cette table de fonction. Ces valeurs décrivent ainsi un spectre de fréquences associé à un facteur particulier xamp du signal d'entrée.

[Note] Note

GEN13 est le générateur de fonction normalement employé dans le waveshaping standard. Il stocke un polynôme dont les coefficients dérivent des polynômes de Tchebychev de première espèce, de sorte qu'une sinus d'amplitude xamp pilotant le dispositif produise le spectre spécifié en sortie. Noter que l'évolution de ce spectre ne varie généralement pas linéairement en fonction de xamp. Cependant, il est à bande limitée (les seuls harmoniques qui apparaissent seront ceux qui auront été spécifiés au moment de la génération) ; et les harmoniques auront tendance à apparaître et à se développer en ordre ascendant (les harmoniques inférieurs dominant pour de faibles xamp, et la richesse spectrale augmentant pour des valeurs plus grandes de xamp). Une valeur hn négative implique une opposition de phase de cet harmonique ; le spectre d'amplitude complet demandé ne sera pas affecté par ce déphasage, bien que l'évolution de plusieurs de ses harmoniques puisse l'être. Le schéma +, +, -, -, +, +, ... pour h0, h1, h2, ... minimisera le problème de la normalisation pour de faibles valeurs de xamp (voir ci-dessus), mais ne fournira pas nécessairement le schéma d'évolution le plus lisse.

Exemples

Voici un exemple de la routine GEN13. Il utilise le fichier gen13.csd.

Exemple 1287. Exemple de la routine GEN13.

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

sr = 44100 
ksmps = 32 
nchnls = 2 
0dbfs  = 1 
;example by Russell Pinkston - Univ. of Texas  (but slightly modified)

gisine   ftgen 0, 0, 16384, 10, 1							;sine wave

instr   1

ihertz = cpspch(p4)
ipkamp = p5
iwsfn  = p6										;waveshaping function
inmfn  = p7										;normalization function
agate   linen  1, .01, p3, .1            					 	;overall amp envelope
kctrl   linen  .99, 2, p3, 2								;waveshaping index control
aindex  poscil kctrl/2, ihertz, gisine							;sine wave to be distorted
asignal tablei .5+aindex, iwsfn, 1							;waveshaping
knormal tablei kctrl, inmfn, 1								;amplitude normalization
asig    =      asignal*knormal*ipkamp*agate
        outs   asig, asig
           
endin
</CsInstruments>
<CsScore>
; This proves the statement in Dodge (p. 147) that Chebyshev polynomials
; of order K have "only the kth harmonic." This is only true when the 
; waveshaping index is at the maximum - i.e., when the entire transfer
; function is being accessed. RP.
;--------------------------------------------------------------------------------------------------------------------------------------------
; quasi sawtooth transfer function: 
;		 h0   h1   h2   h3   h4   h5   h6    h7   h8   h9   h10   h11 	h12   h13    h14    h15    h16    h17    h18    h19    h20
f1 0 513 13 1 1  0   100  -50  -33   25   20 -16.7 -14.2 12.5 11.1 -10  -9.09  8.333  7.69  -7.14  -6.67  6.25	  5.88	-5.55  -5.26    5		
f2 0 257 4 1 1	 ; normalizing function with midpoint bipolar offset

;	st	dur	pch	amp	wsfn	nmfn
i1      0       4      6.00    .7 	 1	 2
i1      4       .      7.00    .
i1      8       .      8.00    .
;--------------------------------------------------------------------------------------------------------------------------------------------	
; quasi square wave transfer function: 
;		 h0   h1   h2   h3   h4   h5   h6    h7   h8   h9   h10   h11 	h12   h13    h14    h15    h16    h17    h18    h19
f3 0 513 13 1 1  0   100   0   -33   0    20   0   -14.2  0   11.1   0  -9.09	 0   7.69     0    -6.67    0    5.88     0    -5.26
f4 0 257 4 3 1	 ; normalizing function with midpoint bipolar offset

;	st	dur	pch	amp	wsfn	nmfn
i1      16       4     6.00     .7	 3	 4
i1      20       .     7.00     .
i1      24       .     8.00     .
;--------------------------------------------------------------------------------------------------------------------------------------------	
; quasi triangle wave transfer function: 
;		 h0   h1   h2   h3   h4   h5   h6    h7   h8   h9   h10   h11 	h12   h13    h14    h15    h16    h17    h18    h19
f5 0 513 13 1 1  0   100   0  -11.11 0    4    0   -2.04  0   1.23  0   -.826	0    .59      0    -.444    0    .346     0   -.277	
f6 0 257 4 5 1	 ; normalizing function with midpoint bipolar offset
;	st	dur	pch	amp	wsfn	nmfn
i1      32       4     6.00     .7	 5	 6
i1      36       .     7.00     .
i1      40       .     8.00     .
;--------------------------------------------------------------------------------------------------------------------------------------------
; transfer function1:  h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16
f7 0 513 13 1 1        0  1 -.8 0 .6  0  0  0 .4  0  0   0   0   .1 -.2 -.3  .5
f8 0 257 4 7 1	       ; normalizing function with midpoint bipolar offset
;	st	dur	pch	amp	wsfn	nmfn
i1      48       4     5.00     .7	 7	 8
i1      52       .     6.00     .
i1      56       .     7.00     .
;--------------------------------------------------------------------------------------------------------------------------------------------
;=========================================================================;
; This demonstrates the use of high partials, sometimes without a         ;
; fundamental, to get quasi-inharmonic spectra from waveshaping.          ;
;=========================================================================;
; transfer function2:  h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16
f9 0 513 13 1 1        0  0  0 -.1  0 .3  0 -.5 0 .7  0 -.9  0   1   0  -1   0
f10 0 257 4 9 1	       ; normalizing function with midpoint bipolar offset
;	st	dur	pch	amp	wsfn	nmfn
i1      64       4       5.00   .7	 9	10
i1      68       .       6.00    .
i1      72       .       7.00    .
;--------------------------------------------------------------------------------------------------------------------------------------------
; transfer function3: h0   h1   h2   h3   h4   h5   h6    h7   h8   h9   h10   h11 	h12   h13    h14    h15    h16    h17    h18    h19    h17   h18   h19   h20
f11 0 513 13 1 1      0    0    0    0    0    0    0     -1   0    1     0     0       -.1    0     .1      0     -.2    .3      0     -.7     0    .2     0    -.1                        
f12 0 257 4 11 1      ; normalizing function with midpoint bipolar offset

;	st	dur	pch	amp	wsfn	nmfn
i1      80       4     5.00     .7	 11	12
i1      84       .     5.06     .
i1      88       .     6.00     .
;--------------------------------------------------------------------------------------------------------------------------------------------
;=========================================================================;
; split a sinusoid into 3 odd-harmonic partials of relative strength 5:3:1
;=========================================================================;
;--------------------------------------------------------------------------------------------------------------------------------------------
; transfer function4: h0   h1   h2   h3   h4   h5
f13 0 513 13 1 1      0    5    0    3    0    1	
f14 0 257 4 13 1      ; normalizing function with midpoint bipolar offset

;	st	dur	pch	amp	wsfn	nmfn
i1      96      4     5.00     .7	 13	14
i1      100     .     5.06     .
i1      104     .     6.00     .
e
</CsScore>
</CsoundSynthesizer>


Voici les diagrammes des formes d'onde des routines GEN13 utilisées dans l'exemple :

f1 0 513 13 1 1 0 100 -50 -33 25 20 -16.7 -14.2 12.5 11.1 -10 -9.09 8.333 7.69 -7.14 -6.67 6.25 5.88 -5.55 -5.26 5 - fonction de transfert quasi dent de scie

f1 0 513 13 1 1 0 100 -50 -33 25 20 -16.7 -14.2 12.5 11.1 -10 -9.09 8.333 7.69 -7.14 -6.67 6.25 5.88 -5.55 -5.26 5 - fonction de transfert quasi dent de scie

f3 0 513 13 1 1 0 100 0 -33 0 20 0 -14.2 0 11.1 0 -9.09 0 7.69 0 -6.67 0 5.88 0 -5.26 - fonction de transfert quasi carrée

f3 0 513 13 1 1 0 100 0 -33 0 20 0 -14.2 0 11.1 0 -9.09 0 7.69 0 -6.67 0 5.88 0 -5.26 - fonction de transfert quasi carrée

f5 0 513 13 1 1 0 100 0 -11.11 0 4 0 -2.04 0 1.23 0 -.826 0 .59 0 -.444 0 .346 0 -.277 - fonction de transfert quasi triangulaire

f5 0 513 13 1 1 0 100 0 -11.11 0 4 0 -2.04 0 1.23 0 -.826 0 .59 0 -.444 0 .346 0 -.277 - fonction de transfert quasi triangulaire

f7 0 513 13 1 1 0 1 -.8 0 .6 0 0 0 .4 0 0 0 0 .1 -.2 -.3 .5 - fonction de transfert 1

f7 0 513 13 1 1 0 1 -.8 0 .6 0 0 0 .4 0 0 0 0 .1 -.2 -.3 .5 - fonction de transfert 1

f9 0 513 13 1 1 0 0 0 -.1 0 .3 0 -.5 0 .7 0 -.9 0 1 0 -1 0 - fonction de transfert 2

f9 0 513 13 1 1 0 0 0 -.1 0 .3 0 -.5 0 .7 0 -.9 0 1 0 -1 0 - fonction de transfert 2

f11 0 513 13 1 1 0 0 0 0 0 0 0 -1 0 1 0 0 -.1 0 .1 0 -.2 .3 0 -.7 0 .2 0 -.1 - fonction de transfert 3

f11 0 513 13 1 1 0 0 0 0 0 0 0 -1 0 1 0 0 -.1 0 .1 0 -.2 .3 0 -.7 0 .2 0 -.1 - fonction de transfert 3

f13 0 513 13 1 1 0 5 0 3 0 1 - divise une sinusoïde en trois partiels harmoniques impaires d'importance relative 5:3:1

f13 0 513 13 1 1 0 5 0 3 0 1 - divise une sinusoïde en trois partiels harmoniques impaires d'importance relative 5:3:1

Voir aussi

GEN03, GEN14 et GEN15.

Information au sujet des polynômes de Tchebychev sur Wikipedia : http://fr.wikipedia.org/wiki/Polynôme_de_Tchebychev