github stemdeckapp/stemdeck v0.19.0

4 hours ago

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.19.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.19.0

On Windows or Linux, this update is a fresh download rather than a one-click update: press Download, unzip it, and run it. Your library stays as it is. "Updating" at the end says why.

The track you are playing now knows what it is. StemDeck names the song, the artist and the show or film it comes from, and the Lyrics tab follows the singer line by line while you practise. It works the same for a Mandarin ballad or a K-pop single as for an English band.

Every track knows what song it is

Most YouTube uploads carry nothing but a title, so until now a track only knew its song when the file happened to be tagged. Each import is now identified while it separates: from its tags when it has them, otherwise from its title, looked up on MusicBrainz. The now-playing card shows the song, and the info button opens the artist: history, members, albums, and their website, Instagram, Spotify and Apple Music when those exist. A song from a musical or a film says which one (#704, #706, #707).

For bands Wikipedia does not cover, an optional Discogs token fills the artist box. With an optional AcoustID key, the audio itself is fingerprinted first, which finds songs whose titles say nothing. Both live in a new Song details tab in Settings, and both are off until you add a key. A key AcoustID refuses is caught when you save it, with a message that says which kind of key to use (#712, #718).

Lyrics that follow the singer

Lyrics are found on LRCLIB during the import and kept with the track. They are only kept when both the song and the artist match; otherwise the tab says none were found, rather than showing somebody else's words (#702).

LRCLIB often holds a song timed to another cut: the album version against a video with a longer intro, or a live take. StemDeck now listens to the vocals stem and times those lyrics line by line, so each line lands when it is sung, not just shifted as a block. I checked this on 57 songs across all ten languages the app speaks: 90% to 100% of lines start within half a second of the voice, depending on the language (#716).

A song no database has can be transcribed from the vocals instead. That uses Whisper on your own machine, on NVIDIA GPUs by default. The first time it runs it downloads its model, about 1.6 GB.

Sync lines: time the lyrics yourself

When a line is still off, or a song has lyrics with no timing at all, open Sync lines in the Lyrics tab. Play the song and tap T or Enter as each line starts. Each line also gets a marker on a Lyrics lane above the waveform, and you can drag it into place the way you would the beat grid. There is undo, nudging by a fraction of a second, and a way back to the detected timing. Timing you make yourself always wins, and it is kept with the track. Align is there too, for moving all the lyrics at once (#717).

Every language the app speaks

Chinese, Japanese and Korean songs used to be found almost never. Titles in two scripts, traditional and simplified Chinese, and full-width text are understood now, and artists are matched through their real alternative names rather than guesses. The artist box reads the artist's own Wikipedia when yours only has a stub, and shows their native name next to the translated one. Karaoke fills Chinese and Japanese a character at a time and Korean by syllable (#705, #709).

LRCLIB holds many Polish songs with every accented letter deleted. Those letters come back, taken from an intact copy or from what the vocals say (#703). Tags written in old Central European or Cyrillic code pages read correctly (#711).

Fixes

  • An error is a readable card you can close, not a faint red strip over the top bar (#708).
  • The timeline ruler stays legible on an hour-long track (#710).
  • Cancel works right away while a YouTube link is still being looked up, instead of up to 20 seconds later (#715).

From the issue tracker

@wastedbits reported five things in 0.18.1, and each one is in here. The now-playing card's date wraps instead of being cut off (#698). The Unsorted folder no longer pretends it can be reordered or given subfolders (#695). The click track box stays solid when no song is loaded (#697). Count-in says that it plays even with the click off (#696). And the top bar now reads as one extraction row with the now-playing card at its end, which was their idea (#699). Thank you for all of them.

Privacy

To identify a song, its names (artist, song, album, show) are sent to MusicBrainz, Wikidata, Wikipedia and LRCLIB. An audio fingerprint goes to AcoustID only if you have added a key, and names go to Discogs only if you have added a token. The lyrics stay on your machine. The Song details tab says the same.

Updating

This release adds Whisper to the Python runtime, and that decides how it reaches you.

  • Windows and Linux: the app will tell you 0.19.0 is out, but this time with a download link rather than the one-click update. The one-click update replaces the app and keeps the runtime you already have, and this release needs a new runtime. Download your package from the table above once, unzip it, and run it.
  • macOS: install the new app from the table above. Its first launch downloads the matching runtime.
  • Docker and Unraid: pull the new image as usual.

Nothing in your library is touched.

Don't miss a new stemdeck release

NewReleases is sending notifications on new releases.