How to visualize an audio waveform without uploading — free
- Step 1Open the tool and add your file — Drop the sensitive recording. It's read into memory and decoded by the browser's Web Audio API; it is not uploaded. Closing the tab discards everything from memory.
- Step 2Confirm it stays local — Processing is client-side — you can verify in your browser's Network panel that no audio request is made. Only a lightweight usage counter (no content) is recorded if you're signed in, and you can opt out in account settings.
- Step 3Set size and style — Choose width (320–3840) and height (80–1080), then a style:
bars/filledfor a solid envelope orlinefor a thin peak line. Defaults are 1600×320, bars. - Step 4Set colours — Pick the wave Color and Background. Exports are opaque (background painted first), so choose a background that suits where the image will be filed or shared.
- Step 5Export PNG or JPG — PNG is lossless; JPG (quality 0.1–1) is smaller. The image is generated from the canvas and saved to your Downloads as
<name>-waveform.png/.jpg. - Step 6Handle the output per your policy — The downloaded image is now an ordinary file on your machine — store, redact, or share it according to your data-handling rules. The original audio was never transmitted.
What stays local vs. what leaves
Data-flow summary for privacy-sensitive use. The audio never reaches a server.
| Item | Where it lives | Leaves your device? |
|---|---|---|
| Source audio file | Browser memory only | No |
| Decoded samples (PCM) | Browser memory only | No |
| Rendered waveform image | Browser canvas → your Downloads | Only when you download it |
| Usage counter (signed-in) | Server (count only, no content) | Count only; opt-out available |
Control surface
All available options — nothing here changes the privacy model.
| Option | Range / values | Default |
|---|---|---|
| width | 320–3840 (step 80) | 1600 |
| height | 80–1080 (step 20) | 320 |
| style | bars / line / filled | bars |
| color | any hex | #00e5ff |
| background | any hex | #0a0a14 |
| format | png / jpg | png |
| quality (jpg) | 0.1–1 (step 0.05) | 0.9 |
Tier limits (audio family)
Per-file caps from lib/tier-limits.ts. The size/duration ceiling is the only gate; privacy is identical across tiers.
| Tier | Max size | Max duration | Files |
|---|---|---|---|
| Free | 50 MB | 30 min | 1 |
| Pro | 200 MB | 120 min | 10 |
| Pro-media | 100 GB | Unlimited | 100 |
| Developer | 100 GB | Unlimited | 100 |
Cookbook
Recipes geared to confidential workflows. In every case the audio stays in the browser; only the chosen image is saved.
Deposition timeline strip
A wide, neutral waveform to attach to a deposition exhibit index — generated without the recording ever leaving the secured laptop.
Input: deposition.wav (kept local) Width: 2400 Height: 300 Style: bars Color: #1f2937 Background: #f8fafc Format: png Output: deposition-waveform.png (filed locally)
Medical dictation visual for a chart
A small, plain waveform thumbnail for an internal record system — no PHI in the image itself, and no audio transmitted.
Width: 800 Height: 120 Style: line Color: #0f766e Background: #ffffff Format: png Output: dictation-waveform.png
Confirm no upload happens
Before processing truly sensitive audio, verify the privacy claim yourself in the browser's developer tools.
1. Open DevTools -> Network tab, clear it 2. Drop the audio file, render the waveform 3. Observe: no outbound request carries the audio (only static assets / optional count ping) -> the file stayed on your device.
Unreleased track preview image
Generate a teaser waveform for an unreleased master without sending the audio to any platform.
Input: master_v3.flac (kept local) Width: 1600 Height: 500 Style: filled Color: #a855f7 Background: #0a0a14 Format: jpg (0.9) Output: master_v3-waveform.jpg
Air-gapped-friendly use
Because all work is client-side, the page functions after it has loaded even with the network restricted — useful on a locked-down machine.
Load the page once on the network, then process audio with outbound requests blocked. Decode + canvas render run locally; only the count ping (optional) would fail, which does not affect the image output.
Edge cases and what actually happens
Worried audio is sent for processing
By design (no upload)It isn't. Decoding (decodeAudioData) and drawing (canvas) run in the browser. You can confirm in the Network panel that the audio is never transmitted. Only an optional usage counter (count, not content) is sent if you're signed in.
Need an audit trail that nothing was stored
SupportedBecause there's no upload and no server-side temp file, there is no remote copy to retain or delete. The audio exists only in the tab's memory and is discarded when you close it. Document the client-side model for your compliance record.
File too large or too long for the tier
RejectedFree caps at 50 MB / 30 min, Pro at 200 MB / 120 min. Long depositions or interviews may exceed Free. Upgrade for higher ceilings, or trim locally with audio-trimmer (which is also client-side).
Locked-down browser blocks the audio context
Render errorIf a hardened environment disables the Web Audio API, the tool reports it can't decode ("Web Audio API not supported"). Use a standard browser profile; the audio context is required to read samples.
Confidential codec won't decode
Decode errorBrowser-native decoding may not handle every container. Converting first means re-encoding — if policy forbids that, decode on a permitted machine. Otherwise convert locally with a JAD converter such as wav-to-flac, which is also client-side.
Image needs to hide content (redaction)
Out of scopeA waveform shows amplitude shape, not speech — but it can hint at when someone spoke. This tool doesn't redact. To bleep spoken PII in the audio itself, use the PII audio redactor.
Stereo recording shown as one wave
By designChannels are averaged to mono before drawing. For dual-lane visuals (e.g. two-mic interviews) split first with channel-splitter, then render each channel separately.
Need a transparent or vector export for a report
Not supportedOutput is opaque raster PNG/JPG. There's no transparent PNG and no SVG. Set a report-matching background, or render a large PNG and scale it in your document tool.
Frequently asked questions
Is my audio uploaded to make the waveform?
No. The file is decoded and drawn entirely in your browser via the Web Audio API and an HTML canvas. No audio is transmitted to any server, and no audio file is written.
How can I verify nothing is uploaded?
Open your browser's DevTools Network panel before processing. You'll see no outbound request carrying the audio — only static assets and, if you're signed in, an optional usage-count ping (no content).
Is anything stored on your servers?
Only a per-file usage counter for signed-in dashboard stats — never the audio or the image. You can opt out in account settings. There is no server-side copy of your recording.
Can I use this for legal or medical recordings?
Yes — that's the point of the no-upload model. The audio stays on your device. Still follow your own data-handling policy for the downloaded image, which becomes an ordinary local file.
Does it work offline / on a restricted network?
After the page has loaded, the decode and canvas render run locally, so it works with outbound requests blocked. Only the optional count ping would fail, which doesn't affect the image.
Does generating the waveform modify my recording?
No. The tool reads samples to draw an image; it never re-encodes or overwrites the source. Your original audio is byte-for-byte unchanged.
Can a waveform leak sensitive content?
A waveform shows loudness over time, not words, but it can reveal when sounds occurred. If that matters, treat the image as sensitive too. To remove spoken PII from the audio, use the PII audio redactor.
Why is my stereo interview shown as one wave?
The tool down-mixes to mono before drawing. For separate channels (e.g. two-mic captures), split with channel-splitter and render each side.
Can I export a transparent PNG or SVG for a report?
No. Exports are opaque raster PNG or JPG. Pick a background colour that matches your document, or render a large PNG and scale it.
Is there a file-size limit for sensitive recordings?
Free allows 50 MB / 30 min; Pro 200 MB / 120 min; Pro-media and Developer 100 GB with no duration cap. Trim long recordings locally with audio-trimmer if needed.
What if the file won't decode?
Browser-native decoding doesn't cover every codec. Converting first means a re-encode — do it on a permitted machine, or use a client-side JAD converter like mp3-to-wav. Then generate the waveform.
What audio formats can I visualise?
Whatever your browser decodes natively — generally MP3, WAV, FLAC, M4A/AAC, OGG, and Opus on modern browsers.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.