Reviewed SetAudioBufferPitch() #1450
This commit is contained in:
parent
039503e7c2
commit
459c4754dc
@ -52,6 +52,7 @@ int main(void)
|
||||
|
||||
Music music = LoadMusicStream("resources/mini1111.xm");
|
||||
music.looping = false;
|
||||
float pitch = 1.0f;
|
||||
|
||||
PlayMusicStream(music);
|
||||
|
||||
@ -84,6 +85,11 @@ int main(void)
|
||||
else ResumeMusicStream(music);
|
||||
}
|
||||
|
||||
if (IsKeyDown(KEY_DOWN)) pitch -= 0.01f;
|
||||
else if (IsKeyDown(KEY_UP)) pitch += 0.01f;
|
||||
|
||||
SetMusicPitch(music, pitch);
|
||||
|
||||
// Get timePlayed scaled to bar dimensions
|
||||
timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*(screenWidth - 40);
|
||||
|
||||
|
12
src/raudio.c
12
src/raudio.c
@ -634,16 +634,14 @@ void SetAudioBufferPitch(AudioBuffer *buffer, float pitch)
|
||||
{
|
||||
if (buffer != NULL)
|
||||
{
|
||||
float pitchMul = pitch/buffer->pitch;
|
||||
|
||||
// Pitching is just an adjustment of the sample rate.
|
||||
// Note that this changes the duration of the sound:
|
||||
// - higher pitches will make the sound faster
|
||||
// - lower pitches make it slower
|
||||
ma_uint32 newOutputSampleRate = (ma_uint32)((float)buffer->converter.config.sampleRateOut/pitchMul);
|
||||
buffer->pitch *= (float)buffer->converter.config.sampleRateOut/newOutputSampleRate;
|
||||
|
||||
ma_data_converter_set_rate(&buffer->converter, buffer->converter.config.sampleRateIn, newOutputSampleRate);
|
||||
ma_uint32 outputSampleRate = (ma_uint32)((float)buffer->converter.config.sampleRateOut/pitch);
|
||||
ma_data_converter_set_rate(&buffer->converter, buffer->converter.config.sampleRateIn, outputSampleRate);
|
||||
|
||||
buffer->pitch = pitch;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1477,7 +1475,7 @@ void SetMusicVolume(Music music, float volume)
|
||||
// Set pitch for music
|
||||
void SetMusicPitch(Music music, float pitch)
|
||||
{
|
||||
SetAudioStreamPitch(music.stream, pitch);
|
||||
SetAudioBufferPitch(music.stream.buffer, pitch);
|
||||
}
|
||||
|
||||
// Get music time length (in seconds)
|
||||
|
Loading…
x
Reference in New Issue
Block a user