-
-
Notifications
You must be signed in to change notification settings - Fork 18
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
History Entries table does not contain last played track, although rekordbox see it #32
Comments
Interesting. Please study your database, and figure out why this is happening, and submit a PR to correct the structure definition. |
I've attached files in case anyone can help figure this out. Hystory list from recordbox: https://drive.google.com/file/d/1-mSBPSp0x3Z_bD1z21wKkebytMMGN4Xh/view?usp=sharing Thank you! |
Please try to figure it out yourself! You are the person who is best positioned in the world to do so, because you have both the data, and a desire to see the change happen. That is what drives open-source projects. When I created this project, I knew nothing about Kaitai, and I learned it all as I went, so you can do the same. |
Thank you for uploading that data, and for making it such a focused example of the problem. I had some spare time tonight, and poked into your files, and you have identified a misinterpretation we made in the structure format that is probably affecting a lot of tables. We had assumed |
If you want to test the fix yourself in the Kaitai web IDE, you can change the |
Wow! Now I see all tracks! Thank you! |
I have a question on this: Is the calculation of Or could there be any number of row groups, and we have to keep reading row groups it until we found all (via presence flags)? |
I think |
I'm wondering because in the Database Exports Analysis you wrote:
I guess "row counter entries" refers to Something like: num_rows = 123
rows_found = 0
while rows_found < num_rows:
rowgroup = read_next_rowgroup()
rows_found += rowgroup.row_presence_flags.count_ones() But this will not work (I checked). Either something is wrong with
In this example, the workflow is as follows:
If the note is correct, where are the remaining 5 rows? I already checked, the other rows groups in that page do not contain any rows (it starts to fail after 45 rows groups). |
I’m afraid it has been too many years since I was working at this level for the details to be fresh in my head. Do you have a sample export file that you can share that Crate Digger fails to find all the rows for a table with? Thinking about this now, I think you are probably right that we can’t use |
Perhaps we need to just assume there are as many row groups as fit in the index page, and keep scanning until we find |
Nope, this is what I tried and it doesn't work. The |
Just to clarify: the current kaitai code works. I'm just saying the corresponding docs are confusing and likely wrong. My current interpretation of
|
Yes, I think that is the best interpretation from the evidence. |
Thanks for this follow up, I will re-update the documentation and implementation when I have some time. I will re-open this issue in the mean time. |
Ok, I have fixed the documentation and the Kaitai mapping explanation. It seems my implementation was already working this way, but the reasoning behind the explanation was wrong. Thanks again for pointing this out, I have added credit in the change log! |
(Oh, and please let me know if it is still confusing or could be further improved in your eyes!) |
I use https://ide.kaitai.io/# and rekordbox_pdb.ksy to read export.pdb files.
I noticed that HISTORY_ENTRIES tabel of export.pdb has one less track than what I played, last track missing, but Recordbox sees all tracks.
The text was updated successfully, but these errors were encountered: