Custom Performance Software

Custom Performance Software

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.)

Figure 13.28. The basic idea of a patcher interface is to use virtual cables to represent the flow of data. That allows you to use one device to control another, such as mapping a control change value from MIDI to the color of a live-rendered 3D environment in Apple's Quartz Composer utility, shown here.


Users of software like Max or Reaktor will sometimes say they've "programmed" custom software, but part of the power of these packages is that much of the work is already done for you. The hundreds of objects in Max, Reaktor, and Pd handle many of the basic things you'll need to do. The available objects include items like oscillators , which generate signals for synthesis, audio and MIDI routing objects; control objects like knobs and sliders; and even menu objects. As if playing with a pile of Legos, you can combine these objects into a virtually infinite number of possibilities and not have to create anything from scratch. (Those who do code can use languages like Java and JavaScript in Max/MSP and Pd.)

Choosing the Right Interactive Tool

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.

The best known of these tools is popularly called Max ( Figure 13.29 ), although the version that includes audio is technically called Max/MSP. Max is used for everything from simple MIDI and arrangement tasks to driving musical robots and flaming propane- powered sound organs called pyrophones. Max and Cycling '74's Jitter video, data processing, and 3D add-on can cost as much as $850 (less if you're a student), but the investment is often worth it. Max contains thousands of objects, with many more " externals " contributed by a robust user community. Other environments rival Max for creating custom synthesizers and effects, but Max has unmatched tools for processing data, building custom interfaces, and even adding code in languages like Java and JavaScript.

Figure 13.29. Max/MSP is a full-blown visual development environment for MIDI, sound, video, 3D, and other data. Even with a broad library of objects (1) for every kind of function, Max is often useful as simple interactive "glue," like this patch to pull data from a USB input (2). (This patch turns the scroll ball on the Apple Mighty Mouse into an X/Y controller. The "hi" object works well with other controllers, such as USB game controllers.)

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.

Figure 13.30. Custom performance software lets you create a patch that's designed for the specific needs of a piece of music. Composer and developer Tim Place created this patch in Max/MSP/Jitter and Jade for a piece that " watches " a marimba performer. Specialized modules analyze video imagery to track the color of the yarn on the mallets. Different modules are assigned to different tasks, making the patch easier to navigate (and making it easier to reuse those components in other patches). (Image courtesy Tim Place)

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.

Figure 13.31. Like Max/MSP, Pd uses simpler objects that can be patched together to form larger creations of your own design. This chord/delay generator is an example of some of the kinds of creative control over MIDI note processing these environments provide. It's included on the DVD in case you want to try it out, see how it works, and customize it for your own needs.

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.

How to Learn the Tools

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.

Figure 13.32. If you're looking for help dreaming up some crazy, new, improvisatory instrument with which to perform in Reaktor, check out some of the example files, such as Skrewell, for inspiration.


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.

Figure 13.33. Online help is useful in any program, but in Max/MSP it's essential for understanding how an object can be used. You can operate the patch in the help window to understand it better or copy and paste it to incorporate it into your own work.


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).


Futuristic Interactive Music

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).

    Figure 13.34. The Audiopad (www.jamespatten.com/audiopad) by James Patten and Ben Recht is one of a number of experiments in using interactive tables for music production instead of a conventional interface. Antennae track tagged objects on the table and generate visual feedback and interactive music. (Photo courtesy Mariliana Arvelo)

  • 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.

    Figure 13.35. Atlantic Waves, a software project developed in Max/MSP by Monolake and Deadbeat, allows collaboration across the Web from remote locations. You can try some similar experiments using Max or other tools that support the use of OSC over a network. (Image courtesy Robert Henke [Monolake])


Real World Digital Audio
Real World Digital Audio
ISBN: 0321304608
EAN: 2147483647
Year: 2006
Pages: 96
Authors: Peter Kirn

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net