Signal Generators: FM Synthesis

## fmbell, fmrhode, fmwurlie, fmmetal, fmb3, fmpercfl

ar **fmbell** kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
ar **fmrhode** kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
ar **fmwurlie** kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
ar **fmmetal** kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
ar **fmb3** kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
ar **fmpercfl** kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn

### Description

A family of FM sounds, all using 4 basic oscillators and various architectures, as used in the TX81Z synthesizer.

### Initialization

All these opcodes take 5 tables for initialization. The first 4 are the basic inputs and the last is the low frequency oscillator (LFO) used for vibrato. The last table should usually be a sine wave.

For the other opcodes the initial waves should be as in the table:

ifn1 ifn2 ifn3 ifn4

**fmbell ** sinewave sinewave sinewave sinewave
**fmrhode ** sinewave sinewave sinewave fwavblnk
**fmwurlie ** sinewave sinewave sinewave fwavblnk
**fmmetal ** sinewave twopeaks twopeaks sinewave
**fmb3 ** sinewave sinewave sinewave sinewave
**fmpercfl ** sinewave sinewave sinewave sinewave

The sounds produced are then:

**
fmbell** Tubular Bell
**fmrhode** Fender Rhodes Electric Piano
**fmwurlie** Wurlitzer Electric Piano
**fmmetal** "Heavy Metal"
**fmb3 ** Hammond B3 organ
**fmpercfl** Percussive Flute

### Performance

*kamp* – Amplitude of note.

*kfreq* – Frequency of note played.

*kc1, kc2 --* Controls for the synthesizer, as in the table:

kc1 kc2 Algorithm

**fmbell** Mod index 1 Crossfade of two outputs 5
**fmrhode** Mod index 1 Crossfade of two outputs 5
**fmwurlie** Mod index 1 Crossfade of two outputs 5
**fmmetal** Total mod index Crossfade of two modulators 3
**fmb3 ** Total mod index Crossfade of two modulators 4
**fmpercfl** Total mod index Crossfade of two modulators 4

*kvdepth* -- Vibrator depth

*kvrate* -- Vibrator rate

### Author

John ffitch (after Perry Cook)

University of Bath, Codemist Ltd.

Bath, UK

New in Csound version 3.47

Signal Generators: FM Synthesis