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!