-
-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New fields in Serato DJ 1.6.x #17
Comments
I'm curious what caused that vsprintf() warning. Yeah they seem to add new fields from time to time, and they mostly seem to be fields from tracks (e.g. things like key, remixer, stuff to do with video, maybe stuff that is only relevant to non-mp3s etc etc.) I haven't personally seen anything with fields 70 or 71 though. If you can find out what track or tracks they correspond to, there might be some clues in the ID3 (or other metadata) tags as to what those fields are. '00' or '01' is obviously some sort of simple "on" / "off" for a track. The other one - 4073 cdd8 4b3b 8f27, etc - no idea. Could be anything, it's a 64-bit number so it could be some sort of timestamp, but it's clearly not critical because only a few tracks have it. If you fancy it, open up SSLTrackAdat.xoup , add a line like field71: timestamp. c>unknown71 and see if a field "unknown71" appears and makes sense as a date somewhere in the dump output. (I know XOUP is a totally ridiculous made up language but what are you going to do.) |
It doesn't seem happy with that. I made that change right above literal data, but now it's outright erroring:
Not all field71's are a 64-bit number? |
Ah, it's probably a string then. Integers can only have a width (in bytes) of 1, 2, 4 or 8. try field71: hex. c>unknown71 and you should get a pretty hexdump, which will at least make it more obvious if it's a string. If they're not constant length, they're usually strings... |
Still no such luck:
Is there any type that will just spit this out raw? Relatedly, is there a way to get a dump of the entire structure with a basic key (number)/value representation, and not just mapped ones? |
Send me over the session file and I'll have a look. Ben XO / Last.fm / Bassdrive |
That would be a good idea :). https://gist.github.com/VxJasonxV/2f7139e0c0cb48f51887 |
Welp - when I do "php historyreader.php -d ~/Downloads/2580.session" i get a full structured dump. I was wrong about the UNKNOWN fields appearing though, oops. If you go to the bottom of SSLTrackAdat.xoup you'll see "known unknowns". Change that block to something like known unknownsfield16: ascii. c>rUNKNOWN16 and they'll all appear in the structured dump. Unfortunately it's not obvious what any of those unknowns are. (Lots of your fields have UNKNOWN16 and UNKNOWN33 as well). If you just want to get rid of the warnings, we can just add them to the known unknowns list so they don't elicit a warning. |
Cool! - it's not a bug, it's just information that I might find useful at You should really look at getting a 64-but PHP though. On Fri, 13 Nov 2015 at 16:47, ByungHwa Ra notifications@github.com wrote:
|
Okay dude I'll try switching to a 64-bit version! Thank you! |
Just one more thing dude. What does it mean "... passed scrobble point"? Has the song been successfully scrobbled? How do I know if it has been successful? |
Cuz I noticed that the song had been scrobbled to last.fm even tho it said the song passed the scrobble point. So what does it mean exactly? |
The scrobble point is the minimum length of time you listened to the song But, the scrobble is not actually submitted until the song has finished On Fri, 13 Nov 2015 at 17:51 ByungHwa Ra notifications@github.com wrote:
|
Ohh OK dude thank you so much for such detailed explanation!
|
Okay I got it working now! The reason why it has taken me so long to know how to use this is that I thought that that update statement was the only one to use here. I changed it to an insert statement. And it's working now! |
Very glad you got it working! :) I've updated the very latest master to ignore the new fields. |
Okay dude thank you so much! I'm so glad that all the efforts have finally paid off! :) |
Hey dude! Just one more thing! Will this only work with MySQL database? Will it work with Oracle Database as well? |
I've never tested it with any other database; but because it uses PHP's http://php.net/manual/en/ref.pdo-oci.connection.php On Sun, 15 Nov 2015 at 13:17, ByungHwa Ra notifications@github.com wrote:
|
Okay dude thank you very much! |
I'm sorry I really don't know - it could be any number of things. I've As you are on Windows, you could also try using the ODBC connector. You'll If you look in the config.php file, you'll find you can increase the log
|
Okay dude thank you very much! |
Hey dude here I am again!
This time it shows the much dreaded "missing or invalid option" error. Well does this at least show that the dsn has been set up correctly and that the php can connect to the oracle database since it says that it's sending the track into database? I've googled everywhere but still have't found anything helpful. Please help. P.S: I'm still using the PDO_OCI thing instead of the ODBC thing. Thanks in advance. |
BTW dude will you ever consider adding support for Oracle Database or any other Relational Database? |
I notice that your fields are all in caps (ID, FIELD_NAME, etc) but your On Fri, 20 Nov 2015 at 19:47, ByungHwa Ra notifications@github.com wrote:
|
Hey dude. I actually used lower-cased letters when I was naming the columns but somehow Oracle converted them all into caps. However I changed the fields into caps but still it shows the same error. Geez this is driving me crazy. Anyways does this error mean that I got the dsn right? That the php has connected to the database but it just couldnt run the sql command due to a syntactic error? I changed the log level to debug but still its not showing much more info. I don't even know which part of the sql statement went wrong. So dude what else can I do? Thanks in advance. |
So dude what do you think causes this error? Is it still the dsn or the sql statement? |
Look at this point all I'm doing is googling the error codes from your On Sat, 21 Nov 2015 at 16:04, ByungHwa Ra notifications@github.com wrote:
|
Okay dude! Well the main reason why I want to use Oracle DB instead of MySQL is its support of DB Change Notification Mechanism. Like when a new song is inserted into the DB, the server side(Java code) gets notified of the insert event. |
If I can't insert anything into Oracle DB, then the only option left seems to be periodically polling data from MySQL DB to see if there is any new inserted record, which is far less efficient and ideal. |
@VxJasonxV so i finally figured out that field 70 seems to represent that the row is an update to a previous row that was written… you often see pairs with 70 = 0 when you load the track, then 70 = 1 when you eject or load a new track. they have the same row ID for the same song, but with extra information in the updated packet. When serato is shut down, these are elided to remove the duplication, so mostly you see 70 = 1 in old sessions. |
only 6 years later |
It looks like Serato updated their session database format at some point. I was poking around with my files and just noticed this huge spew of messages at the top after
-d
'ing a session file:The text was updated successfully, but these errors were encountered: