Another main reason why I'm aiming to write my own 2D game engine is so I can experiment with different third party libraries in the future. In fact, I'm thinking calling this an "engine" might be making it sound more grand than it actually will be, as it really is for the most part just a wrapper around SDL and OpenGL.
While I'm fairly sure I'll stick with SDL and OpenGL for most things, the one area I'm not so sure what to use is for the audio. While I only need some simple functionality for the sound effects, I'd like to do some nifty things with the music, such as syncronising gameplay elements to the beat and eventually putting in a dynamic music system similar to that used in the old Lucasarts games (such as Monkey Island 2 and the old X-Wing/Tie Fighter space sims).
For "Pierre and the Fish", I used FMOD. FMOD is a great audio library, very easy to use, works on a huge variety of gaming platforms and has enough functionality for nearly anything. It's also what many big game companies use in their AAA quality games.
However, FMOD comes at a price, and that's reflected in its licensing. FMOD is free to use if the game is freeware (which is fantastic), but a standard commercial licence for FMOD 3 is $3000 per platform, $6000 for FMOD Ex. There is a shareware license for $100 per platform, which is reasonable, but according to their website their definition of shareware developer is fairly strict: a registed company with more than one person seems to be too big. This could be a hassle if I want to sell a game and get some additional team members. The shareware licence also doesn't get source, which may limit my options with some of the ideas I'd like to play around with integrating music into the gameplay.
The other option I'm considering is SDL_Mixer. I haven't played around with this much yet, but it does seem to have the basic functionality I need for my games; MOD music playback and basic sound effects. It also has the advantage that it's LGPL, so if there's some additional functionality I need I can always modify the code myself (as long as I release it). However since I haven't used SDL_Mixer yet I'm not sure how well it will work. Given it's part of SDL I'm assuming it will be fine, but I'll have to get my hands dirty playing around with it before I know for sure.
I'll stick with FMOD for the near future, since I know that works. However I'm going to plan an interface to my sound module in such a way that I can easily plug in a SDL_Mixer version later on to see if it makes a difference.