Limited Offer!
Get Control Surface Studio Now For Just £52
Time left to get it...
Your shopping cart is empty.

How do we get Relative control working?

Submitted by António Malheiro on Tue, 05/09/2023 - 19:29
António Malheiro
Control Surface Studio User

I already posted a post and for some reason it didn't post.

Topic Category: 

7 Responses


António Malheiro
Control Surface Studio User

I can get my relative #2 knobs working in CSS but I can't get one to control the mode selection via scroll, can anyone help please?

Forum Admin

Hi Antonio, do you have the 'left' and 'right' midi velocity settings and steps (ie 127) set correctly for the input?

António Malheiro
Control Surface Studio User

I have the knobs working with Relative 2 correctly when switching modes, with Left:127 Right:1 and Steps:127. For some reason changing modes with Relative doesn't work with Left:127 Right:1 and Steps:127. I think the log.txt. gave me an error. ChatGPT said something about it.

I'm trying to make a Reaction work now since I gave up on the previous task. I might ask for some help regarding it. Thanks for responding!

António Malheiro
Control Surface Studio User

And then Absolute stopped working to change the modes for some reason which was really odd. Regardless knob acceleration would be very good to work on CSS. I was trying to re-edit a script that does that with GPT but to no avail.
I am just trying now and gonna keep simple and trying to scroll the view through certain devices equal "every 3 CC" with a Reaction. I'm watching the video.

Control Surface Studio User


you mentioned "Relatve #2" so i guess you use an Arturia Controller, right?

Try the Python code below (keep attention to correct indentation) in a reaction (listener "encoder 1" MIDI Channel 7, CC 20)
A step size ist stored In global modifier "m20", with fixed step sizes 1,2,3,4 or 8 and dynamic behaviour (knob acceleration) is set by m20 = 0
The index of the device which parameters you want to change is stored in "m18".

# step size
step = self.get_modifier_value("m20")
# instrument device index
idi = self.get_modifier_value("m18")
# update device parameter 1
# get value of encoder 1
c = self.midi_cc_ch_7_val_20.cur_val
# get values of device parameter 1
a =[idi].parameters[1].value
# encoder right (with overflow handling)
if c < 8:
if step == 0:
s = c
s = step
a = min(127,a+s)
# encoder left (with underflow handling)
elif c > 121:
if step == 0:
s = c
s = 128 - step
a = max(0,a-128+s)
# update device parameter 1[idi].parameters[1].value = a

My experience with Arturia Controllers is, that the encoders wear out relatively fast. So the behaviour is not very reliable, there are lots of jumps in the CC values


Control Surface Studio User

Sorry, the upload destroyed identation.
See attached text file.

upload files: 
António Malheiro
Control Surface Studio User

Thanks so much, Dieter!! I will give a check. Yes, I am using an Arturia beatstep.