2015-07-25 14:16:07 -04:00
|
|
|
|
|
|
|
<p>
|
|
|
|
Encoders are showing up more frequently on controllers. However, they use
|
|
|
|
the same MIDI events as Continuous Controllers and they have no standard
|
2020-10-25 10:52:45 -04:00
|
|
|
way of sending that information as MIDI events.
|
2015-07-25 14:16:07 -04:00
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
Encoders that send the same continuous values as a pot would are not
|
2015-08-04 20:06:04 -04:00
|
|
|
discussed here as they are already supported by <code>ctl</code>.
|
2015-07-25 14:16:07 -04:00
|
|
|
</p>
|
|
|
|
<P>
|
|
|
|
Encoders as this page talks about them send direction and offset that the
|
|
|
|
DAW will add to or subtract from the current value.
|
|
|
|
</p>
|
|
|
|
<p>
|
2020-10-25 10:52:45 -04:00
|
|
|
The 4 kinds of 7 bit encoders supported are:
|
2015-07-25 14:16:07 -04:00
|
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>
|
2020-10-25 10:52:45 -04:00
|
|
|
enc-r: Relative Signed Bit. If the most sign bit is set, Then
|
|
|
|
the offset is positive. The lower 6 significant bits are the
|
|
|
|
offset. <code><Binding channel="1" enc-r="13" …</code>
|
|
|
|
The offset value is formed as <code>0svvvvvv</code>. Where s is the
|
|
|
|
sign or direction and vvvvvv is the number of ticks turned.
|
2015-07-25 14:16:07 -04:00
|
|
|
</li>
|
|
|
|
<li>
|
2020-10-25 10:52:45 -04:00
|
|
|
enc-l: Relative Signed Bit 2". If the most sign bit is unset,
|
|
|
|
Then the offset is positive. The lower 6 significant bits are the
|
|
|
|
offset. This is the same as enc-r but with the direction of turn
|
|
|
|
reversed. This is the method the Mackie Control Protocol
|
|
|
|
uses. <code><Binding channel="1" enc-l="13" …</code>
|
|
|
|
The offset value is formed as <code>0svvvvvv</code>. Where s is the
|
|
|
|
sign or direction and vvvvvv is the number of ticks turned.</li>
|
2015-07-25 14:16:07 -04:00
|
|
|
<li>
|
2020-10-25 10:52:45 -04:00
|
|
|
enc-2: Relative 2s Complement. Positive offsets are sent as normal
|
|
|
|
from 1 to 64 and negative offsets are sent as 2s complement negative
|
|
|
|
numbers. This is a signed 7 bit int.
|
|
|
|
<code><Binding channel="1" enc-2="13" …</code>
|
2015-07-25 14:16:07 -04:00
|
|
|
</li>
|
|
|
|
<li>
|
2020-10-25 10:52:45 -04:00
|
|
|
enc-b: Relative Binary Offset. Positive offsets are sent as offset
|
|
|
|
plus 64 and negative offsets are sent as 64 minus offset. 64 is zero,
|
|
|
|
65 is +1, 63 is -1. <code><Binding channel="1" enc-b="13" …</code>
|
2015-07-25 14:16:07 -04:00
|
|
|
</li>
|
2015-08-04 20:06:04 -04:00
|
|
|
</ul>
|
2015-07-25 14:16:07 -04:00
|
|
|
<p>
|
|
|
|
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.
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
Many controllers have more than one choice as well, check the manual for
|
|
|
|
the surface.
|
|
|
|
</p>
|
2017-02-13 14:53:37 -05:00
|
|
|
|
2020-10-25 10:52:45 -04:00
|
|
|
14 bit encoders are also supported with:
|
|
|
|
<ul>
|
|
|
|
<li>rpn-delta - The value is expected to be a signed 14bit value
|
|
|
|
that is added to the current value. For use with encoders</li>
|
|
|
|
<li>nrpn-delta - The value is expected to be a signed 14bit value
|
|
|
|
that is added to the current value. For use with encoders</li>
|
|
|
|
</ul>
|