dysentery icon indicating copy to clipboard operation
dysentery copied to clipboard

Figure out new color waveforms used by CDJ-3000

Open brunchboy opened this issue 4 years ago • 5 comments

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 avatar Feb 01 '21 03:02 brunchboy

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 avatar Feb 01 '21 04:02 brunchboy

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

evanpurkhiser avatar Feb 01 '21 04:02 evanpurkhiser

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.

brunchboy avatar Feb 01 '21 04:02 brunchboy

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!

nudge avatar Feb 15 '21 21:02 nudge

Nice work, that was FAST!

brunchboy avatar Feb 15 '21 23:02 brunchboy