hey listers, new guy here - greetings!
has anyone got libPD working with Unity3D Free? alpha build, beta build, whatever. i know tebjan created a version of libpd with C# bindings, but i've no idea as to what to do to make it work on a Mac, as there is no documentation.
i've heard precious little since then. patrick sebastien got it to barely work on PC i believe. anyone else have any idea? i've been in contact with someone who claims it's working fine in a prototype form, but hasn't released anything so far to check out, and i know Henk Boom uses it in Fract but i haven't heard anything there either. he was supposed to detail a blog about it 'soon' back in March when i last read about it.
anyway, any information appreciated. thanks for any help!
I too have been waiting for the much-anticipated post from Henk, but I suspect that with new fatherdom and game dev, it won't be coming any time soon.
Good news, though, I think. After yet one more google, I found this post, and looking around here, it doesn't look like anyone has picked it up. I haven't tried ANY of this out yet, so caveat emptor, but it does look promising, and at least offers some transparency into a workable solution:
http://blog.tridek.com/post/29834155461/using-libpd-with-unity3d-on-mobile-devices-part-1
I also noticed that a poster in this thread -- filippo.peccoz -- is involved with the tridek project, and has posted an article as well, which looks very interesting:
http://blog.tridek.com/post/29055895421/welcome-to-trideks-audio
@Filippo: Any news or insights re: the above? Tridek looks like a pretty cool project, would love to hear more.
Thanks!
Arrrgh. Looks like I was a bit over-eager -- according to the Tridek blog post, they've only got Unity and libpd running via TCP in Edit mode . . . which is essentially the same method as using OSC -- all well and good until runtime.
I suppose they'll need to figure it out sooner or later, and it will be fun and interesting to observe . . . and I wish them best of luck!
In the meantime, looks like we're back to waiting for Mr. Boom!
Patrick Sébastien to the rescue! https://github.com/patricksebastien/libpd4unity
WOW! that is quite a gift . . . thank you!!
np but it's still a work in progress! it would be very nice if people could fork and pull request so that we have a solid integration. i am also looking for a way to use audio input (soundcard input) and compiling for android and iOS. i have finally managed to use statically linked external (look at my fork of libpd).
the main issue is that pd / libpd can only be use in a single instance, meaning that we have to switch~ patch to avoid glitches and i am have issue with expr~ / sig~ timing.
I wrote a post about embedding libPD into a Unity iOS app http://bronsonzgeb.blogspot.ca/2012/08/embedding-pure-data-into-unity-ios-app.html which also covers how to embed libPd into an iOS app. I wasn't aware that Patrick Sébastien had created libpd4unity at the time.
the biggest thing about Patrick's approach is he compiled the wrapper/DLL for the libpd base in Windows and the Unity project he uses crashes hard and completely on a Mac. it looks like yours was made for a Mac, so i will definitely give this one a try when i have a moment.
i like filippo's approach in terms of designing or prototyping, but my idea would be to run a separate and more generally functional GUI sending commands to libpd to dynamically create Audio Sources and manipulate audio parameters, rather than using the PD canvas to do it. my idea is to be able to use this GUI with other game engines and APIs.
i am curious if at some point you'll be able to run multiple instances of libpd. i suspect it will be a processor hog for smaller devices, but i'd be happy to be proven wrong.
@rrodkin - i think you should take a look at the post again from filippos crew (it's sebastien who is programming it). it looks like they do have it working on Android and iOS, they simply prototype in PD/OSC. and yes there's only one instance of libpd. they have directions on what exact code to modify/adapt in iOS Xcode and Android.
@psmtl and bzgeb - looking forward to trying these out, most likely over the weekend, thank you again!
@metaphysician - i did see the instructions for droid and ios, my comment was more in reaction to my own assumption that they had an actual plugin, since that's what the Fract team allegedly have produced. Not sure to what the comment about 'only one instance of libpd' refers?
Anyway, it seems there are three approaches in the mix now, not including FRACT, very encouraging!
well, patrick can correct or fill in details, but if i remember, he wants to be able to run several instances of libpd at one time. each instance would presumably have a separate function, so let's say one for each Audio Source in the Scene and maybe another for the Audio Listener. i think this is a great idea but i suspect it would cause issues, performance wise, on a portable device. these are guesses - i am nowhere near a coder or even a PD/libpd expert, though i've done a lot of MaxMSP since the earliest days.
Ah, I see what you mean now, thanks for clarifying, and yes, would definitely like to hear more about his approach as well.
I'm coming up to speed on pd as well, though I do have js and c# skills. . . got into Max via Max4Live and the need to integrate with Unity3D. . . then drifted away from it as there was no way to produce a single runtime executable, for mobile or desktop. Which is why I'm intrigued and now drifting back (albeit to pd, not max).
In the meantime, for my purposes, it turns out that Unity's built in audio capabilities have been good enough for POC work -- it's at least possible to dependably sync multiple audio files, which is primarily what I need for the moment. pd obviously offers more flexibility, and is therefore the focus of my next round of R&D.
Hi all,
in case you're interested, here's a Unity-PD binding that uses libpd:
https://github.com/hagish/kalimba
Hope Kalimba can help you out in connecting the two together! Try it out and let me know :)
Cheers,
FBP
It looks like you're new here. If you want to get involved, click one of these buttons!