Zero Server Uploads · 100% In-Browser Privacy

100% Free Forever No Signup Required Zero Server Uploads

Microphone Test & Real-Time Audio Visualizer Online Free

Start the mic to see a real-time Web Audio frequency bars canvas, percentage input level and peak hold, switch input devices when multiple exist, and record a five-second sample for instant playback — all analyzed and stored on-device. Perfect before voice calls, podcast takes, or when a new headset “doesn’t work” in chat apps. Audio never leaves your browser tab.

Microphone Test & Real-Time Audio Visualizer In-Browser Workspace

Input data or select files to begin. 100% private, client-side execution with zero server transmission.

How to Use Microphone Test & Real-Time Audio Visualizer

  1. Step 1: Open over HTTPS or localhost and click Start Microphone Test.
  2. Step 2: Allow microphone permission; optionally pick a specific input device.
  3. Step 3: Speak — watch the level meter, peak and frequency bars respond.
  4. Step 4: Optional: Record 5s sample, then play it back in the audio player.
  5. Step 5: Press Stop to close the AudioContext and stop all tracks.

About Microphone Test & Real-Time Audio Visualizer

getUserMedia({audio:true}) opens the default (or selected) input. The stream feeds a MediaStreamAudioSourceNode into an AnalyserNode (FFT size 512 → 256 frequency bins). Each animation frame sums byte-frequency data for an approximate level (0–100%), tracks peak, and draws bars on a canvas — low bars for quiet, tall/amber bars when loud. Level here is a linear average of FFT bins (not true dBFS SPL), useful for relative metering and “is it picking me up” checks. MediaRecorder optionally chunks 5 seconds into a Blob (audio/webm where supported) and an <audio controls> element plays the object URL back so you hear what the mic captured. cleanup() cancels requestAnimationFrame, stops every track, and closes the AudioContext so the OS mic indicator turns off on Stop or unmount. Secure-context rules mirror camera APIs. Echo cancellation/AGC are browser defaults; for clinical SPL meters use calibrated hardware. If bars never move: check OS input privacy, mute switches, wrong device selected, or permission denied.

Frequently Asked Questions

Why is the level always 0?

Permission denied, wrong input device, hardware mute, or OS privacy block — re-select the device and check system sound settings.

Is my recording uploaded?

No — MediaRecorder blobs stay as local object URLs for playback only.

Does Stop fully release the mic?

Yes — tracks stop and the AudioContext closes so the browser recording indicator clears.

HTTPS required?

Yes (or localhost). Insecure origins cannot access getUserMedia.

Is this a dB SPL meter?

No — it is a relative FFT-based visual meter for presence and rough loudness, not calibrated decibels.