I wish we had presentation mode for patch cables
Hi, it probably was already posted and I know some have figured out (albeit seemingly colvoluted) ways around it, but how possible would it be to implement presentation mode for patch cables ? (I'm guessing there would have to be presentation mode for inlets and outlets, or maybe a proxy type of object that would display inlets and outlets in presentation and connect them to objects in patch mode)
I've been working on some modular synth type of patch and that's really the only missing element.
the solution I found in the meantime is inelegant and not really ergonomic.
so here goes nothing
I'd love it if we could have a system within which we could have presentation mode for patch cables.
thoughts ?
check the new [crosspatch] object.
I know about it , but it's not customisable nearly enough, I need separate independent modules to be able to be connected to one another.
crosspatch object doesn't cut it unfortunately.
now if I could customize it in a way to assign coordinates to each individual patch point, that'd be nice enough
thanks for taking the time to reply tho ! I appreciate it
It is not suitable for all cases, but here's the way I do it: have your modules in bpatchers in presentation mode, load your modules in a main patch NOT in presentation mode but with all other objects hidden (select them and cmd+K, or toggle "Hide on lock" in the inspector). Then the trickiest part is to allow to create cables between your bpatchers while being in locked mode (or even in a standalone export of your patch). For this you can indeed have proxy objects for inlets and outlets, and you can use thispatcher scripting and/or javascript to implemeent the logic. Soon I'll have an example to share.
It is not suitable for all cases, but here's the way I do it: have your modules in bpatchers in presentation mode, load your modules in a main patch NOT in presentation mode but with all other objects hidden (select them and cmd+K, or toggle "Hide on lock" in the inspector). Then the trickiest part is to allow to create cables between your bpatchers while being in locked mode (or even in a standalone export of your patch). For this you can indeed have proxy objects for inlets and outlets, and you can use thispatcher scripting and/or javascript to implemeent the logic. Soon I'll have an example to share.
thanks, I can kinda see what you mean but I'm afraid I don't yet have the skills and knowledge for things like scripting/javascript
looking forward to see your example, I'm definitely interested to learn
one small detail regarding to my own patch that I'm building
I don't actually need for the connections to be functional, I only need them to
1. be shown
2. be saved in a preset (that's probably the very hard one)
[live.line] can help if you don't mind the effort to make it look clean.
You can control the visibility with message hidden 0/1
1. be shown
2. be saved in a preset (that's probably the very hard one)
That makes things quite simple!
Do these lines should appear across the whole patch? Or limited to a given zone? Possibly on top of some other objects? Should they be horizontal, vertical, a mix of both?
I could draft a simple JSUI that would allow to simply draw a line from one of its corners to the opposite one for example. But depending on your setup, maybe one JSUI is enough to display all cables, instead of having one per cable. Saving them in a preset shouldn't be too hard, as it's basically a matter of filling a coll or dict with each cable (represented by two pairs of XY coordinates), and storing it in a pattrstorage.
I've been working on some modular synth type of patch and that's really the only missing element
i hear you, but if you take into account that possible solutions involving java & co which write cables on top of the canvas might be so difficult or impossible to realize that it won´t work in standalones anyway, why not just limit yourself to regular Max or MSP connections (including the dependency on a max license and the edit on/off hassle)
regular connections can relatively easy be script-created, too, in case that is required.
another option might be to not draw anything at all and just click on little I/O menus on your bpatcher modules to remotely make connections between modules based on [s] and [r] that way. this solution will also work when the modules are not bpatchers but each has their own window.

Haha - TFL can you make it like VCV rack with dripping cables!?
Well, you could have one JSUI as a top layer of your whole patch on which to draws as much bezier curves (another name for dripping cables) as you want. It should have @ignoreclick enabled so you can click through it and actually interact with your interface, but that also mean that
there would be no easy way to select individual cables (although this wasn't in your requirements)
you need a way to know the XY position of every existing patch point in your interface
Hard to be more precise without knowing what your interface actually looks like.
Other than that, I 100% agree with Roman Thilenius answer.
Also, I don't know if you know about benny, it's a modular synth/environment entirely made in Max, open source and actively maintained. It has its very own approach for the interface (which is rendered in a jit.world window), and if you like it, ii might be easier to port your own modules into benny (there's documation about how to do that) than making your own modular environment.