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

Figure out new color waveforms used by CDJ-3000 #33

Open
brunchboy opened this issue Feb 1, 2021 · 5 comments
Open

Figure out new color waveforms used by CDJ-3000 #33

brunchboy opened this issue Feb 1, 2021 · 5 comments

Comments

@brunchboy
Copy link
Member

There’s a new database export file, ANLZ0000.2EX, which has the normal tagged type structure we see in all analysis files, and it has two new tags, PWV6 and PWV7 which almost certainly contain waveforms in the new color scheme used by the CDJ-3000. @jan2000, any chance you’ve started figuring out how they work?

@brunchboy
Copy link
Member Author

Hmm, there is also a tiny PWVC tag at the end of the file. Maybe that is a color table used by the other two tags?

@brunchboy brunchboy changed the title Figure out new color waveforms used by CDJ-300 Figure out new color waveforms used by CDJ-3000 Feb 1, 2021
@evanpurkhiser
Copy link
Contributor

Hoping these new formats do not have a convoluted encoding schema like the colored preview waveform did

@brunchboy
Copy link
Member Author

Absolutely! The pictures I’ve seen look like there are basically just three heights for each segment, with different colors for each (I’m guessing they represent lows, mids, and highs). That seems simpler than the six-variable mess you are alluding to! But I am always ready to be horrified when we get down to the details… Also, we should now expect they might be XOR-masked, sigh.

@nudge
Copy link
Contributor

nudge commented Feb 15, 2021

Good news everyone!

Took a quick look at the PWV6 format and indeed it looks to be split across frequency bands. In the preview format, the bands appear to be stacked on one another. There is also some funky scaling going on, not sure how the height coefficients are calculated so using some fixed ones for the time being. Needs some work here, it is especially evident in the sine chirp signal (see second set of images).

byte 0: mid frequency
byte 1: high frequency
byte 2: low frequency

This is what it looks like compared to rekordbox for a normal track, not bad:

Screen Shot 2021-02-15 at 10 31 11 pm

Screen Shot 2021-02-15 at 10 31 17 pm

Using a generated sine chirp signal, it is evident some scaling correction (plus clipping?) needs to be done:

Screen Shot 2021-02-15 at 10 35 28 pm

Screen Shot 2021-02-15 at 10 24 38 pm

Anyway sample code is up at https://gist.github.com/nudge/eca9f07ff684955b8a9bb5944614c3d7, based on the super cool work from @jan2000!

@brunchboy
Copy link
Member Author

Nice work, that was FAST!

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

No branches or pull requests

3 participants