mpz logo

mpz

Folder player for large local music collections

GPL-3.0 license Latest release Last commit Changelog GitHub stars omnipackage stable repositories (x86_64) omnipackage stable repositories (aarch64) omnipackage unstable repositories (x86_64) omnipackage unstable repositories (aarch64) mpz on Flathub

A folder player: your directory tree is the music library

If you organize your music in folders rather than letting an app index a "library", mpz is the folder player for you. A free, open-source, native C++/Qt 6 music player for large local collections on Linux, macOS and Windows. No indexing step: just folders, and playlists you build from them by middle-clicking.

The 3-column UI shows the directory tree, the list of playlists, and tracks from the selected playlist. Middle-click a folder and it becomes a playlist.

mpz main window: directory tree (left), playlists (middle), and tracks of the selected playlist (right)
mpz on KDE Plasma with the Breeze Dark theme
KDE Breeze Dark desktop theme
mpz on KDE Plasma with the Breeze Light theme
KDE Breeze Light desktop theme
mpz running on Ubuntu
Ubuntu
mpz running on Windows 10
Windows 10
mpz running on macOS
macOS

Fast and responsive native C++/Qt UI

Built with C++ and Qt 6: lightweight, fast, cross-platform, open source (GPL-3.0). Uses the audio codecs installed on your system (GStreamer or ffmpeg through QtMultimedia on Linux) and follows your desktop theme. The "z" in the name reflects a no-nonsense approach: no clutter, no distractions.

Gapless playback

No silence between tracks, including single-file albums split by a CUE sheet. Decoded audio is buffered in memory (100 MB by default, adjustable in Settings → Advanced), which also makes seeking instant. Qt 6 only, since 2.1.0.

Equalizer

10-band graphic and full parametric modes, importing presets from AutoEq, SquigLink and similar sources. On/off and preset are per output device ("Default" counts as one), the presets themselves are shared. The EQ follows the device in use, so unplugging headphones switches it along with the audio. Runs on the gapless engine, so gapless has to be enabled. Qt 6 only, since 2.1.0.

Internet radio

Streams in m3u, m3u8 and pls playlists have always played in mpz. 2.1.0 adds a dedicated Radio library with built-in stations from SomaFM, Radio Paradise, FIP, France Musique and Nightride FM, plus your own. Stream playlists still play directly, or import into the library. Also new: HTTPS, a radio row view, and stream titles from IceCast's status-json.xsl. The playback log keeps the history of what played.

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 mpd impedance mismatch, see more in the README.

Lyrics, tags, formats, and more

OS media integration: MPRIS on Linux (remote control, e.g. via KDE Connect), SMTC and taskbar controls on Windows, Now Playing and native menu/Dock on macOS, plus a system tray with playback controls.

Cover art (from tags or folder images) and lyrics, the latter embedded in tags, in .lrc/.txt sidecar files, or fetched online from LRCLIB (NetEase, QQ Music and Lyrics.ovh available too). Both show in the Track Info dialog or in dockable panels that follow the playing track. Tags are read and written via TagLib (ID3v2, Vorbis Comment, MP4, APE), editable in the built-in tag editor since 2.0.8, album artist and disc number included, as columns and sort keys too. Audio formats go through your system's codecs (QtMultimedia with the GStreamer or ffmpeg backend on Linux, native backends on macOS and Windows): FLAC, MP3, Ogg Vorbis, Opus, Speex, AAC, ALAC, M4A/M4B/MP4, WAV, AIFF, WMA/ASF, APE, WavPack, Musepack, TTA, MKA, DSD, Shorten.

The dynamic range meter gives a per-track and album DR log for the selected tracks in the foobar2000 Dynamic Range Meter format, from the playlist context menu or the track info dialog (Qt 6 only). The seekbar can show the track waveform (off by default in Settings → Interface), and the output device button shows the selected device name.

Drag and drop files and folders from your file manager, reorder tracks within a playlist by dragging, and drag folders, radio stations and tracks between the three panels. Playback order per playlist and global: sequential, random, or no-loop. Track sorting presets. Global media-key hotkeys and a keyboard shortcuts dialog where every shortcut is editable. Update check on Windows, macOS and the Linux AppImage. UI in English, Russian, Japanese and Serbian.

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
The mpz equalizer dialog: output device, preset list with import and export, preamp, response curve, and the 10-band graphic sliders
Equalizer
The mpz Radio library: station groups on the left, playlists in the middle, and stations on the right with the live stream title of the playing station
Radio library

Install

openSUSE, Debian,
Fedora, Ubuntu,
RedHat, Mageia,
Arch, Manjaro
Install from the omnipackage repositories, for x86_64 and aarch64: Arch and Manjaro are x86_64 only. These are the primary repositories going forward, and they hold a single package, mpz, so they can't break anything else on your system.
Already using Open Build Service repositories?

The Open Build Service repositories still exist, but existing users are encouraged to switch, since 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).

Arch (AUR) An AUR package is also available if you prefer it over the binary repositories: AUR package.
AppImage AppImage builds (x86_64 and aarch64) are on the GitHub releases page. Prefer the native repositories above if your distro is supported.
Flatpak Available on Flathub, or from your desktop's software centre:
flatpak install flathub org.mpz_player.mpz
Prefer the native repositories above if your distro is supported.
Windows Download the installer or portable build from the GitHub releases page. Builds are available for 64-bit x64 (recommended), native ARM64 (Windows on ARM), and legacy 32-bit systems.
The build is not signed, so Windows blocks it on first launch

Microsoft Defender SmartScreen: "Windows protected your PC". Click More info, then Run anyway. No Run anyway? Right-click the file → Properties → tick UnblockApply.

Smart App Control: "cannot be verified", with nothing to click, and it has no exception list. Turn it off in Windows Security → App & browser control → Smart App Control, install, turn it back on. Older Windows 11 builds made that switch one-way, so check you can re-enable it first. Only clean installs of Windows 11 have it on.

To uninstall, use the "Uninstall mpz" Start Menu shortcut or Control Panel. Settings → Apps may not work on Windows 11 (a known Qt Installer Framework bug).

macOS Download the .dmg from the GitHub releases page. Universal binary for Apple Silicon and Intel Macs (macOS 11 Big Sur or later).
Gatekeeper blocks the app on first launch

The build is not signed with an Apple Developer ID, so macOS Gatekeeper blocks it on first launch. After dragging mpz music player.app to /Applications, use either method below.

Terminal: remove the quarantine flag, then open the app normally:

xattr -dr com.apple.quarantine "/Applications/mpz music player.app"

System Settings: try to open mpz music player.app once and dismiss the warning, then go to System Settings → Privacy & Security. Near the bottom you'll see a message that mpz was blocked, click Open Anyway and confirm. The app launches normally from then on.

See the README for details.

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 a cross-platform Foobar2000 clone. That's not feasible, and not the goal. Instead it has the features I've been using for many years (quite literally the same unchanged Foobar2000 config since 2005 or so). If you're looking for a Foobar2000-style alternative on Linux, macOS or Windows, mpz may be it, or it may not fit your taste. Either way I'd love to hear from you: use the built-in feedback form or GitHub issues.
Frequently asked questions

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

Is mpz a folder player?
Yes. It plays music straight from your folder structure instead of importing it into a database. Middle-click any folder to turn it into a playlist. Your directory tree is the library, with no global indexing step.

Is mpz a Foobar2000 alternative?
Partly. mpz is inspired by Foobar2000, especially its "Album list", but it is not a clone: a faithful cross-platform clone is neither feasible nor the goal. It keeps the features the author has used daily for years, in a native folder-based player for Linux, macOS and Windows, where Foobar2000 is Windows-only.

Can mpz handle very large music collections?
Yes, that is what it is built for. Your folder structure is the library, so nothing gets scanned into a database before you can play anything.

What platforms does mpz support?
Linux, macOS and Windows. On Linux, install from the omnipackage repositories (openSUSE, Debian, Fedora, Ubuntu, RedHat, Mageia, Arch, Manjaro) for x86_64 and aarch64, Arch and Manjaro x86_64 only, or from the AUR, Flathub (flatpak install flathub org.mpz_player.mpz) or an AppImage. On Windows, take a release from GitHub: 64-bit x64, native ARM64 (Windows on ARM) or legacy 32-bit. On macOS, take the .dmg from GitHub releases. That build is unsigned, so Gatekeeper blocks it on first launch: either remove the quarantine flag with xattr -dr com.apple.quarantine "/Applications/mpz music player.app", or click Open Anyway under System Settings → Privacy & Security. Building from source works on any platform with Qt and a C++ compiler.

Is mpz available as a Flatpak?
Yes, on Flathub as org.mpz_player.mpz. Install it with flatpak install flathub org.mpz_player.mpz, or from your desktop's software centre. It works on any distribution, but prefer the native omnipackage repositories if your distro is supported.

Does mpz have a mobile app (Android or iOS)?
No. mpz is a desktop player for Linux, macOS and Windows; there is no Android or iOS version. On Linux you can control playback from a phone over MPRIS, for example via KDE Connect.

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 works (a radio library with built-in stations, plus m3u, m3u8 and pls stream playlists), but streaming services are not supported.

Does mpz play internet radio?
Yes, and always has: stream playlists in m3u, m3u8 and pls play like any other playlist. Version 2.1.0 added a radio library with built-in stations from SomaFM, Radio Paradise, FIP, France Musique and Nightride FM plus your own, HTTPS, a radio row view, and stream titles from IceCast's status-json.xsl. Stream playlists still play directly, or import into the library.

What audio formats does mpz support?
FLAC, MP3, Ogg Vorbis, Opus, Speex, AAC, ALAC, M4A/M4B/MP4, WAV, AIFF, WMA/ASF, APE, WavPack, Musepack, TTA, MKA, DSD (DSF/DFF) and Shorten, played through your system's codecs (QtMultimedia with the GStreamer or ffmpeg backend on Linux, native backends on macOS and Windows). Playlists and radio streams: m3u, m3u8, pls. Since playback uses system codecs, exact format availability depends on what is installed.

Does mpz support gapless playback?
Yes, anywhere in your library. Decoded audio is buffered in memory (100 MB by default, configurable in Settings → Advanced), which also makes seeking instant. Qt 6 builds only, since version 2.1.0.

Does mpz have an equalizer?
Yes, since version 2.1.0. 10-band graphic and full parametric modes, importing presets from AutoEq, SquigLink and similar sources. On/off and preset are per output device ("Default" counts as one), the presets themselves are shared. The EQ follows the device in use, so unplugging headphones switches it along with the audio. It runs on the gapless engine, so gapless has to be enabled. Qt 6 only.

Does mpz support CUE sheets?
Yes, including gapless playback of single-file albums split by a CUE sheet.

Does mpz measure dynamic range (DR)?
Yes. Select tracks and pick "Dynamic range" in the playlist context menu, or open it from the track info dialog, to get a per-track and album DR log in the foobar2000 Dynamic Range Meter format. Qt 6 only.

What languages is mpz available in?
The interface is translated into English, Russian, Japanese and Serbian, and follows your system language by default.

Can mpz act as an mpd client?
Yes, as an experimental mode since version 2.0.0. You can add an mpd server as a library folder. There are caveats: see the README.

Does mpz support lyrics?
Yes. Lyrics can be embedded in tags, loaded from .lrc or .txt sidecar files, or fetched online from LRCLIB. They show up in the Track Info dialog or in a dockable Lyrics panel.

Can mpz edit tags?
Yes. Since version 2.0.8 there is a built-in tag editor for track metadata (title, artist, album and so on) on the formats TagLib supports: ID3v2, Vorbis Comment, MP4 and APE.

Why is it called mpz?
The "z" reflects a no-nonsense approach: no clutter, no distractions.