diff --git a/src/i_sound.h b/src/i_sound.h
index 901e6c28474943c0a85183b78de1af7b168427d9..15126d695b706744c84e731905ee5f6a4cdb2139 100644
--- a/src/i_sound.h
+++ b/src/i_sound.h
@@ -66,9 +66,9 @@ void I_StartupSound(void);
 */
 void I_ShutdownSound(void);
 
-//
-//  SFX I/O
-//
+/// ------------------------
+///  SFX I/O
+/// ------------------------
 
 /**	\brief	Starts a sound in a particular sound channel.
 	\param	id	sfxid
@@ -120,13 +120,9 @@ void I_UpdateSoundParams(INT32 handle, UINT8 vol, UINT8 sep, UINT8 pitch);
 */
 void I_SetSfxVolume(UINT8 volume);
 
-//
-//  MUSIC I/O
-//
-
-musictype_t I_GetMusicType(void);
-boolean I_MusicPlaying(void);
-boolean I_MusicPaused(void);
+/// ------------------------
+//  MUSIC SYSTEM
+/// ------------------------
 
 /** \brief Init the music systems
 */
@@ -136,33 +132,23 @@ void I_InitMusic(void);
 */
 void I_ShutdownMusic(void);
 
-/**	\brief	PAUSE game handling.
+/// ------------------------
+//  MUSIC PROPERTIES
+/// ------------------------
 
-	\param	handle	song handle
-
-	\return	void
-*/
-void I_PauseSong(void);
-
-/**	\brief	RESUME game handling
-
-	\param	handle	song handle
-
-	\return	void
-*/
-void I_ResumeSong(void);
-
-//
-//  MIDI I/O
-//
+musictype_t I_MusicType(void);
+boolean I_MusicPlaying(void);
+boolean I_MusicPaused(void);
 
-/**	\brief	The I_SetMIDIMusicVolume function
+/// ------------------------
+//  MUSIC EFFECTS
+/// ------------------------
 
-	\param	volume	volume to set at
+boolean I_SetSongSpeed(float speed);
 
-	\return	void
-*/
-void I_SetMIDIMusicVolume(UINT8 volume);
+/// ------------------------
+//  MUSIC PLAYBACK
+/// ------------------------
 
 /**	\brief	Registers a song handle to song data.
 
@@ -175,6 +161,15 @@ void I_SetMIDIMusicVolume(UINT8 volume);
 */
 boolean I_LoadSong(char *data, size_t len);
 
+/**	\brief	See ::I_LoadSong, then think backwards
+
+	\param	handle	song handle
+
+	\sa I_LoadSong
+	\todo remove midi handle
+*/
+void I_UnloadSong(void);
+
 /**	\brief	Called by anything that wishes to start music
 
 	\param	handle	Song handle
@@ -195,35 +190,35 @@ boolean I_PlaySong(boolean looping);
 */
 void I_StopSong(void);
 
-/**	\brief	See ::I_LoadSong, then think backwards
+/**	\brief	PAUSE game handling.
 
 	\param	handle	song handle
 
-	\sa I_LoadSong
-	\todo remove midi handle
+	\return	void
 */
-void I_UnloadSong(void);
+void I_PauseSong(void);
 
-//
-//  DIGMUSIC I/O
-//
+/**	\brief	RESUME game handling
 
-boolean I_SetSongSpeed(float speed);
+	\param	handle	song handle
 
-boolean I_SetSongTrack(INT32 track);
+	\return	void
+*/
+void I_ResumeSong(void);
 
-/**	\brief The I_SetDigMusicVolume function
+/**	\brief	The I_SetMusicVolume function
 
 	\param	volume	volume to set at
 
 	\return	void
 */
-void I_SetDigMusicVolume(UINT8 volume);
+void I_SetMusicVolume(UINT8 volume);
 
-//
-// CD MUSIC I/O
-//
+boolean I_SetSongTrack(INT32 track);
 
+/// ------------------------
+//  CD MUSIC I/O
+/// ------------------------
 
 /**	\brief  cd music interface
 */
diff --git a/src/s_sound.c b/src/s_sound.c
index 32d9c7b06b789f2bef737f4d2c4f4a1c248a206a..bd6022dfb75a419b7ee4e24211606cdc2ee1770e 100644
--- a/src/s_sound.c
+++ b/src/s_sound.c
@@ -1249,7 +1249,7 @@ boolean S_MusicPaused(void)
 
 musictype_t S_MusicType(void)
 {
-	return I_GetMusicType();
+	return I_MusicType();
 }
 
 boolean S_MusicInfo(char *mname, UINT16 *mflags, boolean *looping)
@@ -1274,7 +1274,7 @@ boolean S_MusicExists(const char *mname, boolean checkMIDI, boolean checkDigi)
 }
 
 /// ------------------------
-/// Music Properties
+/// Music Effects
 /// ------------------------
 
 boolean S_SpeedMusic(float speed)
@@ -1283,7 +1283,7 @@ boolean S_SpeedMusic(float speed)
 }
 
 /// ------------------------
-/// Music Routines
+/// Music Playback
 /// ------------------------
 
 static boolean S_LoadMusic(const char *mname)
@@ -1462,7 +1462,7 @@ void S_SetMusicVolume(INT32 digvolume, INT32 seqvolume)
 	digvolume = seqvolume = 31;
 #endif
 
-	switch(I_GetMusicType())
+	switch(I_MusicType())
 	{
 		case MU_MID:
 		case MU_MOD:
diff --git a/src/sdl/mixer_sound.c b/src/sdl/mixer_sound.c
index 1384f1da03b526750a99c8e121975958ac31fa47..9c46625fce32f3867b48392c168f4ced5c9d1c6b 100644
--- a/src/sdl/mixer_sound.c
+++ b/src/sdl/mixer_sound.c
@@ -72,6 +72,10 @@ static Music_Emu *gme;
 static INT32 current_track;
 #endif
 
+/// ------------------------
+/// Audio System
+/// ------------------------
+
 void I_StartupSound(void)
 {
 	I_Assert(!sound_started);
@@ -128,6 +132,10 @@ FUNCMATH void I_UpdateSound(void)
 {
 }
 
+/// ------------------------
+/// SFX
+/// ------------------------
+
 // this is as fast as I can possibly make it.
 // sorry. more asm needed.
 static Mix_Chunk *ds2chunk(void *stream)
@@ -430,40 +438,10 @@ void I_SetSfxVolume(UINT8 volume)
 	sfx_volume = volume;
 }
 
-//
-// Music
-//
-
-musictype_t I_GetMusicType(void)
-{
-#ifdef HAVE_LIBGME
-	if (gme)
-		return MU_GME;
-	else
-#endif
-	if (!music)
-		return MU_NONE;
-	else if (Mix_GetMusicType(music) == MUS_MID)
-		return MU_MID;
-	else if (Mix_GetMusicType(music) == MUS_MOD || Mix_GetMusicType(music) == MUS_MODPLUG_UNUSED)
-		return MU_MOD;
-	else if (Mix_GetMusicType(music) == MUS_MP3 || Mix_GetMusicType(music) == MUS_MP3_MAD_UNUSED)
-		return MU_MP3;
-	else
-		return (musictype_t)Mix_GetMusicType(music);
-}
-
-boolean I_MusicPlaying(void)
-{
-	return (boolean)music;
-}
-
-boolean I_MusicPaused(void)
-{
-	return songpaused;
-}
+/// ------------------------
+/// Music Hooks
+/// ------------------------
 
-// Music hooks
 static void music_loop(void)
 {
 	Mix_PlayMusic(music, 0);
@@ -491,6 +469,11 @@ static void mix_gme(void *udata, Uint8 *stream, int len)
 }
 #endif
 
+
+/// ------------------------
+/// Music System
+/// ------------------------
+
 FUNCMATH void I_InitMusic(void)
 {
 #ifdef HAVE_LIBGME
@@ -516,21 +499,42 @@ void I_ShutdownMusic(void)
 	music = NULL;
 }
 
-void I_PauseSong(void)
+/// ------------------------
+/// Music Properties
+/// ------------------------
+
+musictype_t I_MusicType(void)
 {
-	Mix_PauseMusic();
-	songpaused = true;
+#ifdef HAVE_LIBGME
+	if (gme)
+		return MU_GME;
+	else
+#endif
+	if (!music)
+		return MU_NONE;
+	else if (Mix_GetMusicType(music) == MUS_MID)
+		return MU_MID;
+	else if (Mix_GetMusicType(music) == MUS_MOD || Mix_GetMusicType(music) == MUS_MODPLUG_UNUSED)
+		return MU_MOD;
+	else if (Mix_GetMusicType(music) == MUS_MP3 || Mix_GetMusicType(music) == MUS_MP3_MAD_UNUSED)
+		return MU_MP3;
+	else
+		return (musictype_t)Mix_GetMusicType(music);
 }
 
-void I_ResumeSong(void)
+boolean I_MusicPlaying(void)
 {
-	Mix_ResumeMusic();
-	songpaused = false;
+	return (boolean)music;
 }
 
-//
-// Digital Music
-//
+boolean I_MusicPaused(void)
+{
+	return songpaused;
+}
+
+/// ------------------------
+/// Music Effects
+/// ------------------------
 
 boolean I_SetSongSpeed(float speed)
 {
@@ -550,40 +554,9 @@ boolean I_SetSongSpeed(float speed)
 	return false;
 }
 
-boolean I_SetSongTrack(int track)
-{
-#ifdef HAVE_LIBGME
-	if (current_track == track)
-		return false;
-
-	// If the specified track is within the number of tracks playing, then change it
-	if (gme)
-	{
-		SDL_LockAudio();
-		if (track >= 0
-			&& track < gme_track_count(gme))
-		{
-			gme_err_t gme_e = gme_start_track(gme, track);
-			if (gme_e != NULL)
-			{
-				CONS_Alert(CONS_ERROR, "GME error: %s\n", gme_e);
-				return false;
-			}
-			current_track = track;
-			SDL_UnlockAudio();
-			return true;
-		}
-		SDL_UnlockAudio();
-		return false;
-	}
-#endif
-	(void)track;
-	return false;
-}
-
-//
-// MIDI Music
-//
+/// ------------------------
+/// Music Playback
+/// ------------------------
 
 boolean I_LoadSong(char *data, size_t len)
 {
@@ -731,6 +704,12 @@ boolean I_LoadSong(char *data, size_t len)
 	return true;
 }
 
+void I_UnloadSong(void)
+{
+	Mix_FreeMusic(music);
+	music = NULL;
+}
+
 boolean I_PlaySong(boolean looping)
 {
 	if (!music)
@@ -775,25 +754,64 @@ void I_StopSong(void)
 	music = NULL;
 }
 
+void I_PauseSong(void)
+{
+	Mix_PauseMusic();
+	songpaused = true;
+}
+
+void I_ResumeSong(void)
+{
+	Mix_ResumeMusic();
+	songpaused = false;
+}
+
 void I_SetMusicVolume(UINT8 volume)
 {
 	if (!music)
 		return;
 
-	if (I_GetMusicType() == MU_MID)
+#ifdef _WIN32
+	if (I_MusicType() == MU_MID)
 		// HACK: Until we stop using native MIDI,
 		// disable volume changes
 		music_volume = 31;
 	else
+#endif
 		music_volume = volume;
 
 	Mix_VolumeMusic((UINT32)music_volume*128/31);
 }
 
-void I_UnloadSong(void)
+boolean I_SetSongTrack(int track)
 {
-	Mix_FreeMusic(music);
-	music = NULL;
+#ifdef HAVE_LIBGME
+	if (current_track == track)
+		return false;
+
+	// If the specified track is within the number of tracks playing, then change it
+	if (gme)
+	{
+		SDL_LockAudio();
+		if (track >= 0
+			&& track < gme_track_count(gme))
+		{
+			gme_err_t gme_e = gme_start_track(gme, track);
+			if (gme_e != NULL)
+			{
+				CONS_Alert(CONS_ERROR, "GME error: %s\n", gme_e);
+				return false;
+			}
+			current_track = track;
+			SDL_UnlockAudio();
+			return true;
+		}
+		SDL_UnlockAudio();
+		return false;
+	}
+#endif
+	(void)track;
+	return false;
 }
 
 #endif
\ No newline at end of file