Using OSC in Max/MSP?

Hey guys,
I recently posted about building an illucia DTR and was really happy with the responses and help that I got in that thread. As a bit of an extension on that, I wanted to ask some of the more programming minded people if they could help with a probably basic question. I’m trying to use Max/MSP as my main source of OSC signals (sending and receiving), but I’m having trouble getting OSC to work with Max. I know about the osc-route object offered by CNMAT in their external objects downloads, but every time I try to open up the object in Max it says the object doesn’t load: it turns orange and says it doesn’t exist despite being listed in the object database. Does anyone have any idea how to fix this or know of any other ways to route OSC from/to Max? Any help would be greatly appreciated. I’m hoping that eventually I’ll be able to pair all of OSC control with a Monome 64 to control other things in Max, but gotta get some more money first. Thanks guys!

i think the osc-route object is 32bit only… maybe you’re running max in 64bit?

here’s two approaches that may help you.

1 Like

Just checking - you have installed the CNMAT externals correctly? They are in the package manager now, so install is pretty easy.

As @benniii suggests they’re 32 and 64bit on OSX, but only 32bit in Windows.

You can also just use the [OpenSoundControl] object to send OSC messages out. I did use it for something last year, and while I can’t remeber the specifics here is a screenshot of part of the patch. This was sending OSC between programs (Max and VDMX) on a single computer. Maybe of help:

1 Like

@_mark – are you sure that the mac versions are 64bit? at least they’re not available on the CNMAT page as such. if you’ve got 64bit versions, where can i get them :slight_smile: ?

maybe i have a misconception of OSC – why do you actually need any externals to send and receive it? isn’t it a simple matter of routing and prepending (that can be done with regex and the like)?

1 Like

I’m just looking in the package manager:

Maybe C74 tested them before adding…

I’m no OSC expert - you’re probably right. I think some stuff is simplified by the externals, and it’s nice to have all the help files to hack apart. It at least worked for me :relaxed:

1 Like

the OSC message(s) must be formed into a packet that carries a time-tag and the message or bundle of messages.

1 Like

Wow I had no idea the CNMAT externals were available through the package manager, that’s amazing. I’m gonna get on that as soon as possible.

You don’t. If I understand correctly, when you send a message to udp send, it is automatically formatted as an OSC (or OSC-like if there is no address with a slash) message. Likewise, udp receive will automatically convert OSC messages into max messages. In the help file for updsend and udpreceive it says:

You can see what’s happening under the hood (on a mac or probably any unix system) by typing nc -ul PORT | hexdump -C into your terminal and then sending max messages to a [udpsend PORT] where PORT is any udp port. The terminal will print any messages you send in binary, and you can contentedly poor through the data and look at all the bytes that were added when you weren’t looking :slight_smile:

I’m not familiar with the DTR though; it may require you to use bundles.

edit: clarity