La modulation de fréquence

Sources et résultat sonore :

La modulation de fréquence simple

La synthèse sonore par modulation de fréquence a été inventée et présentée par John Chowning en 1973 dans un célèbre article : "The synthesis of complex audio spectra by means of frequency modulation", Journal of the Audio Engeneering Society 21(7): 526-534. On en trouve une description accessible au musicien dans le livre L'audionumérique de Curtis Roads, éditions Dunod.

Il y a deux manières de mettre en œuvre le procédé présenté par Chowning : la modulation de fréquence ou la modulation de phase. Dans une utilisation simple, la modulation de fréquence et la modulation de phase sont équivalentes. Par contre, si l'on enchaîne plusieurs modulations ou si l'on utilise une rétroaction, des différences notables apparaissent.

On réalise la modulation de fréquence simple avec deux ondes sinusoïdales : une porteuse et une modulante. La pulsation instantanée du signal modulé est (l'indice "c" est utilisé pour la porteuse et l'indice "m" pour la modulante). L'angle de phase du signal est alors donné par l'intégrale de la pulsation instantanée : . Le rapport définit l'indice de modulation. La pulsation instantanée s'écrit alors :

On voit que la fréquence du signal modulé est . C'est la formule utilisée dans notre exemple Csound.

Réalisation avec Csound : l'orchestre

L'instrument suivant réalise une implémentation simple de l'algorithme de modulation de fréquence :

         sr = 44100
         kr = 4410
      ksmps = 10
     nchnls = 1

          instr 1
idur        = p3
iamp        = p4
icarcps     = cpspch(p5)
iratio      = p6
indxmul     = p7
imodcps     = icarcps / iratio

kndx        adsr      0.4, 0.5, 0.1, 0.05
;in Frequency Modulation, modulation index depends upon modulator frequency
kmod        =         kndx * indxmul * imodcps
amod        oscili    1, imodcps, 1
acar        oscili    1, icarcps + kmod*amod, 1
kenv        adsr      0.1, 0.2, 0.8, 0.1
            out       iamp * kenv * acar
          endin
   

La première enveloppe ADSR est utilisée pour contrôler l'évolution temporelle de l'indice de modulation. La deuxième enveloppe ADSR contrôle l'amplitude du signal modulé. Chaque note fournit en paramètres la durée, l'amplitude, la hauteur, le rapport de fréquence entre la porteuse et la modulante, et un coefficient de multiplication de l'indice de modulation (cf paragraphe suivant).

Diagramme

L'algorithme simple BasicFM peut-être représenté par un schéma de type Music V. Dans ce schéma, les entrées fixes sont matérialisées par un cercle. Les entrées ou les sorties en provenance de ou vers un opérateur sont représentées par des demi-cercles. Enfin, un oscillateur sinusoïdal est représenté comme suit :

Les éléments spécifiques à la modulation de fréquence sont dessinés en rouge. Par rapport à la formule , on a rajouté un coefficient de multiplication de l'indice. Ce coefficient correspond en fait à l'amplitude du modulateur, mais il est plus parlant de le présenter ainsi car son effet, en faisant varier l'indice de modulation, agit directement sur l'excursion en fréquence de la modulation :

Les oscillateurs utilisent une table avec des échantillons représentant une période d'une onde sinusoïdale. Cette table est construite dans la partition

La partition

;single sinewave
f1 0 16384 10 1

;    dur  amp   pch    ratio  mul
i1 0  1   .33   8.00   1.414  1.0
i1 1  1   .33   8.04   2.0    2.0 
i1 2  1   .33   8.02   4.0    2.0
i1 3  1   .33   7.07   4.0    4.0

e