diff --git a/src/android/i_sound.c b/src/android/i_sound.c
index c3fc038e51112380d658a07f704d30554a6592e8..80b90d2f73e8299b78b92e9e50ffc5d0e156ffd7 100644
--- a/src/android/i_sound.c
+++ b/src/android/i_sound.c
@@ -92,7 +92,7 @@ boolean I_LoadSong(char *data, size_t len)
         return -1;
 }
 
-void I_SetMIDIMusicVolume(INT32 volume)
+void I_SetMusicVolume(INT32 volume)
 {
         (void)volume;
 }
@@ -120,11 +120,6 @@ void I_UnloadSong(void)
 
 UINT8 digmusic_started = 0;
 
-void I_SetDigMusicVolume(INT32 volume)
-{
-        (void)volume;
-}
-
 boolean I_SetSongSpeed(float speed)
 {
         (void)speed;
diff --git a/src/djgppdos/i_sound.c b/src/djgppdos/i_sound.c
index 4c8ceb20c5d66260d17ba2d45f391eaa1ba973ff..e66bf8e2352ad0d206f3a9ee7ae2608436ebb075 100644
--- a/src/djgppdos/i_sound.c
+++ b/src/djgppdos/i_sound.c
@@ -140,7 +140,7 @@ void I_SetSfxVolume(INT32 volume)
 	set_volume (Volset(volume),-1);
 }
 
-void I_SetMIDIMusicVolume(INT32 volume)
+void I_SetMusicVolume(INT32 volume)
 {
 	if (nomidimusic)
 		return;
@@ -503,16 +503,6 @@ boolean I_LoadSong(char *data, size_t len)
 	return 1;
 }
 
-void I_SetDigMusicVolume(INT32 volume)
-{
-	volume = 0;
-	if (nodigimusic)
-		return;
-
-	// Now set volume on output device.
-//	CONS_Printf("Digital music not yet supported under DOS.\n");
-}
-
 boolean I_SetSongSpeed(float speed)
 {
 	(void)speed;
diff --git a/src/dummy/i_sound.c b/src/dummy/i_sound.c
index 60cf51f732ce4a296d2573f52c9b20190f63b955..f82bf00daddf88f0a7fe749e7cc1d806e1a7a6ed 100644
--- a/src/dummy/i_sound.c
+++ b/src/dummy/i_sound.c
@@ -70,7 +70,7 @@ void I_InitMusic(void){}
 
 void I_ShutdownMusic(void){}
 
-void I_SetMIDIMusicVolume(UINT8 volume)
+void I_SetMusicVolume(UINT8 volume)
 {
 	(void)volume;
 }
@@ -117,11 +117,6 @@ void I_UnloadSong(void)
 //  DIGMUSIC I/O
 //
 
-void I_SetDigMusicVolume(UINT8 volume)
-{
-	(void)volume;
-}
-
 boolean I_SetSongSpeed(float speed)
 {
 	(void)speed;
diff --git a/src/sdl/sdl_sound.c b/src/sdl/sdl_sound.c
index b729d4d89edbbc59a4044f748626c42f4238307e..5f92cde10b9795e608a2c9d14e4161a23d2f09e2 100644
--- a/src/sdl/sdl_sound.c
+++ b/src/sdl/sdl_sound.c
@@ -1702,7 +1702,7 @@ boolean I_LoadSong(char *data, size_t len)
 	return false;
 }
 
-void I_SetMIDIMusicVolume(UINT8 volume)
+void I_SetMusicVolume(UINT8 volume)
 {
 #ifdef HAVE_MIXER
 	if ((nomidimusic && nodigimusic) || !musicStarted)
@@ -1951,11 +1951,6 @@ static void I_StopGME(void)
 #endif
 }
 
-void I_SetDigMusicVolume(UINT8 volume)
-{
-	I_SetMIDIMusicVolume(volume);
-}
-
 boolean I_SetSongSpeed(float speed)
 {
 
diff --git a/src/win32/win_snd.c b/src/win32/win_snd.c
index 295d6868036f07593768f79d3819bf6050d70551..bfa43d087c5f69ceb538627bfbb22b1528eec6b6 100644
--- a/src/win32/win_snd.c
+++ b/src/win32/win_snd.c
@@ -713,14 +713,6 @@ boolean I_LoadSong(char *data, size_t len)
 	return true;
 }
 
-void I_SetDigMusicVolume(UINT8 volume)
-{
-	// volume is 0 to 31.
-	music_volume = volume;
-	if (I_GetMusicType() != MU_MID && music_stream)
-		FMR_MUSIC(FMOD_Channel_SetVolume(music_channel, volume / 31.0));
-}
-
 boolean I_SetSongSpeed(float speed)
 {
 	FMOD_RESULT e;
@@ -803,12 +795,18 @@ boolean I_SetSongTrack(INT32 track)
 // Fuck MIDI. ... Okay fine, you can have your silly D_-only mode.
 //
 
-void I_SetMIDIMusicVolume(UINT8 volume)
+void I_SetMusicVolume(UINT8 volume)
 {
+	if (!music_stream)
+		return;
+
 	// volume is 0 to 31.
-	midi_volume = volume;
-	if (I_GetMusicType() != MU_MID && music_stream)
-		FMR_MUSIC(FMOD_Channel_SetVolume(music_channel, volume / 31.0));
+	if (I_GetMusicType() == MU_MID)
+		music_volume = 31; // windows bug hack
+	else
+		music_volume = volume;
+
+	FMR_MUSIC(FMOD_Channel_SetVolume(music_channel, music_volume / 31.0));
 }
 
 boolean I_PlaySong(boolean looping)