stereo2mono
stereo2mono is a batch file utility app designed for clean delivery prep. It scans a folder of audio files and automatically detects stereo files that contain mono audio, converts them to true mono, and keeps real stereo files stereo.
It can also detect panned mono and one-sided stereo files and convert them to mono, join matching mono left/right files into stereo, standardise sample rate, convert bit depth, peak-normalise to a chosen dBFS target, and write everything into a predictable output folder with a detailed run log.
WHAT IT DOES
- Detects stereo files that contain mono audio, where left and right carry the same signal.
- Converts detected dual-mono stereo files to true mono by keeping the LEFT channel.
- Keeps real stereo files stereo.
- Optionally detects panned mono stereo (correlated L/R at different levels) and converts it to mono by averaging L+R.
- Optionally detects stereo files with one silent side and converts them to mono using the active side.
- Optionally joins matching mono L/R file pairs into true stereo files.
- Optionally resamples all outputs to a chosen sample rate, from 44.1k up to 192k.
- Optionally converts bit depth: Preserve, 16-bit, 24-bit, or 32-bit float.
- Optionally normalises peak level to a selectable dBFS target.
- Optionally detects clipped files and applies a tiny safety attenuation during processing.
- Optionally scans and processes subfolders as well as the selected parent folder.
- Writes everything into an output folder named s2m inside the selected folder, preserving subfolder structure.
- Generates a detailed run log in the s2m folder, shows live progress and a summary inside the app, and lets you save the visible terminal log as a .txt file at any time.
OPTIONAL UTILITIES
- Prefix index prepends filenames with 001-style numbering, based on processing order.
- Append _MONO adds
_MONO to files that were converted to mono.
- Detect byte-identical duplicates and empty files during preflight, with the option to skip them during processing.
- SAVE LOG saves the visible terminal log as a .txt file at any moment.
- Join L/R mono pairs joins matching mono left/right files into stereo.
- Strip silent stereo side converts one-sided stereo files to mono.
- Pan Bias detects correlated panned mono and converts it to mono.
SYSTEM REQUIREMENTS AND SUPPORTED FILES
- Supported audio formats: WAV (
.wav, .wave) and AIFF (.aif, .aiff).
- Supported channels: mono (1 channel) and stereo (2 channels).
- Multi-channel files over 2 channels are skipped.
QUICK START
- Launch stereo2mono.
- Drag a folder onto the Drag & Drop area, or click the area to choose a folder.
- The app runs a Preflight Scan first, showing a file list and a Preflight Summary that previews exactly what will happen.
- Review your settings, including sample rate, bit depth, and normalisation.
- Click START to process.
- When finished, you will hear a completion sound and see a completion dialog. Click SHOW FOLDER to open the output location.
MAIN INTERFACE
- DRAG & DROP AREA accepts a folder or an audio file. If an audio file is selected, stereo2mono uses its parent folder. Starting a new folder selection automatically clears previous preflight results and runs a fresh preflight.
- START / STOP controls scanning and processing. When the button reads START, it acts as a smart continue button: if no folder is selected, it opens the folder picker; if a folder is selected but no preflight has run, it launches the Preflight Scan; if preflight results already exist, it begins processing.
- STOP immediately stops whichever process is running, preflight or processing, and returns the app to the "Files ready..." state so you can adjust settings and start again.
- SHOW FOLDER stays disabled until a processing run has finished, since there is no output folder to reveal yet. Once enabled, it opens the newly created output folder: s2m, s2m_2, s2m_3, and so on.
- SAMPLE RATE lets you choose Preserve, 44.1k, 48k, 88.2k, 96k, or 192k. Preserve keeps each file's original sample rate, while a specific rate resamples every output file to that target.
- BIT DEPTH offers Preserve, 16-bit, 24-bit, or 32-bit float. Preserve keeps the original bit depth when a file has to be rewritten. If the source bit depth is unavailable or unknown, the app falls back to a safe practical choice, typically 24-bit.
- SAVE LOG appears after preflight or processing has produced terminal output, and saves the visible terminal log as a .txt file whenever you choose.
- Add sequential number prefix prepends a three-digit index to output filenames, for example
001, 002, 003, based on processing order.
- Skip empty files and duplicates hashes files and reports byte-identical duplicates or empty files during preflight. When enabled, it skips empty files and duplicates during processing.
- Mono & stereo files in the same folder changes output organisation. When off, the app creates
s2m/Mono Files/... and s2m/Stereo Files/.... When on, it creates only s2m/... and writes mono and stereo outputs into the same mirrored folder tree.
- Normalise to X dBFS enables peak normalisation to the selected target, defaulting to -3.0 dBFS peak.
- Normalise target ranges from -24.0 dBFS to 0.0 dBFS in 0.1 dB steps. In this build, the numeric box is display-only and the slider is the actual control. Moving the slider automatically turns normalisation on, so you can't set a target without it being applied.
ADVANCED PANEL
Open the Advanced panel by clicking the large hit area over the top-left logo; it opens a settings panel containing detection controls, output routing, additional settings and licensing. Most settings are already fine-tuned for ideal results, but they can be adjusted depending on your workflow.
- CORRELATION THRESHOLD (default 0.99) controls how strictly the app decides that left and right are effectively the same. Higher values are stricter, so fewer files get flagged as dual-mono, while lower values are more permissive. If true stereo files are being incorrectly converted, raise the threshold slightly. If obvious dual-mono is not being detected, lower it slightly and re-test.
- SIDE MID TRIGGER (dB) (default -50.0 dB) is the median Side/Mid ratio in dB used by the detector. More negative values mean "more mono." If dual-mono files contain tiny L/R differences (noise, dither, encoding quirks) and are not detected, try a less strict value, for example -45 dB. If you only want extremely clean dual-mono conversions, make it stricter, for example -60 dB.
- CHUNK SECONDS (default 3.0 s) sets the analysis window length used during detection; the app analyses the file in chunks and uses the median of the measured values to make a stable decision. Shorter chunks react more to short-term changes, sometimes increasing false positives or negatives on busy material, while longer chunks smooth things out but can blur small stereo differences.
- PAN BIAS (default OFF) detects correlated stereo files where left and right carry the same mono source at different levels. Higher values allow a wider L/R level difference, up to 24 dB. When detected, stereo2mono converts the file to mono by averaging L+R and adds a
_MONO_panL or _MONO_panR suffix with the estimated pan amount.
- Append _MONO adds
_MONO before the extension when files are converted to mono, including dual-mono and other mono-conversion outputs.
- Join L/R mono pairs detects matching mono left/right files and joins them into a true stereo file. Supported suffixes include L/R, _L/_R, -L/-R, .L/.R, and bare L/R endings. Both files must be mono, use the same sample rate, and be within 10 ms of each other. Joined outputs are named with _ST before the extension.
- Strip silent stereo side detects stereo files where one side is active and the other side is silent, then converts the file to mono using the active side. This is separate from dual-mono detection.
- Detect duplicates and empty files hashes files and reports byte-identical duplicates or empty files during preflight. If Skip empty files and duplicates is enabled, those files are skipped during processing.
- Detect clipped files reports clipped files during preflight. During processing, clipped files receive a tiny safety attenuation of -0.01 dB.
- Scan and process subfolders controls whether stereo2mono scans the whole folder tree or only the top level of the selected folder. When enabled, subfolders are included and mirrored in the output. When disabled, only audio files directly inside the selected folder are processed.
LICENSE SECTION
On first launch without a license, stereo2mono shows the license splash and asks for a license key.
- Paste the license key into the box and press AUTHORISE.
OUTPUT BEHAVIOUR
- OUTPUT ROOT creates an output folder called s2m inside the chosen folder. If that name already exists, the app creates s2m_2, then s2m_3, and so on to avoid overwriting previous runs.
- PATH MIRRORING preserves the original folder structure under the output root. For a source file at
ROOT/Sub/Path/File.wav, the default split mode outputs to ROOT/s2m/Mono Files/Sub/Path/File.wav for mono results and ROOT/s2m/Stereo Files/Sub/Path/File.wav for stereo results. If "keep same folder" is enabled, both mono and stereo outputs go to ROOT/s2m/Sub/Path/File.wav.
- COPY vs REWRITE decides whether files can be copied bit-perfectly or must be rewritten. A file is copied only when no resampling is requested, no bit depth conversion is requested, normalisation is off, and, for stereo files, the file is not flagged as dual-mono. If any of those conditions are not met, the file is rewritten.
- STEREO2MONO CONVERSION OUTPUT makes a mono file from the LEFT channel when a stereo file is flagged as dual-mono. If
_MONO naming is enabled, the suffix is applied to the converted output. If normalisation is enabled, gain is calculated from the stereo peak, the max of L and R, even though the output is mono.
- PANNED MONO OUTPUT makes a mono file by averaging L+R when Pan Bias detects a highly correlated panned mono stereo file. The output is named with
_MONO_panL or _MONO_panR plus the estimated pan amount.
- SILENT-SIDE OUTPUT makes a mono file from the active side when Strip silent stereo side is enabled and one side is silent: from LEFT if the left side is active, from RIGHT if the right side is active.
- L/R PAIR OUTPUT joins matching mono left/right files into a stereo file, named with
_ST before the extension. If the two sides differ slightly in length but stay within the 10 ms tolerance, the shorter side is padded.
TERMINAL AND LOG
- PREFLIGHT TERMINAL shows the selected folder path, total supported file count, and a running "Reading..." list that includes each file's channel type and size.
- PREFLIGHT SUMMARY describes what will happen when you press START, including mono conversions, L/R pair joins, silent-side stripping, panned-mono conversion, resampling, bit-depth conversion, normalisation, clipped files, empty files, and duplicates. Long lists are shortened on-screen, but the saved log keeps the full detail.
- RUN LOG writes a timestamped log file inside the s2m output folder. The log includes settings used, the full preflight detail, and a per-file record with source path, technical info, median correlation, Side/Mid values, active and ignored chunks, the decision made, and exact output path(s).
- DEETS SUMMARY at the end of the log lists conversions, L/R joins, silent-side and panned-mono conversions, copies, rewrites, skips, errors, and chosen output format settings.
PRACTICAL RECIPES
- Clean deliverables, keep originals untouched: leave Sample Rate and Bit Depth on Preserve, turn Normalise off, and use dual-mono detection to convert only fake-stereo files while copying everything else.
- Standardise everything to 48k / 24-bit: set Sample Rate to 48k and Bit Depth to 24-bit, with optional normalisation such as -3 dBFS peak depending on your delivery spec.
- Create 16-bit delivery files: set Bit Depth to 16-bit, choose the required sample rate, and enable normalisation only if the spec requires it.
- Deliver mono and stereo together for assembly workflows: enable Mono & stereo files in the same folder, and optionally enable prefix indexing so the output folder is naturally ordered.
- Audit messy libraries: enable duplicate/empty detection, run preflight, and check the duplicates section. Use SAVE LOG or the run log for full duplicate group listings.
- Join split stereo recordings: enable Join L/R mono pairs when matching mono files use L/R-style suffixes and need to become true stereo files.
- Clean one-sided stereo exports: enable Strip silent stereo side when stereo files contain audio on only one side.
- Catch panned mono exports: raise Pan Bias above OFF when mono material has been printed as stereo with a left/right level offset.
TROUBLESHOOTING
- If you see No supported audio files found, the folder contains no supported extensions (
.wav, .wave, .aif, .aiff) or the files are inside an ignored folder whose name starts with S2M.
- If SHOW FOLDER is disabled, you have not finished a processing run yet; preflight alone does not enable it.
- If some files are missing from output, multi-channel files are skipped by design, and corrupt or unreadable files may fail during read/write. Check the run log for per-file errors.
- If a panned mono file became mono but you wanted it kept stereo, turn Pan Bias off.
- If a stereo file got converted but it should not have, raise Correlation Threshold, make Side Mid Trigger more strict (more negative), turn Pan Bias off, or increase Chunk Seconds.
- If two mono files became one stereo file, Join L/R mono pairs is enabled and stereo2mono found a matching left/right pair.
- If a stereo file with one silent side became mono, Strip silent stereo side is enabled and stereo2mono kept the active channel.
- If an L/R pair was not joined, both files must be mono, have matching sample rates, use a supported L/R suffix pattern, and be within 10 ms of each other.
- If preflight warns about large files, files over 512 MB were found. Processing still works, but resampling those files may use more RAM.
- If a dual-mono file stayed stereo, lower Correlation Threshold slightly, make Side Mid Trigger less strict (less negative), or shorten Chunk Seconds if only some sections reveal the mono nature.
- If you are wondering Why LEFT channel only?, it is a fixed rule in this build. Dual-mono conversion takes the LEFT channel; averaging L+R would be a feature change rather than a setting here.
NOTES AND LIMITATIONS
- The detector is intentionally stable and conservative by using median values across analysis chunks.
- The app never processes in-place. It always writes to a new s2m output folder, leaving the original files untouched.
- Metadata is passed through on a best-effort basis and can depend on the container or format.
- Duplicate detection is strictly byte-identical and is not similar-audio-content matching.
- Settings are remembered between launches.
- Pan Bias detects strongly correlated panned mono, not every possible stereo balance issue.
- L/R mono pair joining depends on filename suffixes and strict technical matching.