Digital Sound & Music: Concepts, Applications, & Science, Chapter 1, last updated 6/25/2013

55

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.