GEN14

GEN14 — Mémorise un polynôme dont les coefficients sont dérivés des polynômes de Tchebychev de seconde 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 14 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.

  • GEN14 stocke un polynôme dont les coefficients dérivent de polynômes de Tchebychev de seconde espèce.

Exemples

Voici un exemple de la routine GEN14. Il utilise le fichier gen14.csd.

Exemple 1074. Exemple de la routine GEN14.

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

sr = 44100 
ksmps = 32 
nchnls = 2 
0dbfs  = 1 
;after the example from The Csound Book, page 83

instr 1	;compare results from GEN13 & GEN14
		
iwshpfn	= p6	
inrmfn	= p7	
aswp	linseg	0.01, p3*.5, .49, p3*.5, 0.01		;index sweep function
aindex	poscil	aswp, p5, 2				;sound to waveshape
atable	tablei	aindex, iwshpfn, 1, .5			;waveshape index
anrm	tablei	aswp*2, inrmfn, 1			;normalization 
aenv	linen	p4, .01, p3, .02			;amplitude envelope
asig	= (atable*anrm)*aenv				;normalize and impose envelope
asig    dcblock2 asig					;get rid of DC
	outs    asig, asig

endin		
</CsInstruments>
<CsScore>

f 2 0 8192 10 1			;sine wave

f 28  0   4097 13  1 1 1 0 .8 0 .5 0 .2		;waveshaping function: GEN13 - odd harmonics
f 280 0   2049 4   28 1				;normalization function for f28
f 29  0   4097 14  1 1 1 0 .8 0 .5 0 .2		;waveshaping function: GEN14 - same harmonics
f 290 0   2049 4   29 1				;normalization function for f29


f 30  0   4097 13  1 1 0 1 0 .6 0 .4 0 .1	;waveshaping function: GEN13 - even harmonics
f 301 0   2049 4   30 1				;normalization function for f30
f 31  0   4097 14  1 1 0 1 0 .6 0 .4 0 .1	;waveshaping function: GEN13 - even harmonics
f 310 0   2049 4   31 1				;normalization function for 31
s
i1 0   3   .7   440 28  280 
i1 4   .   .7    .  29  290
i1 8   .   .7    .  30  301
i1 12  3   .7    .  31  310

e
</CsScore>
</CsoundSynthesizer>


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

f28 0 4097 13 1 1 1 0 .8 0 .5 0 .2 - fonction de distorsion non linéaire : GEN13, harmoniques impairs

f28 0 4097 13 1 1 1 0 .8 0 .5 0 .2 - fonction de distorsion non linéaire : GEN13, harmoniques impairs

f29 0 4097 14 1 1 1 0 .8 0 .5 0 .2 - fonction de distorsion non linéaire : GEN14, les mêmes harmoniques impairs

f29 0 4097 14 1 1 1 0 .8 0 .5 0 .2 - fonction de distorsion non linéaire : GEN14, les mêmes harmoniques impairs

f30 0 4097 13 1 1 0 1 0 .6 0 .4 0 .1 - fonction de distorsion non linéaire : GEN13, harmoniques pairs

f30 0 4097 13 1 1 0 1 0 .6 0 .4 0 .1 - fonction de distorsion non linéaire : GEN13, harmoniques pairs

f31 0 4097 14 1 1 0 1 0 .6 0 .4 0 .1 - fonction de distorsion non linéaire : GEN14, les mêmes harmoniques pairs

f31 0 4097 14 1 1 0 1 0 .6 0 .4 0 .1 - fonction de distorsion non linéaire : GEN14, les mêmes harmoniques pairs

Voir aussi

GEN03, GEN13 et GEN15.

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