- Getting music
- Before the import
- Import files to library and organizing
- Determining the Key and Energy with Mixed in Key
- Creating playlists
- Playing music
There are several ways to obtain music nowadays:
- Rip it from CDs
Use ExactAudioCopy on a windows machine with an optical disc reading device (they still exist outside museums).
- Rip it from vinyl
Use a turntable, a good analog to digital audio converter and use Audacity to record it. Audacity offers some filters to reduce noise and remove cracks and pops.
- Download from web 2.01 websites
youtube-dl is the swiss-army-knife for downloading from those sites. Check if your local radio stations have a player or
- Some radio stations provide their shows as podcasts.
- Some DJs run their own podcast to promote themselves.
- Buy it online.
Before the import
Transcode to a supported format
These tools come in handy:
- ffmpeg the swiss-army-knife for audio & video en-/trans-/decoding on the command line.
- XLD to transcode audio files, split one file to tracks, etc.
If you want lossless encodes in a iTunes library, there’s no other choice than to transcode the files to Apple Lossless. XLD handles this case nicely.
Set and clean ID3 tags
- MusicBrainz Picard is matching the files’ accoustic fingerprints against freedb2 and sets their tags accordingly.
Use mp3tag to derive ID3 tags from folder & file name and fixing ID3/APEv2 tags.
Mp3tag is a power tool for mass manipulating and cleaning tags. It’s outstanding and works well within wine. Nothing comes close to it and it is the only reason I keep wine installed.
Wine is holding me back from upgrading to macOS Catalina as it does not support 64bit-only OSes yet. I’m btw. afraid of the Music.app which comes with macOS Catalina.
Import files to library and organizing
All my music files are managed by iTunes. iTunes is really good in dealing with large music collections. I subscribed to iTunes Match to have the music available on all of my devices.
iTunes Match restrictions
iTunes Match is sometimes slow.
It matches clean versions of lyrically explicit tracks. It’s annoying, but since voices annoy me in music and I rarely listen to rap, it does not affect me much. Also I keep the original files instead of replacing them with the matched version.
If you listen to DJ mixes, you will hit iTunes Match’s
2 hour or
200MB file size limit.
Most of these mixes are distributed as MP3.
mp3splt splits the files evenly without re-encoding.
Rating with a schema
After the import of new tracks, I start rating the tracks. Over time I’ve developed a rating schema (on a scale of 0 to 5 stars).
0 stars: new to library, needs to be rated
1 stars: rated to not keep.
2 stars: keep for a reason, but the track is probably not good
3 stars: an average track
4 stars: a good track
5 stars: a personal favorite track
Stars is very useful to rate music via hotkey.
Accurate genre field
I try to set specific genres: Instead of
Rock I narrow it down to
Rock/Metal or even
Rock/Metal/Black. Here are a few other specific examples:
Drum & Bass/Jump-Up
Tagging something as
Pop is basically avoiding to set a genre. For
Pop I started adding the decade like this:
Clean up the iTunes library with beaTunes
beaTunes not only analyzes the content of each track, but also inspects the iTunes library.
The inspection detects illogical tags, missing compilation tags, different notations of the same artist, finds duplicates, etc.
Go through the results and commit the results.
Determining the Key and Energy with Mixed in Key
Mixed in Key analyses the key and energy of music files.4
Create a smart playlist MiK todo which lists all files without Energy or BPM and a rating of greater or equal than 2 stars.
Creating smart playlists makes so much more sense with the rated and analyzed tracks. I recommend naming them wisely. I tend to follow the BEM naming convention5 and name them roughly like this:
Scaffold a handful of smart playlists:
- for Energy levels (filter rules depend on your Mixed in Key configuration)
- for each possible rating (Stars 0, Stars 1, …, Stars 5)
- for Added in the last x weeks/months.
I have those for 4 weeks and 6 months and call them added-4w and added-6m.
My rating scheme (see above) leads to two special Star playlists:
- Stars 0 is my “to rate” playlist.
- Stars 1 is my “to remove” playlist.
Now you can create smart playlist like these:
- Banger tracks: Track is in playlist Energy 8 and Stars 5.
Calm popular music: Genre begins with
Popand is in playlist Energy 4 or Energy 5.
Hard Techno post 2010: Genre begins with
year >= 2010, in playlist Energy 6, 7, 8, 9.
- More than 4 stars
- More than 4 stars and in BPM range 124 to 127
- Long and calm tracks: longer than x minutes, Energy less than 5.
In beaTunes you can setup some criteria like “Instrumentation”, “Key”, “Speed” etc. and let it create a playlist for you based on a seed track selection. That is super nice and the results are good. But as time showed, I do not use that feature much. I’m fine with the smart playlists.
- I use rsync to sync the Music folder to my NAS:
rsync --archive --verbose --human-readable \ --itemize-changes --progress \ --prune-empty-dirs --delete \ -e ssh ~/Music/iTunes me@NAS:~/backup/Music
- export the playlists with Doug’s Batch Export Playlists script.
⚠️ Make sure to export your Stars playlists! iTunes does not save the rating in the files’ tags! With those playlists you can recover your ratings.
- Add the exported playlists to a git repository and commit the changes, push to a remote host.
With iTunes match I can listen to my music on any of my devices.
On desktop, I work with my the smart playlists and the “Column Browser” in the “Song” view mode:
with MPD and Cantata
To play music on my stereo I launch Cantata to control the MPD which is connected to it via HDMI. It plays the files from my NAS. I
scp the exported playlists (with corrected file urls) to the
playlists folder of the mpd.
DJ set preparation
When creating a DJ set, I have a playlist of A tracks to play which acts like a track pool. Traktor reads my iTunes library and I usually just pick tracks out of that pool and go with it.
Some mixes may need more preparation. Then I create a plain old playlist in iTunes first and use that in Traktor Pro 3.
A term coined in 2003 for the social web and user-generated content sites, etc. ↩
This is collision-free until the year 2049. The first Pop songs I own are from the 1950s (
And more, like BPM. It can also set cue points to use with DJ standard software. ↩