[PD] osc objects
Martin Peach
martinrp at vax2.concordia.ca
Wed Apr 26 23:18:35 CEST 2006
Piotr Majdak wrote:
> Hi Martin,
>
> Martin Peach wrote:
>
>> Sure...[routeOSC] is based on [OSCroute] but the routes are settable
>> after the object is created. It is also standalone in the sense that
>> you don't need to load lib OSC to use it. It's basically the same
>> code, cleaned up a bit.
>> [unpackOSC] is based on [dumpOSC], again nearly the same thing but
>> cleaned up and made independent of lib OSC.
>> For instance the messages to the user use 'post' instead of printf
>> and OSCerror or whatever it was.
>> [packOSC] is based on [sendOSC] but doesn't do the network part. That
>> can be handled by [udpsend] or [tcpsend] or possibly [comport] and
>> [midiout] with some extra massaging of the lists they output. That
>> makes the OSC objects transport independent as the spec intended (but
>> nearly every implementation is hard-wired to use udp).
>
>
> That's a nice thing. So, as far as I understand you, [packOSC] outputs
> something (a stream of messages, one message per byte?) which can be
> sent to a communication object such as [udpsend] or [comport]?
>
It outputs a list of pd floats on [0..255], in other words, bytes, for
each OSC packet. For example you could send a message like this:
[send /test/one/two 1 2 3 a b c(
|
[packOSC]
| <---list of floats
[prepend send]
| <- list of 'send' + floats
[udpsend]
See the attached patch.
> But, the oposite object to [packOSC], [unpackOSC] is hardcoded to UDP,
> like [sendOSC], right?
>
No, [unpackOSC] takes a list of floats and converts it into a list whose
first element is the OSC address, and subsequent elements are either
symbols or floats, depending on what was in the OSC packet. [unpackOSC]
can take output from [udpreceive] or [tcpreceive], or any list of floats
that represent an OSC packet.
>> I used different names for all of them so as not to break existing
>> patches.
>
>
> That's a good idea. Thanks for watching the weird compatibility things
> :-)
>
>> I based them all on OSCx (the net objects are based on the [netsend]
>> and [netreceive] objects inside pd), I consider them to be an
>> improved version of OSCx but that's my opinion :)
>
>
> I see it as an improvement too :-) Would you like to add your objects
> to the externals/OSCx directory in CVS? We could keep all the OSC
> stuff at one place...
>
Yes, sure, but you don't need OSCx for these objects to work.
> br, Piotr
>
>
Martin
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: udpsend_test.pd
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20060426/3dd9f24a/attachment.txt>
More information about the Pd-list
mailing list