-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Serato: Import Beatgrid from metadata #2958
Conversation
I think this should go to 2.3, not master. |
This is based on 2.3, so you can simply change the target branch. I wan't sure about it, because we're already in feature freeze. |
I consider this finishing an incomplete feature. |
Btw, I added the current state of Serato Metadata support in Mixxx here: https://github.com/mixxxdj/mixxx/wiki/Serato-Metadata-Format#mixxx-support-status |
83517fa
to
dd325f2
Compare
Any comments? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for this PR, I have left some comments.
// For now, we only read it to be able to dump the exact same byte sequence | ||
// later on. | ||
quint8 footer; | ||
stream >> footer; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can imagine Serato uses it as "dirty" flag. I am afraid we need to toggle it as well in case we alter the beat grid in Mixxx. Can you verify it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can check if it new values are only picked up by Serato if that value is different (if that's what you mean). However, Serato is also doing strange stuff elsewhere (e.g. they sometimes append a random byte for base64 encoded flac metadata). My guess was that they have a messed up length check and write a byte of uninitialized memory :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That seems also be likely, in particularly if it is not constantly increasing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not increasing.
@daschuer Thanks for reviewing. As you're the only reviewer, you can hit merge :D |
OK, I have not hit merge because not all Todos are checked. |
CI is also not finished. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, for the delay. Just some minor issues.
Also, in case the importer is empty this should return "complete", not "pending".
A terminal marker always need to be present to generate a beatgrid.
Verified locally. LGTM |
I finally found a few hours to implement parsing of the Serato Beatgrid. This already works,
but nothing is imported yet, because we have the same problem as we had with cues, i.e. we can't determine the timing offset at the time when the metadata is read. We need to find a nice workaround for that.Support for tag types:
Ogg/XiphFormat differs significantly, no idea how to parse this.EDIT: It works! here are two tracks with their beatgrids imported from Serato (for demo purposes I added some tempo changes to the upper track's beatgrid)