Working with the Opus Quad

Even though the Opus Quad does not attempt to truly implement the Pro DJ Link protocol, it is now possible to use many Beat Link Trigger features with that hardware thanks to a lot of work by @cprepos and Kyle Awayan.

The key to getting useful results with the Opus Quad, since it is unable to send most of the metadata that BLT needs, is to create metadata archive files for any USBs that you want to use, and attach them to the appropriate USB slots in the Player Status window.

We can’t yet support running BLT and an Opus Quad with tracks loaded over Link from Rekordbox or Rekordbox Mobile. We hope this can be solved someday, but it will require some additional technical breakthroughs.

I’m frankly amazed that we can do this at all, but if you want to work with this hardware you need to understand that it is not going to be seamless or automatic the way working with Pro DJ Link hardware is; you have to do some prep work in advance, update that work as you add more tracks that you want to work with, and understand limitations and make choices about which tradeoffs you want to make.

Creating Metadata Archives

This falls under the category of preparation and maintenance work that you need to undertake. One major feature missing from the Opus Quad is the ability to serve database and track metadata over the network. This makes sense because it doesn’t expect to talk to other players! But Beat Link Trigger needs that information to operate. So it’s up to you to make it available, and the way to do that is to give BLT a metadata archive covering all tracks you want to use.

To create a metadata archive of a USB that you want to use with the Opus Quad and Beat Link Trigger, start by mounting that USB on the computer running BLT. Then choose File  Archive Metadata in the Triggers window.

Archive Metadata

This brings up a window where you can navigate to the mounted USB drive:

Choose media to archive

Once you have selected the mounted media, click Choose Rekordbox Media. That opens a new window where you can choose where to save the archive:

Create metadata archive

Navigate to where you would like to save it, choose a name for it, and click Create Metadata Archive. The archive will be created, which may take a while, depending on how many tracks are in the USB. A progress bar will allow you to see how the export is going, and cancel it if you change your mind:

Archive creation progress

Once you have archives created for all the USBs you want to use with your Opus Quad, you can proceed to the next step.

You will need to update your metadata archives whenever you add or edit tracks on the USB. To do that, follow the same steps above, choose the existing archive that you want to update at the step where you are specifying where it should be saved, and respond Yes to the dialog that asks you if you want to replace the existing file.

Attaching Metadata Archives

Whenever you insert a USB into the Opus Quad, you need to attach the corresponding metadata archive for that slot number. To do that, use the gear popup menu corresponding to that slot in the Player Status window (this uses the same user interface elements that would be used to tell players to load or play tracks with other hardware):

Attach metadata archive

Navigate to where you saved your metadata archives, choose the correct one, and click Attach Metadata Archive:

Choose metadata archive to attach

This will enable Beat Link Trigger features to operate when you play tracks from that USB. If you ever swap the USB in the slot, you will need to go through this process to switch to the correct archive for the new USB that you have inserted. If you have removed a USB and do not plan to insert a new one, choose Remove Metadata Archive in the gear menu for that slot.

Make sure you are using the gear menu for the correct slot that you are inserting or removing USBs in the Opus Quad, and that you choose correct and up-to-date metadata archives for those USBs, or track matching will not work correctly! And as noted below you are best limiting yourself to putting no more than one USB at a time into the Opus Quad.

Limitations

There are some fundamental ways in which working with the Opus Quad can’t be as good as working with a system designed to interoperate over Pro DJ Link.

Lack of Beat Packets

The Opus Quad does not send beat packets, which are the only way (without high-precision position packets, which are also not sent) to actually know exactly what part of a track is currently being played. This means that BLT is can be up to 200 milliseconds ahead of or behind the actual playback position, which is not particularly accurate. This is the same problem faced during reverse play with players older than the CDJ-3000, but it is a problem even during normal play on the Opus Quad.

This also means that Beat Expressions will never run with an Opus Quad, nor will Started On-Time expressions in show cues, all cues will always be considered to have started late. And if you are using Carabiner to sync to Ableton Link, only tempo can be synced, it is not possible to align beats or bars. We are working on this.

USB Slot Limitations

Unfortunately, the Opus Quad does not report the USB slot that a track was loaded from, so we have to infer that by comparing PSSI (phrase analysis) data between what was received through rekordbox lighting packets and what is in the Metadata Archive. We hope that tracks will not share identical PSSI data, but can’t guarantee that. For this reason, it is safest to only use a single USB in an Opus Quad while working with Beat Link Trigger.

ID Drift

The IDs that the Opus Quad reports for tracks are Device Library Plus IDs, but Beat Link can only read the classic Device Library. Generally, those databases start out using the same IDs for the same track, but over time as you edit your collection, they can drift apart. This can lead to problems recognizing tracks even if you are only using a single USB, although we hope that PSSI matching is robust enough to make that a rare occurrence. The workaround described below will eliminate this problem if we can implement it.

Built-In USB Network Problems

The Opus Quad includes an embedded USB Ethernet adapter, so that you can connect it to your computer with just a USB cable, and have them send IP packets to each other that way. Unfortunately, this adapter seems to be unreliable. If you try to use that as the mechanism by which BLT talks to the Opus Quad, some users have reported that the connection drops from time to time.

To avoid that, connect the Opus Quad to your computer with a real Ethernet cable instead of the USB cable.

If you must also connect them via USB cable (for example, you want to use the USB audio interface in the Opus Quad), you will end up with multiple network paths for the Pro DJ Link packets, which is also a problem. So you will need to disable the USB network interface associated with the Opus Quad. On macOS you can do that by watching in the Network section of the System Settings, to see which interface activates and deactivates when you connect and disconnect the Opus Quad, and then using the Make Inactive context menu to disable that interface. On other operating systems you will need to perform the equivalent actions.

Potential Future Workaround

As noted above, the Opus Quad works with Device Library Plus, but Beat Link Trigger only knows how to parse classic Device Library databases.

We think that by using the SQLite Device Library Plus database to reliably match track IDs to track metadata will allow us to go back to the normal BLT approach of posing as a CDJ, rather than rekordbox, and obtain high priority position packets from the Opus Quad. (Using the newer database is a requirement, because in this mode we no longer receive the rekordbox lighting packets which allow track-matching by PSSI data.) This would allow us to follow the player position closely enough that we could fake the beat packets, and enable some important Beat Link Trigger features like beat expressions and beat/bar sync with Ableton Link.

This is an area of active research, but is not far enough along to make it into the 8.0 release.