SDL_sound
March 25th, 2022: stable branch SDL_sound 2.0.1 released!
June 29th, 2021: We have moved to GitHub!
SDL_sound is a library that handles the decoding of several popular
sound file formats, such as .WAV and .MP3. It is meant to make the
programmer's sound playback tasks simpler. The programmer gives
SDL_sound a filename, or feeds it data directly from one of many
sources, and then reads the decoded waveform data back at their leisure.
If resource constraints are a concern, SDL_sound can process sound
data in programmer-specified blocks. Alternately, SDL_sound can decode
a whole sound file and hand back a single pointer to the whole waveform.
SDL_sound can also handle sample rate, audio format, and channel
conversion on-the-fly and behind-the-scenes, if the programmer desires.
As the name implies, SDL_sound is an add-on to
Simple Directmedia Layer, and
as such, you'll need it to build and use SDL_sound. SDL gives us lots of
convenience for porting and implementing some elements of the library,
not to mention that it is a powerful, cross platform answer to
DirectX. You should definitely look
into it, whether you use SDL_sound or not.
What works:
- Support for "decoding" raw audio samples.
- Support for decoding Microsoft WAVE audio files (uncompressed
and MS-ADPCM encoded waveforms are supported, currently) (.WAV).
- Support for decoding various MPEG audio files through
SMPEG
(.MP3, .MPG, .MPEG).
- Support for decoding MPEG-1 Layer 3 audio files internally
(makes use of LGPL'd code from mpg123.)
(.MP3).
- Support for decoding MIDI music files (.MIDI, .MID).
- Support for decoding Ogg Vorbis audio files through
libvorbis
(.OGG).
- Support for decoding Speex voice files through
libspeex
(.SPX).
- Support for decoding FLAC audio files through
libFLAC
(.FLAC, .FLA).
- Support for decoding Creative Labs Voice files (.VOC).
- Support for decoding Audio Interchange File Format files (.AIFF).
- Support for decoding Shorten-compressed audio data (.SHN).
- Support for Sun's audio format (.AU).
- Support for decoding through
MikMod.
(.MOD, .IT, .XM, .S3M, .MTM, .669, .STM, .ULT, .FAR, .MED, .AMF,
.DSM, .IMF, .GDM, .STX, .OKT).
- Support for decoding through
ModPlug.
(.669, .AMF, .AMS, .DBM, .DMF, .DSM, .FAR, .IT, .MDL, .MED, .MOD,
.MT2, .MTM, .OKT, .PTM, .PSM, .S3M, .STM, .ULT, .UMX, .XM)
- Experimental support for decoding through
Apple Quicktime
(MacOS only).
- Compiles/runs on Linux (x86 tested).
- Compiles/runs on Linux (x86-64 tested).
- Compiles/runs on Linux (PowerPC tested).
- Compiles/runs on FreeBSD (x86 tested).
- Compiles/runs on Win32 (x86 tested).
- Compiles/runs on MacOS Classic (PowerPC tested).
- Compiles/runs on MacOS X (PowerPC tested).
- Compiles/runs on BeOS (x86 tested).
- Compiles/runs on WinCE/PocketPC (StrongARM tested).
- May compile and run elsewhere with little to no modification.
Success stories and patches are
welcome.
What doesn't work:
- Support for more forms of compressed .WAV files is planned,
but not yet implemented.
- Support for various forms of compressed .AIFF files is planned,
but not yet implemented.
- Contributions of other ports are, of course,
welcome.
License:
Documentation:
-
An API reference for SDL_sound can be found here.
Downloads:
- We no longer publish binary packages ourselves. Please build from source.
- Linux users: there's a good chance your distro already provides an SDL_sound package! Check with your package manager.
- Source code and releases are at the GitHub project page.
Funding:
Page maintained by
Ryan C. Gordon.