[gmpi] Re: 3.15 MIDI (goals)

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Sat, 19 Jun 2004 17:31:01 -0700

> I'm starting to get the sense that if we have a rule that MIDI
 processor plugs (including MIDI->GMPI converters) don't get to have
 any dynamic/host-tracked GMPI parameters, then we'd be most of the
 way home.

Why not? They can certainly have GMPI parameters, they just can't change those parameters based on the incoming MIDI (without a MIDI Actor).

That's what I meant, sorry for unclarity.



The truth of the matter is that raw MIDI still bothers me.  I'm willing to
compromise in the name of progress, but it seems to me that these "MIDI
Processors" (which are all the *NEED* truly raw or even semi-cooked MIDI)
are really pointless as GMPI plugins.  Either one of two things is true:

1) a MIDI processor receives MIDI from outside the graph, does something
to it, and sends it back outside the graph.  Why is this plugin *IN* the
graph in the first place?

Studio management. Different pieces need different MIDI signal flow management, and sometimes in ways that host OS services do not support, so putting this in the GMPI graph means they can be easily saved as part of the same session as all the other the plugs. See the Logic environment for a widely beloved example.



2) a MIDI processor receives MIDI and sends it to another plugin.  I
really *don't* want to see this.  It means that plug developers have
little reason to put in the effort to do PROPER GMPI.

That's their decision, not ours.



Like I said, I'm willing to compromise as long as we agree that either:

a) Plugs that receive MIDI need to tell the host about parameter changes
(MIDI Actor).

b) Plugs that receive MIDI get *none* of the benefits of GMPI parameter
management.

Is anyone disagreeing?



> >I think your limits on messages are probably correct, though I don't think
 >you need to include NoteOn and NoteOff here, as those do not have a
 >click-and-wiggle semantic.

 Switches?  (OT: My Soundcraft Ghost console sends Note Ons when you
 press the channel mute buttons.)

Mapping a received NoteOn/Off to a switch can be OK, but it makes no sense trying to undo a NoteOn that actualy means NoteOn.

Well, Mike and Steve disagree.



> Per other thread, I agree notes and sysex have no meaningful undo
 semantic, short of save/restore all the plug's private memory (which
 I'm scoffing at, not recommending).

We should discourage SysEx for new GMPI plugs, and special case it for old plugs that need it.

Pure GMPI plugs won't receive MIDI anyway, and Mike proposes severe limitations on the usage of blobs (GMPI's moral equivalent of sysex). Don't think we should adopt a paternal 'discourage' stance towards whatever people decide to legally do in GMPI.



That's really all there is to do with it.  It might
not even want to be a blob, since it is not really undoable.  In fact, two
SysEx messages are not guaranteed to be doing remotely the same
thing, right?  So it's not state, it's a command (which is different from
both data and control)

Yes, we converge.



> >I think NoteOn and NoteOff are different than the rest (maybe Program
 >Change, too?).  Maybe break them out into a separate section "INSTRUMENT
 >CONTROL" or just a separate paragraph.  ALL instrument plugins MUST be
 >controllable by live MIDI input.  Or maybe I am wrong.

Hm, kind of at odds with the immediately previous 'OPTIONAL'? I

I think I need to rethink the optionality on some of these.


A preferred MIDI map is optional.

Ability to do click-and-wiggle is required.  It can be done entirely
without the plugin being aware (as is proven by existing hosts).

Ability to play notes via MIDI is required.  Any GMPI instrument should be
controlle .by GMPI Note Controls.  If your plugin only is playable by
MIDI, it is BROKEN.  If your plugin is controllable by GMPI, the host can
control you via live MIDI.

How best to phrase these? Dunno. tired. :)

Aside from the paternal/judgmental tone, I think ya did just fine.



 > Seems like maybe arbitration of live MIDI input sources is only
 > needed at GMPI parameter inputs, not points in MIDI processor plug
chains? If so, no need to do the connections outside the graph.

Umm yes, but if a chain of plugins is only doing MIDI, why are they called GMPI?

I don't know, I was responding to your example. 8-)


-- Chris G.

----------------------------------------------------------------------
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: