Auto Re-Locate Missing Files not working

Yesterday i re-arranged my entire library to get more organised. Made new folders with more genres and sub genres. All files in my engine library got red marked as expected. When i press auto re-locate all missing nothing at all happens. Im a bit worried. Has a lot of hot cues and loops in those files and i dont want to do it all over again. All files are in the same directory as before, just new mappings. Anyone else have the same problem??

2 Likes

auto-relocate really is a half-baked feature. unfortunately, you’ll need to ‘locate missing’ on each song manually. :frowning:

1 Like

5400 tunes :stuck_out_tongue:

2 Likes

i know :(. If you have some light programming skills, a script to fix this isn’t that hard. :frowning:

Sad but true. You can manually locate each one and salvage your grids, cues and loops. If I have to move something that’s what I do. I’m not sure, but it might then auto-relocate at least a subset of others.

If you have SQL skills you could edit the database in a SQLite editor. But, be sure to backup first.

That’s what makes the red missing files.

Yes. I also wrote that it was expected…!! Im used to rekordbox and never had this problem on that program. But now im using denon gear so i want to use engine

1 Like

I just opened rekordbox and auto relocated everything in 10 seconds. Why can it be so easy in rekordbox but not working at all in engineDJ?? I cant relocate manually in engine, doesnt work at all!! Maybe go back to using Pioneer is the answer to the problem??

2 Likes

Rather than hoping for a repair to appear in one of the future updates, (maybe) I think I’ll have to stop moving files after I’ve analysed them.

Hmm, I have no problem.

  • Right-click on the red file.
  • Choose “Relocate Missing File” in the drop down menu. EngineDJRelocateMissingFile
  • It opens Finder on my Mac. I assume that it will open File Manager on the PC. Navigate to the file and choose “OPEN”.
  • If you renamed the file then a popup will protest “Track Mismatch”, but you can override with “Yes”. If the file has the same name, but was just moved, then it will just proceed.

Of course this is not optimal, but it is a way to save your grids, cues and loops. It’s not practical if you moved lots of files. I use it for the odd case when I decide to rename or move a file. What @Pasha says is a good general rule.

We can hope that the Engine DJ programmers will eventually improve the Auto Relocate.

1 Like

This has been an ongoing issue since the very beginning. I’ve been begging for this since version 2, way before the so-called “Auto Relocate All” feature was even a thing. You can see a lot of posts about this topic with just a quick search. Imagine the excitement when it was announced, only to be disappointed by it searching only in the Desktop, Music and Documents folders… What if your music is in a different folder? Like, I don’t know… an external disk??? Then it doesn’t work. “But you can manually relocate them yourself… INDIVIDUALLY” was the best reply I could get from the official support after many attempts. As if us deejays mixing with digital music don’t have a gazillion of tracks by now. One would think that’s the whole point of getting one of these devices. For me, this topic is the reason why I never switched. I’m still here every so often because there’s a club that has a couple of Denon devices. Boy are they great devices. It’s such a shame that they have to be backed up by such a lousy desktop client. Otherwise I’d buy a pair of my own.

Anyway, I could ramble on for hours about this. I was lucky to have found a workaround, and I thought I’d share it in case it could help someone in despair like I was.

Please don’t take it as the unique way of doing it and assume it’s going to work for you 100% just because it did to me. Just take it as an inspiration to investigate further your case and to hopefully get there easier.

Ok so your library database is located in “Music/Engine Library/Database2” (I’m using Windows, but yeah, basically your local documents music folder). Ever wonder where the backup that gets done every time you close the program is located? It’s located in “Music/Engine Library Backup/Database2”. Yes, it’s ALSO in your local documents folder. What kind of backup is that? What if your laptop gets stolen? And it’s not like this is documented anywhere. Well, now that you know, back it up to Dropbox or something every once in a while. Moving along…

When you import tracks from drives other than your local one (nothing very unusual, right?) to Engine DJ, at least in Windows, there is yet another database folder that gets created in that particular drive (this was back in version 2, now I’m not sure). This is transparent to the user. So transparent, in fact, that I almost lost all my data from that entire drive because I had no idea about this.

So my music is in the drive “E”, therefore the database is in “E:\Engine Library\Database2”. And the songs from that drive analyzed by Engine DJ are stored in that database, and not in the one from my personal music folder. Why? I wish I knew. Because it’s not like you’re gonna take that drive to another computer and it’s gonna work. I tried. And about the backup… Do these databases get backed up as well? Anyway…

So eventually, it was only a matter of time until something happened. In my case, I got a new laptop! But again, this is not very unusual, right? So I decided to reorganize my tracks so that they were all in the local disk, to have Dropbox backup and whatever. And that was when I found out that Engine DJ assumes you are going to have the same computer for your entire deejay career.

So I had to do some digging. I inspected the database inside those infamous folders. There were plenty of SQLite databases. Why more than one? And on each drive? Beats the f#€k out of me. I just looked everywhere for the old path, in hopes of replacing it with the new location. And I found out that the file “m.db” has a table “Track” that has a column “path”. Actually, all the other files have it too, but they were not populated for whatever reason. Double-check this if you’re gonna follow my steps.

The tricky part is that the paths that are stored are relative paths, or so they seem. This could be to facilitate portability across different operating systems. The thing is that, I found the old path, but what should the new path be? Well, like I said, I had a database in my drive E:, and a database in my local drive. So thanks to that I was able to compare them, and come to the conclusion that I had to search and replace

this: ../Music/

with this: ../../Dropbox/DJ/Music/

in the database from my external drive, obviously. Then, replace the local database files with the altered ones. This tricks the program into thinking that what was my external database is now my local database. It was a tough shot, but it worked. And yes, luckily I didn’t have any tracks locally, otherwise I would have had to merge the two databases or something.

So here’s what I did. And it goes without saying that you need to backup whatever you try. A simple copy and paste on the “Database2” folder goes a long way.

Download SQLite tools, in my case for Windows. Extract the sqlite3 executable and run it in a command line pointing to the “m.db” file, like so:

sqlite3.exe "E:\Engine Library\Database2\m.db"

Once you’re in the SQLite shell (you can tell by the sqlite> prompt), type:

SELECT path FROM track WHERE path LIKE '../Music/%';

to check the old path (obviously replace these values with your own). And hopefully you will see all your paths pointing to the old location. This also helps filter out those which are not in that location.

Since I already figured out what I had to replace with what, all I had to type was:

UPDATE track

SET path = REPLACE(path, '../Music/', '../../Dropbox/DJ/Music/')

WHERE path LIKE '../Music/%';

Now you can use the same command as before to check if the changes were done correctly:

SELECT path FROM track WHERE path LIKE '../../Dropbox/DJ/Music/%';

Like I said, take those altered files and put them where the local database should be. Back up the old one if you want. In my case it worked right away and populated all the missing (I guess) less relevant files. And I was so happy to see all the red files turn to white.

In my case, a few files were not found (still in red). I realized it just so happened to be the ones I exported to a USB stick in a particular deejay set that I remember. So it might have been that the sync information was stored in the local disk, and because the database that I’m working on right now is originally from an external drive, that information is lost. Or maybe this sync information is in another one of the other database files. Who knows. This time I could manually locate the files (there were a few, not thousands). The point is, YOUR MILEAGE MAY VARY.

And be very careful with where you place your files from now on!

I really hope it helps someone in the same situation as me. I really don’t believe that there are so few of us. And I really don’t know why Engine DJ does not improve this. If you don’t want to scan an entire drive, then have the user tell you which folder to start looking from. I don’t know. Besides, the files are hashed in some way, because it knows when you’re trying to point it to a wrong file. So what gives?

Sincerely,

Alex

3 Likes

Thanks for sharing this.

I’ve started work on a tool to help w/ issues like this and hope to get it done by end of summer. The schema is quite brilliant actually.

It is the exactly use case you mentioned. I’ve spent the past two weeks working on command line utilities that poke around the Database “Libraries” to hunt and resolve issues, thus loads of hours studying the schema.

The idea is that an external music drive is “portable”. Meaning, you can absolutely take a drive from my computer, to yours assuming the mounting point is correct. With any POSIX compliant OS (UNIX, Linux, MacOS, etc…) system, the relative path works perfectly as it’s relative to Engine Library/:open_file_folder:. You can take a “music” drive from your Mac (formatted in exFAT of course) and mount it on your media players and it would work perfectly.

The “root” database will be on your local machine and serves as the hub for any mounted storage devices. Again… brilliant.

Hey buddy, kudos to you if you’re gonna provide something to the community. I probably haven’t spent as much time as you figuring out the schema, but I can code. So let me know if I can help you with anything.

I guess what you’re saying makes sense, but the schema’s good design is defeated by the fact that you can’t move your files. I mean, I guess it’s cool that you can take your external drive to another Engine DJ and have it work right away. But right now, it’s at the expense of not moving a single file, let alone the folder hierarchy, or else it won’t be able to find them.

For me, I’m normally using a couple of sc6000m decks, which are running Engine OS. So there’s not much value for me in having more than one Engine DJ. My music is in one place, which is safe, and depending on where I go, I just push my playlists with Sync Manager to my USB stick and off I go.

Denon knows relocation of files is important because eventually they sort of implemented it (I guess because of the many requests here in the forum?). And don’t get me wrong, it’s better than nothing. I guess many people keep their music in their documents folder. But others like me, don’t.

We would all be happy if you could just tell the program which folder to start looking from. Instead of going to the documents folder by force. Damn, the functionality is there, and I know where my music is. Just let me tell the program where to look for it, for crying out loud…

If this renaming of paths hadn’t worked, I would have gone with junctions or symbolic links. I didn’t try it but I have a feeling it would work. I use them all the time.

There’s another idea to try as a workaround.

Anyway, let me know if we can join forces

Alex