Skip to content

DavidCraddock.net

  • About
  • Music
  • My Computer
  • Tutoring
  • Contact
  • GitHub

Tag: MusicBrainz

Organising Huge Music Libraries for use with Serato DJ Pro

May 5, 2021November 11, 2021 wordswords1 Comment

My music library is around 24k files, mostly FLAC and some 320kbps MP3s. I use the following tools to organise my music library:

Acquisition:
dbPoweramp CD Ripper – https://www.dbpoweramp.com/cd-ripper.htm
Bandcamp Collection Downloader – https://github.com/Ezwen/bandcamp-collection-downloader
Soulseek – http://www.slsknet.org

Tagging and Metadata:
Beets – https://beets.io
Mixed In Key 8 – https://mixedinkey.com
Rekordcloud – https://rekord.cloud/

Backup and sync:
Robocopy – comes free with Windows 10. Documentation: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy
Google Drive
Synology Client

Searching:
Everything Search – https://voidtools.com/

Playing:
Foobar2000 – https://www.foobar2000.org/
Serato DJ Pro – https://serato.com/dj/pro
Plex Media Server – https://www.plex.tv/

dbPoweramp CD Ripper

I have found this to be the fastest and most reliable CD ripper. It is commercial but is a very small cost and contains access to a lot of metadata services. I rip all my CDs to FLAC.

Bandcamp Collection Downloader

This is so useful. It required a few tweaks to get to work reliably under Windows, and if you haven’t got any scripting skills then it will be a pain, but it has been hugely useful in syncing my Bandcamp purchases, of which I have over 200. It checks whether it has downloaded a purchase before as well, so you don’t need to re-download everything, just what has been added recently to your collection. I use the following settings in a batch file which works reliably. If you want to use it you will have to replace ‘socialistsynthesis’ to be your bandcamp username. Remember to download the latest JDK NOT just the latest JRE otherwise it won’t work.

java -jar bandcamp-collection-downloader.jar -f=flac -j=1 -r=3 socialistsynthesis

Soulseek

I make a genuinely huge attempt to purchase all the music I play for my stream. I have spent SO much money on digital and physical copies of music over the years. When something is not available for purchase, or I have an old MP3 rip from a CD and I want a FLAC, then I use Soulseek. Whether you do is up to you, just know that it is there.

Beets.IO

I use Beets.io to manage all tagging. It is extremely powerful if you are comfortable with the commandline. This is my current config:


plugins: duplicates replaygain the ftintitle discogs bandcamp unimported plexupdate
directory: S:\audio\Music
import:
copy: no
replaygain:
command: S:\audio\mp3gain.exe
targetlevel: 92
plex:
host: localhost
port: 32400
token: token
bandcamp:
preferred_media: CD,Vinyl
include_digital_only_tracks: true
search_max: 5
art: true
exclude_extra_fields:
- lyrics
- comments
unimported:
ignore_extensions: jpg png jpeg gif log
paths:
default: %the{$albumartist}/$album/$artist - $title $bpm
comp: %the{$albumartist}/Comps/$artist - $title $bpm

I use the following plugins:

duplicates – for removing duplicates
replaygain – for setting the gain level for the track intelligently in the file as analysed by mp3gain.exe
the – For organising artists which contain the word ‘The’. For example ‘The Chemical Brothers’ becomes ‘Chemical Brothers, The’ on the top level directory.
discogs – Provide metadata from Discogs.
bandcamp – Provide metadata from Bandcamp.
unimported – Ignore non-music files and don’t copy them over.
plexupdate – This updates my Plex Media Server library so it automatically imports the new music.
ftintitle – This moves all the ‘featured artists’ in song names and albums into the title of the song.

I structure the music in my library like so:

S:\audio\music\Chemical Brothers, The\Surrender\The Chemical Brothers - Under The Influence 135.mp3

  • S:\audio\music – my music collection top level folder.
  • Chemical Brothers, The – the artist with ‘The’ moved to the end for easy scanning through the artists list.
  • Surrender – the album.
  • The Chemical Brothers – the full name of the artist.
  • Under The Influence – the full name of the track.
  • 135 – the BPM of the track.
  • .mp3 – the file extension – usually either flac or mp3.

My Beets.io workflow:

  1. I put all new music file to be processed in S:\audio\music\incoming
  2. I run beet import S:\audio\music\incoming
  3. I answer the interactive import questions to match up metadata with releases.
  4. Once this is complete I run beet move -p to preview the locations beets will move my new imported files to on in my music collection.
  5. Once I am happy with the new locations I run beet move to copy them across.
  6. I then run beet dup -d to delete any duplicates that have arisen.
  7. I mirror my entire collection over to my external DJing hard drive with this command robocopy.exe /MIR S:\audio\music Z:\music as I already have a Windows drive letter mapped to my DJing Macbook Pro’s external HD. (My cloud backup clients constantly monitor my files and upload any changes so I don’t need to worry about those usually)
  8. I then drag my macbook external hardrive icon within Serato DJ Pro’s ‘Files’ tab onto the ‘All audio’ section in Serato DJ Pro and it will import my files for me.
  9. I disconnect my Serato interface, access the ‘Preperation’ tab and click Analyse all files to enable the beatgrid, BPM detect and song key detection for Serato DJ Pro.

Mixed in Key 8

I would love this software so much if it actually worked reliably for large music libraries. But it doesn’t. It seems to choke on libraries above a few thousand, and it is very slow. So I use it mainly on planned sets – sometimes I will put aside less than 100 files that I want to play for a planned set, and it is very good with that. I don’t know if they have made it reliable in later versions, the current version as of writing is 10.

Rekordcloud

This has so much potential but I haven’t dug into it yet properly. My subscription expired so now I have to wait until I have enough money to get another one. It is the only thing I know of apart form MIK that can automically set cue points, and I hope to use it as a possible replacement.

Everything Search

This is a free Windows-only program that searches for files extremely quickly. It is so fast that I can get results from all my media files in a couple of seconds when I am searching for something while I am DJing on Twitch.

Backup Software

I use a combination of Google Drive and Synology Drive Client to backup my files to external locations. I have 1.7TB of external backup storage, of which my DJing music is ~500GB as it is mostly FLAC.

Foobar2000

I was a big fan of Winamp in the day, and this is the modern version. It is free, very configurable and very fast. I use it when Plex Media Server is not working for whatever reason.

Serato DJ Pro

This is what I use for my DJing when playing live. I analyze all my files to set the beatgrid, BPM and key. I have a 2TB external USB 2.0 hard disk so analyzing my entire library takes a couple of days of leaving my Macbook Pro on. But for new smaller additions it is much faster.

I use Serato autocrates a lot to mine the large amount of metadata I’ve added as part of my process. I have seperate autocrates for each 10 BPM division, e.g. 71-80 BPM, 81-90 BPM etc. I also have autocrates set by release date – I have music released in the 80s, music released in the 90s, music released in the 00s…etc. There is so much you can do with autocrates if you have properly set metadata.

Plex Media Server

I subscribe to Plex Media Server which is where I put all my music and video files for non-DJing playback. Because I subscribe (you can get the basic server and almost all functionality for free) I get access to the wonderful PlexAmp player which is a really great service. I have it on all my mobile devices and computers. Plex Media Server’s handling of ‘Various Artists’ compilations is problematic and I have written about it on this blog. I use a script I put together to fix problems when I encounter them. With the latest version of Beets.io you can get very specific with the ‘beets ls’ query language so this script works very accuratedly.

Posted in Music, Solutions to a Specific ProblemTagged CD ripping, dbPoweramp, FLAC, large library, metadata, Mixed in Key, MusicBrainz, Picard, serato dj pro, tagging
Blog at WordPress.com.
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy
  • Follow Following
    • DavidCraddock.net
    • Already have a WordPress.com account? Log in now.
    • DavidCraddock.net
    • Customize
    • Follow Following
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar