CLX (Clockworks)
CLX is an open-source protocol designed by Clockworks for communication between their own applications, and 3rd-party applications.
Need to monitor CLX timecodes, or convert to other protocols?
Timecode Toolbox supports CLX timecode as an input.
CLX is also supported directly within Arcane Desktop.
Documentation & Implementation
The protocol is documented on GitHub, along with some reference C++ code, and is where changes and updates to the protocol are also tracked.
In addition to the official reference implementation, we have also created our own open-source TypeScript implementation which is published on NPM: @arcanewizards/clx. This implementation is used in both Timecode Toolbox and Arcane Desktop, and has been thoroughly tested by both us and the Clockworks team to ensure that it is fully compatible with their own software.
Features
- Multiple Timecode signals (e.g. for multiple decks), including:
- High precision (it uses floating-point-precision rather than frames)
- Pitch / tempo
- Mixer information (fader, EQ, crossfader position, etc...)
- Beat-Grid information (BPM, beat position, etc...)
- High-Level Waveform information (e.g. for visualizers, etc...)
- Metadata information (e.g. track title, artist, BPM, etc...)
Notable Implementations
Clockworks Gateway
An application that can connect directly to either Pioneer DJ equipment (via Pro DJ Link), or Denon DJ equipment (via StagelinQ), and outputs CLX timecode.
Clockworks Server
An application that can run on a computer also running Serato, Traktor or VirtualDJ software, and output CLX timecode.
Clockworks Viewer
An application that can receive CLX timecode, display information about the timecodes, and convert to other protocols including TCNet. It also has many other features such as Cue & Setlist management, scripting, and integration with other systems.
Consumers of CLX
The following applications can use CLX as an input only, and don't produce a CLX output:
- Timecode Toolbox - Our open-source application that can receive CLX timecode and convert it to other protocols.
- Arcane Desktop - Our flagship application for synchronizing visuals with music playback.
Comparison with TCNet
CLX is a significantly newer and simpler protocol than TCNet, and has taken a different approach to the fundamental design of the protocol. In particular, it:
- Only uses a single UDP port for most communication, rather than multiple ports and session management.
- Can be run locally on the same machine as other CLX applications and communicate with these applications, rather than requiring separate machines for separate applications.
- Can be used both in a direct IP-based fashion, or via multicast for multiple receivers.
- Can be targeted to specific ports if the default ports are unavailable, or you want to have multiple CLX receivers on the same machine.
- Is very simple to implement.
See Also
Useful Links
- CLX GitHub Repository
- @arcanewizards/clx - TypeScript Implementation