Build VST plugins in Max with gen~

Today I built a VST plugin in gen~ using instructions…

at the Cycling 74 Wiki

additional things

local files:

  • max teaching examples/Tremelo-vst.maxpat (gen~)
  • max teaching examples/vst-tester.maxpat


  • vstsdk2.4/public_sdk/samples/vst2.x/MyVSTPlugin
  • VST requires all paramaters to go from 0-1.0 so you need to scale them in gen~
  • There are a ton of compiler warnings in Xcode. And a syntax error that you can autocorrect.
  • Restart Max, if you make changes to the plugin


New Interfaces for Musical Expression

By Michael Lyons


Gestural control without primary feedback. i.e.. Theremin.

Perry’s Principles (perry cook)


  • P1: Programmability is a curse
  • P2: Smart instruments are often not smart
  • P3: Copying an instrument is dumb, leveraging expert technique is smart
  • P4: Some players have spare bandwidth, some do not
  • P5: Make a piece, not an instrument or controller
  • P6: Instant music, subtlety later


  • P7: Miracle, Industry Designed, Inadequate
  • P8: Batteries, Die (a command not an observation)
  • P9: Wires are not that bad (compared to wireless)
  • P10: New algorithms suggest new controllers
  • P11: New controllers suggest new algorithms
  • P12: Existing Instruments suggest new controllers
  • P13: Everyday objects suggest amusing controllers
New (as of 2007)
  • P14: More can be better (but hard)
  • P15: Music + Engineering is a great Teaching (and Marketing) tool
  • P17: Younger students are more fearless



By Charlie Roberts

Notes by Sam Tarakajian from the Cycling 74 blog.

“My second workshop is with Charlie Roberts, the furiously talented man behind the Control app for iPad and iPhone that was in many ways the inspiration for Mira. This workshop was advertised as an introduction to the Web Audio API, so I’m imagining that we’re going to spend the afternoon talking about the complexities of working with audio in a high-level language like Javascript, and the challenges of getting audio to run in the browser on multiple platforms. As it turns out, Charlie has basically solved all those problems already, and so instead he takes on a three hour tour of Gibber. Gibber is a Supercollider-like wrapper around Web Audio that lets you build sample-accurate sequencer and synthesizers in Javascript. Oh, did I mention it’s runtime re-configurable? Anyway, it nearly melts my brain to think about how Charlie’s work could fit together with Max. Imagine a Max-like program running in the browser, with something like Gibber providing the backend to a patchable interface. Imagine using that interface to build and deploy interactive audio to the web. Or, switch your brain with me to Totally Unwarranted Speculation mode and imagine being able to turn any webpage into a programmable patch. It’s a bit of a pipe dream, to be sure, but why bother coming to NIME if you aren’t going to entertain impossible ideas?”

Important links from that talk include:

Mike Lyons NIME

By Sam Tarakajian at The Cycling 74 Blog

Michael Lyons, a NIME veteran and researcher in musical interaction, leads the first workshop. His presentation does a great job of filling in the gaps in my knowledge on NIME related topics, subjects like primary versus secondary feedback (secondary feedback is the sound an instrument makes, primary feedback is everything else it does). He also provides a thought provoking overview of why people make NIMEs in the first place, which I find particularly interesting. Beyond techno-fetishism and fascination with the human-machine relationship, he posits that the #1 reason that people are interested in building new instruments is because of an insistence on cultural fluidity. People want new ways to make sound because they want their own tools–they don’t just accept what’s given to them. No wonder so many NIME builders use Max.

As Michael brings the presentation to a close, my mind is humming with new ideas to take back to the Cycling ‘74 think tank:

  • Mapping (between input gestures and sound output) is the heart of NIME, and indeed of instrument building in general.
  • MIDI is plug and play, OSC isn’t because there’s no standard
  • Programmability is a curse, and it’s important to have long-term versions of things
  • Primary feedback (lights, vibrations) is critical for intimacy
  • Music is becoming increasingly process oriented as opposed to artifact oriented. People who are not virtuosos are willing to go out in public and make music, and are eager to find a forum to do so.