>Maybe... I considered Control as well, but to me, both of those sound
more like single instances of something (just like Ports), rather
than the Class/Type style (ie "Voice Pitch Controls") term I'm
looking for.
>*Some* plugin API or something somewhere must have something similar
to this, I'd think, but I can't remember seeing one...
My plugin API has parameters , pins ( similar to ports ) and 'voices'.
The relationship is that parameters map to pins, and controllers map to
pins.
For example:
pin 0 - "Master Volume" (parameter, monophonic).
Pin 1 - "Note Pitch" (controller, polyphonic, mapped to MIDI
Note-On/Pitch).
Pin 3 - "Tempo" (monophonic, mapped to host tempo).
The host decodes MIDI and maps controllers to pins. The plugin API need not
support MIDI at all (yay!), you could migrate to using OSC messages just as
easily with no change to your plugin code.
The end result is that the plugin API is *very* minimal, 3 functions support
most of the GMPI requirements...
class IMpPlugin : public IMpUnknown
{
public:
// Processing about to start. Allocate resources here.
virtual int32_t MP_STDCALL open() = 0;
// Notify plugin of audio buffer address, one pin at a time. Address
may change between process() calls.
virtual int32_t MP_STDCALL setBuffer( int32_t pinId, float* buffer )
= 0;
// Process a time slice. No Return code, must always succeed.
virtual void MP_STDCALL process( int32_t count, MpEvent* events ) =
0;
};
Jeff
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Received on Fri Nov 16 04:15:02 2007
This archive was generated by hypermail 2.1.8 : Fri Nov 16 2007 - 04:15:02 EET