Hosted take
Guitarabin
Guitarabin
A fixed pedalboard for wet, spacious guitar.
Presets
Preset names do work: they teach the parameter space faster than the table below does.
About
Guitarabin is a pedalboard rather than a rack: the stages are in a fixed order and you cannot repatch them. That is the point. It is modelled on two instrumental guitar rigs that are themselves fixed boards - the wet, dark, reverb-soaked sound of Khruangbin's Mark Speer, and the desert/spaghetti-western tone of Hermanos Gutierrez - and both of those sounds come from a small number of pedals left in one order and played, not from routing flexibility.
The two rigs share more than they differ. Both run an MXR Dyna Comp into an essentially clean amp, both lean on a Strymon El Capistan tape echo, and both play through a Fender Deluxe Reverb. So the chain here is their intersection: a compressor, a low-gain boost that never reaches distortion, a dark tone stage standing in for flatwound strings and a blackface amp, modulation, and then the two time effects that do most of the work.
The detail worth understanding is one you cannot change. A rig rundown of Speer's board puts the reverb BEFORE the delay, backwards from the usual advice, and it matters: with reverb first, every repeat is a copy of an already-reverberant signal, so the echoes get more diffuse as they decay and smear into a wash rather than staying discrete. That order is welded here rather than switchable, because it is the character of the circuit - a control to turn the defining trait off is a control to make the module sound like everything else.
Preview honesty: what you are playing on this page is plain Web Audio - biquads, a waveshaper, delay lines and a small feedback-delay reverb. It is a real effects chain, but it is not the compiled kernel, and none of the engine's byte-parity claims apply to it. The tone and delay behaviour are modelled on the reference rigs; they are not measurements of specific pedals.
Take it into your DAW.
Same DSP as this page. The plugin isn't a rebuild — it's the identical kernel from the identical TypeScript source, compiled native instead of to WASM.
Free forever, no account, and playing it in the browser will never ask you for one. VST3 and standalone today; AU and CLAP are on the roadmap.
How it works.
The pre-chain is fixed and conventional: a peaking biquad for the parked wah, a compressor, a waveshaper, then a shelf pair for tone, then the two modulation stages. The drive curve is a tanh capped at about 9x pre-gain, which is low - the stage is there to thicken and boost, and running it as a distortion is not a sound either reference rig makes.
The two modulation stages are genuinely different effects and are wired that way. Tremolo is an LFO summed with a DC offset into a gain, with the offset set to 1 minus half the depth so the effect swings around unity instead of only ducking. Vibrato is an LFO on a delay line's time, which is a real pitch shift; depth is specified in cents and converted through the delay-modulation relation (peak pitch deviation is 2*pi*rate*swing), then clamped under the centre tap so the line can never go negative.
The delay is a single tap with the feedback path damped and saturated before it returns, so repeats both darken and compress as they pile up - the tape behaviour, rather than a clean digital repeat that eventually clips. Tape Age moves the damping corner from 8 kHz down to 1.8 kHz and simultaneously opens a slow LFO on the delay time for wow and flutter, because on a real machine those are the same fact about the same worn transport.
The reverb is a small feedback-delay network - four short diffusion delays in series feeding four damped parallel combs - not a convolver. That is a deliberate split of responsibility with Space Mini, which does own a convolution reverb: an FDN gives a decay knob that actually re-tunes the tail, and comb feedback is derived from the target decay by the standard relation g = 10^(-3t/RT60). The tail is damped harder than the output, so highs die before lows.
The panel exposes ten knobs, not twenty. Several are macros that fan out to more than one engine value, because the pedals they stand in for do too: one Echo knob moves repeat spacing and wet level together, and Feedback carries tape age with it, since more passes over the head is what wear actually is. That expansion lives in one function in the plugin's schema, which both the plugin and this page call, so a knob means the same thing in a DAW as it does here.
Width is a mid/side matrix on the wet path only, fed by a decorrelated copy of the chain output - a mono pedal chain has no side component at all, and no amount of matrixing invents one. Below halfway the tail collapses toward the centre while the dry note keeps its own image untouched.
It's yours to read and to fork.
Research preview
npx codex clone guitarabin
npm run devThe codex CLI name is proposed, not shipped. That command gives you this module's DSP, schema, presets and UI as a local project — change a number, hear it immediately.
preview: fixed pedal chain · components/playground/guitarabin.ts