Cycling '74 MAX/MSP 5.1.0 | 148.11 Mb
An interactive graphical programming environment for music, audio, and media. Max is the graphical programming environment that provides user interface, timing, communications, and MIDI support. MSP adds on real-time audio synthesis and DSP, and Jitter extends Max with video and matrix data processing.
Working with time is easier in Max than traditional programming because you use objects to create visual “timing machines” whose behavior you can see, hear, and modify as they operate.
Working with interactivity is easier in Max because you can design interfaces visually, and the interfaces are then part of the program itself. For example, controls the timing and transport of the timing example above.
In Max everything can be connected to everything, because everything speaks numbers. Another way to say this is that modularity is a core design principle of everything in the software.
MSP offers the basic building blocks for synthesis and audio processing: oscillators, filters, delays, and envelopes. You can specify the time values of envelopes and phasors in tempo-relative units. The ability to combine low- and high-level components is one of the unique aspects of working with MSP.
Sampling, Recording, and Playback
MSP provides a group of objects that work together for sampling and sample playback. All use the buffer~ object that manages sample buffers up to four channels.
MSP supports up to 512 input and output channels. On the Mac, MSP provides support for Core Audio and on Windows, there is ASIO, DirectSound, and MME support.
MSP objects for audio signal display include an oscilloscope, spectral display, level meters, waveform display, and a sonogram. You can use faders with internal smoothing, design multi-band filters graphically and edit functions with arbitrary numbers of breakpoints.
The poly~ object lets you use multiple copies of any patcher you make. It supports output mixing, note allocation and voice stealing, dynamic patch loading and voice allocation, and can run patchers in different threads to support multiple processors.
If you want to develop your own low-level audio algorithms, Max/MSP provides an ideal platform with its C-based API for new unit generators. Max takes care of file I/O and user interface construction as well. Another option for lower-level development is mxj~, a modular Java-based system for audio development.