Important
macOS first launch (no code signing yet). After dragging StemDeck to Applications, clear the Gatekeeper quarantine flag or macOS will say the app is damaged:
xattr -dr com.apple.quarantine /Applications/StemDeck.app
Which file do I download?
| Your setup | Download |
|---|---|
| Windows, NVIDIA GPU | StemDeck-Windows-x64.NVIDIA.zip
|
| Windows, no NVIDIA GPU | StemDeck-Windows-x64.zip
|
| Linux, NVIDIA GPU | StemDeck-Linux-x64.NVIDIA.tar.gz
|
| Linux, no NVIDIA GPU | StemDeck-Linux-x64.tar.gz
|
| macOS, Apple Silicon (M1-M4) | StemDeck-macOS-arm64.dmg
|
| macOS, Intel | StemDeck-macOS-x64.dmg
|
| Docker / Unraid | Nothing here, pull ghcr.io/stemdeckapp/stemdeck:0.18.0
|
Pick one. Each Windows and Linux download is complete on its own: unzip and run, no installer, no toolchain. Everything else in the asset list is used by StemDeck itself, in particular the small -app files are the updater's payload and will not run on their own.
What's new in 0.18.0
A new top bar, a vocals control that says what it does, and a count-in that plays every time. Most of the rest came from people who wrote in about something that did not behave the way it looked. Thank you for those.
If you are on 0.17.2 or 0.17.3, the in-app updater will offer this one. Nothing about the Python runtime changed, so there is no full download to do.
A top bar that fits on two lines
The top bar used three lines for two lines of content. It is a grid now. The first row is upload, search, the track you have open and the two actions. The second is Extract and its stems, with the Collapse row beside them.
When the window narrows, the stems no longer wrap and push the bar taller. They fold behind a ⋯ button one at a time, from the end of the row, and come back as the window widens. The bar is the same height from 2560px down to 900px, in every language. French and Polish used to wrap at 1280px while English fit, which is how that went unnoticed.
The logo opens stemdeck.app, in your browser rather than inside the app.
Two controls left, because they no longer governed anything: the Timeline toggle, whose waveform strip went with the old footer, and "All" in the Collapse row.
The vocals control
The vocals mode that sat beside the chip was called "All", a few pixels from the other "All" that selects every stem. It is called Combined now, in every language.
Combined and Lead + Backing are the vocals control itself, not a setting waiting on the chip:
- Press the lit one to switch vocals off.
- Press the other to change mode and keep vocals on.
- Press either while vocals are off to switch them on in that mode.
- The Vocals chip still works, and turns vocals on as Combined.
The phone's Extract screen works the same way.
Two bugs came out with it. Pressing the last selected stem turned all six back on, and it now just switches that one off. And an empty selection used to send every stem, because the server reads an empty list as "all". Split is disabled while nothing is selected.
The count-in plays every time
The count-in played on the first press of play and never again for that track. After a stop, a pause or the end of the track, its clicks were timed against the previous start and landed in the past, where they make no sound. It plays on every start now, with the click track on or off.
The click panel also stopped looking live when the click is off. Switching the click off closes the beat-grid editor, since the editor edits the beats the click plays. The toggle said "ON" in every language whether it was on or not, and is now the metronome icon, lit when it is on.
A library that reads the same on every row
The line under each title was stored when the track was added, by six different code paths that did not agree. A track picked up at startup could read " · 6 stems", or "0 stems". It is built when the row is drawn now: length and stem count for a finished track, "Processing" or "Import failed" otherwise, and it follows your language.
The Recent section is gone. It listed the three newest tracks, which are already at the top of their folder, so one song could appear four times.
Tracks you uploaded yourself show their file format where artwork would be, as a small file icon with a band coloured per format: WAV, FLAC, MP3, M4A, OGG, OPUS and MP4 each have their own colour. The track panel's quality line reads "Lossless (WAV)" or "Compressed (MP3)" for uploads too, which it never managed before. Tracks already in your library pick this up at startup, as long as StemDeck kept their original file.
Dropping files on Linux
On the Linux desktop app, dropping a file turned the window into a bare media player, or typed its path into the URL box. The Linux webview never tells the page a drag contains files, so the page cannot receive them at all. The app takes the drop itself now and hands the page the file, by the same path as the file picker. Windows and macOS were not affected and are unchanged.
YouTube imports and FFmpeg
When setup rejected the FFmpeg in StemDeck's data folder and chose another, YouTube imports kept using the rejected one. An FFmpeg unpacked into a bin folder inside the data folder was invisible to them altogether. Both now use the FFmpeg setup actually verified.
The waveform after a lead and backing split
After a lead and backing split on a track you already had, the new stems played under the old waveform, and no reload fixed it. The browser had been told the waveform could never change, and took that literally. It checks for a newer one now.
Smaller things
- The favourite heart started an extraction. It sat inside the import form and acted as its submit button. It is an ordinary button again.
- The analysis panel's text stays inside its cards. Below about 1250px wide, values like "Natural Minor" painted over the card beside them, and long labels wrapped onto the value.
- Lanes line up with their faders. The empty studio drew seven lanes against six faders, and the first track of a session drifted a few pixels per lane.
- The now-playing card has a sensible maximum width instead of filling whatever space the bar had spare.
- The updater only offers the release GitHub marks as latest. A release published without ticking either box could have been offered to everyone.
- Not Another Audio Podcast joins We Recommend.
Closes #639, #651, #655, #656, #658, #659, #661, #662, #663, #664, #666, #668, #669, #670, #672, #673, #674, #675, #676, #677, #678, #681, #684, #686, #688 and #690.
Full changelog: v0.17.3...v0.18.0