libopenmpt and openmpt123

Table of Contents

libopenmpt and openmpt123

About

OpenMPT based module player library and libopenmpt based command-line player

libopenmpt is a cross-platform C++ and C library to decode tracked music files (modules) [wikipedia] into a raw PCM audio stream.

openmpt123 is a cross-platform command-line or terminal based module file player.

libopenmpt is based on the player code of the OpenMPT project (Open ModPlug Tracker, https://openmpt.org/). In order to avoid code base fragmentation, libopenmpt is developed in the same source code repository as OpenMPT.

Language bindings are avilable for a variety of other programming languages.


[top]

News

2016-05-21

Version 0.2.6401-beta17 released. See changelog for details.

2015-11-22

Version 0.2.5787-beta16 released. See changelog for details.

2015-10-31

Version 0.2.5705-beta15 released. See changelog for details.

2015-09-13

Version 0.2.5602-beta14 released. See changelog for details.

2015-08-16

Version 0.2.5486-beta13 released. See changelog for details.


[top]

Download

0.2.6401-beta17 (2016-05-21)

Source

Binaries

Distribution packages

Software using libopenmpt

older versions

Development version

Source

Binaries


[top]

Documentation

Doxygen-generated


[top]

Development


[top]

FAQ

How is libopenmpt related to other descendants of ModPlug, in particular, libmodplug?

(mostly copied from https://openmpt.org/legacy_software)

In the mid-90s, Olivier Lapicque wrote the ModPlugin for web browsers, based on his previous Mod95 player. While GeoCities sites were still threatening their visitors with MIDI music and MP3 was not very common yet, this plugin brought the small module files into the world of websites.

Soon, Olivier began working on ModPlug Player. His goal was to spread out tracked music, taking it out of the DOS world, and trying to keep it free. This all-in-one module player quickly superseded the then popular Mod4Win player. It supported a wealth of module formats as well as sound enhancing effects like a graphic equalizer, reverb, bass expansion and automatic gain control. Although its development has been halted (the last version being from 2001), ModPlug Player is still one of the most remarkable (but not necessarily recommended) module players with unique and unmatched features like mixing two modules at the same time, adjusting their pitch and tempo independently, etc...

Shortly after, ModPlug Tracker development started. Together with Buzz, it was the first real tracker software for Windows. The first alpha and beta versions were released in late 1997. While it might have looked a bit different back then, it is still the base of OpenMPT and this is where it all started. ModPlug Tracker evolved over the years, until Olivier decided to release the source code to the public in 2004, so that other people could continue working on it. Previously developed under the name MPT Wild!, OpenMPT is today's most actively developed spin-off of ModPlug Tracker. There are other, mostly personal branches by individuals, for example modplug23, which is the origin of some of the earlier features added to OpenMPT.

But parts of the code have been opened before that. In December 1999, Olivier sent the module-playing parts of ModPlug Trackers's source code to Kenton Varda, licensed under the GPL, to write a plugin for XMMS based on the code. The source code was later released to the public domain, and the mod-playing code was split off into a separate library, libmodplug, maintained as part of the ModPlug XMMS Plugin project. Today, libmodplug comes pre-installed on many Linux distributions and serves as a base for many other players and trackers such as Schism Tracker.

In the following years, both Schism Tracker and OpenMPT progressed further regarding format support and playback accuracy compared to libmodplug. In 2013, the OpenMPT code base was refactored to support building a separate module playback library from the same source code base again. This library is called libopenmpt. In order to avoid possible future source code fragmentation, libopenmpt is, and will continue to be, developed together with OpenMPT itself in the same source code repository.

What are the differences between libopenmpt and libmodplug?

libopenmpt advantages:

libmodplug features missing in libopenmpt:

Is playback identical to OpenMPT?

For editing purposes, OpenMPT converts all formats into one of its five native formats (MOD, XM, S3M, IT, MPTM). libopenmpt does not need to do this, so some inaccuracies that are present in other formats might play just fine.

Furthermore, libopenmpt does currently not support VST plugins. Apart from this, libopenmpt and OpenMPT playback is practically identical.

How do I use xmp-openmpt in XMPlay for file types which are natively supported by XMPlay?

Set the file types you want to be handled by xmp-openmpt in the Priority filestypes box in the XMPlay plugin options for OpenMPT.

The full list of supported file types is:

mod s3m xm it mptm stm nst m15 stk wow ult 669 mtm med far mdl ams dsm amf okt dmf ptm psm mt2 dbm digi imf j2b gdm umx plm pt36 sfx sfx2 mms mo3 xpk ppm mmcmp

You should, at the very least, put mptm there, because XMPlay does not support all OpenMPT extensions and detects these files as it.

How do I use in_openmpt in Winamp for file types which are supported by the bundled in_mod.dll?

Just uninstall the bundled in_mod.dll plugin. in_openmpt should be able to handle all file formats which in_mod.dll supports.

How can I access plugin configuration in foo_openmpt?

Go to "File/preferences/Advanced/Decoding/OpenMPT Component".


[top]

Screenshots

openmpt123 on Linux

openmpt123 screenshot on linux

openmpt123 on Windows

openmpt123 screenshot on windows

xmp-openmpt for XMPlay on Windows

xmp-openmpt screenshot

[top]

Authors

We would like to thank all the other contributors to the OpenMPT project, including of course the original ModPlug author, Olivier Lapicque.


[top]

License

The OpenMPT code is licensed under the BSD license.

Copyright (c) 2004-2016, OpenMPT contributors
Copyright (c) 1997-2003, Olivier Lapicque
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.
    * Neither the name of the OpenMPT project nor the
      names of its contributors may be used to endorse or promote products
      derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

[top]

Related Software

ModPlug descendants

Other module players

ModPlug legacy (just for historic reason, you should not use those)


[top]