[gmpi] Re: 3.15 MIDI (goals)

  • From: Tim Hockin <thockin@xxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Sun, 20 Jun 2004 21:25:31 -0700

On Sat, Jun 19, 2004 at 09:26:50PM -0700, Chris Grigg wrote:
> Let's say for a given piece I want to play on the Kurzweil keyboard, 
> using its audio too, have a SW synth plug inside GMPI double it, have 
> the Matrix 1000 following 19 semitones up but only for notes below C3.

Let's see if I can do this without MiG:

You send the MIDI from the Kurzweil to your host.  The host has a routing
set up from the Kurzweil input to a your softsynth.  You also set up a
route from the Kurzweil to a MIDI output plugin (yes, I admit that you
need to be able to send MIDI out of the graph).

In reality you probably do this in the host:

        MIDI input -> splitter -> softsynth
                         |
                          -> MIDI out

Now you return the MIDI output by 19 semitones, and map it's input only to
notes below C3.  Voila.  It requires a pretty clever MIDI output plugin,
but that is true no matter what.

> I might even want to tell my MIDI-connected DigiPatch 12x6 (a 
> programmable S/PDIF patch bay) to route the Kurzweil digital output 
> to the 828 S/PDIF input, and tell my MIDI-connected Soundcraft Ghost 
> console to mute the channels with the Kurzweil's analog outs.

All doable with MIDI output.  This doesn't require MIDI *in* the graph.
It just requires the ability to send MIDI out of the graph.

Sending MIDI out of the graph is pretty obviously required, if anyone is
going to write anything to control hardware as a plugin.  Really, though,
you can do this differently.

Have a GMPI processor which has extensive note remapping capabilities.  It
turns all your notes under C3 into notes+19.  It sends those notes out.
Then you really only need a relatively simple MIDI out plugin, *and* you
have a more generically useful note transposer available to all GMPI
plugins.

So yes, you need MIDI out.  In fact, we should probably make that part of
the host API, so the host opens the MIDI devices and presents virtual MIDI
output ports to plugins.  Any plugin can then emit MIDI, and the user can
do what she likes with the MIDI.

It is a small step from there to say the same of MIDI input ports.  The
problem with MIDI input ports is that they circumvent the GMPI control
system.

So we can either:
a) not provide MIDI input directly (show me a use case where a plugin
   needs direct MIDI input?).
b) provide MIDI inputs with the caveat that your plugin will not be fully
   managed by GMPI.

If we do b, one of two results:
1) plugin developer don't use MIDI inputs except when REALLY necessary,
   and everything just works.
2) plugin developers use MIDI inputs because that's what they know.  Then
   hosts will be expected to snoop MIDI to provide recording and undo.
   Hosts that don't will be deemed "broken".  Then people will ask why we
   didn't add setParameterAutomated() so we could be useful like VST.


Without choosing a direction, does anyone NOT agree with this?
   

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