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

libopenmpt 0.8.0 (2025-05-31)

  • [New] Can now read PumaTracker (PUMA) modules.
  • [New] Can now read Face The Music (FTM) modules.
  • [New] Can now read Future Composer (FC / FC13 / FC14 / SMOD) modules.
  • [New] Can now read Game Music Creator (GMC) modules.
  • [New] Can now read Chuck Biscuits / Black Artist (CBA) modules from the Expoze musicdisk by Heretics
  • [New] Can now read Real Tracker 2 (RTM) modules.
  • [New] Can now read Images Music System (IMS) modules.
  • [New] Can now read ChipTracker (MOD) modules.
  • [New] Can now read TCB Tracker (MOD) modules.
  • [New] Can now read EasyTrax (ETX) modules.
  • [New] Can now load UNIC Tracker v1 (UNIC) files.
  • [New] MED: Synthesized and hybrid instruments are now supported.
  • [New] GT2: Better support for old “envelopes”, in particular adding support for the previously missing tremor / tremolo / vibrato.
  • [New] NST: His Master’s Noise “Mupp” instruments are now supported, as well as command 7 “mega-arp”.

  • [New] Makefile CONFIG=djgpp now supports building LGPL libraries as DXE (use ENABLE_DXE=0 to disable).
  • [New] New Makefile CONFIG=mingw-w64 option WINDOWS_CRT=[crtdll,msvcrt,ucrt] to select the toolchain CRT library.
  • [New] 32bit ARM builds now support Windows 8 (Windows RT) again.
  • [New] libopenmpt: New APIs for determining whether order list entrys or pattern indices have a special meaning: openmpt::module::is_order_skip_entry(), openmpt::module::is_pattern_skip_item(), openmpt::module::is_order_stop_entry(), openmpt::module::is_pattern_stop_item() (C++), and openmpt_module_is_order_skip_entry(), openmpt_module_is_pattern_skip_item(), openmpt_module_is_order_stop_entry(), openmpt_module_is_pattern_stop_item() (C).
  • [New] libopenmpt: New APIs for retrieving pattern time signature information: openmpt::module::get_pattern_rows_per_beat(), openmpt::module::get_pattern_rows_per_measure() (C++), and openmpt_module_get_pattern_rows_per_beat(), openmpt_module_get_pattern_rows_per_measure() (C).
  • [New] libopenmpt: New APIs for retrieving the restart / loop position: openmpt::module::get_restart_order(), openmpt::module::get_restart_row() (C++), and openmpt_module_get_restart_order(), openmpt_module_get_restart_row() (C).
  • [New] libopenmpt: New API for retrieving the playback time at a given order / row combination: openmpt::module::get_time_at_position() (C++), and openmpt_module_get_time_at_position() (C).

  • [Change] DOS builds now use zlib, libmpg123, libogg, and libvorbis instead of miniz, minimp3, and stb_vorbis by default.
  • [Change] Makefile CONFIG=djgpp now sets ALLOW_LGPL=1 by default.
  • [Change] build/download_externals.sh now verifies the integrity of any downloaded files and uses curl instead of wget.

  • [Regression] Support for Emscripten versions older than 3.1.51 has been removed.
  • [Regression] Using EMSCRIPTEN_PORTS=1 with Emscripten older than 3.1.54 now requires additionally specifying ANCIENT=1.

  • When formatting pattern data, effect letters in the volume column are now always formatted correctly, regardless of the module format.
  • IT: Various playback fixes.
  • IT: When using tone portamento to another sample after the previous sample’s sustain loop has been released, the new sample should also not play its sustain loop.
  • IT: When triggering an empty instrument note slot, completely ignore the pattern cell - do not reset the currently playing instrument’s envelopes, and also don’t process any effects - including global ones.
  • IT: Offset with instrument number but no note should play offset effect with previous note.
  • IT: Fixed various combinations of volume column and effect column portamento effects.
  • IT: Implemented a quirk in command Lxx that always executes a portamento down when no tone portamento has been set up before, sometimes causing the target note to be reached immediately, or sliding the note down very subtly.
  • IT: Envelope Carry should not be influenced by a previous note-off.
  • XM: When a key-off is encountered before auto-vibrato reaches full depth, the depth is reset.
  • S3M: Combined slides (Kxy / Lxy) are no longer run on the first tick of a row in files made with Scream Tracker.
  • MOD: Groo’s “The Ultimate Beeper” now plays like in ProTracker.
  • DTM: Portamentos are now also evaluated on the first tick of the row.
  • MO3: If multiple sample slots shared the same Ogg Vorbis sample, only one sample slot was loaded.
  • MED: Various playback fixes.
  • SymMOD: Files containing more than 127 channels are no longer rejected.
  • Better support for automatic slide commands (commands that keep sliding on following rows) in various formats.
  • The pattern channel limit was raised from 127 to 192 for some formats.

  • openmpt123: Multi-threaded encoding is enabled with libFLAC 1.5.0 or newer.

  • xmp-openmpt: Memory consumption during file loading has been reduced.

  • zlib: v1.3.1 (2024-01-22).
  • mpg123: v1.32.10 (2024-12-14).
  • ogg: v1.3.5 (2021-06-04).
  • vorbis: v1.3.7 (2020-07-04).
  • miniz: v2.2.0 (2021-06-27).
  • minimp3: fork https://github.com/manxorist/minimp3/releases/tag/openmpt-2024-08-15-v4 commit 2116754771b79347ad2f39127abace2a093c383e (2024-08-15).
  • stb_vorbis: v1.22 commit 5a0bb8b1c1b1ca3f4e2485f4114c1c8ea021b781 (2021-07-12).
  • pugixml: v1.15 (2025-01-10).
  • flac: v1.5.0 (2025-02-11).
  • 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.8.0
    • Current stable version.
    • Receives security updates.
    • Receives minor playback fixes.
  • libopenmpt 0.7.13
    • Old stable version.
    • Receives security updates.
    • Receives trivial bug fixes.
  • libopenmpt 0.6.22
    • Old stable version.
    • Receives security updates.
    • Receives trivial bug fixes.
  • libopenmpt 0.5.36
    • Old stable version.
    • Receives security updates.
    • Receives trivial bug fixes.
  • libopenmpt 0.4.48
    • Old stable version.
    • Receives security updates.
    • Receives trivial bug fixes.
  • libopenmpt 0.9 (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.