Ongoing research
The Master’s Bench
A plug-in opened up: to build with, and to learn from.
Research in progress, inside the plug-ins’ test builds. Not part of any release.
What it is
The plug-ins most of us use for everyday work are closed boxes: they keep their true behaviour away from the people who use them. The Bench opens one up. It lives inside a plug-in’s test build as its own tab, and lays the processor out as the engine actually runs it, so it can be heard, adjusted and understood one part at a time.
The Bench is not only for building and managing modular plug-ins. It is also for learning: it aims to bring the maths and the engineering behind a processor closer to the people who use it.
How it works
The module map
Each plug-in declares a map of itself, written together with its first engine code. The processor is cut into modules where the ear cuts it, each with its engineering name, the main controls that drive it, and a neutral setting at which it does nothing at all, bit for bit, or a stated reason why it has none. A module can contain parts, and the map says how they connect: in series, as parallel lanes that split and merge, or as alternative lanes, one of which plays depending on the style. The control signals that run between modules, a detector driving a gain law or a key signal feeding another stage, are mapped as connections of their own. Each style of the plug-in lists which modules and connections take part.
Bound to the running engine
The map is not an illustration. Every view on the Bench is read from the engine at that moment: how many bands are running and where they sit, the shape of a curve, a gain trace or an envelope. Curves are computed by calling the plug-in’s own engine functions, and live values arrive through read-only taps written on the audio thread. If a style or setting changes the structure, the view follows. Nothing on the Bench can touch the signal while it is idle: a test build with the Bench idle renders bit-identically to the release.
Hearing a part in place
Any module, part or connection can be heard inside the running chain in three ways: the signal up to that point, the whole chain without it, or only what it changes. A connection can be switched off to hear what it carried. Every comparison is matched in loudness, so the louder version never wins by being louder, and latency stays the same in every mode, so a comparison never shifts in time.
Tuning and recording a finding
Each module exposes its hidden numbers as handles of three kinds: an absolute value, an offset on the build’s own rule, or a coefficient of that rule, so the plug-in’s main controls keep working after an edit. One switch compares the build’s values with the edited ones; a change that cannot be made smoothly passes through three milliseconds of silence. A finding is marked with a note, and the mark records the full settings, the version and the last ten seconds of input and output audio, so the plug-in’s development can reproduce exactly what was heard.
A network across the plug-ins
Every module records where it came from and what it is for, and an inventory gathers them across all the plug-ins, showing where each one is used. Modules built in an insertable form, stereo in and out with their own reset, latency and neutral point, are prepared to be placed between the modules of another plug-in; that insertion is designed, not yet built.