I've been working on a custom remote codec and mapping for my DJ Tech Tools MIDI Fighter Twister, which I got primarily for its endless encoders. With the help of the Remote SDK documentation, I figured out how to set these encoders up as delta inputs (and I hope to release the codec and my mappings publicly once they're cleaned up a bit!), and in general they work beautifully! Except for one thing that's been bothering me enough to make an account here in order to ask about it.
While creating a Remote mapping for Europa, I noticed that many of the parameters have a 22-bit value range (0 - 4194304). What I would expect is that my delta inputs, which emit +1 and -1, would increment/decrement that current value in that huge range by 1. If I wanted coarser adjustments, then I could use the "Scale" in the mapping to accomplish that.
However, what I'm instead finding is that the +1/-1 is corresponds to a much coarser interval. Based on some eyeballing, it seems like Reason is internally using this delta on a value of... 64? It's a bit frustrating because the file I get from "Export Remote Device Info" has nothing to indicate that the input range is different from the output range.
I would love to have more precision on very fine knob turns, but it seems like it's impossible given this black box input conversion. Is there something I'm missing here? Has anyone else run into this problem with delta encoder inputs and 22-bit parameters and found a workaround?
Question about delta inputs and parameters with a 22-bit range
-
- Posts: 208
- Joined: 15 Nov 2018
This "22-bit value range" is only theoreticaly and often used with VSTs and newer RE. It does not mean you can have this huge amount available on the software knob. As I understand it, the resolution of the hardware encoder will be scaled to the resolution of the software encoder/value. If you are using a Delta encoder with the Tempo-bpm it will adjust from 0 to 999 every single step just fine. But on the Europa RE the Filter Resonance encoder will just have 100 possible steps as your Delta encoder de-/increase by 1 in hole numbers, although 1000 steps would be possible as it goes from 0,0 to 100,0.warmrituals wrote: ↑06 Apr 2023While creating a Remote mapping for Europa, I noticed that many of the parameters have a 22-bit value range (0 - 4194304). What I would expect is that my delta inputs, which emit +1 and -1, would increment/decrement that current value in that huge range by 1. If I wanted coarser adjustments, then I could use the "Scale" in the mapping to accomplish that.
Because of this Delta Encoders are not the best to reach higher resolution in any case. It looks like the firmware of the Twister is on Github
https://github.com/DJ-TechTools/Midi_Fi ... pen_Source
maybe someone has implemented the option to use the encoders with NRPN (14bit). If so, my advise is to use this instead Delta, as the scaling is different, better feedback for the LED on the Encoder and possible restriction of value range on the encoder to not dial endlessly from one end to the other.
I have good expierences with my BCR2000 - NRPN restricted to 0 to 1023 and Delta encoders for patch/track change, sequencer movement and tempo.
-
- Posts: 2
- Joined: 06 Apr 2023
Thanks! It would be nice if Reason devices also reported the effective "delta increments" for remotable items that map to values. I thought for input, the resolution of the encoder would be irrelevant; my understanding is that the min/max defined in the Remote codec are ignored for delta inputs and only used for output scaling. But it seems it's a bit more complicated than that!
I'm already deep in the rabbit hole, and in any case prefer to keep the delta encoders as they are for interoperability with other software I use the Twister with. But in case anyone else comes across this thread in the future and wonders how to squeeze a higher resolution out of the Twister in Reason... I suppose a challenge awaits, should they choose to accept it
I'm already deep in the rabbit hole, and in any case prefer to keep the delta encoders as they are for interoperability with other software I use the Twister with. But in case anyone else comes across this thread in the future and wonders how to squeeze a higher resolution out of the Twister in Reason... I suppose a challenge awaits, should they choose to accept it

-
- Posts: 208
- Joined: 15 Nov 2018
Reported resolution, aka max/min of an encoder is relevant, thats how the scaling is possible imo. The nature of Delta encoders is, that there is no min/max value, thats why the difference in scaling behavior appears.warmrituals wrote: ↑08 Apr 2023Thanks! It would be nice if Reason devices also reported the effective "delta increments" for remotable items that map to values. I thought for input, the resolution of the encoder would be irrelevant; my understanding is that the min/max defined in the Remote codec are ignored for delta inputs and only used for output scaling. But it seems it's a bit more complicated than that!
I'm already deep in the rabbit hole, and in any case prefer to keep the delta encoders as they are for interoperability with other software I use the Twister with. But in case anyone else comes across this thread in the future and wonders how to squeeze a higher resolution out of the Twister in Reason... I suppose a challenge awaits, should they choose to accept it![]()
For the interoperatibility I would probably load a dedicated preset with the remote_prepare_for_use() function from the codec, if that is possible. May be some reprogramming of the Twister with the start and the end of Reason is possible the same way, if you have all needed sysex messages.
-
- Posts: 67
- Joined: 05 Jun 2024
I've made a codec that communicates with the MF Twister in relative mode but communicates with Reason in absolute mode. That should always give you the optimal range and results in a more consistent feeling when interacting with stepped parameters. The thread is here: viewtopic.php?p=678936
BTW., I'd anyone has an idea how a lua script/remote codec can get the value range of the current remoteable item, then we could explore communicating everything with relative messages.
BTW., I'd anyone has an idea how a lua script/remote codec can get the value range of the current remoteable item, then we could explore communicating everything with relative messages.
Interesting. How do you know that Europa's Filter Resonance ranges from 0.0 to 100.0? In the Remote Codec SDK manual, I'm most often finding the 7 bit range or the 14 bit range, but no float ranges.
-
- Posts: 208
- Joined: 15 Nov 2018
Just tried it with the tooltip enabled. I dont know how the internal value conversion works, nor how to determine the range in the codec. But with remote override I can select what ever I want to control with a Delta Encoder, as my codec for the bcr2000 is changing the programming of the encoders. When the "Master Section" is selected, I have a bunch of Delta Encoders at hand. Doing so results in value changes by hole numbers with delta (100 values) and float (in 0,1 steps - 1000 values) with high resolution encoder.Tiefflieger Rüdiger wrote: ↑06 Apr 2025Interesting. How do you know that Europa's Filter Resonance ranges from 0.0 to 100.0? In the Remote Codec SDK manual, I'm most often finding the 7 bit range or the 14 bit range, but no float ranges.
-
- Posts: 67
- Joined: 05 Jun 2024
Ah, the UI values are different than the values in the Remote Codec system. I just found out that you can export the remote info for a selected device via the main menu -> File -> Export Remote Device Info. I see no float values in there, only integers. But most of Europa's parameters have a range from 0 to 4194304.rmtcvolte wrote: ↑08 Apr 2025Just tried it with the tooltip enabled. I dont know how the internal value conversion works, nor how to determine the range in the codec. But with remote override I can select what ever I want to control with a Delta Encoder, as my codec for the bcr2000 is changing the programming of the encoders. When the "Master Section" is selected, I have a bunch of Delta Encoders at hand. Doing so results in value changes by hole numbers with delta (100 values) and float (in 0,1 steps - 1000 values) with high resolution encoder.Tiefflieger Rüdiger wrote: ↑06 Apr 2025Interesting. How do you know that Europa's Filter Resonance ranges from 0.0 to 100.0? In the Remote Codec SDK manual, I'm most often finding the 7 bit range or the 14 bit range, but no float ranges.
-
- Information
-
Who is online
Users browsing this forum: CommonCrawl [Bot] and 34 guests