[gmpi] Re: Generalized Music Plugin Interface list is now onl ine

  • From: David Olofson <david@xxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Tue, 11 Feb 2003 15:37:00 +0100

On Tuesday 11 February 2003 15.09, Martijn Sipkema wrote:
> [...]
> > This brings up an interesting question: Does "support control
> > I/O"=3D20 imply that the actual MIDI protocol should be used in the
> > API?
> >
> > Since the MMA is in on this, one might think it would imply that,
> > but=3D20 even so, MIDI is a *wire* protocol. I think having (most
> > of) the MIDI=3D20 *feature set* in a new API would be cleaner, more
> > effective and=3D20 easier to support for plugins and hosts alike.
> I MIDI would be supported using the MIDI protocol (byte stream, but
> preferably timestamped) this would guarantee that it is compatible
> with MIDI.

No, it won't, unless you *force* every plugin to implement every part=20
of the full MIDI spec + extensions that may apply. What I'm worried=20
about is having lots of plugins that don't understand continous=20
pitch, scale tuning and whatnot - which is stuff that very easily=20
handled, to great extent even without explicit plugin support, if the=20
API is designed for it from scratch.

> A standard utility library with parser could prevent unnecessary
> code duplication.

Yeah, but that would mean plugins have to call back to the host, or=20
include lots of inline code from a plugin SDK. Why not just use the=20
"other side" of those parsers as the standard API, and put the MIDI=20
stuff in the host (or rather, the host SDK) instead?

Keep in mind that many users of softsynths couldn't care less for=20
MIDI, beyond possibly the use of it to hook up a MIDI master keyboard=20
to their sequencer. Also note that whether the host or every single=20
plugin does the MIDI parsing doesn't matter to end users. It will=20
have to be done *somewhere* no matter what.

> > (I'm strongly opposed to using wrapped MIDI messages for
> > several=3D20 reasons. Ask if you want the full list. ;-)
> What exactly do you mean with wrapped MIDI messages? passing
> struct { unsigned char[3] }?

Yes. Look at VST 2.0 for an example. (Although they've added an extra=20
byte for fintuning in the NoteOn message, which sort of works against=20
the whole point of using MIDI in the first place...)

//David Olofson - Programmer, Composer, Open Source Advocate

=2E- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---------------------------> http://olofson.net/audiality -'
   --- http://olofson.net --- http://www.reologica.se ---

Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: