How to expand mono audio to stereo — browser tool, no upload
- Step 1Confirm the file is actually mono — Check the channel count in your editor or with
ffprobe(channels: 1). If it already reports 2 channels, the rejection is about something else — bitrate, sample rate, or container — and this tool won't help; use a converter or bitrate-changer instead. - Step 2Drop the mono file in — Drag your MP3, WAV, FLAC, M4A, OGG, Opus, or video file onto the tool. FFmpeg WebAssembly decodes it locally — no upload, so unreleased or client audio stays private.
- Step 3Choose Duplicate for maximum compatibility — Select Duplicate (true mono → stereo) in the Mode selector. This is the safe default for passing a stereo-input requirement: it copies mono to both channels (
-ac 2) without altering the sound. - Step 4Use Pseudo-stereo only if the platform wants real width — If you are submitting music-style content where a flat dual-mono image is undesirable, choose Pseudo-stereo (Haas widen ~15 ms). Avoid it for speech — the delay damages playback on the mono speakers many listeners use.
- Step 5Process and check the channel count — Run the conversion. Verify the output reports 2 channels (media player channel indicator or
ffprobe). The output keeps your source container so it matches the platform's accepted format list. - Step 6Re-upload the expanded file — Submit the new 2-channel file. If the platform still flags it, see the edge cases — the issue is usually identical-channel detection or a different spec field (sample rate, bitrate, loudness).
Which mode satisfies which requirement
Pick based on what the platform actually wants. Most "stereo required" gates only check channel count, which Duplicate satisfies.
| Platform requirement | Right mode | Why |
|---|---|---|
| "Stereo / 2-channel required" (channel-count check) | Duplicate | Produces a 2-channel header; sound unchanged, mono-sum safe |
| Spoken-word / podcast that mandates stereo | Duplicate | Identical channels protect playback on mono phone/smart speakers |
| Music submission wanting width-bearing stereo | Pseudo-stereo | Haas 15 ms delay gives perceived width on stereo systems |
| DAW won't import mono into a stereo track | Duplicate | 2-channel file drops straight into a stereo lane |
| Rejection mentions bitrate / sample rate / loudness | Neither — wrong tool | Use bitrate-changer, sample-rate-converter, or loudness-normalizer |
Input format → output container
This page exposes only the Mode control; the output container follows the input extension.
| Input | Output | Encoder | Lossy/Lossless |
|---|---|---|---|
| MP3 | MP3 | libmp3lame | Lossy (re-encode) |
| M4A | M4A | aac | Lossy (re-encode) |
| OGG | OGG | libvorbis | Lossy (re-encode) |
| Opus | Opus | libopus | Lossy (re-encode) |
| WAV | WAV | pcm_s16le | Lossless |
| FLAC | FLAC | flac | Lossless |
Tier limits
Size and duration are enforced independently — long files can fail on duration even under the size cap.
| Tier | Max size | Max duration | Batch |
|---|---|---|---|
| Free | 50 MB | 30 min | 1 |
| Pro | 200 MB | 120 min | 10 |
| Pro-media | 100 GB | Unlimited | 100 |
| Developer | 100 GB | Unlimited | Unlimited |
Cookbook
Real upload-rejection scenarios and the exact mode that clears them.
Video editor refuses a mono clip in a stereo timeline
Many NLEs let you place mono on a mono track but block it from a stereo track, or down-mix unexpectedly. Expand to a 2-channel file first and the clip drops in cleanly.
Symptom: clip greyed out / 'incompatible channel layout' source.wav → channels: 1 Fix — Mode: Duplicate -i source.wav -ac 2 -c:a pcm_s16le source-stereo.wav → channels: 2, places into the stereo track
Podcast distributor rejects mono MP3
A distributor's spec says 2-channel. Speech belongs in Duplicate — never Pseudo-stereo — so the episode plays correctly on the mono speakers most listeners use.
Distributor: 'audio must be stereo' episode.mp3 → channels: 1 Mode: Duplicate (NOT Pseudo-stereo for speech) -i episode.mp3 -ac 2 -c:a libmp3lame episode-stereo.mp3 → channels: 2, L == R, safe on mono playback
DAW import slot greys out the mono stem
Some DAWs only show stereo files in a stereo import slot. Duplicate produces a 2-channel WAV that appears and imports normally.
Before: vocal_stem.wav → 1 ch (greyed out in stereo slot) Mode: Duplicate → vocal_stem-stereo.wav → 2 ch Now selectable in the stereo import dialog.
Music loop wants perceived width before upload
A library or beat-store upload expects stereo with some width. Pseudo-stereo adds a Haas effect — acceptable for instrumental loops, where mono-sum comb-filtering matters less than for speech.
Mode: Pseudo-stereo (Haas widen ~15 ms) loop.wav (1 ch) → loop-widened.wav (2 ch) Right delayed 15 ms → wider image on stereo systems Caveat: thinner if a listener plays it back in mono
Rejection that this tool can't fix
If the error is about bitrate, sample rate, or loudness rather than channels, expanding to stereo won't help — route to the correct tool.
'Sample rate must be 48 kHz' → /audio-tools/sample-rate-converter 'Loudness must be -16 LUFS' → /audio-tools/loudness-normalizer 'Bitrate too high/low' → /audio-tools/bitrate-changer
Edge cases and what actually happens
Platform still rejects after expanding to stereo
Different spec fieldIf the rejection persists, the requirement was probably not channel count. Check sample rate (sample-rate-converter), bitrate (bitrate-changer), or loudness (loudness-normalizer). Expanding to stereo only fixes a channel-count gate.
Host detects identical-channel content as mono
Identical-channel detectionDuplicate produces a real 2-channel header, but a strict validator may inspect samples, see L == R, and still treat it as mono. If a host requires differing channels, only Pseudo-stereo yields non-identical channels — but that is Haas width, not true stereo, and is a poor fit for speech.
Source is already stereo
By designIf ffprobe shows 2 channels, the file is already stereo and this tool is the wrong fix. Whatever the platform is complaining about, it isn't channel count. To rearrange existing channels, use channel-splitter or audio-merger.
Pseudo-stereo on a spoken-word file
Avoid for speechThe Haas 15 ms delay comb-filters when the two channels are summed to mono, which thins the voice on phones, earpieces, and mono smart speakers. For any speech submission, use Duplicate, not Pseudo-stereo.
File over the duration cap
Limit reachedDuration is enforced separately from size. A long episode can pass the 50 MB free-tier size cap yet exceed the 30-minute duration cap. Pro allows 120 min, Pro-media and Developer unlimited. Split first with audio-splitter if needed.
Lossy re-encode on MP3/AAC/OGG/Opus
Generation lossExpanding a lossy file decodes and re-encodes, adding slight generation loss. Inaudible for one pass in most cases, but avoid stacking conversions before a final upload. Convert from a lossless master where possible.
Wrong container expected by the platform
Format mismatchOutput keeps the input container. If the platform wants MP3 but you fed it a WAV, you'll get a WAV back. Convert the format separately (e.g. wav-to-mp3) before or after expanding to stereo.
Decode failure on a damaged export
Decode errorFFmpeg must decode the input first; a truncated or protected file errors before producing output. Re-export a clean file from your recorder or editor and retry.
Frequently asked questions
Why does a platform reject my mono file?
Some hosts, editors, and DAWs validate the file's channel count and require 2 channels. The audio is fine; the layout isn't. Expanding to stereo with Duplicate gives the file a genuine 2-channel header so it passes the check.
Will expanding to stereo change how my recording sounds?
In Duplicate mode, no — the mono signal is copied to both channels unchanged, so it sounds identical (just centred across two speakers). Pseudo-stereo adds a Haas width effect and does change the sound, and can degrade mono playback.
Which mode should I use to pass a 'stereo required' check?
Duplicate. It is the safe, compatibility-first choice: it satisfies the channel-count requirement, keeps the audio unchanged, and sums back to mono cleanly. Reserve Pseudo-stereo for music-style content that genuinely needs perceived width.
The platform still says mono after I converted — why?
It is likely inspecting the samples and seeing identical Left and Right channels (effective-mono), which Duplicate produces by design. If it truly requires differing channels, Pseudo-stereo creates non-identical channels via a Haas delay — but that is perceived width, not true stereo, and isn't ideal for speech.
Does the file get uploaded anywhere?
No. Conversion runs entirely in your browser with FFmpeg WebAssembly, so unreleased tracks and client work never leave your device. See the no-upload spoke for the privacy details.
What if the rejection is about bitrate or sample rate, not channels?
Then this tool won't help. Use bitrate-changer, sample-rate-converter, or loudness-normalizer depending on the exact spec the platform reports.
What output format will I get?
The same container as your input — MP3 in/MP3 out, WAV in/WAV out, and so on. The Mode selector is the only control on this page; format follows the source file.
Can I expand several files at once?
mono-to-stereo runs one file at a time. Process them sequentially. Higher tiers raise per-tool batch ceilings on multi-file tools, but this tool itself is single-file.
Is there a duration limit?
Yes, and it is separate from the size limit. Free allows 30 minutes per file, Pro 120 minutes, Pro-media and Developer unlimited. A long file can pass the size cap but fail on duration.
What input formats are supported?
MP3, WAV, FLAC, M4A, OGG, Opus, and video files (the audio track is extracted). All decoded in-browser by FFmpeg 8.1.
Is this free?
Yes, within the free tier (50 MB / 30 min per file), with no account, watermark, or upload.
My DAW shows the mono file greyed out — does this fix it?
Usually yes. DAWs that hide mono files from a stereo import slot will accept a 2-channel file. Run Duplicate, then re-open the import dialog and the file should be selectable.
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.