[gmpi] Re: 3.15 MIDI

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Tue, 15 Jun 2004 19:08:42 -0700

Thanks, Jeff. Sorry if I was unclear, I didn't mean to imply it would be impossible to do that using non-MIDI message representations.

There is however a loss-of-information problem when driving actual downstream MIDI inputs, whether HW or SW, for example if the 'strummer' generates new events with non-integer 'pitch' values. If you Y the strummer output to a GMPI SW inst and an external MIDI synth, the SW synth will generate in-between pitches and the MIDI synth will generate key-number-quantized pitches.

And note that you have one understanding of the meaning of 'pitch' in a GMPI note-on msg, i.e. a note index (i.e., to be used to do a lookup in a note frequency table) with fractional part, whereas others seem to expect it to be a direct representation of frequency... and if it's the latter, then the MIDI strummer that we both like would be somewhat harder to achieve, because the frequency would have to be converted to a note index, played with, and then each generated note would have to be re-converted to a frequency (plus the quantization problem I mentioned). So at a minimum (and I don't think this is the first time I've asked for this) it would be good to get clarification from the no-MIDI-in-the-graph camp on some concrete proposal for what a GMPI note-on message wouold look like, so we can test it against use cases like this, instead of guessing.

Assuming without close inspection that MIDI-GMPI transcoding will automatically be perfect, which is the approach I've seen today, really seems like asking for trouble.

-- Chris G.

 > Also, there are plenty of good ordinary regular use cases
for a plug  processing purely internal MIDI, not just
external.  For example,
 host MIDI track --> MIDI strummer

Respect to Chris for giving some actual use-cases for MIDI.
  It allows us to (hopefully) alay fears that you can't do
these with pure GMPI.

The 'Strummer' is something I particually like.

 GMPI plugins can both send and recieve events.  So writing
an event processor is no problem.

  MIDI note-ons will be converted to GMPI events.
It's important to realise that all Parameter-Seting is done
via timestamped events.  i.e. your plugin dosn't actally
have to implement those parameters, it might simply pass
those events through to the next plugin in the chain (a
synth for example).


So your plugin is going to recive some timestamed events like..

"Set Pitch 64.0"
"Set Velocity 1.0"
"Set Note_on_off=1"

or similar (exact details don't matter at this stage)

your plugin can transform those values in any way it likes
(transpose, quantize etc), or generate new events
(strumming, arpegiators, one-finger chords).

Those events are then outputed to the 'downstream' plugin,
the synth.

Anyway, my point is, that GIMPI Set-Parameter events are
little different from MIDI events.  It's just as easy to
write GIMPI event processing plugins as MIDI processsing
plugins, in fact it's not much different.

We lose nothing.

Jeff

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


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