This function can be used to change the pitch of a given sound. The sound can either be one referenced from an index for an individual sound being played which has been stored in a variable when using the audio_play_sound or audio_play_sound_at functions, or an actual sound asset from the resource tree. If it is an index of a playing sound, then only that instance will be changed, however when using a sound asset from the resource tree, all further instances being played of that sound will be changed.

The pitch argument is a pitch multiplier, in that the input value multiplies the current pitch by that amount, so the default value of 1 is no pitch change, while a value of less than 1 will lower the pitch and greater than 1 will raise the pitch. It is best to use small increments for this function as any value under 0 or over 5 may not be audible anyway. It is worth noting that the total pitch change permitted is clamped to (1/256) - 256 octaves, so any value over or under this will not be registered.

NOTE: The clamped value given above is what GameMaker Studio 2 attempts to clamp the range to, but this value is not guaranteed on all target platforms. iOS, for example, clamps to (1/256) - 8, so you may need to experiment on each target platform and have different versions of a sound resource, each one pre-shifted, should you require higher or lower octave values.


audio_sound_pitch(index, pitch);

Argument Description
index The index of the sound to change.
pitch The pitch multiplier (default 1).




var s_engine = audio_play_sound(snd_CarEngine, 10, false);
switch (gear)
   case 1: audio_sound_pitch(s_engine, 0.8); break;
   case 2: audio_sound_pitch(s_engine, 0.9); break;
   case 3: audio_sound_pitch(s_engine, 0.95); break;
   case 4: audio_sound_pitch(s_engine, 1); break;
   case 5: audio_sound_pitch(s_engine, 1.2); break;

The above code will change the pitch of the audio played from the sound indexed in the variable "s_engine" based on the value of the variable "gear".