Contents ↓

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.

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.