Notes on developing an architecture for Leap Motion ‘Muse’.
pdlib is the vehicle for the Pd sound engine in RJDJ. It runs Pd patches in iOS and Android – but also has potential in MacOS, Windows, and Linux
After many frustrating attempts I was able to get only as far as getting a simple pdlib example from Rich Eakin to run in Xcode. Couldn’t get it running under Cinder. The code is a hodgepodge of c, c++, and obj-c so these projects can easily get bogged down in compiler and linker errors.
I was able to get Chris Adamson’s chapter 8 input/output example running in Mac OS by using updated files from his blog.
By merging some of Adamson’s and Eakin’s code we got audio output but not input – although I see no reason it couldn’t be done.
At some point I decided to try openframeworks instead of Cinder. Within about 10 minutes I had ofxPd (Dan Wilcox) addon running input and output in Pd.
Next I got a leapMotion example running from an ofxLeap archive.
Today after much confusion, I got the csoundapi~ source code link (its in Csound archive, not in Pd) And then using the Csound.Framework and a few include files, along with great instructions from oxfPd author – got csoundapi~ running in pdlib.
Next I duplicated the ofxLeap example and tried to add in the ofxPd code. This worked – but the instructions aren’t complete. You need to add the lib folder and the extras folder (which doesn’t add folders ending with tilde when you drag and drop the parent folder) But I have a working example now – The most important thing to remember with the ofx projects is NOT TO LET XCODE UPDATE VALID PROJECT SETTINGS. I’m not sure which setting that ofx doesn’t like – but once you update the settings you are screwed and not even a snapshot restore will fix it.
The final result is an app which uses leap hand movement to change the pitch of an oscillator in a Pd patch by sending messages via pdlib. The app also uses csoundapi~ external.
Next project should be to clean up and document the pdlib ofx process and try the whole thing on windows and linux.