> I'm starting to get the sense that if we have a rule that MIDIprocessor 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).
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?
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.
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.
> >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.
> Per other thread, I agree notes and sysex have no meaningful undosemantic, 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.
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)
> >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. :)
> Seems like maybe arbitration of live MIDI input sources is only > needed at GMPI parameter inputs, not points in MIDI processor plugchains? 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?
---------------------------------------------------------------------- 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