While I do feel that having loads of information stored just for a note event is a bit excessive, I then realised that the host could just store this information in a file simply as an event "tag" size, followed by the the event data, which could then be read into a standard struct. In memory, however, you could just have a table of events, and have a pointer to each event, maybe? ----- Original Message ----- From: "Michael Gogins" <gogins@xxxxxxxxxxxx> To: <gmpi@xxxxxxxxxxxxx> Sent: Sunday, November 16, 2003 10:24 PM Subject: [gmpi] Re: GIMPI-MIDI > I do not agree that separating note number and pitch is a good idea. > > I do agree that providing an ability to repitch a note during performance is > good, even vital. > > Csound allows a note to carry a tag. Subsequent note on messages with the > same tag do not re-initialize the note, but carry new information about ANY > parameter to the instrument synthesizing that note. It could be pitch bend, > volume, filter cutoff, whatever. > > So I propose: > > [time][duration][status][channel][key][velocity][userdefined]... > > If the status field has a fractional part, the fraction acts as an instance > tag and the event is routed to the instrument instance that first received a > note on message with that tag. > > Perhaps someone can suggest a better scheme, but I think the idea of an > instance tag is necessary to represent gestural performance data in a way > that is better than MIDI. > > ============================================ > 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: "Jeff McClintock" <jeffmcc@xxxxxxxxxx> > To: <gmpi@xxxxxxxxxxxxx> > Sent: Sunday, November 16, 2003 3:34 PM > Subject: [gmpi] Re: GIMPI-MIDI > > > > > 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 > > > > > ---------------------------------------------------------------------- > 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