Wax: digital music manager

By Rob Zwetsloot. Posted

There are many ways to organise – and play - your music with Raspberry Pi, and we’ve told you how to use a few in the pages of this very magazine over the last decade or so. Maker Jeffrey Barish has created a way to simplify the process using only a Python script, with classical music in mind.

“[It’s] designed for music lovers, not programming wizards,” Jeffrey explains. “By taking a novel approach to the challenge of cataloguing a music collection, Wax avoids frustrations associated with other music management systems, especially when handling classical music. Other programs force users to think about tags, file names and layout, style guidelines, compilations, parents, and more. Wax hides the gears and levers, providing operation that is more natural and intuitive. It makes it possible to enjoy your collection as a collection of music rather than a collection of data.”

Wax differs from most existing music managers in three ways. Instead of individual tracks, music is catalogued as ‘works’ – such as an album, a symphony, an opera, etc. Secondly, works are categorised by genre, but it also allows you to tag works in a way that is relevant to the genre too; symphonic works can include composer and conductor, while pop music comes with the group and title.

The final feature is that it will start playing music as soon as you’ve given it enough requirements (in the form of metadata), which you can then change on the fly.

Multi-core wonder

Wax is specifically designed for Raspberry Pi 4 because of its quad-core processor. “Wax uses one core to run the user interface, one for playing, one for ripping, and the fourth for time-consuming tasks like fetching metadata from the cloud, like MusicBrainz and Cover Art Archive,” Jeffrey says. “Many audiophiles worry needlessly that burdening a processor involved in playing a sound file can impair the quality of the sound it produces. The multi-processing architecture of Wax obviates this concern as the core responsible for playing the music is not simultaneously performing any other tasks.”

As a 2TB SSD is being used for storage, you only need normal sized SD card for Raspberry Pi. Jeffrey has used 2GB here. The SSD goes into the underside of the Argon ONE case, and connects via a USB 3.0 adapter

From the app you can select music starting by genre. “Works by the same composer are listed together,” Jeffrey tells us. “Likewise, multiple versions of each work are listed together. This hierarchical sorting makes it easy to survey the collection for the desired recording – possibly one that you forgot you had. Wax also provides incremental search if you already have a specific work in mind.”

Individual tracks or even the entire work can be added to the queue. You can also group tracks within a work – perhaps to represent the acts of an opera. “The other interesting feature is that the values in any column can alternatively be represented as a filter button,” Jeffrey continues. “[I can convert] the ‘subgenre’ field to a filter button by dragging the column header to the filter button area. Selecting a value with the filter button removes works from the list that do not match that value.”

Dive deeper

While the ‘gears and levers’ are usually hidden, you can enter a robust edit mode that lets you customise metadata, as well as creating new metadata for works. You can use the metadata downloaded from the online sources when creating and editing too.

Specific data is used to filter inside genres – the categories of data can be edited too. “WaxConfig is a separate program used for configuring Wax,” Jeffrey says. “Most importantly, this is where you specify genres, including their name and the primary and secondary keys. The Info page provides information about your collection, including the number of works in each genre.”

You can see an example of this in the image to the left. Jeffrey has put together a very in-depth guide on how to install and setup Wax, as well as going into more depth on how to use it. Performance on Raspberry Pi 4 is good too, especially on Jeffrey’s setup.

If you need to dive deeper to edit the tags for genres, you’re able to do that with Wax-Config

“I run Wax on a Raspberry Pi 4 with 4 GB of RAM,” Jeffrey tells us. “I use the NanoSound One DAC with the Argon One M.2 case. The NanoSound One DAC uses the TI PCM5122 DAC for high-quality audio output - 112 dB SNR. The Argon case makes it possible to integrate a 2TB SSD which I use for storing my sound archive.”

Even with the high-power audio hardware and no active cooling, the CPU temperature only reached 45C, with a CPU load of 2.4 (of a theoretical maximum of 4.0 due to the quad-core architecture). He even reckons a 2GB Raspberry Pi would do the job just fine.

“Wax makes it easy to find and appreciate the music I want to hear,” Jeffrey says. “Finding a recording of a specific work was often hard and always inconvenient when I had to sort through thousands of LPs and CDs. With Wax, I can make a selection from the comfort of my listening position. I sacrifice nothing for this convenience because Wax presents all the information I need to appreciate the recording -- artist names, for example -- and I am able to explore further, as I used to do by reading record jackets or CD liner notes, by accessing Wikipedia and liner notes in Wax from the comfort of my listening position. Instead of a wall full of recordings, my entire collection now fits in a tiny box powered by a Raspberry Pi.”

From The MagPi store

Subscribe

Subscribe to the newsletter

Get every issue delivered directly to your inbox and keep up to date with the latest news, offers, events, and more.