Generator extensions
gen_block patch / matrix graphs in Deckard.
Core collection and dialect registration live in @spacedevin/deck — see
package DECK_EXTENSION.md
(@spacedevin/deck/extension) and host boot in src/generators/DeckIds.tish.
Deckard registers:
| Dialect ids | Parser | Audio engine | Spec shape |
|---|---|---|---|
patch, modular, synth | PatchGraph.tish | Patch.tish | { nodes, conns, envs, dur } on generatorSpec.graph |
matrixFm, matrix_fm | MatrixFmGraph.tish | MatrixFm.tish | operators, mod matrix, filters, routes (schema project-v2.json $defs/matrixFmGraph) |
Until registered, parseGenBlock returns { kind, tplHeaderId, version: 1, raw } only.
Macros are named patch templates registered via registerBuiltinMacros (BuiltinMacros.tish / MacroVoice.tish). A gen <macroName> expands to a gen_block patch at load.
Simple plugins read generatorParams; matrixFm and patch read generatorSpec.graph (each falls back if the graph is empty).
Line-level dialect syntax (nodes, op/mod/route, …): package DECK_EXTENSION.md (also @spacedevin/deck/extension after install).