Software licenses

The audio software and typefaces used on this site come from open-source projects.

Cloud separation takes the vocals from Kim's Mel-Band RoFormer vocal model, published under the MIT License, running on code from Music-Source-Separation-Training and BS-RoFormer, both under the MIT License. Demucs v4, including the four-source htdemucs model, splits the drums, bass and other parts in the cloud and runs all of the browser separation. The Demucs code is published under the MIT License. These models estimate the vocal, drums, bass and other parts of a mix; they do not supply ownership rights to any recording a visitor uploads.

StemVocal is independent of those projects. Their names identify the software and font used; they do not imply endorsement. Questions about the site can be sent through the contact page.

Typefaces

Inter is served from this site under the SIL Open Font License 1.1. Your browser does not contact a font provider.

Speed and key processing

The optional practice-player key control and full-track speed/key export use SoundTouchJS 2.1.1, including its core, AudioWorklet, worklet-base and Lanczos interpolation packages, under the Mozilla Public License 2.0. Copyright belongs to the upstream contributors named in the sources.

Source archive, processor source, source map with original source text, our playback lifecycle wrapper, and version and file hashes are available here. The processor registration was changed to an export so the wrapper can clear buffered audio on playback changes. Its DSP algorithms are unchanged. These files are served by this site; key changes do not upload audio.

The offline core is a separate build of the unmodified SoundTouch engine in the same source archive. Its public pitch and tempo controls render a track in small blocks. No audio is sent to the library's authors.

Local audio decoding

Browser separation, Find BPM, the original waveform, track export and mix export use Mediabunny 1.60.0 to read short audio blocks in your browser; it also takes the sound out of a video you choose, and writes the video again with a separated track as its sound. Mediabunny is Copyright © Vanilagy and contributors, licensed under the Mozilla Public License 2.0.

The complete published source package, unmodified browser module and version and file hashes are available from this site. The decoder is bundled into the separation, analysis, waveform and export workers. These controls are StemVocal code. Local audio stays on your device. Mix export uses the local result files or downloads the existing cloud stems, then combines them without another upload.

The browser model is our ONNX export of the original htdemucs checkpoint. Its Fourier-transform helper comes from demucs-web under the MIT License. Browser inference uses ONNX Runtime under its MIT License. Model and runtime files are served from this site.

MP3 copies of free results

When you choose MP3 for a free result, your browser encodes the WAV tracks with the LAME MP3 encoder 3.100, compiled to WebAssembly. It also encodes the sound of a video whose audio cannot be copied as it is and would be too large as WAV. LAME is free software under the GNU Library General Public License, version 2 or later (LAME's notes). It is loaded as a separate, unmodified module file that you can replace; StemVocal code only calls it.

The WebAssembly build and its small C bridge come from Mediabunny's MP3 encoder package 1.60.0 by Vanilagy and contributors, under the Mozilla Public License 2.0. Its Emscripten runtime code is under the MIT or University of Illinois/NCSA license. We changed only the module's export line so browsers can load it.

The LAME 3.100 source release, the encoder package with the bridge source and the version and file hashes are served from this site. Encoding happens on your device; no audio is sent anywhere.

Example recording

The separation example uses “Just Lucky, I Guess” by D A Ayer (Mr_Yesterday), licensed under CC BY 4.0. We excerpted 45 seconds (2:09 to 2:54, with a short fade at each end), added the published vocal, drum, bass and saxophone tracks into one mix, separated that mix with StemVocal and encoded the results as MP3. The separated tracks are StemVocal output, not the artist's own stems.