Introducing Patchbook – A Markup Language for Modular Synth Patches

Hello everybody! This is Icaro Ferre and today I'd like to share something I've been working on called Patchbook.

patchbook-logo.jpg

GitHub Repo: https://github.com/spektroaudio/patchbook

To put it simply, Patchbook is an open-source markup language / standard designed to be easily readable and writeable by humans that can be used to write down modular synth patches.
My goal for Patchbook is to create a standard that can help users write down patches in a way that could also be potentially used by different websites, educational tools, applications and services.

Here's an example of a patch written using the Patchbook markup language:

VOICE 1:
- Metropolis (Pitch) p> Braids (1v/oct)
- Metropolis (Gate) g> Function (Trigger)
- Braids (Out) -> Optomix (Ch1 Signal)
- Function (+ Out) >> Optomix (Ch1 CV)
- Function (- Out) >> Braids (Timbre CV)

* Metropolis:
| BPM = 124
| Swing = 0
| Root = F
| Scale = Minor
| Mode = F. Forward
| Stages = 16

* Braids:
| Mode = Fold
| Timbre = 30%
| Timbre CV = -20%
| Color = 0%

* Function: Rise = 50% | Fall = 50% | Curve = 30%
* Optomix: Damp = 0% | Control = 100%

The official parser (a simple python program) can process .txt files written in the PatchBook format and output a JSON file that could be used by other applications to display and process the patch's data (a diagram of the data structure is available on the GitHub page).
Programmers should have no problem using the JSON files generated by the parser to create all kinds of different patch visualizations, processing, etc.

Example of a signal Flow chart generated using the Patchbook parser and the GraphViz Online Editor.

The parser also includes additional functions like the ability to automatically create signal flow charts (using GraphViz), to display all the information related to a single module in the patch and also to display all connections organized by type (gate, pitch, audio, etc).
While I hope others can also create programs to use the Patchbook standard for different application, I also plan on adding more built-in functions to the official parser.

While the initial release of Patchbook should work great with simple patches, there might be issues when using it with larger and more complex patches that I might have not considered yet so I highly recommend keeping up with the project on GitHub.

I hope Patchbook can be used to help the modular synth community grow and become even more knowledgeable.

As always, feel free to get in touch with me via Twitter (@SpektroAudio or @icaroferre), email (via Contact page), Facebook, Email, Muffwiggler PM, GitHub, etc.

Until next time!