Working with Beat Link Trigger
Beat Link Trigger is an open-source application that monitors tempo and beat information from Pioneer DJ devices on a local network. This can be used to synchronize the metronome of Chromatik to a Pioneer DJ performance.
Installation
Download and install Beat Link Trigger here: https://github.com/Deep-Symmetry/beat-link-trigger
Pre-built releases are available for Mac/Windows: https://github.com/Deep-Symmetry/beat-link-trigger/releases
Configure Chromatik
Configure Chromatik to receive OSC input.
Set the clock source in the toolbar to OSC
. Beat trigger modulation can be enabled/disabled using the circular green button on the right. The button remains gray when disabled, and pulses green on beats when enabled and clock signal is being received.
Configure Beat Link Trigger
Edit Setup Expression
First, from the gear icon select Edit Setup Expression
and enter the following:
(swap! locals assoc :lx (osc/osc-client "localhost" 3030))
Note that you may substitute localhost
and 3030
if Chromatik is running on a different machine or port.
Edit Beat Expression
Next, select Edit Beat Expression
and enter the following:
(when trigger-active?
(osc/osc-send (:lx @locals) "/lx/tempo/beat" beat-within-bar)
(osc/osc-send (:lx @locals) "/lx/tempo/setBPM" effective-tempo))
The first osc/osc-send
call sends an active beat, and the second one sends the tempo. Typically you will want Chromatik to receive both, but it is possible to only send one or the other if desired.
Edit Shutdown Expression
Finally, repeat this process for Edit Shutdown Expression
and enter the following to close the OSC client:
(osc/osc-close (:lx @locals))
Networking Notes
Pioneer DJ equipment can generate a lot of local network traffic. This is not necessarily a problem, but if you are also using a local network for a large amount of LED output (e.g. Art-Net/sACN traffic), then it is generally a good idea to separate these networks. Possible approaches include:
- Use two distinct network interfaces on your Chromatik machine
- Use a physical switch that can separate traffic using VLANs
Many thanks to Justin Belcher for initial determination and documentation of these settings.