Repository navigation
There is no way to follow a song's lyrics while practising it #702
Description
The problem
StemDeck gives a singer or a player every part of a song except the words. Someone practising a vocal line against the instrumental, or a guitarist learning where the chorus lands, has to keep the lyrics open in another window and find their place by ear. There is no way to follow the words in time with the music, and no way to click a line and jump to that point in the song.
For vocal practice in particular that is the missing half. The stems are the backing track, the lyrics are the part being practised.
Why it is not just fetching a text file
LRCLIB is the obvious source: free, open, no API key, and it holds synced (timestamped) lyrics for a very large number of songs. Showing its answer as it comes back runs into four things.
- The timing is often for a different cut. LRCLIB holds many versions of one song, and the file a user imports is often a different length: a fan edit, a music video with a spoken intro, a remaster with trimmed silence. Every line then arrives seconds early or late. Karaoke that is consistently two seconds off is worse than a plain lyrics sheet, because it teaches the wrong entry.
- The search is fuzzy. Ask LRCLIB for a common title and it answers with other artists' songs of the same name. Lyrics that may belong to another song are worse than none, so a version can only be shown when both the song and the artist match. Otherwise the honest answer is "No lyrics found".
- Some songs are in no database at all. A demo, a local band, a rehearsal recording. The only way to get words for those is to transcribe the vocals stem on the machine itself.
- Waiting for a tab to open is too late. If lyrics are only looked up when the Lyrics tab is opened, they are missing offline, missing on the phone UI, and slow the first time on every device.
Constraints for a fix
- Lyrics should already be there when an import finishes, on every device, not fetched on demand by one browser.
- Timing has to be moved onto this track when the version differs, and left alone when there is no clear fit. Wrong timing moved is worse than wrong timing kept.
- A version is only kept when song and artist really match. No match shows "No lyrics found".
- Local transcription costs GPU time and model downloads. It has to be a setting, and it must never block, slow down or fail a separation job.
- Lyrics are copyright of their writers. They stay on the user's machine and are never sent on anywhere.
Being worked on in the feat/song-identification branch.
Activity
fix: drop kept lyrics that are another song's (#702)
fix: what a review of #713 found (#702, #706, #716, #717, #718)
Song details, lyrics and artist info for every track, in every langua…