Re: Effects/SASL/Dynamic instr MIDI easedropping ...

From: Robin Davies (rerdavies@msn.com)
Date: Sat Apr 29 2000 - 22:04:40 EDT


> I didn't realize there was a "master channel" concept in MIDI

It's not immediately apparent. However, the master channel idea does show up
in the MIDI standard. I don't think I've ever seen a MIDI synth that doesn't
have a master channel setting. The most common use is to allow synthesizers
to selectively respond to SYSEX commands. Most SYSEX commands contain an
embedded channel number (somewhere around the 3rd or 4th byte) that is used
to determine the target synth when more than one synth of the same make and
model are connected to a single MIDI cable. Most synthesizers won't respond
to SYSEX commands unless the SYSEX channel number matches the master channel
set on the front-panel of the synth. It doesn't *really* apply to controls.
However, I suspect that the concept of a master channel does apply to some
of the GS/GX RPN/NRPN commands (I'd have to check).

> > 1) MIDI NRPNs 128 to 257 control the values of the AudioBifs
parameters[128]
> > array. (accessible using the 'parameters' standard name).
>
> I guess linmidi could have a mode where it implements this mapping for
> params[] if there's demand for it -- I'm guessing that there will end
> up being a more popular usage for params[] that will end up being the
> default mapping for sfront in general, though ...
>
True. But that's what I find rather attractive about the idea. I'm just
guessing that the params array will be used for... ummm... parameters. :-).
ie. parameters for configuration of an audio node in an AudioBIFFs
implementation, but that applies equally well for MIDI. Reverb parameters,
extended mixing controls, whatever... you'd want to be able to control them
from MIDI as well. Whether you consider them to be configuration parameters
made accessible via MIDI, or real-time controls made accessible via MIDI,
the parallel seems useful and worthwhile.

Truthfully, in the original spirit of MIDI, global paramters should be set
via SYSEX commands, not via NRPNs. Practically, though, the chances of
finding a controller that generates arbitrary SYSEXs is slim (to say nothing
of the ugliness, inconvenience and expense of joing the MMF just to get a
manufacturer ID in order to be able to register a SYSEX command ). Again,
NRPNs speak to this issue. They are intended to provide extended controllers
for new instruments, and they don't have to be registered.

Just on a hunch, I suspect the params array would also be useful for
user-interface control of orchestra and/or audio-effect nodes written in
SAOL in non-MPEG applications.

There are actually two options here. One is to implement the feature in
linmidi only (I assume that's your MIDI driver program). The other is to
implement it in the orchestra code. The former is attractive because it's
only a real-time implementation, and doesn't violate the standard in any
way; the latter is attractive because it allows users to record MIDI
performances and have them play the same way whether they're embedded in a
stream or played back via some kind of MIDI port emulation/adapter driver
thingy.

You might want to poll your realtime users to see whether they'd be
satisfied with real-time paramter control via NRPNs. Personally, my synth's
controllers can't be reprogrammed to generate control messages on arbitrary
NRPNs; however, I have seen synths that do allow physical controllers to be
configured to generate arbitrary RPNs and NRPNs. Thinking... Some of the
recent Yamaha synths, f'rinstance.



This archive was generated by hypermail 2b29 : Mon Jan 28 2002 - 11:46:39 EST