MIDI Remote, Relative value mode

can you provide some code example? i have same problemon my arturia mini lab

Hi mlindeb,

I have been looking at a midi controller with 16 Endless rotary encoders. In the product description (its on ebay) it states:

" The map mode must be set to “RELATIVE” mode and “BinOffset” in your DAW software for the rotary encoders to work correctly".

I gather this is the same as the Midi Fighter Twister. A question for you if you don’t mind.

Do the endless encoders of the Midi Fighter Twister work with cc values of 0-127 in Cubase 12 Midi remote? I don’t need fine resolution.


Oh, since this thread resurfaced, I might as well ask a question too, in case anyone knows.

What determines the “grain size” of the parameter? (Sorry, I don’t know what it’s called.)

For example. I have an encoder. It sends 65 when I twist to the right, and this is an increase x. I twist faster, it sends 66, or 67, or 70. This is some multiple of x.

But is this x the same value, when we’re in one plug-in controlling frequency, and then gain for the same plug-in? Is it a standard than one encoder click increases a frequency parameter by 1 Hz, and a gain parameter by 0.1dB?

I just don’t get it. If someone could explain it to me… I do agree that finer control is needed in some cases, but shouldn’t this be handled globally, on demand, by some scale parameter available on the surface itself? (Kind of like the shift key we use with the mouse for finer control?)

The MF Twister can be configured to send either relative MIDI CC or standard 0-127 values.
Both modes are supported in Cubase 12. However, using a relative mode, Cubase can not natively scale the range and thus treats both modes as 0-127 absolute.
Hope that helps.

This was the entire purpose of this thread. The only way to set the “grain size” is through the API using custom code. Cubase does not have anything natively that allows you to scale a relative encoder.

Every VST value in Cubase is handled as normalized absolute value between 0 and 1. MIDI Remote functions throughout the application then scales that to 0-127.

Unfortunately in my experience, trying to scale a relative encoded in JavaScript through the API introduced issues on its own. It works well unless you want Cubase to also send values back to the controller for feedback (such as an LED ring or a display showing the current value).

1 Like

Thanks for the info mlindeb… not completely familiar with this so have another question - to clarify how that works in the real world

For example,

You are on track 1 with ‘filter cut off’ assigned to QC1 and you adjust the parameter from 5000 hz to 2000.

Then you move to track 2 with ‘filter cut off’ assigned to QC1 at 500 hz - you wish to change it to 1000hz.

Is there a jump when adjusting track 2, QC1 on MF Twister? Does it work smoothly? I don’t need the LED feedback


This depends on the assignment you have made in the mapping assistant. If you have the entry for the encoder set to “Jump”, you are done tweaking track 1 filter cut off at 2000, change to track 2, the filter cut off is at 500, you twist the knob a bit, now it’s at 500 something.

Moreover, if you are lucky and the twister uses the same CC for the LEDS, the moment you change the track (in jump mode always), the LEDs will change from displaying 2000 (last value of track 1) to displaying 500 (first value of track 2).

Hey, thanks for the input… that should do the job for me - will report back to confirm how it works !!

1 Like