Audio Recorder

Record from your microphone and download the file with MediaRecorder, entirely in your browser. Nothing is ever uploaded.

The recording lives only in this tab's memory. No audio ever leaves your device.

Nothing is recorded until you allow microphone access; the audio lives in this tab’s memory only.

Microphone level
00:00
—

How It Works

Pressing Start calls navigator.mediaDevices.getUserMedia({ audio: true }) — the permission dialog you see is that call — and pipes the resulting MediaStream into a MediaRecorder. The page picks the first supported MIME type from a candidate list and collects encoded chunks in memory; Stop ends the capture, bundles the chunks into a Blob and feeds it to the player and the download button. In parallel the stream is analysed with the Web Audio API to drive the live level meter.

Codec reality by browser
MediaRecorder can only encode what the browser ships: Chrome and Edge record audio/webm;codecs=opus, Firefox produces audio/webm or audio/ogg;codecs=opus, and Safari writes audio/mp4 (AAC). The tool tries those candidates in order and names the download file (.webm, .ogg or .m4a) after whichever one actually won, so what you download is exactly what the encoder produced.
The level meter
The microphone stream is also routed into an AnalyserNode (Web Audio). Each animation frame pulls a window of raw time-domain samples, measures the maximum deviation from the silence midpoint, and draws a proportional bar. It is purely a visual confirmation that your mic signal arrives — no sample from the analyser ever reaches the saved file.
Memory-only lifecycle
Chunks accumulate in a JavaScript array while you record; the file is a Blob URL created at Stop. Reloading, closing the tab or pressing Cancel releases the URL, stops every MediaStream track and drops the data — the browser's memory management is the deletion mechanism, and the download button is the only export.

Frequently Asked Questions

Why is the file .webm and not MP3?

Because that is what browsers expose. The MediaRecorder API encodes with the codecs each browser already has: Chrome, Edge and Firefox record WebM with Opus, Safari records MP4 with AAC. There is no MP3 encoder in any of them, and adding a WASM one would break this page's zero-download promise. WebM/Opus plays in every modern browser, VLC and ffmpeg, so a conversion step is usually unnecessary.

Can I trim or edit the recording?

No. This page records and hands you the file — there is no timeline, no trimming and no volume adjustment. If you caught a wrong take, press Cancel and record again; for anything fancier, download the file and edit it in Audacity or any audio editor.

Does it record before I press Start?

No, and it cannot. The microphone permission dialog only appears when you press Start (that is when getUserMedia runs), nothing is captured until you grant it, and Stop discards the live stream immediately. The level meter is a visualization only — it never touches the saved audio.

Where is the recording stored?

In this tab's memory, as a Blob. It disappears when you reload or close the page, and it is never uploaded anywhere. If you want to keep the take, press the download button — that is the one path out of the tab.

Is anything uploaded to a server?

No. Everything — capture, encoding, the level meter and the file download — is done by JavaScript inside your browser using getUserMedia and MediaRecorder. No audio, no blobs and no metadata leave your device, and the page works fully offline once loaded.