How to send OSC messages
Moderator: jesse
How to send OSC messages
Hi there, I am using SooperLooper in my Mac and I think I'm missing something here. How do I send the OSC messages to SooperLooper? I can't seem to find some easy implementation where I simply type the command and it does what I want. Can someone at least tell me if it exists? Thank you.
Re: How to send OSC messages
There are _a lot_ of ways to send OSC. Maybe the tools available in liblo (oscsend) would fit the bill? Or maybe liblo's Python bindings? Or you could use Puredata or Supercollider or whatever. Have fun ! ![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
Re: How to send OSC messages
Thanks for the help. Apparently I would have to make programs with Liblo and Puredata, right? They are not interfaces by themselves. I read that "sendOSC" is a command-line tool that allows me to send messages right away, but I can't seem to find it for downloading - I get 404 on the original page. Maybe someone here has it?
Re: How to send OSC messages
Well, liblo is a developer library so they don't provide binaries, so you have to compile it.
There is probably some convenient app for OSX but I don't know it, sorry. On Linux you could get the liblo tools from your package manager.
There is probably some convenient app for OSX but I don't know it, sorry. On Linux you could get the liblo tools from your package manager.
Re: How to send OSC messages
Thanks kasbah, I've made some progress with your suggestion. Turns out it was just a matter of compiling liblo, the oscsend tool seems to work - I have been able to send some commands to SL successfully.
I don't get how I'm supposed to get the return value of some messages though. E.g. the /ping message, nothing happens. I see there's a "oscdump" tool but it complains the port 9951 is being used already - if not the SL port, which port am I supposed to listen to?
I don't get how I'm supposed to get the return value of some messages though. E.g. the /ping message, nothing happens. I see there's a "oscdump" tool but it complains the port 9951 is being used already - if not the SL port, which port am I supposed to listen to?
Re: How to send OSC messages
You specify the return port in your registration message.
Re: How to send OSC messages
Right! The parameters of the /ping message dictate the return of the command. It took me a while but I've made it! Thank you kasbah. I'll document what I did below just in case anyone stumbles onto this topic in search for their questions.
I basically want to write a program that sends pre-programmed messages to SL whenever I tap my Bluetooth pedal. Probably will do that in AppleScript or something. So I have installed the liblo package (using its own installation guide to compile and run it); it comes with "oscsend" and "oscdump", two tools you can invoke from the command line. Sending messages is easy, just type "oscsend localhost 9951 /quit", as an example, you will see that your SL will freeze, because the engine is gone. In order to receive messages, whether you're getting the status of a setting, or you just want to ping, you have to leave "oscdump" running on another port, say 9952, and then point the return message from oscsend there: "oscsend localhost 9951 /ping ss osc.udp://localhost:9952/ osc.udp://localhost:9952/". The return of the command will show up on the "oscdump" output.
I basically want to write a program that sends pre-programmed messages to SL whenever I tap my Bluetooth pedal. Probably will do that in AppleScript or something. So I have installed the liblo package (using its own installation guide to compile and run it); it comes with "oscsend" and "oscdump", two tools you can invoke from the command line. Sending messages is easy, just type "oscsend localhost 9951 /quit", as an example, you will see that your SL will freeze, because the engine is gone. In order to receive messages, whether you're getting the status of a setting, or you just want to ping, you have to leave "oscdump" running on another port, say 9952, and then point the return message from oscsend there: "oscsend localhost 9951 /ping ss osc.udp://localhost:9952/ osc.udp://localhost:9952/". The return of the command will show up on the "oscdump" output.