Skip to content

Patchbay 0.1.2 — Leveling: balance a setlist without walking the rig

Choose a tag to compare

@github-actions github-actions released this 31 Aug 11:24
· 67 commits to main since this release
a3c3b43

A new Leveling view. Park the presets you want to balance on one strip and
Patchbay loads them on the device one at a time, so the arrow keys A/B them
without touching the hardware — and it remembers the scene each preset was left
on.

This answers a Neural DSP Unity request for the Quad Cortex equivalent of
Fractal's preset leveling tool.

What it does

  • The knob moves the lane output block — the level stored in the preset,
    so a save makes the balance permanent. Nothing global, nothing that lives
    outside the preset file.
  • A preset with several output lanes moves as a unit and keeps the balance
    between them. An internal merge bus is listed but left alone: trimming it as
    well as the row it feeds would apply the same change twice. Each lane also has
    its own ±0.5 dB trim.
  • Meters are the device's own IOMeter stream, converted from the linear
    amplitude the QC sends onto the −40…+12 dB scale Cortex Control uses, with a
    per-preset peak hold so you can compare a column you are not standing on.
  • Levels are written as you turn and read back afterwards, so the number on
    screen is the device's, never an optimistic guess.
  • ⌘S saves. Auto-save writes every change straight into the preset file
    and is off by default — this edits real presets.

Scenes are remembered per slot, but only once you pick one: a preset you have
not visited keeps whatever scene it loads with, rather than being pulled to A.

Under it

qc-mcp --leveling is the device half — one more client attached to the daemon,
so Cortex Control and Claude keep working alongside it.

The lane output range is now calibrated. ModelRepo.xml leaves some
parameter bounds as symbolic names the app resolves internally, so those
parameters had no display conversion at all. Measured against Cortex Control:
a stored 0.5 reads −14.0 dB and the untouched default 0.769230783 is 0 dB,
which fits −40…+12 dB exactly. Every parameter using those bounds converts
properly now.

Fixes

  • auto was reported as a bridge session. Every mode-dependent view
    branched on the preference, so a healthy direct session was told to open
    Cortex Control and described itself as a bridge. Patchbay now reads what the
    daemon actually opened.
  • A dead session is noticed. Unplugging the Quad Cortex invalidates the
    daemon's handle, and quitting Cortex Control takes a bridge session with it —
    either way it kept running and looking healthy while every call failed. The
    session is now retired so it can be reopened.
  • "Direct" was missing from Preferences. It was drawn, then clipped: the
    segmented control is overflow: hidden for its pill shape and was allowed to
    shrink in the narrower card.
  • A directory read reported the wrong slot. A whole-folder read leaves every
    file's index at 0 — the slot is the file's position in the array. This is
    why list_empty_slots could offer a slot that already held a named preset.

Windows

Unchanged and still unsigned: SmartScreen asks, More infoRun anyway.

The Leveling view is built for Windows the same as macOS — it rides the daemon's
loopback socket rather than the macOS bridge, and its surfaces stay blur-free
there. It has not been exercised on Windows hardware; if something is off,
that is where to look first.