Commit graph

1281 commits

Author SHA1 Message Date
carlo-bramini
48941897b9 No need to increment string pointer at exit. 2017-11-12 16:27:36 +01:00
carlo-bramini
4a5648141c glib.h is already included by fluidsynth_priv.h 2017-11-12 16:26:50 +01:00
carlo-bramini
b8766aef67 Use alloca()/_alloca() on C89/C90 compilers without VLA 2017-11-12 16:16:34 +01:00
carlo-bramini
f9ca336a2d Check if pulse driver is installed and enabled. 2017-11-12 14:56:57 +01:00
carlo-bramini
3fb1bf8d5c Remove includes already into fluidsynth_priv.h with #ifdef...#endif 2017-11-12 14:53:26 +01:00
carlo-bramini
d1dd24f45a Remove obsolete config_win32.cmake 2017-11-12 13:26:08 +01:00
carlo-bramini
582d316f9f Remove obsolete config_win32.h 2017-11-12 13:24:36 +01:00
Marcus Weseloh
e844b3567c Fix typo in FLUID_STRNCASECMP for Windows 2017-11-12 11:00:20 +01:00
Marcus Weseloh
50b50e765d Remove debug print statement 2017-11-12 00:54:10 +01:00
Marcus Weseloh
9509628da1 Use glib dynamic librar loading functions 2017-11-12 00:53:57 +01:00
derselbst
13728ed0bd update API doc about fluid_audio_driver_register() 2017-11-11 15:27:35 +01:00
derselbst
52b892c534 consistently use fluid_seq_id_t for new API
ABI breaking change
2017-11-11 12:18:09 +01:00
derselbst
696c736b2f introduce separate type for client IDs 2017-11-11 12:14:13 +01:00
derselbst
c7a02bd812 make fluid_settings_foreach_t const correct 2017-11-11 11:09:17 +01:00
derselbst
12a9692211 make fluid_settings_foreach_option_t const correct 2017-11-11 11:04:12 +01:00
Tom M
180038d416
Merge pull request #271 from fabiangreffrath/cmake_mingw_libname
fix library file names when building with MinGW and CMake
2017-11-10 20:58:23 +01:00
derselbst
4571d996b3 remove unused forward declarations 2017-11-10 20:49:06 +01:00
derselbst
f2c4cfb6b6 remove orphaned /src/unused/ dir 2017-11-10 20:48:37 +01:00
Marcus Weseloh
007cd2b5fc Merge branch 'master' into ladspa
Resolve conflicts in:
	src/bindings/fluid_ladspa.c
2017-11-10 19:36:30 +01:00
Marcus Weseloh
b2aed2b317 Fix compilation error if LADSPA is not enabled 2017-11-10 19:09:04 +01:00
Tom M
987aa33486
Merge pull request #263 from FluidSynth/rm-def-mod
support removing default modulators
2017-11-10 16:41:56 +01:00
Marcus Weseloh
1a91e971d4 Always prepare the reverb and chorus sends when LADSPA is active
This change enables users to disable the internal reverb and chorus
and process the mixed down reverb and chorus send signals using
LADSPA plugins.
2017-11-10 15:37:00 +01:00
Fabian Greffrath
9a205c0b8b fix library file names when building with MinGW and CMake
We have applied this patch to the mingw-w64-fluidsynth package [1] in
MSYS2 to recieve the same library file names when building with CMake
as we got when building with Autotools.

[1] https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-fluidsynth
2017-11-10 13:20:14 +01:00
Tom M
a13cf153d9
Merge pull request #265 from FluidSynth/delete-refactor
refactor destructor functions to return void if possible and make them safe when called with NULL
2017-11-08 15:45:49 +01:00
Marcus Weseloh
87c37f305d Explicity create left and right host buffers
Makes it possible to create a single host buffer node for the
effect sends.
2017-11-07 23:49:57 +01:00
Marcus Weseloh
4b2414761b Reapply "make struct _fluid_ladspa_fx_t opaque" effects from 5afb1a854b 2017-11-07 23:49:57 +01:00
Marcus Weseloh
9f6ef4e67e Cleanup API and docs
- Rename functions to clarify purpose
- Group functions in header by purpose
- Cleanup doc comments
- Remove unused members from structs
2017-11-07 23:49:57 +01:00
Marcus Weseloh
6508d36bea Remove some macros and cleanup comments 2017-11-07 23:49:57 +01:00
Marcus Weseloh
1ba0450f3a Remove enum for output mode, use a simple flag instead 2017-11-07 23:49:57 +01:00
Marcus Weseloh
be38fa98e3 Cleanup ladspa commands and add more comments
Remove the <effect name>:<port name> syntax for ladspa_link again,
better to have them as two separate arguments. Also remove the
<lib name>:<plugin label> syntax, use separate args where as well.
2017-11-07 23:49:57 +01:00
Marcus Weseloh
61ea5e19db Remove the node concept completely from LADSPA api 2017-11-07 23:49:57 +01:00
Marcus Weseloh
9af97fb02b Add note that LADSPA doesn't need very long command lines anymore 2017-11-07 23:49:57 +01:00
Marcus Weseloh
0b263175d3 Rename "plugin" to "effect" where it's used to mean "plugin instance" 2017-11-07 23:49:57 +01:00
Marcus Weseloh
4212dd04f7 Smaller cleanups for fluid_cmd 2017-11-07 23:49:57 +01:00
Marcus Weseloh
ea3481c57e Control port values are always float 2017-11-07 23:49:57 +01:00
Marcus Weseloh
fa0b210233 Rename function to set effect control port value 2017-11-07 23:49:57 +01:00
Marcus Weseloh
bcf711f51a Rename check for effect port existance 2017-11-07 23:49:57 +01:00
Marcus Weseloh
adcd5a5d53 Cleanup automatic control node creation
Change function signatures and names to better reflect what they do
and when they do it.
2017-11-07 23:49:57 +01:00
Marcus Weseloh
72517b8715 No need for user created control nodes anymore
Control nodes are created automatically when effect is added now.
Also remove the now unused FLUID_LADSPA_FIXED direction.
2017-11-07 23:49:57 +01:00
Marcus Weseloh
e0463843fa Rename ladspa_node to ladspa_buffer
Users don't need to create control nodes anymore
2017-11-07 23:49:57 +01:00
Marcus Weseloh
026bcbcc78 Create control nodes automatically and use better interface to set value
Removes ladspa_control_defaults and ladspa_control in favour of the new
ladspa_set. Nodes for all effect controls are created when the effect
is instantiated.
2017-11-07 23:49:57 +01:00
Marcus Weseloh
ea9c868c86 Make plugin label optional when creating effect 2017-11-07 23:49:57 +01:00
Marcus Weseloh
a4312c65ed Remove explicit direction from ladspa_link and fluid_ladspa_connect 2017-11-07 23:49:57 +01:00
Marcus Weseloh
1684427c33 Rename ladspa_port to ladspa_link 2017-11-07 23:49:57 +01:00
Marcus Weseloh
55cd5040a7 Allow port names in fluid_port to be specified as one argument 2017-11-07 23:49:57 +01:00
Marcus Weseloh
5aecf97097 Rename command ladspa_plugin to ladspa_effect, remove ladspa_mode 2017-11-07 23:49:57 +01:00
Marcus Weseloh
6eb8212723 Add consistent checking for inactive ladspa in fluid commands 2017-11-07 23:49:57 +01:00
Marcus Weseloh
5b4ad47bee Effects (plugin instances) identified by name instead of unique id 2017-11-07 23:49:57 +01:00
Marcus Weseloh
e77e702b16 Add support for run_adding mode of plugins and in-place rendering
In-place rendering is implemented in such a way that there is no
change in behaviour if it is enabled or not. So there's no need
for a user setting.

Run adding mode is a LADSPA feature that plugins can support. Using
that mode, they don't replace an output buffer, but add their rendered
audio to it (with a user definable gain). A very necessary feature to
be able to use a LADSPA reverb in place of the internal reverb.
2017-11-07 23:49:57 +01:00
derselbst
2ed47f23b5 Revert "make struct _fluid_ladspa_fx_t opaque" to prepare ladspa merge
It's effects will be replicated after merge.

This reverts commit 5afb1a854b.

# Conflicts:
#	src/bindings/fluid_ladspa.c
2017-11-07 23:49:57 +01:00
Tom M
15464b1453
Merge pull request #267 from carlo-bramini/stdint-fixes
use stdint compliant ints; include stdint.h if possible, else fallback to glib
2017-11-07 21:41:49 +01:00
Tom M
2c5e7ab6e4
Merge pull request #266 from tomcucinotta/autoconnect_alsa_at_runtime
Autoconnect ALSA MIDI inputs also while fluidsynth is running
2017-11-07 21:38:23 +01:00
derselbst
b1d0db7d5c define customized fluid_return_if_fail
unlike glib's g_return_if_fail, dont log to console if condition fails
2017-11-07 21:11:49 +01:00
Tom M
91a63595f4
Merge pull request #261 from VolcanoMobile/player_seek
add seek to player
2017-11-07 11:34:15 +01:00
Tom M
0a4a588d7c
bump version for fluid_player_seek() 2017-11-07 11:33:02 +01:00
loki666
aa8a32951a avoid hanging notes 2017-11-05 20:27:21 +01:00
carlo-bramini
c2eab91ac2 Remove VisualC++ types. 2017-11-05 18:20:51 +01:00
carlo-bramini
137ace8e87 Add also int64_t for completeness. 2017-11-05 17:59:07 +01:00
carlo-bramini
5a2bb5a109 Use GLIB types if stdint.h is not available 2017-11-05 16:08:43 +01:00
derselbst
1b2a098c7c delete_*() refactorings in defsfont 2017-11-05 15:33:28 +01:00
carlo-bramini
cb4f1d389d No need to read-modify-write, just set errors to TRUE 2017-11-04 13:07:18 +01:00
carlo-bramini
4ee44a24a5 Use stdint type names instead of sint8, sint16, etc 2017-11-04 12:53:44 +01:00
loki666
7a803c3ee4 fix typo 2017-11-03 22:48:21 +01:00
loki666
58ec452054 update api doc
fluid_player_seek returns FLUID_FAILED if ticks is negative
2017-11-03 21:11:32 +01:00
loki666
64eda30cf4 handle seeking in fluid_track_send_events 2017-11-02 10:51:07 +01:00
Tommaso Cucinotta
f23b0f7a19 Autoconnect ALSA MIDI inputs not only on start, but also while fluidsynth is running (if midi.autoconnect == 1). 2017-11-01 18:10:23 +01:00
derselbst
78ab309bb6 complete implementation of fluid_audio_driver_register() 2017-11-01 16:20:16 +01:00
loki666
3f1a05cf38 update fluid_player_seek API doc, and return values 2017-11-01 09:49:21 +01:00
Tom M
97a1a24874
Merge pull request #262 from FluidSynth/doc-2.0
cleanup API doc
2017-10-31 16:56:12 +01:00
derselbst
242c2cd119 replace NEXT_RELEASE with 2.0.0
find . -type f -exec sed -i s/@NEXT_RELEASE@/2.0.0/ '{}' \;
2017-10-30 19:26:40 +01:00
derselbst
9b6d3d4c55 support for registering audio drivers based on actual needs 2017-10-30 17:42:37 +01:00
derselbst
abab1f87e4 make modulator API const correct 2017-10-30 15:21:38 +01:00
derselbst
179f87f952 add a function for removing default modulators 2017-10-30 15:19:46 +01:00
derselbst
60121af287 fix segfault when deleting sample_timers 2017-10-30 13:10:52 +01:00
derselbst
681f62ce4d fix conflicting declarations
fix build
2017-10-30 11:53:02 +01:00
derselbst
1da426dcfd remove redundant NULL checks in delete_fluid_synth() 2017-10-30 11:37:06 +01:00
derselbst
5427a4ebf5 refactor delete_fluid_voice() to return void
return value was ignored anyway
2017-10-30 11:33:23 +01:00
derselbst
bf978e2b6b even more destructor refactor 2017-10-30 11:28:08 +01:00
loki666
6c8a72fa0a add seek to player 2017-10-30 10:53:45 +01:00
derselbst
a381b09dc6 remove orphaned fluid_defsfont_get_sample() 2017-10-29 21:05:18 +01:00
derselbst
323320e7e4 refactor all destructor functions
to return void if possible and not crash if called with NULL
2017-10-29 13:23:08 +01:00
derselbst
c40c49b331 fix usage of incorrect string format argument
causing segfault
2017-10-28 19:48:29 +02:00
derselbst
d8d5679c8e fix segfault in delete_fluid_ringbuffer() 2017-10-28 19:47:56 +02:00
derselbst
0ac6209356 Merge branch 'master' into sm24 2017-10-28 16:23:24 +02:00
derselbst
2b882c2877 fix build 2017-10-28 14:19:20 +02:00
derselbst
6dfd736460 refactor return values in fluid_cmd.c
consistently return FLUID_OK or FLUID_FAILED for shell command handlers
2017-10-28 14:02:44 +02:00
derselbst
707f1eb079 conflicting function delcarations
fix build
2017-10-28 13:53:33 +02:00
derselbst
0ef6da7740 minor clarification 2017-10-28 13:50:13 +02:00
derselbst
8f83592b6e fix wrong printf format 2017-10-28 13:36:32 +02:00
derselbst
642b9750b2 remove unimplemented fluid_handle_mstat() 2017-10-28 13:31:10 +02:00
derselbst
634c07ed45 remove error hiding casts in fluid_commands[] 2017-10-28 13:30:35 +02:00
derselbst
f2263e2f62 avoid using g_atomic* directly 2017-10-28 12:57:47 +02:00
Tom M
ad9c185dca
Merge pull request #255 from FluidSynth/alsa-autocon
Autoconnect ALSA MIDI inputs.
2017-10-27 22:31:17 +02:00
Tom M
9c7b8f330d
Merge pull request #251 from FluidSynth/polish
Some optimizations
2017-10-27 22:27:01 +02:00
derselbst
479b31c9fe init static atomics in a more general way 2017-10-27 21:04:28 +02:00
derselbst
1eb6aa97f3 avoid using deprecated tuning functions 2017-10-27 16:59:20 +02:00
derselbst
db373f168f Merge branch 'fluid_atomic' of git://github.com/VolcanoMobile/fluidsynth into VolcanoMobile-fluid_atomic 2017-10-27 15:58:54 +02:00
Tom M
f17f5333a8 Merge pull request #257 from VolcanoMobile/default_soundfont_optional
dont register synth.default-soundfont if not defined
2017-10-27 15:40:55 +02:00
Tom M
8339a1e70e Merge pull request #256 from VolcanoMobile/defsfont_cleanup
remove glib.h import from fluid_defsfont.h
2017-10-27 15:40:32 +02:00
loki666
d1cc61745c dont register synth.default-soundfont if not defined 2017-10-26 22:56:49 +02:00
loki666
8eccbb39ab remove glib.h import from fluid_defsfont.h 2017-10-26 22:54:37 +02:00
derselbst
5afb1a854b make struct _fluid_ladspa_fx_t opaque 2017-10-26 21:45:29 +02:00
Philippe Simons
cdd9f75112 thread function return type (#254)
typedef the return value of thread starting routines, as suggested by @loki666
2017-10-26 18:08:10 +02:00
derselbst
56969332b2 promote audio.alsa.autoconnect to a more general setting
that could be used across different midi drivers
2017-10-26 15:56:27 +02:00
derselbst
7872f80827 rename alsa autoconnect function to be alsa_seq specific 2017-10-26 15:51:34 +02:00
derselbst
48eb3943e2 adjust log levels for alsa autoconnect 2017-10-26 10:39:52 +02:00
loki666
8b78e3e798 fix fluid_winmidi.c 2017-10-25 23:06:08 +02:00
loki666
6d9081e1a5 use fluid_atomic types in fluid_ladspa and fluid_winmidi 2017-10-25 23:03:56 +02:00
derselbst
39993f3963 assure synth is initialized once 2017-10-25 18:27:59 +02:00
derselbst
a1810385e1 Merge branch 'carlo-bramini-misc-fixes-1' 2017-10-25 17:52:17 +02:00
derselbst
2e17573179 Revert "'mod_count' of struct fluid_voice_t should be an unsigned type."
This reverts commit 7db133acae.
2017-10-25 17:41:56 +02:00
derselbst
43d4659451 make vars const correct 2017-10-25 17:11:41 +02:00
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
Marcus Weseloh
f4c5590edf Initialize fluid_ladspa_* structs to zero after creation and use delete_fluid_ladspa_* for cleanup. 2017-10-20 13:53:22 +02:00
derselbst
4b9405a4ce remove unused fluid_voice_t::debug 2017-10-20 12:26:37 +02:00
derselbst
587a8408cf Revert "remove redundant debug vars for fluid_voice_t"
This reverts commit 69d41ae5ec. Fixing build if -Denable-profiling=1
2017-10-20 12:25:45 +02:00
Marcus Weseloh
244e0c1122 Use FLUID_SNPRINTF instead of FLUID_SPRINTF 2017-10-20 12:08:42 +02:00
Marcus Weseloh
d07e8e3114 Add missing mutex cleanup in error handler 2017-10-20 12:03:21 +02:00
Marcus Weseloh
9a8483d997 Copy buffers with memcpy if FluidSynth and LADSPA use float buffer type 2017-10-20 10:50:01 +02:00
Marcus Weseloh
e4f0f2b41f Remove unused pthread include 2017-10-20 10:37:30 +02:00
derselbst
3101647e32 slightly optimize fluid_voice_t in size 2017-10-19 23:52:46 +02:00
derselbst
69d41ae5ec remove redundant debug vars for fluid_voice_t 2017-10-19 23:46:20 +02:00
Marcus Weseloh
171faae670 Prevent unused variable warnings if LADSPA is not compiled in 2017-10-19 23:31:05 +02:00
Marcus Weseloh
4120b2320f Major refactor and rewrite of the LADSPA effects engine. 2017-10-19 23:31:05 +02:00
derselbst
7fb3a93e83 minor doc update for fluid_voice_is_*() 2017-10-19 23:28:59 +02:00
derselbst
e866bc98e0 fix return val of fluid_file_set_encoding_quality() 2017-10-19 18:04:03 +02:00
derselbst
39406fe477 cleanup portaudio #includes
fixes win32 build issue (unistd.h missing)
2017-10-16 15:45:50 +02:00
derselbst
b4c36b1ba2 fix indentation 2017-10-15 20:17:45 +02:00
derselbst
64b929ced6 replace strcasecmp with FLUID_STRCASECMP 2017-10-15 20:16:04 +02:00
derselbst
458cb94b93 correct conditional define of FLUID_[V]SNPRINTF
fixes build
2017-10-15 20:06:44 +02:00
carlo-bramini
a89c7c5183 Replace remaining vsnprintf with FLUID_VSNPRINTF 2017-10-15 18:57:06 +02:00
carlo-bramini
0b16169f35 Replace g_snprintf with FLUID_SNPRINTF 2017-10-15 18:53:06 +02:00
carlo-bramini
9321dda281 Use FLUID_SNPRINTF into all remaining files 2017-10-15 18:42:44 +02:00
carlo-bramini
1c0419c4c3 Include fluid_sys.h, required for FLUID_INLINE 2017-10-15 17:34:24 +02:00
carlo-bramini
55c682b1b0 Use FLUID_INLINE in all remaining parts of the sources 2017-10-15 17:27:30 +02:00
derselbst
f63b26748f update doc for fluid_synth_set_channel_type() 2017-10-12 12:05:02 +02:00
derselbst
82f564506c deprecated redundant tuning functions and clarify docs 2017-10-12 11:25:09 +02:00
derselbst
820448bafe fix memory leak in fluid_client_t
let each fluid_client_t own its fluid_cmd_handler_t and delete it properly
2017-10-11 10:51:59 +02:00
Tom M
0902b261cc Merge pull request #205 from FluidSynth/def-mod-api
API to manipulate default modulators
2017-10-10 18:29:11 +02:00
derselbst
accefc170f avoid deref NULL
in fluid_synth_add_default_mod()
2017-10-10 18:20:27 +02:00
Tom M
b1c23fb35d minor doc update for fluid_synth_add_default_mod() 2017-10-10 18:16:58 +02:00
derselbst
fb36c245aa start implementing 24 bit sample support 2017-10-08 13:18:03 +02:00
derselbst
07e63d181b remove unused iter_preset from fluid_defsfont_t 2017-10-07 18:43:19 +02:00
derselbst
daf85aec02 Merge branch 'master' into sm24 2017-10-07 15:31:01 +02:00
derselbst
360ae04135 update API doc 2017-10-07 15:21:38 +02:00
derselbst
86a19090eb remove unneeded fluid_server_newclient_func_t 2017-10-07 15:06:06 +02:00
derselbst
b79f2a614e adapt fluid_server API after cmd_handler decoupling
avoid new_fluid_server() to require an already existing instance of fluid_cmd_handler_t just for storing fluid_synth_t* and fluid_midi_router_t*, instead require these two instances explicitly when creating the server
2017-10-07 14:58:26 +02:00
derselbst
38984b0974 avoid memleak 2017-10-07 14:44:22 +02:00
derselbst
b25485d030 update doc for new_fluid_cmd_handler() 2017-10-07 14:43:13 +02:00
derselbst
9e77341482 avoid segfault 2017-10-07 14:42:46 +02:00
derselbst
6531bebbfe remove struct fluid_cmd_handler_t from public API 2017-10-07 11:47:22 +02:00
derselbst
8fd8a75b9f parse sm24 chunk 2017-10-07 11:34:53 +02:00
derselbst
680d4d51a4 fix sizeof's 2017-10-06 21:17:14 +02:00
derselbst
924d4b3e77 prefer snprintf to sprintf 2017-10-06 20:52:07 +02:00
Tom M
668980b44b Merge pull request #230 from FluidSynth/cmake-os2
OS/2 cmake fixes
2017-10-06 13:17:12 +02:00
Tom M
5ae62791ae dont hardcode buf size 2017-10-06 13:15:09 +02:00
Tom M
82b2000d08 Merge branch 'master' into cmd-handler 2017-10-06 13:11:21 +02:00
KO Myung-Hun
692e6ef2ce Use normal library name for OS/2
Now, CMake for OS/2 can process a DLL name properly longer than 8
characters.

Signed-off-by: derselbst <tom.mbrt@googlemail.com>
2017-10-06 12:47:57 +02:00
derselbst
e36e39249b update API docs for new chorus/reverb setters 2017-10-06 10:59:41 +02:00
derselbst
2b861a12eb assure audio_groups is not overwritten
with an unset value, fixes #225
2017-10-06 10:34:35 +02:00
derselbst
6e3644d1aa cleanup fluidsynth.c 2017-10-06 10:31:44 +02:00
derselbst
3a4385c7f6 settings: avoid silent error hiding
fail if param out of range, addresses #225
2017-10-06 10:28:28 +02:00
derselbst
84fe779b98 jack: atomically get audio_driver 2017-10-06 10:25:38 +02:00
Marcus Weseloh
842d8ba963 Use proper type of node->buf for later memset to avoid buffer overflows 2017-10-04 23:28:10 +02:00
Marcus Weseloh
30dc8f399a Constant nodes now use '$' as first char.
'#' is being treated as a comment by g_shell_parse_argv
2017-10-04 23:28:10 +02:00
Marcus Weseloh
e7ab4f3b8d Create the correct number of output nodes (also removed unused variable warning) 2017-10-04 23:28:10 +02:00
Marcus Weseloh
dd39761dbd Retrieve channel config from synth instance
The audio-groups, audio-channels and effect-channels settings
have already been read and set on the synth instance. No need
to read them in again, especially not in fluid_LADSPA_run, as
that is called very often.
2017-10-04 23:25:27 +02:00
Tom M
10c4cfa29e return NULL if LADSPA alloc fails
instead of assertion fail
2017-10-04 19:59:31 +02:00
Tom M
5ac826d0e0 fail if LADSPA alloc fails but was requested by user 2017-10-04 19:54:57 +02:00
Marcus Weseloh
eb42279d71 Evaluate the synth.ladspa.active setting and check for the existance of LADSPA_FxUnit in all command handlers. 2017-10-04 18:57:08 +02:00
derselbst
23d15db8fa remove fluid_synth_set_midi_router()
only needed by shell command handler previously
2017-10-04 14:30:46 +02:00
derselbst
f4a3c7302e avoid midi_router cmd conflicts
if multiple cmd handlers are used + fix build
2017-10-03 21:42:36 +02:00
derselbst
c8007e655b add individual chorus setters to synth API 2017-10-03 21:12:35 +02:00
derselbst
77749637d2 add individual reverb setters to synth API 2017-10-03 20:17:48 +02:00
derselbst
17aacf4fd9 decouple cmd_handler for midi_router 2017-10-03 18:10:27 +02:00
Tom M
dc5ca3bb46 Merge pull request #214 from FluidSynth/settings-align
fluid_settings: fix alignment warnings
2017-10-02 22:31:39 +02:00
Bernat Arlandis i Mañó
3c14435a8c Command handler decoupled. Moved config file loading after starting everything. 2017-10-02 18:25:58 +02:00
derselbst
16d7a42ce2 Revert "fix build"
This reverts commit 40ebd7f3b6.
2017-09-24 19:52:46 +02:00
derselbst
503e459ea9 deprecate fluid_synth_get_channel_info() 2017-09-24 14:56:55 +02:00
derselbst
6b7f3c0264 remove deprecated flag from fluid_synth_get_channel_preset() 2017-09-24 14:56:11 +02:00
derselbst
1d9fc3ad5b Revert "mark fluid_synth_get_program() as deprecated"
This reverts commit b849ea1e88.
2017-09-24 14:55:42 +02:00
derselbst
44b7dbc13c Revert "minor cleanup for fluid_synth API"
This reverts commit 201aa5e0d4. Merging functions for different usecases was a bad idea.
2017-09-24 14:46:35 +02:00
derselbst
2b6c68d422 update doc for fluid_file_set_encoding_quality() 2017-09-23 20:52:16 +02:00
derselbst
41310d2e0e fluid_settings: fix alignment warnings
by using a union for fluid_setting_node_t
2017-09-23 19:31:35 +02:00
Marcus Weseloh
9766acc41a Also consider channel pressure, key pressure and pitchwheel modulators when calculating lower attenuation boundary. 2017-09-23 13:27:13 +02:00
Marcus Weseloh
50b6e9462e Cleanup indentation 2017-09-23 13:20:51 +02:00
derselbst
75e5284f72 another return val fix 2017-09-22 15:43:41 +02:00
derselbst
7bef6f8787 fix return value checks 2017-09-22 15:18:32 +02:00
Tom M
2a3ff1d2cf Merge pull request #207 from FluidSynth/cleanup
source code cleanup, API compatibility broken
2017-09-22 14:10:38 +02:00
derselbst
87f2ab13e7 cleanup public generator API
move fluid_gen_set_default_values(), enum fluid_gen_flags and struct _fluid_gen_t to private header because no other public function seems to need fluid_gen_t
2017-09-22 11:45:06 +02:00
derselbst
4292b6af08 deprecate fluid_gen_set_default_values() 2017-09-22 11:38:54 +02:00
derselbst
9e9eacbc20 refactor return value checking of fluid_settings_*() 2017-09-21 22:09:24 +02:00
derselbst
5f3cafbcfd better return a bool for fluid_settings_str_equal() 2017-09-21 21:48:06 +02:00
derselbst
225a546276 remove obsolete "audio.[out|in]put-channels" settings 2017-09-21 16:07:19 +02:00
derselbst
872cedbd69 fix return type of fluid_settings_get_type() 2017-09-21 15:31:49 +02:00
Tom M
eba43faf6c Merge pull request #204 from FluidSynth/volenv
Add a setting for volume envelope processing
2017-09-21 15:08:27 +02:00
derselbst
118d24bd3e partly revert a89ed74537 2017-09-21 10:56:55 +02:00
derselbst
5da9451321 move struct _fluid_mod_t to private header 2017-09-21 10:52:48 +02:00
derselbst
17236fdf50 move FLUID_CHORUS_SET_ALL and FLUID_REVMODEL_SET_ALL to enum 2017-09-20 21:18:34 +02:00
derselbst
24143ee02d replace fluid_synth_set_gen with fluid_synth_set_gen2 2017-09-20 21:05:13 +02:00
derselbst
c36a1a6c09 remove redundant synth functions 2017-09-20 20:39:43 +02:00
derselbst
783e70ed27 deprecate even more redundant public synth functions 2017-09-20 20:22:18 +02:00
derselbst
3c99490a60 check for new return values of fluid_settings_*() 2017-09-20 20:13:18 +02:00
derselbst
e797853b2b refactor fluid_settings API
consistently return either FLUID_OK or FLUID_FAILED for public fluid_settings_* functions
2017-09-20 14:27:36 +02:00
derselbst
9735059946 cleanup fluid_settings.h 2017-09-20 13:14:48 +02:00
derselbst
b71f474afa make fluid_preset_t::get_name() const correct 2017-09-20 12:55:55 +02:00
derselbst
7bf280cf77 linebreak 2017-09-19 17:12:33 +02:00
derselbst
d708c2f5e2 specify bufsize via sizeof() 2017-09-19 17:12:14 +02:00
derselbst
40ebd7f3b6 fix build 2017-09-19 16:55:54 +02:00
derselbst
0f6c4c83a1 remove unimplemented "synth.dump" setting 2017-09-19 16:45:38 +02:00
derselbst
201aa5e0d4 minor cleanup for fluid_synth API
remove deprecated fluid_synth_get_channel_preset() and fluid_synth_get_program() and fuse their functioning together into fluid_synth_get_channel_info()
2017-09-19 16:32:20 +02:00
derselbst
f43c036391 mark fluid_synth_get_program() as deprecated 2017-09-19 16:04:57 +02:00
derselbst
4e318b4ee6 remove obsolete config_macosx*.h 2017-09-19 13:17:16 +02:00
derselbst
384e0acad9 remove unused and obsolete macbuild 2017-09-19 13:11:45 +02:00
derselbst
6308c1e67b remove obsolete config_win32.h.in
previously used by autotools
2017-09-19 13:08:18 +02:00
derselbst
ca92dbbc94 correctly register synth.volenv options 2017-09-19 10:54:58 +02:00
derselbst
85822ac32a specify MIDI CCs explicitly for default mods 2017-09-17 10:37:22 +02:00
derselbst
7f3515e136 seqbind: specify MIDI CCs explicitly 2017-09-16 21:57:49 +02:00
derselbst
026d74f125 use doxygen aware "note" 2017-09-16 17:39:53 +02:00
derselbst
53fd1eeac7 remove deprecated fluid_settings_getstr() 2017-09-16 17:30:57 +02:00
derselbst
7b54b07b2d fix build 2017-09-15 12:34:03 +02:00
derselbst
3939941c5f remove deprecated autotools build system 2017-09-15 11:29:57 +02:00
derselbst
34f5a14df3 remove deprecated LADCCA support 2017-09-15 11:11:09 +02:00
derselbst
a5382c6b6a bump copyright year 2017-09-14 12:29:02 +02:00
derselbst
f91e391e8d correct API "since" version for key pressure feature 2017-09-10 14:27:08 +02:00
derselbst
5baecd9db4 Merge branch 'poly-pressure' of https://github.com/mawe42/fluidsynth into mawe42-poly-pressure 2017-09-10 13:59:07 +02:00
derselbst
bc12b61e4a allow any double string value for "synth.volenv" 2017-09-09 16:00:00 +02:00
derselbst
29f6ac1049 add setting for volume envelope processing
fixes #70
2017-09-07 11:42:01 +02:00
derselbst
a89ed74537 fluid_synth_add_default_mod: specify enum param type explicitly 2017-09-07 10:53:08 +02:00
derselbst
336ae88aaf new public API to manipulate default modulators
patch by @mawe42
2017-09-07 10:45:46 +02:00
derselbst
16f2005d68 fix build against glib<2.30 2017-09-06 09:36:42 +02:00
derselbst
aac2354f5c remove fop-level "fluidsynth" directory node
cd fluidsynth && git mv * ../
2017-09-03 13:30:26 +02:00