Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I've been very interested in the last few months about getting in to audio programming (I'm from a musical background). I've been a .NET developer for two years and have also done some objective c for an iPhone app recently. I realise I would probably need to work on my C++ chops and have been having a play around with FMOD EX and doing a lot of research into the industry.

I was just wondering if anyone could suggest some good resources for audio programming (be they websites, podcasts, books, videos, online courses etc). Anything from Fourier analysis, low level coding, audio engine creation to audio APIs. I just want to learn as much as possible!

Thanks in advance.

share|improve this question

closed as not constructive by Byte56, michael.bartnett, Tetrad Sep 23 '12 at 3:44

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

    
openAL... is simple and efficient... –  J. C. Leitão May 19 '12 at 11:50
1  
This question does not have a correct answer, voting to close. See the FAQ to see what types of questions to ask. –  Byte56 Sep 22 '12 at 5:48
add comment

5 Answers 5

up vote 5 down vote accepted

Most of the entries in the Game Programming Gems series of books have an entire section dedicated to audio programming. For an overview of some of the topics covered, check the following link:

http://www.aiwisdom.com/audio_all.html

The list is not complete, as it lacks the entries in the 7th and 8th books, so cross check it with the complete table of contents provided by Zolomon in the comments:

http://zolomon.com/gpg/index.html

The Game Developer Magazine also has a monthly column on audio programming:

http://www.gdmag.com/

share|improve this answer
    
Really liking the look of the game audio gems series so I've ordered a couple. Thanks. –  rashleighp May 20 '12 at 8:56
    
@rashleighp I really like the game programming gems series, not only for audio but for all the different topics covered. I've got all of the volumes, and I frequently pick one random article out of all of them to read, and expand my knowledge. But I think the books are quite expensive, so I'd recommend doing the same I did, and buy them used. Took me two years of waiting for good deals to come up, but I managed to buy some of them at 20% of the original price from amazon used book vendors. –  David Gouveia May 20 '12 at 13:27
1  
@DavidGouveia I have a Table of Contents for the whole GPG series at zolomon.com/gpg/index.html –  Zolomon Sep 22 '12 at 7:36
    
@Zolomon Cool, thanks! –  David Gouveia Sep 23 '12 at 3:30
add comment

The Audio Programming Book by Richard Boulanger and Victor Lazzarini MIT press

share|improve this answer
add comment

There's a couple different areas for audio: DSP algorithms vs asset management and intelligent audio playback.

DSP is about filters and fourier transforms and HRTF and all that fun stuff.

Good DSP Resources:

  • Rab already mentioned this, but it's so good I have to repeat it. The Audio Programming Book by Richard Boulanger and Victor Lazzarini is probably the best place to start. Also functions as a pretty thorough introduction to C. The beginning may be a little slow for you, but it discusses some (occasionally outdated, occasionally not, but always useful and interesting) C idioms as well as introduces some sound fundamental things about sound you may not have gotten before.

  • musicdsp.org: An archive of algorithms, usually in C

  • MUSIC-DSP mailing list at Columbia

  • dspGuru Tutorials

  • Who Is Fourier?: A really interesting book written to give you real fundamental understanding of the fourier transform. Written purely with the intention of exploring how to explain complex mathematical concepts to young students. As a result, if you're a little weak on your higher level math, this will help you grok everything.

  • Digital Signal Processing Primer by Ken Steiglitz

  • Since you've done Objective-C work, check out Apple's AudioUnit Programming guide

On the other side of things, "asset management" is a little vague and mostly has to do with dealing with container formats, codecs, and streaming. Perceptual codecs is the real meat to study here. Fortunately I don't have much to offer there (seems like you need a PhD to understand most of that stuff). But there's plenty of libraries/APIs for getting the job done:

Intelligent audio playback is other fun stuff. This isn't terribly mathy like DSP is, and what you end up doing a lot of the time is dealing with voice management and music cues. There's not as much specific technical knowledge, it's more about design, and creating the tools and playback systems to support that design.

...Brian Schmidt's immortal comment "Anyone who still thinks there's a 1:1 relationship between a sound and a WAV file just doesn't get it."

Download Wwise and just start reading their docs for both the authoring tools and the API. Do the same for FMOD Designer and FMOD Studio.These give you an idea of "upper tier" tools that game sound designers use to implement content.

Another good one to check out is Fabric. Basically, Unity's audio pipeline kinda sucks, and this plugin tries to make it better. You can get an evaluation version for free.

As a musician, imagine the ideal interface you want to describe interactive game music and sound effects with, that's what these tools aim to provide. If you're familiar with what's already out there and how it supports sound designers and composers, then you can start to think of your own solutions for how to do things better.

Other resources:

  • Peter "pdx" Drescher wrote an awesome article about implementing the FMOD Designer API on Android with JNI.

  • IASIG and iXMF, the as-yet-unfinished interactive music specification standard with some interesting ideas.

  • Game Audio Relevance Assorted bits of game sound design and audio programming

  • The Game Audio Tutorial A book aimed at teaching sound designers to implement sound in UDK while teaching game sound design principles. A lot of it is about fighting UDK's audio and Kismet, but once again it's useful to see things from the non-programmer side.

  • http://www.procedural-audio.com/ <- Self-explanatory link

share|improve this answer
    
+ This should have a lot of upvotes! –  David Gouveia Feb 7 '13 at 22:53
add comment

Sure thing, as you mentioned API's I'm going to have to mention openAL and FMOD was already mentioned.

Here are some resources for OpenAL:

http://www.edenwaith.com/products/pige/tutorials/openal.php
http://enigma-dev.org/forums/index.php?topic=730.0

Some FMOD resources:

A quick guide to FMOD

http://www.gamesounddesign.com/forum/viewtopic.php?f=4&t=241 (I had this lying around and have not inspected the tutorials too much)

http://jerome.jouvie.free.fr/nativefmodex/tutorials/Tutorial03.php

Fast Fourier Transform:

http://www.fftw.org/
http://www.codeproject.com/Articles/9388/How-to-implement-the-FFT-algorithm
http://www.drdobbs.com/cpp/199500857

Also some general info about how Audio is represented:

http://blogs.msdn.com/b/dawate/archive/2009/06/22/intro-to-audio-programming-part-1-how-audio-data-is-represented.aspx


These are pretty much all the links i had lying around and some I had googled but I hope they at least help a little.

share|improve this answer
    
Be careful with OpenAL on iOS there are gotchas and bugs. e.g. prefer the extension function alBufferDataStatic over alBufferData because the latter is buggy. Also the whole library implementation is fairly leaky under iOS. –  jheriko May 19 '12 at 15:02
add comment

OpenAL has been mentioned - the other big library is XAudio 2 which you can use for x360 and pc development - although I believe OpenAL is supported on x360 as well it will undoubtedly be a layer over the top of XAudio 2

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.