The KMidi Handbook
Prev | Chapter 4. Design | Next

# 4.2. Synthesis Model

TiMidity has a tone generator, two envelope generators, three low frequency sine-wave oscillators, a low pass filter, and an effects unit. (The low pass filter is used only when KMidi's fourth interpolation option is chosen and the "filt" button is depressed -- at present it doesn't work well.)

The tone generator resamples instrument patches at the basic frequencies appropriate for specific notes being played. (The interpolation algorithm used is selectable using the four checkboxes on the upper panel.)

The envelope generators modulate each note with successively: an attack phase, a hold phase, a decay, and a release. One of the generators affects amplitude, and the other affects pitch and/or the cutoff frequency of the low pass filter.

The low frequency oscillators modulate amplitude (for tremolo), frequency (for vibrato), and the low pass filter cutoff frequency (XG "rezo sweep").

The effects unit supplies echo, detuning, reverberation, chorusing, celeste, and phaser effects. Echo (done by generating extra echo notes) and reverbration (done with a filter) implement midi reverberation. Detuning (done by generating extra pitch bent notes) and chorusing (done with a filter) implement midi chorusing. (The effects filters are active only when KMidi's "eff" button is pressed on. Echo and detuning can be controlled with the middle two checkboxes on the right of the lower panel and from the Chorus and Reverb menus.)

Instruments may have either one or two tone elements, and for each of these, a patch set may provide separate patches for different note-velocity ranges (commonly for pianos) and for different note-pitch ranges. GUS patch sets, however, provide only one tone element and one velocity range per instrument. (If you click the rightmost checkbox at the right of the lower panel, KMidi will display in its info window the names of patches as it loads them, a "(2)" if they have two tone elements, and the velocity range.)

Prev | Home | Next
Design | Up | Midi Implementation