Digital Sound & Music: Concepts, Applications, & Science, Chapter 1, last updated 6/25/2013
If you can‟t afford Max, you might consider a free alternative, Pure Data, created by one
of the originators of Max. Pure Data is open source software similar to Max in functionality and
interface. However, the included documentation is not nearly as comprehensive. For the Max
programming exercises that involve audio programming, you might be able to use Pure Data and
save yourself some money.
1.6.4 MATLAB and Octave
Figure 1.63 Icon for a MATLAB exercise
The icon shown in Figure 1.63 indicates there is a MATLAB exercise available for that section
of the book. MATLAB (Figure 1.64) is a commercial mathematical modeling tool that allows
you to experiment with digital sound at a low level of abstraction. MATLAB, which stands for
“matrix lab,” is adept at manipulating matrices and arrays of data. Essentially, matrices are tables
of information, and arrays are lists. Digital audio data related to a sound or piece of music is
nothing more than an array of audio samples. The audio samples are generated in one of two
basic ways in MATLAB. Sound can be recorded in an audio processing program like Adobe
Audition, saved as an uncompressed PCM or a WAV file, and then input into MATLAB.
Alternatively, it can be generated directly in MATLAB through the execution of sine functions.
A sine function is given a frequency and amplitude related to the pitch and loudness of the
desired sound. Executing a sine function at evenly spaced points produces numbers that
constitute the audio data. Sine functions also can be added to each other to create complex
sounds, the sound data can be plotted on a graph, and the sounds can be played in MATLAB.
Operations on sine functions lay bare the mathematics of audio processing to give you a deeper
understanding of filters, special effects, quantization error, dithering, and the like. Although
such operations are embedded at a high level of abstraction in tools like Logic and Audition,
MATLAB allows you to create them “by hand” so that you really understand how they work.
MATLAB also has extra toolkits that provide higher-level functions. For example, the
signal processing toolkit gives you access to functions such as specialized waveform generators,
transforms, frequency responses, impulse responses, FIR filters, IIR filters, and zero-pole
diagram manipulations. The associated graphs help you to visualize how sound is changed when
mathematical operations alter the properties of sound, amplitude, and phase.