Re: [linux-audio-dev] News about sequencers (not my own though!)

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] News about sequencers (not my own though!)
From: David Slomin (dgslomin_AT_alumni.princeton.edu)
Date: to tammi  20 2000 - 16:12:40 EST


David Olofson wrote:
>
> Haven't put much effort into this yet, but my current idea is that the
> protocol should be kind of object oriented instead. That is, rather
> than just starting a note and use the pitch of that note for further
> references, use a "voice index", somewhat like a MIDI channel
> controlling a monophonic patch. (Or, if you prefer, like a tracker
> channel.) Voice index 0 could be used as a code for "affect all
> voices", to support the normal way MIDI handles controllers.

> (and a lot of other posts about MIDI replacements)

There's nothing particularly limiting about MIDI as it is, if you
have an unlimited number of MIDI streams (each with the traditional
16 channels). Bear with me a moment to examine what unlimited
streams allow you to accomplish...

If you want to control the amount of pitch bend separately for each
note in a chord, simply send each simultaneous note in a separate
channel, and send pitch bend or other CC's on that same channel.
If you run out of channels, simply take another MIDI stream.
Alternatively, always use channel 1 and use a separate stream for
each, to make things simpler.

If you want to send separate system exclusive messages to different
instruments or virtual instruments (sysex isn't channel specific),
simply use different MIDI streams for each.

Using separate MIDI streams rather than channels to distinguish
groupings of data makes routing trivial if you're using a system
like NetMIDI or FIFO-MIDI. It certainly wouldn't hurt in MuCoS.

This eliminates nearly all complaints I've ever heard about the MIDI
message protocol. (The MIDI transport protocol with its slow, odd
baud rate has already been abandoned for most purposes.) The
obvious remaining issue with the MIDI message protocol is that
note events don't support microtuning. My answer to that is don't
use note events, pick a few unused NRPNs and use them for the
following:

NRPN 1: value = set current pitch for channel (rough resolution)
NRPN 2: value = set current pitch for channel (fine resolution)
NRPN 3: value = note-on at current pitch
NRPN 4: value = note-off at current pitch

Set-and-hold is your friend, and easy to implement in a soft-synth
or such.

Oh well. MIDI isn't useful for structured composing, but it has a
lot of life left for realtime expression.

Div.

-- 
David Slomin, Engineer       mailto:david.slomin_AT_av.com
AltaVista Search Solutions   http://solutions.altavista.com/
RFC 822 plaintext email strongly preferred except for attachments


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:23:26 EST