Menu

Tree [9af613] master /
 History

HTTPS access


File Date Author Commit
 .github 2025-10-18 Gary Wang Gary Wang [3a77d2] chore: minor code adjustments
 app 2025-11-19 Gary Wang Gary Wang [9af613] chore: we no longer use tiny midi loader
 assets 2025-11-16 Gary Wang Gary Wang [16533d] UI: new logo
 cmake 2024-03-22 Gary Wang Gary Wang [5e3a81] chore: i18n, better building and packaging support
 dist 2024-03-22 Gary Wang Gary Wang [5e3a81] chore: i18n, better building and packaging support
 libs 2025-11-18 Gary Wang Gary Wang [ec7fa4] midiparser: show title when available
 translations 2025-11-18 Gary Wang Gary Wang [030f64] i18n: update ts files
 .git-blame-ignore-revs 2024-07-23 Gary Wang Gary Wang [48e88c] chore: update .git-blame-ignore-revs
 .gitignore 2025-10-17 Gary Wang Gary Wang [2f11fa] chore: update release info to 1.4.0 and misc files
 CMakeLists.txt 2025-11-16 Gary Wang Gary Wang [2958ba] chore: bump version to 2.0.0
 LICENSE 2025-11-17 Gary Wang Gary Wang [e5789d] chore: update copyright year and add donate link
 README.md 2025-11-19 Gary Wang Gary Wang [9af613] chore: we no longer use tiny midi loader

Read Me

Summary

Pineapple MIDI Player is a simple SoundFont MIDI player, designed to play simple MIDI file together with SoundFont file, especially MIDI files extracted by tools like VGMTrans. This tool will attempt to load the SoundFont with the same file name as the MIDI file by default, and support change SoundFont on-the-fly when dropping a SF2 file onto the main window.

Based on the following projects:

Build it...

...manually

Ensure CMake, Qt 6 (at least 6.4) and PortAudio are available, then regular cmake building steps applies:

$ mkdir build && cd build
$ cmake ..
$ cmake --build . # or simply using `make` if you are using Makefile as the cmake generator.

...with Conan 2

This method is a little bit tedious so... By default, `conan profile detect` will generate a profile with `compiler.cppstd=14`, you will need to change it to or use a profile with `compiler.cppstd=17` in order to build Qt. [Conan Center doesn't have PortAudio package](https://github.com/conan-io/conan-center-index/issues/16335), so this project uses `FetchContent` to download and build it. You can manually build it and use the version that you manually built as well if preferred as long as `find_package` can find it. The following content can be saved to `conanfile.txt` for you to use:
[requires]
qt/6.8.3

[generators]
CMakeDeps
CMakeToolchain

[layout]
cmake_layout

[options]
qt*:qttools=True
...and use the following commands to build it:
$ conan install . --build=missing
$ cmake . --preset conan-default -DCONAN2_STATIC_QT_BUG=ON
$ cmake --build --preset conan-release
The `CONAN2_STATIC_QT_BUG` option is required for Conan 2 build due to [this bug](https://github.com/conan-io/conan-center-index/issues/23045).

Contribution

Beside feedback and code contribution, other contributions are also welcome!

Help Translation!


Translation status

Funding

ko-fi

AfdianAfdian

License

Copyright © 2025 Gary Wang

Available under Expat/MIT License