Trigger events and automate shows in response to events on Pioneer CDJs
Clone or download
brunchboy Try to restore "Send Status Packets" state at startup.
Make it easier to use Carabiner full-sync workflows with Ableton Link.
Latest commit 27013dc Sep 19, 2018



An application to trigger MIDI events when CDJs start playing tracks, reach particular beats, or whatever else you can think of. Built using beat-link. There is more description and a video in a DJ TechTools article, too!



Download the latest executable beat-link-trigger.jar file from the releases page and double-click it to run it. If that doesn’t work, see below.


beat-link-trigger requires Java 7 or 8. It is compiled and tested using the latest release of Java 8, so that is your best bet.

⚠️ Java 9 and 10 are not yet supported, but this support is in development, and Beat Link Trigger 0.4.0 is now available as a preview release. 🚧 If you would like to help testing this, download and try out the 0.4.0 preview jar, which can be found on the releases page.

A trigger window will open, in which you can choose the players you want to watch, the kind of MIDI message to send when they start and stop, and when the triggers are enabled:

Trigger window

Starting with version 0.3.0, there is also an interface for monitoring the status of each player found on the network, which you can access by choosing Show Player Status in the Network menu:

Player Status window

Going Further

This page is just a quick introduction! Please see the the full 📓 user guide for many more details, including:

  • How to configure Triggers
  • How to use Expressions
  • Working with title/artist metadata
  • Working with Ableton Link
  • Integration examples

And much more... and hopefully you will soon be coming up with interesting integration projects of your own.

You can also find user-contributed examples and resources on the project Wiki. Once you have come up with your own great ways to use Beat Link Trigger, please add a page or two the Wiki to share them with others!


First of all, we would love to hear from you! We have no way of knowing who has discovered, explored, downloaded and tried Beat Link Trigger. So if you have, please write a quick note on the Gitter chat room to let us know! Even if it is only to explain why it didn't quite work for you.

If you run into specific problems or have ideas of ways Beat Link Trigger could be better, you can also open an Issue.

Please be mindful of our Code of Conduct to make sure everyone feels welcome in the community.


Beat Link Trigger is, and will remain, completely free and open-source. If it has helped you, taught you something, or pleased you, let us know and share some of your discoveries and code as described above. If you'd like to financially support its ongoing development, you are welcome (but by no means obligated) to donate to offset the hundreds of hours of research, development, and writing that have already been invested. Or perhaps to facilitate future efforts, tools, toys, and time to explore.

Donate using Liberapay using Liberapay, or Donate using PayPal

If enough people jump onboard, we may even be able to get a newer CDJ to experiment with, although that's an unlikely stretch goal. 😀


This is in no way a sanctioned implementation of the protocols. It should be clear, but:

⚠️ Use at your own risk! For example, there are reports that the XDJ-RX crashes when BLT starts, so don't use it with one on your network. As Pioneer themselves explain, the XDJ-RX does not actually implement the protocol:

“The LINK on the RX is ONLY for linking to rekordbox on your computer or a router with WiFi to connect rekordbox mobile. It can not exchange LINK data with other CDJs or DJMs.”

While these techniques appear to work for us so far, there are many gaps in our knowledge, and things could change at any time with new releases of hardware or even firmware updates from Pioneer.

You should also not expect to be able to run Beat Link Trigger, or any project like it, on the same machine that you are running rekordbox, because they will compete over access to network ports.

Beat Link Trigger seems to work great with CDJ-2000 Nexus gear, and works fairly well (with less information available) with older CDJ-2000s. It has also been reported to work with XDJ-1000 gear. If you can try it with anything else, please let us know what you learn in the Gitter chat room, or if you have worked out actionable details about something that could be improved, open an Issue or submit a pull request so we can all improve our understanding together.

If something isn't working with your hardware and you don't yet know the details why, but are willing to learn a little and help figure it out, look at the dysentery project, which is where we are organizing the research tools and results which made programs like Beat Link Trigger possible.

Startup Issues

If double-clicking doesn’t open up the application, make sure you have a recent Java 8 SE runtime environment installed, and try running it from the command line:

java -jar beat-link-trigger.jar

⚠️ Make sure you download the Java 8 SE JRE, not Java 9 or later, as Beat Link Trigger is not yet compatible with Java 9, 10, or 11 unless you are using the 0.4.0 preview release of Beat Link Trigger.

If that does not work, at least you will be able to see a detailed report of what went wrong, which can help you troubleshoot the issue.

Font-Related Bugs

If you see a long exception stack trace similar to the one in this discussion and you have your computer language set to one that uses an alphabet which is substantially different from English, you may be encountering what seems to be a bug in the GUI library (or maybe even in Java itself). Try setting your system language to US English, and see if that at least lets you run the program.

Mac Trust Confirmation

If you are on a Mac, the first time you try to launch the downloaded jar file by double-clicking it you will see an error like this because it is not a Mac-specific application:

Unsigned jar

You can fix that by control-clicking on the Jar and choosing “Open” at the top of the contextual menu that pops up. You will be asked to confirm that you really want to run it. Click the “Open” button in that confirmation dialog, and from then on, you will be able to run that copy by just double-clicking it.

Confirmation dialog

Someday we may release a Mac-specific bundle of the application, perhaps even through the Mac App Store, which will avoid the need to take this step. But that will be a much larger download because it will have to bundle its own copy of the entire Java environment. In the mean time, at least you only need to do this once for each new release you download.


Deep Symmetry Copyright © 2016–2018 Deep Symmetry, LLC

Distributed under the Eclipse Public License 1.0, the same as Clojure. By using this software in any fashion, you are agreeing to be bound by the terms of this license. You must not remove this notice, or any other, from this software.