Edit on GitHub

Generic MIDI and Encoders

Encoders are showing up more frequently on controllers. However, they use the same MIDI events as Continuous Controllers and they have no standard way of sending that information as MIDI events. Ardour 4.2 has implemented 4 of the more common ways of sending encoder information.

Encoders that send the same continuous values as a pot would are not discussed here as they are already supported by ctl.

Encoders as this page talks about them send direction and offset that the DAW will add to or subtract from the current value.

The 4 kinds of encoder supported are:

  • enc-r: On the bcr/bcf2000 this is called "Relative Signed Bit". The most significant bit sets positive and the lower 6 signifcant bits are the offset.
  • enc-l: The bcr2000 calls this "Relative Signed Bit 2". The most significant bit sets negative and the lower 6 signifcant bits are the offset. If you are using one of these two and the values are right but reversed, use the other. This one is the one the Mackie Control Protocol uses.
  • enc-2: The bcr2000 calls this one "Relative 2s Complement". Positive offsets are sent as normal from 1 to 64 and negative offsets are sent as 2s complement negative numbers.
  • enc-b: The bcr2000 calls this one "Relative Binary Offset". Positive offsets are sent as offset plus 64 and negative offsets are sent as 64 minus offset.

If the wrong one is chosen, either the positive or negative side will act incorrectly. It is not really possible to auto detect which one the controller is using. Trial and error is the only way if the specification of the controller is not known.

Many controllers have more than one choice as well, check the manual for the surface.