The Virtual Bookcase Reviews of 'A Programmer's Guide to Sound':
Reviewer Rob Slade wrote:
Kientzle's "Internet File Formats" (
see reviews) is still one of
my basic references for the bewildering variety of file types you find
around the net. This work narrows the focus to a single subject,
extends the level of detail, and presents the material from the
perspective of one who needs to process that type of data. The
discussions of programming itself are based around C++ code samples.
The book starts with sound itself, and a simple, but informative
explanation of what sound is, and how it is formed. Chapter two
explains some of the fascinating particulars of human sound
perception, and how we mess up the clean technical factors of raw
pressure waves. A third chapter looks at storage, sampling, and some
of the problems related thereto. Chapter four starts the sample code
with a basic sound framework.
Part two provides operating system specific information in regard to
files, calls and events. The use of object-orientation, of course,
allows this material to be dealt with separately from the actual data
of the sound file.
Compression is a fact of life (or virtual reality) in regard to sound,
so part three examines the various basic methods. There is a general
chapter explaining audio compression, decompression classes, nonlinear
sound formats, differential PCM (Pulse Code Modulation), IMA ADPCM
(Interactive Multimedia Association Adaptive Differential Pulse Code
Modulation), and MPEG (Moving Picture Experts Group) audio.
It is only after this background has been established that Kientzle
turns to the specific formats. Part four looks at the AU, VOC, WAVE,
AIFF, and IFF/8SVX files, with detailed formatting information and
sample source code to deal with each. Music file formats, for
synthesized and programmed music, rather than recorded sound, is dealt
with in part five. After two chapters dealing with programming music
and synthesizing instruments, the MIDI (Musical Instrument Digital
Interface) and MOD formats are described.
Part six looks at audio processing, with Fourier transforms and
filtering.
For those new to the field, the lack of a glossary or list of acronyms
can be a little difficult. Kientzle doesn't always define a term the
first time he uses it, although the expansion should follow reasonably
closely. In some cases, however, the initial explanation may come
seventy pages before the term is actually used again, so recourse to
the index can be required. Fortunately, the index is very good, and
well up to the task. Somewhat more annoying is the fact that page
numbering isn't always in the same place.
While other aspects of digital sound may be interesting, everything
necessary for the programmer to deal with sound is included here. For
those starting out in this specialized field, this book is a must.
BKPGDSND.RVW 971130
Add my review for A Programmer's Guide to Sound