Third-party notices
Signalsmith Stretch 1.3.2
Music mode uses the official Signalsmith Stretch WebAssembly factory with a local adapter for bounded previews, staged time stretching, final peak protection and source-guided stereo processing. Copyright 2022 Geraint Luff / Signalsmith Audio Ltd. MIT. Included license · Upstream source · Factory used in this build · Application adapter · Stereo processor · Source reader · Memory planner.
The spectral projector uses an expanded local FFT with the same numerical operations as the retained SoundTouchJS implementation. FFT adapter · Readable source · Compiled bytes. Rebuild using the included build script with quality-fft.wat and quality-fft-binary.mjs as its input and output arguments.
SoundTouchJS 2.1.1
Music compatibility mode uses an adapted local copy of @soundtouchjs/stretch-phase-vocoder with our exact-hop timing adapter and bandlimited resampler. Practice uses our own source-anchored time-domain stretching and shares the bandlimited resampler. Core and Lanczos components remain dependencies of the pinned SoundTouchJS packages. The adapted copy retains the original spectral processing and uses an optional local WebAssembly FFT, with the original JavaScript FFT as a fallback. The timing adapter reuses duplicated mono forward-FFT results and aligns alternating hops. Read the application adapter and resampler source · Rendering frame plan source. Copyright Steve “Cutter” Blades, Olli Parviainen and contributors. MPL-2.0. Included license · Original tagged source and published modules · Exact upstream revision and build instructions.
Modified FFT components and rebuild source: Adapted phase vocoder · FFT adapter and fallback · Readable FFT source · Compiled bytes · Build script · Rebuild instructions.
lamejs 1.2.7
The MP3 encoder is provided by @breezystack/lamejs. Copyright its contributors. LGPL-3.0. The library is used without modifications. Read the included license · Source and build instructions · Library module used in this build.
The app loads the encoder in a separate worker. Rebuilding with a modified compatible encoder is supported through the project dependency and worker import; there is no restriction on modifying the library or debugging those changes.