# include/fluidsynth/voice.h

    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_VOICE_H
    00022 #define _FLUIDSYNTH_VOICE_H
    00023
    00024 #ifdef __cplusplus
    00025 extern "C" {
    00026 #endif
    00027
    00028
    00029   /*
    00030    *  The interface to the synthesizer's voices
    00031    *  Examples on using them can be found in fluid_defsfont.c
    00032    */
    00033
    00038 FLUIDSYNTH_API void fluid_voice_update_param(fluid_voice_t* voice, int gen);
    00039
    00040
    00041   /* for fluid_voice_add_mod */
    00042 enum fluid_voice_add_mod{
    00043   FLUID_VOICE_OVERWRITE,
    00044   FLUID_VOICE_ADD,
    00045   FLUID_VOICE_DEFAULT
    00046 };
    00047
    00048   /* Add a modulator to a voice (SF2.1 only). */
    00049 FLUIDSYNTH_API void fluid_voice_add_mod(fluid_voice_t* voice, fluid_mod_t* mod, int mode);
    00050
    00052 FLUIDSYNTH_API void fluid_voice_gen_set(fluid_voice_t* voice, int gen, float val);
    00053
    00055 FLUIDSYNTH_API float fluid_voice_gen_get(fluid_voice_t* voice, int gen);
    00056
    00058 FLUIDSYNTH_API void fluid_voice_gen_incr(fluid_voice_t* voice, int gen, float val);
    00059
    00060
    00072 FLUIDSYNTH_API unsigned int fluid_voice_get_id(fluid_voice_t* voice);
    00073
    00074
    00075 FLUIDSYNTH_API int fluid_voice_is_playing(fluid_voice_t* voice);
    00076
    00089 FLUIDSYNTH_API int fluid_voice_optimize_sample(fluid_sample_t* s);
    00090
    00091
    00092
    00093 #ifdef __cplusplus
    00094 }
    00095 #endif
    00096 #endif /* _FLUIDSYNTH_VOICE_H */
    00097