Official read-only git mirror of the OpenMPT and libopenmpt subversion repository at https://source.openmpt.org/. This repository may occasionally get rebased without further notice when subversion revision properties (commit message) get fixed in recent history after the fact. Be sure to rebase often in case you clone or fork it.
C++ C Assembly Objective-C Lua Makefile Other
Switch branches/tags
modplugxmms-2.0 modplugxmms-1.5 modplugxmms-1.5a modplugxmms-1.3 modplugxmms-1.3a modplugxmms-1.2 modplugxmms-1.1.1 modplugxmms-1.1 modplugxmms-1.0.1 libopenmpt-0.3.11 libopenmpt-0.3.10 libopenmpt-0.3.9 libopenmpt-0.3.8 libopenmpt-0.3.7 libopenmpt-0.3.6 libopenmpt-0.3.5 libopenmpt-0.3.4 libopenmpt-0.3.3 libopenmpt-0.3.2 libopenmpt-0.3.1 libopenmpt-0.3.0 libopenmpt-0.3.0-rc.1 libopenmpt-0.2.10635-beta34 libopenmpt-0.2.10495-beta33 libopenmpt-0.2.10172-beta32 libopenmpt-0.2.10049-beta31 libopenmpt-0.2.9913-beta30 libopenmpt-0.2.9542-beta29 libopenmpt-0.2.9227-beta28 libopenmpt-0.2.8760-beta27 libopenmpt-0.2.8461-beta26 libopenmpt-0.2.8414-beta25 libopenmpt-0.2.8190-beta24 libopenmpt-0.2.8043-beta23 libopenmpt-0.2.7774-beta22 libopenmpt-0.2.7561-beta20.5 libopenmpt-0.2.7559-beta20.4 libopenmpt-0.2.7386-beta20.3 libopenmpt-0.2.7299-beta20.2 libopenmpt-0.2.7025-beta20.1 libopenmpt-0.2.6774-beta20 libopenmpt-0.2.6664-beta19 libopenmpt-0.2.6611-beta18 libopenmpt-0.2.6401-beta17 libopenmpt-0.2.5787-beta16 libopenmpt-0.2.5705-beta15 libopenmpt-0.2.5602-beta14 libopenmpt-0.2.5486-beta13 libopenmpt-0.2.4954-beta12 libopenmpt-0.2.4943-beta11 libopenmpt-0.2.4764-beta10 libopenmpt-0.2.4667-beta9 libopenmpt-0.2.4664-beta8 libopenmpt-0.2.4259-beta7 libopenmpt-0.2.4238-beta6 libopenmpt-0.2.4115-beta5 libopenmpt-0.2.3773-beta4 libopenmpt-0.2.3746-beta3 libopenmpt-0.2.3566-beta2 libopenmpt-0.2.3532-beta1 OpenMPT-1.27.09.00 OpenMPT-1.27.08.00 OpenMPT-1.27.07.00 OpenMPT-1.27.06.00 OpenMPT-1.27.05.00 OpenMPT-1.27.04.00 OpenMPT-1.27.03.00 OpenMPT-1.27.02.00 OpenMPT-1.27.01.00 OpenMPT-1.26.14.00 OpenMPT-1.26.13.00 OpenMPT-1.26.12.00 OpenMPT-1.26.11.00 OpenMPT-1.26.10.00 OpenMPT-1.26.09.00 OpenMPT-1.26.08.00 OpenMPT-1.26.07.00 OpenMPT-1.26.06.00 OpenMPT-1.26.05.00 OpenMPT-1.26.04.00 OpenMPT-1.26.03.00 OpenMPT-1.26.02.00 OpenMPT-1.26.01.00 OpenMPT-1.25.04.00 OpenMPT-1.25.03.00 OpenMPT-1.25.02.00 OpenMPT-1.25.01.00 OpenMPT-1.24.04.00 OpenMPT-1.24.03.00 OpenMPT-1.24.02.00 OpenMPT-1.24.01.00 OpenMPT-1.23.05.00 OpenMPT-1.23.04.00 OpenMPT-1.23.03.00 OpenMPT-1.23.02.00 OpenMPT-1.23.01.00 OpenMPT-1.22.07.00 OpenMPT-1.22.06.00 OpenMPT-1.22.05.00 OpenMPT-1.22.04.00
Nothing to show
Clone or download
sagamusix [Fix] Pattern tab: Scrolling with touch gestures could, on some if no…
…t all devices, update the scroll bar but not actually redraw the pattern. The problem remains to be fixed for the sample and instrument editors.

git-svn-id: https://source.openmpt.org/svn/openmpt/trunk/OpenMPT@10676 56274372-70c3-4bfc-bfc3-4c3a0b034d27
Latest commit fcb0258 Aug 13, 2018
Permalink
Failed to load latest commit information.
build [Fix] build: Prevent libsdl2 and libsdl form being enabled at the sam… Jul 29, 2018
common [Ref] GCC 8 warns when memcpy-ing to/from private class members. Make… Aug 3, 2018
contrib [Mod] Remove SCRS and SCRI from the fuzzer dictionary again, as they … May 29, 2018
doc [New] Can now import C67 (CDFM / Composer 670) files. Jun 9, 2018
examples [Fix] examples: Return failure in case of out-of-memory. Jan 22, 2018
include [Var] picojson: Remove picojson completely. We now use nlohmann-json … Jul 14, 2018
installer [Imp] Update big installer image as well. Jul 25, 2018
libopenmpt [Doc] libopenmpt: Update changelog. Aug 10, 2018
misc [Ref] Include BuildSettings.h in all header files. This is a small st… Jul 16, 2018
mptrack [Fix] Pattern tab: Scrolling with touch gestures could, on some if no… Aug 13, 2018
openmpt123 [Fix] build: Prevent libsdl2 and libsdl form being enabled at the sam… Jul 29, 2018
packageTemplate [Doc] Update real name Jan 16, 2018
pluginBridge [Ref] VST: Tiny cleanups. Jul 24, 2018
soundbase [Ref] Include BuildSettings.h in all header files. This is a small st… Jul 16, 2018
sounddev [Ref] Include BuildSettings.h in all header files. This is a small st… Jul 16, 2018
sounddsp [Ref] Include BuildSettings.h in all header files. This is a small st… Jul 16, 2018
soundlib [Ref] SampleIO: More cleanup. Aug 10, 2018
test [Ref] Test: Add test for <kripken/emscripten#4251>. Jul 26, 2018
unarchiver [Ref] Include BuildSettings.h in all header files. This is a small st… Jul 16, 2018
.appveyor.yml [Ref] build: Rename appveyor.yml to .appveyor.yml. Apr 21, 2018
.gitignore [Fix] Remove unwanted spaces in svn:ignore. Apr 15, 2018
.travis.yml [Ref] build: Remove non-working Xcode from Travis-CI again (for now). Apr 21, 2018
LICENSE [Var] It's 2018. Jan 1, 2018
Makefile [Imp] build: Support per-target LDFLAGS. Apr 9, 2018
README.md [Mod] The VST SDK is no longer required to build OpenMPT with VST sup… Jul 6, 2018

README.md

README

OpenMPT and libopenmpt

This repository contains OpenMPT, a free Windows/Wine-based tracker and libopenmpt, a library to render tracker music (MOD, XM, S3M, IT MPTM and dozens of other legacy formats) to a PCM audio stream. libopenmpt is directly based on OpenMPT, offering the same playback quality and format support, and development of the two happens in parallel.

How to compile

OpenMPT

  • Supported Visual Studio versions:

    • Visual Studio 2015 Update 3 Community/Professional/Enterprise

      To compile the project, open build/vs2015/OpenMPT.sln and hit the compile button.

    • Visual Studio 2017 Community/Professional/Enterprise

      To compile the project, open build/vs2017/OpenMPT.sln and hit the compile button.

  • The Windows 8.1 SDK and Microsoft Foundation Classes (MFC) are required to build OpenMPT (both are included with Visual Studio, however may need to be selected explicitly during setup). In order to build OpenMPT for Windows XP, the XP targetting toolset also needs to be installed.

  • The ASIO SDK is needed for compiling with ASIO support.

    If you don't want this, comment out #define MPT_WITH_ASIO in the file common/BuildSettings.h.

    The ASIO SDK can be downloaded automatically on Windows 7 or later with 7-Zip installed by just running the build/download_externals.cmd script.

    If you do not want to or cannot use this script, you may follow these manual steps instead:

    • Visit steinberg.net to download the SDK.

    • Put the ASIO SDK in the include/ASIOSDK2 folder. The top level directory of the SDK is already named ASIOSDK2, so simply move that directory in the include folder.

    If you need further help with the ASIO SDK, get in touch with the main OpenMPT developers.

  • 7-Zip is required to be installed in the default path in order to build the required files for OpenMPT Wine integration.

    Please visit 7-zip.org to download 7-Zip.

libopenmpt and openmpt123

For detailed requirements, see libopenmpt/dox/quickstart.md.

  • Autotools

    Grab a libopenmpt-VERSION-autotools.tar.gz tarball.

    ./configure
    make
    make check
    sudo make install
    

    Cross-compilation is generally supported (although only tested for targetting MinGW-w64).

    Note that some MinGW-w64 distributions come with the win32 threading model enabled by default instead of the posix threading model. The win32 threading model lacks proper support for C++11 <thread> and <mutex> as well as thread-safe magic statics. It is recommended to use the posix threading model for libopenmpt for this reason. On Debian, the appropriate configure command is ./configure --host=x86_64-w64-mingw32 CC=x86_64-w64-mingw32-gcc-posix CXX=x86_64-w64-mingw32-g++-posix for 64bit, or ./configure --host=i686-w64-mingw32 CC=i686-w64-mingw32-gcc-posix CXX=i686-w64-mingw32-g++-posix for 32bit. Other MinGW-w64 distributions may differ.

  • Visual Studio:

    • You will find solutions for Visual Studio 2015 to 2017 in the corresponding build/vsVERSION/ folder. Projects that target Windows versions before Windows 7 are available in build/vsVERSIONxp/ Most projects are supported with any of the mentioned Visual Studio verions, with the following exceptions:

      • in_openmpt: Requires Visual Studio with MFC.

      • xmp-openmpt: Requires Visual Studio with MFC.

    • You will need the Winamp 5 SDK and the XMPlay SDK if you want to compile the plugins for these 2 players. They can be downloaded automatically on Windows 7 or later with 7-Zip installed by just running the build/download_externals.cmd script.

      If you do not want to or cannot use this script, you may follow these manual steps instead:

      • Winamp 5 SDK:

        To build libopenmpt as a winamp input plugin, copy the contents of WA5.55_SDK.exe to include/winamp/.

        Please visit winamp.com to download the SDK. You can disable in_openmpt in the solution configuration.

      • XMPlay SDK:

        To build libopenmpt with XMPlay input plugin support, copy the contents of xmp-sdk.zip into include/xmplay/.

        Please visit un4seen.com to download the SDK. You can disable xmp-openmpt in the solution configuration.

  • Makefile

    The makefile supports different build environments and targets via the CONFIG= parameter directly to the make invocation. Use make CONFIG=$newconfig clean when switching between different configs because the makefile cleans only intermediates and target that are active for the current config and no configuration state is kept around across invocations.

    • mingw-w64:

      The required version is at least 4.8.

      make CONFIG=mingw64-win32    # for win32
      
      make CONFIG=mingw64-win64    # for win64
      
    • gcc or clang (on Unix-like systems, including Mac OS X with MacPorts, and Haiku (32-bit Hybrid and 64-bit)):

      The minimum required compiler versions are:

      • gcc 4.8

      • clang 3.6

      The Makefile requires pkg-config for native builds. For sound output in openmpt123, PortAudio or SDL is required. openmpt123 can optionally use libflac and libsndfile to render PCM files to disk.

      When using gcc, run:

      make CONFIG=gcc
      

      When using clang, it is recommended to do:

      make CONFIG=clang
      

      Otherwise, simply run

      make
      

      which will try to guess the compiler based on your operating system.

    • emscripten (on Unix-like systems):

      libopenmpt has been tested and verified to work with emscripten 1.31 or later (earlier versions might or might not work).

      Run:

      make CONFIG=emscripten
      

      Running the test suite on the command line is also supported by using node.js. Version 0.10.25 or greater has been tested. Earlier versions might or might not work. Depending on how your distribution calls the node.js binary, you might have to edit build/make/config-emscripten.mk.

    • American Fuzzy Lop:

      To compile libopenmpt with fuzzing instrumentation for afl-fuzz, run:

      make CONFIG=afl
      

      For more detailed instructions, read contrib/fuzzing/readme.md

    • other compilers:

      To compiler libopenmpt with other C++11 compliant compilers, run:

      make CONFIG=generic
      

    The Makefile supports some customizations. You might want to read the top which should get you some possible make settings, like e.g. make DYNLINK=0 or similar. Cross compiling or different compiler would best be implemented via new config-*.mk files.

    The Makefile also supports building doxygen documentation by using

    make doc
    

    Binaries and documentation can be installed systen-wide with

    make PREFIX=/yourprefix install
    make PREFIX=/yourprefix install-doc
    

    Some systems (i.e. Linux) require running

    sudo ldconfig
    

    in order for the system linker to be able to pick up newly installed libraries.

    PREFIX defaults to /usr/local. A DESTDIR= parameter is also supported.

  • Android NDK

    See build/android_ndk/README.AndroidNDK.txt.

Contributing to OpenMPT/libopenmpt

See contributing.