mpz logo

mpz

Music player for big local collections

GPL-3.0 license Latest release Last commit Changelog GitHub stars omnipackage stable repositories omnipackage unstable repositories

Directory tree is your music library

If you organize your music in folders rather than letting an app index a "library", mpz is for you. It's a free, open-source, native C++ / Qt 6 music player for large local collections — a Foobar2000-style folder workflow for Linux and Windows (no macOS package yet — I don't own Apple hardware; volunteers welcome). The focus is simple: play music from your local files. No library indexing step — just folders, and playlists you build from them by middle-clicking.

The 3-column UI shows the directory tree (aka library), the list of playlists, and tracks from the selected playlist. Middle-click on a folder in the directory view and it becomes a playlist; its contents load into the tracks view. Create multiple playlists from folders in your library and switch between them quickly. Similar to "Album list" in Foobar2000.

Animated demonstration: middle-clicking a folder in the directory tree creates a playlist from it; switching between playlists in the playlists column
mpz on KDE Plasma with the Breeze Dark theme

KDE Breeze Dark desktop theme

mpz running on Windows 10

Windows 10

mpz on KDE Plasma with the Breeze Light theme

KDE Breeze Light desktop theme

mpz running on Ubuntu

Ubuntu

Native C++/Qt — fast and responsive UI

Built with C++ and Qt 6 — lightweight and fast, with no Electron in sight. Open source (GPL-3.0) and cross-platform. Uses audio codecs installed on your system (GStreamer through QtMultimedia on Linux). Follows your desktop theme. The "z" in the name reflects a no-nonsense approach — no clutter, no distractions.
Not built with Electron — native code badge

mpd client mode

Supports mpd (Music Player Daemon). You can add an mpd server as a library folder, browsing and playing remote music as if it were local. This is an experimental feature, and there is an mpz-mpd impedance mismatch — see more in the README.

Radio streams, hotkeys, playback log and more

Internet radio streams in m3u and pls formats. CUE sheets supported. A playback log keeps history of what played — handy when you hear something you like on a radio stream. MPRIS on Linux for remote playback control, for example via KDE Connect. Got feedback? Feature request? Found a bug? Use the built-in feedback form, or open a GitHub issue.
The built-in feedback form dialog

Feedback form

The mpz About window showing version and credits

About window

Dialog for configuring library folders

Library folders configuration

Playback log showing recently played tracks — useful when listening to internet radio streams

Playback log

Lyrics, tags, and audio formats

Lyrics are supported — embedded in tags, in .lrc/.txt sidecar files, or fetched online from LRCLIB — and shown in the Track Info dialog.

Tag reading is powered by TagLib (ID3v2, Vorbis Comment, MP4, APE). Common audio formats — FLAC, MP3, Ogg Vorbis, AAC, ALAC, WAV — play through your system's codecs (QtMultimedia with the GStreamer or ffmpeg backend on Linux, native backends on Windows).

Install

openSUSE, Debian,
Fedora, Ubuntu,
RedHat, Mageia
Install from the omnipackage repositories: stable releases (recommended) or unstable builds from master. These are the primary repositories going forward; both new and existing users are encouraged to use them.
Already using the old Open Build Service repositories?

The previous Open Build Service repositories still exist and existing installations will keep working, but existing users are also encouraged to switch — future packaging effort is focused on omnipackage. The new repositories are signed with different GPG keys, so switching means removing the old repository and adding the new one (the install pages linked above walk through this).

Note: on Debian-based distros (Debian, Ubuntu) the OBS builds were always built against Qt5, even on releases that ship a recent enough Qt6 — making OBS produce working .deb packages with Qt6 turned out to be very painful. The omnipackage builds use Qt6 where the distro supports it.

Arch Build the AUR package with Qt6 or the Qt5 variant.
Windows Grab the latest binaries from the GitHub releases page.
From source Follow the README.

Not an attempt to clone Foobar2000

Inspired by Foobar2000 and especially its "Album list" feature, mpz isn't trying to be yet another cross-platform Foobar clone — that's not feasible and not the goal. Instead, mpz has all the features I've been using for many years (quite literally the same unchanged Foobar2000 config since 2005 or so). You may find it useful too, or hate it for the lack of expected features. Either way, I'd love to hear from you — use the built-in feedback form or GitHub issues.
Frequently asked questions

What is mpz?
mpz is a free and open-source music player for large local music collections, built with C++ and Qt. It treats your folder structure as the library and offers a 3-column UI for the directory tree, playlists, and tracks.

What platforms does mpz support?
Linux and Windows. On Linux, install from the omnipackage repositories (openSUSE, Debian, Fedora, Ubuntu, RedHat, Mageia) or AUR (Arch). On Windows, download a release from GitHub. Building from source is supported on any platform with Qt and a C++ compiler.

Is mpz free?
Yes. mpz is free and open-source software, licensed under the GNU GPL v3.

Does mpz support streaming services?
No. mpz focuses on local music files. Internet radio streams in m3u and pls playlist formats are supported, but online streaming services are not.

Does mpz support CUE sheets?
Yes, CUE sheets are supported.

Can mpz act as an mpd client?
Yes, mpz has an experimental mpd client mode (since version 2.0.0). You can add an mpd server as a library folder. There are some caveats — see the README for details.