Batch Channel & Format Exporter

Batch-exports selected Sound objects to WAV, AIFF, or MP3 with flexible channel handling: mono mixdown, stereo conversion, keep multichannel, or split into separate mono files. Intelligent error handling, optional sequential renaming, and no destructive changes to original objects.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 1.2 (2026) License: MIT License Repo: https://github.com/ShaiCohen-ops/Praat-plugin_AudioTools
Contents:

What this does

This script batch-exports the Sound objects currently selected in the Praat Objects window. No files are read from disk: load your sounds into Praat (via import, recording, or processing), select them in the object list, then run the script. For each selected Sound the script applies the chosen channel mode (mono mixdown, stereo, keep multichannel, or split channels) and saves the result to the chosen output folder. Original objects are never modified or removed.

Why use this script? You have multiple processed sounds in Praat (e.g., after applying filters, resynthesis, or analysis). You need to export them to a standard audio format for use in a DAW, video editor, or website. This script lets you set the channel configuration once and export everything in one go — with intelligent collision handling and MP3 support (Praat 6.4+). No more clicking "Save as WAV file" fifty times.

Key Features:

MP3 note: Praat 6.4+ (late 2023) can save MP3 directly via "Save as highest quality MP3 file". If you run this script on an older Praat version, the script automatically saves as WAV instead (lossless fallback), reports which files were affected, and prints an ffmpeg conversion command at the end.

Quick start

  1. Load or generate sounds in Praat (e.g., record, read from file, or process with other AudioTools scripts).
  2. In the Praat Objects window, select the Sound objects you want to export (click + shift-click or ctrl-click for multiple).
  3. Run script…Batch_Channel_Format_Exporter.praat.
  4. Choose output folder (either type a path or tick "Choose folder in dialog" to browse).
  5. Select Channel mode (Mono / Stereo / Keep / Split).
  6. Select Output format (WAV / AIFF / MP3).
  7. Optionally enable Rename sequentially (files become 01.wav, 02.wav, etc.) and/or Overwrite existing files.
  8. Click OK — script exports all selected sounds, showing progress in the Info window.
Quick tip: Use Split multichannel to turn a 4-channel surround file into four mono WAVs (ch1.wav, ch2.wav, …). Use Mono (mix down) to convert stereo recordings to mono before exporting. Enable Rename sequentially when you need numbered files for a video editor timeline. The script never modifies your original Praat objects — only exports copies.
Important: The script exports currently selected sounds only, not all sounds in the Objects window. If you accidentally select a TextGrid or other non-Sound object, the script will ignore it (only Sound objects are processed). The script checks folder existence and write permissions before starting — if the folder doesn't exist or isn't writable, it aborts with a clear error. Overwrite protection is ON by default; enable "Overwrite existing files" only if you want to replace previously exported files.

4 Channel Modes

Mono (mix down)

Converts any multichannel sound to mono by averaging channels. Stereo → mono, 4-channel → mono, etc.

Use when: You need single-channel files for analysis, podcasts, or mono-compatible playback.

Stereo

Forces output to two channels. Mono → stereo (duplicate channel). Multichannel (>2) → keeps channels 1 and 2, drops the rest.

Use when: You need stereo compatibility but your source may have more channels.

Keep multichannel

Saves the sound exactly as is, preserving the original channel count.

Use when: You have multichannel (surround, 5.1, ambisonics) and want to keep the full channel configuration.

Split into separate mono files

Extracts each channel as an individual mono WAV. Files are named basename_ch1.wav, basename_ch2.wav, etc.

Use when: You need to process each channel independently in a DAW or analysis tool.

Channel conversion behaviours:
  • Mono mixdown: All channels averaged (sum / nCh).
  • Mono → Stereo: Duplicate mono to both L and R channels.
  • Multichannel → Stereo: Keep channels 1 and 2, discard channels 3+ (warning printed).
  • Split: Each channel extracted as mono, preserving order.

3 Output Formats

WAV — lossless, universally compatible, largest file size. Recommended for archiving and further processing.
AIFF — lossless, common on macOS, same quality as WAV. Good for Logic Pro or older Mac workflows.
MP3 — lossy compression, small file size, good for distribution. Requires Praat 6.4+; fallback to WAV on older versions.
MP3 fallback behaviour: If you select MP3 but run on a Praat version older than 6.4, the script saves as WAV instead (lossless fallback) for each file. The script prints a summary of how many files fell back and provides ready-to-use ffmpeg commands to convert the WAVs to MP3 afterwards. No data is lost — you get WAVs, and you can convert them later.
Native MP3 quality: Praat's "Save as highest quality MP3 file" uses variable bitrate encoding (typically ~320 kbps VBR). The script does not expose bitrate settings — it uses Praat's default highest quality.

Examples

Example 1: Export stereo recordings to mono for podcast

Scenario: You have 20 stereo interview recordings. You need mono files for a podcast editor.
Settings: Channel mode = Mono, Format = WAV, Rename sequentially = Yes.
Result: 01.wav, 02.wav, … 20.wav, each is mono mixdown of the original stereo.

Example 2: Split 4-channel surround into individual tracks

Scenario: You have a 4-channel ambisonics recording (WXYZ) and need each channel as a separate mono file for analysis.
Settings: Channel mode = Split multichannel, Format = WAV, Rename sequentially = No.
Result: original_ch1.wav, original_ch2.wav, original_ch3.wav, original_ch4.wav.

Example 3: Batch MP3 export for web distribution

Scenario: You have 50 processed sounds ready for a website. You need MP3s with original names, overwriting previous exports.
Settings: Channel mode = Keep multichannel, Format = MP3, Overwrite = Yes.
Result: Each sound exported as same-name.mp3, replacing any existing files.

Example 4: Mono → stereo forced export

Scenario: You have mono recordings but need stereo files for a video editor that expects two channels.
Settings: Channel mode = Stereo, Format = WAV.
Result: Each mono file becomes a stereo WAV with identical L and R channels (duplicated).

Troubleshooting:
"No Sound objects are selected": You must select sounds in the Praat Objects window before running. Click on sound names, use shift+click to select multiple.
"Output folder does not exist or is not writable": Create the folder manually or choose a different folder. The script tests write permissions by creating a temporary probe file.
Files are skipped (already exist): Enable "Overwrite existing files" to replace them. The script never overwrites by default (safety).
MP3 files not created (fallback to WAV): Your Praat version is older than 6.4. The script prints ffmpeg conversion commands at the end — run them in terminal/PowerShell to convert WAVs to MP3.
"Unknown command" errors in Info window: These are usually from `nocheck` commands that failed gracefully (e.g., MP3 save on old Praat). The script continues; check the summary for actual failures.

Options & Safety Features

Folder selection

  • Choose output folder in dialog: Ticking this opens a folder browser after you press OK. Untick to type a path directly.
  • If the field is left empty and the box is unticked, the folder dialog still opens.
  • The script strips trailing slashes automatically (both / and \).

Sequential renaming

When enabled, files are named with zero-padded numbers: 01, 02, 03, … up to the total count. Zero-padding width is calculated automatically (min 2 digits). Without renaming, the script uses the original Sound object name (may cause collisions if two sounds have the same name).

Overwrite protection

By default (Overwrite_existing_files = 0), the script checks if the output file already exists. If it does, the file is skipped (not overwritten). This prevents accidental loss of previously exported files. When enabled ( = 1), existing files are deleted before saving — use with caution.

Error handling summary

ScenarioBehaviourRecovery
Folder doesn't exist / not writableScript aborts before any exportsCreate folder or choose different folder
Output file already exists (overwrite off)Skip that file, continue with nextEnable overwrite or delete files manually
MP3 save fails on old PraatFallback to WAV for that file, continueUpdate Praat or use ffmpeg to convert WAVs
Praat crashes while saving one fileScript stops (unhandled crash)Check disk space, permissions, or resave manually
Unknown error during saveIncrement failed counter, continue幾年
```