2024-09-08 00:34:45 +08:00
## Read Before Use
2020-04-07 12:58:08 +08:00
2020-04-19 18:22:21 +08:00
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.
2020-04-07 12:58:08 +08:00
2024-10-13 21:07:45 +08:00
### Features
We have the following features:
- [Sidecar ](https://en.wikipedia.org/wiki/Sidecar_file ) lyrics file (`.lrc` ) support with an optional desktop lyrics bar widget
2025-07-13 17:43:05 +08:00
- Chapter file support
- Sidecar chapter file support:
- [YouTube-style chapter ](https://support.google.com/youtube/answer/9884579 ) saved to a plain text file with `.chp` suffix
- PotPlayer `.pbf` file, `[Bookmark]` s as chapters
- Built-in chapter support (require build with FFmpeg)
2024-10-13 21:07:45 +08:00
- Auto-load all audio files in the same folder of the file that you attempted to play, into a playlist
2025-01-23 22:45:46 +08:00
These features are not available, some of them are TBD and others are not planned:
2024-09-08 00:34:45 +08:00
- File format support will be limited by the [FFmpeg version that Qt 6 uses ](https://doc.qt.io/qt-6/qtmultimedia-attribution-ffmpeg.html ).
- ...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!
2024-09-20 20:59:40 +08:00
- 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.
2024-10-13 21:07:45 +08:00
- Limited system integration:
- No [SMTC ](https://learn.microsoft.com/en-us/uwp/api/windows.media.systemmediatransportcontrols ) support under Windows for now
- No [MPRIS ](https://www.freedesktop.org/wiki/Specifications/mpris-spec/ ) support under Linux desktop for now
- No "playback progress on taskbar icon" and "taskbar thumbnail buttons" support whatever on Windows or Linux desktop for now
2024-09-27 23:21:57 +08:00
- 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
2024-09-08 00:34:45 +08:00
2020-04-19 18:22:21 +08:00
## Build
Current state, we need:
2025-07-13 17:43:05 +08:00
- `cmake` as the build system.
- `qt6` with `qt6-multimedia` since we use it for playback.
- `kissfft` for FFT support (will be downloaded at configure-time by `cmake` ).
- (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 ](https://doc.qt.io/qt-6.9/qtmultimedia-attribution-ffmpeg.html )
2020-04-19 18:22:21 +08:00
Then we can build it with any proper c++ compiler like g++ or msvc.
2024-09-08 00:34:45 +08:00
Building it just requires normal cmake building steps:
2020-04-19 18:22:21 +08:00
2024-09-08 00:34:45 +08:00
```shell
$ cmake -Bbuild
$ cmake --build build
```
2020-04-19 18:22:21 +08:00
2020-06-08 23:56:05 +08:00
## Help Translation!
2024-09-08 00:34:45 +08:00
[Translate this project on Codeberg's Weblate! ](https://translate.codeberg.org/projects/pineapple-apps/pineapple-music/ )
2020-06-08 23:56:05 +08:00
2020-04-09 18:12:35 +08:00
## About License
2024-09-08 00:34:45 +08:00
Pineapple Music as a whole is licensed under MIT license. Individual files may have a different, but compatible license.
2020-04-09 18:12:35 +08:00
2024-09-08 00:34:45 +08:00
All *png* images inside `icons` folder are originally created by [@ShadowPower ](https://github.com/ShadowPower/ ) for [ShadowPlayer ](https://github.com/ShadowPower/ShadowPlayer ). These images are licensed under [CC0 ](https://creativecommons.org/publicdomain/zero/1.0/legalcode ) license, grant by the original author.