Effect 3 of 15 · Pedals

The octave pedal: two old tricks, honestly labelled

The octave above by rectifying the wave, the octave below by dividing it. Neither is a pitch shifter, and both follow one note at a time.

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 octave, 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. Octave

    Dry100%
    Up0%
    Down70%

The signal

What it does to the signal

This pedal mixes the input with a signal an octave above it and a signal an octave below it. It makes both the way analogue circuits do, which is cheap, immediate and imperfect.

Up is full-wave rectification: the negative half of the wave is flipped upward. A sine wave treated like that repeats twice in every cycle of the original, so its lowest component is an octave above the note. Flipping half the wave also leaves the signal sitting above zero, so a one-pole high-pass at 25 Hz takes the steady part away.

Down is a divider. The input is low-passed at 300 Hz, twice over, until little but its fundamental is left. A trigger fires when that filtered wave rises past 35% of its own recent peak, and cannot fire again until the wave has fallen past the same point on the other side, so it fires once per cycle. Each firing flips a flip-flop, which therefore completes one cycle for every two of the input: a square wave an octave down. That square wave is given the loudness of the input, moment by moment, and low-passed at 700 Hz to take the edge off it.

General definition: Wikipedia, “Octave effect” (revision 1320143420, read 2026-09-28). Everything on this page about how this pedal works describes this page’s own code. It runs as an AudioWorklet processor.

The graph

The graph, drawn.

The octave’s signal graph In feeds Rectifier (|x|); Rectifier (|x|) feeds High-pass (25 Hz); High-pass (25 Hz) feeds Gain (Up); Gain (Up) feeds a sum; In feeds Gain (Dry); Gain (Dry) feeds a sum; In feeds Low-pass (300 Hz ×2); Low-pass (300 Hz ×2) feeds Trigger, ÷2 (× envelope); Trigger, ÷2 (× envelope) feeds Low-pass (700 Hz ×2); Low-pass (700 Hz ×2) feeds Gain (Down); Gain (Down) feeds a sum; a sum feeds Out. In Gain Dry Rectifier |x| High-pass 25 Hz Gain Up Low-pass 300 Hz ×2 Trigger, ÷2 × envelope Low-pass 700 Hz ×2 Gain Down + Out

audiocontrol: moves a setting, is never heard

Three branches from one input, summed. Everything between the input and the sum happens inside one AudioWorklet processor.

The knobs

Every knob, in real units.

KnobRangeStarts atWhat it changes
Dry0% to 100%100%The level of the untouched input.
Up0% to 100%0%The level of the rectified signal, whose fundamental is one octave above the note played.
Down0% to 100%70%The level of the divider’s output, a low-passed square wave one octave below the note played, shaped by the input’s own envelope.

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]
  • Down only, a 220 Hz tone in: the output’s 110 Hz component was 156.5 dB above its 220 Hz component and 167.7 dB above its 440 Hz component. [as described]
  • Up only: the 440 Hz component was 168.0 dB above the 220 Hz component and 173.1 dB above the 110 Hz one. [as described]
  • Dry only: the output matched the input to within one part in a million. [as described]
  • Given two notes at once (220 Hz and 277.18 Hz, a major third), Down did not produce two clean octaves: the components at 110 Hz and 138.59 Hz were −23.1 dB and −11.6 dB relative to the whole output. The divider follows one note. [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

  • It follows one note. Given a chord, the rectifier produces sums and differences of the notes rather than their octaves, and the divider follows whichever note dominates the filtered signal. The last measurement below shows what two notes do to it.
  • The octave below is a filtered square wave with the input’s envelope, not the input’s own tone moved down.
  • Notes whose fundamental is well above 300 Hz reach the trigger weakened by the tracking filter, and the divider becomes less certain the higher you play.
  • Rectifying is a distortion: Up adds harmonics besides the octave.

Where it goes in the chain

Early, before anything that distorts. GuitarPlayer’s guide to pedal order puts pitch shifters first and says of pedals that have to track a note that they need “a clear, strong signal”. A divider fed a fuzz has many more zero crossings to be wrong about. 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.