/SDL-Mixer-X

SDL Mixer X (Or "MixerX" shortly) - An audio mixer library based on the SDL library, a fork of SDL_mixer

Primary LanguageCOtherNOASSERTION

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