One control to rule them all
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!
You have an [append $1] in your patch which is throwing errors. Take a look at the patch below and see if it helps.
----------begin_max5_patcher---------- 688.3ocwW00jZCBE843uBFd15.DfP5a82wNcbhIrUZiINIn0t6r+2KeDUz0n QqS5KWBWB26gCmKj79jH3h5cxVH3qfW.QQuOIJx4x5HpqeDbU1t7xrV2qAqj +tdwOgS8Cok6zN2qajqkUEfVod+X0azkRs9Oqk93Cgfu2Mzq0U5V0atAvjYn N2UaVopLywkIbmy0Y57kppeLuQlq8QBSQl4.HIbaSB00w35P7UENPY.5WvXX PRqxV4RJ7aMprR3w75AqOwVmeLYh0L8eiUdqDzH21OgL8dIExsIERpsIN8Zj h3d4DxyiSP.zSRgL.x.k3THoyX8SFI+GEH40kkfhLc100HSeDsx.JfXtRG1U oG98ROzNusYakEyMgvj14YZciZwFs+vlnCrTDTtZgzkMjygiWeRrqFn.pdYV Uk1Rp1lmEuRPXKghELWMH8Z7Z7XTCpyVbq0+oBq7RU9uLyxHLqa7unSpflwS PLgv9TJIkhIlkYvB67oDyQIB5zK9T375gvMWmzJqzYZUcUntk6OViSbzLM11 vEAwaY8VYiU.bBZ3F.icX+yOc1pn6xPH1xKDqI1ZnVCyZ3VSh0HNRaWTfr7A 3QO9ePxrGEIVfS3wtKJoLJikNEHRmIHbJMwD.jXVJJEIDGiS.6GtfBTuoC3T ykmsO3qMBMg7WfRONnP9Fy+ApIJBf3mJJdsrNSei809OPEybE9Lzd6QctMtl rsditGFkc6KabQCVppN+S1bHx5+zkca8ll78qrtb.NhoBYqVUcXW9kCWGF7N KUEER2v6KMWoJVWaN6nCB8rELTDkL.DIFUDIF.h3iJhRGBIEOpPJdfBI7nhH 7ycaiP39uRxebC0+YRr9O2YnXkO.1y9eKi3F5Yo6xXhcePZOik5tzF2wlmzC yHAbqq2IKDSmOl7WCojSPB -----------end_max5_patcher-----------
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.
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
and then alt-drag to copy, they’ll auto-name themselves my_dial, 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.
Thanks a lot for the replies! The learning never stops :)
@ 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.
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.
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!
Cool, thanks a lot! Will check them out now