Quester: A Modern MPD Client for Visual Audiophiles

I've been obsessed with music players for as long as I can remember. From Winamp's classic skinning to foobar2000's precision, I've always believed that how you interact with music matters almost as much as the music itself. So when I found myself needing a new music player for my Linux setup, I decided to build one.

The Problem with Existing MPD Clients

MPD (Music Player Daemon) is a fantastic piece of software - it's lightweight, reliable, and does one thing very well: play music. But most existing MPD clients feel... outdated. They prioritize function over form, and the visual experience often takes a backseat to technical features.

I wanted something that:

  • Celebrated album art as a central part of the experience
  • Provided visual feedback that enhanced the music
  • Felt modern and fluid to use
  • Still respected the core principles of MPD (lightweight, reliable, focused)

Enter Quester

Quester is my answer to this problem. It's a desktop MPD client built with Qt 6 and QML that puts visual experience at the forefront while maintaining the simplicity and reliability of MPD.

Key Features

Album-Focused Navigation

The main browsing experience is centered around album art. You can navigate through your music library using:

  • Cover Flow: A familiar 3D album browsing experience
  • Grid View: A clean, modern grid of album covers for quick navigation

Both views prioritize high-quality album art and make it easy to find exactly what you're looking for.

Dual Visualizers

Music is not just auditory - it's visual too. Quester includes two powerful visualizers:

Spectrum Analyzer

A custom-built bar visualizer using FFTW that provides real-time frequency analysis. It features:

  • Fully customizable color gradients
  • Multiple bar modes and animations
  • Responsive design that adapts to your music

projectM Integration

For those who remember Milkdrop from the Winamp days, Quester includes full projectM integration. This means you can enjoy thousands of community-created visualizations that react to your music.

Automatic Artwork Management

Quester automatically fetches album art from multiple sources:

  • Embedded album art from your music files
  • Local image files in your music directories
  • TheAudioDB API for missing artwork

You never have to manually search for or add album art - Quester handles it all automatically.

MPRIS Support

Quester includes full MPRIS support via D-Bus, allowing you to control playback using system media keys or desktop widgets. This integration is still in development but already provides seamless control from your desktop environment.

Touch-Ready UI

The entire interface is designed to be touch-friendly, with large, spaced-out controls that work perfectly with touchscreens while still feeling natural with a mouse.

Technical Implementation

Quester is built with modern Qt 6 and QML:

  • C++17 backend for performance-critical operations
  • QML frontend for rapid UI development
  • libmpdclient for MPD communication
  • FFTW3 for fast Fourier transforms in the spectrum analyzer
  • libprojectM for visualizer effects
  • Qt Multimedia for audio handling
  • D-Bus for MPRIS integration

The codebase is lightweight, well-organized, and designed to be maintainable and extensible.

Configuration and Customization

Quester is highly customizable:

Visualizer Presets

You can create your own color presets for the spectrum analyzer by adding JSON files to ~/.config/Quester/presets/.

Simple Gradient Preset:

{
 "Rainbow": ["#E50000", "#FF8D00", "#FFEE00", "#028121", "#004CFF", "#770088"]
}

Weighted Gradient:

{
 "Uneven": {
 "colors": ["#FF0000", "#00FF00", "#0000FF"],
 "weights": [1, 4, 1]
 }
}

projectM Settings

Configure projectM visualizations via the settings dialog, where you can adjust:

  • Preset path
  • Texture size
  • Rendering quality
  • Transition settings

Getting Started

Prerequisites

To build Quester, you'll need:

  • Qt 6.2 or higher
  • libmpdclient
  • FFTW3
  • libprojectM
  • PulseAudio or PipeWire

Installation

git clone https://github.com/anoraktrend/Stable.git
cd Stable
mkdir build && cd build
cmake ..
make
sudo make install

Usage

Ensure your MPD server is running, then simply launch Quester. The application will attempt to connect to localhost:6600 by default.

The Future of Quester

Quester is still in active development. Some upcoming features include:

  • Full MPRIS implementation
  • Improved playlist management
  • Additional visualizer modes
  • Customizable UI themes
  • Mobile support (postmarketOS)

Join the Project

Quester is open source and available on Codeberg. If you're interested in contributing or have ideas for improvements, feel free to fork the repository and submit a pull request.

Conclusion

Quester is more than just an MPD client - it's a celebration of music and the visual experience that accompanies it. By combining modern design with the power of Qt, Quester provides a music player that feels both familiar and fresh.

If you're tired of lackluster music player interfaces and want something that truly enhances your listening experience, give Quester a try.


-# Music is life. That's why our hearts have beats