ep-3xx41 Max – week 6

Communicating with the outside world

References

patches

OSC chat program – note: forgot to save this but it is essentially just two or more computers using [udpsend] and [udpreceive] to send text messages back and forth

Topics…
  • OSC
  • updpsend, udpreceive
  • serial
  • externals
  • terminal
  • curl
  • API’s
  • print, message object right inlet
  • Max window
  • attrui
  • clippings
  • prototypes
Useful things to know
  • Pasting patches from the c74 Forum into a patcher
  • Using externals (set Max path options)
  • Where are the examples? (inside the application)
  • Max For Live – Use it as a “shell” to give your patches Midi, audio production, recording, automation, etc.,
  • vignettes

 Assignment

Choose one of the Internet Sensors Projects and get it running. Tweak it to make it do something else, improve usability, or connect to another process.

Alternative: Design a Max interface to something outside of Max.

pdlib, csoundapi, openframeworks, coreAudio, Cinder, and Leap Motion

Notes on developing an architecture for Leap Motion ‘Muse’.

  1. 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
  2. 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.
  3. I was able to get Chris Adamson’s chapter 8 input/output example running in Mac OS by using updated files from his blog.
  4. 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.
  5. 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.
  6. Next I got a leapMotion example running from an ofxLeap archive.
  7. 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.
  8. 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.
  9. 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.
  10. Next project should be to clean up and document the pdlib ofx process and try the whole thing on windows and linux.

 

 

Leap Motion hand data

notes

When using the sphere vector, if you make a fist – the sphere Y value goes straight up (as radius decreases) also, x value decreases slightly and z value increases significantly

So its probably better to use palm position as a vector – if you want to detect sphere radius