Download

djctl will operate in demonstration mode when launched without a license key. In this mode, all track titles are reported as “Track Title Unavailable in Demo Mode.” To remove this message, a license must be purchased.

Please see the FAQ and the Quickstart documentation for information on compatability and how to setup and launch djctl. If you need extra help, please drop me a note and I’ll get back to you as soon as possible.

Version 1.3.0-alpha.13

2023-04-21

Release notes

  • Three new text-only themes added: textflip, textglideleft, and textglideright. Use --theme.internal flag to use them.
  • The last “seen” track is now displayed in the theme when a client connects. No more waiting until a track update occurs for the initial theme load to populate.
  • The new substitution variable, $ELAPSED$, is now available across all sinks.
  • Major refactor of sink logic.
  • Unconfigured sink destinations no longer trigger during track updates. Previously, all sink destinations triggered regardless of whether they could publish a track update.

Download

Version 1.3.0-alpha.12

2023-04-07

Release notes

  • A new substitution variable, $ELAPSED$, is now available for use in the history file sink. This variable enables the recording of the elapsed time since the first track and can be particularly useful for generating YouTube chapter markers.

Download

Version 1.3.0-alpha.11

2023-04-06

Release notes

  • New internal theme text added. This theme is the same as default but without art. Internal themes can be selected using the --theme.internal flag.

Download

Version 1.3.0-alpha.10

2022-12-08

Release notes

  • New internal themes added: artleft, artright, sliderartleft, and sliderartright. These themes can be selected using the new --theme.internal flag.

Download

Version 1.3.0-alpha.9

2022-09-19

Release notes

  • Featured track detection algorithm accuracy is greatly improved.
  • Configuration parsing is improved.
  • The --theme.internal flag has been introduced to support selection of an embedded theme. Valid theme names include default, slider, and sliderspotify. These names mirror the example external themes. The preexisting --theme.dir flag overrides internal theme selection.
  • The --placeholder.art.internal flag has been introduced to support selection of an embedded track art image to use when album art metadata is unavailable. Valid placeholder art names include pixel and note. The pixel image is a 1 pixel transparent PNG while the note image is a music note.
  • When using the album art file sink, a 1-pixel transparent PNG is created in the absence of album art metadata. For example, when no track is featured or a featured track contains no art metadata (and --placeholder.art.internal is not specified).

Download

Version 1.3.0-alpha.8

2022-09-02

Release notes

  • Genre metadata is now available in the webhook JSON and format string variables. Tracks can also be hidden using this metadata with the --hide.regex.genre flag.
  • The webhook JSON payload is now configurable. Use the new --webhook.json.art, --webhook.json.artist, --webhook.json.duration, --webhook.json.epoch, --webhook.json.genre, --webhook.json.spotify, --webhook.json.timestamp, and --webhook.json.title flags to specify the ordered list of JSON keys each corresponding value is placed under. A special --webhook.json.format flag is available which, when combined with a --webhook.format custom format string, provides a single custom field for the webhook payload. Please note that all of these fields are optional and the default payload format remains unchanged. See the Webhook API documentation for more information.

Download

Version 1.3.0-alpha.7

2022-08-30

Release notes

  • Added experimental CUE sheet support to automate track listing data input for Mixcloud uploads. Use --cue.filename to output CUE formatted track log to specified file. To supply CUE header fields, use --cue.header.file, --cue.header.filetype, --cue.header.performer, and --cue.header.title flags. Please see the CUE sheet documentation section for more information.
  • Refactor and cleanup of configuration handling throughout application.

Download

Version 1.3.0-alpha.6

2022-08-26

Release notes

  • Added experimental OSC destination support. Use --osc.host and --osc.port to define the OSC destination. Create artist and song name to OSC address mappings using --osc.address.artist and --osc.address.song respectively. More details to come in a documentation update. If you are a Resolume user, I’d love your feedback.
  • WebSocket port in included themes is no longer hardcoded. As a result of this change, users no longer have to manually edit the theme Javascript when they move djctl listener port using --http.addr.

Download

Version 1.3.0-alpha.5

2022-08-16

Release notes

  • Added an experimental featured track detection algorithm specifically for users with SC players but no X series mixer. Use --detection.algorithm=altlead to test this mode. Its detection behavior is similar to the lead algorithm introduced in 1.3.0-alpha.3.

Download

Version 1.3.0-alpha.4

2022-08-13

Release notes

  • New timestamp substitution variables available for file-based outputs. See the substitution variables section of the documentation for more information.
  • Fixed a panic that occurred when losing connectivity to a SC player in a pair. djctl now gracefully shuts down.

Download

Version 1.3.0-alpha.3

2022-08-10

Release notes

  • Added new featured track detection algorithm called “lead.” A track is lead if you press play and no other track is also in the play state. When you engage play on a new track, this new track doesn’t transition into lead state until the other track has been stopped. You can activate this algorithm with the --detection.algorithm=lead parameter.
  • Added option to set a volume percent threshold to the default featured track detection algorithm (“volume”). By setting a percent lower than 100, you can allow a track to become “featured” even when faders are still up on other tracks. As long as all the other faders have dropped below a threshold (calculated as a percentage of the loudest track in the mix), a track can be promoted to “featured.” Use the --detection.volume.percent parameter to set this percent value.
  • Defaults for track detection algorithm are set to --detection.algorithm=volume and --detection.volume.percent=100. When --detection.algorithm=lead, the --detection.volume.percent parameter is not applicable and has no effect.

Download

Version 1.3.0-alpha.2

Unreleased private alpha

Version 1.3.0-alpha.1

2022-08-08

Release notes

  • Experimental support for SC players paired with X mixers added. Please report success and failures to support@djctl.com.

Download

Version 1.2.0

2022-07-13

Release notes

  • Experimental support for Spotify Codes. See the Spotify section of the CLI reference guide for more information on configuring this feature. Please note that you will need a djctl license and Spotify Premium account in order to use this feature.

Download

Version 1.1.2

2022-06-25

Release notes

  • Exit when error encountered during UDP listener setup rather than panic
  • Fixed file and Discord sinks not honoring regex extraction
  • Better handle non-Websocket client connecting to Websocket path
  • Exit when HTTP listener port conflict detected rather than silently failing

Download

Version 1.1.1

Unreleased

Release notes

  • Fixed rare panic that could occur when StateMap service refuses connection after discovery

Version 1.1.0

2022-06-15

Release notes

  • Promoted experimental themes to default; removed old default themes
  • Optimized thread startup order
  • Eliminated several data race conditions
  • Refactored sink code to ensure in-order handling of events during rapid transitions

Download

Version 1.0.3

2022-05-28

Release notes

  • Sink performance optimizations

Download

Version 1.0.2

2022-05-28

Release notes

  • Added experimental themes with more robust Websocket reconnect logic

Download

Version 1.0.1

2022-05-27

Release notes

  • Initial public release

Download