How I listen to music
Streaming services
The way most listen to music has been almost entirely taken over by streaming services.
Spotify, SoundCloud, and YouTube Music offer massive music libraries that make it easier to discover and share music with others,
but it’s not as good as it seems.
Drawbacks
Streaming services require an internet connection to use and usually rely on subscriptions or ads (sometimes both) for profit, with very little of that money going to the artists as compared to directly supporting them via purchasing merchandise, physical music, or something like Bandcamp.
As discussed in my article about DRM, you do not own any of the music you stream.
You don’t control the ecosystem of the service you use, so any changes that service makes are out of your control, whether to the library or to the service itself.
Local music
After a lot of thought, I decided to start my own local music library.
While that can include physical media like CDs and vinyl, I wanted my collection digitized with more benefits than streaming, the caveat being I’m the one who has to curate my own library and set everything up.
With a local collection, I’m able to listen without the internet or signing up for a service, and I get to control every aspect of my library.
File quality
A huge point of contention is if to store lossless or lossy (uncompressed or compressed).
On my main computer, storage isn’t a massive concern, so my library is in the lossless FLAC format.
Mainly because I want to archive and be listening to the “best” version I can, despite people often debating if you ‘hear the difference’.
For devices with smaller storage sizes (e.g., MP3 players, phones, etc.).
I like exporting my library from lossless FLAC to a more compressed lossy Opus for storage space.
Using your own media
For a lot of people that own CDs, it’s easiest to just digitize your physical media.
For CD ripping, I’d recommend using a program called abcde.
Another way of obtaining music is something like Bandcamp;
Artists can put their music up for purchase, and you can download it locally.
Soulseek (Nicotine+)
Nicotine+ is a graphical client for Soulseek, a P2P file-sharing network that primarily shares music.
It’s comparable to old Napster, where users share their music collection with each other, which is piracy.
Personally, I don’t see an issue downloading music from an artist if they’re no longer selling the music themselves or you’ve already purchased their music somewhere else.
Just be mindful and support your artists where you can.
Keeping organized
You should keep your library organized from the start since it’s easier to maintain.
I’d advise against creating folders per genre since that gets murky quickly, and artists can shift between genres; it’s advisable to stick to a format similar to below.
Music_Folder/Artist/Album (YEAR) [FILE_FORMAT]/
Most music you download or rip has its own metadata baked into it already (if not, you can add it using MusicBrainz Picard).
Which a lot of music players take advantage of to dictate sorting.
Listening Statisitcs with local music
One of my favorite features of streaming services was listening statistics.
It lets you see what you’re listening to and gives recommendations for new artists or genres.
Added benefit is being able to compare what you listen too with other people,
It’s having listening statistics is something I wanted when I started my local collection.
Few options for listening statistics are:
-
Last.fm is the most mainstream option, but it has features behind paywalls and is proprietary.
-
Libre.fm is an open-source alternative that’s not driven by the same profit incentives as Last.fm. It’s not free to maintain, though, and the developers have put in a ton of effort, so I’d recommend donating if able.
-
Maloja is a completely self-hosted listening statistic database.
Scrobblers
After picking where you’ll send your listening statistics, you’ll need a “scrobbler” to send what you’re listening to from your device.
Your choice depends on what music player you are using, where you’re sending your statistics, and what device you are using. (Some music players have a plugin for it prebuilt into them.)
Some options:
Music Players
NCMPCPP
My main music player and my preferred TUI music player is NCurses Music Player Client (Plus Plus) (NCMPCPP).
It’s primarily used with keybinds and is extremely customizable with a lot of features.
(NCMPCPP is a client for Music Player Daemon (MPD).)
The benefit of MPD is that it runs in the background without needing a client program open to be usable. It can be controlled globally with keybinds or even another device.
I use playerctl + swhkd for global keybinds.
MPRIS support is needed for playerctl to detect MPD; I use mpd-mpris (mpDris2 is another option).
Simple keybind setup (swhkd):
# Music Controls
super + Right
playerctl -p "mpd" next
super + Left
playerctl -p "mpd" previous
super + Down
playerctl -p "mpd" play-pause
super + minus
playerctl -p "mpd" volume 0.02-
super + equal
playerctl -p "mpd" volume 0.02+
Audacious
Audacious is my GUI music player of choice and is what I would recommend to most people.
It has a user-friendly, easily customizable interface (drag and drop) and a lot of nice plugins, including a scrobbler built in.
Others players :
- cmus
- musikcube
- Fossify Music Player (android) (possibly more additions in the future)
Self-Hosted Streaming
While finer details are outside the scope of this article,
It’s possible to create your own streaming service using something like Navidrome or MPD’s built-in HTTP server
(Your local network can be accessed with a local VPN via WireGuard).