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.
This mode allows multiple audio outputs, typically one for each MIDI input channel. It was unavailable while using audio feedback callback, for instance in QSynth when peak level meters were enabled. This has been fixed by Bernat, and backported from the FluidSynth-2.x branch (ticket #21, changeset 154)
* Use the name "PortAudio" everywhere
* Default device name: "PortAudio Default" solves the clash with the ALSA "default" device.
* enumerate only devices with 2 or more output channels available (ignore input only devices)
* use Pa_GetDefaultOutputDevice() instead of 0 for the default device index
* assign the device index for the requested device name when it matches one.