On Apr 29, 2006, at 9:42 AM, Dave Robillard wrote:
On Sat, 2006-04-29 at 17:24 +0200, Lars Luthman
wrote:
4) the run_multiple*() callbacks (how many
plugins use these?)
Silly useless function. Toss it on the trash heap with run_adding.
Dave, you complain about people talking down about modular
synths, then yourself discount things that are only useful in
non-modular designs? How about a little reciprocity here?
run_multiple_synths() _is_ useless to any host (like Om),
that wants to process an arbitrary connection graph one node
at a time.
run_multiple_synths() is very useful when a host can run
multiple instances of a plugin at once. It provides easy,
lock-free sharing of resources across the instances. It
allows FluidSynth-DSSI and hexter to both provide a
shared pool of voices used across several instances,
with _sample-accurate_ voice stealing. It allows
FluidSynth-DSSI to easily bolt onto libfluidsynth, and
share soundfont data between multiple instances, without
the need for a custom soundfont loader.
In contrast, I purposely wrote WhySynth without using
run_multiple_synths(), just to see how difficult the resource
sharing would be. Nasty mess of mutexes and try_locks()....
All of this is not to say that run_multiple_synths() doesn't
have some real PITA issues. But that's a discussion better
had over on dssi-devel.
-Sean