OSC ... how to implement a simple solution?

Discussion of music production, audio, equipment and any related topics, either with or without Ableton Live
Post Reply
Angstrom
Posts: 14677
Joined: Mon Oct 04, 2004 2:22 pm
Contact:

OSC ... how to implement a simple solution?

Post by Angstrom » Mon Jun 08, 2015 5:24 pm

Hi guys. I'm trying to create an OSC solution here and keep running down corridors and then slamming into walls.

What I want to do
I want to control Reaktor with TouchOSC, and also see one or two informative strings about Ableton Live's status.
So I want to connect to Live, and to Reaktor with OSC.


What works
Reaktor works fine. I have a performance patch in Reaktor successfully connected to TouchOSC which works great and Reaktor is very easy to set up with OSC / TouchOSC. I also have the old version of LiveControl (the TouchOsc one) which is a little sluggish but for my purposes it also works great to grab LiveAPI bits and pieces.

What I intended to do was improve my own Reaktor TouchOSC interface with a few pieces out of the old LiveControl implementation and combine the two. So I'd have my Reaktor sequencer tab, and spice it up with one or two names, strings and parameters from LiveAPI.

Both of these work well in isolation. But combining them is a giant PITA

What doesn't work
Ableton Live obviously doesn't implement OSC natively and so it relies on a few bridging components to implement OSC. In the case of LiveControl(v1) that means a standalone executable which acts as an OSC bridge connected to a Live (python) remotescript. That's fine.

The problem is that TouchOsc can only send out on one port (eg "5000"), not a range ("5000-6000"). And the Livecontrol executable monopolises this through the Bonjour service. Meaning that now Reaktor is locked out. It's either LiveControl OR Reaktor.

What I tried
I decided to try some other Ableton OSC solutions, there's one called LiveGrabber, which is a bit more granular. But for some reason it cannot detect Java on my system and so its Bonjour fails to start. It cant connect to OSC.

I then tried to open up the Max editor and spent a little time looking at the internals, and wondering where the core-level OSC components are for Max. (perhaps I could build a simple socket?) As far as I can tell from internet information there is not a core OSC implementation, it requires an "external" or perhaps two. It certainly requires Max to be able to find my Java.

My assumptions:
It may be that my recent update of Java actually uninstalled the JRE in MAx as detected as unsecure.
Or, It may be that Max and OSC is really a no-go area in Live, or some other thing.

I hope for an elegant solution which doesn't involve words like "recompile the kernel" (Linux based joke)

so...

does anyone have any actual experience of implementing a nice simple OSC solution?


What I'd like is something a simple as the one in Reaktor, which is as simple as "activate OSC, the press OSC learn, DONE!"

So, like the Left, not the right!

Image



but so far I have spent three days trying various M4L abandonware which doesn't work. So I'm a bit stumped.
I'm not exactly enticed into purchasing more flakyware from 3rdparty M4L suppliers due to the poor implementation which seems to exist.

broc
Posts: 1148
Joined: Mon Jul 26, 2004 8:37 am

Re: OSC ... how to implement a simple solution?

Post by broc » Mon Jun 08, 2015 11:55 pm

For handling OSC in Max (and M4L) you can use [udpsend/udpreceive]. Quite simple and no Java involved.
But there is a general limitation of UDP/OSC that different applications cannot receive on the same port.

Angstrom
Posts: 14677
Joined: Mon Oct 04, 2004 2:22 pm
Contact:

Re: OSC ... how to implement a simple solution?

Post by Angstrom » Tue Jun 09, 2015 12:13 am

broc wrote:For handling OSC in Max (and M4L) you can use [udpsend/udpreceive]. Quite simple and no Java involved.
But there is a general limitation of UDP/OSC that different applications cannot receive on the same port.
Thanks broc, It did seem this was a problem I'd have to overcome and felt myself being drawn (as if towards a black hole), with the thought "I should write a UDP port forwarder, I bet that won't take me long".
Then I remembered, that's more of a "day job" sort of thing, and black holes like that can turn people into angry red string. :?

And then I thought "I wonder what other people do?" Because OSC is so powerful otherwise, it seems unlikely that everyone is using a 1-to-1 client host relationship. So I thought I'd pitch it to the crowd.
I have a few avenues to investigate, I'll try not to get drawn away from sequencing into writing port-forwarding clients, but it may be inevitable. I'll see.

At the moment I seem to be getting closer to my initial target which is - Send and return OSC with Reaktor & TouchOSC, and Live also sending update information to TouchOSC (clip info, volume info, etc). I don't really need TouchOSC to send back to Live, because I have hardware controllers for that part. So, that may be enough to get me up and running.
When I reach a concrete resolution to that I'll let people know how I got there.

Angstrom
Posts: 14677
Joined: Mon Oct 04, 2004 2:22 pm
Contact:

Re: OSC ... how to implement a simple solution?

Post by Angstrom » Mon Jun 15, 2015 5:41 pm

An update on this:
I got hold of Eraser Mice's OSCular series which is a nice basic system for sending and receiving OSC messages in Live.

With this I could then quite simply send track information to my iPad and incorporate it with my Reaktor setup.

at the moment that looks like this. Really it's just providing information about what all my other (physical) controllers are doing, what is armed, what is active, if I touch a hardware control what Macro is that really going to alter, etc. etc.

Names and levels really.

So I'd say if anyone wants a basic method of getting and setting messages over OSC then the erasermice one is pretty useful. You should be aware that I tinkered with it a bit to get it to do exactly what I wanted, but the innards were not so obscure that this was too difficult.
Image

S4racen
Posts: 5265
Joined: Fri Aug 24, 2007 4:08 pm
Location: Dunstable
Contact:

Re: OSC ... how to implement a simple solution?

Post by S4racen » Wed Jun 17, 2015 10:59 pm

Nice work ;-)

Cheers
D

phaded
Posts: 104
Joined: Wed Sep 09, 2009 5:00 pm

Re: OSC ... how to implement a simple solution?

Post by phaded » Sun Jun 21, 2015 12:57 pm

Angstrom wrote:An update on this:
I got hold of Eraser Mice's OSCular series which is a nice basic system for sending and receiving OSC messages in Live.

With this I could then quite simply send track information to my iPad and incorporate it with my Reaktor setup.

at the moment that looks like this. Really it's just providing information about what all my other (physical) controllers are doing, what is armed, what is active, if I touch a hardware control what Macro is that really going to alter, etc. etc.

Names and levels really.

So I'd say if anyone wants a basic method of getting and setting messages over OSC then the erasermice one is pretty useful. You should be aware that I tinkered with it a bit to get it to do exactly what I wanted, but the innards were not so obscure that this was too difficult.
Image
^^^^ all of this... the whole Eraser Mice pack (OSCular / Prosession / Idea Tools) is mint :!:

C.E.O. of The Zero-Fucks Commission

Post Reply