Commit graph

386 commits

Author SHA1 Message Date
Josh Green
2579d853fb Added FLUID_EVENT_QUEUE_ELEM_MIDI_MODE event queue event.
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.
2009-10-08 05:31:11 +00:00
Josh Green
422924ee45 Added -Wno-unused-parameter because its annoying to have warning for unused parameters.
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.
2009-10-07 05:20:55 +00:00
Josh Green
799f01a2dc Added no/yes options to boolean string settings that were missing them.
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.
2009-10-06 06:53:53 +00:00
Josh Green
16a6d7ef63 Removed all but the synth parameter from new_fluid_file_renderer(), which now accesses the synth's settings directly.
Fixed incorrect order with synth.device-id setting.
2009-10-05 07:03:42 +00:00
Josh Green
ebd21b4dd9 Added new settings public functions: fluid_settings_foreach_option_alpha, fluid_settings_option_count and fluid_settings_foreach_alpha.
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.
2009-10-05 00:13:48 +00:00
Josh Green
ae6b17d916 Fixed some warnings in fluid_filerenderer and improved -T, -E, -O help output for case where libsndfile support not enabled. 2009-10-03 18:21:12 +00:00
Josh Green
e0a18f7c2a Added libsndfile support to fluid_filerenderer.c with file type, audio format and endian byte order options.
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.
2009-10-03 18:12:19 +00:00
Josh Green
43a9923dff Added public API functions: fluid_synth_sysex, fluid_synth_activate_key_tuning, fluid_synth_activate_octave_tuning, fluid_synth_tune_notes, fluid_synth_activate_tuning and fluid_synth_deactivate_tuning.
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).
2009-09-29 21:40:28 +00:00
Josh Green
012f627017 Tuning unref event is now sent in fluid_channel_init() if there is an old tuning.
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().
2009-09-26 20:10:14 +00:00
Josh Green
ac93e45103 Tuning system should now be thread safe.
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.
2009-09-25 00:56:48 +00:00
Josh Green
e5c832c587 Merged fluidsynth_event_queue branch r207:223 into trunk. 2009-09-22 07:04:07 +00:00
David Henningsson
cf39719f5d Remove some debug messages which were added in the last commit 2009-08-14 19:40:50 +00:00
David Henningsson
c914b41476 Fix scaletune error (ticket #26) and synth reset between songs (ticket #31) 2009-08-14 19:37:07 +00:00
David Henningsson
bacd8dbe37 Fix build problem on Solaris (fixes ticket #52) 2009-07-30 08:38:42 +00:00
David Henningsson
17d65e2889 Implement fluid_player_set_loop (fixes ticket #33), fix small memory leak in midi player. 2009-07-28 12:39:06 +00:00
David Henningsson
0f79f2f496 Removed GPL violation (code ripped from USB-MIDI driver rewritten) 2009-07-28 10:48:59 +00:00
David Henningsson
65f822722e Simple clarification regarding synth->effect_channels and fx_left_buf/fx_right_buf 2009-07-27 10:51:05 +00:00
David Henningsson
fa4be13951 Set default reverb level back to zero. 2009-07-09 04:24:30 +00:00
David Henningsson
94e1720aa5 Fix default values to be more consistent with MIDI spec. Also fixes ticket #29 2009-07-08 09:42:17 +00:00
David Henningsson
c67206e383 Fix spelling errors 2009-06-22 19:15:57 +00:00
David Henningsson
f831f48db5 Fix correct man page section 2009-06-18 09:26:31 +00:00
David Henningsson
174ad10e1b Call sample timers before processing block to get better latency 2009-06-07 08:10:09 +00:00
Josh Green
22edb56803 src/Makefile.am: Added -Wl,--as-needed to cut down on dependencies.
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.
2009-06-07 05:16:47 +00:00
David Henningsson
20949ac440 Use sequencer as a buffer for incoming midi events to ensure thread safety (ticket #43). Note: should be reverted once the synth has better thread safety on its own. 2009-06-04 20:41:15 +00:00
David Henningsson
e25765e61b Enable sequencer to accept all types of events that MIDI threads can generate. Change behavior of fluid_sequencer_send_at to ensure thread safety. 2009-06-04 20:31:06 +00:00
David Henningsson
a8bffeb370 Avoid segfault in midi router command handler. Closes ticket #45. 2009-05-14 23:59:30 +00:00
David Henningsson
76b598313a Add functions to get all valid audio/midi driver names (fixes ticket #41) 2009-05-09 14:51:22 +00:00
David Henningsson
4880b8e574 Fix two memory leaks in the sequencer. 2009-05-04 05:51:25 +00:00
David Henningsson
7993412330 Modify sequencer to (optionally) use sample timer instead of system timer 2009-05-03 11:32:44 +00:00
Josh Green
95e985b4c9 Removed WIN32 use of recv() in fluid_istream_gets() since it is also used for stdin. Probably wont work for WIN32 TCP sockets though. 2009-05-02 19:58:23 +00:00
Pedro Lopez-Cabanillas
70aff30d4b fix for win32 build 2009-05-01 19:06:49 +00:00
Pedro Lopez-Cabanillas
4709880402 Doxygen documentation: license changed to CC-BY-SA 3.0
Modules created: audio and settings
2009-05-01 17:26:42 +00:00
Josh Green
83b5ac65ec Added doc/README with info on building API docs and online doc link. 2009-05-01 07:08:36 +00:00
Josh Green
d5cf08dd14 Changed the Doxygen API: 1.1.0 stuff to @since: 1.1.0. 2009-04-29 04:31:11 +00:00
Josh Green
5394a4e81e Fixed build by removing paste duplicates in fluid_filerenderer.c and some other misc stuff. 2009-04-27 19:55:08 +00:00
Josh Green
5fcedecdfd glib is now a dependency, lots of platform specific code moved to glib, implemented initial WIN32 TCP socket code (not tested). 2009-04-27 19:13:49 +00:00
David Henningsson
7de961292b Sample timers and fast MIDI-file rendering (fixes ticket #15) 2009-04-25 15:17:15 +00:00
Pedro Lopez-Cabanillas
648a9f155b * Documentation revision for 1.1.0 2009-04-20 21:10:55 +00:00
Josh Green
90625a557d Fixed build after recently removing sf2 directory and example.sf2. 2009-04-20 03:42:37 +00:00
Josh Green
6f84d0eb2e Removed sf2 directory and non-DFSG compliant VintageDreamsWaves-v2.sf2.
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.
2009-04-20 00:50:41 +00:00
David Henningsson
2c1b6570e6 Fixed sample rate warning message 2009-04-15 04:29:11 +00:00
David Henningsson
9ca6718553 Fix bank selection logic, as reported by D Bartolec 2009-04-15 04:08:16 +00:00
Josh Green
78e8b1c14e Version 1.0.9, bumped version, no library interface changes, removed
doc/html and doc/api directories from EXTRA_DIST, MIDI channel now 
displayed when a preset is substituted.
2009-04-12 05:11:20 +00:00
Pedro Lopez-Cabanillas
c3f3fa3762 * fixed compilation under MSVC 2008 and older. 2009-04-02 18:28:07 +00:00
Josh Green
251f96524c Removed ltconfig, fixes to FluidSynth man page, re-order of default
driver selection, implemented preset selection fallback logic.
2009-03-16 01:37:21 +00:00
Josh Green
b28c01954a New jack MIDI driver, updated README-OSX. 2009-03-09 05:48:04 +00:00
Pedro Lopez-Cabanillas
7e96e922d9 Fixed changelog 2009-03-02 21:22:05 +00:00
Pedro Lopez-Cabanillas
af673afaba Fix for ticket #22 - Wrong tempo changes 2009-02-28 23:16:36 +00:00
Pedro Lopez-Cabanillas
5b4387e332 Fixed Jack driver in "audio.jack.multi=yes" mode.
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)
2009-02-22 09:52:32 +00:00
Josh Green
b49458e817 Applied patch from KO Myung-Hun for OS/2 support including Dart audio driver. 2009-02-04 07:45:44 +00:00