Serato DJ Pro General Discussion
Serato info on song analyzed state?
Talk about Serato DJ Pro, expansion packs and supported hardware
Serato info on song analyzed state?
MrMontana
1:48 PM - 18 May, 2013
Where does Serato store information about whether it has or has not analyzed a specific song? I've tried moving and renaming an mp3 that Serato DJ has analyzed, and it still thinks its analyzed it, so I'm assuming that you add some metadata of some kind to the file itself?
I've also tried deleting the _serato / _serato_backup folders, and that doesn't make any difference as far as this goes.
Where is the information stored, and is there a software-supported way to explicitly delete that information? I know I can ctrl-drag the song onto the Analyze Files button, but that doesn't help this particular situation.
I've also tried deleting the _serato / _serato_backup folders, and that doesn't make any difference as far as this goes.
Where is the information stored, and is there a software-supported way to explicitly delete that information? I know I can ctrl-drag the song onto the Analyze Files button, but that doesn't help this particular situation.
LJ_WOOLSEY
2:27 PM - 21 May, 2013
Not sure tobe honist. Why do you need to know? What are you trying todo?
MrMontana
9:20 PM - 22 May, 2013
First off is simply a matter of being able to reliably start from a 'clean slate'. If Serato makes permanent changes to my music files, thats simply not possible. I need to be able to reset things back to a stable state. Other software frequently makes this possible by saving any extra info in a new file next to the original music file, instead of in the file itself.
I would like to know so that I can write a quick script / Java-something / whatever seems appropriate, to strip the information out of my mp3 files without being forced to put Serato DJ into offline mode.
Here is an example of where I needed this:
1) Start Serato DJ in offline mode
2) Analyze a song with 'Set beatgrid' checked, 'Set BPM' NOT checked.
3) Enable 'Set BPM'
4) Turn on controller, putting Serato DJ into online mode.
5) Load the previously analyzed (but without BPM) song onto a deck. It doesn't analyze the BPM.
The ideal situation would obviously first off be that Serato DJ recognizes that even though its analyzed the song, there is an empty BPM field, and so since 'Set BPM' was checked, it should be providing a BPM. But that doesn't seem to be the case, unfortunately.
Quote:
Not sure tobe honist. Why do you need to know? What are you trying todo?First off is simply a matter of being able to reliably start from a 'clean slate'. If Serato makes permanent changes to my music files, thats simply not possible. I need to be able to reset things back to a stable state. Other software frequently makes this possible by saving any extra info in a new file next to the original music file, instead of in the file itself.
I would like to know so that I can write a quick script / Java-something / whatever seems appropriate, to strip the information out of my mp3 files without being forced to put Serato DJ into offline mode.
Here is an example of where I needed this:
1) Start Serato DJ in offline mode
2) Analyze a song with 'Set beatgrid' checked, 'Set BPM' NOT checked.
3) Enable 'Set BPM'
4) Turn on controller, putting Serato DJ into online mode.
5) Load the previously analyzed (but without BPM) song onto a deck. It doesn't analyze the BPM.
The ideal situation would obviously first off be that Serato DJ recognizes that even though its analyzed the song, there is an empty BPM field, and so since 'Set BPM' was checked, it should be providing a BPM. But that doesn't seem to be the case, unfortunately.
phatbob
9:44 PM - 22 May, 2013
Surely the software has done what you told it to do...
You told it to analyse without setting the bpm, it did so.
You are then loading to a deck without reanalysing, and expecting it to give you a bpm. Why would it go against your instructions like that?
You told it to analyse without setting the bpm, it did so.
You are then loading to a deck without reanalysing, and expecting it to give you a bpm. Why would it go against your instructions like that?
LJ_WOOLSEY
9:45 PM - 22 May, 2013
I'm still not understanding this or what you are trying todo?
Are you saying its not showing the bpm after you have analyzed it? And then you want to analyze it again but you cant as you have the controller plugged in so are in online mode?
And how would deleting all metadata info of the mp3 file help serato dj show the bpm?
Sorry just a little confused at what your trying todo here.
Are you saying its not showing the bpm after you have analyzed it? And then you want to analyze it again but you cant as you have the controller plugged in so are in online mode?
And how would deleting all metadata info of the mp3 file help serato dj show the bpm?
Sorry just a little confused at what your trying todo here.
MrMontana
9:56 PM - 22 May, 2013
You told it to analyse without setting the bpm, it did so.
You are then loading to a deck without reanalysing, and expecting it to give you a bpm. Why would it go against your instructions like that?
Its debatable whether its done what I've 'told' it to do. You can make a case both for Serato having done what it should, or Serato not honoring its own approach to what it should be doing when loading a song onto a deck. If you wanted it to never prime a BPM even when loading onto a deck, you can turn off the 'Set BPM' option in offline mode, and have that behavior. I'm well aware that it considers being analyzed as a binary state and thus does not care whether the song has a BPM / Beatgrid or not, merely that its been analyzed. I can argue in favor of that being entirely the wrong thing to do, especially when you consider the number of features that pivot off of BPM and/or Beatgrids.
Its very, very impractical to have a hidden, unviewable, unmodifiable state attached to an MP3 which I must turn *off* the system to make changes to. Mistakes *do* happen, live and in preparation, and you have to be able to account for them. Right now if you are given, or are using in any way a music file which has been set to a state of being analyzed, and it is missing either BPM or Beatgrids and you need them, you're SOL until you turn off the system. Thats not good.
Quote:
Surely the software has done what you told it to do...You told it to analyse without setting the bpm, it did so.
You are then loading to a deck without reanalysing, and expecting it to give you a bpm. Why would it go against your instructions like that?
Its debatable whether its done what I've 'told' it to do. You can make a case both for Serato having done what it should, or Serato not honoring its own approach to what it should be doing when loading a song onto a deck. If you wanted it to never prime a BPM even when loading onto a deck, you can turn off the 'Set BPM' option in offline mode, and have that behavior. I'm well aware that it considers being analyzed as a binary state and thus does not care whether the song has a BPM / Beatgrid or not, merely that its been analyzed. I can argue in favor of that being entirely the wrong thing to do, especially when you consider the number of features that pivot off of BPM and/or Beatgrids.
Its very, very impractical to have a hidden, unviewable, unmodifiable state attached to an MP3 which I must turn *off* the system to make changes to. Mistakes *do* happen, live and in preparation, and you have to be able to account for them. Right now if you are given, or are using in any way a music file which has been set to a state of being analyzed, and it is missing either BPM or Beatgrids and you need them, you're SOL until you turn off the system. Thats not good.
MrMontana
9:59 PM - 22 May, 2013
Are you saying its not showing the bpm after you have analyzed it? And then you want to analyze it again but you cant as you have the controller plugged in so are in online mode?
And how would deleting all metadata info of the mp3 file help serato dj show the bpm?
Sorry just a little confused at what your trying todo here.
Sorry for the confusion, I'll try to be more brief:
- There is no way, in online mode in Serato DJ, to force it to calculate the BPM and/or Beatgrid of a song it considers as having already analyzed. Whether or not the song originally had those things set to be analyzed.
- This is contrary to the behavior that occurs when loading a song that has never been analyzed before, which will prompt Serato DJ to honor the offline-set 'Set Beatgrid' / 'Set BPM' to decide whether to analyze these things on-the-fly as you load the song.
As I see the likelyhood of an imminent software change unlikely, my other option is to manually wipe the Serato DJ-written information from the file with my own program, so that Serato DJ will consider it 'unanalyzed' and do what it should be doing. Hence my request for information on where this information is.
Quote:
I'm still not understanding this or what you are trying todo?Are you saying its not showing the bpm after you have analyzed it? And then you want to analyze it again but you cant as you have the controller plugged in so are in online mode?
And how would deleting all metadata info of the mp3 file help serato dj show the bpm?
Sorry just a little confused at what your trying todo here.
Sorry for the confusion, I'll try to be more brief:
- There is no way, in online mode in Serato DJ, to force it to calculate the BPM and/or Beatgrid of a song it considers as having already analyzed. Whether or not the song originally had those things set to be analyzed.
- This is contrary to the behavior that occurs when loading a song that has never been analyzed before, which will prompt Serato DJ to honor the offline-set 'Set Beatgrid' / 'Set BPM' to decide whether to analyze these things on-the-fly as you load the song.
As I see the likelyhood of an imminent software change unlikely, my other option is to manually wipe the Serato DJ-written information from the file with my own program, so that Serato DJ will consider it 'unanalyzed' and do what it should be doing. Hence my request for information on where this information is.
phatbob
10:10 PM - 22 May, 2013
Still not getting why you wouldn't just analyse with the bpm set in the first place?
MrMontana
11:02 PM - 22 May, 2013
In this particular instance, I had a large library which was first initially analyzed by Mixed In Key to get key and BPM, and then by Serato DJ for beatgrids. This took a considerable amount of time - At the time of needing to start, I realized MIK had missed several folders. Unfortunately at that point in time I *had* to get started, and so I couldn't run Serato DJ in offline mode any longer. All of the songs without BPM were now basically off-limits for the duration of the set. Allowing you to Ctrl-drag (to force re-analyzing on drag) onto a deck, or providing a 'Delete serato data' button, or something similar, would solve this as well.
However, I've found out where this information is stored, so now I can write a Java app to wipe the Serato info of songs, in case I run into a similar emergency situation.
In case anyone else stumbles upon this and needs the same information, Serato inserts several GEOB-type frames into the ID3v2 tag. Each one has a unique descriptor as the ID3v2 spec requests. Most tag readers/editors will *not* show this information (Such as the popular Mp3Tag), but kid3.sourceforge.net will allow you to view, edit and delete the frames.
As this would only be possible on a per-song basis, I'm going to see if I can't write a command-line utility to both remove / restore this information. The more this sort of thing can be accessed by third-party, the more utilities and interesting things like Alchmie DJ you'll see popping up.
Quote:
Still not getting why you wouldn't just analyse with the bpm set in the first place?In this particular instance, I had a large library which was first initially analyzed by Mixed In Key to get key and BPM, and then by Serato DJ for beatgrids. This took a considerable amount of time - At the time of needing to start, I realized MIK had missed several folders. Unfortunately at that point in time I *had* to get started, and so I couldn't run Serato DJ in offline mode any longer. All of the songs without BPM were now basically off-limits for the duration of the set. Allowing you to Ctrl-drag (to force re-analyzing on drag) onto a deck, or providing a 'Delete serato data' button, or something similar, would solve this as well.
However, I've found out where this information is stored, so now I can write a Java app to wipe the Serato info of songs, in case I run into a similar emergency situation.
In case anyone else stumbles upon this and needs the same information, Serato inserts several GEOB-type frames into the ID3v2 tag. Each one has a unique descriptor as the ID3v2 spec requests. Most tag readers/editors will *not* show this information (Such as the popular Mp3Tag), but kid3.sourceforge.net will allow you to view, edit and delete the frames.
As this would only be possible on a per-song basis, I'm going to see if I can't write a command-line utility to both remove / restore this information. The more this sort of thing can be accessed by third-party, the more utilities and interesting things like Alchmie DJ you'll see popping up.
Pete Input
9:19 AM - 23 May, 2013
Serato DJ can't work properly if you don't analyze BPM and Grids. It needs to be done. No matter what you have used to get the BPM before.
Secondly, Serato saves those informations on the track itself. If you wipe out those informations, Serato doesn't work right.
Secondly, Serato saves those informations on the track itself. If you wipe out those informations, Serato doesn't work right.
MrMontana
9:37 AM - 23 May, 2013
Secondly, Serato saves those informations on the track itself. If you wipe out those informations, Serato doesn't work right.
I feel like theres a lot of mystique and mis-information about what Serato DJ actually does. Are you saying that if something *other* than Serato DJ analyzes the BPM, thats not good enough? From what I can see, Serato DJ writes the found BPM to the 'BPM' field in the ID3v2 tag, which is the same field that Mixed In Key writes to. Serato DJ also correctly picks up the BPM of songs I've run through Mixed In Key without any problem, indicating that it reads the BPM from the 'BPM' field as well.
I'm aware that wiping out the information in the Serato-specific fields will mean Serato needs to get the information again. Thats precisely the point. If I remove the GEOB fields from an MP3, I can force Serato DJ to re-analyze a track in online mode when its loaded onto a deck, because it now considers the song to be not-analyzed.
Yes, in an ideal world I would have both options checked and always analyzed for all music that I had coming in. However, I use Mixed In Key to do key-detection, and the BPM detection by Mixed In Key happens to seem more accurate than Serato DJ's. Therefore my workflow is as follows:
1) Run music through MIK, populating key and bpm fields.
2) Load music in Serato DJ, with 'Set Beatgrid' enabled, 'Set BPM' NOT enabled
3) Enable 'Set BPM' again and go online.
3) Play music.
However, if MIK has missed some files or I've gotten new music that I forgot to run through MIK, they'll have a beatgrid set and no BPM. And I'll be unable to do anything about that in online mode. Except, now I can remove the Serato fields, which will cause Serato to think the file has never been analyzed, and correctly populate both Beatgrid info and BPM.
Quote:
Serato DJ can't work properly if you don't analyze BPM and Grids. It needs to be done. No matter what you have used to get the BPM before.Secondly, Serato saves those informations on the track itself. If you wipe out those informations, Serato doesn't work right.
I feel like theres a lot of mystique and mis-information about what Serato DJ actually does. Are you saying that if something *other* than Serato DJ analyzes the BPM, thats not good enough? From what I can see, Serato DJ writes the found BPM to the 'BPM' field in the ID3v2 tag, which is the same field that Mixed In Key writes to. Serato DJ also correctly picks up the BPM of songs I've run through Mixed In Key without any problem, indicating that it reads the BPM from the 'BPM' field as well.
I'm aware that wiping out the information in the Serato-specific fields will mean Serato needs to get the information again. Thats precisely the point. If I remove the GEOB fields from an MP3, I can force Serato DJ to re-analyze a track in online mode when its loaded onto a deck, because it now considers the song to be not-analyzed.
Yes, in an ideal world I would have both options checked and always analyzed for all music that I had coming in. However, I use Mixed In Key to do key-detection, and the BPM detection by Mixed In Key happens to seem more accurate than Serato DJ's. Therefore my workflow is as follows:
1) Run music through MIK, populating key and bpm fields.
2) Load music in Serato DJ, with 'Set Beatgrid' enabled, 'Set BPM' NOT enabled
3) Enable 'Set BPM' again and go online.
3) Play music.
However, if MIK has missed some files or I've gotten new music that I forgot to run through MIK, they'll have a beatgrid set and no BPM. And I'll be unable to do anything about that in online mode. Except, now I can remove the Serato fields, which will cause Serato to think the file has never been analyzed, and correctly populate both Beatgrid info and BPM.
phatbob
10:53 AM - 23 May, 2013
Seems like a lot of hassle when you could just have MIK do the keys and SDJ do the bpm, and be certain that all your tracks are correctly analysed ahead of time. Analysing on the fly often is not a good idea, as it uses so much CPU. That's why users are encouraged to analyse in advance.
I use MIK too, and I'd say the hit & miss rate of their bpm engine is no better than SDJ's, so I really fail to see any benefit of your workflow as it is.
I use MIK too, and I'd say the hit & miss rate of their bpm engine is no better than SDJ's, so I really fail to see any benefit of your workflow as it is.
Pete Input
11:57 AM - 23 May, 2013
I feel like theres a lot of mystique and mis-information about what Serato DJ actually does. Are you saying that if something *other* than Serato DJ analyzes the BPM, thats not good enough? From what I can see, Serato DJ writes the found BPM to the 'BPM' field in the ID3v2 tag, which is the same field that Mixed In Key writes to. Serato DJ also correctly picks up the BPM of songs I've run through Mixed In Key without any problem, indicating that it reads the BPM from the 'BPM' field as well.
Well, i count my bpm's by hand with a stopwatch and then i add the bpm in the track's bpm-field in itunes. Its just a number in itunes tags. Does it make the same thing that the song's bpm has been analyzed? NO.
So, do what phatbob just say and you don't have problems.
Quote:
I feel like theres a lot of mystique and mis-information about what Serato DJ actually does. Are you saying that if something *other* than Serato DJ analyzes the BPM, thats not good enough? From what I can see, Serato DJ writes the found BPM to the 'BPM' field in the ID3v2 tag, which is the same field that Mixed In Key writes to. Serato DJ also correctly picks up the BPM of songs I've run through Mixed In Key without any problem, indicating that it reads the BPM from the 'BPM' field as well.
Well, i count my bpm's by hand with a stopwatch and then i add the bpm in the track's bpm-field in itunes. Its just a number in itunes tags. Does it make the same thing that the song's bpm has been analyzed? NO.
So, do what phatbob just say and you don't have problems.
MrMontana
2:39 PM - 23 May, 2013
Thats useful information, thanks. I was under the impression that MIK in general did a fair bit better. I'm still working out the kinks in my workflow in general, and I certainly wouldn't mind not having to care ;)
Quote:
I use MIK too, and I'd say the hit & miss rate of their bpm engine is no better than SDJ's, so I really fail to see any benefit of your workflow as it is.Thats useful information, thanks. I was under the impression that MIK in general did a fair bit better. I'm still working out the kinks in my workflow in general, and I certainly wouldn't mind not having to care ;)
phatbob
3:01 PM - 23 May, 2013
The thing with the SDJ bpm analysis is that you can set the range; so if, for example, you're doing a batch of D&B, you can make it all analyse at 174 instead of 87. No such luxury with MIK.
TriplThreat
7:41 PM - 27 November, 2016
Have you come up with a command line utility to batch change or delete the Serato beatgrid in Multiple tracks either through Kid3 or alternate options?
Thanks for this help.
Quote:
As this would only be possible on a per-song basis, I'm going to see if I can't write a command-line utility to both remove / restore this information. The more this sort of thing can be accessed by third-party, the more utilities and interesting things like Alchmie DJ you'll see popping up.Have you come up with a command line utility to batch change or delete the Serato beatgrid in Multiple tracks either through Kid3 or alternate options?
Thanks for this help.
To participate in this forum discussion please log in to your Serato account.