On Sat, 2004-01-17 at 07:32, Fons Adriaensen wrote:
On Sat, Jan 17, 2004 at 10:20:00AM +0000, Steve Harris
wrote:
Thats true, but the voice controller is generally
part of the host
environment, not a plugin. It would typically be the think wihich is
resonsible for splitting the MIDI data to multiple sub-patches and routing
the CV streams (velocity, aftertouch) appropraitly. The modules within the
sub-patch can be completly ignorant of the voice allocation.
Putting the voice controller in the host doesn't solve the problem, as it
still needs info from e.g. the envelope generators. So how will that info
be passed when using LADSPA as the module format ? We could add a hint
saying that a particular output port carries this type of data, but I
wouldn't dare propose such a thing -- in contrast to the 'send NULL pointer
hint' we discussed earlier, this one is far too specific. Or the host could
check for a particular port name -- same problem. Adding some sort of port
type could solve the problem, but that's a major change. It's again that
little bit of generality that's missing.
Well, regardless of what the voice does after note release, the voice
you want to 'take over' is /probably/ the one with the oldest note-off.
I actually implemented an (un-released) quasi-polyphonic MIDI plugin for
SSM that worked like this, and it was fine (and I played alot of keys on
it). I can't really think of a case where this isn't sufficient.
Maybe if you had a synth that split notes, and lower notes had really
really long envelopes, but higher notes were 'plinkey', but come on.
Anyway, in the new AMS the VC will be a module and
preferably a plugin.
Some types of music or application could require a non-standard VC, and I
want the user who needs such a thing to be able to write it and plug it in.
This of course means that the plugin should have access to MIDI data,
and to the file system (e.g. a VC that reads a CSOUND score), and
that creates another interface problem.
I think pretty much everyone agrees that one or two things in a synth
can't be LADSPA plugins.. basically all the input/output stuff you
mentioned.
I'm saying all sound generating/modifying modules could be. I agree
that making a MIDI-input LADSPA plugin is probably a stupid thing to do!