Main Group 20: FM Synthesis


Return to main index
01 Basic Design for FM Synthesis
1 bare FM design
10 Dynamic Spectral Evolution
1 bell
2 wood drum
3 brass
4 clarinet
5 variable amplitude and index envelopes
20 Double Carrier, Dynamic Spectral Evolution
4 steady formant region
5 trumpet
6 soprano
70 Complex Wave Modulation, Dynamic Spectrum
1 string

Overview

Modulation Index and Sideband Amplitudes

The modulation index I is defined by amplitude and frequency of the modulating oscillator: I = amp/fq.

The integer k depends on the modulation index and defines the highest-ordered sideband with a significant amplitude: k = I+1, with I rounded to the nearest integer value.

The spectrum of FM is thus composed of the sum of components ifqc +- k*ifqm.

The amplitudes of all components are determined by Bessel functions.

Negative frequencies

Negative frequencies are reflected into the positive frequency domain by multiplying their amplitude with -1 (effect of -ã). Then all components with the same frequency are added.

c:m ratio

1) fundamental
One can compute the fundamental from the lowest possible c:m ratio (composed of integers with no common factors):
                 fqc:fqm = N1:N2
Then: fqc/N1 = fqm/N2 = fundamental.

2) espectrum
let N1=1, then:

          N2=1   spectrum with all harmonics
          N2=M   every mth harmonic is missing

Irrational or large N2 and/or N1 values in the c:m ratios lead to inharmonic spectra.

example: 5:7 (1:1.4) sounds close to 1:root2 (1:1.4142...)


Suggested Reading

Chowning, J. 1973.
"The Synthesis of Complex Audio Spectra by Means of Frequency Modulation."
Journal of the Audio Engineering Society 21(7):526-534.
Reprinted in Computer Music Journal 1(2):46-54.
and in C. Roads and J. Strawn, eds. 1985.
Foundations of Computer Music. MIT Press, pp. 6-29.

Chowning, J. 1980.
"Computer Synthesis of the Singing Voice."
In Johan Sundberg (ed.), Sound Generation in Winds, Strings, and Computers.
Stockholm: Royal Swedish Academy of Music (publ. no. 29), pp. 4-13.

Chowning, J., and D. Bristow 1986.
FM Theory & Applications, By Musicians For Musicians.
Tokyo: Yamaha Music Foundation, 195 pp.

Chowning, J. 1989.
"Frequency Modulation Synthesis of the Singing Voice"
Current Directions in Computer Music Research, MIT Press, pp. 57-64.

LeBrun, Marc 1977.
"A Derivation of the Spectrum of FM with a Complex Modulating Wave."
Computer Music Journal 1(4):51-52.
Reprinted in C. Roads and J. Strawn, eds. 1985.
Foundations of Computer Music.
MIT Press, pp. 65-67.

Morrill, Dexter 1977.
"Trumpet Algorithms for Computer Composition."
Computer Music Journal 1(1):46-52.
Reprinted in C. Roads and J. Strawn, eds. 1985.
Foundations of Computer Music.
MIT Press, pp. 30-44.

Saunders, S. 1977.
"Improved FM Audio Synthesis Methods for Real-Time Digital Music Generation."
Computer Music Journal 1(1):45-53.
Reprinted in C. Roads and J. Strawn, eds. 1985.
Foundations of Computer Music.
MIT Press, pp. 68-82.

Schottstaedt, Bill 1977.
"The Simulation of Natural Instrument Tones Using Frequency Modulation with a Complex Modulating Wave."
Computer Music Journal 1(4):46-50.
Reprinted in C. Roads and J. Strawn, eds. 1985.
Foundations of Computer Music.
MIT Press, pp. 54-64.

Smith, Leland 1972.
"Score: A Musician's Approach to Computer Music."
Journal of the Audio Engineering Society 20(1):7-14.

Sundberg, Johan 1978.
"Synthesis of Singing."
Swedish Journal of Musicology 60(1):107-112.

Truax, B. 1977.
"Organizational Techniques for c:m Ratios in FM."
Computer Music Journal 1(4):39-45.
Reprinted in C. Roads and J. Strawn, eds. 1985.
Foundations of Computer Music. MIT Press, pp. 68-82.


20_01_1

additional parameters: imax, ifq2

This is the most basic instrument design for the FM synthesis of sounds (Chowning 1973).

The parameters imax and ifq2 are varied to try some different c:m ratios and modulation indexes on a set of short notes.

[flowchart]

Orchestra and Score

WAV and mp3


20_10_1

additional parameters: none

The timbre of a bell is obtained by an exponential index and amplitude envelope. The modulation index is high (10) and the c:m ratio is set at 5:7 to yield the typical inharmonic spectrum. A long duration is required. By varying the steepness of the exponentials one can control the timbre in a subtle manner (Chowning 1973).

[flowchart]

Orchestra and Score

WAV and mp3


20_10_2

additional parameters: none

Wood drum timbre. The modulation index is set very high (25) and decays rapidly to produce a burst of energy over a wide frequency band at the onset followed by a sinusoid. The latter creates the perceptual effect of a strong resonance. (Chowning 1973)

[flowchart]

Orchestra and Score

WAV and mp3


20_10_3

additional parameters: none

The brass timbre emerges with parallel envelope shapes for index and amplitude, as shown in the figure. This means that overall spectral richness and amplitude vary in proportion to each other. The c:m ratio of 1:1 produces components falling in the harmonic series. By varying the envelope shapes or indices by small amounts a wide variety of timbres is possible. (Chowning 1973)

[flowchart]

Orchestra and Score

WAV and mp3


20_10_4

additional parameters: imax

The present design has an additional mechanism to vary the index between imax and imin, where imin can be different from 0.

This specific instrument emulates the sound of a clarinet. The c:m ratio of 3:2 produces odd harmonics, and the modulation index is kept between 4 and 2 to control the spectral bandwidth. (Chowning 1973; Vercoe 1993: morefiles/chowning.orc)

[flowchart]

Orchestra and Score

WAV and mp3


20_10_5

additional parameters: ifqm, imax, ibegkdyn, ibegae, imid, ibreakp, iend, irvt, ileft

The instrument has a variable amplitude envelope and a variable modulation index contour. Part of the sound is reverberated and mixed with the unreverberated portion.

For this instrument, a network score generator has been written (Spruit 1993). It provides unique sets of scores. The Prolog program defines a network of relationships between parameters. The user specifies the valid range of the individual parameter values and a start value, which is the requested total duration of the score in seconds.

Also, one can choose to generate more than one cycle during one run of the score generator. All score file cycles run parallel to each other.

The network constitutes a grammar and the generation process involves no randomness. A parameter can influence its own value (recursive) and/or the value of other parameters.

In this way all parameter values of the score are determined by specific mathematical relations between them. The result is written to a score file.

[illustration network dependencies]

[flowchart]

Orchestra and Score

WAV and mp3


20_20_4

additional parameters: imax1, imax2

This instrument uses a second carrier oscillator to synthesize a formant region at a given frequency. Both carriers follow the same amplitude envelope and index envelope, though the formant carrier is scalable for both amplitude and index.

The equation 'ifq2=int((iform/ifq1)+.5)*ifq1' lets ifq2 wander about in close proximity of the formant frequency iform, while keeping ifq2 in a harmonic relation to ifq1. (Chowning 1973; Vercoe 1993: morefiles/chowning.orc)

[flowchart]

Orchestra and Score

WAV and mp3


20_20_5

additional parameters: imax1, ifq2, imax2

This is a very sophisticated FM instrument imitating a trumpet tone. There is a vibrato generator consisting of random amplitude deviation, a slow amplitude vibrato and a portamento pitch deviation. All these units combine to give an oscillating value in the proximity of 1.

The general design is a double carrier FM instrument, using a single envelope function for amplitude and modulation index. Implemented by LINSEG, the rise and decay portions keep their absolute values for different durations. As in 20_20_4, the index and the amplitude envelopes of the second carrier are scaled before being applied to their targets. (Morrill 1977)

[flowchart]

Orchestra and Score

WAV and mp3


20_20_6

additional parameters: several functions, ampfac

Soprano timbre achieved through a double carrier FM design. The amplitudes of the two carriers are controlled by different envelopes, the index envelope is the same for both carriers. The table lookup is used to get pitch dependent values for the parameters icarhz, ifmthz, imax1 and imax2. Again, a vibrato generator adds realism to the construction. (Chowning 1980, 1989; Vercoe 1993: morefiles/chowning.orc; Vercoe 1993: morefiles/ sopink.orc)

[flowchart]

Orchestra and Score

WAV and mp3

[flowchart]


20_70_1

additional parameters: irise, idec, ivibdel, ivibwdth, ivibrte

A realistic string tone emulation achieved by complex wave FM modulation. The three components of the complex wave are independent in their modulation indices and c:m ratios, thus allowing great and precise control over the emerging spectra. An attack noise portion and a vibrato add to the realism of the design. The timeout flow-control statement of the csound language is used to mix the attack, vibrato and normal portions of the instrument. The parameters 'inoisdur' and 'ivibdel' control the duration time of the attack noise and the delay time of the vibrato respect- ively. This design can doubtlessly be put to refined use in other contexts. (Schottstaedt 1977; Vercoe 1993: morefiles/string.orc)

[flowchart]

Orchestra and Score

WAV and mp3


Return to main index