01

Prototype 2026: SDJ Moog Matriarch — AU Plugin

← All projects
Prototype 2026: SDJ Moog Matriarch — AU Plugin

First you know it, then you understand it, then you can explain it.

SDJ Moog Matriarch is an Audio Unit plugin for Logic Pro that embeds an interactive, visual patch sheet directly in the DAW session. The idea is simple: analog hardware patches are fragile memory — a synthesizer recalled from a project two years later is useless if the patch is gone. This plugin solves that by placing the patch documentation where it belongs, inside the session file itself.

The plugin is transparent. It passes audio through unmodified; its only job is to display the Moog Matriarch panel as a scaled UI, let the user interact with every knob, switch, fader, and patch point, and save all of that state alongside the project.

How it works

The panel background is a high-resolution photograph of the Matriarch (2313 × 633 px). Over that image, interactive controls are placed at exact hardware positions, defined in a JSON configuration file. Every control — rotary knob, 3-position toggle, on/off dot, vertical slider, square button, patch point — is drawn programmatically in JUCE and scales uniformly as the plugin window is resized.

Patch cables are handled separately: clicking two patch points connects them with a drawn cable. Multiple cables per point are supported. Cable state persists with the session.

The JSON layout is hot-reloadable via a button in the plugin UI. During development this meant positions could be adjusted without recompiling — drag a coordinate in the file, hit Reload, see the result immediately.

Architecture

The data-driven approach kept the C++ lean. A JSONParser reads the layout file into typed structs; a ControlFactory dispatches on the type string and instantiates the right component. Adding a new control type means writing one class and one line in the factory — nothing else changes. Control state is serialised through JUCE's ValueTree mechanism, which hooks directly into Logic Pro's session save and restore cycle.

Panel-space coordinates (matching the background image's native pixel dimensions) are multiplied by a single scale factor — windowWidth / panelWidth — so everything stays in proportion at any window size.

Implemented controls

Seven control types are complete: rotary knob with arc indicator, 3-position dot toggle, single dot on/off toggle, square button toggle, vertical fader, patch point (input and output) with cable routing, and a static text label for annotations. All persist their state with the DAW project.

Next steps

The current build covers the Moog Matriarch specifically. The next phase is expanding to other synthesizers — each would be a separate plugin binary with its own panel image and layout file, sharing the same C++ source. The JSON-driven architecture makes that straightforward: a new synth requires only a background image, a layout file, and a unique plugin identifier.

Tools

  • JUCE 8.x
  • C++
  • Projucer
  • Xcode
  • Logic Pro