REVIEW - A Programmer's Guide to Sound


A Programmer's Guide to Sound


Tim Kientzle



Addison-Wesley Professional (1998)




Silas S Brown


June 1999



This book presents a C++ class library for working with some audio file formats (including "compressed" formats), sound processing, playing, and some instrument synthesis. The code is interspersed with good annotations, and is also supplied on a CD-ROM. The explanations of sound and sound processing are refreshingly comprehensive and well-presented, which is a rarity and I would recommend anyone interested in the subject reads this book (although bear in mind that there are some Anglo-American differences in the musical terminology and pronunciation). It helps if you have done mathematics beyond A-level, but this is not essential.

The code itself is well object-oriented and all conforms to the C++ standard (apart from a misprint or two), with the platform-dependent parts written for several platforms. It is real C++ - you would be pushed to find a "C-ism". My only real quibbles would be that some things were put in the appendices which should have been put near the beginning (such as notes on the handling of errors), and errors could just as easily been handled with exceptions rather than dumping messages to cerr and exitting. To use the code in a project, though, more error checking would have to be added anyway (if desired), and dumping unsupported MIDI commands to cerr is a bit unusual too. And just to be really pedantic, I caught it in one place saying "During 1997, X should happen", when it was published in 1998. Overall, though, a very good book.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept All Cookies" you agree ACCU can store cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

By clicking "Share IP Address" you agree ACCU can forward your IP address to third-party sites to enhance the information presented on the site, and that these sites may store cookies on your device.