PatchLang
A domain-specific language for describing signal flow in broadcast and live production environments. Human-readable, git-diffable, LLM-friendly.
template Rio3224 {
meta { manufacturer: "Yamaha" model: "Rio3224" category: "Stagebox" }
ports {
Dante_Pri: io(etherCON) [Dante, primary]
Mic_In[1..32]: in(XLR)
Line_Out[1..16]: out(XLR)
}
bridge Mic_In -> Dante_Pri
}
instance Stage_Left is Rio3224 { location: "Stage Left Wing" }
connect Stage_Left.Dante_Pri -> FOH.Dante_Pri { cable: "Cat6a" length: "30m" }
bridge Stage_Left.Mic_In[1..32] -> FOH.Dante_Ch[1..32]
Documentation
Getting Started
- Installation – Rust library, CLI, WASM, and Python bindings
- Quick Start – Parse your first
.patchfile in 5 minutes
Language Reference
- Language Specification – Complete EBNF grammar and syntax reference
- Examples – Real-world
.patchfiles for worship venues, broadcast trucks, and more
Integration
- WebAssembly – Use PatchLang in the browser or Node.js
- Python – Use PatchLang in Django or any Python project
- CLI – Command-line validation and AST output
Project Links
- GitHub Repository
- SignalCanvas – The infinite-canvas signal flow tool that uses PatchLang
- Language Spec (SPEC.md)