[linux-audio-dev] OSC for GUI-Engine communication

Dave Robillard drobilla at connect.carleton.ca
Wed Jul 28 16:35:01 UTC 2004


On Wed, 2004-07-28 at 08:36, Dave Griffiths wrote:
> On Tue, 27 Jul 2004 11:31:43 -0400, Dave Robillard wrote
> > Hello,
> > 
> > I'm writing an audio engine that will communicate with the outside world
> > exclusively via OSC (and perhaps MIDI, but I digress..)  It's much more
> > generic, but for the sake of argument let's say the engine is a synth
> > and it needs to talk to a GUI.
> 
> Just being thick here, but I'd thought I'd ask anyway....
> 
> I've written a system like this myself, where the GUI/audio code passes token
> value pairs between them where the tokens are strings (ie "FilterCutoff") and
> the values are floats (or strings). It's pretty simple.
> 
 [ ... ]
> Should I be using OSC? What are the advantages? Would it enable my engine to
> be accessed by more clients? Are people writing software where the only
> interface is via OSC?

I think using OSC is definitely a good idea.  I'd say more and more
developers are going to be using OSC for things now, both in the LAD
world and elsewhere.  OSC has everything you mentioned above, and more;
messages can be an arbitrary number of arguments of any type (float,
string, int32, int64, midi, blob, etc. etc.).  Plus, like Steve said,
there's already a bunch of systems that can talk OSC (see
http://www.cnmat.berkeley.edu/OpenSoundControl/)

I personally plan on writing a suite of utility applications to control
OSC apps (bind input devices, MIDI controllers, etc. to OSC messages),
mostly for the purposes of testing a synth I'm building, but that's the
nice thing about OSC - utilities like that could be just as useful with
your program as mine.  Oh, and network transparency is a pretty nice
bonus too..

If you've already implemented a system it might not be worth changing,
but writing OSC server/clients is _really_ easy if you use liblo (which
is what I've been doing for the last day or two).

-DR-


P.S.  I'm aware I messed this thread up by starting it in another
thread.  Oops.








More information about the Linux-audio-dev mailing list