Add Rekordbox XML export command - #237
Open
Arthurescc wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/claim #127
Adds an
export-xmlCLI command that converts a Rekordbox device export into the existing Rekordbox XML model. The export includes:TEMPOentries from analysis filesPOSITION_MARKentries from DAT/EXT/2EX analysis filesI also made the existing XML model friendlier for generated exports by skipping missing optional attributes and allowing empty playlist folders to deserialize.
Verification
CARGO_INCREMENTAL=0 CARGO_TARGET_DIR=/tmp/rekordcrate-target cargo checkCARGO_INCREMENTAL=0 CARGO_TARGET_DIR=/tmp/rekordcrate-target cargo clippy --all-targets -- -D warningsCARGO_INCREMENTAL=0 CARGO_TARGET_DIR=/tmp/rekordcrate-target cargo testCARGO_INCREMENTAL=0 CARGO_TARGET_DIR=/tmp/rekordcrate-target cargo run -- export-xml data/complete_export/demo_tracks /tmp/rekordcrate-demo.xmlCARGO_INCREMENTAL=0 CARGO_TARGET_DIR=/tmp/rekordcrate-target cargo run -- dump-xml /tmp/rekordcrate-demo.xmlThe demo XML round-trips through the project's own XML parser and includes the expected demo tracks, artist, locations, and BPM/beatgrid entries. I do not currently have access to a physical Pioneer CDJ for the hardware video, so this PR provides the software-side implementation and reproducible validation steps first.