Compare

How different are they, really? Informal A/B comparison mostly measures volume — louder reads as better down to fractions of a decibel. The Compare view puts two measured Harmonic Distortion recipes on the same axes, quantifies their gap, and lets you hear them through their measured models at matched loudness. It compares Compression the same way: two touch-response curves on one shared axis pair, and two Waveform Matrix records as overlaid captured waves at every grid point the two records share (that page describes how the grids are matched). Select two records of the same kind in the library (⌘-click), or use the Compare button on any Harmonic Distortion, Compression, or Waveform Matrix record. Select three or more records of one kind and the comparison widens instead of refusing: every comparable kind compares N-way — Harmonic Distortion opens the anchored comparison described below, Compression and the Waveform Matrix open N-way overlays of the same charts their pairs use.

Like every measurement page, a comparison exports as a picture: the Copy and Save buttons at the top right produce one annotated PNG of the comparison charts, with both records’ full provenance (pedal, setting, date, drive level, calibration), the drive-level caveat and — whenever the page shows one — the parameter-mismatch line in the header, so a posted comparison carries the context an honest reading needs. A matched pair’s export carries no such line, exactly as its page does.

The same header line also states a source-impedance mismatch, for every kind of record: two records whose calibrations stamp different source impedances (0 Ω against the 10 kΩ fixture, say) were not measured under the same source, and the line says so. A record whose calibration carries no stamp — one made before the field existed — is flagged against one that does, because “not recorded” and “0 Ω” are different claims; two unstamped records say nothing, and a plugin or simulated record has no source to compare. See Calibration.

The distance number

The distance is the average gap between the two devices’ harmonic levels, in dB, pooled over every harmonic and every audible note in the band both measurements cover — cells past either measurement’s reliable band edge are skipped, so analysis artifacts never inflate the number, and both fingerprints are clamped to the worse of the two rigs’ measured noise floors, so two harmonics neither rig can resolve count as identical instead of comparing noise against noise. A plugin side’s floor is the plugin’s own declared noise floor, not the render path’s numerical silence: a plugin is usually the noisy element in an otherwise silent loop, and clamping to the render path would count its own dither as a difference. When that clamp actually bites on one side — one device shows real content at some order while the other’s sits at or below the joint floor — the difference there is a lower bound, not a measurement: the bar draws lighter with a ≥ cap, the affected components are quoted “≥”, and a line under the decomposition names which record sat at the floor and on how many of the compared points. An even-order gap of ≥50 dB against a device that produces no measurable even-order content means “at least that far apart there”, never “exactly” — the true gap is whatever lies below what the two rigs can jointly resolve. (Points where both sides sit below the joint floor stay what they always were: identical, because neither rig resolves anything there.) Each record’s floor is its own: a record that averaged more sweeps brings a floor 10·log₁₀ N lower inside its reliable band (see Averages), so the joint floor of a pair is the shallower record’s — and the count of floor-limited points is a count of compared points, never of points on a harmonic that resolved nothing in either record. Zero means identical recipes; a decibel or two is the scale of a small knob move or a re-patch; tens of dB is the scale that separates unrelated recipes. The number is a size, not a verdict: it is provenance-blind, and cannot tell a moved knob from a different circuit — one unit measured twice with its Drive rotated can read further apart than two different units with their knobs matched. That is why the caption under the number quotes the measured components rather than naming a cause; what produced the gap is yours to conclude, from the components and from what you know about how the two records were made. The per-harmonic bars say where the difference lives — even orders mean the devices differ in asymmetry (warmth), odd orders mean different clipping hardness (grit). Click a bar to open that harmonic in the Overlay below: the bar is the reported figure and the overlay is the evidence that checks it, so a surprising bar is one click from its own picture (the same click works on the anchored comparison’s per-harmonic strip). The line under the overall number reads those bars for you, splitting the gap into three components: level (the H1 gap — if this dominates, check knob settings before reading anything into character), asymmetry (even orders), and hardness (odd orders beyond H1). A component below 1 dB reads as matched. Because every harmonic is measured relative to the input, a volume gap moves all orders together — comparable spread on every bar is a level difference wearing harmonic clothes. So when the H1 gap is real, asymmetry or hardness must be at least twice it before the line blames character instead of level; when levels are matched, the two character components contest each other by the same factor-of-two rule, and a near-tie reads mixed — the line never stretches a close call into a diagnosis. Two pedals can sit several dB apart overall with levels and hardness matched: that is a real difference in asymmetry spread, not a knob mismatch. When both records carry compression evidence, one more line conditions the verdict on the operating point: knees (or, when a knee is missing, cleanup levels) sitting several dB apart mean the two devices were working at different drive points, and much of the distance can track that, not circuit — the line quotes the gap and says so before you read character. A knee marked “≤” is a bound, so no gap is quoted against it; the line then says only that matched operating points could not be verified. Matched operating points show nothing — the normal case earns no annotation. What the distance does not measure: loudness, noise, feel, or anything time-variant — two devices can be 0 dB apart here and still differ in sag or hum.

Use it for repeatability too: re-measure the same pedal on another day and the distance tells you how trustworthy small differences are. Anything below your own re-patch repeatability is measurement weather, not tone.

Matched operating points

The classic false “different circuits” verdict is two near-identical circuits measured at different operating points: a drive-pot taper substitution once put an 11 dB knee gap between a clone and the pedal it copies, and the distance read 10 dB — near-parallel touch-response curves, offset, wearing a different-circuit costume. When the operating-point line appears, match knees before reading character: open both records’ Compression curves, rotate the louder device’s gain until the two knees align (a knob’s worth of gain moves the knee roughly dB-for-dB), re-measure both, and compare again. If the distance survives knee matching, it’s circuit; if it collapses, it was drive.

Shaped content, and what a harmonic can be asked

A harmonic level is read by looking at one slice of the measurement, at the moment that harmonic arrives. Anything present in that slice is reported — including the pedal’s own hiss. So a level alone does not tell you whether you are looking at something the circuit did, or at noise that happened to land where the circuit’s second harmonic would be.

For most pedals this matters most in the even orders. A symmetric clipper — which covers most of the overdrive category — produces almost no even-order harmonics by design, so H2, H4, H6 and H8 read the noise beside them. That noise is not faint: on the bench records this mechanism was found on, the even orders of a symmetric overdrive sat about 22 dB above what the same session’s bare-cable null run measured. They were well clear of every measurement floor, and they were still not harmonic content.

PedalScope therefore asks a second question of every harmonic read, alongside “is it above the floor”: is the circuit deterministically shaping content here? Shaped content has a definite phase that advances smoothly with frequency; noise scatters with no preferred phase. The two are told apart by that phase behaviour, which is why a harmonic that is merely louder cannot pass as shaped — one unit hissing more than another is a difference in noise, not in distortion.

Where a harmonic carries no deterministically shaped content in either record, the comparison states no difference for it. Instead it reports what it could have resolved: a line like asymmetry ≤4.6 dB, meaning the true difference is at most that much and may be nothing at all. The bar draws faint with a cap. Where one record’s read is shaped and the other’s is not, the difference is a lower bound and reads , for a different reason than the floor clamp above — and the page says which reason.

Three things this reading deliberately does not say:

  • It does not say the harmonic is absent. It says nothing was resolved in this capture, at this capture’s averaging — every record stores how many sweeps it combined (one, unless the Averages control was raised). A harmonic that reads unresolved today may be real, and may resolve with a deeper measurement.

  • It does not say the content is quiet. Unresolved content routinely stands far above the measurement floor.

  • It does not say the two devices are the same. ≤4.6 dB, and possibly zero is the whole of what was established.

The practical consequence is worth stating plainly, because it changes how a repeatability figure should be read: a same-unit distance is a resolution limit, not a distance. Measure one pedal twice and the number you get is how small a difference this instrument could have detected on that device, under those conditions — not how much the pedal differs from itself. And because the limit depends on how much of the device’s fingerprint is shaped, it is not transferable: a symmetric clipper, whose even orders carry nothing to resolve, has a coarser limit than an asymmetric one measured on the same rig, on the same afternoon. A threshold measured on one device says nothing about a comparison on another. The limit moves with averaging for the same reason, which is why comparing records measured at different Averages settings is flagged as a parameter mismatch: the two sides are two instruments with different resolution limits — true whether both records are yours or one arrived by import — and a threshold established at one averaging does not transfer to the other. A simulated side is the one exception: the simulated pedal has no capture noise, so its resolution limit is not an averaging matter and the averaging flag stays quiet there — the other parameter checks still apply.

Comparing three or more

Every kind Compare handles at all compares at any count — a comparison that changed its own rules between measurement kinds would teach you that you cannot predict it. What opens at three or more differs by kind, because the comparison object differs. Harmonic Distortion has a pairwise distance, so three or more records anchor: one record is the reference and every other reports its distance to it (next section). Compression and the Waveform Matrix have no pairwise metric — their comparisons are overlays — so three or more records open a symmetric overlay with no anchor: every touch-response curve and THD trace on the same shared axes (Compression), or every record’s captured wave in each tile the whole selection delivered (Waveform Matrix, intersected on the stored delivered values exactly as the pair is). In the compression overlay, curves share a chart only where their input axes state the same physical quantity; a selection that mixes domains draws one chart per domain, with the split stated — no level ever compares across domains as a single number. Each record is tagged and colored by its slot (oldest first), every level is quoted in its record’s own unit, and the parameter-mismatch, alignment, and domain facts ride the exported PNG.

Select three or more Harmonic Distortion records and Compare anchors them: one record is the anchor, and every other record reports its distance to that anchor. There is no all-pairs matrix — the other records are not compared with each other, and the page says so. What you get is N−1 of the same pairwise comparison described above, read off one axis, with the anchor picker at the top choosing which record everything is measured against (the oldest by default).

The anchoring is what makes the picture honest, not just smaller. Anchor on a record you also have a repeat measurement of — the same pedal, re-patched and measured again — and your own repeatability sits in the same picture as the differences you are asking about. A reader sees “this is the same pedal measured twice” beside “this is a different unit of the same model” beside “this is a different model”, and judges the scale themselves instead of being told what a number means. Without that control in the frame, a bar chart of distances is a scorecard.

Each row is an independent comparison, and this matters for reading them: each pair clamps to what those two rigs jointly resolve, so a quiet or noisy record cannot pull content out of a comparison it is not part of — and the rows therefore do not share one measurement floor. Adding a record to the selection never changes any other record’s number.

The rows are ordered by distance, nearest the anchor first. That order is a quantity, not a verdict: the distance is provenance-blind, so it cannot tell a moved knob from a different circuit, and nothing here says which record is “closest” in any sense beyond the dB. Where a figure ran into the joint measurement floor it reads “≥” and is a lower bound, exactly as in the two-record view — and then the order is not settled either, since a bounded figure could truly be larger than the row behind it. A row that resolved nothing reads “≤” and is an upper bound, which settles its order even less: its true distance may be anywhere from that bound down to zero. The page says that in place; read the values, not the sequence. A record that shares no band or harmonic orders with the anchor is listed as not comparable rather than dropped.

Each record’s drive level is quoted in its own input-level domain, and no level difference across domains is quoted as a single number — a plugin’s digital full scale and a hardware rig’s interface level are different physical quantities (see Compression). When the selection mixes them, the page names each record’s domain once.

The overlay draws the anchor plus the first few records and says “showing k of n” when it caps; the distance table always lists every record. There is no gap shading with more than two curves — a shaded band between three traces would state a pair that isn’t on the chart.

Copy and Save export the whole anchored comparison as one annotated PNG, every record’s provenance in its legend color, anchor first and marked, and every per-record parameter-mismatch line the page shows, in the same anchor-first wording.

The overlay

A solid blue and a dashed orange curve on shared axes — THD or any harmonic the two measurements share — with the gap between them shaded. Wide shading at low notes and none at high notes is a bass-response difference; a uniform vertical offset on one harmonic is a level difference in that family. Where a curve turns faint and finely dashed it has passed its measurement’s reliable band edge — those tails are artifacts, drawn unshaded and never counted. A selected harmonic that is noise at the floor on either side (the record chart’s own reading, in its own words — faint and dotted, named under the chart) never sets the vertical axis, which is fitted to the shaped traces (the record chart’s own fit — the data plus a small margin, never a round decade), or the two records’ shared full range when the record chart’s Extend the vertical axis… checkbox is on; the THD curve turns faint where its sum lost a shaped harmonic past the band edge, exactly where the record’s Distortion vs. note chart does. Check the drive chips first: measurements made at different drive levels differ for that reason alone. When both sides carry a confidently measured polarity and they disagree, a flag says so — two devices with opposite polarity behave differently the moment either is blended in parallel with a dry path, which is exactly the comparison (a model against the pedal it models) where the discrepancy matters.

Hearing the difference

One plucked note rendered through both records’ measured Hammerstein models, loudness-matched to the same target, toggleable A/B on a shared clock. Because neither side can win by being louder, what survives the toggle is real character: harmonic recipe, clipping hardness, tone shaping. The Blind test button turns the panel into an A/B/X trial — the honest way to find out whether you can actually hear the difference. The audition is illustrative — a model from one sweep, not an emulation product — but it is an honest one.

The blind test (A/B/X)

Knowing which pedal is playing changes what you hear — expectation bias is as real as loudness bias. The Blind test (A/B/X) button runs the classic honest protocol: a third lane, X, secretly plays either A or B on the same sample-locked clock. Flip freely between A, B, and X, then call it — the panel reveals the answer and keeps a running tally.

Read the tally the way listening researchers do: a long run of correct calls means the difference is genuinely audible to you, on your playback chain (see Listening conditions); hovering around half is the polite way of learning that it isn’t. Eight of ten is a common bar. Both outcomes are useful — one tells you the two settings matter, the other frees you from paying for a difference you can’t hear.

Comparing compression

Select two Compression records instead and Compare overlays their touch-response curves and distortion-vs-level traces.

Both touch-response curves are drawn on ONE shared axis pair — the same span of input and output levels. The solo Compression view scales its axes to fit each record, which is right for reading one curve but sabotages side-by-side judgment: a limiter whose entire output moves 8 dB can look as structured as a clean boost until you read the numbers. On shared axes, flat is flat and low is quiet. Knee and cleanup markers are drawn for both records in their A/B colors; a knee marked “≤” is a bound, not a reading — that curve is already compressing at the quietest level measured, so the true knee lies at or below the line and the gap to the other record’s knee cannot be quantified from these measurements.

One knob can fake a verdict here: a Volume/Level mismatch shifts a whole curve vertically and inflates every absolute comparison. When the two curves’ clean (below-knee) segments sit more than a few dB apart, a hint quotes the fitted offset; the Align output levels toggle then shifts B’s curve by exactly that amount so the shapes overlay. The alignment is vertical only and display-only — output gain moves no fitted quantity, so knees, cleanup markers, and every tile keep their honest absolute values, and the applied shift is stated on the chart (it’s data: the quantified knob mismatch). Input-side gain is never normalized — a higher-gain circuit genuinely knees earlier, and sliding curves horizontally would manufacture agreement. The offset is fitted between the clean segments, never by lining up plateaus (plateau height difference includes compression amount, which is genuine character); a curve that is already compressing at its quietest measured level has no clean segment to fit, so the toggle disables and says why. For publication-grade comparisons, physically level-match and re-measure — the toggle is for diagnosis and exploration.

The input axis states each side’s physical quantity. A plugin record’s input levels are digital full scale; a hardware record’s are the interface’s output level — real volts at the pedal input when its calibration measured the volts reference. When the two sides’ axes state different quantities (a plugin against a pedal, or two rigs with different measured volts), each side gets its own ruler — A’s on the bottom edge, B’s on the top, in the side’s color — because the chart can only align the two numeric lattices, which are not the same level. For the same reason no summary sentence quotes a single-number level gap across domains: each side is stated in its own unit with the domain named. A single comparable number across domains would need a declared plugin input reference (a stated volts-equivalent for digital full scale) — that convention is planned, not improvised here.

The same two records’ THD-vs-level traces on a shared log axis: how dirt builds as you dig in, side by side. Where one trace crosses the 1% rule and the other doesn’t, one device has a clean floor and the other never cleans up. A trace that hugs a high THD value across the whole level span is a fuzz-style always-on distortion; one that climbs through the span is drive that responds to touch.

Mind which quantity each trace shows: THD (added harmonics) or THD+N (harmonics plus the rig’s noise). A hardware capture has a real noise floor; a plugin render is numerically near-silent — comparing the two raw would read rig hiss as one device’s “murmur”. Each side that carries its own noise stamp draws it here in the side’s color: a fine dashed floor line (the noise expressed against the note, a worst-case bound), a faint band for the noise-dominated region, and dotted trace segments inside the band — there that side reads THD+N, and its faintest dots are at or below its own floor. A low-level upturn inside a shaded band is the bathtub signature of constant noise against a shrinking note — the rig, not the circuit. Gaps mark segments below the chart’s 0.01% axis floor: true values there are lower than the axis can draw, which for a clean plugin trace is most of its quiet half.

If the two records were measured at different probe notes the view says so: level behavior still compares, but tone-dependent differences (a bass-heavy fuzz probed at E2 vs A3) ride along with the level story.

Pivot: compare a whole control at once

After a family run, its sweep node’s overview page offers Open pivot comparison (the coverage matrix has the same entry): choose one switch — say a 7-way clipping-diode selector — and every measured position appears overlaid on one chart (or as small multiples), each line carrying its canonical label like Stoat [Ge/Ge · Drive noon]. One control varies, everything else held: the factorial evening becomes a textbook figure.

Common misreadings

  • Distance is not “betterness”. It’s a difference meter, not a score. A 12 dB distance says the instrument tells the two apart by that much at this measurement depth, not which one you’ll like.

  • Resolvable is not audible. Resolvability is a function of measurement effort: with enough averaging the instrument resolves differences far below anything a player could hear, and at sufficient depth every pair of devices becomes “resolvable”. So a distance, a bound or a per-harmonic gap states what was measured — “H2 differs by 8 dB at this note” — and never what would be heard, and no surface prints an audibility threshold, because none is defensible in general (it depends on the program, the level and the order). The place hearing is measured is the blind test above, on your own playback chain.

  • Matched drive matters. Comparing a Harmonic Distortion record measured at −36 dBFS against one at −12 dBFS mostly measures the gain map of one device, not the difference between two. Measure both at the same drive first.

  • The audition inherits each measurement’s limits. Time-variant behavior (sag, bias drift) isn’t in a Hammerstein model, so two devices that differ mainly in feel can audition more alike than they play.

Try it: select two or more records of the same kind — Harmonic Distortion, Compression, or Waveform Matrix — in the library with ⌘-click. A pair opens the two-record comparison; three or more open the anchored comparison (Harmonic Distortion) or the N-way overlay (Compression, Waveform Matrix).