When off-the-shelf software doesn't provide what you need, you can turn to more customizable systems for developing solutions tailored to your unique performance needs.
Start simple: One of the common misconceptions about customizable software, because of its depth, is that you have to immediately create something complex. In fact, not only is solving simple problems usually the best way to begin to learn about the software and what you can do with it, but simple toolslike a transposition tool that you've designed just the way you want itare often the most useful.
Fortunately, although using an environment like Max/MSP can be technically considered object-oriented programming, it won't feel like coding in a programming language. Instead of writing text code to create software, these applications let you connect prebuilt objects onscreen via a " patcher " interface ( Figure 13.28 ). Like the patch cords on modular synths or the audio cables plugged into a mixer, each cord represents the flow of a signal. (In Max, signals flow from top to bottom and right to left through the objects you have onscreen, although occasionally they will be rerouted by the objects through which they pass.)
A broad variety of "interactive" or "modular" environments exist for music. There are hosting tools like Plogue Bidule and Buzz, mentioned earlier in the chapter, as well as custom synth and effects construction tools like the $50 Windows-only AudioMulch (www.audiomulch.com), the free Mac-only sound creation environment SuperCollider (www.audiosynth.com), and tools for building your own effects and synthesizers like the wildly popular $50 Windows shareware for constructive VSTs, SynthEdit (www.synthedit.com). Several tools deserve special mention, however, for their unique depth of capabilities.
ElectroTap Jade (www.electrotap.com/jade) is built from the ground up for managing complex live performances with computers. On its own, it's a performance tool for audio and video that makes it especially easy to link events in audio and MIDI to complex series of events and controls ( Figure 13.30 ). Combined with Max/MSP/Jitter, Jade makes it easier to create elaborate scripted events and reuse modular components , something that's essential to building extended custom performance environments. It costs $200 or less and doesn't require Max/MSP to operate , making it both affordable and approachable. Unfortunately, unlike Max/MSP, it's not cross-platform; the software is Mac-only.
If all of the aforementioned tools are sounding too expensive, you might want to consider Pure Data (www.puredata. info ) for Mac, Windows, and Linux ( Figure 13.31 ). Pure Data (Pd for short) is open source and entirely free. It's the brainchild of the original creator of Max, Miller Puckette. It shares a similar patching structure and even some compatibility of objects with Max/MSP. Pd is quite a bit rougher around the edges and is not as easy to use or well-documented as Max, but it has some unique capabilities of its own and its abilities are growing fast thanks to the contributions of the open -source community to add-ons for the program.
Pd on the DVD: Try out the free, interactive, cross-platform environment Pure Data (Pd) on the disc. Also on the disc are three sample Pd patches from Jim Aikin, including the one shown in Figure 13.31 .
If you are ready to learn how to code, you may want to look into Processing (www.processing.org), a new, object-oriented language designed for musicians , artists , and sculptors instead of computer science majors. On its own, it's not terribly useful for sound, but with the addition of the free Sonia Library (http:// sonia .pitaru.com), it's capable of audio features like sample playback and recording, synthesis, and analysis of audio inputs.
Sophisticated interactive capabilities aside, what many people want is simply to build custom tools for sound. Native Instruments Reaktor has perhaps the deepest sound engine of any of these tools, comprising everything from analog synthesis to less familiar techniques like granular synthesis and digital effects. Although it tends to be weaker at processing data in interactive ways and isn't as customizable as Pd or Max, Reaktor's focus on synths and effects can make it a better choice if that's your primary interest.
Make no mistake about it: it takes a significant investment of time to become adept with any of these customizable tools, and they can be intimidating to a beginner. The good news is that many non-programmer musicians have been able to approach them successfully. Keep in mind that the lessons you learn, as well as the custom patches you build, can be reused many times over.
Max plays Taps: Add-ons can make Max and Pd more useful in performance. For more advanced construction of modular components in Max/Jitter, Jade's author Tim Place has created a free, open-source module structure called Jamoma (www.jamoma.org). ElectroTap also makes a useful library of extensions for Max called Tap. Tools, which fills some gaps in the built-in library of modules, as well as a sensor interface called the Teabox that works well with all these applications.
The one approach that works well for most musicians is to pick a simple problem and attempt to solve it rather than build an over-ambitious, granular physical modeling aleatoric laser-powered composer robot you've been dreaming about. Simple problems like building a time-stretching audio playback module, a custom MIDI split tool, or a simple sequencer are often the best place to start.
Reaktor is probably the easiest of these programs to use right out of the box, because unlike the others, it comes with many powerful example files ( Figure 13.32 ). In fact, the included content is so good that many Reaktor users never get around to developing their own custom patches. By looking at the underlying workings of some of the simpler examples, you can learn a lot about how Reaktor works, and you'll have a good starting place from which to build your own patches.
With Pd, the simple answer is to head for the Web. Because of the open-source nature of the software, most of the documentation is online. There's actually very little chance you'll be able to start up the program and have any idea what's going on until you read the documentation. You'll find various links at the Pd Web site; one of the best is an extensive tutorial Wiki or a collaborative online document (http://puredata.info/community/pdwiki?PdTutorialIntro).
With Max/MSP, most of the documentation is included in the software. You'll find two especially handy tools: the "Tutorials and Topics" documentation and accompanying patches, and the online help. Resist the temptation to dive into MSP and audio or Jitter and video, and begin with the basic Max "Tutorials and Topics" document. Fundamental MIDI and data processing is the most significant topic to understand first, in depth.
You'll probably spot patches among the tutorials that you want to reuse in your own work, so the best strategy is to participate in the time-honored tradition of beginning programming, which is to copy and paste code ("code" being, in this case, Max patches). The other learning approach is, if you find an object and want to know more about it, Option-click or Alt-click the object to open extensive online help and sample code ( Figure 13.33 ). The sample code in the help files can be cut and pasted into your own work: unlock the patch and you'll see and be able to edit the underlying patch structure. Don't save, or you'll overwrite the help file.
For each of these tools, you'll find additional learning resources in workshops and conferences. Harvestworks in New York City (www.harvestworks.org) is dedicated to teaching advanced music technologies and has a particular specialization in Max/MSP. It welcomes students from around the world. The growing movement behind Pd is staging regular free workshops internationally.
What's next : For additional tutorials and resources for Pd, Reaktor, and Max/MSP, as well as examples in action, see the Real World Digital Audio Web site (www.realworlddigitalaudio.com).
For many of us, the "future" of computer music may be fairly modest, like coming up with a better MIDI control mapping scheme for our favorite soft synth. But if you are ready to take the plunge into something more experimental, there are plenty of resources for you.
One of the primary areas of interest is finding new input methods . The sonic potential of computers and digital audio technology has exploded over the past decades, but the hardware interfacekeyboards, knobs, and fadersharkens back to the early part of the 20th century or, in some cases, the 17th.
With open-ended software, it's easier to build new instruments and tools for performance. The data-processing capabilities of software like Max and Pd in particular make it more practical to interpret data streaming into the computer from hardware.
There are many frontiers to explore:
DIY hardware: Sites like Midibox (www.midibox.org) and vendors like Doepfer (www.doepfer.de) have resources for designing and building your own custom hardware. So if M-Audio doesn't ship exactly the fader box you want, you can create your own.
Sensors: So-called "real-world" interfaces translate data from simple electrical sensors, which measure movement, light, pressure, tilt, "flex" or "bend," and other data. You can purchase the sensors from electrical supply houses like Jameco; the challenge is to translate the data into computer form via MIDI, USB, or Wi-Fi. You'll find several solutions on the Cycling '74 Web site, but the most affordable and flexible MIDI solution is the $149 MidiTron (www.eroktronix.com).
Interactive smart tables: What if, instead of using a mouse and keyboard, you could create music by moving tangible objects like blocks on a smart table, with visual feedback for your actions projected on the surface? That somewhat far-out scenario has been the target of a surprising number of research projects, ranging from academia to automaker Lexus ( Figure 13.34 ). A team working on the problem in Spain has made a list of numerous related projects (www.iua.upf.es/mtg/reacTable/MusicTables). If you're ready to try your hand at using free, open-source software tools, you'll want to know about SonicForms, a research project that aims to collect and share methods for building new interfaces (www.sonicforms.org).
Cameras: Tracking motion and converting it into control signals is a challenge, but it continues to entice musicians with the promise of controlling music without hardware, just using your body. If you're using Jitter, you'll find excellent tracking tools in Tap. Tools and the free cv.jit object library (www.iamas.ac.jp/~jovan02/cv). The free Windows-only EyesWeb stand-alone software (www.eyesweb.org) can be interfaced with other software via OSC. If you just want to play with your webcam, check out Cycling '74's prebuilt Hipno, a suite of camera-controlled effects processors.
Networked data: Using OSC, it's possible to send network-friendly control data over the Web. The timing latency increases over great distances, so beat-accurate jamming may be a long way off. But projects like Monolake's Atlantic Waves collaborative music software (www.monolake.de/ atlantic .html) are already using the Internet for music creation ( Figure 13.35 ). The keys are the OSC and UDP objects for Max/MSP on Windows and Mac, which allow data to be easily routed between Max patches running on different computers (www.cnmat.berkeley.edu/OpenSoundControl/Max). Although routing data halfway around the world can be tricky, the system works quite well for two people in the same room.