Moving Max into the digital audio realm: MSP
The MSP part of Max stands for Max Signal Processing (or the initials of one its creators, Miller S. Puckette). It extends the original functionality of Max by adding objects for audio synthesis and signal processing. As you wade into the realm of digital audio in MaxMSP, you need to keep in mind some important concepts.
Control-Rate and Audio-Rate Communication
So far we’ve only been dealing with control-rate messages between max objects. Control-rate messages, like MIDI commands, happen at specific moments. Communication stops when the message is sent. Audio-rate communication is continuous, effectively at the sampling rate. (more on this evasiveness later)
Control-rate message connections are represented with thin, black patch cords. Audio-rate connections are two-colored (default is yellow and black) and thicker than control-rate connections.
Audio Objects
Audio objects end with a tilde (~), which resembles a sine wave. Audio objects always output an audio-rate signal, but they may accept control-rate and/or audio-rate inputs.
DAC and ADC
While control-rate messages are always being processed, audio processing only takes place when the MaxMSP audio system is turned on. Audio processing is turned on and off through messages to the dac~ and adc~ objects (digital-to-analog converter and analog-to-digital converter), or by clicking on the ezdac~ or ezadc~ objects. If your patcher has a dac/adc/ez object you can also turn audio processing on and off in the DSP Status window, accessed via the Options menu. Audio processing will continue in unlocked patchers as long as the audio system is still on.
Discontinuities = Clicks
Any discontinuity in a audio signal will be heard as an audible click in the audio. For example, if you instantaneously change the amplitude of a signal by 50% you will hear a pop. Such changes require a (short) ramp, or transition. Some objects have this ramp time function built into the object as an attribute property. Often you will use the line~ object to create these ramps.
Basic Objects
The most basic audio objects we will use at this point are:
- ezdac~, ezadc~, dac~, adc~
- line~
- cycle~ (sine oscillator)
- saw~ (sawtooth oscillator)
- *~ (audio-rate multiplication, for changing the amplitude of signals)
Floating-Point Messages Dominate
Unlike MIDI, which relies primarily on integer numbers between 0 and 127, digital audio relies much more heavily (almost exclusively) on floating-point number messages with a much wider range of values. Get used to using floating-point number boxes as your default selection.
Leave a Reply