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). |
N/A
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".