Open documentation for the file formats behind Synth Patch: how a synth is described as a panel and a list of controls, how it sounds, and how a patch for one synth, or a rig of several cabled together, is written down. The synths in the app, and their patches, are kept separately.
Version 2.0. Both formats are plain JSON (and SVG).
synthjson/2, a synth package. A synth is drawn (panel art plus one SVG per control state, for real hardware) or generated (rows of controls drawn from a shared parts library, only JSON). Either can have an engine that says how it sounds. See Synth package, Controls and Engine.patchjson/2, a patch. A one-synth patch stores knobs, switches and cables by control name, so it can be written by hand from a patch sheet. A rig places several synths on a canvas and cables them together. See Patches and Rigs.
Every synthjson/1 and patchjson/1 file is valid in 2.0. The format field carries the version; a change that breaks existing files gets a new number. What changed is in the changelog.
- Standard modules: 18 generated synths for building rigs (oscillator, filter, envelope, VCA, sequencer, Code and more), each with an engine. In
modules/. - Parts: the generic control graphics generated synths are drawn from,
"parts:knob-moog-large". Inparts/.
docs/
synth-package.md synthjson/2: drawn and generated synths, parts, variants
controls.md every control type, its config and its patch value
engine.md how a synth sounds: blocks, bindings, signals
patches.md one-synth patches: controls, cables, sources, packs
rigs.md patchjson/2 rigs: instances and cables between them
modules.md the standard modules, every control and jack
parts.md the parts library
figma-template.md the Figma Community template
modules/synth-patch-*/synth.json the standard modules
parts/ parts.json and the part SVGs
examples/
synths/example-instruments/demo-one/ a drawn synth with an engine
patches/example-instruments/demo-one/ three patches for it
patches/packs/example-instruments-demo-one.json
rigs/ two rigs
plugins/synth-patch/skills/synth-patch-rigs/ the rig-writing skill (below)
Demo One by Example Instruments isn't a real instrument. It was drawn in Figma for these docs, with the same components and conventions as the synths in the app: 17 controls covering knobs, a rotary switch, a toggle, a fader, an encoder, an LED, a button, and a six-jack patch bay. Every file in its package is real output from that build, and its engine and patches pass the same checks as the app's.
See Demo One for its controls, placement dots, sound, and how it was built.
synth-patch-rigs is a skill that teaches a coding assistant to write rigs from a description ("an acid bassline that plays itself", "a lead I can play from the keyboard"), and module variants when a rig needs one. It carries the module names, values and docs from this repo, worked examples, and rig.py, which checks a rig the way the app reads it, explains its values in Hz and seconds, converts units to patch values and lays out the canvas.
In an assistant with plugin marketplaces, add this repo as one and install it:
/plugin marketplace add HumanCrafted/synth-patch-source
/plugin install synth-patch@synth-patch-source
Any tool that reads Agent Skills can use the folder as it is: copy plugins/synth-patch/skills/synth-patch-rigs into its skills folder.
Synth Patch Source on Figma Community is the file Demo One was built in: the panel, a component set for each control type, and the color styles. Duplicate it to see how a drawn synth is put together, or to draw your own. See Figma template.
The docs, the format specs, the examples, the modules and the parts (JSON, SVG and PNG files) are licensed under CC BY 4.0. Use them, adapt them, build on them, including commercially; credit Synth Patch by Human Crafted LLC. The code (examples/synths/example-instruments/demo-one/source/build_synth_json.py and the skill's scripts/) is under the MIT License.
Neither license covers the Synth Patch name or logo.