BKPGDSND.RVW 971130 "A Programmer's Guide to Sound", Tim Kientzle, 1998, 0-201-41972-6, U$39.95/C$55.95 %A Tim Kientzle kientzle@netcom.com %C P.O. Box 520, 26 Prince Andrew Place, Don Mills, Ontario M3C 2T8 %D 1998 %G 0-201-41972-6 %I Addison-Wesley Publishing Co. %O U$39.95/C$55.95 416-447-5101 fax: 416-443-0948 bkexpress@aw.com %P 446 p. + CD-ROM %T "A Programmer's Guide to Sound" Kientzle's "Internet File Formats" (cf. BKINTFLF.RVW) 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