MikMod homepage

What is MikMod? | News | Features | Screenshots | License | Files | Version Control | Documentation | Mailing list | Ports and other versions | Where to get music

What is MikMod?

Mikmod is a module player and library supporting many formats, including mod, s3m, it, and xm. Originally a player for MS-DOS, MikMod has been ported to other platforms, such as Unix, Macintosh, BeOS, and Java(!!)

Mikmod main authors are Jean-Paul Mikkers (MikMak), Jake Stine (Air Richter) and Frank Loemker. Steve McIntyre was the first Unix maintainer, followed by Peter Amstutz, Miodrag Vallat and finally Raphaël Assénat.

Unfortunately, since Raphaël Assénat did not have enough free time to work on MikMod those days, releases somewhat came to an halt. This is why he handed the baton to Shlomi Fish in order to add new features, fix bugs and bring the project further. As of September 2013, Shlomi handed the baton to Ozkan as the maintainer for the project.

Back to the MikMod Homepage

News

Fri March 20 2014:   libmikmod-3.3.6 is released:

This is a bug fix/maintenance release for the current libmikmod3 series. Upgrading is encouraged.

Download from here:
http://sourceforge.net/projects/mikmod/files/libmikmod/3.3.6/

Here is the ChangeLog:

- UMX loader: Minor corrections to the container parse code with
  relation to upkg file format. (for correctness' sake only...)
- ALSA and ESD drivers: Fixed a dlopen() issue.
- PulseAudio driver: Simplified its command line parser procedure,
  so that it always sets server and sink to some value, NULL or
  otherwise, and fix a very minor memory leak on some occasions.
- Configury, OSS driver: Removed useless check for /dev/sndstat
  presence, added <soundcard.h> check to cover all our bases for
  less common setups.
- Configury, NAS driver: Use the configury detected X header and
  library locations when necessary, not just hardcoded /usr/X11R6/.
- Several configury and makefile clean-ups.
- Added Dreamcast driver from the old 3.2.0b2 dreamcast.es port.

Fri March 20 2014:   libmikmod-3.1.17 is released:

This is a bug fix/maintenance release for the old libmikmod-3.1.x, i.e. the libmikmod2 series. Users of libmikmod2 are encouraged to upgrade.

Download from here:
http://sourceforge.net/projects/mikmod/files/libmikmod/3.1.17/

Here is the ChangeLog:

- ALSA and ESD drivers: Fixed a dlopen() issue.
- Configury, OSS driver: Removed useless check for /dev/sndstat
  presence, added <soundcard.h> check to cover all our bases for
  less common setups.
- Several configury and makefile clean-ups.

Fri Jan 10 2014:   libmikmod-3.3.5 is released:

This is a bug fix/maintenance release for the current libmikmod3 series. Upgrading is encouraged.

Download from here:
http://sourceforge.net/projects/mikmod/files/libmikmod/3.3.5/

Here is the ChangeLog:

- New PulseAudio driver for audio output, using pa_simple_* api.
- Improved ALSA driver.
- mikmod.texi: Fixed document generation using newer texinfo.
- Updates and fixes to configury (autotools) and to cmake support.
  Cmake support covers more targets and options now.
- Made the aiff, wav and raw file writer drivers configurable: the
  library can be configured and compiled without any audio output
  drivers if so required, except for drv_nos ('nosound') of course.
- DOS (djgpp): fixed the sound blaster SB16 driver.
- Fixed a few potential sources of crash, several code clean-ups.
- Minor compilation fixes against ancient software versions.
- Merged an updated gp32 driver (it is still an untested driver...)

Fri Jan 10 2014:   libmikmod-3.1.16 is released:

This is a bugfix/maintenance release for the old libmikmod-3.1.x, i.e. the libmikmod2 series. Users of libmikmod2 are encouraged to upgrade.

Download from here:
http://sourceforge.net/projects/mikmod/files/libmikmod/3.1.16/

Here is the ChangeLog:

- Improved ALSA driver.
- mikmod.texi: Fixed document generation using newer texinfo.
- Updates and fixes to configury (autotools).
- Made the wav and raw file writer drivers configurable: the library
  can be configured and compiled without any audio output drivers if
  so required, except for drv_nos ('nosound') of course.
- Minor compilation fixes against ancient software versions.
- Backported pkg-config file and rpm spec file from HEAD branch.

Fri Jan 10 2014:   MikMod player v3.2.5 is released:

This is a minor bug fix/maintenance release.

Download from here:
http://sourceforge.net/projects/mikmod/files/mikmod/3.2.5/

Here is the ChangeLog:

- New CMake build system.
- Small autotols updates.
- Fix configury $datadir variable expansion in PACKAGE_DATA_DIR.
- Fix ALSA driver options menu for libmikmod2 versions >= 3.1.13.
- Fix compilation against ancient libmikmod1 versions <= 3.1.6.
- Several code clean-ups.

Sun Dec 08 2013:   libmikmod-3.3.4 is released:

This is a bug fix/maintenance release for the current libmikmod3 series. Upgrading is recommended.

Download from here:
http://sourceforge.net/projects/mikmod/files/libmikmod/3.3.4/

Here is the ChangeLog:

- libmikmod.m4: fixed so that it works with C++ compilers.
- cmake: fixed a cpack version number issue.
- Fix CVE-2006-3879 (Secunia 21196) for Graoumf tracker (gt2) loader.
  (the loader is non-functional yet but the issue was there.)
- Fix memory leaks in the Graoumf tracker (gt2) loader.
- UMX loader: Support umx music files from Unreal 1997/98 beta version.
- S3M loader: Enforce the 64000 bytes sample length limit, which has
  been in effect since libmikmod-v3.1.10, only for tracker id 1, i.e.
  only if setting the S3MIT_SCREAM flag during track conversion. Fixes
  playback of some rare brokenly prepared files - e.g. Arena2.umx from
  the unreal game community add-on level decyberduel.
- ULT loader: Fix version array size (was 1 less then its initializer.)
- ESD driver: Fix signature for esd_playstream function pointer (const)
- ALSA driver: Remove unused function pointers.
- The library is compilable using C++ compilers.

Sun Dec 08 2013:   libmikmod-3.1.15 is released:

This is a bugfix/maintenance release for the old libmikmod-3.1.x, i.e. the libmikmod2 series.

Download from here:
http://sourceforge.net/projects/mikmod/files/libmikmod/3.1.15/

Here is the ChangeLog:

- libmikmod.m4: fixed so that it works with C++ compilers.
- S3M loader: Enforce the 64000 bytes sample length limit, which has
  been in effect since libmikmod-v3.1.10, only for tracker id 1, i.e.
  only if setting the S3MIT_SCREAM flag during track conversion.
- ULT loader: Fix version array size (was 1 less then its initializer.)
- ESD driver: Fix signature for esd_playstream function pointer (const)
- ALSA driver: Remove unused function pointers.

Tue Oct 15 2013:   libmikmod-3.3.3 is released:

This is a bug fix/maintenance release, with a new loader for umx files as the new feature. Upgrading is recommended.

Download from here:
http://sourceforge.net/projects/mikmod/files/libmikmod/3.3.3/

Here is the ChangeLog:

- New loader to load modules contained in UMX files from games like
  Unreal, DeusEx, etc. (Developers: custom MREADER implementations
  must respect the 'iobase' field for umx loading to work for them.
  see the splayMEM example app source.)
- AIFF file writer now silently ignores and clears float output mode.
- Fixed a small memory leak in samples freeing (thanks to S. Michel.)
- Fixed calling the previous position while at position 0 resulting
  in an invalid read. (noticed while running mikmod under valgrind.)
- Memory reader now fills the available bytes to destination buffer
  when a short read is happening, while still returning false.
- Memory reader now respects the iobase value of the reader struct.
  (doesn't change normal behavior, but may help with new features.)
- Updated simpleplayMEM example application.
- Fix return types for MREADER->Seek and MWRITER->Put to be int, and
  not BOOL. (identical functionality but non-misleading.)
- Documentation fixes with relation to free()/MikMod_free().
- Marked the SIMD (SSE2/AltiVec) option as unstable in the makefiles
  and configury/cmake: not recommended until it is fixed properly.
- Provided new Visual Studio 6 and Visual Studio 2005 project files.
  The latter imports into newer Visual Studio versions, e.g. VS2012.
- Fixed some driver version signatures which I missed changing in the
  previous release. (cosmetic change.)

Tue Oct 15 2013:   MikMod player v3.2.4 is released:

This is a minor bug fix/maintenance release.

Download from here:
http://sourceforge.net/projects/mikmod/files/mikmod/3.2.4/

Here is the ChangeLog:

- Addressed some snprintf issues and MSVC6 compilation issues.
- New MSVC6 and VS2005 project files. The latter imports into newer
  Visual Studio versions, e.g. VS2012.
- Use MikMod_free() on the string returned by Player_LoadTitle() if
  it is available.
- Fixed some compiler warnings, minor cleanups.

Tue Oct 15 2013:   libmikmod-3.1.14 is released:

This is a bugfix/maintenance release for the old libmikmod-3.1.x series.

Download from here:
http://sourceforge.net/projects/mikmod/files/libmikmod/3.1.14/

Here is the ChangeLog:

- Fixed a small memory leak in samples freeing (thanks to S. Michel.)
- Fixed calling the previous position while at position 0 resulting
  in an invalid read. (noticed while running mikmod under valgrind.)
- Fix return types for MREADER->Seek and MWRITER->Put to be int, and
  not BOOL. (identical functionality but non-misleading.)
- Provided new Visual Studio 6 and Visual Studio 2005 project files.
  The latter imports into newer Visual Studio versions, e.g. VS2012.

Sat Oct 05 2013:   libmikmod-3.3.2 (final) is released:

This is a serious bug fix release after the previous 3.2.0 series, with additional new features. All who are using libmikmod-3.2.0 (or the interim 3.3.1-beta) must upgrade to the new libmikmod-3.3.2 version.

Download from here:
http://sourceforge.net/projects/mikmod/files/libmikmod/3.3.2/

Here is the ChangeLog:

NEW FEATURES

- New CMake build system.
- Updated configury, support for cross-compilation, support for building
  in a separate directory, support latest autotools.
- New SDL driver - works both with SDL-1.2.x and with SDL2, supports
  floating point output if compiled against SDL2.
- New OpenAL driver, originally suggested by 'kervala', with fixes and
  updates and with floating point output support.
- The multi-platform SDL and OpenAL drivers, if they are compiled, have
  priority over OS-specific hw drivers for MikMod_RegisterAllDrivers().
- New windows xaudio2 driver, originally suggested by 'honza.c', with
  updates, xaudio2.8 support and with floating point output support.
- ALSA driver now supports only the contemporary ALSA 1.0.x versions.
  All of the ancient ALSA 0.3.x-0.4.x code were removed.
- Floating point output mode support for ALSA, OSS, Direct Sound, WinMM
  drivers and for WAV file writer.
- The pipe and stdout drivers are now configurable
- Raw file-writer now has the lowest priority among the file-writers.
- GCC elf and macho symbol visibility attributes now supported.
- Windows: dllexport/dllimport attributes work properly for MinGW[-w64],
  as well as windows compilers. Static builds using MSVC, LCC, etc are
  now named mikmod_static.lib. When compiling against static libmikmod,
  MIKMOD_STATIC should be defined so that dllimport wouldn't be assumed.

BUGFIXES

- ALSA fixes from Fedora.
- ALSA fixes for "Write error: File descriptor in bad state" crashes,
  e.g. RedHat bug #915121. Now works stable.
- ESD (esound) updates from Fedora. Add esd back to configury which was
  removed in 3.2.0b3, now requiring >= 0.2.18.
- Minor OSS fixes.
- The NAS driver now actually compiles.
- 64 bit detection fixes.
- Fix BOOL type use all over the source.
- Several const correctness fixes.
- Fixes for CVE-2007-6720 and CVE-2009-0179.
- mmio: memreader fixes and updates.
- Fixes for access violations introduced in 3.2.0b3.
- Fixes for broken memory allocation wrappers introduced in 3.2.0b3.
- Fix MikMod_strerror() might read beyond end of a static array.
- Fix looping volume in Player_SetVolume(), based on an old patch by
  Yi-Huang Han.
- XM loader now reads songlength amount of orders from the file and
  then seeks to mh->headersize+60 (sf.net bug #10.)
- Fix "unclick" code to consider loop lengths shorter than 16: fixes
  crashes seen with several xm files (sf.net bug #12, mpd bug #3425.)
- Mac OS X: new standalone makefile with cross-compilation support.
- DJGPP build fixes.
- Windows: fixes/updates, win64 fully supported. MinGW[-w64] fully
  supported along with MSVC and LCC. new standalone MinGW makefile with
  cross-compilation support.
- SIMD (AltiVec and SSE2) option is now disabled by default. Can be
  enabled by --enable-simd configury option, similarly with cmake. (the
  standalone makefiles or project files are added instructions on how to
  enable the feature if required.)
- Many compiler warning fixes, other small cleanups.

Sat Oct 05 2013:   MikMod player v3.2.3 is released:

This is a maintenance release to fix minor bugs since mikmod-3.2.2.

Download from here:
http://sourceforge.net/projects/mikmod/files/mikmod/3.2.3/

Here is the ChangeLog:

- Made MikMod compilable against older versions of libmikmod
  without MikMod_Free().
- Fixed a minor buffer overrun (sf.net bug #2).
- Fixed a minor string format issue.
- Updated configury to support latest autotools.
- Fixed djgpp builds.
- Fixed windows mingw builds, proper win64 support.

Sat Oct 05 2013:   libmikmod-3.1.13 is released:

This is a bugfix/maintenance release for the old libmikmod-3.1.x series. Users of libmikmod-3.1.x are recommended to update.

Download from here:
http://sourceforge.net/projects/mikmod/files/libmikmod/3.1.13/

Here is the ChangeLog:

BUGFIXES backported from the HEAD branch:

- 64 bit detection fixes.
- Fixes for CVE-2007-6720, CVE-2009-0179, CVE-2009-3995, CVE-2010-2546.
- Fix MikMod_strerror() might read beyond end of a static array.
- Fix looping volume in Player_SetVolume(), based on an old patch by
  Yi-Huang Han.
- Fix "unclick" code to consider loop lengths shorter than 16: fixes
  crashes seen with several xm files (sf.net bug #12, mpd bug #3425.)
- XM loader now reads songlength amount of orders from the file and
  then seeks to mh->headersize+60 (sf.net bug #10.)
- A double driver registration fix.
- MikMod_InfoDriver and MikMod_InfoLoader list print fixes.
- Fix a possible crash on accessing the samples menu in mikmod.
- Fix wav file writer for big endian platforms.
- Fix wav file writer to output a correct rifflength in header.

CLEANUPS backported from the HEAD branch:

- Updated configury, proper support for cross-compilation, support for
  building in a separate directory, support latest autotools.
- Fix BOOL type use all over the source.
- Multiple compiler warning fixes, other small cleanups.

PLATFORM SPECIFIC stuff backported from the HEAD branch:

- Linux: backport ALSA driver from HEAD branch to support contemporary
  ALSA versions.
- Unix: ESD driver updates from Fedora, now require >= 0.2.18.
- Unix: minor OSS fixes.
- Windows: fixes/updates, win64 fully supported. MinGW[-w64] fully
  supported along with MSVC and LCC. new standalone MinGW makefile with
  cross-compilation support.
- Windows: dllexport/dllimport attributes work properly for MinGW[-w64],
  as well as windows compilers. Static builds using MSVC, LCC, etc are
  now named mikmod_static.lib. When compiling against static libmikmod,
  MIKMOD_STATIC should be defined so that dllimport wouldn't be assumed.
- GCC elf and macho symbol visibility attributes now supported.
- Linux: the old Alsa-0.3.x/0.4.x driver is now retired.  the source is
  still in the drivers directory but not tested, nor will be maintained
  any more.
- Linux: the old sam9407 and ultra drivers haven't been maintained for
  quite some time and they now default to disabled in the configury.
  the ultra driver had got an update in the 3.2.0 releases, which won't
  be back merged.
- Misc: the pipe and stdout drivers are now configurable.

Sat Sep 28 2013: The MikMod home page is now setup here at sourceforge: http://mikmod.sourceforge.net/

For older news, see the older news page.

Back to the MikMod Homepage

Features

  • Support for the following modules formats:
    669 (Composer 669, Unis 669), AMF (DSMI Advanced Module Format), AMF (ASYLUM Music Format V1.0), APUN (APlayer), DSM (DSIK internal format), FAR (Farandole Composer), GDM (General DigiMusic), IT (Impulse Tracker), IMF (Imago Orpheus), MOD (15 and 31 instruments), MED (OctaMED), MTM (MultiTracker Module editor), OKT (Amiga Oktalyzer), S3M (Scream Tracker 3), STM (Scream Tracker), STX (Scream Tracker Music Interface Kit), ULT (UltraTracker), UNI (MikMod), XM (FastTracker 2)
  • Can play files in archives formats: zip, lha, lzh, zoo, rar, gz, bz2, tar, tar.gz and tar.bz2
  • Curses player interface. With optional color and themes.
  • Playlist support.
  • Configuration file.
  • Works on most Unixes and win32

Back to the MikMod Homepage

Screenshots

Here are screenshots of the dynamic sample and instruments panels, volume bars panel, file selector and the theme editor added in mikmod 3.2.2:
dynamic sample panel screenshot thumnail volume bars panel screenshot thumnail filechooser screenshot theme editor screenshot
(libmikmod >= 3.2.0 required for dynamic samples panel, dynamic instruments panel and volume bars panel).

Here is a screenshot of the new color interface in version 3.2.0:
screenshot

Back to the MikMod Homepage

License

libmikmod is released under the terms of the GNU Lesser General Public License (LGPL).
mikmod is released under the terms of the GNU General Public License (GPL).

Back to the MikMod Homepage

Files

Releases here are source only.
For previous releases, visit the previous releases page.

Filename Released Description Size
Player (Mikmod)
mikmod-3.2.5.tar.gz 10 Jan 2014 New color interface by Andrew Zabolotny, with themes (built-in editor), file selector, recursive directory scanning, threaded player. If built with libmikmod3, samples and instrument panels are dynamic, and there is a new volume bar panel. Proper win64 support. New CMake build system. Several bug fixes. See the NEWS for more details. Checksums:
4feecb96bce8d5a4d52cc60c7cbe3b24 - MD5
da2b4b13f769a7c54119869851c8e6b9a6ca812b96fe5e2c5394441722e4e383 - SHA-256.
Library (libmikmod)
libmikmod-3.3.6.tar.gz 20 Mar 2014 Latest version of libmikmod3. New PulseAudio driver, an improved ALSA driver, DJGPP fixes, CMake and configury updates, several bug fixes since the previous 3.3.5. See the NEWS file for more details. Checksums:
9dd9bed30c6f7607a55480234606071b - MD5
3f363e03f7b1db75b9b6602841bbd440ed275a548e53545f980df8155de4d330 - SHA-256.
libmikmod-3.1.17.tar.gz 20 Mar 2014 Latest libmikmod2 release. Fixes several bugs, backports a new improved ALSA driver, etc., to keep the 3.1.x series up to date. See the NEWS file for more details. Checksums:
89b4f370ea1771c99e607cc6d7aff435 - MD5
190cfb80b368debbf005612c9810d6a32f929ba3b1ec0970d71bac9a16fb5e4d - SHA-256.

All current and previous releases can also be downloaded from here:
http://sourceforge.net/projects/mikmod/files/

Back to the MikMod Homepage

Version Control

libmikmod and mikmod's sources are available from its new Mercurial repository (based on the new SourceForge interface). In order to checkout the sources by cloning the repository, use the following command:

hg clone http://hg.code.sf.net/p/mikmod/mercurial mikmod

Back to the MikMod Homepage

Documentation

Online documentation. This is the same doc as found inside the docs/ subdir of libmikmod releases.

Documentation for libmikmod3, latest version 3.3.6 (160k single html page).
And here it is in pdf format: mikmod-3.3.6.pdf

Documentation for the old 3.1.x series (libmikmod2) version 3.1.17 (152k single html page).
And here it is in pdf format: mikmod-3.1.17.pdf

Back to the MikMod Homepage

Mailing list

There's a mailing list (mikmod-public) for discussing the development of MikMod (new features, bugs, ideas...)

To subscribe, visit https://lists.sourceforge.net/lists/listinfo/mikmod-public.

To read the existing messages archive, visit http://sourceforge.net/p/mikmod/mailman/mikmod-public/.

Back to the MikMod Homepage

Ports and other versions

Mikmod for the Macintosh:
http://www.algonet.se/~afb/mikmod/

MikMod for OS/2:
http://members.rogers.com/kevin-langman/MikMod.html

Mikmod for Java:
jmikmod.berlios.de

old MikMod for Unix page:
http://www.tfn.net/~amstpi/mikmod.html

libMikMod based player for the GP32 handheld called MikPlay32:
http://www.cs.vu.nl/~cvwalta/?option=articles/gp32

TCL bindings:
http://scripts.one.pl/tclmod

Back to the MikMod Homepage

Where to get music

www.modarchive.com Over 10 GB in more than 28k compressed files.

www.mirsoft.info/gamemods.php If you appreciate game music as much as I do, you will be pleased with all the good old game tunes available on this website.

Back to the MikMod Homepage


Page by Shlomi Fish

Get MikMod at SourceForge.net. Fast, secure and Free Open Source software downloads

Link to us!:
mikmod mikmod mikmod mikmod mikmod mikmod

Valid HTML 4.01!   Vim icon

vorc