A practice looper for Linux: load a song, loop a section, slow it down without changing pitch, and drill it until you can play it.
Releases · Features · Dependencies · Install · Build & develop
These work with the installed app — no ML setup.
verse 2 → chorus 1).verse 2).dredge.json holding sections, loops, notes, analysis, recordings). Copy the folder to another machine and it loads with everything.ffmpeg).ffmpeg.dredged) runs the same engine without the UI.These require the optional Python tools in Dependencies.
| Component | Required for | Install |
|---|---|---|
| PipeWire 1.0+ | the app to run at all | system package (pipewire) |
| Runtime libraries (webkit2gtk-4.1, gtk3, …) | the app to run | pulled in automatically by the .deb (apt) and the dredge AUR package — nothing to do |
| ffmpeg | MP3 export, opus/mkv/webm containers, stem export | sudo apt install ffmpeg · sudo pacman -S ffmpeg |
The stretch engine (Rubber Band) is compiled into dredge, so there is no rubberband package to install. The prebuilt binaries target Debian/Ubuntu library versions — on Arch, use the
dredgeAUR package.
All ML pieces require uv on PATH: sudo pacman -S uv, or on Ubuntu curl -LsSf https://astral.sh/uv/install.sh | sh. A GPU is optional throughout — CPU works, slower.
Beat / section analysis (dredge-enable-ml analyze)
~/.local/share/dredge/analyze-venv, Python 3.12 (override path with $DREDGE_ANALYZE_VENV)beat_this (from git), torch, soundfile, librosa, einops, rotary-embedding-torchHigher-quality sections (dredge-enable-ml songformer)
~/.local/share/dredge/songformer-venv, Python 3.11 (override with $DREDGE_SONGFORMER_VENV)torch==2.4.0, torchaudio==2.4.0, numpy<2, transformers==4.51.1, librosa, soundfile, ema-pytorch, loguru, omegaconf, tqdm, safetensors, muq, x-transformers, msaf, einops, huggingface_hubASLP-lab/SongFormer model snapshot from Hugging Face on first run (weights plus its own modeling code)Stem separation (dredge-enable-ml stems)
uv tool: uv tool install demucs --with torchcodechtdemucs_6s, the 6-source Hybrid Transformer Demucs (Meta AI); weights download on first runffmpeg (above) for stem exportLinux only. The audio engine is PipeWire-native: PipeWire 1.0+ is required, with no ALSA or PulseAudio fallback.
Arch / Arch-based
yay -S dredge # builds from source against your system libraries
Debian / Ubuntu (24.04+ / Debian 13+)
Download the latest dredge_*_amd64.deb from the
releases page, then:
sudo apt install ./dredge_*_amd64.deb
apt pulls the runtime libraries automatically. The basic features above run with nothing else installed.
Beat/section analysis and stem separation are off by default and self-bootstrap on first use. dredge-enable-ml does that bootstrap up front, so the multi-GB downloads happen now instead of on the first analysis:
dredge-enable-ml all # analyze + songformer + stems
dredge-enable-ml analyze # beat/section analysis only
dredge-enable-ml songformer # higher-quality section labels
dredge-enable-ml stems # stem separation only
dredge-doctor reports which optional tools are installed and the exact command to add each missing one. The desktop app shows the same under Settings → capabilities.
Dredge has only been used on two machines, both running Arch Linux. Assumptions that hold there may break elsewhere — report an issue for anything you hit.
Built with Rust, Tauri 2, and Svelte 5. Building from source and hacking on it are covered in DEVELOPMENT.md.
MIT licensed; the binaries bundle the Rubber Band Library (GPL-2.0-or-later), so distributed builds are GPL-governed.
686 commits
Rust
51.4%
Svelte
20.9%
TypeScript
17.9%
HTML
6.4%
Shell
2.0%
A practice looper for Linux: load a song, loop a section, slow it down without changing pitch, and drill it until you can play it.
Releases · Features · Dependencies · Install · Build & develop
These work with the installed app — no ML setup.
verse 2 → chorus 1).verse 2).dredge.json holding sections, loops, notes, analysis, recordings). Copy the folder to another machine and it loads with everything.ffmpeg).ffmpeg.dredged) runs the same engine without the UI.These require the optional Python tools in Dependencies.
| Component | Required for | Install |
|---|---|---|
| PipeWire 1.0+ | the app to run at all | system package (pipewire) |
| Runtime libraries (webkit2gtk-4.1, gtk3, …) | the app to run | pulled in automatically by the .deb (apt) and the dredge AUR package — nothing to do |
| ffmpeg | MP3 export, opus/mkv/webm containers, stem export | sudo apt install ffmpeg · sudo pacman -S ffmpeg |
The stretch engine (Rubber Band) is compiled into dredge, so there is no rubberband package to install. The prebuilt binaries target Debian/Ubuntu library versions — on Arch, use the
dredgeAUR package.
All ML pieces require uv on PATH: sudo pacman -S uv, or on Ubuntu curl -LsSf https://astral.sh/uv/install.sh | sh. A GPU is optional throughout — CPU works, slower.
Beat / section analysis (dredge-enable-ml analyze)
~/.local/share/dredge/analyze-venv, Python 3.12 (override path with $DREDGE_ANALYZE_VENV)beat_this (from git), torch, soundfile, librosa, einops, rotary-embedding-torchHigher-quality sections (dredge-enable-ml songformer)
~/.local/share/dredge/songformer-venv, Python 3.11 (override with $DREDGE_SONGFORMER_VENV)torch==2.4.0, torchaudio==2.4.0, numpy<2, transformers==4.51.1, librosa, soundfile, ema-pytorch, loguru, omegaconf, tqdm, safetensors, muq, x-transformers, msaf, einops, huggingface_hubASLP-lab/SongFormer model snapshot from Hugging Face on first run (weights plus its own modeling code)Stem separation (dredge-enable-ml stems)
uv tool: uv tool install demucs --with torchcodechtdemucs_6s, the 6-source Hybrid Transformer Demucs (Meta AI); weights download on first runffmpeg (above) for stem exportLinux only. The audio engine is PipeWire-native: PipeWire 1.0+ is required, with no ALSA or PulseAudio fallback.
Arch / Arch-based
yay -S dredge # builds from source against your system libraries
Debian / Ubuntu (24.04+ / Debian 13+)
Download the latest dredge_*_amd64.deb from the
releases page, then:
sudo apt install ./dredge_*_amd64.deb
apt pulls the runtime libraries automatically. The basic features above run with nothing else installed.
Beat/section analysis and stem separation are off by default and self-bootstrap on first use. dredge-enable-ml does that bootstrap up front, so the multi-GB downloads happen now instead of on the first analysis:
dredge-enable-ml all # analyze + songformer + stems
dredge-enable-ml analyze # beat/section analysis only
dredge-enable-ml songformer # higher-quality section labels
dredge-enable-ml stems # stem separation only
dredge-doctor reports which optional tools are installed and the exact command to add each missing one. The desktop app shows the same under Settings → capabilities.
Dredge has only been used on two machines, both running Arch Linux. Assumptions that hold there may break elsewhere — report an issue for anything you hit.
Built with Rust, Tauri 2, and Svelte 5. Building from source and hacking on it are covered in DEVELOPMENT.md.
MIT licensed; the binaries bundle the Rubber Band Library (GPL-2.0-or-later), so distributed builds are GPL-governed.
686 commits
Rust
51.4%
Svelte
20.9%
TypeScript
17.9%
HTML
6.4%
Shell
2.0%