foscil

foscil — Un oscillateur élémentaire modulé en fréquence.

Description

Un oscillateur élémentaire modulé en fréquence.

Syntaxe

ares foscil xamp, kcps, xcar, xmod, kndx, ifn [, iphs]

Initialisation

ifn -- numéro de la table de fonction. Nécessite un point de garde de lecture cyclique.

iphs (faculatif, par défaut 0) -- phase initiale de la forme d'onde dans la table ifn, exprimée comme une fraction d'une période (0 à 1). Avec une valeur négative, l'initialisation de la phase sera ignorée. La valeur par défaut est 0.

Exécution

xamp -- l'amplitude du signal de sortie.

kcps -- un dénominateur commun, en cycles par seconde, pour les fréquences porteuse et modulante.

xcar -- un facteur qui, lorsqu'il est multiplié par le paramètre kcps, donne la fréquence de la porteuse.

xmod -- un facteur qui, lorsqu'il est multiplié par le paramètre kcps, donne la fréquence de la modulante.

kndx -- l'indice de modulation.

foscil est une unité composée qui assemble deux opcodes oscil dans la configuration familière de synthèse FM de Chowning, où la sortie au taux audio de l'un des générateurs est utilisée pour moduler l'entrée en fréquence de l'autre (la « porteuse »). Fréquence de la porteuse = kcps * xcar et fréquence modulante = kcps * xmod. Pour des valeurs entières de xcar et de xmod, la fondamentale perçue sera la valeur positive minimale de kcps * (xcar - n * xmod), n = 0,1,2,... L'entrée kndx est l'indice de modulation (habituellement variant dans le temps approximativement dans l'intervalle de 0 à 4) qui détermine la distribution de l'energie acoustique parmi les positions des partiels données par n = 0,1,2,.., etc. ifn doit pointer sur une onde sinus stockée. Avant la version 3.50, xcar et xmod ne pouvaient être que de taux-k.

La formule utilisée pour cette implémentation de la synthèse FM est xamp * cos(2π * t * kcps * xcar + kndx * sin(2π * t * kcps * xmod) - π), en supposant que la table est une onde sinus.

Exemples

Voici un exemple de l'opcode foscil. Il utilise le fichier foscil.csd.

Exemple 330. Exemple de l'opcode foscil.

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

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

instr 1

kcps = 440
kcar = 1
kmod = p4
kndx line 0, p3, 20	;intensivy sidebands

asig foscil .5, kcps, kcar, kmod, kndx, 1
     outs asig, asig

endin
</CsInstruments>
<CsScore>
; sine
f 1 0 16384 10 1

i 1 0  9 .01	;vibrato
i 1 10 .  1
i 1 20 . 1.414	;gong-ish
i 1 30 5 2.05	;with "beat"
e
</CsScore>
</CsoundSynthesizer>


Voir aussi

Plus d'information au sujet de la modulation de fréquence sur Wikipedia : http://en.wikipedia.org/wiki/Frequency_modulation_synthesis

Crédits

Exemple écrit par Kevin Conder.