Multi-channel, multi-track, multi-player player for audio files.
- Supports basic audio file types like WAV and MP3
- Output to ASIO devices*
- Freely configure output channels
- Play multi-track recordings consisting of one file per track
* Requires a custom build, see below.
Precompiled binaries are available for download:
Pull requests are always welcome to improve the current code or add new features.
- Get CMake.
- Get Visual Studio 2022.
- Clone this repository, including its submodule.
- Download the ASIO SDK and extract it.
- Call cmake like this:
cmake -S . -B build_dir -DASIO_PATH=path/to/asio/sdk/common
- Build:
cmake --build build_dir
The format the source code according to the .clang-format file:
powershell -executionpolicy bypass -file .\format-source.ps1
M*Player's own code is dual-licensed. This makes licensing a bit complicated but allows building it with ASIO.
Component | License |
---|---|
Icons | LGPL |
JUCE | see https://github.com/WeAreROLI/JUCE |
M*Player code | GPL and ISC |
The ISC version of the code can be used together with a JUCE license and an ASIO SDK license to build M*Player with ASIO support.
The ASIO SDK and open source code are not compatible. To make it short this would have been the options:
M*Player license | ASIO SDK | JUCE restriction |
---|---|---|
GPL | no | none |
proprietary | yes | forced splashscreen |
The dual-licensing still allows everyone to build M*Player with ASIO support given they have a proper license for the ASIO SDK and JUCE.
Unnecessary binary data and the ASIO framework have been removed from the commit history. This means older revisions might not compile.