Ten-band graphic EQ that draws the real frequency response from the filter coefficients, matching the rendered audio to 0.03 dB. Clip-safe export, transparent bypass, per-band bandwidth control.
Initializing in your browser…
Generate band-limited test tones, sweeps and noise from 20 Hz to 20 kHz. Up to eight voices, note-name entry, binaural beats, and WAV export rendered from the same oscillators you hear.
Full-track spectrogram with a calibrated dBFS colour scale, labelled Hz axis, and log or linear frequency. Plus four live modes, microphone input, a peak-frequency and note readout, and PNG or WebM export.
Turn audio into a waveform image in five styles, exported as PNG or real vector SVG. Reads every channel, shows true level in dBFS, and redraws correctly at any size.
You load Bass boost onto a modern master that already peaks near full scale, and want more low end without distortion.
Input
track.wav (peak 0.95) · Bass boost preset · clip protection on
Output
track-eq.wav, curve peaking +8.6 dB, file landing at exactly -0.3 dBFS
The sliders read +8 at the bottom band, but octave-spaced bands overlap so the real response peaks at 8.6 dB, and the curve says so. Without protection that boost drives the render to 1.0000 and clips; with it the true peak is measured after rendering and the file is scaled to -0.3 dBFS. The drawn curve matches the exported audio to within 0.03 dB at every band centre.
A ten band graphic equaliser that shows you the real frequency response, not a line through the slider positions. The curve is computed from the filter coefficients and matches the rendered audio to within 0.03 dB, so what you see is what the file gets. Boosts are checked for clipping before export, with a one tap preamp trim and automatic peak limiting.
Load Podcast voice, then watch the curve: it cuts the low rumble, leaves the fundamental, and lifts presence around 2 to 4 kHz. Tap the trim prompt so the level matches, then A/B with bypass to check you have not overdone it.
Load Bass boost on a modern master that already peaks near full scale. The panel reports that the curve boosts by 8.6 dB and offers a matching preamp trim, and the export measures the rendered peak and lands the file at -0.3 dBFS instead of clipping.
Turn on Q controls, pull the 64 Hz band down hard and narrow its bandwidth to about half an octave. The curve shows a tight notch rather than a wide scoop, so the hum goes and the bass stays.
Cut rumble, tame a harsh resonance or lift presence on a voice or instrument track, and see exactly what the change is.
Compensate for a headphone or speaker that is heavy or thin in a particular region, then export a corrected file.
Use a narrow, deep cut to take out mains hum or a room mode without hollowing out the rest of the bass.
Sweep a boosted band across the spectrum while music plays and hear what each region contributes, with the curve showing where you are.
This is a ten band graphic equaliser with centres at 32, 64, 125, 250, 500 Hz and 1, 2, 4, 8, 16 kHz, one octave apart, each adjustable from -18 to +18 dB. The panel above the sliders is the point of the tool: it is not a line joining the slider positions, it is the actual frequency response, computed from the same RBJ biquad coefficients Web Audio implements. Cross checked in the browser against Chromium's own BiquadFilterNode.getFrequencyResponse, the drawn curve agrees to 2.6 times ten to the minus six decibels, which is the limit of single precision arithmetic. Measured end to end, a rendered file matches the drawn curve at every band centre to within 0.03 dB.
That matters because a graphic EQ does not do what the sliders suggest. Bands one octave apart overlap, so their responses multiply: set 500 Hz and 1 kHz both to +6 dB and the real response at each centre is 7.13 dB, with a small dip between them. The curve shows that ripple, and the readout above it reports the true peak and dip of the whole chain. The bands use Q = 1.414, the value that gives a peaking filter exactly one octave of bandwidth. The previous build used Q = 1, which is a 1.39 octave band: the overlap was larger still, and the same pair of sliders delivered 7.88 dB rather than 7.13. The outermost bands default to a low shelf and a high shelf rather than peaks, so 32 Hz and 16 kHz keep responding out to the edges of hearing instead of peaking and falling away again; you can switch them back to peaks. Turning on Q controls exposes a bandwidth control per band, shown in octaves, for anything from a broad tilt to a narrow notch.
Boosting adds energy, and energy has to go somewhere. Loading Bass boost on a track that already peaks near full scale will clip it, which is what made exports from the previous build distort. Two things prevent that here. The panel computes how far the curve boosts and offers a one tap preamp trim that cancels it exactly. And on export the audio is rendered offline, the true peak is measured, and if it would exceed full scale the whole file is scaled to land at -0.3 dBFS, with the amount of trim reported. Measured on a 60 Hz tone at 0.95 peak with Bass boost applied, the unprotected export hits 1.0000 and clips; the protected export lands at exactly -0.3 dBFS.
While a file is loaded the live spectrum of the processed signal is drawn behind the curve, so you can see the music meeting the shape you set. Slider moves are applied to the running filters with a short ramp rather than rebuilding the chain, so you can adjust while listening without restarting playback or hearing zipper noise. A bypass switch flips the whole chain out for A/B comparison and is transparent to within 0.01 dB. Eleven presets cover the usual ground, and export writes either a 16-bit WAV (lossless, and the right choice if the source was lossless) or a 192 kbps MP3.
Because a graphic EQ does not work that way. The bands are one octave apart and each is one octave wide, so neighbouring bands overlap and their responses multiply. Two adjacent sliders at +6 dB produce about +7.1 dB at each centre with a small dip between them. The curve shows the real combined response, which is what the audio gets.
It is computed from the RBJ biquad coefficients that Web Audio implements, and it is checked in the browser against Chromium's own BiquadFilterNode.getFrequencyResponse, agreeing to 2.6e-6 dB. End to end, a rendered export measured at every band centre matches the drawn curve to within 0.03 dB.
Not with clip protection on, which is the default. The file is rendered offline, its true peak is measured, and if it would exceed full scale the whole file is scaled to land at -0.3 dBFS, with the amount of trim reported. You can also tap the preamp trim prompt beforehand, which cancels the boost so no scaling is needed.
It applies a gain in dB before the filters, shifting the whole curve up or down. Its main use is to pull the level down by the same amount the EQ boosts it, which keeps the loudness comparable when you A/B against bypass and preserves headroom.
The 32 Hz and 16 kHz bands default to a low shelf and a high shelf, so their gain continues out to the limits of hearing rather than peaking at the centre and falling away. That is what a hardware graphic EQ does at its extremes. You can switch them back to peaking filters with the toggle in the presets panel.
Q sets how wide a band is. The default 1.414 gives exactly one octave, which is right for general tone shaping. Turning on Q controls lets you narrow a band to well under an octave for surgical work like removing hum, or widen it for a broad tilt. The control shows the bandwidth in octaves rather than the raw Q number.
WAV if the source was lossless, since it adds no further loss. MP3 at 192 kbps if you need a small file, but be aware that EQ-ing an MP3 and re-encoding stacks a second generation of lossy artefacts on the first.
Audio is decoded and processed locally with the Web Audio API. Your files are never uploaded to a server.