Commit graph

265 commits

Author SHA1 Message Date
derselbst
24a6748a02 use FLUID_LOG rather than fprintf 2017-10-25 16:58:20 +02:00
derselbst
7a3a97a98e even more mixed declarations 2017-10-25 16:57:15 +02:00
derselbst
22c38a4205 avoid storing pointer to stack alloced var 2017-10-25 16:56:06 +02:00
derselbst
bb00ce7b25 rename alsa_autoconnect function to fit conventions 2017-10-25 16:52:37 +02:00
derselbst
aa33bd23c0 avoid mixed declarations 2017-10-25 16:51:29 +02:00
derselbst
ae660ebcdb rename alsa autoconnect setting to fit conventions 2017-10-25 16:49:56 +02:00
Tommaso Cucinotta
31025133b0 Autoconnect ALSA MIDI inputs. 2017-10-25 16:42:13 +02:00
derselbst
5235549172 fix build 2017-10-25 16:28:27 +02:00
derselbst
0b8810ace8 wrap glib byteswap functions in custom FLUID macros 2017-10-25 16:11:43 +02:00
loki666
b07ed23cad dont use atomics for chorus_ and reverb_ params 2017-10-25 15:10:11 +02:00
loki666
33e56b1b32 init with_reverb and with_chrous local variables 2017-10-25 14:53:27 +02:00
loki666
9ebc22d4e1 add typedef for atomics
access atomics via fluid_atomic_X_set/get
2017-10-25 14:38:39 +02:00
derselbst
8f5bd52ea0 use fluid_cb2amp() for lfo calculation 2017-10-25 10:47:03 +02:00
derselbst
27f2ed3750 avoid redundant zero checking
count will never become 0
2017-10-25 10:42:59 +02:00
carlo-bramini
96f0f5fe88 Use _close() on _WIN32 2017-10-24 20:25:58 +02:00
carlo-bramini
6068c20728 Place again list_of_generators_to_initialize[] inside fluid_voice_calculate_runtime_synthesis_parameters() 2017-10-24 20:23:21 +02:00
Marcus Weseloh
e485129705 Merge pull request #249 from mawe42/more-ladspa-cleanup
More LADSPA cleanup and refactor
2017-10-24 15:50:05 +02:00
Marcus Weseloh
dab11fd503 Breakup very long fluid_ladspa_check into smaller functions 2017-10-24 00:40:09 +02:00
Marcus Weseloh
ab26f85bf8 Add check for in-place broken plugins
In-place broken plugins can't cope with input and output audio
ports connected to the same buffer.
2017-10-23 23:16:06 +02:00
Marcus Weseloh
8814926857 Replace number of inputs and outputs on ports with pointer to connected node
Ports can only have a single input or output, so no need for two counters.
And keeping track of the connected node means we can check for
INPLACE_BROKEN plugins, if multiple ports connect to the same node.
2017-10-23 22:12:04 +02:00
Marcus Weseloh
93dbac3535 When clearing LADSPA, also reset connection counts on system nodes 2017-10-23 22:07:58 +02:00
Marcus Weseloh
f1cf28b00c Remove obsolete check for ladspa->state in rvoice mixer
The decision if plugins can be run should stay in the LADSPA codebase.
2017-10-23 21:41:28 +02:00
Marcus Weseloh
a1ff8d0e55 Render all block using a single LADSPA run
Removes the need for VLAs before ladspa call in rvoice mixer and number
for for loops to set up and advance the buffers. Also reduces the number
of state changes (and atomic operations) by calling fluid_ladspa_run only
once.
2017-10-23 21:41:28 +02:00
Marcus Weseloh
105d9835cb Explicity pass in the audio buffer size when creating LADSPA fx.
And don't pass in node buffer sizes into new_fluid_ladspa_node but
determine it from the node type.
2017-10-23 21:41:20 +02:00
derselbst
168274fbbd fix build 2017-10-23 12:43:07 +02:00
R. Mattes
afe915dab2 Fixed dumptuning 2017-10-22 21:36:25 +02:00
carlo-bramini
7db133acae 'mod_count' of struct fluid_voice_t should be an unsigned type. 2017-10-22 19:40:14 +02:00
carlo-bramini
9d49d29aaf Declare list_of_generators_to_initialize[] as global static const. 2017-10-22 19:19:14 +02:00
carlo-bramini
e1c3b46ee2 Fix an handle leak 2017-10-22 19:13:16 +02:00
R. Mattes
38758c78dd Fixed nasty loop test 2017-10-22 18:47:00 +02:00
derselbst
36d8f95584 avoid accessing uninited memory 2017-10-22 16:19:04 +02:00
derselbst
2623f67865 correctly fix use-after-free 2017-10-22 15:00:51 +02:00
derselbst
a54dfa522a remove G_STMT_[START|END]
for readability
2017-10-22 14:45:16 +02:00
derselbst
77ad959913 remove unused fluid_debug() 2017-10-22 14:43:35 +02:00
derselbst
02bb14243a remove unused debug enum 2017-10-22 14:41:00 +02:00
derselbst
3d7465a01e remove FLUID_STMT_[START|END]
for readability
2017-10-22 14:39:06 +02:00
derselbst
2deffc40c0 remove redundant #ifdef LADSPA
cmake will take care of compiling fluid_ladspa.c
2017-10-22 14:31:57 +02:00
derselbst
456b6afa97 remove redundant getopt.h declarations 2017-10-22 13:25:25 +02:00
Marcus Weseloh
799f3ea44c Merge pull request #242 from mawe42/ladspa-additional-fixes
More fixes to LADSPA system
2017-10-22 11:38:37 +02:00
Marcus Weseloh
e18e54d7ae White-space 2017-10-22 11:24:25 +02:00
Marcus Weseloh
e0dcdbcdfc Correct documentation for fluid_ladspa_run 2017-10-22 11:24:25 +02:00
Marcus Weseloh
47d640571b Add missing check for ladspa_is_active to ladsap_control_defaults 2017-10-22 11:24:25 +02:00
Marcus Weseloh
29a4abb9a5 Use int for number of inputs and outputs, some plugins have a lot of ports 2017-10-22 11:24:25 +02:00
derselbst
24614d343d Revert "ladspa: atomically get and set pending_deactivation"
This reverts commit 6c69b8ccff.
2017-10-22 11:23:34 +02:00
Tom M
7146ecd61b Merge pull request #239 from carlo-bramini/fluidsynth_no_glib_1
Fluidsynth no glib 1
2017-10-22 08:47:56 +02:00
Marcus Weseloh
8aa2d14476 Nicer error message when user requests LADSPA but is not available. 2017-10-21 22:40:19 +02:00
Marcus Weseloh
3cc684e47e Avoid a few ifdefs by defining two separate sets of node<->buffer functions 2017-10-21 22:36:34 +02:00
Marcus Weseloh
4d256ce8cc Add new command to FluidSynth shell to set control ports to default value 2017-10-21 19:49:49 +02:00
Marcus Weseloh
2787b0e10e Add function to automatically set unconnected port to default value
Uses the hints in the plugin to determine the default value.
2017-10-21 19:47:03 +02:00
Marcus Weseloh
7534e54d4f Check LADSPA setup before activation 2017-10-21 19:47:03 +02:00
carlo-bramini
828fdb9744 Completely remove G_STMT_* macros 2017-10-21 19:46:32 +02:00
derselbst
3486bb515b avoid null deref in jack driver 2017-10-21 19:30:09 +02:00
derselbst
c205e0162d avoid null dereferences in delete_fluid_ladspa_plugin()
be extremely paranoid as suggested by clang-tidy
2017-10-21 19:01:07 +02:00
carlo-bramini
6f7ec3b1fc Added FLUID_STMT_START and FLUID_STMT_END 2017-10-21 18:40:57 +02:00
carlo-bramini
031c3671da Replace GPOINTER_TO_INT with FLUID_POINTER_TO_INT 2017-10-21 18:33:27 +02:00
carlo-bramini
122b249e27 Replace G_INT_TO_POINTER with FLUID_INT_TO_POINTER 2017-10-21 18:32:17 +02:00
derselbst
6c69b8ccff ladspa: atomically get and set pending_deactivation 2017-10-21 18:31:20 +02:00
carlo-bramini
82454b9fd5 Remove useless code, it's identical for both LE & BE 2017-10-21 18:29:18 +02:00
carlo-bramini
7e238c5438 Replace g_atomic_*() with fluid_atomic_*() 2017-10-21 18:26:55 +02:00
carlo-bramini
3cea11de7f Replace use of glib types 2017-10-21 18:23:23 +02:00
derselbst
81505b9324 remove redundant ';' 2017-10-21 18:22:19 +02:00
derselbst
402f76bfb8 avoid duplicate ';' 2017-10-21 18:21:03 +02:00
derselbst
1d0cfd605f prefer using enum for LADSPA state 2017-10-21 18:13:40 +02:00
derselbst
4911bc8de4 credit @mawe42 for rewriting LADSPA 2017-10-21 18:09:38 +02:00
derselbst
79cef163a1 fix cast operator precedence 2017-10-21 18:05:54 +02:00
Tom M
c594bdf466 Merge branch 'master' into fluidsynth-on-mcu-1 2017-10-21 17:38:54 +02:00
Tom M
0600ba7c68 Merge pull request #235 from mawe42/ladspa-cleanup
LADSPA effect unit refactor
2017-10-21 17:36:04 +02:00
Marcus Weseloh
9f4c60c6c8 Remove unused includes 2017-10-21 17:18:05 +02:00
carlo-bramini
931e4349a6 Reverted again to unsigned type on fluid_synth_set_reverb_preset(), fixed error on fluid_return_val_if_fail() usage. 2017-10-21 17:13:02 +02:00
carlo-bramini
b15f6c4b2a Reverted change to unsigned type on fluid_synth_set_reverb_preset(), used fluid_return_val_if_fail() for consistency. 2017-10-21 16:49:07 +02:00
carlo-bramini
ae041fdcec Made fluid_gen_info[] static 2017-10-21 16:41:03 +02:00
Marcus Weseloh
885178ef9d Replace timeout in deactivate with mutex and cond. 2017-10-21 16:32:04 +02:00
Marcus Weseloh
5f488123d8 Also make node names case-insensitive and update comments to reflect this. 2017-10-21 15:58:22 +02:00
Marcus Weseloh
cecf115a38 Replace the fuzzy prefix matching by a simple strncasecmp.
That spaces and underscores are treated as equal is no needed anymore
anyway, as the token parser of the shell understands quoted names.
So searching for "Dry / Wet Mix" is possible.

Adds new FLUID_STRNCASECMP macro to fluid_priv.
2017-10-21 15:55:43 +02:00
Marcus Weseloh
e05f1904d5 Update the LADSPA sample rate if the rvoice mixer sample rate changes. 2017-10-21 15:08:04 +02:00
Marcus Weseloh
2c7e1696fd Completely decouple LADSPA engine from FluidSynth
Knowledge of FluidSynth is completely removed from the LADSPA effects
unit. All synchronization happens inside LADSPA with atomic operations.
The LADSPA fx instance created by FluidSynth is only special in that
FluidSynth knows about it and calls it's run method when enabled.

This simplifies the code structure, makes the FluidSynth and the LADSPA
engine easier to maintain due to the loose coupling. It also enables
users to create their own (or additional) LADSPA fx unit for further
processing as soon as we expose the LADSPA functions via a public API.
2017-10-21 15:07:39 +02:00
Marcus Weseloh
812ea57ed0 Bugfix: properly release the LADSPA API lock after exiting fluid_ladspa_check 2017-10-21 15:03:38 +02:00
Marcus Weseloh
d6066d0560 Remove LADSPA deactivation hooks from FluidSynth again 2017-10-21 15:01:02 +02:00
carlo-bramini
6f51fca022 Same fix for fluid_adriver.c 2017-10-21 14:01:22 +02:00
carlo-bramini
6b3ec26242 Added 2 missing tests with FLUID_N_ELEMENTS() 2017-10-21 13:56:48 +02:00
carlo-bramini
fceeffa8de Remove unused variable. 2017-10-21 13:33:28 +02:00
derselbst
cd17358b7e FLUID_STRNCPY: always add terminator '\0' 2017-10-21 13:19:21 +02:00
carlo-bramini
be8acf4e27 Replace PI with standard M_PI. 2017-10-21 13:15:57 +02:00
derselbst
36f7cc1b21 avoid garbage value for client->handler 2017-10-21 13:04:09 +02:00
carlo-bramini
94b752f433 Made fluid_libname[] to be const. 2017-10-21 12:54:53 +02:00
carlo-bramini
4293fddc05 Fixes for using standard math constants 2017-10-21 12:54:00 +02:00
carlo-bramini
48936975e7 Fixed prototype for fluid_synth_set_reverb_preset() 2017-10-21 12:52:03 +02:00
carlo-bramini
0722ab3ab4 Optimized revmodel_preset[] as const and rewritten fluid_synth_set_reverb_preset() 2017-10-21 12:50:52 +02:00
derselbst
9e3b01927e fix use after free 2017-10-21 12:48:52 +02:00
carlo-bramini
95ea3c0fba idlist[], badgen[] and badpgen[] made static const 2017-10-21 12:47:59 +02:00
carlo-bramini
4f8ab20355 fluid_gen_info[] made as a const object 2017-10-21 12:46:13 +02:00
carlo-bramini
87bff4d3ef Optimized arrays to be fully const and FLUID_N_ELEMENTS() support. 2017-10-21 12:43:59 +02:00
carlo-bramini
5e0bc7c143 Optimized fluid_midi_drivers[] 2017-10-21 12:41:42 +02:00
carlo-bramini
a10662e897 Optimized fluid_audio_drivers[] 2017-10-21 12:40:38 +02:00
carlo-bramini
152fb395f5 Optimized fluid_commands[] 2017-10-21 12:38:44 +02:00
derselbst
b266369561 avoid mem leaks in pulse audio driver 2017-10-21 12:17:26 +02:00
derselbst
c7789c0e58 fluid_synth_system_reset: avoid code duplication
reuse fluid_synth_all_sounds_off_LOCAL()
2017-10-20 20:38:37 +02:00
Marcus Weseloh
128a669ef8 Remove volatile from plugin->active 2017-10-20 16:20:50 +02:00
Marcus Weseloh
ce79b5f952 Handle sample rate changes and change sample rate to unsigned long (as defined in ladspa.h) 2017-10-20 15:51:20 +02:00
Marcus Weseloh
4a047726e2 Use memset instead of explicit initialization for port states. 2017-10-20 15:48:34 +02:00