PitchVis
July 12, 2026 ยท View on GitHub
live analysis of musical pitches in an audio signal and a nice visualization
Watch a demo video here:
More resources and demo videos on the Website
Get the Android App:
Building and Running
PitchVis uses a unified build system powered by cargo xtask.
Quick Start
# Run desktop viewer (development mode with fast iteration)
cargo xtask run
# Build desktop for production (always in release mode)
cargo xtask build desktop
# Build for WASM/web
cargo xtask build wasm
# Build for Android
cargo xtask build android
See BUILD.md for complete build documentation, including release builds, prerequisites, and troubleshooting.
Development
For fast iteration during development, use cargo xtask run which enables Bevy's dynamic linking feature for faster compile times.
For the WASM development server:
cd pitchvis_viewer/wasm
npm run serve
Serial Output
To output to a serial port (e.g., for LED strip control), run from within pitchvis_serial/:
cargo r --features bevy/dynamic_linking --bin pitchvis_serial -- </path/to/serial/fd> <baudrate>
The serial output format is: 0xFF <num_triples / 256> <num_triples % 256> <r1> <g1> <b1> <r2> <g2> <b2> ...
LED values are within [0x00; 0xFE] and 0xFF is the marker byte beginning each sequence.
Prerequisites
- Rust toolchain (install from https://rustup.rs/)
- System dependencies for audio (
cpal):libasound2-devandlibudev-devon Linux
See BUILD.md for platform-specific prerequisites.


