Forum: General Discussion

About VirtualDJ and DJing in general

If you need extended support, contact our Support Team.
Forum Guidelines  (*) The moderators hold the rights to move or modify posts in order to keep the discussions clear or to facilitate the search.
Sujet Database Cleanup Question
Hi folks. I guess as a result of getting music imported into VDJ a few different ways, I have noticed that I have entries in my database.xml file for songs that have no title defined. Oddly I don't see them in the listing within the program but when I am using SoundSwitch, it lists songs that don't have any title or artist. I don't know if these are songs that exist or songs that don't exist but still have entries in the database.

At any rate I am looking for a way to search database.xml for song listings that don't have a title and/or artist defined in the entry.

I tried setting up a filter folder but I could not figure out if there was a way to define the filter to do what I want. I tried using Title = "" but it wasn't accepted.

Suggestions on a good way to search the database.xml file for songs with no title?

Thanks,
Rob

Posté Tue 19 Jun 18 @ 9:07 pm
you can search by the filename then edit the tags and put info.

Posté Tue 19 Jun 18 @ 11:55 pm
I don't understand your response. I want to interrogate the whole database.xml file and find song entries that don't have a title/author parameter. What does your response mean? I don't already know which ones they are. I need to find them.

VDJ is terrible at keeping the database clean. I can find numerous songs in the DB that have multiple entries, some of which are valid and some are not. And VDJ does not provide enough tools to clean it up. All it will check for are missing files.

Posté Wed 20 Jun 18 @ 7:48 am
Most likely some of your songs don't have data stored in their ID3 tags and Soundswitch rely on the tags for track info.

A quick solution would be to update all your tags with the info stored inside VirtualDJ database.

In order to do so:
1) Open settings and change the 'setTagsauto' setting to true
2) Close settings
3) Type * (asterisk) on the search bar. This should bring you a list with all files present
4) Click on one song on the list
5) Press CTRL+A (or CMD+A on MAC) to select all files
6) Right click on one file (2 fingers click on MAC) and select to open the Tag Editor
7) Change a filed that holds non-crucial information for you like "Grouping" or "Label" for example. Type anything you want like "OK"
8) Press OK button. VirtualDJ will update it's database AND the tags of all the selected files (which should be all files in your collection if you followed the guide correctly). Depending on your CPU and HDD speed this may take several minutes or even more than an hour to complete. Therefore don't perform this task before a gig. Better leave your PC to work overnight.
9) You're done! Your files tags should now have the same info as VirtualDJ database. You can repeat the above process to erase the data you entered above. It will still take a lot of time to process all files, but it will take less time this time since all your files have their tags set.

Posté Wed 20 Jun 18 @ 8:36 am
RobGoldberg wrote :

VDJ is terrible at keeping the database clean. I can find numerous songs in the DB that have multiple entries, some of which are valid and some are not. And VDJ does not provide enough tools to clean it up. All it will check for are missing files.

No it's not.
If there are duplicate files here and there VirtualDJ can't do anything about it. And it won't merge info for "similar" files by design since that would produce several other issues. The fact that "FileA" on A folder has the same name with "FileA" on B folder doesn't mean that the files are identical or that they should be treated as one. That's up to the end user to determine.
Also VirtualDJ provides enough tools to help you clean your music collection (not the database itself) in the form of filter folders where you can enter various criteria in order to display files and decide what to do with them. Once you clean your music collection, the database will also follow when you remove missing files.


Posté Wed 20 Jun 18 @ 8:43 am
Thanks very much for the info. I am going to try that this morning. I have a very powerful computer so it shouldn't take that long.

The reason I made the comment I did was because there are a lot of entries in my DB that don't correlate to songs anymore. And I only delete songs from inside VDJ. So why would that be then?

Again, thanks for describing that process. I am excited to try it.

Rob

P.S. Your process explains why SoundSwitch might have entries with blank fields. But it does not explain why there are entries in database.xml that have no title or artist specified. How do those entries get into the database? And why don't they show up in a listing in VDJ?

Posté Wed 20 Jun 18 @ 5:22 pm
don't forget to clean/fix your DB.


Posté Wed 20 Jun 18 @ 6:05 pm
RobGoldberg wrote :
P.S. Your process explains why SoundSwitch might have entries with blank fields. But it does not explain why there are entries in database.xml that have no title or artist specified. How do those entries get into the database? And why don't they show up in a listing in VDJ?


VirtualDJ can't guess the Artist or Title of a song :P
There are 2 ways for VirtualDJ to get the data associated with a track:
1) Read the ID3 tags
2) Parse the filename of the track assuming that it has the form of 'Artist - Title (Remix)'

VirtualDJ 8 uses a slightly different workflow than VirtualDJ 7 did. Therefore if your database is an upgrade from a V7 database there might be some inconsistencies on what I'll write here:

The very first time VirtualDJ sees a new track, it reads it's tag data. If the file HAS tag data stored inside it, it will use that data to populate database data. If the file has NOT tag data, then it will TRY to parse the filename to fill Artist and Title. If it parses the filename successfully then both fields (artist and title) will be filled. If it doesn't manage to parse the filename successfully then the entire filename itself gets stored on the "Title" field.
Up to this point all the information goes to VirtualDJ database. NOTHING goes back on the id3 tags of the tracks themselves. For that to happen you must first enable the "setTagsauto" option in settings.
From that point on, VirtualDJ uses ONLY it's database info for the tracks. It does not re-read the info of the id3 tags unless you instruct it to do so. So, if you change a track's info outside VirtualDJ, VirtualDJ won't see the new info until you reload the tags for that file.
Also by default when you edit a track info on VirtualDJ the edits you make stay within VirtualDJ database. VirtualDJ won't alter/update the ID3 tags of the files unless you change the option "setTagsauto" to true as explained above.

Conclusions:
1) VirtualDJ relies on it's own database for all the info it displays and use
2) Unless "setTagsauto" option is enabled, it's rather easy for the information held on id 3tags to be out of sync with VirtualDJ database.
3) Any time you change your tracks info outside VirtualDJ you need to reload their tags inside VirtualDJ for VirtualDJ to see the changes (this can be done in a batch)
4) Unless your track's tags are a complete mess, you should not have entries in your database where both Artist and Title are blank at the same time. One of them CAN be blank either because that's the way the info was stored inside the id3 tag, or because the automatic parse failed to parse the track's filename correctly.

Posté Thu 21 Jun 18 @ 7:10 am
AdionPRO InfinityCTOMember since 2006
Note that if vdj parses the filename, it may not store the parsed values in the database xml. (since vdj can parse the filename again when needed)
Perhaps sound switch doesn't take this option into account?

Posté Thu 21 Jun 18 @ 7:36 am