Download
On this page
- Version 2.1.0-alpha.6
- Version 2.1.0-alpha.5
- Version 2.1.0-alpha.4
- Version 2.1.0-alpha.3
- Version 2.1.0-alpha.2
- Version 2.1.0-alpha.1
- Version 2.0.2
- Version 2.0.1
- Version 2.0.0
- Version 1.3.0-alpha.13
- Version 1.3.0-alpha.12
- Version 1.3.0-alpha.11
- Version 1.3.0-alpha.10
- Version 1.3.0-alpha.9
- Version 1.3.0-alpha.8
- Version 1.3.0-alpha.7
- Version 1.3.0-alpha.6
- Version 1.3.0-alpha.5
- Version 1.3.0-alpha.4
- Version 1.3.0-alpha.3
- Version 1.3.0-alpha.2
- Version 1.3.0-alpha.1
- Version 1.2.0
- Version 1.1.2
- Version 1.1.1
- Version 1.1.0
- Version 1.0.3
- Version 1.0.2
- Version 1.0.1
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.
Version 2.1.0-alpha.6
Release notes
2025-02-28
- Experimental Serato source now disables on 2025-04-01 (was 2025-03-01). Expect new builds to be issued at least once a month for now.
Download
Version 2.1.0-alpha.5
Release notes
2025-02-15
- New Denon options
--denon.discovery.ignore_link_local
,--denon.discovery.max_devices
, and--denon.discovery.timeout
which impact device discovery behavior. See the Discovery section of the CLI reference for more information. - The Denon Stagelinq discovery process includes creating an identity token. Previously, djctl generated this token randomly, which was generally effective. However, this version of djctl uses a pre-defined, known-good token to ensure consistent and reliable discovery. If users wish to revert to the older random token generation behavior, they can use the
--denon.token=""
flag (setting it to empty). - djctl now exits properly if no Stagelinq device is detected or if the connection becomes corrupt/disconnected.
Download
Version 2.1.0-alpha.4
Unreleased private alpha
Version 2.1.0-alpha.3
Unreleased private alpha
Version 2.1.0-alpha.2
Unreleased private alpha
Version 2.1.0-alpha.1
Release notes
2025-02-05
- Major internal refactor to reorganize codebase. As such, this release is alpha quality. Please report any issues or errors encountered.
- New Discogs and Spotify integrations for album art retrieval. Discogs provides free access to their API while Spotify Premium is required to access the Spotify API. Please note that you will need a djctl license in order to use either the Discogs or Spotify art retrieval features.
- New user-defined preference order for album art selection using
--art.precedence
.
Download
Version 2.0.2
Release notes
2025-01-24
- Fixed Spotify Codes issue where track lookup query was returning unexpected results.
- Metadata cleanup flags (
--extract.regex.artist
and--extract.regex.title
) now work for all track sources.
Download
Version 2.0.1
Release notes
2025-01-25
- Updated README.md with new CLI documentation link.
- Experimental Serato source now disables on 2025-03-01 (was 2025-02-01). Expect new builds to be issued at least once a month for now.
Download
Version 2.0.0
Release notes
2025-01-15
- Linux build now available.
- New Twitch extension (experimental) now available. See quickstart for more information.
- New Serato DJ Pro source support (experimental).
- New Hercules DJUCED source support.
- New “dummy” source now available to simulate track transitions. This new source is meant primarily for testing new themes.
Download
Version 1.3.0-alpha.13
2023-04-21
Release notes
- Three new text-only themes added:
textflip
,textglideleft
, andtextglideright
. 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 asdefault
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
, andsliderartright
. 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 includedefault
,slider
, andsliderspotify
. 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 includepixel
andnote
. Thepixel
image is a 1 pixel transparent PNG while thenote
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 thelead
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.
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