Read Before Use
Since I just need a simple player which just works right now, so I did many things in a dirty way. Don't feel so weird if you saw something I did in this project is using a bad approach.
Features
We have the following features:
- Sidecar lyrics file (
.lrc
) support with an optional desktop lyrics bar widget - Chapter file support
- Sidecar chapter file support:
- YouTube-style chapter saved to a plain text file with
.chp
suffix - PotPlayer
.pbf
file,[Bookmark]
s as chapters
- YouTube-style chapter saved to a plain text file with
- Built-in chapter support (require build with FFmpeg)
- Sidecar chapter file support:
- Auto-load all audio files in the same folder of the file that you attempted to play, into a playlist
These features are not available, some of them are TBD and others are not planned:
- File format support will be limited by the FFmpeg version that Qt 6 uses.
- ...which if you use Qt's official binary, only contains the LGPLv2.1+ part. (already good enough, tho)
- No music library management support and there won't be one!
- It'll auto-load music files in the same folder of the file that you attempted to play, so organize your music files on a folder-basis.
- Limited system integration:
- Limited lyrics (
.lrc
) loading support:- Currently no
.tlrc
(for translated lyrics) or.rlrc
(for romanized lyrics) support. - Multi-line lyrics and duplicated timestamps are not supported
- Extensions (Walaoke and A2 extension) are not supported
- Currently no
Build
Current state, we need:
cmake
as the build system.qt6
withqt6-multimedia
since we use it for playback.kissfft
for FFT support (will be downloaded at configure-time bycmake
).- (optional)
taglib
to get the audio file properties. - (optional)
kf6codecs
to get the lyrics encoding correct. - (optional)
ffmpeg
to get the audio chapter properties.- It's suggested to use the same FFmpeg version that Qt Multimedia uses, so we can reuse the FFmpeg library binaries that Qt uses.
- You can know the version by checking Qt documentation's FFmpeg attribution page
- It's suggested to use the same FFmpeg version that Qt Multimedia uses, so we can reuse the FFmpeg library binaries that Qt uses.
Then we can build it with any proper c++ compiler like g++ or msvc.
Building it just requires normal cmake building steps:
$ cmake -Bbuild
$ cmake --build build
Help Translation!
Translate this project on Codeberg's Weblate!
About License
Pineapple Music as a whole is licensed under MIT license. Individual files may have a different, but compatible license.
All png images inside icons
folder are originally created by @ShadowPower for ShadowPlayer. These images are licensed under CC0 license, grant by the original author.