# galdr A terminal **grid synthesizer**. Signal flows downward through a field of single-glyph unit generators; every incoming MIDI note voices the whole grid; the mix is rendered low-latency to PipeWire. It is orca's voice — the same esoteric, spatial approach to programming, but for making sound instead of sending events. ``` orca-rs ──MIDI/OSC/UDP──▶ galdr ──PipeWire──▶ speakers compose the pattern voice it (spectrust -p visualizes it) ``` ## The grid Signal flows **down**: each cell takes the sample from the cell above as its input. The left and right neighbour glyphs are parameters — a digit `0`–`9` is a constant, a letter `a`–`z` reads MIDI CC (`a` = CC 0). | glyph | unit generator | |---|---| | `~` | sine (ratio ← left) | | `^` | saw (ratio ← left) | | `_` | pulse (width ← left) | | `v` | triangle | | `*` | noise | | `f` | lowpass (cutoff ← left) | | `e` | envelope, attack/release ← left/right, gated by the note | | `s` | shaper / drive ← left | | `!` | output to master | Each `!` sums into the master, so parallel columns stack timbres or voices. A note plays every column at once. Example — a filtered saw with an envelope: ``` ^ saw at the note pitch f lowpass, cutoff from the digit to its left... e ...enveloped by the note gate ! ...to master ``` Editing the grid recompiles and hot-swaps the running program without dropping audio. ## Usage ``` galdr [--latency ] [--poly ] [--rate ] [--midi-name ] ``` galdr creates a virtual MIDI input port named **galdr**; connect orca or any sequencer/DAW to it. `--midi-name` connects to an existing port instead. Cursor keys move; type a glyph to place it; Backspace clears; Esc quits. Runtime deps: PipeWire and ALSA (MIDI). Built in Rust; reuses the native PipeWire path from spectrust.