Program number now uses 8 bits in the SoundFont ID/bank/program integer, where a value of 128 indicates an unset preset.
fluid_synth_unset_program() now causes preset to be unassigned until a program change occurs.
Updated units in documentation for fluid_player_set_midi_tempo().
Reverted return queuing of program changes. Program changes are once again real-time unsafe.
Added public function fluid_synth_unset_program().
Renamed fluid_synth_get_channel_preset_info() to fluid_synth_get_channel_info().
Changed fluid_preset_info_t to fluid_synth_channel_info_t and moved to synth.h header.
Shell 'channels' command now uses thread safe fluid_synth_get_channel_info().
Removed fluid_synth_set_preset_LOCAL(), now just using fluid_channel_set_preset().
Added New In 1.1.1 section to developer docs.
Return queue process is now a thread, instead of a timer, which blocks until signaled by synthesis thread.
fluid_synth_one_block() signals return queue process if any events are pending.
Program change messages are now queued via return event queue if they occur in synthesis context.
Changed fluid_synth_cc() to always queue when in non-synthesis context, no more exceptions.
fluid_synth_bank_select() and fluid_synth_sfont_select() now queue if called out of synthesis context.
Removed checks for synth->state == FLUID_SYNTH_PLAYING, since those functions shouldn't be getting called after state is changed to STOPPED (in delete_fluid_synth).
Added shadow_preset field to fluid_channel_t which stores the last assigned preset (irrespective of queuing).
Presets now deleted under lock for shadow_preset functionality.
Marked fluid_synth_get_channel_preset() as deprecated.
Removed unnecessary test of snd_pcm_state and call to snd_pcm_drop.
Removed SETCC macro in fluid_chan.c and replaced with fluid_channel_set_cc() which uses atomic op.
Removed invalid fluid_channel_set_cc() and fluid_channel_get_cc() function declarations (they were replaced with macros).
Added shadow_polyphony field to fluid_synth_t which is accessed via atomic ops by all threads, polyphony field is now only set by synthesis thread.
fluid_synth_cc() now sets cc channel field atomically and queues an update as needed.
synth_thread_id field assigned every call to fluid_synth_one_block().
fluid_synth_alloc_voice() now atomically accesses gain.
Fixed bug in fluid_timer_join() where timer->thread was set to NULL even if auto_destroy was enabled, but was at that point no longer in existence.
Removed WITHOUT_SERVER from src/config_win32.h.in (the right one this time).
Added atomic value set/get functions for various channel parameters in fluid_chan.h.
Removed shadow parameters in fluid_chorus_t (they weren't needed before).
Merged fluid_chorus_update() into fluid_chorus_set().
Fixed crash bug in Jack driver related to last_client remaining set even if the client was deleted.
fluid_mod_get_value() now uses new fluid_channel_get_* atomic macros.
Synth gain, polyphony, channel pressure, pitch bend and pitch bend sensitivity are now assigned atomically AND querying the value will return the most recent assignment (fixes QSynth knob jumping issues), also changed many _LOCAL functions to update the current assigned value instead of passing the value via the event queue.
Reverb and chorus shadow values set atomically and querying the values will return the most recently assigned ones (fixes QSynth knob jumping issues).
Fixed bug in fluid_synth_process_event_queue_LOCAL() related to chorus parameter order.
Added -Wno-cast-qual to get rid of warning of required cast from (const char *) to (char *).
Removed prio parameter from new_fluid_thread (now just using prio_level of 0 to disable).
Fixed non-blocking in alsa_raw and alsa_seq drivers.
Added polling and non-blocking to OSS MIDI driver.
Updated docs and drivers relating to high priority settings.
Adjusted default values of audio and MIDI high priority to 60 and 50 respectively.
Changed doc/example.c to enable reset_presets option to fluid_synth_sfload().
Updated README-OSX from Ebrahim Mayat.
Some callback prototypes also changed from char * to const char *, including: fluid_log_function_t, fluid_settings_foreach_option_t, fluid_settings_foreach_t and fluid_server_newclient_func_t.
Fixed fluid_event_note() prototype in event.h (looks like an accidental paste in a text editor).
Added @since 1.1.0 to some enums in public headers.
Provided documentation for missing modulator functions in mod.h and other doc updates.
Added missing docs for fluid_event_callback_t.
Added missing docs for fluid_player_add and fluid_player_get_status.
Added missing docs for fluid_version and fluid_version_str.
Fixed missing docs for fluid_synth_program_reset and fluid_synth_sfcount.
Added missing docs for fluid_get_stdin and fluid_get_stdout.
Updated vcproj files for glib/gthread and new .c/.h files.
Moved inline functions in fluid_event_queue.c to .h header.
Moved inclusion of winsock2.h and ws2tcpip.h to fluidsynth_priv.h and before windows.h (fixes redefinition errors).
Fixed some other minor build errors and warnings.
Removed system specific fluid_timer_t code in fluid_sys.c and created a unified system.
Added checks and calls to g_thread_init() in key thread functions.
Removed g_thread_init() from fluidsynth.c.
Added fluid_settings_option_concat() to concatenate string setting options.
Removed fluid_audio_driver_get_names() and fluid_midi_driver_get_names(), since fluid_settings_option_concat() can be used in their place.
Renamed fluid_synth_program_select2() to fluid_synth_program_select_by_sfont_name().
Added fluid_synth_program_select_by_sfont_name(), fluid_synth_get_sfont_by_name() and fluid_synth_set_gen2() to public API.
Re-organized fluid_file_renderer_process_block() since it wasn't being picked up by Doxygen due to #if preprocessor stuff.
All integer and number settings now have FLUID_HINT_BOUNDED_BELOW and FLUID_HINT_BOUNDED_ABOVE hints set.