ReaJS script to turn absolute rotators into relative

I use an SL Mixface with my SL88, providing faders, knobs and buttons, which works well controlling drawbar organs and most other settings on my instruments (ok, Minimoog is a challenge), but I had issues with the knobs getting activated when being a little too enthusiastic. I tried to solve it using jump prevention in my bindings, but then I struggled to find the ‘attack point’. I ended up making a small JSFX script to turn the absolute rotators into relative rotators, and if anyone else can use the this it just needs ReaJS and the two scripts in the attached file.

Usage is very simple, route the CCs from the knobs to the plugin, and get the relative value as output, same CC and channel. When setting up bindings use the ‘Relative mode 2 (offset)’. If for some reason there is a need to reset the offset, then send a prgm change to the plugin (any prgm change will do), and it will start from scratch again. (1.0 KB)


I’ve taken a few stabs at getting my Axiom 1st gen knobs to just move relative from the original setting in several VST’s and found it still too jumpy. I’ll try your ReaJS script approach.

1 Like

Let me know if there are any issues or you need any info. I got frustrated with the knobs moving at a rehearsal Monday, tried jump prevention Tuesday, and decided (and created) the ‘relative’ approach Wednesday, do this is an early version that may need changes and/or improvements.

@brad, I don’t know if it is worth considering this functionality as (yet another) encoder setting, as and addition to the existing ‘jump prevention’ setting, i.e. something like “Absolute as relative”. I don’t know if it gets awefully complicated when considering coarse and fine and all the other weird details, and my little script seems to work for me and prevents the jumps that happened when a controller was inadvertedly activated, but at the same time allows the controller to react immediately if I want to make small adjustments (which is normal the case in a live situation).

1 Like

Interesting idea… what happens if you hit the end of your absolute knob range? Is that what the reset is for? I guess you need to center the knob and then hit reset?

Ah, sorry for being very brief in the first post, I wasn’t sure how many would find this interesting, and didn’t want to waste their time with having a lengthy description, just for them to realize it was of no use to them. So …

Reset is used to bring the encoding back in state undefined, and I included it because I wasn’t sure how this would work in a linked rack across songs (if the knob was turned between the use of the linked rack and came out of sync), so I use it for resetting at the start of a song load. It just sets the status back to the initial unknown state for the encoder.

So far I have made the concept of the encoder extremely simple, if you hit the end of the range, then nothing happens. If I want to get further, I have to turn the knob the opposite direction until I extend the range, and if I turn it all the way to the other side, then it basically behaves like a normal absolute knob. To avoid getting into this situation at all I (intend to) try to make it a habit to set the knobs in ‘neutral’ position as part of setup. But I also find that I would only need the extremes when at home working on setups, rather than live when making minor adjustments, so this way it worked for me. And it also made the programming extremely simple.

The problem I try to solve is that I normally only want to make a small adjustment to a setting when playing live, without having to focus too much on a small screen to locate a specific setting (if it is visible at all) and see how it changes, but also don’t want the jumps if the knob and the setting is out of sync. So I fully agree and understand that there are limitations to this solution.