OpenMPT Module Decoder

By: Peter

Version: 0.6.0, released on 2021-12-27 (archived)

Change log:

  • [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] TakeTracker MODs with TDZ1 to TDZ3 magic bytes are now supported.
  • [Change] libopenmpt no longer generates internal interpolation tables on library load time, but instead only on first module load time.
  • 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.
  • 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).

Supported processor architecture: x86 32-bit.

Works with foobar2000 v1.6 and newer


View version history
View latest version and component description

How to install a component?