| This is interesting, but I don't understand the motivation for using
additional fields for note number and velocity, instead of simply increasing
the precision of the existing MIDI fields as in SKINI.
-----Original Message-----
From: Mike Berry
To: csound csound
Date: Monday, July 26, 1999 11:21 AM
Subject: Re: sequencer
> The solution that I am working on implementing in my own software uses
>MIDI as a base identifier with further long and floating point tags in
>the message. So a note on might look like:
>
>long NumberOfMidiBytes = 3
> unsigned char = 0x90 (Note On)
> unsigned char = 0x20 (Note number)
> unsigned char = 0x80 (Velocity)
> unsigned char pad
>long Number OfLongParameters = 2
> long LongParam1
> long LongParam2
>long Number OfFloatParameters = 3
> float FloatParam1
> float FloatParam2
> float FloatParam3
>
> So, for instance, LongParam1 might be the duration of the note.
>FloatParam1 might be the pitch of the note in Hz. And these could be
>defined by the receiver however they wished, and with as many p fields
>as necessary. I pass these messages using UDP. When the UDP is
>received, the receiver determines if only MIDI is supported or if the
>extended format is supported, and parses out the message accordingly.
> Obviously the gap is in hardware - I don't have a slider box which
>supports anything besides MIDI. But when the communication is between
>two pieces of software, this is easy to use.
> I preserve the MIDI data also because it is a useful format for
>defining triggering information, particularly if your app already has a
>MIDI triggering system built in (as GrainWave does). So these messages
>can enter into that triggering system but still carry further data.
>--
>Mike Berry
>mikeb@nmol.com
>http://www.nmol.com/users/mikeb |