I've finally passed five thousand lines! (5,133 lines to be exact). And I have decided that I am done with sound for a while. It will loop/play wav/au/midi/mp3 files currently. I think that is a good start. Next on the list: ANIMATION (really this time), and TEXT-RENDERING. Oh yes, be amazed on the complex subjects!Well, I've got set volume fade-in and fade-out working with wav/au files. This was another big mile stone in the development of the SoundManager. Both midi and mp3 run off of a different internal object so as of yet do not have this implemented. I really feel that the mp3 api that I'm using (javazoom) needs better examples of some of the lower functions. With the javax.sound.sampled package there were plenty of tutorials online to help with how to start decoding the byte-stream, getting the stream, blocking vs nonblocking, and etc... but javazoom just has the API up there. So right now I'm using a rather highlevel 'player' class which allows for pretty much playing of the mp3. I can't set volume/pan/fadein/fadeout or any of that good stuff.
But overall my SoundManager is very easy to extend and add formats to, so it won't take much to add another api into it.
Mp3 support is such a pain in the development cycle. Maybe instead of writing a realtime decoder for the mp3 format, should I just first convert the mp3 to an uncompressed format and then run that through the decoder I've already written? It might take less cpu... I'll check into it.