In an attempt to reorganize myself to work on the sound engine, here's my todo list:
-Code for case when mod is not looping
-turn on DirectSound debugging to see if any resources are not released during testing
-ability to mute entire sound system
-ability to disable entire sound system
-test non-looping wav/mod/ogg.
-add optional callback at end of non-looping wav/mod/ogg
-add callback that could be used for displaying a load progress bar (at loadtime of sound)
-test static wav/ogg (must use wav/ogg shorter than 3 seconds, otherwise it is automatically streamed)
-test loading/playing more than one different static wav/ogg at once
-test playing more than one same wav/ogg at once (duplicate buffers)
-volume, pan, frequency get/set functions
-fade functions (volume/pan/freq set-functions over time) (see advanced section of dx9 documentation regarding optimization)
-loading directly from mem buf (zip/pack file, etc)
-Calculate current position in entire song. (harder than it seems, because dsound might loop the circular buffer back to the start before the next chunk of the song is rendered; essentially moving "backwards" in position). Will need to increment a total var everytime the buffer halve changes, then add current position to that. Reset var when sound restarts.
-Test various streaming buffer sizes
-Enumeration and selection of DirectSound devices
When the sound engine is complete, I was contemplating writing an article for gamedev.net, but I'm not sure yet. The existing article on Streaming Wave Files with DirectSound is old, but a lot of the info I would provide would be redundant. That, and I'm pretty lazy. I'll probalby just release the source. So far, the engine can play streaming/static wav, ogg, and various mod formats. As you can see from the todo list, there's still quite a bit of functionality to add though.
As for the guitar equipment, Raging Hermit has helped me pick out the following: