flesniak / python-prodj-link

A python interface to Pioneer ProDJ Link
Apache License 2.0
141 stars 26 forks source link

Artist row variant #17

Closed brunchboy closed 5 years ago

brunchboy commented 5 years ago

A show producer in Croatia contacted me about parse issues he was having, and was able to get his DJ to share the export.pdb file with me. It turns out that if a string is longer than 255 bytes long, the row is formatted differently. The first two bytes are 0x64 0x00 rather than 0x60 0x00, and the string is located using a two-byte offset from the row base that immediately follows the bytes we are used to seeing. You can see the changes I made to my Kaitai Struct definitions to accommodate this here: https://github.com/Deep-Symmetry/crate-digger/commit/007a5135b7464ae4ead39c75280395341a8d789b#diff-f4d156186821fdf5743089937d417a3e

I will also attach a screen shot of the problem artist row in the Kaitai Web IDE. Let me know if you would like a copy of the export.pdb file and I can send you that via some private channel.

safariscreensnapz001
flesniak commented 5 years ago

Hey James, do you still have that export.pdb file? I just looked into my sample files but couldn't find such an artist row. Did you find similar strings in other tables like album, title or genre? From looking at your katai struct file I couldn't see it anywhere else.

brunchboy commented 5 years ago

This was long enough ago that I am not sure I will be able to find the file, but I will take a look when I have a few minutes.

So far, I have not seen this kind of string happening in other tables, but I can certainly imagine that. I suppose we could edit a track in rekordbox and export it in order to see what happens.

brunchboy commented 5 years ago

Actually, my search luck was good! Here it is. export.pdb.zip

flesniak commented 5 years ago

Thanks for the sample file. I'll see if I can produce a file with these strange long strings in other tables.