GEN09 — Génère des formes d'ondes complexes obtenues par une somme pondérée de sinus.
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.
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 | |
---|---|
|
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 :