Manual
Play from the terminal.
Install Ninevolt first, then use this guide for gear, launching pedals and chains, keys, profiles, and MIDI feet.
What you need
Ninevolt is guitar → interface → JACK → terminal. You do not need a DAW.
-
Ninevolt installed — apt or dnf via the
Install page, so
ninevoltand the pedal commands are on yourPATH. - A guitar (or bass — same path).
- An audio interface with an instrument / Hi-Z input — Focusrite Scarlett, PreSonus, Behringer UMC, RME, etc.
- A guitar cable into the interface input.
- Monitors, headphones, or an amp on the interface outputs (or whatever JACK is routing to).
- Optional — MIDI foot controller (e.g. Behringer FCB1010) if you want bypass, volume, and expression with your feet instead of the keyboard.
- Linux + JACK (or PipeWire with the JACK bridge). Ninevolt talks to JACK ports, not ALSA alone.
Typical desk: guitar → Scarlett input 1 → Linux (PipeWire/JACK) → headphones. MIDI OUT from an FCB1010 into the interface MIDI IN if you use feet.
Point JACK at your interface
Once installed, tell Ninevolt which ports are guitar in and amp/phones out. Create
~/Ninevolt/configs/jack.yaml:
input: system:capture_1
output: system:playback_1
device_hint: Scarlett # optional — prefer ports matching this name
Port names vary by interface; jack_lsp or your PipeWire tools will show the
real ones. CLI flags override the file:
--connect-in, --connect-out, --no-connect.
On startup, connection messages print to stderr and show in the TUI footer. Aim for ● ROUTED (in and out connected).
Launch a single pedal
Every effect is its own command. Once you’ve
installed Ninevolt, the binaries are on your
PATH:
black-rat
crazy-tone
organ-donor --preset 2
tuner
That opens the pedal TUI, connects JACK using your config, and starts processing audio. Browse the full library on the Pedals pages.
Exit a pedal
Press q, Esc, or Ctrl+C. Your last session is saved under
~/Ninevolt/pedals/<pedal-id>/ so the next launch picks up where you left off.
Bypass
Press b to stomp the effect off (dry signal still flows). Press again to engage. The LED / LIVE state in the TUI reflects whether the effect is active.
Keyboard · standalone pedal
| Key | Action |
|---|---|
| ← → / ↑ ↓ | Adjust the selected knob |
| Tab | Cycle which knob is selected |
| b | Toggle bypass |
| p / Shift+P | Next / previous factory preset |
| s | Save current settings as a named user preset |
| u | Browse user presets |
| q / Esc / Ctrl+C | Quit (session auto-saved) |
Load a shareable preset file with
organ-donor --preset-file cathedral.yaml (see the pedal docs / example YAML in
the repo).
Chains & the ninevolt command
A chain is several pedals in series — like a board — defined by a YAML
profile. The ninevolt binary runs chains.
Interactive (recommended)
With no arguments, Ninevolt opens the profile picker:
ninevolt
Browse with arrows or type to filter, hit Enter to load a board, or n to build a new DIY chain. From a running board, Esc returns to the picker (does not quit to the shell).
List & run by name
ninevolt list
ninevolt run nirvana-nevermind
ninevolt run shoegaze-wall
Built-in profiles ship with the package (artist / song inspired). Custom ones live in
~/Ninevolt/profiles/. A guitar tuner is prepended and a
volume pedal appended automatically when a profile omits them.
Keyboard · chain board
Profile picker
| Key | Action |
|---|---|
| ↑ ↓ / type | Browse or filter profiles |
| Enter | Open selected profile |
| n | New DIY chain builder |
| Esc | Quit |
On the board
| Key | Action |
|---|---|
| 1–9 | Select pedal slot in the chain |
| Tab / Shift+Tab | Cycle knobs on the current pedal |
| ← → or ↑ ↓ | Adjust selected knob |
| a–d | Jump to knob by index |
| b / Space | Toggle bypass on current pedal |
| Shift+B | Bypass the entire chain |
| p | Cycle factory preset on current pedal |
| s | Export chain snapshot to ~/Ninevolt/configs/exports/ |
| Esc | Back to profile picker |
| q / Ctrl+C | Quit to the shell |
On the tuner (in a chain)
| Key | Action |
|---|---|
| Shift+1–6 | Pin a string |
| ← → | Cycle string |
| a / 0 | Auto-detect |
| Shift+↑ Shift+↓ | Nudge A4 reference |
| p | Cycle tuning preset |
Using existing profiles
- Run
ninevoltand pick a profile, orninevolt run <id>. - Select pedals with 1–9, twist knobs, stomp with b.
- Use Shift+B when you need a full mute-through (bypass all).
- Esc back to the picker to try another board without restarting JACK wiring.
Profiles cite tone sources in their YAML so you can verify settings. Explore IDs with
ninevolt list.
Add your own profile / DIY chain
From the TUI
In the profile picker press n (or choose + New chain…). Stack
pedals from the catalog, reorder with Shift+↑ Shift+↓, save, then
play with Enter. Saved boards land in ~/Ninevolt/profiles/.
By hand (YAML)
Drop a file under ~/Ninevolt/profiles/ (or set NINEVOLT_PROFILES_DIR):
name: My board
tagline: Comp → screamer → delay
chain:
- name: Blue Comp
pedal: blue-comp
args: [--preset, "0"]
- name: Green Screamer
pedal: green-screamer
args: [--preset, "1"]
- name: Ana Echo
pedal: ana-echo
bypass: true
args: [--preset, "0"]
Then ninevolt run my-board (id usually matches the filename) or pick it in the
interactive list. For AI-assisted authoring see
MCP Chain Authoring.
Field recorder
Add field-recorder near the end of a chain to capture the full
board as mono MP3 under ~/Ninevolt/recordings/. Select that pedal and press
Space to start/stop.
MIDI foot control (optional)
One MIDI cable: controller MIDI OUT → interface MIDI IN. Copy the example config to
~/Ninevolt/configs/midi.yaml. Defaults are FCB1010-friendly:
| Control | Default |
|---|---|
| Nav up / down / confirm / back | Notes 36–39 |
| Pedal bypass slots 1–9 | Notes 40–48 |
| Bypass all | Note 49 |
| Expression | CC 11 → wah Position (or bend-box treadle) |
| Volume | CC 7 → volume pedal at end of chain |
| Profile recall | Program Change → profile index from list order |
Disable MIDI with --no-midi. Remap notes/CCs in midi.yaml to match
what your FCB (or other board) actually sends — use amidi -d to spy on presses.
Reading the TUI
- LIVE (green) in the header — effects are enabled (not bypass-all).
- ● ROUTED — JACK input and output are both connected.
- ● IN — guitar signal detected on the input.
If you hear nothing: check interface gain, JACK ports, mute on the interface, and that the chain is not fully bypassed.
Where things live
| Path | Purpose |
|---|---|
~/Ninevolt/configs/ |
JACK, MIDI, chain sessions, exports |
~/Ninevolt/profiles/ |
Your custom chain profiles |
~/Ninevolt/pedals/ |
Standalone pedal sessions and user presets |
~/Ninevolt/recordings/ |
MP3 takes from the field recorder |
Pedal catalog → /pedals/ · Packages → Install · Bugs & features → jon@ninevoltnine.com