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.
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.
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).
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.
And, if for some reason someone should stumble on this thread, just to let you know that the introduction of expressions in binding made for a simpler solution: Introducing Binding Expressions - #91 by TorstenH
Sorry for bumping this to the top of the list of topics, but just felt someone might be happy with this information at some point.
@cpaolo Thanks. I’m still not clear what to do to install these scripts, but I expect I’ll figure it out eventually. Advice I’ve found so far is either too brief, for me, or applies to REAPER rather than Cantabile.
when it comes to ReaJS, you must think of it as configurable effect processor. It can process both audio and MIDI streams. To configure ReaJS, you must load into it a “script” which basically acts as a “plugin within a plugin”.
So, in order to use a “script” to process a MIDI data stream, you would route your MIDI into the MIDI input of ReaJS, you would route the output of ReaJS into the MIDI input of the VST plugin you want to control. Then, you should load into ReaJS (using its Load button) the script you need to process the MIDI stream as you want.
However, ReaJS looks for its loadable scripts in a particular folder, just like Cantabile looks for VST plugins in the folders listed in Options. In the case of ReaJS, the MIDI scripts are placed in path_to_your_installed_vst_plugins\ReaPlugs\JS\Effects\midi. If the script you need is not there, you will not see it when you press Load in ReaJS.
Hope this helps,
Gabriel
P.S. The scripts are just text files, with snippets of program code, written in ReaJS own language.
Thanks, Gabriel. It’s good to know what I should be doing… I still can’t get it to work though. I initially tried pasting the contents of the zip, which is a folder called Abs2Rel, into C:\Program Files\VSTPlugIns\ReaPlugs\JS\Effects\midi, then turned Cantabile off and back on again. That didn’t work (Abs2Rel doesn’t show under Load->midi in reajs), so I took the two files out of that folder and put those there instead. Still nothing, so I also pasted them into C:\Program Files (x86)\VstPlugins\ReaPlugs\JS\Effects\midi in case Cantabile x64 is loading the 32 bit plugin instead - also nothing.
So, the script is there, but I still don’t see it.
I’ll see what else I can learn abour reaJS. This is all new to me so I don’t have any insight into what to do when it doesn’t work as expected.
All ReaPlugs should work in Cantabile or other DAWs. However, they are old (the last release was in 2016), and it seems that Windows 10 is not officially supported.
Thankfully, ReaJS works great and is really useful.
I checked on my system, just to be sure that my advice was correct…and the abs2rel plugin was not showing up in ReaJS. After a bit of debugging, I have found that ReaJS is now looking for scripts in C:\Users\your_name\AppData\Roaming\REAPER\Effects.
My guess is that the configuration changed after I installed Reaper, a few weeks ago.
I copied Abs2Rel and midievents.jsfx-inc in that folder and Abs2Rel finally showed up in the Load menu in ReaJS. Therefore, I would at least check if you also have a copy of the scripts in AppData\Roaming and if ReaJS is trying to load its scripts from there.
Excellent. Thanks, @Gabriel. Yes, that works for me too… in the x64 version of Cantabile.
It turns out the x86 (32 bit) version is still loading them from C:\Program Files (x86)\VstPlugins\ReaPlugs\JS\Effects - I hadn’t thought to try that before.