GEN11

GEN11 — Génère un ensemble additif de partiels cosinus.

Description

Ce sous-programme génère un ensemble additif de partiels cosinus, à la manière des générateurs de Csound buzz et gbuzz.

Syntaxe

f # date taille 11 nh [lh] [r]

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

nh -- nombre d'harmoniques demandés. Doit être positif.

lh(optional) -- harmonique présent le plus bas. Peut être positif, nul ou négatif. L'ensemble d'harmoniques peut démarrer à n'importe quel numéro d'harmonique et progresse vers le haut ; si lh est négatif, tous les harmoniques en dessous de zéro se réfléchiront autour de zéro pour produire des harmoniques positifs sans changement de phase (car le cosinus est une fonction paire), et s'ajouteront de façon constructive aux harmoniques positifs de l'ensemble. La valeur par défaut est 1.

r(facultatif) -- multiplicateur dans une série de coefficients d'amplitude. C'est une séries de puissances : si le lh ème harmonique a un coefficient d'amplitude de A le (lh + n)ème harmonique aura un coefficient de A * rn, c'est-à-dire que les valeurs d'amplitudes suivent une courbe exponentielle. r peut être positif, nul ou négatif, et n'est pas restreint à des entiers. La valeur par défaut est 1.

[Note] Note

  • Ce sous-programme est une version invariante dans le temps des générateurs de Csound buzz et gbuzz, et il est similairement utile comme source sonore complexe pour la synthèse soustractive. Si lh et r sont utilisés, il agit comme gbuzz ; si les deux sont absents ou égaux à 1, il se réduit au générateur plus simple buzz (c'est-à-dire nh harmoniques d'amplitude égale commençant avec le fondamental).

  • Lire la forme d'onde stockée avec un oscillateur est plus efficace que d'utiliser les unités dynamiques buzz. Cependant, le contenu spectral est invariant et il faut faire attention à ce que les harmoniques les plus hauts ne dépassent pas la fréquence de Nyquist pour éviter les repliements.

Exemples

Voici un exemple de la routine GEN11. Il utilise le fichier gen11.csd.

Exemple 1071. Un exemple de la routine GEN11.

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

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

instr 1

ifn  = p4
asig oscil .8, 220, ifn
     outs asig,asig
    
endin
</CsInstruments>
<CsScore>
f 1 0 16384 11 1 1	;number of harmonics = 1
f 2 0 16384 11 10 1 .7	;number of harmonics = 10
f 3 0 16384 11 10 5 2	;number of harmonics = 10, 5th harmonic is amplified 2 times


i 1 0 2 1
i 1 + 2 2
i 1 + 2 3
e
</CsScore>
</CsoundSynthesizer>


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

f 1 0 16384 11 1 1

f 1 0 16384 11 1 1

f 2 0 16384 11 10 1 .7

f 2 0 16384 11 10 1 .7

f 3 0 16384 11 10 5 2

f 3 0 16384 11 10 5 2

Voir aussi

GEN10