fmvoice
FM Singing Voice Synthesis.
Syntax
Initialization
ifn1, ifn2, ifn3, ifn4, ivibfn -- Optional waveform tables, usually sine waves. The first four are for the FM operators; the last is for vibrato.
Performance
kamp -- Amplitude of note.
kfreq -- Frequency of the note in Hz. It must be positive and finite.
kvowel -- Vowel selection, in the range 0–127. Each bank uses the same 32 vowel and phoneme entries with a different scale for their formant frequencies:
| Selection | Formant frequency scale |
|---|---|
| 0–31 | 0.9 |
| 32–63 | 1.0 |
| 64–95 | 1.1 |
| 96–127 | 1.2 |
For example, 1, 33, 65, and 97 select the same entry at four scales. Values outside 0–127 are clamped, and fractional values select the integer below them; adjacent entries are not interpolated.
ktilt -- Timbre control, with a nominal range of 0–127. Larger values increase the shared FM modulator's level. The control maps to 100 gain steps; values below or above the range use the lowest or highest step.
kvibamt -- Depth of vibrato. With a vibrato table whose peak amplitude is 1, a value of 1 gives a peak frequency deviation of 10%. A value of 0 disables vibrato.
kvibrate -- Rate of vibrato in Hz.
Examples
Here is an example of the fmvoice opcode. It uses the file fmvoice.csd.
See Also
More information about frequency modulation on Wikipedia: http://en.wikipedia.org/wiki/Frequency_modulation_synthesis
Credits
Author: John ffitch (after Perry Cook)
University of Bath, Codemist Ltd.
Bath, UK
New in Csound version 3.47