diff --git a/fluidsynth/include/fluidsynth/gen.h b/fluidsynth/include/fluidsynth/gen.h index 4b625831..1f46fe2a 100644 --- a/fluidsynth/include/fluidsynth/gen.h +++ b/fluidsynth/include/fluidsynth/gen.h @@ -95,11 +95,22 @@ enum fluid_gen_type GEN_EXCLUSIVECLASS, /**< Exclusive class number */ GEN_OVERRIDEROOTKEY, /**< Sample root note override */ - /* the initial pitch is not a "standard" generator. It is not - * mentioned in the list of generator in the SF2 specifications. It - * is used, however, as the destination for the default pitch wheel - * modulator. */ - GEN_PITCH, /**< Pitch @note Not a real SoundFont generator */ + /** + * @brief Initial Pitch + * + * @note This is not "standard" SoundFont generator, because it is not + * mentioned in the list of generators in the SF2 specifications. + * It is used by FluidSynth internally to compute the nominal pitch of + * a note on note-on event. By nature it shouldn't be allowed to be modulated, + * however the specification defines a default modulator having "Initial Pitch" + * as destination (cf. SF2.01 page 57 section 8.4.10 MIDI Pitch Wheel to Initial Pitch). + * Thus it is impossible to cancel this default modulator, which would be required + * to let the MIDI Pitch Wheel controller modulate a different generator. + * In order to provide this flexibility, FluidSynth >= 2.1.0 uses a default modulator + * "Pitch Wheel to Fine Tune", rather than Initial Pitch. The same "compromise" can + * be found on the Audigy 2 ZS for instance. + */ + GEN_PITCH, GEN_CUSTOM_BALANCE, /**< Balance @note Not a real SoundFont generator */ /* non-standard generator for an additional custom high- or low-pass filter */ diff --git a/fluidsynth/include/fluidsynth/log.h b/fluidsynth/include/fluidsynth/log.h index 00d802f5..3ea74b26 100644 --- a/fluidsynth/include/fluidsynth/log.h +++ b/fluidsynth/include/fluidsynth/log.h @@ -77,7 +77,11 @@ fluid_log_function_t fluid_set_log_function(int level, fluid_log_function_t fun, FLUIDSYNTH_API void fluid_default_log_function(int level, const char *message, void *data); -FLUIDSYNTH_API int fluid_log(int level, const char *fmt, ...); +FLUIDSYNTH_API int fluid_log(int level, const char *fmt, ...) +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) +__attribute__ ((format (printf, 2, 3))) +#endif +; #ifdef __cplusplus diff --git a/fluidsynth/include/fluidsynth/synth.h b/fluidsynth/include/fluidsynth/synth.h index 369a2c26..f4802ee5 100644 --- a/fluidsynth/include/fluidsynth/synth.h +++ b/fluidsynth/include/fluidsynth/synth.h @@ -32,13 +32,13 @@ extern "C" { * @brief Embeddable SoundFont synthesizer * * You create a new synthesizer with new_fluid_synth() and you destroy - * if with delete_fluid_synth(). Use the settings structure to specify + * it with delete_fluid_synth(). Use the fluid_settings_t structure to specify * the synthesizer characteristics. * * You have to load a SoundFont in order to hear any sound. For that * you use the fluid_synth_sfload() function. * - * You can use the audio driver functions described below to open + * You can use the audio driver functions to open * the audio device and create a background audio thread. * * The API for sending MIDI events is probably what you expect: @@ -176,7 +176,7 @@ FLUIDSYNTH_API int fluid_synth_count_effects_groups(fluid_synth_t *synth); /* Synthesis parameters */ -FLUIDSYNTH_API void fluid_synth_set_sample_rate(fluid_synth_t *synth, float sample_rate); +FLUID_DEPRECATED FLUIDSYNTH_API void fluid_synth_set_sample_rate(fluid_synth_t *synth, float sample_rate); FLUIDSYNTH_API void fluid_synth_set_gain(fluid_synth_t *synth, float gain); FLUIDSYNTH_API float fluid_synth_get_gain(fluid_synth_t *synth); FLUIDSYNTH_API int fluid_synth_set_polyphony(fluid_synth_t *synth, int polyphony); @@ -244,7 +244,7 @@ FLUID_DEPRECATED FLUIDSYNTH_API const char *fluid_synth_error(fluid_synth_t *syn enum fluid_synth_add_mod { FLUID_SYNTH_OVERWRITE, /**< Overwrite any existing matching modulator */ - FLUID_SYNTH_ADD, /**< Add (sum) modulator amounts */ + FLUID_SYNTH_ADD, /**< Sum up modulator amounts */ }; FLUIDSYNTH_API int fluid_synth_add_default_mod(fluid_synth_t *synth, const fluid_mod_t *mod, int mode); @@ -296,7 +296,7 @@ enum fluid_iir_filter_type }; /** - * Specifies optional settings to use for the custom IIR filter + * Specifies optional settings to use for the custom IIR filter. Can be bitwise ORed. */ enum fluid_iir_filter_flags { diff --git a/fluidsynth/include/fluidsynth/version.h b/fluidsynth/include/fluidsynth/version.h index cf972d39..e85a00ec 100644 --- a/fluidsynth/include/fluidsynth/version.h +++ b/fluidsynth/include/fluidsynth/version.h @@ -31,10 +31,10 @@ extern "C" { * @brief Library version functions and defines */ -#define FLUIDSYNTH_VERSION "2.0.8" /**< String constant of libfluidsynth version. */ +#define FLUIDSYNTH_VERSION "2.1.0" /**< String constant of libfluidsynth version. */ #define FLUIDSYNTH_VERSION_MAJOR 2 /**< libfluidsynth major version integer constant. */ -#define FLUIDSYNTH_VERSION_MINOR 0 /**< libfluidsynth minor version integer constant. */ -#define FLUIDSYNTH_VERSION_MICRO 8 /**< libfluidsynth micro version integer constant. */ +#define FLUIDSYNTH_VERSION_MINOR 1 /**< libfluidsynth minor version integer constant. */ +#define FLUIDSYNTH_VERSION_MICRO 0 /**< libfluidsynth micro version integer constant. */ FLUIDSYNTH_API void fluid_version(int *major, int *minor, int *micro); FLUIDSYNTH_API char* fluid_version_str(void); diff --git a/fluidsynth/lib/libfluidsynth.a b/fluidsynth/lib/libfluidsynth.a index a69198b2..e8deceb1 100644 Binary files a/fluidsynth/lib/libfluidsynth.a and b/fluidsynth/lib/libfluidsynth.a differ