These are chat archives for brunchboy/afterglow

8th
May 2017
James Elliott
@brunchboy
May 08 2017 03:15
That does sound very cool and like we are exploring a lot of similar ideas! I’d love to know more about how you get at the waveforms. Is your source code and documentation on GitHub?
Austin Wright
@awwright
May 08 2017 05:51
@brunchboy I have it on a private BitBucket . It looks like the DBServer protocol has been figured out by some other people more or less, it's a simple RPC protocol over TCP with typed arguments and responses
Getting the waveform is one such call only available to clients registered on CDJ channels 1-4
You ask for the waveform of a track ID and it gives back a series of bytes, 5 bits for amplitude and 3 bits for color
Another call lets you get the beat grid, with measure beat number and ms offset, which you can use to figure out where in the track the CDJs are playing
It's the only way available to get the position, and it's what the CDJs use internally when you double the playing track from the Master onto another player using the Sync button
Austin Wright
@awwright
May 08 2017 05:56
I suspect there's an alternate way to get at the metadata that doesn't require you be on channel 1-4; Armin van Buuren travels with a Macbook Air that lets his LD and Resolume techs see what he's playing, and it works on all four channels
It's probably the case that the beatgrid and waveform is pre-downloaded onto that laptop
James Elliott
@brunchboy
May 08 2017 14:45
Yes, that is what I have always assumed in my own metadata research, that people will need to pre-analyze tracks and cache all the metadata they are going to want to use during a performance if they can’t use a player number from 1 to 4. I have figured out how to get the track text metadata, but not yet the wave form or beat grid. The beat grid especially would be incredibly useful for my users who want timecode. If you ever decide you are willing to contribute this information to the open source world, please let me know, I would love to update the protocol analysis document and my own reference implementation!
The place where I have gone furthest in working with CDJs is in beat-link-trigger which some producers and artists have been using to sync video walls with CDJ tracks in Resolume, and also to sync Ableton Live improv performances with CDJs using the Ableton Link protocol at music festivals.
Austin Wright
@awwright
May 08 2017 17:03
Also I suppose there is a way to get the track title, at least, without being on channel 1-4 because the Kuvo box requests the data from CDJ mixers, up to all four channels.
Either it's doing that, or Pioneer is storing track IDs. I tend to doubt it, but I haven't sniffed what Rekordbox is sending to Pioneer.
It'd be helpful if there was some way to tear apart the firmware image, but it doesn't seem to match any known formats. It can't be too esoteric though, it contains a lot of plain text strings.