Variants & family runs

“Stoat, kind of on the edge of breakup, toggle left I think” is not a measurement label you can compare anything against six weeks later. Once a pedal has more than one interesting setting, PedalScope treats the setting as data:

  • A control layout describes the pedal’s panel once: each switch with its positions, each knob with its range.

  • A variant is one complete setting of that panel. Every measurement is tagged with one, and gets a canonical label like Stoat [LED/LED · 220pF · Sag 30%] — generated, consistent, and used in titles, legends, and exports. You can add a nickname (“the spitty one”), but the canonical label never disappears.

  • A family run measures a whole set of switch positions in one guided sitting.

Define the panel (once, under a minute)

Right-click a pedal in the sidebar → Edit Controls…. Add each control:

  • Switches (discrete): name plus its positions, comma-separated — CLIPPING DIODES: Si/Si, LED/LED, Ge/Ge, OPEN.

  • Knobs (continuous): a range with optional named detents — the positions a hand can reproduce. Enter them comma-separated using the shorthands min, noon, max, clock hours from 7:00 (full counter-clockwise) to 5:00 (full clockwise), or an explicit label=percent pair like bite=35%. Knob positions are recorded as approximate percentages — a position sitting on a detent wears the detent’s name in the variant label — and a knob with detents can be swept in a family run exactly like a switch. Leaving the detents field empty keeps the knob percentage-only (it can’t be swept). Attach a photo when the exact position matters.

Drag rows to reorder them into the pedal’s left-to-right panel order — that order is how variant labels read, how the coverage matrix picks its axes, and how a family run walks the panel, so matching the physical layout makes a settings photo scan against the list naturally.

Pedal portraits vs. knob photos

Two kinds of picture, two different jobs — deliberately never merged:

  • Pedal portraits live on the pedal and document the device: enclosure front, a gut shot, the serial sticker, provenance details. The pedal overview page has a Portraits card — a gallery of one or more pictures; the first is the pedal’s face on the overview header. Add with drop, browse, or right-click → Take Photo; click to enlarge; right-click to copy, rotate, replace, or remove. Deleting the pedal removes its portraits.

  • Knob photos live on a measurement and document the settings that produced it — one photo per record, next to its notes field. A Full Fingerprint stores its photo once, on the Harmonic Distortion record, and every measurement in the fingerprint shows it, labelled “Control-state photo — from this fingerprint”; replacing it from any member’s page replaces the one photo they all show.

Knob photos, straight from your iPhone

The knob-photo well on a record page (and in the measure flow) takes pictures three ways: drop an image on it, click to browse, or right-click → Take Photo to shoot the panel with your iPhone on the spot — macOS Continuity Camera, so the shot lands in the well directly, no sync-and-drag detour. The photo documents these settings, stays attached to the measurement, is stored downscaled, and travels with exports. (Your iPhone must be signed into the same Apple ID, nearby, with Bluetooth and Wi-Fi on — the Take Photo item only appears when macOS sees an eligible device.)

Every photo well — knob photos, portraits, rig photos — offers the same right-click menu once it holds a picture: Copy Photo puts the full-resolution stored image on the clipboard (paste it into Preview, Mail, a repair thread), and Rotate Left / Rotate Right fix a shot the camera stored sideways. Rotation changes the stored picture itself, so it stays upright everywhere — thumbnails, enlargements, and exports alike.

Templates cover the common cases (3-knob, and the project’s house pedals) so most panels are two clicks and some renaming.

Tag settings as you measure

The measure flow and live-mode snapshot bar both show a variant picker mirroring the panel: one segmented control per switch, a slider per knob. It defaults to the last-used state, so “same as before but LED/LED” is one click. The canonical label previews underneath and becomes the record’s title.

Free-text notes still exist — for the things a panel can’t say (battery sagging, sticky bypass switch) — but knob positions belong in the picker, where comparisons can use them.

Fixing a mislabel

Noticed a week later that the toggle was actually on Ge/Ge? The recorded setting is metadata, not measurement — so it can be corrected. Right-click the Fingerprint in the sidebar → Edit Settings… (or the pencil next to the settings chip on its overview page). The whole acquisition moves together: the fingerprint and every measurement in it re-tag to the corrected setting, and auto-generated names refresh to match.

Corrections are honest, not silent: every edited record is stamped with a subtle settings edited marker (hover it for the date), and exports carry the stamp too. The measured data itself never changes — only the label saying what the pedal was set to.

Records that aren’t part of a Fingerprint (live snapshots, imports, older standalone measurements) get the same Edit Settings… in their right-click menu and a pencil on their record page, editing just that one record. Records inside a Fingerprint are deliberately edited only at the Fingerprint level, so the group’s setting and its members’ can never disagree. One honest side effect for sweep cells: correcting a cell’s setting means its planned grid position genuinely wasn’t measured — the sweep shows that cell as missing again, which is exactly the truth.

A measurement’s title can also be renamed by hand — right-click the record in the sidebar → Rename…. A renamed title is yours: it displays verbatim and no longer refreshes when settings are corrected, and because the stored title is part of the key import uses to recognise a record, a library exported before the rename would re-import that record as a second copy. Records that carry an import stamp keep their title for the same reason, and the menu item says so.

Family runs: the whole switch, one sitting

Measuring all seven positions of a clipping-diode switch by hand means six chances to forget where you were. A family run does the bookkeeping:

  1. In the measure step, tick the controls to sweep under “Family run” — switches, and any knob with named detents (a gain sweep over 9:00 / noon / 3:00 is three cells, exactly like a three-way switch). Everything else stays fixed at the picker’s setting.

  2. The app builds the grid (7 positions → 7 cells) and walks it: “Set CLIPPING DIODES to Ge/Ge, then press Continue” → it measures → files the record under that exact cell → next prompt. A sound tells you the prompt is up — you are at the knobs, not the screen — and a different one tells you a cell failed or the walk was stopped (Settings → General, Completion sounds; on by default, played on your Mac’s default output and never into the interface).

  3. Each cell is one physical action and one click of Continue (or ⌘↩). Return on its own does nothing there — Continue asserts that a knob is where the prompt asked, which is not something to trip over while ending a line in the notes field beneath it.

While the walk runs, the Pedal settings section above the panel follows the run: its title names the cell (“Pedal settings for this cell (3 of 7) — set by the family run”), the picker is not editable, and it shows the setting the run is asking for or measuring — the same setting the cell’s record is filed under, so the section can never disagree with the prompt beside it. The progress line under the checklist names the measurement in hand and its position in the suite (“Harmonic Distortion — 2 of 6”) followed by the measurement’s own progress (“Row 3 of 7: 82.4 Hz (E2)…”) as it reports it; a line that keeps moving is the cheapest evidence that nothing is stuck. The sheet’s own notes, photo and room-temperature fields are disabled during the walk and say why: a cell records the panel setting and the temperature as entered when the run started, and nothing typed in that notes field attaches to a family cell — it waits for the next single measurement or Fingerprint suite from the same sheet.

The run itself does take notes, right where you are stopped. Under the prompt, Notes on this family run is the sweep’s own notes field — the one on the sweep overview — reachable while the walk runs, so “hum appeared at P4” or “re-seated the input cable before cell 3” goes down at the moment it happens instead of into a notebook. It is saved to the sweep as you type, survives an abort and a resume, and reads back on the sweep overview afterwards. It belongs to the run, not to any one cell’s record.

One thing the walk does interrupt you for, in orange under the prompt: a cell whose Chord IMD failed its coherence check — see Chord Roughness. The line names the cell and says the notes did not stay stationary across that capture, so its floor and product levels are not trustworthy. Nothing is refused — the record is saved as measured — but the prompt is the one moment you can act on it: Abort keeps everything measured so far, and the cell’s record carries the same line on its page for whatever you decide. The finished panel repeats every such line, one per cell, and a Full Fingerprint suite started from the sheet shows the same line from the moment its Chord IMD member completes.

A detent-swept cell records the detent’s position and name — the variant label reads Gain noon, and the coverage matrix and pivot treat each detent as a position of its own. Knobs without named detents can’t be swept: there is no hand-reproducible position to prompt for.

What each cell measures follows the acquisition mode: in Full Fingerprint mode (the default) every cell acquires the complete suite — one Fingerprint per position, with the total time estimate shown on the start button before you commit — while Single measurement mode measures just the chosen kind per cell, the quick way to sweep one chart across a switch.

Abort any time — a partial family stays valid, shows as partial in coverage, and offers a Resume button in the measure flow that walks only the remaining cells (with the run’s original parameters, even if the form has changed since). Abort during a measurement stops it: the output stops, that cell’s record is not saved, and the panel reads Stopping… for the moment it takes the measurement to wind down before the walk is over — it never reports idle while the interface is still driven. Everything measured before the press stays.

A cell is complete when every one of its measurements is in the library, and that is re-checked whenever the sweep is read, never remembered from the day it was measured. So the repair for one bad measurement of one position is small: delete that record, and the cell reads pending again on the sweep overview and in coverage; Resume then measures exactly what is missing, into the same Fingerprint, and nothing else.

Sweeps in the sidebar

A family run lives in the library as a Sweep node under its pedal — “Sweep: CLIPPING DIODES — Aug 1” — with the cells as children labeled by swept position only (“Si/Si”, “LED/LED”): the header already states the date, and for single-kind sweeps the kind, so the children repeat neither. Full-Fingerprint sweeps nest a complete Fingerprint per position; a partial sweep wears an n-of-M badge.

Selecting the node opens the sweep overview: the plan grid with each cell’s completion (click a measured cell to open it), a Resume button for partial sweeps, and Open pivot comparison — every measured position of the swept switch overlaid on one chart, everything else held, one click from the sweep.

A sweep can carry a custom title: right-click the Sweep node → Rename… and “Sweep: KNOB” becomes, say, “Reference 2026-08” — the way a baseline or regression-fixture sweep gets a findable name. The swept dimension and date stay visible as the subtitle, and clearing the title restores the generated label.

Two more things live on a sweep. A notes field on the sweep overview holds the context a title can’t — why it was run, what was unusual about the sitting (the same field the measure sheet offers under the prompt while a family run walks). And the baseline mark (right-click → Mark as Baseline, or the star on the overview) names one sweep per pedal as the reference: the star shows in the sidebar, and comparisons can target “the baseline” without anyone remembering which sweep that was. Marking a new baseline clears the old mark — one pedal, one baseline.

The coverage matrix

Right-click the pedal → Coverage… for the bird’s-eye view: a grid of variant cells showing which have measurements, of which kinds, at which drive levels — plus every measured variant with its alias, and each family run’s progress. It turns “did I ever measure Ge/Si at low drive?” from an act of memory into a glance.

The matrix’s Pivot section offers the same overlay as the sweep overview’s pivot button, for positions measured outside any single sweep — pick one switch and every measured position overlays on one chart, everything else held. See the Compare page.

Why bother

The payoff is comparison you can trust: every record knows exactly what the pedal was set to, labels stay consistent across weeks and exports, and the Compare view can line up “all seven diode positions, same drive” automatically because the data already knows what varied.