SDL Mixer X (Or "MixerX" shortly) - An audio mixer library based on the SDL library, a fork of SDL_mixer
Find a file
Wohlstand 01d81b8f60
music.c: Added handling of HMI/HMP files for the future
It's active work on adding HMI and HMP formats support, once their support is fully implemented, they will start to work.
2025-11-05 11:31:23 +03:00
.semaphore Update Semaphore configuration 2023-08-08 08:21:14 +00:00
cmake Fixed build and link with system SDL2 2024-08-31 05:54:53 +03:00
docs Update copyright year for 2025 2025-01-01 01:55:06 +03:00
examples Implemented handling of KLM music format for the recent libADLMIDI 2025-09-20 03:24:21 +03:00
include SDL_mixer.h: Mark MIDI synthesizers by integer values explicitly 2025-10-15 22:12:20 +03:00
src music.c: Added handling of HMI/HMP files for the future 2025-11-05 11:31:23 +03:00
test mp3utils_test: Handle all test cases 2019-12-27 14:17:36 +03:00
VB6_Wrapper Update copyright year for 2025 2025-01-01 01:55:06 +03:00
.appveyor.yml Fixed build 2023-10-31 05:57:54 +03:00
.gitattributes Create .gitattributes 2020-12-05 03:57:10 +03:00
.gitignore Ignore "build17" directory 2022-05-28 22:52:26 +03:00
.travis.yml Travis-CI: Fix for macOS build 2018-01-21 09:40:07 +03:00
CHANGES.txt Synced minor tweaks from the official Mixer 2025-04-04 19:39:44 +03:00
CHANGES.X.txt Initial support for QOA files playback 2025-06-26 06:12:58 +03:00
CMakeLists.txt Added conditions for PSP 2025-09-24 01:48:50 +03:00
COPYING.txt Update copyright year for 2025 2025-01-01 01:55:06 +03:00
GPLv2.txt Initial commit 2017-07-31 00:32:19 +03:00
GPLv3.txt Initial commit 2017-07-31 00:32:19 +03:00
README.md Tweaked the readme 2023-02-25 22:47:34 +03:00
README.txt Removed MikMod support 2022-05-28 04:08:45 +03:00
SDL2_mixer_ext.License.txt Update copyright year for 2025 2025-01-01 01:55:06 +03:00
SDL2_mixer_ext.pc.in Added initial pkgconfig 2019-12-09 01:46:06 +03:00
SDL2_mixer_extConfig.cmake.in CMake fixes (#62) 2023-05-04 20:11:07 +03:00
version.rc Bump version to 2.8.0 2025-04-04 19:40:10 +03:00

SDL Mixer X

An audio mixer library, a fork of SDL_mixer library

Description

SDL_Mixer is a sample multi-channel audio mixer library. It supports any number of simultaneously playing channels of 16 bit stereo audio, plus a single channel of music, mixed by the popular FLAC, OPUS, XMP, ModPlug, Timidity MIDI, FluidSynth, Ogg Vorbis, FLAC, and MPG123 MP3 libraries.

SDL Mixer X - is an extended fork made by Vitaly Novichkov "Wohlstand" in 13 January 2015. SDL_mixer is a quick and stable high-quality audio library, however, it has own bunch of defects such as incorrect playback of some WAV files, inability to choose MIDI backend in runtime, inability to customize Timidity patches path, No support for cross-fade and parallel streams playing (has only one musical stream. Using of very long Chunks is ineffective), etc. The goal of this fork is to resolve those issues, providing more extended functionality than was originally, and providing support for more audio formats.

License

The library does use many dependencies licensed differently, and the final license depends on which libraries you'll use and how (statically or dynamically).

The license of the library itself is ZLib as the mainstream SDL_mixer.

Building

See the docs/index.md file for details.

List of libraries

There are libraries that keeps MixerX library under ZLib:

Static linking

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

  • libFLAC
  • libModPlug
  • libOGG
  • libOpus
  • libSDL2
  • libTimidity-SDL
  • libVorbis
  • libZlib
  • dr_mp3
  • dr_flac
  • stb-vorbis

LGPL-license libraries

LGPL allows usage in closed-source projects when LGPL-licensed components are linked dynamically. Note, once you link those libraries statically, the MixerX library gets LGPLv2.1+ license. They can be enabled if you set the -DMIXER_ENABLE_LGPL=ON CMake option.

  • libFluidLite
  • libGME when Nuked OPN2 or GEMS emulator is used
  • libMPG123
  • libXMP

GPL-license libraries

There are libraries making the MixerX being licensed as GPLv2+ or GPLv3+ with no matter how you will link them. They can be enabled if you set the -DMIXER_ENABLE_GPL=ON CMake option.

  • libADLMIDI
  • libOPNMIDI
  • libGME when MAME YM2612 emulator is used