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 available for a variety of other programming languages.
Version 0.2.8043-beta23 released. See changelog for details.
Version 0.2.7774-beta22 released. See changelog for details.
Version 0.2.7561-beta20.5 released. See changelog for details.
Version 0.2.7386-beta20.3 released. See changelog for details.
Version 0.2.7299-beta20.2 released. See changelog for details.
Version 0.2.7025-beta20.1 released. See changelog for details.
Version 0.2.6774-beta20 released. See changelog for details.
Version 0.2.6664-beta19 released. See changelog for details.
Version 0.2.6611-beta18 released. See changelog for details.
Version 0.2.6401-beta17 released. See changelog for details.
libopenmpt.dllusable with MSVC 2010 C++, any C compiler and other language bindings.
svn checkout https://source.openmpt.org/svn/openmpt/trunk/OpenMPT/ openmpt-trunk
A more complete overview of the earlier ModPlug history can be found at https://openmpt.org/legacy_software.
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.
After ModPlug Tracker was open-sourced completely in 2004, OpenMPT development began, but initially no care was taken to keep the module-playing parts compilable as a separate library. 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.
libmodplug features missing in libopenmpt:
Yes. libopenmpt API and ABI for both, C and C++, are stable since version 0.2-beta1. They will both be supported and provided by future libopenmpt versions.
Programs will continue to build against later versions of the API and programs linked will continue to work with the ABI of later dynamic libraries. In case we add new API and/or ABI functionality, we will increase the minor version number. Libtool and .so versioning is also provided conciously.
The API and ABI of libopenmpt_ext is not stable and subject to change. However, the API and ABI provided by any particular interface ID will stay unchanged. Support for any interface ID may disappear. If changes to an interface are made, a new unique ID will be used.
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.
Set the file types you want to be handled by xmp-openmpt in the
Priority filestypes box in the XMPlay plugin options for
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
Just uninstall the bundled
in_mod.dll plugin. in_openmpt should be able to handle all file formats which
Go to "File/preferences/Advanced/Decoding/OpenMPT Component".
We would like to thank all the other contributors to the OpenMPT project, including of course the original ModPlug author, Olivier Lapicque.
The OpenMPT code is licensed under the BSD license. Copyright (c) 2004-2017, 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.