One control to rule them all

Simon's icon

Hello there, I'm trying to build a control system so I can switch one set of dials between a number of zones, for example one set of controls that is switchable between x oscillators (or whatever)

I'm guessing that this has maybe been done already or can be achieved in a much simpler way as it seems like a fairly useful thing to do!

I currently have one dial and a tab object. Tab chooses control 'zone' 1-8. Ideally, when you change this value, it should recall the parameter for that zone and assign it to the dial before the stored parameter can be replaced.

However I cant seem to get it to work. Anyone any ideas please??

I've attached both files... Thanks a lot!

791.control_feedback_router.maxpat
Max Patch
Luke Hall's icon

You have an [append $1] in your patch which is throwing errors. Take a look at the patch below and see if it helps.

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

lh

Roman Thilenius's icon

for things like that i would use dynamic gates of forward/receive pairs with
names ending on ints, and put a [+ ] in the name formatting path.

then you can control targets 25-48 from your 24 sliders interface by adding
int 24 to the [forward] names.

seejayjames's icon

You can also have multiple dials atop each other (one layer for each zone) and use the [tab] to bring the current zone dials to the top:

bringtofront [dialscriptingname] message to [thispatcher]

It's more objects but the appearance is the same, and the layers will of course remember their values as they are unique.

If you name the first dial something like

my_dial[1]

and then alt-drag to copy, they'll auto-name themselves my_dial[2], etc. Then your message from [tab] (which outputs the numbers 1 to 8 for 8 zones) would go though

sprintf script bringtofront my_dial[%ld]
--> to [thispatcher]

the %ld is replaced by the tab's output number, you're done with the whole setup.

It's good to check out the scripting messages to [thispatcher] anyways if you haven't, the [thispatcher] help file changed how I do many many things in Max. A very versatile and surprising object to know well... not to mention the many window-control commands, essential for patch-building.

Simon's icon

Thanks a lot for the replies! The learning never stops :)

Simon's icon

@ Luke Hall - thanks a lot for that, I knew I almost had it!

@ Roman - excuse my ignorance, but I don't fully understand what you are mean by "dynamic gates of forward/receive pairs". Could you perhaps upload a basic patch if you had a second?

@ seejayjames - Ye thats something I never really looked into! I am sure there are all kind of handy things that can be done from there.

Thanks once again for all the replies.

Roman Thilenius's icon

just use forward and receive to build a gate in order to reach different targets:

dial - [forward]

[receive] - DSP 1
[receive] - DSP 2

sorry for the cryptic description :) see the abstractions´ helpfile maybe.

one of the rare cases where i use sends instead of connections.

Roman Thilenius's icon

830.forum_dynsend.zip
zip
Roman Thilenius's icon

oh je, i uploaded from the wrong computer, these abstractions do not work correctly.

please replace the "#2" with "s" in both files and they will do what they should!

-110

Simon's icon

Cool, thanks a lot! Will check them out now