Hey,
So in regards to using the USB, I had all my favourite tunes on it. I was able to connect the USB drive to my computer and drag and drop the directory on the USB that contains the tracks into the “Collection” under “Playlists” within Engine DJ Desktop.
Engine DJ Desktop analyzed the files, and I was then able to use Sync onto the USB drive. Even though it’d say something like “Requires 108GB”, which made me think it was going to do something silly, when I Sync’d to it, it just put the database onto the USB and left all the files alone.
This was nice because it allowed me to pretty quickly use the controller and test it out. Honestly though, if I’d realized I could just connect to Engine DJ Desktop from Engine DJ OS if I allowed Engine DJ Desktop through the firewall, I might have just done that instead of worrying about the USB.
Previously, I used my own script to copy files to the USB. When I copied the files over, I would keep their directory structure from the source onto the USB. This would result in files such as:
/mnt/USB/Collection/Trust In Trance Records/Astral Projection/Ten [23152]/03 Astral Projection - Dancing Galaxy (Dynamic Remix).flac
However, even though I was able to get my tracks onto the USB the first time, I was not able to simply update the Engine DJ Desktop “Collection” with those new tracks. After the first time, any time I would drag and drop that same directory into Engine DJ Desktop, it would duplicate and create a new playlist of all of the files.
So, if I drag my Collection
directory into “Collection” on Engine DJ Desktop, it creates the “Collection/Collection” playlist. If I drag and drop my Collection
directory again, instead of updating the existing playlists, it will create “Collection/Collection 2” and re-import every track.
Because of this, even though it was cool I could put the database on my USB, it was pretty useless to me.
After learning the these limitations of Engine DJ Desktop, I had to take a different approach. I was pretty disappointed that it couldn’t detect new tracks by itself, and pretty frustrated that I couldn’t maintain my directory structure without Engine DJ Desktop creating playlists for every single directory, when I could just utilize the actual directory structure. Like, I had nowhere to put my own ACTUAL playlists because Engine DJ Desktop created thousands using my directory structure.
So now I modified the script that copies files to my USB drive to instead create relative, symbolic links to the source tracks into a flattened directory structure.
The way my script knows to pull a track is that I have tag’d it with a custom tag I call MIXIT
. Within deadbeef
, I have a Custom Shell Command called “Flag for Mix”:
metaflac --remove-tag=MIXIT --set-tag=MIXIT=$(date +%%Y-%%j) %F
Today, that’d result in a tag of MIXIT=2023-269
. Honestly, I just wanted a boolean to mark tracks I wanted, but thankfully I’d talked to enough DJs and noticed that they all store their tracks in directories like “2023-09” or whatever, sorting their tracks by when they found them. I thought it would be smart for me to track that same information, so that’s why I apply the current date.
When scanning the files for those with this MIXIT
tag, I pull out that value and find the year portion of the string, and I store each track link in a directory of that year. I also remove any track number prefix on the track when creating the link, so now the structure would look more like this:
/mnt/Music/MIXIT/2020/
/mnt/Music/MIXIT/2021/Astral Projection - Dancing Galaxy (Dynamic Remix).flac
/mnt/Music/MIXIT/2022/
/mnt/Music/MIXIT/2023/
Where, in this example, that file would actually be a relative, symbolic link to the following file:
/mnt/Music/Collection/Trust In Trance Records/Astral Projection/Ten [23152]/03 Astral Projection - Dancing Galaxy (Dynamic Remix).flac
The power of these being relative, symbolic links is that I can now share the /mnt/Music/
share via SSHFS in Linux or share /mnt/Music/MIXIT
via SMB and access within Windows to work within Engine DJ Desktop. Even though Engine DJ Desktop arbitrarily refuses to add tracks from network drives, even when mapped to a drive letter, and even though the drive shows up in the software itself, you can use a workaround for that:
mklink /D "C:\Users\YOUR_NAME_HERE\Music\MIXIT" \\remote_server\MIXIT
The power of this directory structure is that I can go into the MIXIT/2023
directory, Select All (Ctrl+A), and drag and drop all the tracks into the “Collection/MIXIT/2023” playlist within Engine DJ Desktop, and it will add and analyze any new tracks without giving me an aneurysm.
Now, I can use this MIXIT share to export my tracks to the internal drive of the Prime 4+, as well as export to my USB drive to listen to tracks on the go, or plug in to another controller and have tracks ready to mix.