Relative Controller Assignement

John Angeles's icon

Hi all

I am pretty new to maxmsp 7 and so far I can do almost everything I need, except the following:

I have successfully assigned midi controllers to my patch, for controlling levels, oscillators and pan pots.
I am in need to use a relative controller, but with no luck as of yet. I ve been digging the forums for the last 4 days, and other internet sources but couldn’ t find a solution in using a relative controller with my project.
So, my question is: Can someone point me out where should I look, or even better show me an example how could I use a relative controller into max?

I am currently using an arturia beatsep (it has 3 relative modes #1 sends values of 63 and 65, #2 sends values of 1 and 127 #3 sends values of 15 and 17 ). I can get my hands to a Doepfer pocket Dial if that makes a difference.

Thank you in advance

John

Roman Thilenius's icon

[select 127]
[i 1]
something with [accum], which includes the current parameter value

John Angeles's icon

Thank you Roman for your kind reply. I am already down the accum path.I don't know how sophisticated i have made use of it , however I have successfully managed to use my controller (1 and 127 option) to control a knob. However, if i move the max knob manually (eg mouse), and then my controller's knob, then its value is not added to the current state, and the max knob jumps to whatever the controller's position is if i move it. I guess i have to somehow let accum know max's knob value. Does anyone know if this can this be done? Or am i in the wrong path ?

John Angeles's icon

RelCon.txt
text/plain 8.77 KB
I have uploaded my patch, not sure if i did it the right way :)

Max Gardener's icon

John, I think you'd benefit with a little time learning about the trigger object, which lets you handle things related to updating and order of operations when working with multiple inputs. For that, I would recommend either

https://cycling74.com/tutorials/my-favorite-object-trigger

or Max Tutorial 5 (message order and debugging) on the subject. This kind of situation is something you'll encounter again and again, and getting this down will help you a lot later; it may well answer your next question before you even ask it.

John Angeles's icon

Thank you Max for your precious help, i am digging it already :) . Not sure if i have to integrate it in my patch or start from scratch though. Yes, you are right, it seems like an issue that I will be dealing alot eventually
Cheers :)

Pedro Santos's icon

Max Patch
Copy patch and select New From Clipboard in Max.

jvkr's icon

With mode 1 it not just give 63 and 65 but lower/higher values as well when the knob turns faster ccw/cw. In this case 64 is the center, so subtracting that gives fw/bw step. These values can directly be accumulated, also without [accum].

Max Patch
Copy patch and select New From Clipboard in Max.

Roman Thilenius's icon

I guess i have to somehow let accum know max's knob value


reset it (you can do that by sending a 0 into the multiplication input), then "set" it from your software knob.

dial
t i 0
prepend set - |
accum

Roman Thilenius's icon

Max Patch
Copy patch and select New From Clipboard in Max.

the second outüut of split could now be used to block incoming controller data when accum is outside the range of 0-127

Pedro Santos's icon

Here's a solution with the synchronization between MIDI and the GUI's dial, JVKR's suggestion of using mode 1, and Roman's alert to avoid getting out of the 0-127 range, although with a different implementation.

Max Patch
Copy patch and select New From Clipboard in Max.

John Angeles's icon

Thank you all so much for your help. You have (or you may) no idea how much of a boost it was for me. You see, for a max newcomer , max can be exciting but sometimes obscure! The thing is that with your help not only I have found a solution for my issue, but i have also started to even better understand the use of some boxes and how they communicate.It seems like it is one of the most helpful forums on the net. Thank you all , cheers :)