This page gives a detailed overview of the audio properties that GameMaker supports and the different "levels" at which you can set/change them.
The table below lists all applicable levels for the basic audio properties, and lists the functions you can use to set and get each property at each level.
| Level | Gain | Pitch | Offset | Listener Mask |
|---|---|---|---|---|
| Asset | audio_sound_gain audio_sound_get_gain | audio_sound_pitch audio_sound_get_pitch | audio_sound_set_track_position audio_sound_get_track_position | N/A |
| Group | audio_group_set_gain audio_group_get_gain | N/A | N/A | N/A |
| Emitter | audio_emitter_gain audio_emitter_get_gain | audio_emitter_pitch audio_emitter_get_pitch | N/A | audio_emitter_set_listener_mask audio_emitter_get_listener_mask |
| Instance/Voice | audio_sound_gain audio_sound_get_gain audio_play_sound, etc. | audio_sound_pitch audio_sound_get_pitch audio_play_sound, etc. | audio_sound_set_track_position audio_sound_get_track_position audio_play_sound, etc. | audio_play_sound, etc. |
| Global/Listener | audio_master_gain audio_set_master_gain audio_get_master_gain | N/A | N/A | audio_set_listener_mask audio_get_listener_mask |
| Result | Gasset * Ggroup * Gemitter * Ginstance | Passet * Pemitter * Pinstance | Asset-level offset unless instance-level offset is passed to the audio_play_sound_* functions | Memitter & Minstance (bitwise AND, see Bitwise Operators) |
The default asset-level gain is the value of the "Volume" slider in The Sound Editor:

This can still be changed in-game later by calling audio_sound_gain with the sound asset ID as the argument:
audio_sound_gain(snd_Explode, 0, 0); // Set the asset-level gain to 0 (new instances of this sound play muted)