Preferred sequence of modifier steps for dynamic control?
Clarifying a previous wording:
I’m trying to set a reaction to run upon initialization to loop through track names and set a modifier value based on name, but the parameter doesn’t seem to exist. The goal is to confirm the right series of selections to get a series of modifiers to select parameters dynamically. I can get into audio effects racks and such; I just don’t seem to have track selection through name down.
Rather than build this in a way that allows me to control parameters on different tracks, I’m hoping to find the right workflow in CSS to have a knob stick to a parameter with modifiers at each point – parameter, device, and track – so I can recode it with different variables and scale that method out preferably to the entire script.
I’m assuming that the order is to have the following:
once script is initialised:
track name must contain “x”
device name must contain “y”
parameter name must contain “z”
I’m just not sure if I’m looking at this the wrong way as far as what to select in a dropdown menu for the desired response.
I’m a little confused sorry, are you wanting to control a device parameter dynamically based on the track and device name?
Hey there, John – thanks for replying!
I think I can describe it this way –
If I build it with Device Parameters set to target based on track number and parameter number, I’d be adjusting the script more than playing it every time something got moved or added – and that made me think.
I‘m able to use modifiers to target effects, drum racks, audio effects racks and the like. What I can’t seem to do is get a loop function to do anything for me but print a list in css.log, despite attempts to use arguments after generating that list in the log- I got that far using your tutorial. Tried track names as integers, tried as names, found out that adding quotes breaks the script…..but I seem to be missing a step somewhere.
I want to confirm a pattern using arguments available in loops and reactions to do the following with modifiers:
script is initialised-
1: loops through tracks & selects a track based on name designated in field
2:loops through devices on track & targets a device based on name designated in field
3: loops through available parameters and targets designated parameter OR uses the .devices[0] you helped me get the other week.
If I got that down just once, I could edit the modifiers in the code to things other than “m1”, “m2”…….”m20”, and using a library of unique values, stretch that method across the entire multi-controller template.
Rather than the approach to dynamic control that gets 1 knob to control volume on one of 8 tracks depending on selection, this would connect to parameters to surfaces when the script initialises – allowing those connections to follow devices based on name.
A cleaner way of putting it may be this –
Let’s say I have a device parameter set to pull the loop iteration number for the track as m1, then loop again to locate a device, pulling that iteration number as m2, and then looping through parameters and setting a device referenced by name to m3.
1: I could set it to run it when the script initialises or when a knob is turned, but I’m not sure of the best practice there.
2: I’m unsure if I’m to leave the final action blank in order to move on to the next action block, as at least 2 stages of loops seem necessary to first specify track and then specify device – and a third if the aim is to also use a modifier to grab the right parameter.
The sequence I’m trying to come up with would be the proper steps for reactions to allow for either a knob twist, fader push or button press (or the first run of the script – if that’s the best practice) to target a device’s parameters based on the track it’s in using 2 or 3 stages of loops to go as follows
Let’s say I want knob 1 to control arpeggiator rate on only on 1 specific instrument. I’d like to build this out in a way which allows the turning of knob 1 to run the following loops:
target track(by name/number)>
target device(by name/number)>
target parameter(by name or number)
….and at the end of this process – if this is a sane way to map things and won’t make Ableton flip out – one would have code which they can go back and repeat, edit, repeat, edit, etc., so long as the proper portions in the .py file get changed to include the new modifier names.
That replacement trick with the modifiers I’ve played with and can do – the main hitch is confirming the right selections in each reaction fields in the right order to allow either the initial knob turn or initial script firing to run the loops and pass the right values via the stock modifiers.
If you want to loop through multiple things (tracks, devices, parameters), only 1 loop is possible per action block so do each one in a separate block (in the same reaction).
But before these add another action block at the top which does all of your checks in conditions and exits the reaction (script > exit reaction) at this point if the conditions are not met.
Sign up
User registration is currently not allowed.