Skip to content
smixsPublic

About

Spicetify extension: order any Spotify playlist like a DJ set. Harmonic mixing on the Camelot wheel, a two-wave energy arc, smooth BPM steps. Uses Spotify's own Mix keys, saves a new playlist.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

DJ Mix: a Camelot key wheel feeding a two-wave energy curve

DJ Mix

Turn any Spotify playlist into a DJ set in one click.

A Spicetify extension that reorders a playlist the way a DJ would: compatible keys on the Camelot wheel, an energy arc with two waves, small tempo steps. It uses the same keys and BPM Spotify shows in its own Mix mode, runs locally in seconds and saves the result as a new playlist, so the original never changes. It also adds a Year column with each track's release year to every playlist.

MIT Spicetify extension tests JavaScript

Why

Sorting by key walks once around the wheel. Sorting by BPM gives you a flat line. A DJ set does both at once and tells a story.

Rule What DJ Mix does
Harmonic mixing Every transition stays on the Camelot wheel: same key, ±1, relative major/minor, +2 boost, an occasional diagonal
Energy arc Calm opening, a first wave, a dip, a higher second wave, a short cool-down
Tempo Neighbours stay within 2 BPM; tempo is not treated as energy
Variety Two versions of one track never sit side by side; the same artist is not played twice in a row

How it works

flowchart LR
    A[Playlist menu: DJ Mix] --> B[Key and BPM from Spotify Mix data]
    A --> E[Energy from Spotify audio features]
    B --> C[Order: key, energy arc, tempo, repeats]
    E --> C
    C --> D[New playlist: DJ Mix - name]
Loading

DJ Mix in the playlist context menu

The new DJ Mix playlist and the done notification

Year column

Every playlist gets a Year column before the duration: the release year Spotify has for each track. Click the Year header to sort your playlist by year (oldest first, click again for newest first). Spotify has no year sort for playlists, so this reorders the playlist itself; added dates stay as they were.

The Year column in a playlist

Install

Marketplace: open Spicetify Marketplace in Spotify, search for DJ Mix, click Install.

Manual, macOS and Linux:

curl -fsSL https://raw.githubusercontent.com/smixs/dj-mix/main/dj-mix.js -o "$(dirname "$(spicetify -c)")/Extensions/dj-mix.js"
spicetify config extensions dj-mix.js
spicetify apply

Manual, Windows (PowerShell):

iwr https://raw.githubusercontent.com/smixs/dj-mix/main/dj-mix.js -OutFile "$(Split-Path (spicetify -c))\Extensions\dj-mix.js"
spicetify config extensions dj-mix.js
spicetify apply

Uninstall: remove it in Marketplace, or run spicetify config extensions dj-mix.js- and spicetify apply, then delete dj-mix.js from the Extensions folder.

Use

Right-click a playlist (or press ⋯), choose DJ Mix. A new playlist DJ Mix — name opens when it is ready; 381 tracks take about 3 seconds.

Develop

bun test runs the rules tests, bun build.ts bundles src/ into dj-mix.js. Marketplace loads extensions through jsDelivr, which caches @main for up to 12 hours: after a push run bun run purge. Details of the scoring: docs/how-it-works.md.

Credits

Built on Spicetify. Inspired by Sort-Play. MIT. Copyright 2026 Sergey Shima.

About

Spicetify extension: order any Spotify playlist like a DJ set. Harmonic mixing on the Camelot wheel, a two-wave energy arc, smooth BPM steps. Uses Spotify's own Mix keys, saves a new playlist.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages