[gmpi] Re: GIMPI-MIDI

  • From: "Jeff McClintock" <jeffmcc@xxxxxxxxxx>
  • To: <gmpi@xxxxxxxxxxxxx>
  • Date: Mon, 17 Nov 2003 09:34:41 +1300

> I have worked with Hertz, linear octave (1=octave, 8=middle C), char MIDI
> key, and double MIDI key. The last is best .

That sounds good.  Can I suggest something?...

MIDI looks like this..

[Note-On][Chan][Note-num][Velocity]

GIMPI does this...

[Note-On][Chan][Note-num][Pitch][Velocity]

Why?, It seperates the key-number from the pitch it plays.

The note is identified by a note-id (or voice-id), not it's pitch, after
all, a note's pitch can change during it's lifetime.

I've been looking at Microtonal software, and what they do is, they retain
MIDI-Note numbers, but use special MIDI messages to retune each note, either
beforehand or (better) on-the-fly.
  Also, retaining integer note numbers, provides a very solid, fast method
of identifying a 'note' when you later want to send a note-off, aftertouch
messages or whatever, floating-point note-ids are a little too 'fuzzy'.
  Also, it provides good compatibility with MIDI, in that you can easily
convert forward and back to MIDI.

MIDI Continuous Controllers

It's already been hinted at, but we havn't written it down.

MIDI looks like this...

[CC][Controller-num][controller-val]

controller values are 7-bit, some are hacked to 14 bit via two-byte
controllers or NRPN (Non-Registered-Parameter-Numbers).

Gimpi retains the format and existing controller numbers, except
controler-id becomes 32 bit int, controller value becomes 32 bit
floating-point 0.0 thru 1.0

Gimpi converts all two-byte controllers into a single GIMPI controler
message.  Perhaps NRPN IDs could look like

0x0100nnnn  (the high-byte is 1, the low 14 bits map directly to the old
NRPN number)

same for RPNs...

0x0200nnnn  (the high-byte is 2, the low 14 bits map directly to the old RPN
number)

also (more radical), provide voice-specific controllers (like pitch-bend per
note),  again mayby just use the existing MIDI controller IDs, they cover
the most common needs (pitch, volume, pan, filter cuttoff etc).
[CCV][Voice-ID[Controller-num][controller-val]


what do you all think?

Jeff

The MIDI standard replaced?, I can hear the MMA rolling in their graves....























----- Original Message ----- 
From: "Michael Gogins" <gogins@xxxxxxxxxxxx>
To: <gmpi@xxxxxxxxxxxxx>
Sent: Sunday, November 16, 2003 7:02 PM
Subject: [gmpi] Re: Reqs TODO


> I have worked with Hertz, linear octave (1=octave, 8=middle C), char MIDI
> key, and double MIDI key. The last is best because it is universal and
> because everybody already knows what the numbers mean. It's usually
> necessary to convert back and forth with MIDI and this obviously
simplifies
> that. Next best is linear octave because the octave relation is obvious.
> Hertz is not so great because pitch is logarithmic wheras frequency is
not,
> so MIDI or octaves are a little more intuitive than frequency.
>
> ============================================
> Michael Gogins
> gogins at pipeline period com
> Irreducible Productions
> CsoundVST, an extended version of Csound for programming music and sound
> Available at http://sourceforge.net/projects/csound/
> ============================================
>
>
> ----- Original Message ----- 
> From: "Tim Hockin" <thockin@xxxxxxxxxx>
> To: <gmpi@xxxxxxxxxxxxx>
> Sent: Saturday, November 15, 2003 2:55 PM
> Subject: [gmpi] Re: Reqs TODO
>
>
> > On Sat, Nov 15, 2003 at 09:55:22AM -0500, Michael Gogins wrote:
> > > I thought we had decided GMPI was to support experimental music and
thus
> >
> > yes
> >
> > > would support any tuning system. I suggest using MIDI key number but
> with
> > > floats, so fractional key numbers can represent any pitch. In my view,
> this
> > > is a CRITICAL question that will impact future interest in GMPI by
> hard-core
> > > experimental and computer music players, composers, and researchers. A
> >
> > Why this, instead of pure float hertz?  Or pure linear pitch (1.0 per
> octave
> > is how modulars work, right)?
> >
> > This was a bit of a quagmire in the XAP discussions, but it needs to be
> > addressed.
> >
> > Three proposals, so far (all float)
> >
> > 1.0/half-step (based on 12tET, but other tunings can work)
> > 1.0/octave (not tied to 12tET at all)
> > 1.0/Hz (non-linear, but highly accessible raw unit)
> >
> > We don't need to decide it now, but I wouldn't mind discussing it for
the
> > extra stuff section.
> >
> > Tim
> >
> >
> > ----------------------------------------------------------------------
> > 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
>
>
>


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