sdlSetAudioStreamFrequencyRatio function

bool sdlSetAudioStreamFrequencyRatio(
  1. Pointer<SdlAudioStream> stream,
  2. double ratio
)

Change the frequency ratio of an audio stream.

The frequency ratio is used to adjust the rate at which input data is consumed. Changing this effectively modifies the speed and pitch of the audio. A value greater than 1.0 will play the audio faster, and at a higher pitch. A value less than 1.0 will play the audio slower, and at a lower pitch.

This is applied during SDL_GetAudioStreamData, and can be continuously changed to create various effects.

\param stream the stream the frequency ratio is being changed. \param ratio the frequency ratio. 1.0 is normal speed. Must be between 0.01 and 100. \returns true on success or false on failure; call SDL_GetError() for more information.

\threadsafety It is safe to call this function from any thread, as it holds a stream-specific mutex while running.

\since This function is available since SDL 3.1.3.

\sa SDL_GetAudioStreamFrequencyRatio \sa SDL_SetAudioStreamFormat

extern SDL_DECLSPEC bool SDLCALL SDL_SetAudioStreamFrequencyRatio(SDL_AudioStream *stream, float ratio)

Implementation

bool sdlSetAudioStreamFrequencyRatio(
    Pointer<SdlAudioStream> stream, double ratio) {
  final sdlSetAudioStreamFrequencyRatioLookupFunction = libSdl3.lookupFunction<
      Uint8 Function(Pointer<SdlAudioStream> stream, Float ratio),
      int Function(Pointer<SdlAudioStream> stream,
          double ratio)>('SDL_SetAudioStreamFrequencyRatio');
  return sdlSetAudioStreamFrequencyRatioLookupFunction(stream, ratio) == 1;
}