Fork me on GitHub

Frequently Asked Questions

What does it play?

Currently, SoLoud includes support for various wav formats including 8, 16, 32 bit, float, double, pcmcia, etc., as well as Ogg Vorbis and MP3 files. Not all variants and features are supported, so you may experience some issues with strange files. As time has progressed, the libraries SoLoud uses to read these files have improved, but they are still not the reference libraries, so some strange variants may exist out there.

Additionally, SoLoud comes with a speech synthesizer based on rsynth, another primitive speech synth, a retro sound effect synthesizer Sfxr, replayer for MONOTONE PC-speaker tracker music, a replayer for C64 SID and Commodore plus/4 TED music, and a Commodore VIC emulator too.

Finally, SoLoud can use Openmpt through DLL interface, which can play 669, amf, ams, dbm, digi, dmf, dsm, far, gdm, ice, imf, it, itp, j2b, m15, mdl, med, mid, mo3, mod, mptm, mt2, mtm, okt, plm, psm, ptm, s3m, stm, ult, umx, wow and xm. (Note that Openmpt has a more restrictive license than SoLoud).

The interface for audio sources is relatively simple, so new formats and noise generators, as well as audio filters, can be made.

An example sin/saw/triangle/square generator is also available, as part of the "piano" example.

All of the above can also be fed through series of filters for additional fun.

What dependencies does it have?

There's no external library dependencies (apart from stdlib). However, to get audio out of your speakers, a back-end is needed. Back-ends that currently exist (but are not limited to) include SDL, windows multimedia, oss, alsa and portaudio, and SoLoud has been designed so that making new back-ends would be as painless as possible.

Is there a DLL / C-Interface?

Yes! This DLL can be used from non-c++ environments through the "C" interface. SoLoud comes with wrappers for Python, Ruby, c#, BlitzMax and others.

A fennec fox. Google it. They're cute!

Is there a mailing list?

There's a google group, at

Main development occurs on GitHub, at and the issue tracker is in use.

Finally, there's #soloud on ircnet, if you want to pop by.

No doxygen docs?

No, instead you get documentation written by an actual human being. Granted, some function descriptions may be a bit terse or repetitive, but that's what you would have gotten from doxygen too..

Why not use this superior fork of libmodplug?

I'm aware there are other forks of libmodplug, which may be in better shape than the one used by SoLoud by default. However, those forks use more restrictive licenses, which (while still liberal) would require changes in SoLoud licensing. At the moment, you don't need to mention the use of SoLoud anywhere if you don't want to.

That said, nothing's stopping you from compiling a version of SoLoud that uses another fork of libmodplug.

Why did SoLoud move to libmodplug?

Originally SoLoud used a public domain fork of modplug, but as time went on it became increasingly clear that instead of supporting SoLoud the author would have had to support modplug. At the same time better supported forks of modplug existed, so SoLoud was divorced from the modplug code, while making it possible to use modplug if needed.

Can SoLoud do HRTF?

Currently, no. Pull requests are welcome =)

All joking aside, there's no simple place to plug this in currently. It's a TODO item for the future.

What about surround speakers?

Yes. SoLoud supports 1, 2, 4, 5.1 and 7.1 configurations.

The way multi-speaker system is implemented in SoLoud, it would be relatively easy to add any number of speakers, but having more output channels also adds overhead. Most people will only ever use stereo output.

Are these real questions?

Surprisingly, yes.

Copyright©2013-2020 Jari Komppa