Skip to content
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

Serialization Support for PDB files #68

Open
Holzhaus opened this issue Apr 8, 2022 · 7 comments
Open

Serialization Support for PDB files #68

Holzhaus opened this issue Apr 8, 2022 · 7 comments

Comments

@Holzhaus
Copy link
Owner

Holzhaus commented Apr 8, 2022

Basic serialization is already supported for analysis/setting files, but not PDB files. When #64 has been merged, we can look into implementing support for this.

Note that the PDB parser uses FilePtr which does not support serialization out of the box yet (see jam1garner/binrw#4), so we'll have to provide a custom implementation.

@lukaprincic
Copy link

Thanks everyone for working on this. Holding fingers crossed 🤞🏼 for this, I use MIXXX exclusively on Linux a lot but sometimes I need to use CDJs and it's a pain to go to proprietary systems to prepare USB keys for the CDJs.

@kimtore
Copy link

kimtore commented Mar 15, 2023

You're welcome! I haven't contributed to this project, but I've been doing some more work on reverse engineering PDB exports, to the point where I can actually generate a PDB file that I can open and use in Rekordbox. I haven't tested it on hardware yet though. If my work can be helpful to this project I would be happy to share my findings.

@Holzhaus
Copy link
Owner Author

@ambientsound hi, did you look into the inofficial documentation of the format? https://djl-analysis.deepsymmetry.org/rekordbox-export-analysis/exports.html

If you found something while reversing that is not yet documented, it would be nice to add it to the docs.

@kimtore
Copy link

kimtore commented Mar 16, 2023

@Holzhaus I found some new stuff. But I struggled with Kaitai, and found the generated code detrimental to the progress of the project. But there is a bunch of documentation in my type structs and code, there should be something useful.

It's not really ready to publish, but I tried to clean it up a bit and did it anyway so you can have a look.

https://github.com/ambientsound/rex

@kimtore
Copy link

kimtore commented Mar 16, 2023

Short summary of what I've done:

Most of what I figured out revolves around the "strange pages", which I believe to be some kind of table index, together with flags for this particular table. I found the data structure but haven't figured out all the values.

Also, I found the meaning of a few more fields scattered around different tables, and extracted some information about the default data exported in a pristine library with nothing in it.

There is a command-line tool that should be able to generate export files for further testing.

Hope it helps, I'm also open to suggestions or questions on how to further progress on this matter. The endgame of integrating this into e.g. Mixxx would be awesome!

@lukaprincic
Copy link

Apologies to ping this, but I was wondering if there's any progress on this?

@kimtore
Copy link

kimtore commented Aug 20, 2023

Hi @lukaprincic
From my part there is no more progress than what is happening in the rex repo.
Unfortunately I have pressing personal matters that needs to be handled right now.
I hope to pick up the thread later this year when things have calmed down a bit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants