Re: Not recording controllers

From: Alexandre Ratchov <>
Date: Sun Dec 09 2012 - 23:06:14 CET
On Sun, Dec 09, 2012 at 10:11:58PM +0100, gorest wrote:
> Hello,
> a bit offf-topic, but your answer really surprises me
> > 
> > controllers 32-63 are not valid, they are defined as the lower
> > nibbles of controllers 0-31. Especially 32 and 38 are used for bank
> > select and data entry and using it for anything else is likely to
> > break synths.
> > 
> > For instance if midish receives controller 36, it keeps it in
> > memory until it receives controller 4, and then combines both
> > values into a single event. So, if the lower nibble (36) is
> > received without the matching higher nibble, no event is generated.
> Do you mean that today midish, always consider the 32-63 CC range
> as specific ?

yes; well, that's configurable, but still the code isn't smart
enough to handle Julien's setup.

> To my knowledge, this is not the midi standard. could you explain
> a bit more ?

controllers 32-63 are lower bits of continuous controllers 0-31;
For instance, the modulation is a 14-bit number transmitted as two
MIDI controller messages: controller 1 containing 7 higher bits
and controller 33 with 7 lower bits.

Devices that use only 7-bit precision (most) are allowed to
transmit higher 7 bits only (ie CC 1 in above example) and
similarly receivers must be able to handle such cases.

In real world, CC 0 (bank select) and CC 6 (data entry) are 14-bit
on most (all?) post-1995 devices, while other CCs are 7-bit.

What could do a 14-bit receiver that never received higher bits,
but receives lower bits? It has no other choice than to ignore
lower bits until the higher bits arrive. That's why most MIDI
synths don't bind CC 32-63 except for lower bits of 14-bit
controllers. Another example, what would happen if a 14-bit
controller sends a 14-bit expression (CC 11 & 43) on a synth that
uses CC 43 for something else.

Anyway there are synths that (ab)use controllers 32-63 for other
purposes, and midish must provide a the right option to handle

This page explains it:


-- Alexandre
Received on Sun, 9 Dec 2012 23:06:14 +0100

This archive was generated by hypermail 2.1.8 : Wed Nov 08 2017 - 16:32:24 CET