Forums > MaxMSP

Variables names in send/recieve objects? #0- something ish?

September 18, 2010 | 8:22 pm

i thought i remembered how to do that, but it looks like I don’t. i just want to be able to have multiple instances of my patches that all have sends and recieves in them without the instances talking to each other.
thanks!


September 18, 2010 | 9:04 pm

this seems to become the number one FAQ on the max forums.

it should work to write [send 0#_blahblah] – but that wont help you much
when you want to connect to a [receive] in another patch.

for creating pairs of send/receive you need to make a little abstraction
and initialise the name to the send/receive, for example by

[loadbang]
[t #0_blahblah]
[prepend set]

and, last but not least: this wont work with [send], so you need to use [forward]

-110


September 18, 2010 | 10:00 pm

@Roman

You’re quite right about this; despite having several years experience with MaxMSP, both practical and theoretical, and having gone through the documentation in detail, this is one aspect that seems to elude me. I often encounter patches built by others using 0#_whatever, in subpatches and abstractions where [poly~] is used. I try to copy the approach and it ‘doesn’t work’…

perhaps it belongs in the Arcana sticky


September 18, 2010 | 11:32 pm

these problems are usually releated to load order.

which is why i recommend to get the #0_ from "outside" instead of typing it as argument.

for poly, forward/receive, or play/buffer you need to do it like this anyway.


September 19, 2010 | 2:58 pm

right on, thanks. how do I name a buffer in a way that will work similarly? I mean I’m not trying to build anything polyphonic necessarily, but i have a patch that records audio into a buffer and reads it back with numbers being sent all over, and i want it to be all contained so that if i open the same patcher again, just another window, they wont be talking to each other at all and will be reading only from their own buffer. how do i does it?!


September 19, 2010 | 8:02 pm

exactly the same way:

[loadbang]
[t #0_blahblah]
[prepend set]

and then conect this to both, BOTH, your buffer and your play object.

to make 100% sure that the audio objects do not come across (which could
happen if audio is running already when you load another instance of the
patcher with the buffer) you could give the buffer a #0_blubblub name in addition.

i dont do this, it is a bit confusing because now the buffer shows a name which
does not match its actual status. i use [buffer~ noname] or something like that to
visualize that its name is set from outside or by a loadbang.

if you use an abstraction you might encounter situations where right to left order
suddenly makes a difference; i would not like to initialise objects like waveform~
or buffer~ from a subpatch, it is safer to have the loadbang on the same level or
above.

attached a simple example for the creation of unique names a la "1688drumsampler"
where there is no loadbang in the abstraction for that reason.

you use it like this:

[loadbang]
[110.unisym blahblah]
[prepend set]
[buffer~ setme] and [play~ setme]

-110

Attachments:
  1. 110.unisym.zip

Viewing 6 posts - 1 through 6 (of 6 total)