It all started when a free, unsolicited copy of Cycling '74's Max/MSP 5 hit my desk. How, or why, the holy grail of interactive audio/video authoring software found its way to me is still a mystery, but I'm glad it did. In fact, I felt so grateful I knew I had to return the kindness by creating something ambitious with it. That's when I e-mailed Matt.
My friend Matt Ganucheau is a guru when it comes to Max/MSP. Because this particular piece of software is so adaptable, he's used it to program robots, create video DJ software, author plug-in effects for music applications, and give life to busty mannequins (he hates when I bring that up). With my motivation and Matt's know-how, I was sure we could come up with something interesting.
Editor's note: The following video gets nerdy and very loud. If DIY and electronic arts projects don't interest you, you probably won't be interested in this video or the remainder of this article.
Getting creative wasn't easy, however. I felt like a colorblind kid who'd been thrown a deluxe box of Crayolas. Most people who come to Max/MSP already have a problem in mind that they wanted to solve, like "How do I get my Guitar Hero controller to play real music?" or "How can I create propane-powered flame organ?" Instead, I had a solution in search of a problem.
After compiling a list of ideas and talking them over with Matt, I settled on tackling a (seemingly) basic project with measurable results. We'd make a video projection that switched on when it detected people nearby. In other words, we'd use a $700 software package to create a glorified security light to scare people away. I knew I was playing it safe, but it was my first project and I didn't want to get overwhelmed.
After committing to our concept, we broke out all the steps toward achieving our goal:
Step 1: Location
Matt and I chose our former employer, Robotspeak, as the guinea pig for our project. Robotspeak has a prime Lower Haight Street shop window, and we knew there would be plenty of people hanging around on a Friday night.
Step 2: Logistics
We'd need more than Max/MSP for our project to work. Matt was confident he could create our Max/MSP patch within an hour, but we still had to think about how we would get the software to detect people, how to set up the projector, where to find a rear-projection screen for the window, and how we would set up an outdoor speaker system. I took on those last three items, but I had to trust Matt to figure out the best way to create a Max-compatible people detector.
Matt decided to create a proximity detector using an ultrasonic sensor and a Make Controller board. The solution offered the best path of least resistance, since Max/MSP includes a whole suite of programming tools for the Make controller board, and its USB compatibility made it easy to set up with our MacBook.
Step 3: Video
Ultimately, I wanted the video we showed in the window to scare people a little, or at least confuse them. It needed to be PG, however, since I had no control over kids possibly walking by and I didn't want to actually traumatize people. I had some odd video clips from old projects I could use, but to take some of the creative weight off my shoulders I had my friends Jesse Clark and Janus Kober e-mail me a few worthy submissions.
I weaved all our clips together into a brief, disorienting hodgepodge, but I needed a horrific soundtrack if I was going to scare the pants off people. I dug through my music collection and found an experimental noise track from an artist named Syndrome that was capable of peeling the paint off the walls. I matched it all up in iMovie and handed the video off to Matt to dump into Max/MSP. To see the results, turn down your computer's volume and click here.
Step 4: Setting up
Robotspeak's window is typically chock full of products and decorations, but we had to break it all down to achieve an unobstructed projection from inside the shop. Shelves had to come down, stickers needed to be peeled off, and we needed to attach some kind of projection screen material inside the window (a $7 painter's cloth from Home Depot did the trick).
We placed our sensor in the bottom corner of the window, so it could detect people standing in front of the shop. For sound, we routed audio from the MacBook running Max/MSP to a powered PA speaker that we placed behind a locked gate in the shop's entryway.
Step 5: Troubleshooting
Things never work out the way you plan. Our biggest problem was getting the ultrasonic sensor to accurately detect people approaching the store. There were at least a dozen legitimate explanations as to why it wasn't working, but in the end, we figured out that the sensor had trouble working from behind the shop's window. Mounting the sensor outside the shop solved the problem, but it also meant we couldn't leave it alone, since we didn't want anyone taking off with Matt's equipment.
Step 6: Deployment
We achieved our goal of getting everything working by nightfall. Nearby bars were starting to fill up and there was a steady stream of people walking by. In the end, we probably entertained ourselves more than anyone else (as you can imagine, it's really hard to shock anyone on Haight Street), but it felt good just to pull the whole thing off.
If you have any interest in attempting your own Max/MSP project, Cycling '74 offers a fully functioning 30-day free demo of its software that you can tinker with. To get your feet wet with hardware sensors, check out the Make Controller and Arduino communities.