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
, 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. 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