# CategoryAudio Audio functionality for the SDL library. All audio in SDL3 revolves around [SDL_AudioStream](SDL_AudioStream). Whether you want to play or record audio, convert it, stream it, buffer it, or mix it, you're going to be passing it through an audio stream. Audio streams are quite flexible; they can accept any amount of data at a time, in any supported format, and output it as needed in any other format, even if the data format changes on either side halfway through. An app opens an audio device and binds any number of audio streams to it, feeding more data to it as available. When the devices needs more data, it will pull it from all bound streams and mix them together for playback. Audio streams can also use an app-provided callback to supply data on-demand, which maps pretty closely to the SDL2 audio model. SDL also provides a simple .WAV loader in [SDL_LoadWAV](SDL_LoadWAV) (and [SDL_LoadWAV_IO](SDL_LoadWAV_IO) if you aren't reading from a file) as a basic means to load sound data into your program. For multi-channel audio, the default SDL channel mapping is: ``` 2: FL FR (stereo) 3: FL FR LFE (2.1 surround) 4: FL FR BL BR (quad) 5: FL FR LFE BL BR (4.1 surround) 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR) 7: FL FR FC LFE BC SL SR (6.1 surround) 8: FL FR FC LFE BL BR SL SR (7.1 surround) ``` ## Functions - [SDL_AudioDevicePaused](SDL_AudioDevicePaused) - [SDL_BindAudioStream](SDL_BindAudioStream) - [SDL_BindAudioStreams](SDL_BindAudioStreams) - [SDL_ClearAudioStream](SDL_ClearAudioStream) - [SDL_CloseAudioDevice](SDL_CloseAudioDevice) - [SDL_ConvertAudioSamples](SDL_ConvertAudioSamples) - [SDL_CreateAudioStream](SDL_CreateAudioStream) - [SDL_DestroyAudioStream](SDL_DestroyAudioStream) - [SDL_FlushAudioStream](SDL_FlushAudioStream) - [SDL_GetAudioCaptureDevices](SDL_GetAudioCaptureDevices) - [SDL_GetAudioDeviceFormat](SDL_GetAudioDeviceFormat) - [SDL_GetAudioDeviceName](SDL_GetAudioDeviceName) - [SDL_GetAudioDriver](SDL_GetAudioDriver) - [SDL_GetAudioOutputDevices](SDL_GetAudioOutputDevices) - [SDL_GetAudioStreamAvailable](SDL_GetAudioStreamAvailable) - [SDL_GetAudioStreamData](SDL_GetAudioStreamData) - [SDL_GetAudioStreamDevice](SDL_GetAudioStreamDevice) - [SDL_GetAudioStreamFormat](SDL_GetAudioStreamFormat) - [SDL_GetAudioStreamFrequencyRatio](SDL_GetAudioStreamFrequencyRatio) - [SDL_GetAudioStreamProperties](SDL_GetAudioStreamProperties) - [SDL_GetAudioStreamQueued](SDL_GetAudioStreamQueued) - [SDL_GetCurrentAudioDriver](SDL_GetCurrentAudioDriver) - [SDL_GetNumAudioDrivers](SDL_GetNumAudioDrivers) - [SDL_GetSilenceValueForFormat](SDL_GetSilenceValueForFormat) - [SDL_LoadWAV](SDL_LoadWAV) - [SDL_LoadWAV_IO](SDL_LoadWAV_IO) - [SDL_LockAudioStream](SDL_LockAudioStream) - [SDL_MixAudio](SDL_MixAudio) - [SDL_OpenAudioDevice](SDL_OpenAudioDevice) - [SDL_OpenAudioDeviceStream](SDL_OpenAudioDeviceStream) - [SDL_PauseAudioDevice](SDL_PauseAudioDevice) - [SDL_PauseAudioStreamDevice](SDL_PauseAudioStreamDevice) - [SDL_PutAudioStreamData](SDL_PutAudioStreamData) - [SDL_ResumeAudioDevice](SDL_ResumeAudioDevice) - [SDL_ResumeAudioStreamDevice](SDL_ResumeAudioStreamDevice) - [SDL_SetAudioPostmixCallback](SDL_SetAudioPostmixCallback) - [SDL_SetAudioStreamFormat](SDL_SetAudioStreamFormat) - [SDL_SetAudioStreamFrequencyRatio](SDL_SetAudioStreamFrequencyRatio) - [SDL_SetAudioStreamGetCallback](SDL_SetAudioStreamGetCallback) - [SDL_SetAudioStreamPutCallback](SDL_SetAudioStreamPutCallback) - [SDL_UnbindAudioStream](SDL_UnbindAudioStream) - [SDL_UnbindAudioStreams](SDL_UnbindAudioStreams) - [SDL_UnlockAudioStream](SDL_UnlockAudioStream) ## Datatypes - [SDL_AudioDeviceID](SDL_AudioDeviceID) - [SDL_AudioFormat](SDL_AudioFormat) - [SDL_AudioPostmixCallback](SDL_AudioPostmixCallback) - [SDL_AudioStreamCallback](SDL_AudioStreamCallback) ## Structs - [SDL_AudioSpec](SDL_AudioSpec) - [SDL_AudioStream](SDL_AudioStream) ## Enums - (none.) ## Macros - [SDL_AUDIO_BITSIZE](SDL_AUDIO_BITSIZE) - [SDL_AUDIO_BYTESIZE](SDL_AUDIO_BYTESIZE) - [SDL_AUDIO_DEVICE_DEFAULT_CAPTURE](SDL_AUDIO_DEVICE_DEFAULT_CAPTURE) - [SDL_AUDIO_DEVICE_DEFAULT_OUTPUT](SDL_AUDIO_DEVICE_DEFAULT_OUTPUT) - [SDL_AUDIO_FRAMESIZE](SDL_AUDIO_FRAMESIZE) - [SDL_AUDIO_ISBIGENDIAN](SDL_AUDIO_ISBIGENDIAN) - [SDL_AUDIO_ISFLOAT](SDL_AUDIO_ISFLOAT) - [SDL_AUDIO_ISINT](SDL_AUDIO_ISINT) - [SDL_AUDIO_ISLITTLEENDIAN](SDL_AUDIO_ISLITTLEENDIAN) - [SDL_AUDIO_ISSIGNED](SDL_AUDIO_ISSIGNED) - [SDL_AUDIO_ISUNSIGNED](SDL_AUDIO_ISUNSIGNED) - [SDL_MIX_MAXVOLUME](SDL_MIX_MAXVOLUME) ---- [CategoryAPICategory](CategoryAPICategory)