***************************
Main Group 20: FM Synthesis
***************************


Sub Id  Contents

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 

------------------------------------------------------------ next

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) spectrum
let N1=1, then:

          N2=1   spectrum with all harmonics

          N2=M   every mth harmonic is missing

For N2=1, N2=2 there is a strong effect of overlapping negative
and positive components.

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:2 (1:1.4142...)

------------------------------------------------------------ next

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. 

------------------------------------------------------------ next

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)
(.orc and .sco files)

------------------------------------------------------------ next

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)
(.orc and .sco files)

------------------------------------------------------------ next

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)
(.orc and .sco files)

------------------------------------------------------------ next

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)
(.orc and .sco files)

------------------------------------------------------------ next


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)
(.orc and .sco files)

------------------------------------------------------------ next

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)
(.orc and .sco files)

------------------------------------------------------------ next

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)
(.orc and .sco files)

------------------------------------------------------------ next

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)
(.orc and .sco files)
------------------------------------------------------------ next

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)
(.orc and .sco files)

------------------------------------------------------------ next

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)
(.orc and .sco files)
