Add files via upload
[fluidsynth-winbin.git] / bin32 / fluidsynth-2.0.0 / usr / include / fluidsynth / gen.h
blob4b625831b0a067f23dcd91f0159fe1ee1322b3f5
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
18 * 02110-1301, USA
21 #ifndef _FLUIDSYNTH_GEN_H
22 #define _FLUIDSYNTH_GEN_H
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
28 /**
29 * @file gen.h
30 * @brief Functions and defines for SoundFont generator effects.
33 /**
34 * Generator (effect) numbers (Soundfont 2.01 specifications section 8.1.3)
36 enum fluid_gen_type
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
101 * modulator. */
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 */
109 #ifndef __DOXYGEN__
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! */
111 #endif
115 #ifdef __cplusplus
117 #endif
118 #endif /* _FLUIDSYNTH_GEN_H */