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 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 resamples all outputs to a chosen sample rate, from 44.1k up to 192k.
- Optionally converts bit depth: Preserve, 24-bit, or 32-bit float.
- Optionally normalises peak level to a selectable dBFS target.
- Writes everything into an output folder named S2M inside the selected folder, preserving subfolder structure.
- Generates a detailed run log in the S2M folder and shows live progress and summary inside the app.
OPTIONAL UTILITIES
- Prefix index prepends filenames with 000-style numbering.
- Append _MONO adds
_MONO to files that were converted to mono.
- Detect byte-identical duplicates reports duplicates in the selected folder.
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. 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, 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, usually 24-bit.
- Add sequential number prefix prepends a three-digit index to output filenames, for example
000, 001, 002, 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 -12.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.
ADVANCED PANEL
Open the Advanced panel by clicking the large invisible hit area over the top-left branding/license region. It opens a settings panel containing detection controls, output routing, and licensing. Most settings are already fine-tuned for ideal results, but they can be adjusted if needed.
- CORRELATION THRESHOLD controls how strictly the app decides that left and right are effectively the same. The default is 0.9990. Higher values are stricter, while lower values are more permissive. If true stereo files are being incorrectly converted, raise the threshold slightly. If obvious dual-mono files are not being converted, lower it slightly and re-test.
- SIDE MID TRIGGER (dB) is the median Side/Mid ratio in dB used by the detector. The default is -50.0 dB. More negative values mean "more mono." If dual-mono files contain tiny L/R differences and are not detected, use a less strict value such as -45 dB. If you only want extremely clean dual-mono conversions, make it stricter, for example -60 dB.
- CHUNK SECONDS sets the analysis window length used during detection. The default is 3.0 s. Shorter chunks react more to short-term changes, while longer chunks smooth things out.
- Append _MONO renames only files converted from dual-mono stereo to mono, adding
_MONO before the extension.
- Detect duplicates and empty files hashes files and reports byte-identical duplicates or empty files during preflight.
- Detect clipped files reports clipped files during preflight and applies a -0.1 dB safety margin to clipped files during processing.
LICENSE SECTION
The license area shows whether the app is licensed, including name, email, and registration timestamp, or in DEMO MODE when no license is found.
- Click ADD LICENSE to authorise.
- Click REMOVE LICENSE to remove your own license.
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.
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 which files will be converted to mono, resampled, bit-depth converted, normalised, and any duplicate groups if duplicate detection is enabled.
- RUN LOG writes a timestamped log file inside the S2M output folder. The log includes settings used, the full preflight listing, and a per-file record containing source path, technical info, median correlation and Side/Mid values, the decision made, and exact output paths.
- DEETS SUMMARY at the end of the log includes totals for 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.
- Deliver mono and stereo together for assembly workflows: enable Keep MONO and STEREO files in the same folder, and optionally enable prefix indexing.
- Audit messy libraries: enable duplicate detection, run preflight, and check the duplicate section. Use the log for full duplicate group listings.
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, or you stopped before the output root was registered.
- If some files are missing from output, multi-channel files may have been skipped by design, or corrupt/unreadable files may have failed during read/write. Check the run log for per-file errors.
- If a stereo file got converted but it should not have, raise Correlation Threshold, make Side Mid Trigger more strict, or increase Chunk Seconds.
- If a dual-mono file stayed stereo, lower Correlation Threshold slightly, make Side Mid Trigger less strict, 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.
- 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.