[PD] trying to set up OSC between Unity and PD via [netreceive] or [iemnet/udpreceive]

michael strohmann itsnotfair9 at gmail.com
Sun Feb 10 15:36:03 CET 2019


HI Scott, 
i do a similar thing - send OSC from the LEMUR app to pd and vice versa.
Lemur sends osc and to receive it in pd works fine with 
[netreceive -u -b] 
|
[oscparse]
|
[list trim]
|
[route whatever the message]

there seem to be a odd behaviour with [netsend -u -b] though.
according the UDP protocol a message should be broadcast to an IP adress regardless if the receiving end is actually listening.
this bi-directionality is redarded only with TCP.

however, in [netsend -u -b] once the receive leaves the network the connection is closed, and you need to reconnect to the device in order to send messages.
so i connect to the device every second, to make sure that it receives messages upon re-entry to the wlan-network
(i also need to send the status of the patch on a regular basis, so that all devices are up to date…)

my patch (quite simple file playback in response to sensor input) worked fine, but i had occasional crashes / freezes with “watchdog singaling pd” (i run pd-0.48 on RaspberryPi B+)
since pd writes “connecting to port “ to the console everytime i connect - which is every second - after a couple of hours/days is filled the RAM and caused some misbeavior.

the solution - and i hope it really fixes the freezes also in the long run - was to send the standard error to dev/null like so:
puredata -stderr 2>/dev/null path/to/patch.pd

i think roman made an error report about this [netreceive -u -b] beahviour already.



i actually also wanted to use UNITY for sending OSC, but could not find time to work it out, so pls let me know it you found how to do it…

Cheers!
Michael

> On 10 Feb 2019, at 10:56, Scott R. Looney <scottrlooney at gmail.com> wrote:
> 
> OK thanks Christof! [oscparse] seems to do the trick, and formats it as a list that i can break up. and it seems i have [netreceive] working properly after all, so that was my error thinking it was broken. it is a bit picky and seems to work better if i send it a message as to what port to listen to rather than defining it as an argument initially. 
> 
> 
> 
> On Sun, Feb 10, 2019 at 1:03 AM Christof Ressi <christof.ressi at gmx.at <mailto:christof.ressi at gmx.at>> wrote:
> > > > patch with their [udpreceive] which worked fine. trying that same
> > > > patch in PD however, made all the data print out as integer ASCII
> > > > values rather than Unicode text characters. i tried two other Unity
> > > > OSC projects and they behaved the same way.
> > > >
> > > > so, at the least, i need a convenient way to change all the ASCII
> > > > integer numbers in a data stream to ASCII characters.
> 
> IIRC, in max, updreceive outputs osc messages while in the Pd objects iemnet/udpreceive or [netreceive -u -b] output the raw udp packet as a list of bytes. You need another object to parse the data. Pd vanilla has [oscparse], but personally i prefer the mrpeach/unpackOSC resp. osc/unpackOSC externals.
> 
> > Gesendet: Sonntag, 10. Februar 2019 um 09:39 Uhr
> > Von: "Scott R. Looney" <scottrlooney at gmail.com <mailto:scottrlooney at gmail.com>>
> > An: pd-list <pd-list at lists.iem.at <mailto:pd-list at lists.iem.at>>
> > Betreff: Re: [PD] trying to set up OSC between Unity and PD via [netreceive] or [iemnet/udpreceive]
> >
> > nope - doesn't work. absolutely no output at all from [netreceive -u -b]
> > whereas i do get results from [iemnet/udpreceive]. i'm pretty convinced
> > that on the Mac anyway the UDP functionality of [netreceive] is basically
> > broken, at least in regards to responding to .Net's Sockets UDP sending
> > methods anyway.
> > 
> > On Sun, Feb 10, 2019 at 12:20 AM Roman Haefeli <reduzent at gmail.com <mailto:reduzent at gmail.com>> wrote:
> > 
> > > The equivalent to [iemnet/udpreceive] is [netreceive -u -b].
> > >
> > > Roman
> > >
> > > On Sat, 2019-02-09 at 23:40 -0800, Scott R. Looney wrote:
> > > > hey folks, i'm trying to set up a OSC communication between Unity and
> > > > PD. the eventual goal is that an iOS app will be sending data to PD
> > > > to control various parameters. this isn't a libpd issue as i do not
> > > > want to run a PD patch in Unity. i only want the remote
> > > > communication.
> > > >
> > > > so far i've tried Kalimba which works perfectly with [netreceive] in
> > > > the Unity Editor. it looks like this is because it uses TCP and not
> > > > UDP for its connection. however due to its age (6 years or so)  the
> > > > resulting Xcode project does not build correctly. i'm assuming it's
> > > > likely an old libpd issue, but not sure.
> > > >
> > > > so, i've tried a few other OSC Unity based projects and none of them
> > > > work with [netreceive] in any way (including in UDP mode). i did find
> > > > a few that work with [iemnet/udpreceive]. one of them had a demo Max
> > > > patch with their [udpreceive] which worked fine. trying that same
> > > > patch in PD however, made all the data print out as integer ASCII
> > > > values rather than Unicode text characters. i tried two other Unity
> > > > OSC projects and they behaved the same way.
> > > >
> > > > so, at the least, i need a convenient way to change all the ASCII
> > > > integer numbers in a data stream to ASCII characters. ideally i'd
> > > > love to have a Unity OSC demo that can send data to PD reliably,
> > > > using TCP or UDP. any help appreciated!
> > > > _______________________________________________
> > > > Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
> > > > UNSUBSCRIBE and account-management ->
> > > > https://lists.puredata.info/listinfo/pd-list <https://lists.puredata.info/listinfo/pd-list>
> > > _______________________________________________
> > > Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
> > > UNSUBSCRIBE and account-management ->
> > > https://lists.puredata.info/listinfo/pd-list <https://lists.puredata.info/listinfo/pd-list>
> > >
> > _______________________________________________
> > Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
> > UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list <https://lists.puredata.info/listinfo/pd-list>
> >
> 
> 
> 
> _______________________________________________
> Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list <https://lists.puredata.info/listinfo/pd-list>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20190210/9f71f251/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: osc_example.pd
Type: application/octet-stream
Size: 1071 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20190210/9f71f251/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20190210/9f71f251/attachment-0001.html>


More information about the Pd-list mailing list