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 : http://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
--- comes from the old pluggo times, and they were just leaving it like it was.