Highly performant and hack-able music player and manager
Find a file
quartz c5b42e8459
Some checks failed
Test / build (push) Failing after 7m34s
chore: update to zig 0.15.2
2025-10-30 16:27:51 +00:00
.forgejo/workflows chore: update to zig 0.15.2 2025-10-30 16:27:51 +00:00
docs feat: README.md 2025-07-21 22:39:38 +01:00
pkg chore: update to zig 0.15.2 2025-10-30 16:27:51 +00:00
src chore: update to zig 0.15.2 2025-10-30 16:27:51 +00:00
.envrc it begins 2025-07-21 22:23:25 +01:00
.gitignore it begins 2025-07-21 22:23:25 +01:00
build.zig chore: update to zig 0.15.2 2025-10-30 16:27:51 +00:00
build.zig.zon chore: update to zig 0.15.2 2025-10-30 16:27:51 +00:00
flake.lock chore: update to zig 0.15.2 2025-10-30 16:27:51 +00:00
flake.nix chore: update to zig 0.15.2 2025-10-30 16:27:51 +00:00
README.md feat: README.md 2025-07-21 22:39:38 +01:00

zplayer

Highly performant and hack-able music player and manager

Warning

In very alpha stage. Still very aspirational and building the foundational blocks.

Application screenshot

Done

  • Project setup
  • Basic audio thread with support for vast majority of codecs (not all tested)

Roadmap

  • Library
    • Indexer
      • Importing and syncing (handle filesystem changes)
      • Best-effort automatic metadata handling based on folder structure and file naming
      • Duplicate detection
    • Blacklist/hide songs/files
    • All songs view
    • Artists view
    • Artist view
    • Albums view
    • Album view
    • Global search
      • Semantic search (? could be a fun use of ML&LLMs + metadata extracted from audio like lyrics)
  • Build everything from source (macOS is a pain right now for ffmpeg and SDL3)
    • Cross-compilation (with CI/CD)
  • Edit metadata
    • Create album from audio files
  • Integrated EQ
  • Automatic volume normalization
  • Visualizers (winamp style)
  • Scriptable user interface
    • Bindings for Lua (and/or Cyber)
    • Dogfood by rewriting UI from native to the chosen scripting language
  • Scriptable visualizer (use bindings from UI + shaders)
  • Support streaming protocols
    • (Optional) Integrate with yt-dlp