Music everywhere
Here is an article about how I play music around my different computers or devices.
Collection
I still have a music collection coming from various vinyl and compact discs that I started converting to MP3s starting around 1999 when I was offered a Rio PMP300. This device had so few memory space (32MB) that I needed to convert with bitrates as low as 64kbps. In those days it was really bad quality-wise. With the LAME Project open-source encoding quality made good progress. And I then often used the VBR standard quality of this encoder.
Then Ogg Vorbis appeared and I heavily used this format. It had good quality but hardware support was hard to find on portable devices.
These days I tend to use FLAC when I want to keep quality at its premium but still often use LAME with VBR or 320kbps CBR when I don’t want to use too much space.
One thing is for sure, my dad was pretty wrong when he told me in 1999: “MP3 will be replaced in a few years”. MP3 is still here in the 2020s and the quality is still good enough for me.
Sharing and keeping it clean
All my music is in a shared folder available to any family user of my Nextcloud instance. It makes it really easy to share with anyone or access it from anywhere. I can also sync a few albums easily on my various devices to listen later offline.
To keep it clean and well tagged, I use
beets. On the Nextcloud
server, I use the CLI with a user that can have read and write access to
the actual files on the filesystem managed by Nextcloud. So, if anything
change, an occ groupfolders:scan -- <group ID>
is required to keep
both apps (NC and beets) in sync.
Let’s start with one main use case.
Living room
I have a pair of studio monitors in my living room where I want to listen to my music collection. Those monitors are connected to a USB soundcard connected to my Raspberry Pi 4 (2GB) that is the Nextcloud server (and a lot more, it may be the server sending you this page).
As a long time MPD user, this was the obvious choice to play from the music collection. It’s very old and stable, it’s using very little resources, it has an API and can be accessed over the network or a local socket. Another strong point: it has an ecosystem of various clients that range from CLI tools to dedicated apps or even web front ends.
As we still use Android devices (I’d like to avoid that, Pinephone, I’m looking at you for the future) the obvious app is: MALP.
https://gitlab.com/gateship-one/malp
While on the local home Wi-Fi, we can use this as a remote that is really light and fast. Almost no latency.
If I’m using a laptop in the room, I tend to use ncmpcpp over Wi-Fi to control MPD. It’s simple, light and when you learn (or set) the keyboard bindings, it’s easy to use. I was a Sonata user before, but I try to use keyboard for everything it made sense to switch to ncmpcpp.
Streaming or remote listening
When out of range of my Wi-Fi or when I didn’t think about syncing my music before leaving, Nextcloud is still there to the rescue. I use the Music app for Nextcloud. On a desktop computer it does the job to browse and listen to anything in the library. But the less known feature is that it provides APIs to serve the music over the net: Ampache and Subsonic compatible.
On my Android devices, I use the fantastic subtracks app that is Subsonic-compatible. It’s simple and have, to my eyes, a great UI.
What’s missing
All my music needs are fulfilled with all those tools and services in place. All? Really? No, there’s still a Podcast centralized sync service missing. I tested various things and did not find one that fulfilled the way I want it to work. At this time, I use my RSS aggregator to store which episodes I listened to. But it still requires a lot of manual downloading, app switching or web browsing.
If you have any ideas, send me a mail or contact me on Mastodon.