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 the 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 given | Memitter & Minstance (bitwise AND, see Bitwise Operators) |
The default asset-level gain is the value of the sound asset's "Volume" slider:
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)