🔥 Lifetime deal! Get Control Surface Studio for Just £67 👉 Click Here To Get It
Time left... mailtimers.com
⚠️ Lifetime licenses are ending soon, get yours before they're gone ⚠️
Your shopping cart is empty.

Endless encoder

Submitted by CHOUPANIBRE on Thu, 03/31/2022 - 12:15
CHOUPANIBRE
Control Surface Studio User

Hi,

For a dance project I am currently working on, I am trying to create a «  true endless knob » . The show is 360° (using L acoustics L-ISA software) and musicians need to have hands on control over the Pan of individuals instruments coming into Live.
In Ableton, regardless of how I set up my controller and the midi mapping modes, my 360 pan is stuck at max and min value. My goal is to change the behavior of the controller so when the value reach 127 it is not stuck but jumps to the value 0 and can keep on increasing. And same thing the other way around.

Do you think it can be done with CSS ?

If someone could give me some hint on how to do this, it will be greatly appreciate !

Thanks !
Pablo

Note : I am using a Midi Fighter Twister

Topic Category: 

10 Responses

Comments

JohnC
Forum Admin
#1

Hi Pablo,
Endless encoders are usually 'relative' meaning they don't send values from 0 to 127 like an ordinary knob does. They will send a single continuously when turning left and another continuously when turning right.
This is set within the midi controller's firmware (in the case of the twister, using the MIDI Fighter Utility software).

Control Surface Studio doesn't alter the actual MIDI data being sent by a MIDI Controller, it simply attaches Ableton specific functionality to those MIDI messages.

I hope that helps.

John

aventham77
Control Surface Studio User
#2

You could maybe try creating a reaction that fires when the value hits 127 and resets it to 0, and vice-versa.

aventham77
Control Surface Studio User
#3

I'd be worried this might just get stuck in a feedback loop though!

CHOUPANIBRE
Control Surface Studio User
#4

Hi John,

Thanks for the answer,

I have tried the Relative mode and, for what I can see, as long as I set it up correctly in Ableton it as the same behavior as the absolute mode.

The finality is to make the parameter being controlled jump from the max value to the min (in my case 360° to 1°) so the audio can make full circles in the listening area.

I tried it in Logic Pro with the integrated control surface mapper. If I use the Midi Fighter in Relative mode (ENC 3FH/41H) and set up the mode (in logic preferences) to « Rotate » (pivoter in French). It is working perfectly. So my intuition is that it is possible to do the same in Ableton using CSS.

Do you think it is possible ?

I linked screen shot of the Logic Pro tests, I am sorry if I am not perfectly clear but as you imagine English is not my native language.

Once again thanks a lot for taking time to answer my questions

Wim
Control Surface Studio User
#5

Hello everybody,
I tried to do a couple of days ago what aventham77 is describing, and I always got stuck on the part where the reset needed to happen. The GUI was updated to the part where 127 goes to 0, but the controller didn't go any further, only backward.
After reading John's comment, that kind of makes sense now, (my endless controller is also in Relative mode), I will try to set the controller to Absolute mode and give it another chance. It could take some time though, so bear with me.

CHOUPANIBRE
Control Surface Studio User
#6

Hi aventham77,

I had something like this in mind, maybe reset the value to 1 when 127 is reached and to 126 when 0 is reached to avoid the feedback...
I would prefer a more "direct" way to do this if possible but if it seems like a viable option to you I should try it.

Thanks a lot !

Seth
Control Surface Studio User
#7

I quickly mocked up what you are after in a Max4Live patch:
It will need tweaking to actually make it mappable to your parameter but the logic is there to create an endless encoder. Designed to be triggered by a relative encoder. If max is totally new to you then I can probably help you make a finished patch. Currently it only receives CC 1 on channel 1.

https://maxforlive.com/library/device.php?id=8023

CHOUPANIBRE
Control Surface Studio User
#8

Hi Seth,
Thanks a lot !
I was hopping a solution only based on Remote Script to cut down the costs and keep it simple but the only time i came across a working exemple of what I am looking for was in the M4L surround panner. So maybe it is the way to go.

I will look into your exemple and contact you if I need more informations.
Really appreciate your help !!

Pablo

Wim
Control Surface Studio User
#9

Wow Seth,
Thanks again for your contributions! That is so cool of you! The M4L devices you make are very usable,
I will be trying this out!
Also thank you, aventham77 for lending your mind! It is always helpful to be able to read other people's ideas.

CHOUPANIBRE
Control Surface Studio User
#10

Hi !
I was busy last couple of weeks but had some time in the past two days to try the endless encoder thing. I managed to make it work ! The script is based on the idea of Seth but I had to use modifiers, the get value from ranges fonction and relative encoder mode in the MFT.
I will finish the project and post an update here with more detailed info in case someone needs that function too.

One more question :
It seems like I had troubles and errors when calling the same listener in multiple reactions. Does some one know why ? or what I could have missed ?

Exemple : Using selected track as changed listener (self.song().view.add_selected_track_listener) to select a specific device in one reaction. And to output a "track as changed" message in css log in a second reaction.
I had nothing showing up in css log until I merged the two reactions.