I'm currently using audio sync groups for multi intensity music in my game. The idea is to have 3 pieces of music play in the sync group, and then cross fade between them as the intensity of the game increases. From the GameMaker Studio 2 help file on audio_play_in_sync_group(): The example code provided in the help file: Code: sg = audio_create_sync_group(true); snd = audio_play_in_sync_group(sg, sound1); snd = audio_play_in_sync_group(sg, sound2); snd = audio_play_in_sync_group(sg, sound3); snd = audio_play_in_sync_group(sg, sound4); audio_sound_gain(snd, 0, 0); audio_sound_gain(snd, 0, 0); audio_sound_gain(snd, 0, 0); audio_start_sync_group(sg); Now as I understand GML, using audio_sound_gain(snd, 0, 0) would only change the gain of the instance of sound2 created with audio_play_in_sync_group(sg, sound2). However if you used audio_sound_gain(sound2,0,0) you would change the gain of ALL audio instances that were created from sound2. However, if you look at the values returned from the above code you get: Code: snd = 0 snd = 1 snd = 2 snd = 3 You get 0,1,2 & 3 regardless of what order you put in sound1,2,3 & 4. Also it doesn't matter if you have a project filled with audio files, the output is always 0,1,2 & 3 which are just the first 4 audio files you loaded into the IDE. I have reported this as a bug to the helpdesk, but was told that this was apparently not a fault or a bug, which I'm finding hard to accept. I was told that audio_play_in_sync_group() merely returns the order that the sounds were added to the audio sync group, which is a trivial thing to return and not useful at all. I mention this because audio_play_sound() does return a unique ID for the instance of the sound being played, whose gain you can then be adjusted without adjusting the gain of all other instance created from that sound index. Example project illustrating the problem I'm having: http://www.mediafire.com/file/78x0l0dgaect68g/Test_Audio_Groups.yyz Any advice or guidance is very much appreciated.