一坨屎。 功能基本不可用,写着玩的。 等一个特技狼的 ShadowPlayer2
Go to file
Gary Wang 120d7c1d25
feat: initial fft spectrum visualization support
The final goal is actually still clone ShadowPlayer's spectrum
visualization, tho.
2024-10-20 00:12:09 +08:00
.github/workflows buildsystem: use taglib 2's CMake support 2024-10-16 00:47:29 +08:00
assets chore: RC file for windows, taglib tweaks 2024-09-08 15:36:28 +08:00
dist chore: RC file for windows, taglib tweaks 2024-09-08 15:36:28 +08:00
icons feat(UI): add skin support 2024-09-10 08:13:03 +08:00
languages feat: basic lyrics support 2024-09-20 20:59:40 +08:00
.editorconfig chore: better qt-only msvc build support 2024-10-15 22:46:35 +08:00
.gitignore refactor: reuse playlistmanager from my other project 2024-09-06 00:17:39 +08:00
appveyor.yml buildsystem: use taglib 2's CMake support 2024-10-16 00:47:29 +08:00
CMakeLists.txt feat: initial fft spectrum visualization support 2024-10-20 00:12:09 +08:00
fftspectrum.cpp feat: initial fft spectrum visualization support 2024-10-20 00:12:09 +08:00
fftspectrum.h feat: initial fft spectrum visualization support 2024-10-20 00:12:09 +08:00
lrcbar.cpp feat: basic lyrics support 2024-09-20 20:59:40 +08:00
lrcbar.h feat: basic lyrics support 2024-09-20 20:59:40 +08:00
lyricsmanager.cpp refactor: option to use QTextCodec from Qt5compat 2024-09-29 00:13:42 +08:00
lyricsmanager.h fix: lyrics encoding and better lrc support 2024-09-22 17:02:40 +08:00
main.cpp chore: license cleanup, other tweaks 2024-09-08 00:34:45 +08:00
mainwindow.cpp feat: initial fft spectrum visualization support 2024-10-20 00:12:09 +08:00
mainwindow.h feat: initial fft spectrum visualization support 2024-10-20 00:12:09 +08:00
mainwindow.ui chore: add about dialog 2024-09-23 19:48:26 +08:00
playlistmanager.cpp refactor: reuse playlistmanager from my other project 2024-09-06 00:17:39 +08:00
playlistmanager.h refactor: reuse playlistmanager from my other project 2024-09-06 00:17:39 +08:00
README.md feat: initial fft spectrum visualization support 2024-10-20 00:12:09 +08:00
resources.qrc feat(UI): add skin support 2024-09-10 08:13:03 +08:00
seekableslider.cpp chore: license cleanup, other tweaks 2024-09-08 00:34:45 +08:00
seekableslider.h chore: license cleanup, other tweaks 2024-09-08 00:34:45 +08:00
singleapplicationmanager.cpp chore: license cleanup, other tweaks 2024-09-08 00:34:45 +08:00
singleapplicationmanager.h chore: license cleanup, other tweaks 2024-09-08 00:34:45 +08:00

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
  • Auto-load all audio files in the same folder of the file that you attempted to play, into a playlist

But 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:
    • No SMTC support under Windows for now
    • No MPRIS 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
  • 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

Build

Current state, we need:

  • cmake as the build system.
  • qt6 with qt6-multimedia since we use it for playback.
  • taglib to get the audio file properties.
  • kissfft for FFT support (will be downloaded at configure-time by cmake).

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.