The OpenMPT/libopenmpt project released the new stable libopenmpt version 0.6:

libopenmpt 0.6.0 (2021-12-23)

  • [New] MUS files from Psycho Pinball and Micro Machines 2 are now supported.
  • [New] SymMOD files created with Symphonie / Symphonie Pro are now supported.
  • [New] FMT files created with Davey W Taylor’s FM Tracker are now supported.
  • [New] DSYM files created with Digital Symphony are now supported.
  • [New] STX files (transitional format between Scream Tracker 2 and 3) are now supported.
  • [New] TakeTracker MODs with TDZ1 to TDZ3 magic bytes are now supported.
  • [New] openmpt123: openmpt123 will now expand file wildcards passed on the command line in Windows when built with MSVC.
  • [New] libopenmpt_ext: New interface interactive2 adding openmpt::ext::interactive2::note_off(), openmpt::ext::interactive2::note_fade(), openmpt::ext::interactive2::set_channel_panning(), openmpt::ext::interactive2::get_channel_panning(), openmpt::ext::interactive2::set_note_finetune(), and openmpt::ext::interactive2::get_note_finetune() (C++) and openmpt_module_ext_interface_interactive2.note_off(), openmpt_module_ext_interface_interactive2.note_fade(), openmpt_module_ext_interface_interactive2.set_channel_panning(), openmpt_module_ext_interface_interactive2.get_channel_panning(), openmpt_module_ext_interface_interactive2.set_note_finetune(), and openmpt_module_ext_interface_interactive2.get_note_finetune() (C).
  • [New] Makefile CONFIG=emscripten now supports EMSCRIPTEN_TARGET=audioworkletprocessor which builds an ES6 module in a single file with reduced dependencies suitable to be used in an AudioWorkletProcessor.
  • [New] Makefile CONFIG=emscripten now supports EMSCRIPTEN_PORTS=1 which uses dependencies (zlib, mp123, ogg, and vorbis) from Emscripten Ports instead of using miniz, minimp3, and stb_vorbis locally or building zlib, mp123, ogg, and vorbis locally.
  • [New] Makefile CONFIG=emscripten and CONFIG=djgpp can now build zlib, mpg123, and vorbis locally instead of only supporting miniz, minimp3, and stb_vorbis via ALLOW_LGPL=1.

  • [Change] Makefile CONFIG=emscripten now supports EMSCRIPTEN_TARGET=all which provides WebAssembly as well as fallback to JavaScript in a single build.
  • [Change] openmpt123: DOS builds now use the Mercury fork of liballegro 4.2 for improved hardware compatibility.
  • [Change] libopenmpt no longer generates internal interpolation tables on library load time, but instead only on first module load time.

  • [Regression] Makefile CONFIG=emscripten does not support EMSCRIPTEN_TARGET=asmjs or EMSCRIPTEN_TARGET=asmjs128m any more because support has been removed from current Emscripten versions.
  • [Regression] Support for GCC 7 has been removed.
  • [Regression] Support for Clang 5, 6 has been removed.
  • [Regression] Support for Emscripten versions older than 1.39.7 has been removed.
  • [Regression] Building with Android NDK older than NDK r19c is not supported any more.

  • libopenmpt can now detect infinite pattern loops and treats them as the song end. This means that setting a repeat count other than -1 now always guarantees that playback will eventually end. The song loop counter is decremented each time it ends up at the start of the infinite loop, so the song does not restart from the beginning even if the repeat count is not 0.
  • openmpt::module::set_position_seconds() accuracy has been improved for modules with pattern loops.
  • Samples played at the wrong volume when rendering modules in mono.
  • IT: Portamentos in files with Linear Slides disabled are now more accurate.
  • IT: Pitch/Pan Separation was affected by note-off commands, and wasn’t reset by panning commands like in Impulse Tracker.
  • IT: Even after libopenmpt 0.5.14 the filter reset logic was still not 100% identical to Impulse Tracker: A note triggered on tick 0 of a row with a Pattern Delay effect still caused the filter to be reset on repetitions of that row even though the note wasn’t retriggered.
  • IT: Added read-only support for BeRoTracker commands 1 and 2 (equivalent to XM commands K and L).
  • XM: BeRoTracker saves smooth MIDI macros in a different way from OpenMPT. This command is now imported correctly.
  • XM: Emulate FT2 Tone Portamento quirk that inverts portamento direction after the target was reached (if target note was higher than previous note).
  • S3M files saved with Impulse Tracker and latest Schism Tracker now also compute sample playback speed in Hertz.
  • Depending on whether an S3M file was last saved in Scream Tracker with the Sound Blaster or Gravis Ultrasound drivers loaded, different compatibility flags are now applied. For files saved with the GUS, the sample volume factor is now also ignored (fixes volume levels in S3Ms made on the GUS, in particular if they use both samples and OPL instruments).
  • S3M: Enforce the lower frequency bound.
  • MOD: Loosened VBlank timing heuristics so that the original copy of Guitar Slinger from Dizzy Tunes II plays correctly.
  • FAR: Correct portamento depth is now used.
  • DMF / IMF: Improved accuracy of finetune commands.
  • MDL: Implemented finetune command.
  • OKT: Various accuracy improvements such as: Sharing volume between mixed channels, volume commands on mixed channels are permanent (not reset with new notes), mixed channels do not support default sample volume, 7-bit samples are actually supposed to be played as-is (not amplified to full 8-bit range), reject speed command parameters >= 20.

  • zlib: v1.2.11 (2017-01-15).
  • mpg123: v1.29.3 (2021-12-11).
  • ogg: v1.3.5 (2021-06-04).
  • vorbis: v1.3.7 (2020-07-04).
  • miniz: v2.2.0 (2021-06-27).
  • minimp3: commit 50d2aaf360a53653b718fead8e258d654c3a7e41 (2021-11-27).
  • stb_vorbis: v1.22 commit 5a0bb8b1c1b1ca3f4e2485f4114c1c8ea021b781 (2021-07-12).
  • FLAC: v1.3.3 (2019-08-04).
  • PortAudio: v19.7.0 (2021-04-06).

Source code download links:

Binary download links:

Development library download links:

Documentation download links:


The following libopenmpt and libopenmpt-modplug versions are currently supported with security fixes by the OpenMPT/libopenmpt project:

  • libopenmpt 0.6.0
    • Current stable version.
    • Receives security updates.
    • Receives minor playback fixes.
  • libopenmpt 0.5.15
    • Old stable version.
    • Receives security updates.
    • Receives trivial bug fixes.
  • libopenmpt 0.4.27
    • Old stable version.
    • Receives security updates.
    • Receives trivial bug fixes.
  • libopenmpt 0.3.36
    • Old stable version.
    • Receives security updates.
    • Receives trivial bug fixes.
  • libopenmpt 0.7 (SVN trunk)
    • development
    • security updates
    • playback fixes
    • new features
    • new file formats
  • libopenmpt-modplug 0.8.9.0-openmpt1
    • Receives security updates.
  • libopenmpt-modplug 0.8.8.5-openmpt1
    • Receives security updates.

Please update to the newest versions.