[PD] Re: [PD-dev] We've got to undo the MIDI revolution! - Where isOSC?!

Martin Peach martinrp at vax2.concordia.ca
Thu Mar 23 21:40:02 CET 2006


Hans-Christoph Steiner wrote:

>
> On Mar 22, 2006, at 11:09 AM, Martin Peach wrote:
>
>> Hans-Christoph Steiner wrote:
>>
>>>
>>> On Mar 21, 2006, at 7:23 PM, Martin Peach wrote:
>>>
>>>> day 5 wrote:
>>>>
>>>>>
>>>>> On Mar 16, 2006, at 12:43 PM, B. Bogart wrote:
>>>>>
>>>>>> In fact I think the whole OSC external thing needs to be  rethought.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> why not just implement a wrapper to liblo ?
>>>>
>>>>
>>>>
>>>>
>>>> Investigating further, I see that liblo can only send via UDP  and  
>>>> UNIX sockets, not TCP. It handles its own sockets internally  just  
>>>> like libOSC (the basis for sendOSC and dumpOSC in pd).
>>>> In pd, netsend and netreceive can do TCP as well. OSC is  supposed  
>>>> to work on 'any' protocol, but AFAIK it hasn't been  implemented 
>>>> on  MIDI or RS232 or USB, probably for lack of  interest. At least 
>>>> a TCP  implementation would be useful for  those who need 
>>>> guaranteed  delivery of packets.
>>>
>>>
>>>
>>> CCRMA at Stanford University has a limited version of OSC on  
>>> serial  called dumpOSCSerial.  I never found the code, just hte  
>>> binary.   Ideally, there would be a Pd OSC lib that had no  
>>> transport built in.   Then you could choose your transport.  That  
>>> makes things much more  flexible.
>>>
>>> .hc
>>>
>>>
>> I agree. If there were objects called [OSCpack] and [OSCunpack]  that 
>> worked analogously to [pack] and [unpack] they would output  and 
>> input data in OSC binary format, I suppose as a list of floats  in 
>> pd-land.
>
>
> Sounds like its going down the right track.  How it would work  
> exactly?  OSC has two parts:
>
> /my/item 11
>
> Would these un/pack objects just handle the first part?
>
Maybe [OSCpack] would take an OSC path in its left inlet and whatever 
types were specified by its arguments in the other inlets, the same as 
[pack], so something like:
[/my/item 11(
|
[OSCpack i]
|
[netsend]
...would send 11 as an int, but [OSCpack s] would send it as a string 
and [OSCpack f] a float.


[OSCunpack] could have one outlet for a list comprising the path 
separated into symbols followed by the data. This could go to [route] 
for further processing.
[netreceive]
|
[OSCunpack]
|
[route my]
|
[route item]
|
[11\

or alternatively it could be more like [unpack] and have an outlet for 
each datum:
[netreceive]
|
[OSCunpack /my/item i]
|
[11\
...but that would only unpack one specific OSC address, so you would 
need one for each OSC endpoint.
Ideas?

Martin




More information about the Pd-list mailing list