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.