Skip to content

Generator

This class represents a single generator (a static parameter).

Properties

generatorType

The type of this generator. One of the predefined values. A number.

generatorValue

The generator’s value, which can be negative. A number.

Methods

toString

Converts the generator into a human-readable string with the name instead of number.

All generator types

Below are all defined generator types as of soundfont 2.04.

They are accesible through the generatorTypes enum. The limits and default values are accessible through the generatorLimits constant.

Important

Generator 48 (Initial Attenuation) applies a 0.04 multiplier instead of 0.1 multiplier like in the spec to get the true dB value. Every SoundFont synth does this for compatibility reasons.

Generator ID Generator Name Minimum Value Maximum Value Default Value Description
0 Start Address Offset 0 32768 0 Sample control - moves sample start point
1 End Address Offset -32768 32768 0 Sample control - moves sample end point
2 Start Loop Address Offset -32768 32768 0 Loop control - moves loop start point
3 End Loop Address Offset -32768 32768 0 Loop control - moves loop end point
4 Start Address Coarse Offset 0 32768 0 Sample control - moves sample start point in 32767 increments
5 Modulation LFO to Pitch -12000 12000 0 Pitch modulation - Modulation LFO pitch modulation in cents
6 Vibrato LFO to Pitch -12000 12000 0 Pitch modulation - Vibrato LFO pitch modulation in cents
7 Modulation Envelope to Pitch -12000 12000 0 Pitch modulation - Modulation envelope pitch modulation in cents
8 Initial Filter Cutoff 1500 13500 13500 Filter - Lowpass filter cutoff in cents
9 Initial Filter Resonance 0 960 0 Filter - Lowpass filter resonance
10 Modulation LFO to Filter Cutoff -12000 12000 0 Filter modulation - Modulation LFO lowpass filter cutoff in cents
11 Modulation Envelope to Filter Cutoff -12000 12000 0 Filter modulation - Modulation envelope lowpass filter cutoff in cents
12 End Address Coarse Offset -32768 32768 0 Sample control - Moves sample end point in 32767 increments
13 Modulation LFO to Volume -960 960 0 Modulation LFO - Volume (tremolo), where 100 = 10dB
14 Unused 1 - - - Unused
15 Chorus Effects Send 0 1000 0 Effect send - How much is sent to chorus
16 Reverb Effects Send 0 1000 0 Effect send - How much is sent to reverb
17 Pan -500 500 0 Panning - Where -500 = left, 0 = center, 500 = right
18 Unused 2 - - - Unused
19 Unused 3 - - - Unused
20 Unused 4 - - - Unused
21 Delay Modulation LFO -12000 5000 -12000 Mod LFO - Delay for Mod LFO to start from zero (weird scale)
22 Frequency Modulation LFO -16000 4500 0 Mod LFO - Frequency of Mod LFO, 0 = 8.176Hz, unit: f => 1200log2(f/8.176)
23 Delay Vibrato LFO -12000 5000 -12000 Vibrato LFO - Delay for vibrato LFO to start from zero (weird scale)
24 Frequency Vibrato LFO -16000 4500 0 Vibrato LFO - Frequency of Vibrato LFO, 0 = 8.176Hz, unit: f => 1200log2(f/8.176)
25 Delay Modulation Envelope -12000 5000 -12000 Mod Envelope - 0 = 1s delay till Mod Envelope starts
26 Attack Modulation Envelope -12000 8000 -12000 Mod Envelope - Attack of Mod Envelope
27 Hold Modulation Envelope -12000 5000 -12000 Mod Envelope - Hold of Mod Envelope
28 Decay Modulation Envelope -12000 8000 -12000 Mod Envelope - Decay of Mod Envelope
29 Sustain Modulation Envelope 0 1000 0 Mod Envelope - Sustain of Mod Envelope
30 Release Modulation Envelope -12000 8000 -12000 Mod Envelope - Release of Mod Envelope
31 Key Number to Modulation Envelope Hold -1200 1200 0 Mod Envelope - Also modulating Mod Envelope hold with key number
32 Key Number to Modulation Envelope Decay -1200 1200 0 Mod Envelope - Also modulating Mod Envelope decay with key number
33 Delay Volume Envelope -12000 5000 -12000 Volume Envelope - Delay of envelope from zero (weird scale)
34 Attack Volume Envelope -12000 8000 -12000 Volume Envelope - Attack of envelope
35 Hold Volume Envelope -12000 5000 -12000 Volume Envelope - Hold of envelope
36 Decay Volume Envelope -12000 8000 -12000 Volume Envelope - Decay of envelope
37 Sustain Volume Envelope 0 1440 0 Volume Envelope - Sustain of envelope
38 Release Volume Envelope -7200 8000 -12000 Volume Envelope - Release of envelope (prevents clicks)
39 Key Number to Volume Envelope Hold -1200 1200 0 Volume Envelope - Key number to volume envelope hold
40 Key Number to Volume Envelope Decay -1200 1200 0 Volume Envelope - Key number to volume envelope decay
41 Instrument - - - Zone - Instrument index to use for preset zone
42 Reserved 1 - - - Reserved
43 Key Range - - - Zone - Key range for which preset / instrument zone is active
44 Velocity Range - - - Zone - Velocity range for which preset / instrument zone is active
45 Start Loop Address Coarse Offset -32768 32768 0 Sample control - Moves sample loop start point in 32767 increments
46 Key Number -1 127 -1 Zone - Instrument only: Always use this MIDI number (ignore what’s pressed)
47 Velocity -1 127 -1 Zone - Instrument only: Always use this velocity (ignore what’s pressed)
48 Initial Attenuation -250 1440 0 Zone - Allows turning down the volume, 250 = -10dB
49 Reserved 2 - - - Reserved
50 End Loop Address Coarse Offset -32768 32768 0 Sample control - Moves sample loop end point in 32767 increments
51 Coarse Tune -120 120 0 Tune - Pitch offset in semitones
52 Fine Tune -99 99 0 Tune - Pitch offset in cents
53 Sample ID - - - Sample - Instrument zone only: Which sample to use
54 Sample Modes 0 3 0 Sample - 0 = no loop, 1 = loop, 2 = reserved, 3 = loop and play till end in release phase
55 Reserved 3 - - - Reserved
56 Scale Tuning 0 1200 100 Sample - The degree to which MIDI key number influences pitch, 100 = default
57 Exclusive Class 0 99999 0 Sample - Cut = choke group
58 Overriding Root Key -1 127 -1 Sample - Can override the sample’s original pitch
59 Unused 5 - - - Unused
60 End Marker - - - End marker