So basically, I’m making a rhythm game (think Guitar Hero/Rock Band) and I’d like a bit more control over audio than what Unity’s default audio engine allows.

I need the ability to load and play external audio files (the game itself won’t have any audio built in, so I don’t think I need to use FMOD Studio), the ability to warp the sounds (like what happens when you use the whammy bar in Guitar Hero/Rock Band), the ability to play up to 10 separate tracks at once and a couple more for sound effects, and time stretching (for a Practice mode of sorts).

Would FMOD be the right choice? Unity’s audio has served me well so far, but it can’t do time stretching and it’s limited to only being able to stream OGG files externally (MP3 support would be nice, but not needed).

FMOD Studio supports all the features you describe. (Incidentally, the name “FMOD Studio” refers to the programmer’s API, as well as to the graphical content creation tool, so even if you only use the programmer’s API you’ll still be using FMOD Studio.)

Playing large numbers of audio tracks at once is trivially easy, as long as those files are loaded into memory prior to playback, rather than streamed from disk. (Streaming audio files require constant disk I/O, and most platforms do not have sufficient disk speed to support more than a single-digit number of simultaneous streams.)

Time stretching can be accomplished in both pitch-variant and pitch-invariant fashions. Pitch-variant time stretching is the default, but pitch-invariant time stretching can be accomplished by using pitch-variant time stretching in conjunction with the time-invariant FMOD Pitch Shifter effect. (This effect is relatively expensive in system resources, but it sounds like you’ll only need one instance of it at a time.)

The effect of the whammy bar in Guitar Hero and Rock Band varies depending on the game and user settings, but all such effects can be achieved in FMOD Studio.

FMOD Studio supports all the features you describe. (Incidentally, the name “FMOD Studio” refers to the programmer’s API, as well as to the graphical content creation tool, so even if you only use the programmer’s API you’ll still be using FMOD Studio.)

Playing large numbers of audio tracks at once is trivially easy, as long as those files are loaded into memory prior to playback, rather than streamed from disk. (Streaming audio files require constant disk I/O, and most platforms do not have sufficient disk speed to support more than a single-digit number of simultaneous streams.)

Time stretching can be accomplished in both pitch-variant and pitch-invariant fashions. Pitch-variant time stretching is the default, but pitch-invariant time stretching can be accomplished by using pitch-variant time stretching in conjunction with the time-invariant FMOD Pitch Shifter effect. (This effect is relatively expensive in system resources, but it sounds like you’ll only need one instance of it at a time.)

The effect of the whammy bar in Guitar Hero and Rock Band varies depending on the game and user settings, but all such effects can be achieved in FMOD Studio.

Are there any other features you need?

That’s basically all the features I would need, I just need to figure out how to get started. Are there any tutorials you could recommend to get me started?

@RyanFoster For the graphical tool, the Getting Started Guide packaged with FMOD Studio (and accessible through the Help menu) introduces the basics, and the tutorials on our http://www.fmod.org/training/ page cover a few more advanced concepts. For the API, the examples packaged with the FMOD Studio Programmer’s API are a useful learning resource.