Binding Jump Prevention and Relative (Rotary) Encoder Support
For value to value type bindings, the value mapper supports an option "Prevent Jumps". This is useful when mapping absolute value controllers (eg: regular knobs/sliders) and prevents the binding from causing large sudden jumps to the new controller position.
When enabled, the binding won't have any effect until the incoming value "catches up" to the current target value.
For example, imagine this scenario:
- You have a song loaded with a slider mapped to the volume of a plugin. During the song the slider is moved to a reasonably normal volume position.
- You then switch to your next song which has the same slider bound to the volume of another plugin, but initially the plugin's volume is set to silent and you want to use the slider to fade-in the volume of the plugin.
At the point where the second song is loaded the position of the slide and gain setting of the plugin in the new song will be out of sync (the plugin turned right down, the slider positioned in a louder position).
- Without jump prevention, moving the slider a small amount would cause the plugin gain to instantly jump to the loud position.
- With jump prevention, the volume of the plugin won't be affected until the slider is brought down to the current gain setting of the plugin at which point it catches and then starts updating the gain of the plugin.
Rotary encoders (also called relative encoders) are a special kind of rotary knob that are endless. Instead of sending an absolute position, rotaty encoders send relative movements (ie: turned clockwise or turned anti-clockwise).
To support rotary encoders, Cantabile has a special "Relative Value Encoder" mapper:
The relative encoder modes are supported:
- Two's Complement
- standard two's complement signed encoding (1 = +1, 127 = -1)
- 0 is the negative most value and 127 is the postive most value
- Sign Bit
- The highest bit is set for negative values and the lower 6 bits indicate the magnitude
- refer to the documentation of your MIDI device to determine which mode to use (or just experiment with different modes until you find the one that works)
- by default most MIDI controllers with rotary encoders send absolute CC data and often you'll need to reconfigure the knob to send relative mode data.
- the relative encoding modes match the same settings in Reaper.
Relative Mode Scaling
By default the relative steps are configured so that 127 steps of a coarse controller will cover the full target range, or for fine controllers 16383 steps.
You can adjust the speed at which the controller affects the target value with the Relative Scaling property. eg: setting it to 50% will make the target value move at half the speed.
Note that you can set a negative scaling value to reverse the direction of movement.
Incrementing and Decrementing Values with Buttons
The relative mode options allow configuring two buttons to increase and decrease a value.
For example, suppose you have two buttons on CCs 16 and 17 and that each sends the value 127 when pressed. You could configure these to adjust a parameter in the following way.
This binding will increment the value:
then use a second bining with a negative scaling to decrement the value:
Note that the decrement controller has a negative scaling and both bindings have the relative scaling set to 3% to scale down the 127 value sent by the buttons down to a more finely grained adjustment of the target value.
If you can configure the value sent by the buttons you can use just one binding and have one button send a positive value and one a negative value (according to the relative mode you have selected).