One idea is to have separate scripts for playing music and sound effects, "bgm" and "sfx", that plays the sounds using the new audio system (gg on having to replace all the sound calls in the whole project). Use the return value of the audio-start functions to get a handle to the existing sound, then use the "gain" function to adjust its volume based on global variables for BGM volume and SFX volume, set in the options menu. I've reused the same scripts for so long I don't remember the names of the actual audio functions, but I believe it's something like
Code:
///bgm(music)
n = audio_play_sound(argument0,true,1000)
audio_set_gain(n,global.bgm_volume,0)
The gain of a sound needs to be set after it's playing, so this is why we move it into the BGM script.
EDIT: oh, you mentioned you would NOT convert it to Studio? My bad. I think there's counterparts for those functions in GM8 too, though, with the main caveat being that the function to set the volume of a sound uses a logarithmic scale (0.8 isn't perceived as 20% lower volume, it's almost inaudible).