Only show user-presets in favorite sidebar
[ardour.git] / libs / fluidsynth / fluidsynth / gen.h
1 /* FluidSynth - A Software Synthesizer
2  *
3  * Copyright (C) 2003  Peter Hanappe and others.
4  *
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.
9  *
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.
14  *
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
19  */
20
21 #ifndef _FLUIDSYNTH_GEN_H
22 #define _FLUIDSYNTH_GEN_H
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 /**
29  * @file gen.h
30  * @brief Functions and defines for SoundFont generator effects.
31  */
32
33 /**
34  * Generator (effect) numbers (Soundfont 2.01 specifications section 8.1.3)
35  */
36 enum fluid_gen_type
37 {
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 */
97
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 */
103
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 */
108
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
112 };
113
114
115 #ifdef __cplusplus
116 }
117 #endif
118 #endif /* _FLUIDSYNTH_GEN_H */
119