You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Slowed playback sounds echoey on everything, not only drums #729
Below 1x speed, everything that is time-stretched sounds slightly doubled or echoey: vocals, guitars, pads and cymbals, not only drum hits. At 0.75x it is clearly audible, and it is the main thing standing between the slowed speed and something pleasant to practise with.
Why
The tempo stage is WSOLA. It builds the slowed audio by repeating overlapping 82 ms fragments of the input. On sustained sound the repeats are heard as an echo or chorus. That is how WSOLA works, so no setting removes it. Shorter fragments move the echo closer together and make the tone grainier instead.
A frequency-domain stretcher does not repeat fragments. Rendered offline from the same 20 seconds of a full mix at 0.75x (55 attacks in the input):
Stretcher
Attacks out
Attack pairs 20 to 90 ms apart
WSOLA
60
8
Signalsmith Stretch, 40 ms blocks
61
2
By ear, the echo on sustained sound is gone.
Constraints
It has to stretch live input. The stems arrive at 1x and the stage consumes them at the slowed rate.
It must be permissively licensed, because it ships in an Apache 2.0 app. Rubber Band is GPL and is out.
The pitch stages and the shared-clock design (music, drums and click through one tempo stage) stay as they are.
The playhead, lyrics and count-in all correct for the stage's latency, so the latency has to be exact and reported by the processor, not hard-coded in the engines.
WebAssembly is blocked by the current script-src 'self' CSP, in the browser and in the desktop app.
If the new stage cannot load, playback must fall back to the current one rather than go silent.
Activity
feat(engine): stretch slowed playback with Signalsmith Stretch
Slowed playback: no stutter, no doubled kicks, no echo (#727)
Fix the open issues after 0.19.0 (#740)
Release 0.19.1 (stemdeckapp#739)