Package org.deepsymmetry.beatlink.data

Offers rich information about the tracks loaded in players on the network.

The classes in this package can augment the low-level information offered by the packet listeners with rich details about track metadata, including album art, cue point locations, beat grid, and waveforms, both the whole-track preview, and full detailed waveform for scrolling through. The MetadataFinder is the main coordinator for obtaining and caching this information, and it keeps track of the track metadata for all tracks loaded on decks, either for current playback, or as hot cues.

The metadata queries are performed with the help of the org.deepsymmetry.beatlink.dbserver package, which knows how to locate and communicate with the database servers running on the players.

For shows in which four players are in use, the dbserver interface cannot be relied on, since we are not able to use a real player number ourselves. The CrateDigger class allows us to still obtain metadata in those situations, by downloading entire rekordbox database export files from the players using their NFSv2 servers, which do not care about player numbers. By parsing the database it can also find and download the files containing track analysis information like waveforms, beat grids, artwork, etc.

Background

This project is based on research performed with dysentery, and the protocol analysis resulting from that project.

Raw database access is provided by the Crate Digger project.

An good example of an application built using this library is Beat Link Trigger.

Author:
James Elliott