[sdiy] MIDI CC LSB as another controller
rsdio at sounds.wa.com
rsdio at sounds.wa.com
Fri Aug 16 02:12:19 CEST 2013
Great question, but it's not as complicated as you think. 7-bit
versus 14-bit is all determined by the devices at the endpoints -
origination and final destination - but in the middle it really
doesn't matter. That's the beauty of the MIDI design.
MIDI ports and sequencers really should only care about the messages
and their timing, without interpreting the data. Thus, it doesn't
really matter what you're using those CC numbers for. There are
certain considerations for merging data from multiple sources, but
that's more for dissimilar messages (real-time versus channel), not
for CC interpretation.
The only time you have to think about this is when you offer the end
user the ability to select CC numbers manually. If you offer 14-bit
controls (generating 14-bit values from a knob, or responding to 14-
bit values for a modulation intensity), then you probably want to
issue some sort of error message if the user also assigns the LSB to
a separate control. 14-bit only works when both the originator of the
message (e.g. control surface) and the final interpreter of the
message (e.g. soft synth) can handle the pairing of MSB and LSB. If
you're not using 14-bit at all, then you're totally free to use all
120 CC numbers for 7-bit values.
There's also a convention that the first 64 CC numbers are used for
continuous values, while the last 56 or so (excluding the mode
messages) are used for simple switches, pedals, and the like.
However, if you need more than 64 knobs then it's still perfectly
valid to use all 120 CC numbers that way.
I've shipped a couple of products with one or two 14-bit CC numbers
assigned to a specific parameter, with the remainder open for user
selection. I simply arranged for the user interface to exclude the
MSB and LSB for those 14-bit CC numbers so that there would not be a
conflict. In other words, at least 30 of the 32 14-bit controls were
available as pairs of independent 7-bit controls. No problem at all.
MIDI is agnostic about the way the messages are interpreted. Witness
the success of MIDI lighting - where note number selects an
individual lighting instrument and velocity becomes the light
intensity. So long as the rules of the bits and bytes are followed,
MIDI cables and sequencers will have no idea about the meaning of
what passes through.
Brian Willoughby
Sound Consulting
On Aug 15, 2013, at 04:32, rburnett at richieburnett.co.uk wrote:
> Hi all,
>
> 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?
>
> 2. Likely to work most of the time, but not recommended!?
>
> 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? :-(
>
> 4. Implemented by any mainstream manufacturers? Like Novation MIDI
> control surfaces, etc.?
>
>
> 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?
>
> Best regards,
>
> -Richie,
More information about the Synth-diy
mailing list