[gmpi] Re: 3.15 MIDI

  • From: "Jeff McClintock" <jeffmcc@xxxxxxxxxx>
  • To: <gmpi@xxxxxxxxxxxxx>
  • Date: Thu, 17 Jun 2004 14:27:13 +1200

> What about MIDI sync?  Do we want the GMPI graph to be able to chase to
> external beat boxes?

We sure do.

Every MIDI message (except sysex) is a parameter change.  In this case "Song
Position"

This is a "Well Known Control", expose a parameter called "Song Posistion"
(or whatever), and for each MIDI clock, your plugin receives an timestamped
event containing the new timecode value.

> I'm not convinced this is achievable.  For example, let's consider the
> conversion of MIDI volume controller to GMPI.  MIDI volume doesn't have a
> standard mapping from 0-127 to gain values.  So how does this value get
> converted within GMPI?  How the does the converted value survive the round
> trip through a processor that does:
> MIDI -> GMPI - > [Event Processing] -> GMPI ->  MIDI.

All 7 bit controllers get converted like so....

float gmpi_value = (float) midi_cc / 127.0;

.. and converted back like so...

int midi_cc = (int)  (gmpi_value * 127.0 + 0.5);

( as usual, i've probley made some terrible coding error, like forgot a
semicolon, or rounded down instead of up, but I hope you get the gist)

Don't assume the conversion to GMPI is some over-complicated thing,  we're
not going to convert everything to Angstroms or anything. It's just a
converion to floating point.

The intention isn't to reinvent the whole thing, only to give controllers
more resolution by converting to floating point.

Jeff


----- Original Message ----- 
From: "Ron Kuper" <ronkuper@xxxxxxxxxxx>
To: <gmpi@xxxxxxxxxxxxx>
Sent: Thursday, June 17, 2004 2:08 PM
Subject: [gmpi] Re: 3.15 MIDI


> > Keep the GMPI graph pure and lovely, like the driven snow.....
>
> And then only Eskimos will want to play in our graphs. :-P
>
> What about MIDI sync?  Do we want the GMPI graph to be able to chase to
> external beat boxes?
>
> What about MIDI machine control?  Do we want the GMPI graph to play when
the
> user presses [Play] on their ADAT machine?
>
> > What matters are not byte-level correspondence, but semantic
> > correspondence, and this is easily achievable.
>
> I'm not convinced this is achievable.  For example, let's consider the
> conversion of MIDI volume controller to GMPI.  MIDI volume doesn't have a
> standard mapping from 0-127 to gain values.  So how does this value get
> converted within GMPI?  How the does the converted value survive the round
> trip through a processor that does:
> MIDI -> GMPI - > [Event Processing] -> GMPI ->  MIDI.
>
> The problem with MIDI, or rather, with assuming we can cleanly convert
MIDI
> messages to another control format, is that in many cases the semantics of
a
> MIDI message are opaque.
>
>
> ----------------------------------------------------------------------
> 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: