Apart from adding sostenuto pedal functionality, this also changes
the behaviour of dampening currently sounding notes on the same key
to ignore pedals.
Signed-off-by: David Henningsson <diwic@ubuntu.com>
Previously, functions that were just used internally in FluidSynth
were still visible to users of the library. No application should
ever use them anyway, as they were only visible at the ABI level,
and not listed in the public API headers.
The big question here is whether this requires a major library bump. I've been
trying to inform myself by looking around the Internet but I haven't come to a
conclusion. E g, the libtool manual just says "interfaces" without specifying
whether they mean API or ABI.
From a pragmatic standpoint, I'm leaning towards *not* bumping the major
library version, because doing so is a major pain for Linux distributions:
they will have to make one "libfluidsynth1" and one "libfluidsynth2"
package, and in turn update everything using that library to depend on
libfluidsynth2 instead of libfluidsynth1.
Sure, there is a risk that some software out there is using one of these hidden
symbols. But I'd say that risk is quite low. And if they are, they're broken
anyway.
In short, I prefer being nice to our downstreams, over being nice to terribly
broken hacky applications that probably don't even exist.
Signed-off-by: David Henningsson <diwic@ubuntu.com>
Separate thread primative defines in utils/fluid_sys.h for new and old Glib thread API.
g_atomic_int_add is now used in place of depricated g_atomic_int_exchange_and_add if Glib >= 2.30.
Added name field to new_fluid_thread() function for setting the thread name and updated all uses of this function.
new_fluid_thread updated to use new Glib thread API.
Removed notify parameter from fluid_private_set() since it wasn't being used and complicates things with the new Glib thread API.
Closes ticket #111. Sometimes, e g in a fast-render scenario
or other scenarios where low latency is not important, you can
turn off mlock to reduce memory pressure (and thus allow the soundfont
to swap to disk).
This reduces memory usage if two different FluidSynth instances
both try to load the same soundfont file.
Thanks to Kjetil Matheussen <k.s.matheussen@notam02.no> for the patch.