This is the maiden voyage of my multi-touch MIDI controller! Since this video, I've calibrated the camera and tweaked my blob tracking settings so it's much smoother to use than what you see here. CCV tracks the blobs. Flash is the UI (is super easy to edit some very intuitive XML -- all drawing API, I might add). Max/MSP is the bridge between Flash and MIDI, and MIDI Yoke gets the MIDI into Ableton Live.

Working on Win and Mac distributables soon. What should I call this? The Freemur? ;)

Note the macro button at about 1:15. I have all the volumes selected as "macro targets". The two buttons in the top right send -127 / 127 (respectively) to all selected targets, so you can mute or max out all volumes at once. I also have the volume range limited so even when I'm maxed out on the controller, I'm only at 0db in Live. Try THAT with a hardware controller. :D

- - -

C R E D I T S


Programming | Fashionbuddha

Credits

5 Likes

  • seth sandler 4 months ago
    So is it sending like this flash -> OSC -> max/msp -> midi -> midi yoke -> ableton?

    Great job, I am/was hoping to do something similar. I and i do some flash -> osc -> PureData in AudioTouch and it works quite well.

    My GSoC student is currently working on a c++ opensource lemur type drag/drop multitouch UI. I'll let you know as it progresses if you're interested.

    Keep doing the great work guys, always inspired ;)
  •  
  • fashionbuddha plus 4 months ago
    Hey, this is Steve. Flash speaks directly to Max/MSP over TCP using custom messages. The rest is correct. It also goes the other way where the UI responds to adjustments/automation in Live.

    Max uses the "flashserver" external to speak with Flash, but I'll likely switch to "netsend"/"netreceive".

    Please keep in touch on your student's progress. I'm actually working on something really similar in C++ (leveraging ofx /OpenCV -- interactive edit mode), so I'd love to help if the project opens up.

    Adding "pressure sensitive" features soon (this one has untested PS buttons). It basically compares the blob against a user-specified range (which will be learned in future versions) to create a ratio against the value range to control velocity. Not exactly "pressure" control, but yields about the same effect.

    Cheers,
    Steve
  •  
  • seth sandler 4 months ago
    Hi Steve,

    Thanks for the info. If I remember right, I was using a xml osc type class I had found that would send XML to FLOSC and that would output OSC. I'm more familiar with PureData than Max. Good to know that max has the flashserver object.

    You can find my student, Dimitri's, blog here:
    argos.dimitridiakopoulos.com/ and alink to the repository here: code.google.com/p/ofxargos/

    I'll shoot you a PM sometime soon; i'd love to keep up with what you guys are doing :) Interested in how you're approaching pressure too (if based on blob size or light intensity, etc).
  •  
This conversation is missing your voice. Take five seconds to join Vimeo or log in.

Advertisement

1 Related collections

Statistics

  •  
    plays
    likes
    comments
  • Total
    plays 561
    likes 5
    comments 3
  • Dec 19th
    plays 3
    likes 0
    comments 0
  • Dec 18th
    plays 2
    likes 0
    comments 0
  • Dec 17th
    plays 6
    likes 0
    comments 0
  • Dec 16th
    plays 8
    likes 0
    comments 0
  • Dec 15th
    plays 15
    likes 0
    comments 0
  • Dec 14th
    plays 3
    likes 0
    comments 0
  • Dec 13th
    plays 3
    likes 0
    comments 0
  • Dec 12th
    plays 1
    likes 0
    comments 0
Previous Week

Downloads

Please join Vimeo or log in to download the original file. It only takes a few seconds.