A portable collection of audio codecs as set of dependencies for SDL Mixer X audio library
  • C 72.6%
  • C++ 22.4%
  • Assembly 2%
  • Objective-C 1.3%
  • Java 0.4%
  • Other 1%
Find a file
2026-07-26 02:58:12 +03:00
.semaphore CI: Use Ubuntu 24.04 at the Semaphore CI 2026-06-03 11:58:10 +03:00
_common Updated SDL2 to 2.3.10 2025-09-22 04:36:28 +03:00
FluidLite FluidLite: Fixed sprintf truncation warning 2025-04-04 20:57:44 +03:00
libADLMIDI Updated libADLMIDI and libXMP 2026-07-15 01:22:53 +03:00
libEDMIDI Updated libADLMIDI, libOPNMIDI, and libEDMIDI 2026-06-12 19:49:01 +03:00
libFLAC libFLAC: Fixed build for 3DS compatibility 2025-01-29 08:42:56 +03:00
libgme Updated header of libGME since the 0.6.5 version has been released 2026-04-21 11:49:32 +03:00
liblamemp3 liblame: Enable shared library 2026-04-22 02:03:20 +03:00
libmodplug CMake: fixed warning at newer CMake versions 2024-12-30 23:42:32 +03:00
libmpg123 libXMP, mpg123: work around tvOS build 2026-07-15 01:40:36 +03:00
libogg libogg, libvorbis, tremor: Added heads to projects for showing at IDE 2026-03-14 22:14:51 +03:00
libopenmpt CMake: Tweaked CMake minimum version to tweak the range 2023-08-16 20:49:05 +03:00
libOPNMIDI Updated libADLMIDI, libOPNMIDI, and libEDMIDI 2026-06-12 19:49:01 +03:00
libopus Added missing Apple platform flags 2026-07-14 13:06:31 +03:00
libopusenc libopusenc: Fixed some warnings 2026-04-20 00:08:20 +03:00
libopusfile CMake: fixed warning at newer CMake versions 2024-12-30 23:42:32 +03:00
libtimidity-sdl CMake: fixed warning at newer CMake versions 2024-12-30 23:42:32 +03:00
libvorbis vorbisfile: Fixed few warnings 2026-04-20 00:08:34 +03:00
libxmp libxmp: Apply @sezero's patch to better check for functions 2026-07-15 02:50:45 +03:00
SDL2 SDL2: Move the gesture workaround hook to the proper place 2026-07-26 02:58:12 +03:00
tremor libogg, libvorbis, tremor: Added heads to projects for showing at IDE 2026-03-14 22:14:51 +03:00
vgmstream Dummy changes 2017-09-27 23:12:48 +03:00
WavPack WavPack: Fixed build on some toolchains where int32 is long 2025-09-24 00:58:12 +03:00
zlib Updated zlib to version 1.3.1 2025-08-28 23:49:56 +03:00
.appveyor.yml CMake: Added Lame MP3 into main build 2026-04-21 13:31:37 +03:00
.gitattributes Make all CMake files to be LF 2024-11-14 04:02:47 +03:00
.gitignore Ignore VS Code related directory 2022-11-19 07:39:16 +03:00
AGENTS.md Added AGENTS.md similar to Moondust Project's 2026-06-03 11:48:43 +03:00
audio_codec_common.cmake Added missing Apple platform flags 2026-07-14 13:06:31 +03:00
CMakeLists.txt Added missing Apple platform flags 2026-07-14 13:06:31 +03:00
download_sdl2_hg.cmake Added missing Apple platform flags 2026-07-14 13:06:31 +03:00
README.md Clarify: the Lame MP3 is LGPLv2+ licensed 2026-04-21 14:14:47 +03:00

AudioCodecs collection

A collection of various audio codecs and their dependencies.

This is a set of dependencies required for SDL Mixer X audio library, except of SDL2 which is updating offten.

This set of libraries is designed to be buildable through CMake building system.

Note: to build libtimidity-sdl, you need to have the latest libSDL2 being installed, or enable the local SDL2 build. (This library was being modified to support files through SDL_RWops() API)

CI Badges

Operating system Badge
Linux: Build Status
Windows: Build status
macOS Build Status

How to build

Linux

You will need:

  • CMake >= 3.2
  • GCC and G++ >= 4.8
  • libSDL2 library package installed, OR you can use -DUSE_LOCAL_SDL2=ON to use the vendored copy of SDL2 instead, or use the -DDOWNLOAD_SDL2_DEPENDENCY=ON CMake flag to automatically download from official GitHub repository using SDL2 branch and build this.

System install (will be installed with /usr/local/ prefix)

# Step 1: Download repository
git clone https://github.com/WohlSoft/AudioCodecs.git
cd AudioCodecs

# Step 2: PRepare build directory
mkdir build
cd build

# Step 3: Configure project (build a basic set of decoders)
cmake ..

# Step 4: Build
make
# Hint: to speed-up build use -j <num jobs> flag. Count of jobs should be equal number of CPU cores

# Step 5: Install
sudo make install

Custom install (You can install result into any folder and you don't need to have root to install)

# Step 1: Download repository
git clone https://github.com/WohlSoft/AudioCodecs.git
cd AudioCodecs

# Step 2: PRepare build directory
mkdir build
cd build

# Step 3: Configure project (build a basic set of decoders)
cmake -DUSE_LOCAL_SDL2=ON -DCMAKE_INSTALL_PREFIX=~/AudioCodecs/ ..

# Step 4: Build and install
cmake -build . -config release -target install -- -j 2
#   Tip: instead of "release" you can have "debug" to build debug versions. Instead of "2" put your actual count of CPU cores

macOS

The build for macOS is very similar to Linux way, you just can follow Linux way to build libraries.

If you want to use the system-wide SDL2 instead of local, you should install it via Homebrew or by any other way.

Windows

You will need:

  • CMake >= 3.2
  • MinGW >= 4.8, MinGW-w64 >= 5, or MSVC >=2015 (on your taste).
  • The local or downloaded SDL2 will require the MinGW-w64 or MSVC instead of vanilla MinGW as current version is incompatible to the vanilla MinGW.

Build with MinGW

rem Step 1: Download repository
git clone https://github.com/WohlSoft/AudioCodecs.git
cd AudioCodecs

rem Step 2: PRepare build directory
mkdir build
cd build

rem Step 3: Configure project (build a basic set of decoders)
cmake -G "MinGW Makefiles" -DUSE_LOCAL_SDL2=ON -DCMAKE_INSTALL_PREFIX=%UserProfile%\MyLibs\ ..

rem Step 4: Build and install
cmake -build . -config release -target install -- -j 2
rem Tip: instead of "release" you can have "debug" to build debug versions. Instead of "2" put your actual count of CPU cores

Build with MinGW-w64 (A way to get 64-bit Windows assemblies)

rem Step 1: Download repository
git clone https://github.com/WohlSoft/AudioCodecs.git
cd AudioCodecs

rem Step 2: Prepare build directory
mkdir build
cd build
rem Important: You must to set the MinGW-w64 path first, also you must to remove a git from PATH if it is set
rem Full path may be different in dependence of version. Please fix this to match with your
set PATH=C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH:C:\Program Files\Git\usr\bin;=%

rem Step 3: Configure project
cmake -G "MinGW Makefiles" -DUSE_LOCAL_SDL2=ON -DCMAKE_INSTALL_PREFIX=%UserProfile%\MyLibs\ ..

rem Step 4: Build and install
cmake -build . -config release -target install -- -j 2
rem Tip: instead of "release" you can have "debug" to build debug versions. Instead of "2" put your actual count of CPU cores

Build with MSVC

rem Step 1: Download repository
git clone https://github.com/WohlSoft/AudioCodecs.git
cd AudioCodecs

rem Step 2: Prepare build directory
mkdir build
cd build

rem Step 3: Configure project
cmake -G "Visual Studio 14 2015" -DDOWNLOAD_SDL2_DEPENDENCY=ON -DCMAKE_INSTALL_PREFIX=%UserProfile%\MyLibs\ ..
rem HINT: If you want to have 64-bit build, use "Visual Studio 14 2015 Win64" generator
rem HINT: You can take full list of available generators by requesting of "cmake --help"

rem Step 4: Build and install
cmake -build . -config release -target install -- -j 2
rem Tip: instead of "release" you can have "debug" to build debug versions. Instead of "2" put your actual count of CPU cores

Licenses

  • libADLMIDI: GNU LGPLv3+ or GNU GPLv3+
  • libFLAC: Multiple: BSD 3-clause "New" or "Revised" License (libFLAC, libFLAC++), GNU GPL (extra plugins and tools)
  • libFluidLite: GNU LGPLv2.1+
  • libEDMIDI: ZLib license
  • libGME: GNU LGPLv2.1+
  • libModPlug: Public Domain
  • libMPG123: GNU LGPLv2.1
  • libMP3Lame: GNU LGPLv2+
  • libOGG: BSD 3-clause "New" or "Revised" License
  • libOpenMPT: BSD
  • libOPNMIDI: GNU LGPLv3+ or GNU GPLv3+
  • libOpus: BSD 3-clause "New" or "Revised" License
  • libSDL2: ZLib
  • libTimidity-SDL: The "Artistic License"
  • libVorbis: BSD 3-clause "New" or "Revised" License
  • libWavPack: BSD 3-clause "New" or "Revised" License
  • libXMP: GNU LGPLv2+, partially MIT
  • libZlib: ZLib license

Libraries are can be freely used in non-free projects:

Static linking

(BSD, ZLib, and "Artistic" licenses are allows usage in closed-source projects)

  • libEDMIDI
  • libFLAC
  • libModPlug
  • libOGG
  • libOpenMPT
  • libOpus
  • libSDL2
  • libTimidity-SDL
  • libVorbis
  • libWavPack
  • libZlib

Dynamic linking

(LGPL allows usage in closed-source projects when LGPL-licensed components are linked dynamically)

  • libEDMIDI
  • libFLAC
  • libFluidLite
  • libGME
  • libModPlug
  • libMPG123
  • libMP3Lame
  • libOGG
  • libOpenMPT
  • libOpus
  • libSDL2
  • libTimidity
  • libVorbis
  • libWavPack
  • libXMP
  • libZlib

GPL-only projects

(These libraries has the viral GPL license and you can use these libraries in libre projects only with applying the GPL license to the whole project)

  • libADLMIDI
  • libOPNMIDI