How to create a waveform thumbnail for your podcast — free
- Step 1Drop the episode audio — Add the episode (MP3, WAV, FLAC, M4A/AAC, OGG, or Opus). It decodes locally via the Web Audio API and is never uploaded. For a clip, trim first with audio-trimmer.
- Step 2Set the canvas to your art size — For a cover-art accent use a square-ish 1080×1080; for an audiogram use a wide 1600×400. Width range is 320–3840, height 80–1080. Wider canvases keep detail on long episodes.
- Step 3Pick the style —
bars(andfilled) give the classic solid podcast-player look;linegives a thinner accent that reads well as a header stripe over text. - Step 4Apply your brand colours — Set the wave Color and the Background to your show palette. Remember the export is opaque — there's no transparent PNG — so pick a background that matches your card layout.
- Step 5Choose PNG or JPG — PNG for crisp layering in your cover-art tool; JPG (quality 0.1–1) when you're posting a wide audiogram and want a smaller file.
- Step 6Download the thumbnail — The image downloads as
<episode>-waveform.png(or.jpg). Drop it into your podcast host's episode-art field, show notes, or video editor for an audiogram.
Recommended sizes by use
Practical canvas sizes for podcast assets. All within the 320–3840 × 80–1080 range.
| Use | Width × Height | Style | Format |
|---|---|---|---|
| Cover-art accent (square crop) | 1080 × 1080 | bars | png |
| Episode card / social | 1500 × 500 | bars | jpg |
| Show-note header stripe | 1200 × 200 | line | png |
| Audiogram strip | 1600 × 400 | filled | jpg |
| Wide banner / long episode | 3840 × 480 | bars | png |
What the styles look like
Pick the visual weight that fits your layout. Bars and filled render the same solid envelope.
| Style | Look | Good for |
|---|---|---|
| bars | Solid amplitude blocks | Player-style cover accents |
| filled | Same solid envelope as bars | Bold audiogram fills |
| line | Thin single peak line | Subtle header stripes over text |
Tier limits for episode audio
Per-file caps from lib/tier-limits.ts. Long episodes may exceed the Free duration cap.
| 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 for the podcast assets you actually ship. Output is an image named <episode>-waveform.png or .jpg.
Square cover-art accent
A square waveform you can layer over your episode cover background in any design tool. Keep it bold so it reads at thumbnail size.
Input: episode-42.mp3 (38 min) Width: 1080 Height: 1080 Style: bars Color: #ffd166 (show yellow) Background: #1d1d2b (show navy) Format: png Output: episode-42-waveform.png
Audiogram strip for a clip
Trim a quotable 30–60s clip first, then render a wide strip to drop into a video audiogram with a moving playhead in your editor.
Step 1: audio-trimmer -> clip.mp3 (45 s) Step 2: waveform generator Width: 1600 Height: 400 Style: filled Format: jpg (0.9) Output: clip-waveform.jpg -> overlay in your video editor
Subtle show-note header
A thin line wave makes a clean divider at the top of show notes without competing with the text.
Width: 1200 Height: 180 Style: line Color: #94a3b8 (muted grey) Background: #0f172a Format: png Output: a quiet header stripe
Long-episode banner
For a feature episode, render at maximum width so the hour-long waveform still shows shape rather than a solid bar.
Input: feature.mp3 (1h 02m) -> needs Pro (120 min cap) Width: 3840 Height: 480 Style: bars Format: png Wide canvas keeps the episode's dynamics visible.
Brand-matched JPG for social
Use your exact brand hexes and export JPG so the post uploads fast.
Color: #e11d48 (brand red) Background: #fff1f2 (brand wash) Width: 1500 Height: 500 Format: jpg (0.85) Output: light, on-brand episode card image
Edge cases and what actually happens
Episode longer than the Free duration cap
RejectedFree caps audio at 30 minutes (and 50 MB). A typical 45–60 min episode exceeds this and is rejected. Upgrade to Pro (120 min / 200 MB), use Pro-media/Developer for no duration cap, or render a trimmed clip via audio-trimmer.
Hour-long episode looks like a solid block
ExpectedAt small widths, thousands of samples fold into each column and peaks fill the canvas. For long episodes render wide (up to 3840) so the waveform keeps its shape.
Stereo episode shows one wave, not L/R
By designChannels are down-mixed to mono before drawing. Most podcasts are effectively mono speech anyway. If you specifically need separate channels, split first with channel-splitter.
Wanted a circular waveform for cover art
Not supportedOnly bars, line, and filled exist — all horizontal. There is no radial/circular mode. Design your cover around a horizontal wave, or composite it into a circular frame in your art tool.
Need a transparent thumbnail over a photo
Not supportedExports are opaque — the background colour is painted first. Set the background to match your cover, or knock out the background later in an image editor for an overlay.
Wanted an SVG for infinite scaling
Not supportedOutput is raster PNG/JPG only. Render a large PNG (up to 3840×1080) and scale down in your layout for crispness.
Cover-art file won't decode
Decode errorDecoding uses the browser's native decoder. An unusual or DRM-protected episode file may fail to decode. Convert it first — e.g. m4a-to-mp3 — then generate the waveform.
Quality slider has no effect on the PNG
By designPNG is lossless; the quality slider only applies to JPG. Switch the format to JPG to make episode-card images smaller.
Frequently asked questions
What size should a podcast waveform thumbnail be?
For a square cover-art accent, 1080×1080. For an episode card or social post, 1500×500. For a show-note header, 1200×200. The tool renders at whatever width (320–3840) and height (80–1080) you set.
Can I match my show's brand colours?
Yes. The Color picker sets the wave and the Background picker sets the canvas. Both accept any hex value, so you can use your exact brand palette.
Will my unreleased episode be uploaded anywhere?
No. The episode is decoded and drawn locally in your browser — nothing is uploaded and no audio file is created. Only the image you download leaves the page (to your Downloads).
Can I make a circular waveform like some apps show?
No. Only horizontal styles exist — bars, line, and filled. There is no radial/circular mode. You can composite a horizontal waveform into a circular frame in a separate design tool.
How do I make an audiogram?
Trim a clip with audio-trimmer, render a wide waveform (e.g. 1600×400, JPG), then overlay it on a background with a moving playhead in your video editor. This tool produces the still waveform image.
My full episode is too long for the Free tier — what now?
Free caps at 30 minutes / 50 MB. Either render a trimmed clip, or upgrade to Pro (120 min / 200 MB). Pro-media and Developer remove the duration cap entirely.
Can I get a transparent PNG to layer over my cover photo?
No transparency — the background colour is filled before drawing, so exports are opaque. Set the background to match your cover, or remove it later in an image editor.
Why does the waveform show one wave for my stereo recording?
The tool down-mixes to mono before drawing. Speech podcasts are usually mono anyway. For separate left/right images, split first with channel-splitter.
Bars or line — which for show notes?
Line for a subtle header stripe above text; bars (or filled) for a bold accent that reads at thumbnail size. Bars and filled render the same solid envelope.
Does generating the thumbnail change my episode file?
No. The tool only reads samples to draw the image; it never re-encodes or overwrites your audio.
Can I also pull the existing cover image from the MP3?
Yes — use the album art extractor to save embedded cover art, and the ID3 editor to set tags. The waveform tool only creates the wave image.
What format should I export for my podcast host?
Most hosts accept PNG and JPG for episode art. Use PNG for crisp layering work; JPG when you want a smaller, web-friendly file for social cards.
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.