bPatchers creating duplicate Automation Lanes in Live
When I set an object within a subpatch to be "Automated and Stored" in Max I get multiple copies of it in the device's automation drop-down list in Ableton. For example,
High Pass Filter
High Pass Filter [1]
High Pass Filter [2]
...
High Pass Filter [x]
where x seems to equal the number of times I referenced the subpatch containing the object using a bpatcher. Meanwhile there is only one High Pass Filter object.
I am using bPatchers in a similar way that the Convolution Reverb Pro patch does to condense my UI to a usable size for a Live device. The Convolution Reverb Pro does not suffer from this issue, but I haven't found any clear indication of how that was accomplished inside the patching and parameters. I have seen similar posts on the forum about bPatcher issues, but haven't found a resolution there either.
I'm using the latest version of Ableton 10.1 Suite and the version of Max paired with it which I believe is Max 8.1.
If anyone has any clue on how to fix this or any insight into the related questions below I would be greatly appreciative!
- How does the flow of automation data from subpatch to main patch work and why does a bPatcher influence that? Is there documentation on this anywhere?
- Are there arguments we can give to the bPatcher to change that?
- Are there subpatch parameters that can change that?
- Are there scripts we could send to live.device to filter out the duplicates?
It's hard to give any advise on that. It seems normal that multiple automated objects will be visible in the dropdown. Every bPatcher owns a separate patcher instance even if they load the same .maxpat. I don't see 2 bpatchers with the same parameter in the conv rev pro device?
First of all, your comment was really helpful and got me another step forward! Thank-you!
I noticed Convolution Reverb Pro does not contain any of the subpatchers that it's bpatchers are referencing. They are saved within the device's "patchers" folder, but never show up as an object in the main patch (sneaky!). I deleted the "p HighPassFilter" object and similar objects from my main patch and that cleaned up most of the duplicates in the automation lane. The two remaining objects showing duplicates I think I can work around one way or another.
However the automation lane is still acting a little strange. I don't get any unexpected duplicates but any parameter that lives inside a bPatcher is listed with numbered bracket like so...
Parameter_LongName [1]
Furthermore, the parameters where I use the same technique as Convolution Reverb Pro (a bpatcher referencing a patch full of bpatchers) to create a menu gives me this...
Parameter_LongName [2]
So the number inside the brackets is tied to bpatchers again. Once again Convolution Reverb Pro doesn't seem to suffer from this issue for I suspect another subtle reason.
Lastly, when I try to update the name of a parameter in a subpatch I can not get the name change to push to the main patch. For example, if I change the "High Pass Filter" object long name to HPF TEST it will still show up as just High Pass Filter in the main patch parameter list and Ableton's automation lane.
I tried the following...
- saving the subpatch,
- "save as" the subpatch and overwrite it (usually gets bpatchers to update their window)
- save and save as the main patch
- closing Max and Ableton and reopening everything
- naming the object "HPF TEST" then using Control - X to cut and then Control - V to paste and then redoing the necessary connections. Wondering if I have to completely remake the object, not the end of the world, but a hassle.
In summary,
1. Anybody have a clue how to eliminate these brackets being added in Ableton's automation menu to parameters within bpatchers?
2. How can I get the main patch to see Long Name updates I've made to objects in subpatches?
I suspect these issues are connected. I'll keep digging into it, but any insight is greatly appreciated!
Parameter Longnames have to be unique. Imagine being a user and looking at a list of parameter names that are all the same... not a good experience. So anytime you have multiple copies of the same .maxpat in your code (like in a bpatcher) Max "unique-ifies" them by adding [n].
You can edit these names using the Parameters window (under the View menu) of your top-level patcher.
Regarding issue (2), once a top-level patcher has Parameter Longnames associated with particular objects in your M4L device, it maintains a list of overrides of their Parameter Longname/Shortname and Order that can persist even if you rename the objects in your subpatcher files.
(I think the intention of this behavior is that this allows you to re-arrange, and re-save other your sub patchers while keeping the [n] numbering consistent so as not to break saved automation in your Live set for the devices.)
Anyway... the only way I know of to do a bulk "reset" of all these names is to open your top-level .maxpat file up in a text editor, and delete the data in the "parameter_overrides" dictionary. I think I may also have deleted the "parameters" dictionary too at some point. Then you save the file in the text editor and re-open it in Max. Needless to say be careful when you do anything this way, but if you keep some backups saved you can't go too far wrong.
"parameter_overrides" : {
"obj-14::obj-14" : {
"parameter_longname" : "Gain 1[10]"
}
,
"obj-14::obj-18" : {
"parameter_longname" : "Gain 1[17]"
}
,
...
"obj-14::obj-27::obj-67" : {
"parameter_longname" : "Attack[2]"
}
,
"obj-14::obj-51" : {
"parameter_longname" : "live.tab"
}
,
"obj-1::obj-87" : {
"parameter_longname" : "MIDI Legato[1]"
}
}
Okay my advice to others trying to solve Max making duplicate parameters you don't desire in Ableton is the following...
***follow these steps with caution, I saved backup files to folders in my desktop at various stages throughout cleaning things up to avoid deleting something I didn't want to***
1. Remove any instances of a sub-patcher that you don't need within your patch. If a sub patcher is only referenced by a bPatcher you don't need the actual object in the patch itself.
2. Comb through the "Show Containing Project" menu as well as the project folder and make sure Max is referencing the files you want it to reference. As you programmed, duplicate files may have arisen (check the _DeletedItems folder). In "Show Containing Project" bottom toolbar press "+" then "Add Existing File" to give explicit paths to files. This should help most of the parameter names update as expected.
3. I found sometimes the Parameter Long names would still not want to update on the top-level patch. In that case, just go to View>Parameters and update the name manually.
4. If all else fails, open up the .maxpat file in a text editor and delete the parameter overrides as Tyler suggested above. HOWEVER, save backups. I briefly played with this and quickly got a corrupt patch file, but I had a backup so it was no big deal. I never ended up needing this step once I figured out the previous steps so hopefully you don't either!
Hopefully this helps someone else struggling in the future! Thanks to both of you for the advice as I stumbled through trying to solve this! Appreciate it!
Hey olsen and tyler just wanted to let you know that helping answer questions on the forum like this helped bring this project to life! It's very brief, but I gave you both and roman a shout out at the end of the little intro video I made...
Appreciate your helpful words, hope this encourages you!