📉

Frequency Sweep Generator

Free, browser-only frequency sweep generator (sine chirp) across the full 20 Hz – 20 kHz audio range. Log or linear mode, custom start / end Hz, 5 / 10 / 20 / 30 second duration, and one-shot / repeat / ping-pong loop options. Includes a live visual current-frequency marker, an elapsed-time progress bar, and a “Mark threshold” button for capturing your hearing-range limit during a slow sweep.

Sweep range

Both sliders are logarithmic between 20 Hz and 20 kHz. Start above End for a downward sweep.
Duration
Mode
Loop

Quick presets

Playback

High-frequency sweeps can sound piercing at high volume. Start moderate.
Idle — press Play.

Live readouts

Current frequency
live osc.frequency.value
Elapsed
/ 10.0 s
since Play was pressed
Sample rate
AudioContext.sampleRate
Marked threshold
your hearing limit

Hearing test

Use the Hearing test preset (30 s sweep) then press Mark threshold the moment you can no longer hear the tone. The captured frequency is your upper hearing limit for this session.

Sweep visualization — log frequency axis · green = current Hz · cyan dash = swept range · gold = marked threshold

Frequency Sweeps — What They Are and How to Use Them

A frequency sweep (also called a chirp) is a sine tone whose frequency changes continuously over time. It's one of the most useful test signals in audio: in a few seconds it visits every frequency in the chosen range, which makes it ideal for finding speaker resonances, identifying headphone driver weaknesses, mapping room modes, and measuring your own ears' high-frequency cutoff.

Log vs linear mode

The two modes describe how the frequency moves through the range:

  • Log (logarithmic) — constant Hz per octave. The pitch you hear rises at a perceptually uniform rate; the lowest octave (20 → 40 Hz) takes as long as the highest (10 → 20 kHz). This matches musical interval perception and is the standard mode for speaker / headphone characterisation.
  • Linear — constant Hz per second. The frequency increases by a fixed number of Hz each second, so the pitch shoots through the low end almost instantly and lingers in the high end. Useful when you want extra time at high frequencies (e.g. for tweeter or hearing-range testing) or when matching legacy lab equipment.

One-shot, repeat, and ping-pong

  • One-shot — sweep once from start to end and stop. Good for clean A/B testing and for the hearing-test preset where each repeat would reset your perceptual baseline.
  • Repeat — restart from the start frequency after each sweep ends. Slight discontinuity at each loop point (the frequency jumps); useful for sustained excitation of a specific band.
  • Ping-pong — reverse direction at each endpoint, sweep back and forth continuously. Smooth at every boundary; great for sub-bass demos and for keeping a tone within a narrow band indefinitely.

Using the hearing-test feature

Use the Hearing test preset (30-second log sweep across the full audible range), put on headphones at moderate volume, and watch the green marker climb. The moment you can no longer hear the tone, press Mark threshold. The captured frequency is your upper hearing limit for this session — a gold marker stays on the axis so you can compare against repeat tests. Healthy young adults typically hear up to ~17–18 kHz; the upper limit drops gradually with age (and faster with noise exposure). This is a rough self-screening, not a medical diagnosis.

Speaker and headphone testing

  • Identify resonances — play a slow log sweep and listen for sudden loudness peaks or "ringing" notes. Those frequencies are where the driver / enclosure / room is amplifying or holding energy unnaturally.
  • Find driver limits — with the Sub-bass ping-pong preset, listen for distortion, port chuffing, or cone bottoming below your speaker's rated lower limit.
  • Check stereo imaging — mono summed sweeps should appear dead-centre at every frequency. Off-centre wandering reveals channel imbalance.
  • Test tweeters — the Tweeter preset (5 → 20 kHz) isolates the high-frequency driver. Audible buzzing or sudden silence indicates damage.

Frequently Asked Questions

Why does the “current Hz” readout update so smoothly?
Because it's reading directly from Web Audio's AudioParam.value, which reflects the live scheduled value at the audio thread's current time. Web Audio interpolates the sweep curve at sample-rate, so the JS readout (sampled at animation-frame rate) always shows you the audibly correct frequency.
Why can I hear the loop boundary in Repeat mode but not in Ping-pong?
In Repeat mode the oscillator frequency teleports from the end value back to the start value the instant a sweep ends — that's an audible discontinuity. Ping-pong reverses direction at each boundary, so the frequency arrives at the endpoint, reverses smoothly, and starts the descent. No jump. Use ping-pong for continuous-listening scenarios.
Is the marked threshold a medical hearing test?
No — it's a quick self-screening. Real audiograms test specific frequencies at calibrated SPL with proper acoustic isolation; this tool tests the highest frequency you can perceive at whatever volume your browser, OS, amp, and headphones happen to produce. Useful as a rough check or before/after comparison, but if you suspect hearing loss please see an audiologist.
Why does the high end disappear suddenly at high frequencies?
Two reasons. First, human upper hearing limit varies a lot — many adults stop hearing somewhere between 14 and 18 kHz, often before reaching the chart's 20 kHz endpoint. Second, your playback chain may roll off above 16 kHz (cheap drivers, Bluetooth codec compression). Either of these will create the same perceptual cutoff. Use wired headphones at moderate volume in a quiet room for the most honest result.
Is high-volume sweep playback safe for speakers?
At sensible levels, yes — a single sine sweep is a benign signal compared to clipped music or square-wave content. The risks are at high volume: low-frequency sweeps can mechanically stress small speakers below their tuning frequency, and tweeters can be damaged by sustained high-level high-frequency content. Start at the default volume and increase only as needed.
Does Repeat / Ping-pong mode run forever?
The audio thread can run for as long as the tab is open. Internally we pre-schedule about 20 segments at a time and refill the queue from the visualization tick when getting close to running out, so the audio plays continuously without main-thread audio glitches even under load. Press Stop or close the tab to end the sweep.
Can I sweep below 20 Hz or above 20 kHz?
Not with the on-screen sliders — the audible range is 20 Hz to 20 kHz and most playback equipment can't reproduce content outside that band cleanly. Web Audio itself can produce sub-audible tones (down to fractions of a Hz) and ultrasonic content up to the sample rate's Nyquist limit (typically 24 kHz). For those use cases, use the dedicated infrasound or ultrasonic generators in this category.
Does changing start/end Hz during a sweep update mid-flight?
No — the audio thread has the current segment(s) already scheduled, and changing them mid-sweep would cause audible discontinuities. New range values take effect on the next Play press. Stop, adjust, Play again.