Effect 1 of 15 · Pedals

The tuner pedal: pitch, read where it sits

A tuner that is part of the chain. It hears what reaches it, passes it on untouched, and can mute the output while you tune.

Play it alone

Signal into the board

The test signals are synthesized by this page, sample by sample. Your instrument is asked for only when you press Start with “Your instrument” chosen, with the browser’s echo cancellation, noise suppression and automatic gain control switched off.

70%
Output levelsilent

Sample rate
not started
Processing latency
not started
Output latency
not started
Input latency
not started
Reported total
not started

Browser audio has latency: you hear each note a little after you play it. These are the browser’s own figures and they leave things out.

What the latency figures mean

The tuner, alone

In, this one pedal, out. Drag a knob sideways, or focus it and use the arrow keys or the wheel. The whole board has the rest.

  1. Tuner

    –no reading
    A4440 Hz
    OutputThru

The signal

What it does to the signal

A tuner measures the pitch of one note and shows how far it is from the nearest note of the scale. This one sits in the chain like any other pedal, so it hears whatever reaches it: put it first and it hears the instrument; put it after the fuzz and it hears the fuzz.

The signal passes straight through the pedal. A branch of it goes to an analyser that holds the most recent 8,192 samples (171 ms at 48 kHz). Twenty times a second the page copies that block, low-passes the copy at 600 Hz, and measures its period with a normalised square difference function: an autocorrelation divided by the energy present at each lag. The first peak that reaches 90% of the tallest one is taken as the period, which is what stops a string with a weak fundamental being read an octave out. A parabola through that peak and its two neighbours gives the period to a fraction of a sample. The reading on the pedal is the median of the last five.

The note is 69 + 12 × log2(frequency ÷ A4), rounded; what is left over, times 100, is the reading in cents. The detector has a low-pass in front of it because a bright string makes the peaks of that function too narrow for the detector’s first, coarse pass to land on.

General definition: Wikipedia, “Electronic tuner” (revision 1376805919, read 2026-09-28). Everything on this page about how this pedal works describes this page’s own code. It is built from standard Web Audio nodes.

For tuning on its own, with string targets for ten tunings and a reference tone, there is the labs.llc Tuner. It uses the same pitch detector as this pedal; this one sits in a chain.

The graph

The graph, drawn.

The tuner’s signal graph In feeds Output gain (Thru 1 · Mute 0); Output gain (Thru 1 · Mute 0) feeds Out; In controls Analyser (8,192 samples); Analyser (8,192 samples) controls Low-pass (600 Hz, a copy); Low-pass (600 Hz, a copy) controls Detector (period → note). In Output gain Thru 1 · Mute 0 Out Analyser 8,192 samples Low-pass 600 Hz, a copy Detector period → note

audiocontrol: moves a setting, is never heard

The signal path is one connection. The analyser is a branch that leads nowhere: nothing it does can change what you hear.

The knobs

Every knob, in real units.

KnobRangeStarts atWhat it changes
A4430 Hz to 450 Hz440 HzThe reference pitch. Every note is measured against it: 69 + 12·log2(f ÷ A4) is the note number, and the remainder is the reading in cents.
OutputThru / MuteThruThru passes the signal on unchanged while the tuner listens. Mute sets the pedal’s output gain to zero, so you can tune in silence.

Measured

What the test measured

Rendered offline, then measured

  • Switched off and rendered over 48,000 samples of the plucked-string signal, the output was identical to the input in every sample, and the pedal was not in the graph. [as described]
  • Switched on and set to Thru, the output was identical to the input in every sample: the tuner listens on a branch and changes nothing. [as described]
  • Given the sustained test note (synthesized at 110 Hz), the detector read 110.01 Hz, A2, 0.17 cents from pitch. [as described]
  • Given the first note of the plucked-string signal (a Karplus-Strong string rendered at 82.41 Hz), it read 82.41 Hz, E2, 0.00 cents from pitch. [as described]
  • Set to Mute, the output was zero in every sample. [as described]

Rendered in an OfflineAudioContext at 48,000 Hz in Chrome/154.0.8037.58, 2026-09-29 01:07 UTC. The test is work the page’s builder ran, not something your browser does when you open this page.

Limits

  • One note at a time. Two strings ringing together are one signal with one period, and that period belongs to neither string.
  • It reads between 26 Hz and 1,400 Hz, and declines to read a block whose RMS level is under −48 dBFS or whose pitch is unclear. It says which.
  • It names every note as a natural or a sharp. It has no key signature to tell it that an A♯ is a B♭.

Where it goes in the chain

First, on this board’s default. The reason is on this page: it measures a period, and everything after the instrument changes the waveform. GuitarPlayer’s guide to pedal order does not give the tuner a place. The whole order, and the reasons, are on the signal chain page.

Method

What is computed, and what is read.

Computed here, nothing fetched

Every sound on these pages is computed in your browser by the Web Audio API: 9 of the 15 pedals are graphs of the engine’s standard nodes, 5 are AudioWorklet processors, the wah is both, and the 3 test signals are synthesized sample by sample. No recording is loaded and no data feed is read. The one request the board’s own scripts make is for their AudioWorklet module, a file on labs.llc; the pitch detector is the one the Tuner uses.

Every effect was rendered offline with a known signal and measured: 73 of 73 checks came out as described. Nothing was tested on a real instrument or audio interface, only one browser was used, and nobody listened: the tests measure numbers, not tone. The method, the table of checks and what the latency figures mean are on the about page.

Sources

The W3C Web Audio API 1.1 and Media Capture and Streams specifications (W3C Document License); RFC 9110 and RFC 3986 for the share link’s fragment; GuitarPlayer’s guide to pedal order, quoted briefly; Wikibooks, “Guitar/Effects Pedals”; and each effect’s English Wikipedia article at a named revision (CC BY-SA). All read 2026-09-28; none is fetched by the page.

What happens to what you play

Audio from your input goes into the audio graph and out to your output device, and nowhere else: it is not recorded, stored or sent. Presets and the board as you left it stay in this browser’s local storage. A share link carries the board after the #, which browsers do not send to servers.