00001 /* FluidSynth - A Software Synthesizer
00002 *
00003 * Copyright (C) 2003 Peter Hanappe and others.
00004 *
00005 * This library is free software; you can redistribute it and/or
00006 * modify it under the terms of the GNU Library General Public License
00007 * as published by the Free Software Foundation; either version 2 of
00008 * the License, or (at your option) any later version.
00009 *
00010 * This library is distributed in the hope that it will be useful, but
00011 * WITHOUT ANY WARRANTY; without even the implied warranty of
00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00013 * Library General Public License for more details.
00014 *
00015 * You should have received a copy of the GNU Library General Public
00016 * License along with this library; if not, write to the Free
00017 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00018 * 02111-1307, USA
00019 */
00020
00021 #ifndef _FLUIDSYNTH_GEN_H
00022 #define _FLUIDSYNTH_GEN_H
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00036 enum fluid_gen_type {
00037 GEN_STARTADDROFS,
00038 GEN_ENDADDROFS,
00039 GEN_STARTLOOPADDROFS,
00040 GEN_ENDLOOPADDROFS,
00041 GEN_STARTADDRCOARSEOFS,
00042 GEN_MODLFOTOPITCH,
00043 GEN_VIBLFOTOPITCH,
00044 GEN_MODENVTOPITCH,
00045 GEN_FILTERFC,
00046 GEN_FILTERQ,
00047 GEN_MODLFOTOFILTERFC,
00048 GEN_MODENVTOFILTERFC,
00049 GEN_ENDADDRCOARSEOFS,
00050 GEN_MODLFOTOVOL,
00051 GEN_UNUSED1,
00052 GEN_CHORUSSEND,
00053 GEN_REVERBSEND,
00054 GEN_PAN,
00055 GEN_UNUSED2,
00056 GEN_UNUSED3,
00057 GEN_UNUSED4,
00058 GEN_MODLFODELAY,
00059 GEN_MODLFOFREQ,
00060 GEN_VIBLFODELAY,
00061 GEN_VIBLFOFREQ,
00062 GEN_MODENVDELAY,
00063 GEN_MODENVATTACK,
00064 GEN_MODENVHOLD,
00065 GEN_MODENVDECAY,
00066 GEN_MODENVSUSTAIN,
00067 GEN_MODENVRELEASE,
00068 GEN_KEYTOMODENVHOLD,
00069 GEN_KEYTOMODENVDECAY,
00070 GEN_VOLENVDELAY,
00071 GEN_VOLENVATTACK,
00072 GEN_VOLENVHOLD,
00073 GEN_VOLENVDECAY,
00074 GEN_VOLENVSUSTAIN,
00075 GEN_VOLENVRELEASE,
00076 GEN_KEYTOVOLENVHOLD,
00077 GEN_KEYTOVOLENVDECAY,
00078 GEN_INSTRUMENT,
00079 GEN_RESERVED1,
00080 GEN_KEYRANGE,
00081 GEN_VELRANGE,
00082 GEN_STARTLOOPADDRCOARSEOFS,
00083 GEN_KEYNUM,
00084 GEN_VELOCITY,
00085 GEN_ATTENUATION,
00086 GEN_RESERVED2,
00087 GEN_ENDLOOPADDRCOARSEOFS,
00088 GEN_COARSETUNE,
00089 GEN_FINETUNE,
00090 GEN_SAMPLEID,
00091 GEN_SAMPLEMODE,
00092 GEN_RESERVED3,
00093 GEN_SCALETUNE,
00094 GEN_EXCLUSIVECLASS,
00095 GEN_OVERRIDEROOTKEY,
00097 /* the initial pitch is not a "standard" generator. It is not
00098 * mentioned in the list of generator in the SF2 specifications. It
00099 * is used, however, as the destination for the default pitch wheel
00100 * modulator. */
00101 GEN_PITCH,
00102 GEN_LAST
00103 };
00104
00105
00109 typedef struct _fluid_gen_t
00110 {
00111 unsigned char flags;
00112 double val;
00113 double mod;
00114 double nrpn;
00115 } fluid_gen_t;
00116
00120 enum fluid_gen_flags
00121 {
00122 GEN_UNUSED,
00123 GEN_SET,
00124 GEN_ABS_NRPN
00125 };
00126
00127 FLUIDSYNTH_API int fluid_gen_set_default_values(fluid_gen_t* gen);
00128
00129
00130
00131 #ifdef __cplusplus
00132 }
00133 #endif
00134 #endif /* _FLUIDSYNTH_GEN_H */
00135
1.2.11.1 written by Dimitri van Heesch,
© 1997-2001