beat-link 8.0.0-SNAPSHOT API
A library for synchronizing with beats from Pioneer DJ Link equipment, and finding out details about the tracks that are playing.
Overview and installation instructions are found on the Project page on GitHub.
The top level package org.deepsymmetry.beatlink
provides classes for finding a DJ Link network,
watching for devices to appear and disappear on it, and creating a VirtualCdj
which can obtain more detailed information about what other players are doing, like their current tempo, pitch,
playback state, which player is the current tempo master, and the source and database ID of the currently-loaded
rekordbox track. See the CdjStatus
class for more details.
The classes in the org.deepsymmetry.beatlink.data
package can augment this low-level information with
rich details about the 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 packet analysis resulting from that project).
Raw database access is provided by the Crate Digger project.
A good example of an application built using this library is Beat Link Trigger.
Module | Description |
---|---|
org.deepsymmetry.beatlink |