Understanding Sends and Receives
I'm dissecting a Max patch and still learning much of the basics. I'm confused by the Sends and Receives in this patch.
There's an object [s ---rec]. To my understanding that should be sending to another object that has the same argument name [r ---rec]. However in the screenshot attached has a live.text object set up as a toggle called "Mute". This toggle is sending to [s ---rec] but there are no corresponding receive objects with the same argument name. Any explanations?
There is a patcher with the name "rec" though. The "Mute" button is sending information to that patch but why and how? Thanks in advance.
There is probably a [r ---rec] inside the [p rec] patcher, otherwise the [s ---rec] would make no sense.
Oh yes. Thank you. So you can send and receive to sub-patches. I guess I didn't realize that. So the "---" is not some special kind of syntax in Max?
Named objects (like send, receive, buffer etc.) share a global namespace. That means, if you have a [s foo] object in one device, any [r foo] object in any m4l device will receive the messages you send to [s foo]. Even if it's a completely different m4l device (let's say the [send] is inside a max-midi-effect and the [receive] inside a max-audio-effect.
To prevent that, you can put "---" at the beginning of the name. The "---" gets replaced by a different number for each m4l device, for example the [s ---foo] will become [s 001foo] in the first device [s 002foo] in the second and so on.
There's a very short explanation here : https://cycling74.com/docs/max6/dynamic/c74_docs.html#live_symbols
Thanks a lot for that clarification.
When Thé patch is locked, click (or cmd-click maybe)on any send / receive and you will get a list of all objects in that namespace in your patch or sub patches. Choosing one in the list will select it.
oh, didn't know Live had its own unique identifiers
that ---
comes from the old pluggo times, and they were just leaving it like it was.