SignalCanvas

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]

Language

   
Overview What PatchLang is and why it exists
Language Reference Full grammar and syntax reference
Examples Real-world signal flow examples
Changelog Version history

Architecture

   
Project Structure How PatchLang files and projects are organized
Compiler Compiler internals, DRC rules, WASM/Python bindings
Backend Django API integration

Design

   
Design Decisions Recorded architectural decisions (D001–D018)
Debate Context Structured debates behind key design choices
Appendix Reference tables and supplementary material
Open Questions Spec questions raised during development and their resolutions