Beginning Game Audio Programming teaches you everything you need to make your games sound as good as they look. Traditionally, music and sound effects for games have taken a back seat to graphics, but today, with an explosion of exciting new technologies, game audio is getting the attention it deserves. Unfortunately, all of these new technologies (3D sound, compressed audio formats, dynamic music) are not easy to understand, and even less easy to implement and debug.
This book's purpose is two-fold. First, its main goal is to teach you how to accomplish the most common video game audio tasks. Playing MP3s, creating, playing, and controlling dynamic music, and impelenting true 3D sound and surround sound are only a few of the advanced topics this book covers.
Fair warning: this book is old, so the APIs have changed significantly... but the concepts underlying the techniques are all still solid. It's just that nowadays they'd be written in a shader. But, on the bright side, this book now costs like all of two bucks used.
I get a lot of emails asking me for the source code to this book. I'm sorry, but I'm under a legal contract to not distribute any code myself. If you're looking for code, your best option is to buy a used book, or perhaps contact the publisher directly.
The second goal is to provide a professional audio engine suitable for plug-and-play use in your own games. By the end of the book you'll know the code for this engine by heart, and everything will be wrapped up in easily transportable classes, so if you'd rather spend your time doing other things, you can drop the engine right into your project and be done with it.
The book is divided into two sections, both suitable for the beginner and intermediate programmer. There are some introductory topics here, but they are covered very quickly, so there's not very many pages wasted on "newbie stuff." From the second chapter onwards you are learning and implementing things that are of direct benefit to your game - you're not spending time learning how to write an event-driven Windows program or how to set up COM or how to play nice with DirectX.
The book is written for C or C++ programmers at intermediate to advanced levels of game development experience. You should have a fairly good idea of how a game is structured, and a fairly strong grasp on basic C++. The audio engine uses inheritance, namespaces, the STL, and various other bits of advanced C++, so brush up if you need to.