Question about delta inputs and parameters with a 22-bit range

This forum is for discussing Reason. Questions, answers, ideas, and opinions... all apply.
warmrituals
Posts: 2
Joined: 06 Apr 2023

Post 06 Apr 2023

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?

rmtcvolte
Posts: 208
Joined: 15 Nov 2018

Post 08 Apr 2023

warmrituals wrote:
06 Apr 2023
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.
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.

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.

warmrituals
Posts: 2
Joined: 06 Apr 2023

Post 08 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 :)

rmtcvolte
Posts: 208
Joined: 15 Nov 2018

Post 09 Apr 2023

warmrituals wrote:
08 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 :)
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.

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.

Tiefflieger Rüdiger
Posts: 67
Joined: 05 Jun 2024

Post 06 Apr 2025

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.
rmtcvolte wrote:
08 Apr 2023
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.
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.

rmtcvolte
Posts: 208
Joined: 15 Nov 2018

Post 08 Apr 2025

Tiefflieger Rüdiger wrote:
06 Apr 2025
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.
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
Posts: 67
Joined: 05 Jun 2024

Post 08 Apr 2025

rmtcvolte wrote:
08 Apr 2025
Tiefflieger Rüdiger wrote:
06 Apr 2025
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.
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.
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.

  • Information
  • Who is online

    Users browsing this forum: CommonCrawl [Bot] and 34 guests