Overview
********

A Little Bit About Me (author of original manual)

I am currently, as I write this document, a programmer for Raytheon. There I do all sorts of communications, network, GUI, and other general programming tasks in C/C++ on the Solaris and sometimes Linux Operating Systems. I have been programming sound code in my free time for only a little while now. Sound is an integral part to any game.  The human senses are mostly starved during video game play.  there's only some tactile feedback on some controlers, and of course the eyes are in use but only for about 30% of their viewing area. So to add more we do need sound to help the game player feel more in the action, and to set certain moods as the game progresses.  Sound ends up accounting for perhaps 50% or more of a gamers experience.  Music and sound effects are all integral parts of the gaming experience.  While this document doesn't explain how to get music and samples to use, it will explain how to use them with SDL_mixer.

Feel free to contact me: JonathanCAtkins@gmail.com

I am also usually on IRC at irc.freenode.net in the #SDL channel as LIM

This is the README in the SDL_mixer source archive.

SDL Mixer X

The latest version of this library is available from:

SDL Mixer X GitHub repository (https://github.com/WohlSoft/SDL-Mixer-X)

Due to popular demand, here is a simple multi-channel audio mixer. It supports 8 or more channels of 16 bit or more stereo audio, plus a single or multiple channels of music, mixed by the popular LibXMP/ModPlug MOD, Timidity/FluidSynth MIDI (also, libADLMIDI and libOPNMIDI), OGG Vorbis, FLAC, Opus, and MPG123 MP3 libraries.

See the header file SDL_mixer_ext.h and the examples playwave.c and playmus.c for documentation on this mixer library.

The mixer can currently load Microsoft WAVE files and Creative Labs VOC files as audio samples, and can load MIDI files via Timidity/FluidSynth/libADLMIDI/libOPNMIDI and the following music formats via libXMP or ModPlug: .MOD .S3M .IT .XM. etc. It can load Ogg Vorbis / Opus / FLAC streams as music if built with related libraries, can play chiptunes via GME library if built with it, and finally it can load MP3 music using the DRMP3 or MPG123 library.

The process of mixing MIDI files to wave output in dependence on a synthesizer is very CPU intensive, so if playing regular WAVE files sound great, but playing MIDI files sound choppy, try using 8-bit audio, mono audio, or lower frequencies.

To play MIDI files with use of Timidity synthesizer, you'll need to get a complete set of GUS patches from: Timidity GUS Patches (http://www.libsdl.org/projects/mixer/timidity/timidity.tar.gz) and unpack them in /usr/local/lib under UNIX, and C:\ under Win32. Since SDL_mixer 2.x MIDI files can be played through native MIDI API of operating system (supported Windows, macOS and Haiku) or through FluidSynth. With SDL Mixer X fork you can use libADLMIDI and libOPNMIDI synthesizers are working always and doesn't requiring any external sound fonts or banks. libADLMIDI and libOPNMIDI are FM synthesizers using emulators of YMF232 by libADLMIDI (OPL3), and YM2612 (OPN2) or YM2608 (OPNA) by libOPNMIDI. With SDL Mixer X it's possible to switch MIDI synthesizer in real time while with original SDL Mixer it's only possible to set MIDI synthesizer by environment variable only in a moment of library loading.

The SDL_mixer 1.x library is available under the GNU Library General Public License, see the file "COPYING" for details.

The SDL_mixer 2.x and SDL Mixer X fork library is available under the ZLib License, see the file "COPYING" for details.