Waveform Matrix

The scope view. The waveform matrix captures what your pedal actually does to a wave — the real input and the real output, recorded over a grid of notes and levels, so the shape you see is a measurement, never a reconstruction.

What it shows

Each tile of the grid holds two periods of raw captured audio: the tone that went into the pedal and the waveform that came out, at one note and one drive level. Nothing is modeled, fitted, resampled, or cleaned up — a tile is the capture itself, which is exactly why this view exists. The app’s model-rendered pictures are reconstructions, and a reconstruction can be wrong in ways a raw capture cannot. This is the view you check everything else against.

The grid has two axes because distortion character moves along both. Along the note axis, tone stacks and coupling capacitors change how much of the wave survives to the clipper. Along the level axis, the shape of clipping itself changes — and some distortion lives only at the quiet end.

The Measured Waveforms pane: a five-by-five grid of small wave tiles, notes E2, E3, E4, E5 and E6 up the side and levels −48, −37, −26, −19 and −12 dBFS along the bottom, each tile a dashed input wave and a solid blue output wave; the left column's outputs are sine waves and every other column's are squared-off waves with a higher top than bottom. The center tile, E4 at −26 dBFS, is outlined and drawn again below at full width with a time axis in milliseconds.
The bundled simulated rig's Fuzz preset at full quality: the standard 5×5 grid, E2 to E6 by −48 to −12 dBFS, anchored at the standard −26 dBFS. Each tile is scaled to its own loudest sample — dashed is the tone that went in, solid what came out. At −48 dBFS the output is still a sine; from −37 dBFS up the clipper squares every note, and its flats sit at different heights because this simulated rig has no output coupling capacitor (a hardware pedal's would pull them close to equal — see the Transfer Curve page). The center tile, E4 at the standard drive, is expanded underneath at true relative scale with its time axis. Full quality is the lattice a Full Fingerprint measures by default; Simulation Mode shows a 3×3 subset of it while you drag.from the simulated rig's Fuzz preset, measured at full quality when the figure is rendered

Why the quiet tiles matter

Crossover distortion — the dead zone some circuits leave around the zero crossing — is strongest at LOW level: the dead zone is a fixed size, so it is a large bite out of a quiet wave and an invisible sliver of a loud one. A view that only looks at one healthy drive level measures this kind of distortion exactly where it hides. The default level range reaches down to −48 dBFS for that reason, and the quiet tiles are where a crossover circuit shows its flat spots plainly.

The honest cost: at low level, the capture includes the rig’s and the pedal’s own noise, so quiet tiles look fuzzier than loud ones. That fuzz is real signal from your rig, not a rendering artifact — the app records each row’s measured noise floor alongside the tiles.

Reading it honestly

  • Each tile is drawn scaled to its own loudest sample, so shapes stay readable across a 36 dB level range — read shapes in the tiles and levels on the axis labels. Click a tile to expand it: the expanded chart shows the tile at true relative scale with a time axis, and its caption states the delivered note, level, period count and sample count.

  • Quiet tiles are checked against the row’s measured noise floor. A tile whose output doesn’t stand clearly above that floor wears an “≈ noise” badge, and its expanded caption says how far above or below the floor it sits — the wave drawn there is real captured signal, and most of it is the rig’s and device’s own noise rather than shaping of the tone.

  • Every tile states its provenance. The record stores the actual delivered note frequencies and levels — not the ranges you asked for. If a note snapped to the nearest semitone, the snapped value is what the record says. Note names are nominal equal-tempered pitches (A4 = 440 Hz, with E2 held at 82.4 Hz) for a standard-tuned six-string guitar — see Tuning and temperament.

  • A visible difference is not automatically an audible one. Two tiles can look different — a phase shift alone redraws a wave — while sounding identical. The matrix shows what the circuit does to the waveform; your ears judge what matters.

Part of the Full Fingerprint

The waveform matrix is a member of the Full Fingerprint suite: one click acquires it along with the five analysis measurements, and the grid-dimension control sits right on the fingerprint panel. A fingerprint measured before the matrix joined the suite shows as partial, with the matrix listed as not measured — that is an honest statement about a suite that grew, not a defect in the record, and nothing about the record’s existing measurements or summaries changes.

Configuration

The grid dimension is yours: 3×3, 5×5, or 7×7 — the default is 5×5, and the choice is sticky: it holds for future runs, on both the fingerprint panel and the single-measurement path, until you change it. (5×5 is the default because 3×3’s only quiet sample is the floor itself — it has no point at all in the 22 dB gap between the floor and the standard drive, which is where crossover dead zones and clipping onset live; 5×5 samples the middle of that gap and walks the note axis in octaves.) Capture time scales with the square of the size, so the choice is a real cost decision. The grids nest: a 3×3 measures a subset of the 5×5’s points, which measure a subset of the 7×7’s — on the default note span that is the octave ladder E2 · E3 · E4 · E5 · E6, with A♯2 and A♯4 joining at 7×7 — so matrices captured at different dimensions stay comparable point for point. And because the dimensions are odd, every matrix has a center tile, and it is the same operating point at every dimension: the standard drive at the middle note of your span (E4 on the default span). That center cell is a different thing from the standard-note row — E2 stays on the note axis for the transfer-curve cross-check, at the edge of the default grid, while the center tile is the most musically representative cell. The note span and the level span are both adjustable in the measure sheet; the default notes cover E2 to E6, and the default levels run from 22 dB below the standard drive (a fixed voltage at your pedal, −48 dBFS on a typical rig) up to −12 dBFS.

One level of the grid is always the standard measurement drive — the same operating point the app’s other measurements use — whenever it falls inside your chosen span. On a calibrated hardware rig that is the level delivering 168 mV peak at the pedal’s input, in your rig’s own dBFS; on a plugin it is the −26 dBFS convention. The standard drive NOTE (E2) likewise always sits on the note axis when your span reaches it — so a matrix tile and the transfer curve’s measured cycle line up at the same operating point by construction. The remaining levels fill the gaps, so the steps are not always even — that is deliberate: the floor, the ceiling, and the standard point all matter more than tidy spacing, and the axis labels state exactly what was delivered.

Comparing matrices

Select two waveform-matrix records (⌘-click) and Compare overlays their captured output waves at every point the two grids share. One rule governs the whole view: tiles are matched on the delivered notes and levels the records store — never on row or column position. A 3×3 and a 7×7 of the same span genuinely share the 3×3’s nine points, and the comparison finds them by value; “same column” does not mean “same drive”, and the pane says how many tiles line up and that the rest have no counterpart.

Levels are matched in the records’ own physical domains. Two records from the same rig (or rigs whose measured volts factors agree) match on their stored dBFS. Two calibrated rigs with different volts factors deliver different voltages at the same dBFS — there the match is on the voltage actually delivered at the pedal: the quiet floor and the standard drive are fixed voltages on every calibrated rig and pair up, while the −12 dBFS ceiling is a rig-side setting that generally does not, and the view says so. A plugin record against a hardware record states two different physical quantities with no bridge, so no tiles are level-matched at all — the comparison states that and shows each grid on its own rather than pretending an alignment.

In each shared cell both output waves are drawn scaled to their own loudest sample — shapes compare directly, levels live on the labels, and as everywhere in PedalScope, a visibly different wave is not automatically an audibly different one.

Three or more matrix records compare the same way: the shared grid becomes the intersection — the tiles every selected record delivered, matched on the stored values point for point — and each cell overlays every record’s wave in its legend color. The level-matching rules above apply across the whole selection at once: all records on one axis match on dBFS, all-calibrated rigs match on delivered voltage, and one incomparable pair anywhere means no levels are matched and each grid is shown on its own, with the reason stated.

Distortion does not always grow with level

Reading down a column and expecting ever-more shaping at louder drives is a natural instinct, and often wrong. Measured on both a hardware soft-knee overdrive and its plugin model: total harmonic distortion peaks at moderate drive and falls toward the loudest levels, because the gain compresses while the harmonic content saturates — the fundamental keeps growing and the distortion, relative to it, shrinks. A loud tile that looks cleaner than the one below it can be telling the truth. Cross-check against the same device’s Gain Map, which measures exactly this trend with independent captures.

For the curious

Each frequency row is captured in one pass: a stepped tone walks the level grid from quietest to loudest with continuous phase, holding each level long enough to settle before the two stored periods are cut from the steady part of the step. The tile window starts at an upward zero crossing of the input, and the output window is the same time span at the calibrated loop latency — so the pedal’s own phase shift between input and output is preserved in the picture, not aligned away. Because the tiles trust that latency, a one-second probe sweep is played before the first row and read against the calibration; a loop that returns more than 1.3 ms from where the calibration puts it refuses the run in words, with nothing saved. A smaller change in the interface’s latency since the calibration — a sample or two between days is ordinary — appears in the tiles as phase, alongside the pedal’s own, so a matrix whose phase matters is best captured with a calibration made the same session. Samples are stored as 32-bit floats at the capture rate.