pitcher

The pitcher web UI

A browser interface with a zoomable waveform, a vertical pitch fader, a single-note tuner, and a shelf of pitch variants. It is the same engine as the CLI, with a friendlier surface for trying pitches by ear.

This one runs on your computer, not on a website. The web UI is a front end to a small Rust server that uses ffmpeg, the Rubber Band Library, aubio, and yt-dlp, and stores your audio in a local SQLite database. That cannot run in a static host like GitHub Pages, which only serves files and cannot run the server, the command line tools, or Python. So there is no hosted demo here. Instead, run it locally with the commands below and your audio never leaves your machine.
The pitcher web UI: shelf, waveform, pitch fader, tuner, and variants
The web UI running locally: track shelf, waveform with loop and bookmarks, the pitch fader, the tuner, and the variants shelf.

What it does

Run it locally

Requires Rust, Node.js, and the system audio tools.

git clone https://github.com/k1monfared/pitcher
cd pitcher

# system dependencies (Debian/Ubuntu)
sudo apt install rubberband-cli librubberband-dev aubio-tools libaubio-dev ffmpeg yt-dlp

# build the frontend if needed, build the server, pick a free port,
# and open the browser
./scripts/pitcher-web.sh

The launcher starts on port 7373, scans upward if it is busy, and prints the local and LAN URLs. To do it by hand:

cd web && npm install && npm run build && cd ..
cargo build --release -p pitcher-server
PITCHER_WEB=web/dist PITCHER_DATA=data ./target/release/pitcher-server

Requirements

ComponentPackage
Pitch shiftingrubberband-cli, librubberband-dev
Tuneraubio-tools, libaubio-dev
Audio decode and encodeffmpeg
Online importyt-dlp
BuildRust, Node.js

All free and open source. The desktop and web front ends are GPL-3.0.