1 /* FluidSynth - A Software Synthesizer
3 * Copyright (C) 2003 Peter Hanappe and others.
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public License
7 * as published by the Free Software Foundation; either version 2.1 of
8 * the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free
17 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 #ifndef _FLUIDSYNTH_GEN_H
22 #define _FLUIDSYNTH_GEN_H
30 * @brief Functions and defines for SoundFont generator effects.
34 * Generator (effect) numbers (Soundfont 2.01 specifications section 8.1.3)
38 GEN_STARTADDROFS
, /**< Sample start address offset (0-32767) */
39 GEN_ENDADDROFS
, /**< Sample end address offset (-32767-0) */
40 GEN_STARTLOOPADDROFS
, /**< Sample loop start address offset (-32767-32767) */
41 GEN_ENDLOOPADDROFS
, /**< Sample loop end address offset (-32767-32767) */
42 GEN_STARTADDRCOARSEOFS
, /**< Sample start address coarse offset (X 32768) */
43 GEN_MODLFOTOPITCH
, /**< Modulation LFO to pitch */
44 GEN_VIBLFOTOPITCH
, /**< Vibrato LFO to pitch */
45 GEN_MODENVTOPITCH
, /**< Modulation envelope to pitch */
46 GEN_FILTERFC
, /**< Filter cutoff */
47 GEN_FILTERQ
, /**< Filter Q */
48 GEN_MODLFOTOFILTERFC
, /**< Modulation LFO to filter cutoff */
49 GEN_MODENVTOFILTERFC
, /**< Modulation envelope to filter cutoff */
50 GEN_ENDADDRCOARSEOFS
, /**< Sample end address coarse offset (X 32768) */
51 GEN_MODLFOTOVOL
, /**< Modulation LFO to volume */
52 GEN_UNUSED1
, /**< Unused */
53 GEN_CHORUSSEND
, /**< Chorus send amount */
54 GEN_REVERBSEND
, /**< Reverb send amount */
55 GEN_PAN
, /**< Stereo panning */
56 GEN_UNUSED2
, /**< Unused */
57 GEN_UNUSED3
, /**< Unused */
58 GEN_UNUSED4
, /**< Unused */
59 GEN_MODLFODELAY
, /**< Modulation LFO delay */
60 GEN_MODLFOFREQ
, /**< Modulation LFO frequency */
61 GEN_VIBLFODELAY
, /**< Vibrato LFO delay */
62 GEN_VIBLFOFREQ
, /**< Vibrato LFO frequency */
63 GEN_MODENVDELAY
, /**< Modulation envelope delay */
64 GEN_MODENVATTACK
, /**< Modulation envelope attack */
65 GEN_MODENVHOLD
, /**< Modulation envelope hold */
66 GEN_MODENVDECAY
, /**< Modulation envelope decay */
67 GEN_MODENVSUSTAIN
, /**< Modulation envelope sustain */
68 GEN_MODENVRELEASE
, /**< Modulation envelope release */
69 GEN_KEYTOMODENVHOLD
, /**< Key to modulation envelope hold */
70 GEN_KEYTOMODENVDECAY
, /**< Key to modulation envelope decay */
71 GEN_VOLENVDELAY
, /**< Volume envelope delay */
72 GEN_VOLENVATTACK
, /**< Volume envelope attack */
73 GEN_VOLENVHOLD
, /**< Volume envelope hold */
74 GEN_VOLENVDECAY
, /**< Volume envelope decay */
75 GEN_VOLENVSUSTAIN
, /**< Volume envelope sustain */
76 GEN_VOLENVRELEASE
, /**< Volume envelope release */
77 GEN_KEYTOVOLENVHOLD
, /**< Key to volume envelope hold */
78 GEN_KEYTOVOLENVDECAY
, /**< Key to volume envelope decay */
79 GEN_INSTRUMENT
, /**< Instrument ID (shouldn't be set by user) */
80 GEN_RESERVED1
, /**< Reserved */
81 GEN_KEYRANGE
, /**< MIDI note range */
82 GEN_VELRANGE
, /**< MIDI velocity range */
83 GEN_STARTLOOPADDRCOARSEOFS
, /**< Sample start loop address coarse offset (X 32768) */
84 GEN_KEYNUM
, /**< Fixed MIDI note number */
85 GEN_VELOCITY
, /**< Fixed MIDI velocity value */
86 GEN_ATTENUATION
, /**< Initial volume attenuation */
87 GEN_RESERVED2
, /**< Reserved */
88 GEN_ENDLOOPADDRCOARSEOFS
, /**< Sample end loop address coarse offset (X 32768) */
89 GEN_COARSETUNE
, /**< Coarse tuning */
90 GEN_FINETUNE
, /**< Fine tuning */
91 GEN_SAMPLEID
, /**< Sample ID (shouldn't be set by user) */
92 GEN_SAMPLEMODE
, /**< Sample mode flags */
93 GEN_RESERVED3
, /**< Reserved */
94 GEN_SCALETUNE
, /**< Scale tuning */
95 GEN_EXCLUSIVECLASS
, /**< Exclusive class number */
96 GEN_OVERRIDEROOTKEY
, /**< Sample root note override */
98 /* the initial pitch is not a "standard" generator. It is not
99 * mentioned in the list of generator in the SF2 specifications. It
100 * is used, however, as the destination for the default pitch wheel
102 GEN_PITCH
, /**< Pitch @note Not a real SoundFont generator */
104 GEN_CUSTOM_BALANCE
, /**< Balance @note Not a real SoundFont generator */
105 /* non-standard generator for an additional custom high- or low-pass filter */
106 GEN_CUSTOM_FILTERFC
, /**< Custom filter cutoff frequency */
107 GEN_CUSTOM_FILTERQ
, /**< Custom filter Q */
110 GEN_LAST
/**< @internal Value defines the count of generators (#fluid_gen_type) @warning This symbol is not part of the public API and ABI stability guarantee and may change at any time! */
118 #endif /* _FLUIDSYNTH_GEN_H */