GEN09

GEN09 — Génère des formes d'ondes complexes obtenues par une somme pondérée de sinus.

Description

Ce sous-programmme génère des formes d'ondes complexes obtenues par une somme pondérée de sinus. La spécification de chaque partiel nécessite 3 p-champs avec GEN09.

Syntaxe

f # date taille 9 pna ampa phsa pnb ampb phsb ...

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).

pna, pnb, etc. -- numéro de partiel (par rapport à un fondamental qui occuperait taille positions par période) des sinus a, sinus b, etc. Doit être positif, mais pas nécessairement un nombre entier, c'est-à-dire que des partiels non harmoniques sont autorisés. Les partiels peuvent être dans n'importe quel ordre.

ampa, ampb, etc. -- amplitude des partiels pna, pnb, etc. Ce sont des amplitudes relatives, car la forme d'onde complexe peut être reproportionnée à posteriori. On peut utiliser des valeurs négatives pour signifier une opposition de phase (180 degrés).

phsa, phsb, etc. -- phase initiale des partiels pna, pnb, etc., exprimée en degrés (0-360).

[Note] Note

  • Ces sous-programmes génèrent des fonctions stockées qui sont la somme de sinus de différentes fréquences. Les deux restrictions majeures de GEN10 qui sont des partiels harmoniques et en phase ne s'appliquent pas à GEN09 ou à GEN19.

  • Dans chaque cas, l'onde complexe, une fois calculée, est reproportionnée à l'unité si p4 est positif. Un p4 négatif empêchera cette opération.

Exemples

Voici un exemple de la routine GEN09. Il utilise le fichier gen09.csd.

Exemple 1282. Exemple de la routine GEN09.

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

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

gi1 ftgen 1,0,2^10,9,  1,3,0,   3,1,0, 9,0.333,180		;an approximation of a square wave
gi2 ftgen 2,0,2^10,9,  1,3,180, 3,1,0, 9,0.333,0		;same values as gi1, except some phase values
gi3 ftgen 3,0,2^10,9,  1, .4, 0,   2.2, .5, 0,   3.8, 1, 0	;inharmonic, but does not sound well --> wave does not end at same point as where it begins --> artefacts
gi4 ftgen 4,0,2^10,9,  10, .4, 0,   22, .5, 0,   38, 1, 0	;the same proportions, but value of partial number is multiplied 10 times -->the sound is much clearer,
								;because the sudden "jump" like the one in gi3 will pop up only once in 10 repetitions

instr 1

kamp = .6
kcps = 220
ifn  = p4

asig poscil kamp, kcps*p5, ifn
     outs   asig,asig

endin
</CsInstruments>
<CsScore>

i 1 0 2 1 1	;subtle difference between table 1 and 2
i 1 3 2 2 1
i 1 7 2 3 1	;big difference between table 3 and 4
i 1 10 2 4 .1	;p5 has to compensate for the 10 repetitions of gi4 as opposed to gi3 to get the same pitch

e
</CsScore>
</CsoundSynthesizer>


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

gi1 ftgen 1,0,2^10,9, 1,3,0, 3,1,0, 9,0.333,180 - approximation d'une onde carrée

gi1 ftgen 1,0,2^10,9, 1,3,0, 3,1,0, 9,0.333,180 - approximation d'une onde carrée

gi2 ftgen 2,0,2^10,9, 1,3,180, 3,1,0, 9,0.333,0 - mêmes valeurs que gi1, sauf pour la phase

gi2 ftgen 2,0,2^10,9, 1,3,180, 3,1,0, 9,0.333,0 - mêmes valeurs que gi1, sauf pour la phase

gi3 ftgen 3,0,2^10,9, 1,2,0, 3,2,0, 9,0.333,180 - partiels inharmoniques, avec une distorsion due au saut abrupt au début et à la fin de l'onde

gi3 ftgen 3,0,2^10,9, 1,2,0, 3,2,0, 9,0.333,180 - partiels inharmoniques, avec une distorsion due au saut abrupt au début et à la fin de l'onde

gi4 ftgen 4,0,2^10,9, 1,2,180, 3,2,0, 9,0.333,0 - même rapport que gi3, avec moins d'artefacts

gi4 ftgen 4,0,2^10,9, 1,2,180, 3,2,0, 9,0.333,0 - même rapport que gi3, avec moins d'artefacts

Voir aussi

GEN10, GEN19