Added public function fluid_midi_event_set_sysex().
MIDI sysex events now use param2 to indicate if its dynamically allocated or not.
Added SYSEX handling to alsa sequencer.
Re-wrote fluid_midi_parser_parse to handle SYSEX data (used by ALSA raw MIDI, CoreMidi, Jack and OSS MIDI drivers).
Added 'out' parameter to fluid_istream_readline for displaying the prompt.
Fixed bug in MIDI router where router mutex was left in a locked state with MIDI system reset messages.
Added SYSEX handling to MIDI router.
Added SYSEX handling to MidiShare driver.
Fixed synth->thread_queues free bug caused by order of fluid_private_free and queue frees.
Bug fixes in fluid_synth_sysex() to handle GM ON SYSEX and check length for GS reset message.
WIN32 HACK in fluid_sys.c to OR a flag into fluid_istream_t and fluid_ostream_t on WIN32 to differentiate between file descriptors and sockets.
Bug fix in delete_fluid_timer() where double free would occur if auto destroy was enabled.
Fixed bugs in WIN32 socket server code, which now functions properly.
CR chars are stripped in fluid_istream_gets().
Added SYSEX processing to winmidi driver, which was a non-trivial undertaking! Fixed allocation bug related to midi.winmidi.device setting.
Command line string option settings are now surrounded by single quotes and separate with commas.
Added handling of GM On/Off and GS reset SYSEX messages.
Added synth.midi-mode-lock parameter to prevent SYSEX messages from changing MIDI mode.
If MIDI mode is set to "gm" or "gs" then note-offs are ignored for percussion instruments (except Long Guiro and Long Whistle).
Split off MIDI Tuning Standard SYSEX messages into fluid_synth_sysex_midi_tuning.
Removed many unused variables.
Added a new macro fluid_profile_ref_var() for defining a profiling reference variable, to get rid of unused variable warnings when profiling is disabled.
Removed unused functions fluid_oss_get_caps and fluid_oss_get_sample_formats.
Added synth.midi-mode setting with normal/gm/gs/xg options, does not do anything yet.
Removed -Wno-unused from configure.ac so that warnings are given for unused variables and functions.
Shell output "no such settings" was missing newline and corrected grammer.
Shell settings and info commands now list settings and options in alphabetical order.
Added fluid_list_str_compare_func() for sorting string lists.
Moved setting name token parsing to fluid_settings_get() and fluid_settings_set().
fluidsynth -o help now lists settings alphabetically and displays string option values.
Added 3 additional parameters to new_fluid_file_renderer() for specifying audio format options.
Added public functions fluid_file_renderer_get_(type/format/endian)_names.
Added new settings options "audio.file.(type/format/endian)".
fluid_aufile.c updated to use new file renderer.
fluid_settings_add_option and fluid_settings_remove_option now use const char *.
Added FLUID_N_ELEMENTS and FLUID_MUTEX_INIT to fluid_sys.h.
Added -E, -O and -T command line options and help for file rendering options.
Re-organized --help output to be lower case letter before upper case.
Added FLUID_STRRCHR to fluidsynth_priv.h.
Added audio.realtime, audio.realtime-prio, midi.realtime and midi.realtime-prio (only ALSA updated to use them at this point).
Fixed bug in new_fluid_channel() where tuning field was not initialized.
fluid_settings.h had wrong field order in prototypes for fluid_settings_register_num and fluid_settings_register_int.
Added multi core support: "synth.cpu-cores" setting, fluid_synth_core_thread_func() and many core_ variables to fluid_synth_t.
Switched fluid_mutex_t back to a normal non-recursive mutex and added fluid_rec_mutex_t.
Added fluid_cond_t thread synchronization stuff.
Added fluid_cond_mutex_t which is a dynamically allocated regular mutex for use with fluid_cond_t.
fluid_settings_t and fluid_synth_t are now using fluid_rec_mutex_t (same as before, just name change).
Added platform specific fluid_thread_self_set_prio() functions to fluid_sys.c for activating high priority for the calling thread.
Modified new_fluid_thread() to take a prio and prio_level parameters.
Added missing fluid_atomic_pointer_set().
fluid_voice_write() changed to only take a voice audio buffer to render to, mixing is done separately with new fluid_voice_mix().
fluid_voice_write() now returns the count of samples rendered.
fluid_voice_effects() split into fluid_voice_filter() and fluid_voice_mix().
Added dsp_buf_count field to fluid_voice_t to keep track of last count of samples rendered to dsp_buf.
fluid_voice_get_channel() converted to a macro.
Added FLUID_DEFAULT_AUDIO_RT_PRIO and FLUID_DEFAULT_MIDI_RT_PRIO in fluidsynth_priv.h, set to 90 and 80 respectively which get used for audio.realtime-prio and midi.realtime-prio (was 90 and 90 before).
Some one liner functions in fluid_chan.c moved to macros in fluid_chan.h.
Added tuning_bank and tuning_prog fields to fluid_channel_t.
Unnecessary 'if (status & 0x80)' removed from fluid_midi_file_read_event().
Added paramptr field to fluid_midi_event_t for dynamic SYSEX data (size of data stored to param1).
SYSEX messages now handled in fluid_midi_file_read_event().
delete_fluid_midi_event() will free paramptr if its a SYSEX message.
Removed fluid_midi_send_event() and replaced with fluid_synth_handle_midi_event().
Added some enums and #defines for SYSEX MIDI Tuning Standard messages.
Added synth.device-id settings field for SYSEX device ID.
Renamed fluid_synth_cc_LOCAL to fluid_synth_cc_real, which now handles event queue determination.
Tuning bank and program changes are now handled in fluid_synth_cc_real().
Added fluid_synth_sysex() for processing SYSEX messages (MIDI Tuning Standard messages only currently).
Added public fluid_synth_activate_key_tuning() which has an additional apply parameter.
Added public fluid_synth_activate_octave_tuning() which has an additional apply parameter.
Added public fluid_synth_activate_tuning() which has an additional apply parameter.
Added public fluid_synth_deactivate_tuning() which has an additional apply parameter.
Reverted behavior of fluid_synth_create_key_tuning, fluid_synth_create_octave_tuning and fluid_synth_reset_tuning, to be non-realtime.
SYSEX messages now handled in fluid_synth_handle_midi_event().
Added reference counting to fluid_tuning_t.
Added fluid_tuning_duplicate() to duplicate a tuning.
Added FLUID_EVENT_QUEUE_ELEM_(SET_TUNING/REPL_TUNING/UNREF_TUNING) events.
The tuning iterator functions now use a thread private variable to be thread safe.
Tuning changes can now be activated in realtime (existing voices updated).
Added fluid_synth_get_event_elem() helper function.
Added fluid_atomic_float_(get/set) which use automic integer functions and memcpy.
CPU load should now be thread safe (using atomic integer functions to get/set float value).
Added missing free of thread_queues private in delete_fluid_synth().
Added conversion macros to/from integers and pointers.
Some cleanup in fluid_voice_calculate_gen_pitch() and made it public to libfluidsynth, used to activate tuning changes in realtime.
src/ fluid_synth.c: Declared functions as static which are local,
removed useless fluid_synth_verify_settings function.
src/fluid_synth.h: Removed declarations which are now static.
src/fluid_voice.c: Declared functions as static which are local.
src/fluid_voice.h: Removed declarations which are now static,
added note concerning fluid_voice_gen_value being declared but not used.
Removed doc/example.sf2 which was an excerpt from VintageDreamsWaves-v2.sf2.
Removed doc/midi_time.txt which was a note by Peter Hanappe on MIDI timing, but no longer needed in the source tree.