A compact Raspberry Pi music workstation written in Rust.
Documentation · First run · Screen tour · Report a bug
SHR-DAW brings instruments, drums, MIDI sequencing, live performance, loops, effects, mixing, and recording into a controller-first 40×13 terminal TUI for 64-bit Raspberry Pi OS Lite. It is meant for turning an idea into a rough demo while travelling or jamming, without pretending to replace a desktop production DAW.
Warning
SHR-DAW is experimental software, not a production release. Not every feature has completed hands-on physical testing. Back up Projects and user data, and begin audio testing at a low monitoring level.
Experimenters are welcome. If anything breaks, feels confusing, or behaves differently with your equipment, please open an issue. That feedback will help the experiment improve.
This is an example setup, not a shopping list. Every device is optional, and hardware names and routes live in configuration rather than the Rust source. See Physical connections for the exact paths and safer ways to start small.
- Use one installed SHR-DAW sound system with synthv1, Yoshimi, FluidSynth, 24 editable Moj Sint starts, the cleared SHR Sampler instrument, and four bundled SHR Drums kits.
- Play from a controller or keyboard with pickup-protected sound controls, scale filtering, held-note/chord feedback, private sound saves, free-timed MIDI Ideas, and external-sync controller clock.
- Build FT2-style Patterns and Arrangements with software instruments, external MIDI, drums, Pattern-owned loops, note recording/editing, sparse automation, a metronome/count-in, and format-1 MIDI export.
- Perform with quantized Live Patterns and a four-slot Loop Mix whose loops belong to each Pattern.
- Shape and mix the complete performance through source, aux, drum, and master effects, a fixed mastering strip, final-bus meters, and safe source controls.
- Record the final 24-bit stereo performance or synchronized raw mono stems with manifests and recovery, including the native 18-channel input overview.
- Configure exact MIDI/audio routes and controller profiles with MIDI Learn, startup diagnosis, safe rollback, and owned-process cleanup.
- Navigate every compact workflow with a MIDI controller, MIDI keyboard, computer keyboard, or terminal mouse input.
See Using SHR-DAW for the musician workflow, Instruments and drums for the SHR-DAW sound system, and How it works for routing, ownership, storage, and failure boundaries.
The screen and menu manual contains the complete visual tour.
The clean target is 64-bit Raspberry Pi OS Lite; Patchbox OS and broader Debian-based systems remain supported. This installs the current experimental source and its exact component compatibility set:
git clone --depth 1 https://github.com/PaolaShultz/shr-daw.git && cd shr-daw && ./scripts/install.shAfter the setup wizard finishes:
shr doctor
shrJACK is optional for browsing and external-MIDI sequencing. Software instruments, WAV loops, effects, and audio recording require it. SHR-DAW does not start or restart JACK. Continue with First run or the full installation guide.
For a repository-local checkout:
cargo build --locked --release
./scripts/setup-local.sh
./scripts/local.shThe local helpers keep configuration and user data below ignored user/ and
launch this checkout's visibly marked REL binary. Developers can explicitly
set SHSYNTH_BIN=target/debug/shr when they need a DEV launch.
- First run and Using SHR-DAW
- Tracker guide, live performance, and screen and menu manual
- Configuration, physical connections, and controller interface
- How it works, audio graph, and multitrack recording
- Complete documentation index
SHR-DAW is a personal music project developed on its Raspberry Pi target with Codex CLI as a coding collaborator. The creator owns the musical direction, hardware, listening decisions, and publication. Generated code is reviewed and tested; DSP and hardware claims need their own measurements and hands-on checks. The development story records that collaboration.
SHR-DAW is MIT licensed. Included presets, demos, rhythms, and WAV loops have their own clearance boundaries; read THIRD_PARTY.md before packaging or adding sounds.





