Automatically organising a patch
Hello everyone,
It would be great to have a tool to automatically organising a patch.
I am not aware of any tool like this, i only know max-toolbox which is very helpful. But I would like to have a way to organise complex patches in one click.
I know this is a very personal task, each of us has different preferences, but the tool could have some options to apply some preferences... like placing ui objects in some way, prioritising data flow, placing comments together...
I guess very few would be interested in coding such a complex algorithm... but maybe people at cycling could have some ideas to implement such feature.
Any comments? anyone interested in such a feature?
Best,
w
isn´t organizing things your original task?
randomizing object positions always was one of the most effective copy protection methods and worked long before json.
but make sure you get the message order right before you do that. :)
then i guess this feature will never be implemented
Sorry, I feel like I completely trolled your thread.
Thinking about your idea more and more, I hardly see how a script could organize a patch in a meaningful way. The only idea I have would be to detect the longest chain of objects (objects connected by patch cords), and make it like the central column of the patcher. But even just that would be super difficult to be done right. Like how do you deal with recursion? With patchers with a lot of send/receive? With jit.gl oriented patchers that tend to have many small groups of objects instead of a big spaghetti plate? I feel like it would require as much time to fine tune your "automatic organization" and finishing manually as it would take to do everything by hand from the beginning.
Some things could surely be done through js scripting, but beside learning, it's not worth the effort in my opinion.
However, automatically coloring objects by type or family, and why not patch cords in some situations, could be not too hard and super helpful sometimes!
I would never ever let any mechanism fiddle with my patching.
It would take more time to set "organising" rules that to follow them by patching.
>randomizing object positions always was one of the most effective copy protection methods and worked long before json.
I prefer "select all, align:Left, align:Top"
it's super silly.
i have nothing to add(devising a system to automatically organize, will not be an effective use of someone's time until they can train AI to study patches and then recreate/augment based on a large training set, one that would need to be retrained frequently, not just upon every new version of Max... then we can train on patching 'styles' as well...get Monolake-like one day, then go full Autechre the next 😋). it is impossible to make everyone happy without alien AI 🤖👽🤖
...but just wanted to drop in and say hello... you are all looking very nice today :) 💃🕺
especially wetterberg 💁♂️🎩
oof, i feel i should explain my last post, you see: the blonde-haired 'male' in both of those last sets of emojis is ME -> i am holding a top-hat that might look good on wetterberg, and i am also the blonde male who is peering up the woman's skirt(the woman represents the cycling74 forums), while that same woman is taking a fighting-stance towards me :)
(i just tend to choose the default emoji sets, that's all)
it is a funny post, and i needed it to be understood clearly 😇
(no one prompted this explanation, but for some reason, the recent discovery of subscript and superscript emojis (thank you, Roman) has rocked my fragile little mind 🥸😱 ...and i've been going back to reinterpret all my posts based on this new supersub context)
(this thread is a cool thread, too, i meant no insult to the thread, it invites my imagination 🥹🤣)
(if anyone doesn't like my posts i am ok with them being removed🤘👇).
User Discussion Lists and Forums
The Company may, but are not obligated to, monitor or review any areas on the Website where users transmit or post communications or communicate solely with each other, including but not limited to user forums and email lists, and the content of any such communications. The Company, however, will have no liability related to the content of any such communications, whether or not arising under the laws of copyright, libel, privacy, obscenity, or otherwise. The Company may edit or remove content on the the Website at their discretion at any time.
get Monolake-like one day, then go full Autechre the next
haha, but those styles would be two perfect opposites: autistic ordering vs complete ADHD mess, roberts patches look like mine... everything is moved around until it makes a graphically perfect composition... because if it is not bootiful, it is not finished!
while the original request is not fullfillable i suddenly see how it could be useful to have your own patches analyzed by an AI, so that max can make suggestions in the future how to organize things according to your very own style.
it could save some of us quite some time. :)
A few days ago I came accros py2max which is a python library to generate Max patches, and the author have made some researches about what could be used to organize objects, and have even implemented some of them for testing. It seems to just take into account connexion between objects, not even talking about which kind of objects, but it gives a grasp on the complexity of the task of automatically organizing a Max patch.
@TFL Thanks for the mention, py2max author here.
Auto-organizing / auto-layout of Max patches was one of the original drivers behind writing py2max. My research led me to promising field of orthogonal graph layout algorithms with the adaptagrams library being a great example.
I managed, in the end, to experimentally apply some layout algorithms to Max patches using py2max and a bunch of open-source layout libraries such as graphviz and also my own pyhola wrapper of the aforementioned adaptagrams library. You can check out the full visual results of these experiments on this GitHub page.
I'll include a couple here for illustration:

and
