Commit Graph

1190 Commits

Author SHA1 Message Date
derselbst c02a5ae5ce remove redundant VERSION macro
use FLUIDSYNTH_VERSION instead
2017-12-09 22:09:24 +01:00
derselbst 97a4e1aa1c fix a bug when reading 24 bit soundfonts 2017-12-09 20:03:37 +01:00
derselbst 29d194ed6d Revert "adjust voice gain for 24bit samples"
This reverts commit 1629f9f997. Accidentally committed to wrong master branch instead of sm24.
2017-12-09 16:48:57 +01:00
derselbst 1629f9f997 adjust voice gain for 24bit samples 2017-12-08 20:24:17 +01:00
Tom M d463dff617
Merge pull request #297 from FluidSynth/cleanup3
YetAnotherCleanup
2017-12-07 17:14:13 +01:00
Tom M ea8ac50333
Merge branch 'master' into cleanup3 2017-12-07 17:11:35 +01:00
Tom M e4972c5038
Merge pull request #298 from carlo-bramini/winmidi-improvements
Simpler implementation of WINMIDI driver.
2017-12-06 19:22:53 +01:00
derselbst a4e43d3543 re-introduce fluid_synth_set_gen2()
to reduce API breakage
2017-12-06 12:18:06 +01:00
derselbst a808e28f8b cleanup winmidi driver 2017-12-05 22:57:28 +01:00
Tom M e0e319cf30
Merge pull request #294 from FluidSynth/overflow-important-channels
New feature for overflow calculation: specify important channels
2017-12-05 09:22:54 +01:00
derselbst 38fc7fb027 reorder public fluid_voice declarations 2017-12-04 20:42:01 +01:00
Marcus Weseloh ae48793c28 Replace loop with memset 2017-12-04 18:53:47 +01:00
Marcus Weseloh d77974c135 Add note about channel numbers being 1-based. 2017-12-04 18:50:43 +01:00
derselbst 8a4033e2e1 mention fluid_player_seek() in API docs 2017-12-03 21:37:25 +01:00
derselbst 6eb450b40c silence -Wdocumentation warnings 2017-12-03 20:31:00 +01:00
carlo-bramini 7be328a357 Simpler implementation of WINMIDI driver. 2017-12-03 19:37:20 +01:00
derselbst 82450e0ee1 remove FLUID_NUM_MOD macro from public API 2017-12-03 18:39:24 +01:00
derselbst 76d4028aeb calculate voice amplitudes on-the-fly
no need for saving them in fluid_voice_t
2017-12-03 18:28:22 +01:00
derselbst d086ca8046 refactor fluid_voice_update_param() 2017-12-03 17:55:31 +01:00
derselbst 6e59d3bca9 use fluid_voice_gen_value() rather than _GEN macro 2017-12-03 16:24:10 +01:00
derselbst c30d519572 return -1 in fluid_midi_file_getc()
closes #93
2017-12-03 15:13:26 +01:00
carlo-bramini cdfe8d3d7d Include fixes 2 (#296)
Remove redundant includes
2017-12-03 13:12:27 +01:00
derselbst 0f737708c7 optimize fluid_voice_t in size 2017-12-02 18:25:58 +01:00
Marcus Weseloh 8525e420b0 Allow overwriting the compile-time flags for gcc/clang. 2017-12-02 17:38:41 +01:00
Marcus Weseloh a3aef4b2ee Add ability to mark channels as important in overflow priority calculation
FluidSynths overflow priority calculation, that determines which voice to
kill if the current polyphony limit has been reached, treats all channels
as equal. Only percussion channels can get a user defined score added to
their priority.

In certain use-cases there can be a number of MIDI channels that are much
more important than other ones, and not just percussion channels. For
example, a channel playing a constant pad sound which would be very
noticeable if killed.

This change adds two new synth.overflow settings:
- synth.overflow.important
- synth.overflow.important-channels

They add the ability to mark MIDI channels as "important" and have
the overflow calculation add a user defined score to voices on those
channels.
2017-12-02 15:57:21 +01:00
Marcus Weseloh 0a57c4cf0a Document synth.overflow.* settings 2017-12-02 15:54:45 +01:00
derselbst 80063d58f1 Merge branch 'master' into cleanup3 2017-12-02 13:04:49 +01:00
Marcus Weseloh 3973b9566d Add float-typed wrapper for fluid_settings_getnum
Avoids the need to store the value in a local double before assigning
it to the target variable.
2017-12-02 12:19:47 +01:00
Marcus Weseloh ac5aa418ae Use float instead of fluid_real_t for overflow parameters and calculations 2017-12-02 12:19:47 +01:00
Tom M 7d3ea52171
Merge pull request #293 from FluidSynth/settings-cleanup
Settings cleanup and refactor
2017-12-02 11:15:00 +01:00
derselbst 50923b3f0e remove redundant string termination
already done by FLUID_STRNCPY macro
2017-12-02 11:01:31 +01:00
Marcus Weseloh ba48024f59 Ensure that fluid_synth_set_reverb_on is protect by api mutex
The function calls fluid_synth_update_mixer, which should only be
called with the mutex held.

This also removes the need for fluid_synth_t::with_reverb to be an atomic.
fluid_synth_t::with_chorus was already protected by the mutex and doesn't
need to be an atomic either.
2017-12-01 21:35:03 +01:00
Marcus Weseloh ee227986e5 Explicity set overflow settings in new_fluid_synth
Removes the need for faked callback calls.
2017-12-01 21:24:31 +01:00
Marcus Weseloh 69cf9e1ec2 overflow settings callback should use passed value, not query settings 2017-12-01 21:18:30 +01:00
Marcus Weseloh 6b79c05dc2 Rename setting callbacks to clarify their purpose 2017-12-01 21:09:06 +01:00
Marcus Weseloh 750ffc003b Cleanup settings callback signatures to avoid error hiding casts
Removes the need to cast the callback functions when registering them.
Also makes the needed cast from (void *) to (fluid_synth_t *) explicit
in the callback handlers.
2017-12-01 21:02:21 +01:00
Marcus Weseloh 1b5cf26000 Change settings callback to return void
The callback return value is not used anywhere anyway.
2017-12-01 20:51:21 +01:00
Marcus Weseloh 6ab0cc3024 Refactor and cleanup fluid_settings_set* functions
- backwards incompatible: remove "yes", "no" support for int settings via
  fluid_settings_setstr
- backwards incompatible: remove silent setting creation of named setting
  does not exist
- Unlock settings mutex before calling into an update callback, to
  avoid possible deadlock with FluidSynth API mutex
2017-12-01 20:21:07 +01:00
Marcus Weseloh 4b090c2afb Use case-insensitive string match for boolean settings 2017-12-01 19:29:29 +01:00
Marcus Weseloh 9f579d99f3 Remove callback and data parameters from settings_register_* functions
Callback functions and user data can be set with the previously added
functions. And callbacks are only used in a single place in new_fluid_synth,
all other calls to setttings_register_* set those two params to NULL,
so lets remove them everywhere.
2017-11-30 22:57:19 +01:00
Marcus Weseloh 5cd03e0171 Add dedicated functions for registering update callbacks on settings
This avoids having to duplicate the default, min, max and hint values
when setting a callback function for an existing setting.
2017-11-30 22:56:01 +01:00
derselbst 35f679d16d mention removed enum vals in API doc 2017-11-30 13:34:33 +01:00
derselbst c7675a8269 bump version to 2.0 2017-11-30 13:25:40 +01:00
derselbst 68d812ae30 remove *_LAST enum values from public API doc
addresses #186
2017-11-30 13:18:38 +01:00
derselbst cde8517c5a make sure doxygen generates ladspa-related docs 2017-11-30 13:01:16 +01:00
derselbst 01040409ba exclude private headers from public API doc generation 2017-11-30 12:55:20 +01:00
derselbst 5bc1f57ec5 mention ladspa functions in API docs 2017-11-27 18:30:20 +01:00
derselbst 73806d653c remove orphaned fluid_synth_set_midi_router() decl. 2017-11-27 18:04:21 +01:00
derselbst c5cdcb8eda remove deprecated fluid_synth_reset_tuning() 2017-11-27 18:01:19 +01:00
derselbst 70a1c82a5e remove deprecated fluid_synth_select_tuning() 2017-11-27 18:00:50 +01:00