# include/fluidsynth/gen.h

Go to the documentation of this file.

    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