GEN19 — Génère des formes d'ondes complexes obtenues par une somme pondérée de sinus.
Ce sous-programme 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 4 p-champs dans GEN19.
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 (relativement à un fondamental qui occuperait taille positions par période) de 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. Ces amplitudes sont relatives, car la forme d'onde composée peut être normalisée plus tard. Des valeurs négatives sont autorisées et impliquent une opposition de phase.
phsa, phsb, etc. -- phase initiale des partiels pna, pnb, etc., exprimée en degrés.
dcoa, dcob, etc. -- Décalage CC (Composante Continue) des partiels pna, pnb, etc. Il est appliqué après l'amplitude, c'est-à-dire qu'une valeur de 2 montera une sinus d'amplitude 2 de l'intervalle [-2,2] à l'intervalle [0,4] (avant la normalisation finale).
Note | |
---|---|
|
Voici un exemple de la routine GEN19. Il utilise le fichier gen19.csd.
Exemple 1293. Un exemple de la routine GEN19.
<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 gen19.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ;p4 = transposition factor ;p5 = speed factor ;p6 = function table for grain data i1 = sr/ftlen(1) ;scaling to reflect sample rate and table length a1 phasor i1*p5 ;index for speed asigl fog .5, 15, p4, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3 ;left channel asigr fog .4, 25, p4+.2, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3, .5 ;right channel outs asigl, asigr endin </CsInstruments> <CsScore> f 1 0 131072 1 "fox.wav" 0 0 0 f 2 0 1024 19 .5 .5 270 .5 i 1 0 10 .7 .1 i 1 + 4 1.2 2 e </CsScore> </CsoundSynthesizer>
Voici le diagramme de la forme d'onde générée par GEN19,
utilisé dans l'exemple :