[sdiy] MIDI CC LSB as another controller

Neil Johnson neil.johnson71 at gmail.com
Thu Aug 15 18:56:45 CEST 2013


Hi Ritchie,

> Does anyone know if it is acceptable to use MIDI CC numbers 32 to 63
> (decimal) as additional normal-resolution MIDI controllers?
>
> The MIDI standard says "Controller numbers 32 through 63 are reserved for
> optional use as the LSB (least-significant byte) of MIDI controllers 0-31."
>
> I know that their use for adding resolution to CC's 0-31 is optional and
> understand how this works, however, I would rather use these numbers as 32
> seperate additional single-byte controllers in my project.
>
> Is this practice...
>
> 1. Acceptable under the MIDI standard?

Unlikely, but then I'm not on the MIDI standards board and I've
already had disagreements with them ;)
Why not ask them yourself on their forum?

http://www.midi.org/cgi-bin/forum/forum.pl/

> 2. Likely to work most of the time, but not recommended!?

You'll need to cope with MIDI controllers that *do* send 14-bit data
as well as those that don't.

> 3. Likely to cause sequencers to balk as they frantically try to pair up
> MIDI CC's that they think represent low and high bytes of the same variable?
> :-(

Difficult to say.  If I were writing a sequencer I would simply
maintain a table of 14-bit controller values, and when an LSB message
comes in just update the relevant controller entry's lower bits and
timestamp when the change happened.

> 4. Implemented by any mainstream manufacturers?  Like Novation MIDI control
> surfaces, etc.?

Some controllers do generate 14-bit data, but I don't think you can
choose to generate just the LSB -- it's either 7-bit MSB or 14-bit
MSB:LSB pair (if you have a choice that is...).  Some software
sequencers like Logic can probably generate whatever MIDI message you
want, if you can work out how....

> My project potentially has a lot of tweakable parameters, and I'm sure
> things like this are really meant to be controlled via NRPN's or SysEx.
> However, I can't help feeling that just using a whole bunch of MIDI CC's
> would transfer the control movements quicker, and would be easier for the
> end-user to edit control automations in a sequencer package?
> Am I right?

Quite possibly. With running status to update a single control would
take 9 bytes.  However if you're just twiddling one 7-bit parameter
then once you've sent the first message (CC98,CC99,CC6) you only need
to send CC6 with updated values.  If you can fit all your parameters
in a single 128 'page' you only need to send the NRPN MSB once as
well, saving a couple more bytes.

Neil
--
http://www.njohnson.co.uk



More information about the Synth-diy mailing list