Batchy Documentation

Setup, visual processing chains, .batchyfx presets, CLI and headless rendering, plugin hosting, visualization, and troubleshooting for Batchy.

Getting Started

What is Batchy?

Batchy is a node-based batch audio processor that combines:

  • Visual Node-Based Processing — Chain audio processors visually with drag-and-drop nodes
  • Batch Automation — Render large file sets with filename tokens
  • Real-Time Playback — Audition processing changes before you export
  • Audio Visualization — Inspect waveform and high-resolution spectrogram views while tuning chains
First Launch

1. Audio Device Setup

Configure your audio interface for optimal performance:

  1. Go to Preferences → Audio Settings
  2. Select your audio interface from the dropdown
  3. Choose sample rate (44.1kHz, 48kHz, 96kHz, etc.)
  4. Set buffer size:
    • Smaller (64-128 samples) = Lower latency, higher CPU usage
    • Larger (512-1024 samples) = Higher latency, lower CPU usage
    • Recommended: 256 samples for most systems

2. Plugin Scanning

Batchy automatically scans for plugins on first launch. Supported formats: VST3 and AU (macOS).

To rescan: Preferences → Plugin Management → Scan Plugins

Default Plugin Locations:

PlatformFormatPath
macOSVST3/Library/Audio/Plug-Ins/VST3
macOSAU/Library/Audio/Plug-Ins/Components
WindowsVST3C:\Program Files\Common Files\VST3
Basic Workflow

Opening an Audio File

Drag and Drop: Drag an audio file from Finder/Explorer onto the Batchy window.

File Menu: Click File → Open Audio File (Cmd/Ctrl+O)

Supported Formats: WAV and AIFF are always available. FLAC, MP3, and OGG depend on readers registered in the build; M4A/AAC/CAF use Apple Core Audio, and WMA/ASF require Windows Media Format support. Run Batchy --help for the exact target-machine list.

Building Your First Processing Chain

  1. Switch to Effect Chain View — Click the "Effect Chain" tab
  2. Add Nodes — Drag a node from the left panel onto the canvas
  3. Connect Nodes — Click and drag from an output pin (right side) to an input pin (left side)
  4. Adjust Parameters — Click a node to select it, adjust in the right panel

Example chain:

Input → Gain (+3dB) → Parametric EQ (boost 5kHz) → Compressor → Output

Real-Time Playback

ControlShortcut
Play/PauseSpace
StopCmd/Ctrl + .
Toggle LoopL
Toggle Bypass (A/B)B
Saving & Presets
  1. Click File → Save Preset
  2. Enter a name for your preset
  3. Add description (optional but recommended)
  4. Choose a category (e.g., "Mastering", "Dialogue", "Music")
  5. Add tags for easy searching
  6. Click "Save"

Your preset is saved as a .batchyfx file and can be recalled via File → Load Preset, used for batch processing, shared with colleagues, and used cross-platform.

Batch Processing (GUI)
  1. Load Files — Add multiple files to the file list (drag and drop) or File → Add Files to Batch
  2. Configure Output — Right-click Output node, set filename template, format, sample rate, bit depth
  3. Start Processing — Click Process → Batch Process Files, review and click "Process"

For command-line processing, see the CLI / Headless section.

Visualization Tools

Waveform View

  • Dual-channel stereo display
  • Zoom: Mouse wheel or pinch gesture
  • Toggle between original and processed views
  • Loop regions: Click and drag to set A-B loop points

Spectrogram View

Enable via View → Show Spectrogram

SettingOptions
Color SchemeRX-Style, Classic, Heat, Blue
Frequency ScaleLogarithmic (music), Linear (technical), Mel (vocals), Bark (psychoacoustic)
Dynamic RangeAdjustable (default: 70dB)
Essential Nodes
NodePurposeKey Parameters
GainLevel controlGain (dB)
Parametric EQFrequency shapingFrequency, Q, Gain per band
CompressorDynamic controlThreshold, Ratio, Attack, Release
LimiterLoudness maximizationCeiling, Release
DelayEcho effectsTime, Feedback, Mix
ReverbSpatial effectsRoom Size, Damping, Mix
Spectrum AnalyzerFrequency visualizationFFT Size, Display Mode
Level MeterLoudness meteringPeak, RMS, LUFS
Tips for Success

Performance

  • Adjust buffer size — increase if you experience dropouts
  • Batch processing automatically uses multiple CPU cores
  • Complex chains can be bounced to audio for better performance

Workflow

  • Save commonly-used chains as presets
  • Right-click node → Rename to label complex graphs
  • Use sticky notes and arrows to document routing
  • Always test with a single file before batch processing

Quick Reference

Common Tasks
TaskHow
Load Audio FileDrag & drop onto window, or File → Open (Cmd/Ctrl+O)
Build Processing ChainEffect Chain tab → drag nodes → connect pins
Save PresetFile → Save Preset (Cmd/Ctrl+S)
Load PresetFile → Load Preset, or double-click .batchyfx file
Batch Process (GUI)Add files → configure Output node → Process → Batch Process
Batch Process (CLI)./Batchy --batch-process --input <path> --preset <file>
Audio Settings

Sample Rates

RateUse
44.1 kHzCD quality
48 kHzVideo/film standard
96 kHzHi-res audio
192 kHzUltra hi-res (high CPU)

Buffer Sizes

SizeLatencyCPU
64-128 samples3-6msHigh
256 samples~6msBalanced (Recommended)
512-1024 samples12-23msLow
2048 samplesVery highMinimal

Bit Depths

DepthUse
16-bitCD quality, smaller files
24-bitProfessional standard
32-bit floatMaximum headroom, no clipping
Supported Formats

Input

WAV and AIFF are always available. FLAC, MP3, and OGG depend on readers registered in the build; M4A/AAC/CAF use Apple Core Audio, and WMA/ASF require Windows Media Format support. Run Batchy --help for the exact target-machine list.

Output

FormatType
WAVUncompressed PCM (16/24/32-bit)
AIFFUncompressed PCM (16/24/32-bit)
FLACLossless compression
OGGCompressed (lossy)
MP3Compressed (lossy)
Filename Tokens

Date/Time

TokenExample
$year, $month, $day2026, 04, 02
$date2026-04-02
$timestamp20260402-143022

File & System

TokenDescription
$filenameOriginal name without extension
$counter{N}Auto-incrementing (N = zero-padding digits)
$outputnodeName of the output node
$userSystem username
$computerHostname

Path Tokens

$documents, $music, $desktop, $home, $source, $working

User-Defined

$project, $author, $client, $engineer, $studio, $show

Metadata Tokens (require MetadataProvider nodes)

$sample_rate, $bit_depth, $duration, $channels, $file_size, $file_created, $parent_folder

Common Templates

$filename_processed           → mysong_processed.wav
$date/$filename              → 2026-04-02/mysong.wav
$client/$project/$filename   → ABC Studios/Album 2025/mysong.wav
File Locations

macOS

TypePath
Presets~/Library/Application Support/Batchy/Presets/
Logs~/Library/Application Support/Batchy/Batchy.log (GUI); .../Batchy/Logs/batch_process_*.log (CLI)
Settings~/Library/Application Support/Batchy/Settings/
Plugin Cache~/Library/Application Support/Batchy/pluginList.xml

Windows

TypePath
Presets%APPDATA%\Batchy\Presets\
Logs%APPDATA%\Batchy\Batchy.log (GUI); %APPDATA%\Batchy\Logs\batch_process_*.log (CLI)
Settings%APPDATA%\Batchy\Settings\
Plugin Cache%APPDATA%\Batchy\pluginList.xml
CLI Exit Codes
CodeMeaning
0Success — the requested operation completed
1Processing failed — a render/fatal processing error occurred, result accounting was inconsistent, or a requested report could not be written
2Configuration error — invalid arguments, missing input/preset, nothing to process, or another pre-processing validation failure
130Cancelled or interrupted — for example Ctrl+C, SIGINT, SIGTERM, or an internal cancellation deadline
Performance Tips
  1. Use appropriate buffer size — balance latency vs. CPU
  2. Process similar files together — same format/rate = faster
  3. Use multi-threading for batches — set --max-threads to CPU core count
  4. Test with dry run — validate before processing large batches
  5. Use local storage — network drives slow processing
  6. Close other audio apps — prevent interface conflicts

Keyboard Shortcuts

Transport Controls
ShortcutAction
SpacePlay/Pause
Cmd/Ctrl + .Stop (return to start)
LToggle Loop
BToggle Bypass (A/B)
HomeJump to Start
EndJump to End
File Operations
ShortcutAction
Cmd/Ctrl + OOpen Audio File
Cmd/Ctrl + SSave Preset
Cmd/Ctrl + Shift + SSave Preset As
Cmd/Ctrl + WClose Window
Cmd/Ctrl + QQuit Application
Editing
ShortcutAction
Cmd/Ctrl + ZUndo
Cmd/Ctrl + Shift + ZRedo
Cmd/Ctrl + XCut
Cmd/Ctrl + CCopy
Cmd/Ctrl + VPaste
Cmd/Ctrl + DDuplicate
DeleteDelete Selected
Cmd/Ctrl + ASelect All
EscapeClear Selection
Graph Navigation
ShortcutAction
Space + DragPan Canvas
Middle Mouse + DragPan Canvas (alt)
Mouse WheelZoom In/Out
Cmd/Ctrl + +Zoom In
Cmd/Ctrl + -Zoom Out
Cmd/Ctrl + 0Fit to Window
FFrame Selection
HHome View
TabSwitch View (Waveform/Effect Chain)
Node Operations
ShortcutAction
Double-Click NodeOpen Editor
Cmd/Ctrl + ClickAdd to Selection
Cmd/Ctrl + EBypass Selected
RRename Node
Cmd/Ctrl + INode Info
Parameter Adjustment
ShortcutAction
Click + DragAdjust Value
Shift + DragFine Adjust (10x slower)
Double-Click SliderReset to Default
Alt + ClickType Numeric Value
Arrow KeysIncrement/Decrement
Page Up/DownLarge Adjust
Waveform View
ShortcutAction
Mouse WheelZoom Horizontal
Shift + Mouse WheelZoom Vertical
Click + DragSet Loop Region
Double-ClickClear Loop
SToggle Spectrogram
MToggle Mono/Stereo
GToggle Grid
Batch Processing
ShortcutAction
Cmd/Ctrl + BOpen Batch Window
Cmd/Ctrl + EnterStart Processing
EscapeCancel Processing
Cmd/Ctrl + RRefresh Preview
Quick Reference Card
Space       Play/Pause
Cmd/Ctrl+S  Save Preset
Cmd/Ctrl+Z  Undo
Delete      Delete Selected
B           Bypass (A/B)
Tab         Switch View
Cmd/Ctrl+0  Fit Graph

CLI / Headless Processing

Overview

Batchy provides command-line batch processing on supported macOS and Windows hosts. Headless --batch-process runs without opening the application UI or requiring an interactive desktop session, making it suitable for scripts, CI/CD jobs, remote sessions, and scheduled automation.

Quick Start

Process a single file:

./Batchy --batch-process \
  --input audio.wav \
  --preset my_effect.batchyfx \
  --output-dir ./processed

Process all files in a directory:

./Batchy --batch-process \
  --input /path/to/audio/folder \
  --preset my_effect.batchyfx \
  --output-dir /path/to/processed

Run ./Batchy --help for the exact options and formats supported by that build. ./Batchy --help-json writes one strict JSON document to stdout for automation and wrapper integrations; diagnostics are sent to stderr.

Executable Location

PlatformPath
macOS/Applications/Batchy.app/Contents/MacOS/Batchy
WindowsC:\Program Files\Batchy\Batchy.exe

The Windows installer uses the path above by default; a custom install may use another folder. If you add the executable’s directory to PATH, invoke Batchy --batch-process ... directly.

Command Line Reference

Required Arguments

OptionShortDescription
--batch-process--batchEnable headless batch processing mode
--input <path>-iInput audio file or directory
--preset <file>-pBatchy preset file (.batchyfx) or catalog preset name. Use --list-presets to see available catalog presets.

Output Configuration

OptionShortDescription
--output-dir <path>-oOutput directory (default: input directory). If the final path would equal the input, Batchy refuses unless you explicitly pass --in-place or --overwrite-outputs.
--output-format <fmt>Output format: wav, aiff, flac; plus ogg or mp3 only when that encoder is registered. Run Batchy --help on the target machine for the exact list.
--output-sample-rate <rate>Sample rate (22050, 44100, 48000, 88200, 96000, 192000) or “same” to match input
--output-bit-depth <depth>Bit depth: 16, 24, 32, 32float, or “same”. (32 and 32float are equivalent — IEEE 754 single-precision float)
--output-channels <config>Channel layout: mono, stereo, “same”, or “graph”
--output-filename <template>Relative filename or safe subpath beneath --output-dir, with $tokens
--output <selector>Select output nodes by ID, exact name, or a name glob using * and ?
--output-override <target:key:value>Per-output setting override; repeat for multiple overrides (see Per-Output Overrides)

Processing Options

OptionShortDescription
--normalization <type>Normalization mode: none, peak, rms, lufs. Also accepts --normalisation. LUFS uses EBU R128 integrated loudness measurement. Peak uses sample peak (not true peak).
--target-loudness <target>Target for the selected normalization mode, from -60 to 0: LUFS for lufs, dBFS for peak/rms. Defaults when selecting a mode are -14 LUFS, -1 dBFS peak, and -20 dBFS RMS.
--tail-length <seconds>Render additional tail after file ends, in seconds (for reverbs, delays). Without this flag, the preset’s tail settings are used.
--no-tailDisable tail rendering — output is truncated at input file duration
--max-threads <count>Parallel processing threads (default: min(4, CPU cores))
--fail-fastStop remaining batch work after the first render failure
--render-report <path>Write a JSON report, including failures and cancellation; missing parent directories are created after validation
--session-name <name>Name this batch session in the report
--preserve-formatKeep source file’s format when no override is specified. Also accepts --preserve-original-format.
--no-preserve-formatForce preset default format
--preserve-spacesKeep spaces in output filenames, overriding the preset
--no-preserve-spacesReplace spaces with underscores, overriding the preset; with neither flag, use the preset setting
--overwrite-outputsOverwrite existing output files instead of skipping them
--in-placeAllow a resolved output to replace its input. Batchy renders to a temporary file and swaps only after a successful render; use only when replacement is intentional.

General Options

OptionShortDescription
--help-hShow help message
--help-jsonOutput help in JSON format — useful for building GUI wrappers or validating automation scripts
--list-override-keysList all valid per-output override keys and accepted values
--list-presetsList available catalog presets and exit
--verbose-vEnable detailed logging
--log-file <path>Write logs to a file; Batchy creates missing parent directories
--progressShow progress bar. Also accepts --show-progress.
--dry-runValidate inputs and configuration without processing

License Commands

These are standalone, mutually exclusive commands. They do not require --batch-process, --input, or --preset, and exit after the requested license operation. Headless exports use the same machine license or trial state as the GUI.

OptionDescription
--license-statusPrint the current license state and machine ID; returns 0 even when the machine is unlicensed or the trial has expired
--activate <license-key>Activate this machine and exit; a rejected activation returns 1, while a missing key returns 2
--deactivateDeactivate this machine and exit; returns 1 when no active license exists or deactivation fails
Batchy --license-status
Batchy --activate "YOUR-LICENSE-KEY"
Batchy --deactivate

Accepted Aliases

The canonical names above are recommended for new scripts. The parser also accepts these compatibility spellings:

Canonical optionAccepted aliases
--help-h
--verbose-v
--batch-process--batch
--input-i
--preset-p
--output-dir-o, --output-directory
--output-format--format, --file-format
--output-sample-rate--sample-rate, --samplerate, --rate
--output-bit-depth--bit-depth, --bitdepth, --depth
--output-filename--filename, --file-name, --filename-template, --output-filename-template
--normalization--normalisation
--target-loudness--loudness, --targetloudness
--output-channels--channels
--progress--show-progress
--preserve-format--preserve-original-format
--output--outputs
--output-override--override
Paths, Validation & Output Safety
  • Relative paths: file and directory arguments are resolved from the process’s current working directory, including --input, preset paths, --output-dir, --log-file, --render-report, GUI load paths, and positional audio paths. Paths beginning with ~ resolve from the user’s home directory.
  • Validation before mutation: parser and mode-validation failures do not create user-requested output, log, or report directories. Each output destination is also safety-checked before its directory is materialized.
  • Contained outputs: filename templates may create safe subdirectories but must remain relative beneath the resolved output root; absolute filenames and .. escapes are rejected. Output roots are canonicalized through symlinks, and blocked system locations or over-limit path components are rejected before writing.
  • Existing files: a different existing output is skipped by default; pass --overwrite-outputs to replace it.
  • Input replacement: if an output resolves to the input itself, Batchy fails unless --in-place or --overwrite-outputs explicitly permits replacement. In-place renders use a temporary sibling plus swap/rollback protection rather than writing directly over the source.

For automation, use distinct input/output directories and run --dry-run first. A dry run performs production path and output-collision validation without rendering or creating output directories.

JSON Render Reports

--render-report <path> writes a deterministic JSON summary after a batch reaches processing, including failed, skipped, and cancelled counts. It creates missing report parent directories. Commands rejected before processing do not create a report; if a requested report cannot be written, the process returns exit code 1.

The stable top-level fields are session, summary, parameterOverrides, and files:

{
  "session": {
    "name": "nightly-mastering",
    "startTime": "...",
    "endTime": "...",
    "durationMs": 1234,
    "batchyVersion": "...",
    "preset": "mastering.batchyfx"
  },
  "summary": {
    "totalFiles": 2,
    "succeeded": 1,
    "failed": 1,
    "skipped": 0,
    "cancelled": 0,
    "exitCode": 1
  },
  "parameterOverrides": [],
  "files": [
    {
      "input": "...",
      "output": "...",
      "status": "success|failed|skipped",
      "error": "present when applicable",
      "durationMs": 0,
      "inputSize": 0,
      "outputSize": 0,
      "inputFormat": { "sampleRate": 48000, "bitDepth": 24, "channels": 2 },
      "outputFormat": { "sampleRate": 48000, "bitDepth": 24, "channels": 2 },
      "peakLevelDb": 0,
      "warnings": []
    }
  ]
}

Use --session-name to label the report. The report’s summary.exitCode matches the process result for the reported batch, including exit 130 for cancellation. Headless reports currently provide aggregate rows: their per-file path/format fields may contain the requested batch paths and zero/unknown metadata, with an aggregate-only warning. Do not treat those fields as a per-file manifest.

Supported Formats

Input Formats

WAV and AIFF are always available. FLAC, MP3, and OGG depend on the readers registered in that build; M4A/AAC/CAF use Apple Core Audio, and WMA/ASF require Windows Media Format support. Run Batchy --help on the target machine for the exact list.

Output Formats

  • Always available: WAV, AIFF, FLAC
  • Runtime-gated: OGG and MP3 are listed only when a working encoder is registered. Run --help on the target machine.

Note: AAC/M4A output is not supported.

Filename Templates

Important: Shell quoting. Templates containing $tokens must be single-quoted on macOS/Linux to prevent shell variable expansion:

--output-filename '$filename_$date'     # Correct (single quotes)
--output-filename "$filename_$date"     # WRONG — shell expands $filename and $date

On Windows CMD, $ is not special. In PowerShell, use single quotes or backtick escaping (`$filename).

Built-in Tokens

TokenDescriptionExample
$filenameOriginal filename (no extension)mysong
$outputnodeOutput node nameMaster

Date & Time Tokens

TokenDescriptionExample
$dateYYYY-MM-DD2026-03-26
$timeHH-MM-SS14-30-22
$timestampFull timestamp20260326-143022
$yearFour-digit year2026
$yearshortTwo-digit year26
$monthTwo-digit month03
$monthnameMonth nameMarch
$dayTwo-digit day26
$hourTwo-digit hour (24h)14
$minuteTwo-digit minute30
$secondTwo-digit second22

Counter Token

TokenDescriptionExample
$counterAuto-incrementing counter1, 2, 3, ...
$counter{N}Zero-padded to N digits001, 002, ...

Note: The {N} padding syntax only works with the $counter token.

System Tokens

TokenDescriptionExample
$userSystem usernamejohndoe
$computerComputer namestudio-mac

Path Tokens

For use in templates that include directory structure:

TokenDescription
$documentsUser’s Documents directory
$musicUser’s Music directory
$desktopUser’s Desktop directory
$homeUser’s home directory
$workingCurrent working directory
$sourceInput file’s parent directory
$appdataApplication data directory
$tempSystem temp directory

User-Defined Tokens

Set via CLI arguments:

FlagTokenDescription
--project <name>$projectProject name
--author <name>$authorAuthor/artist name
--client <name>$clientClient name
--engineer <name>$engineerEngineer name
--studio <name>$studioStudio name
--show <name>$showShow/production name
--user-token <name=value>${name}Custom token; repeat the option for multiple values. Names must start with a letter and contain only letters, digits, and underscores.
batchy --batch-process \
  --input ./audio \
  --preset mypreset.batchyfx \
  --project "Album 2026" \
  --author "Artist Name" \
  --user-token rev=v2 \
  --output-filename '$project/$author/${rev}_$filename'
# Produces: Album 2026/Artist Name/v2_mysong.wav

Deliverable Metadata Tokens

These tokens resolve from the current processing context first, then fall back to values set in Batchy’s Preferences:

TokenDescription
$versionVersion identifier (e.g., “v2”, “final”)
$mixMix variant (e.g., “vocal up”, “instrumental”)
$languageLanguage tag (e.g., “en”, “es”)
$territoryTerritory/region (e.g., “US”, “EU”)
$deliverableDeliverable type (e.g., “master”, “stem”, “preview”)

Metadata Tokens

Require MetadataProvider nodes in your preset:

  • File: $file_size, $file_modified, $file_created, $parent_folder
  • Audio: $sample_rate, $bit_depth, $duration, $channels
Per-Output Overrides

When your preset has multiple outputs, you can customize settings per output node. Run --list-override-keys to see all valid keys and accepted values.

Syntax

Two equivalent syntaxes:

--output-override="<target>:<key>:<value>"
--output:<target>.<key>=<value>

Where <target> is an output node name or wildcard selector (e.g., Stems/*).

Override Precedence

  1. Per-output overrides (--output-override, --output:) — highest
  2. Global CLI overrides (--output-format, --output-sample-rate, etc.)
  3. Preset defaults — lowest

Override Keys Reference

KeyAliasesValid ValuesDefault
output-formatformat, file-formatwav, aiff, flac; ogg/mp3 when registeredwav
output-sample-ratesample-rate, samplerate, rate22050, 44100, 48000, 88200, 96000, 192000, samesame
output-bit-depthbit-depth, bitdepth, depth16, 24, 32, 32float, samesame
output-channelschannelsmono, stereo, same, graphsame
normalizationnormalisationnone, peak, rms, lufsnone
target-loudnessloudness, targetloudness-60.0 to 0.0-14.0
output-filenamefilename, file-name, filename-templatetemplate with $tokens$filename
output-path-templatepath, output-path, path-templatetemplate with $tokens(empty)
preserve-formatpreserve-original-formattrue/false, yes/no, on/off, 1/0false
tail-lengthpositive number (seconds)(preset default)
no-tailtrue/false, yes/no, on/off, 1/0false

output-path-template is a scoped override key, not a standalone flag. Use --output-override='Master:output-path-template:$project/Masters' or --output:Master.output-path-template='$project/Masters'.

Examples

# Different format per output
--output-override="Master:format:wav" \
--output-override="Stems/*:format:flac"

# Different loudness targets for different delivery platforms
--output-override="Streaming:loudness:-14" \
--output-override="CD:loudness:-9"

# Using legacy syntax
--output:Master.format=wav \
--output:Stems/*.format=flac
Multi-Output Processing

Batchy supports presets with multiple output nodes. By default, all output nodes are rendered.

# Render specific outputs only
./Batchy --batch-process \
  --input audio.wav \
  --preset stems_preset.batchyfx \
  --output "Master,Vocals,Drums"

# Use wildcards
--output "Stems/*"

# Per-output format overrides
--output-override "Master:format:wav" \
--output-override "Stems/*:format:flac"
Audio Quality Notes

Sample Rate Conversion

When --output-sample-rate differs from the source, offline rendering uses the highest-quality 200-point windowed-sinc mode (approximately -120 dB aliasing rejection). Its group delay is compensated so converted files remain sample-aligned in duration.

Dithering

When enabled in the preset’s output node, TPDF (Triangular Probability Density Function) dithering is applied at the final write depth (for example, when delivering 16-bit audio). Configure it in the GUI when creating the preset.

Double-dithering is automatically prevented: any in-graph dithering is suppressed during batch rendering so only the final post-render dither is applied.

Loudness Measurement

LUFS normalization uses integrated programme loudness with ITU-R BS.1770-4/EBU R128 weighting and gating. LUFS and RMS normalization then use true-peak-aware limiting plus a final BS.1770-4 true-peak safety stage at -1.0 dBTP; peak normalization remains gain-only and targets sample peak. Uncommon channel layouts without a canonical BS.1770 table use a conservative flat-weight fallback and emit a warning.

Normalization modeDefault when selected from CLI
LUFS-14 LUFS
Peak-1 dBFS sample peak
RMS-20 dBFS RMS

Pass --target-loudness to override these defaults. Delivery-platform recommendations change; follow the current specification from your distributor or broadcaster rather than treating Batchy’s defaults as a delivery mandate.

GUI Launch Options

These flags launch Batchy in GUI mode with pre-loaded state — they require a display and are distinct from headless --batch-process mode. Do not combine GUI launch/automation flags with --batch-process; Batchy rejects mixed modes before opening the UI or creating requested output paths.

File & Preset Loading

OptionDescription
--load-audio=<path>Load audio file or directory into GUI (repeatable)
--load-preset=<name>Load preset by name or path
--scan-plugin=<path>Scan a single plugin file and exit

Positional arguments (bare audio file paths) are also loaded into the GUI. Relative GUI paths resolve from the current working directory, just like headless paths.

Automation Flags

OptionDescription
--auto-playStart playback automatically after loading
--auto-renderOpen batch window and start rendering after loading
--auto-processedEnable processed mode (show rendered waveform)

Render Control

OptionDescription
--exit-after-renderExit application after render completes
--output-dir <path>Set the destination for GUI --auto-render; other batch-only output overrides require --batch-process

Example: Automated Render Pipeline

./Batchy \
  --load-audio=/audio/session \
  --load-preset="Mastering Chain" \
  --auto-render \
  --exit-after-render
External Plugin Support

To use third-party VST/AU plugins in batch mode, first run the GUI to scan your plugins. The cache is stored at:

PlatformPath
macOS~/Library/Application Support/Batchy/pluginList.xml
Windows%APPDATA%\Batchy\pluginList.xml

The CLI automatically loads this cache. Without it, only built-in effects are available.

Examples

Process with custom output settings

./Batchy --batch-process \
  --input /audio/masters \
  --preset mastering_chain.batchyfx \
  --output-dir /audio/output \
  --output-format flac \
  --output-sample-rate 96000 \
  --output-bit-depth 24 \
  --normalization lufs \
  --target-loudness -14 \
  --progress

Process with tail rendering

./Batchy --batch-process \
  --input /audio/vocals \
  --preset reverb_chain.batchyfx \
  --tail-length 3.0 \
  --output-format flac

Preserve original format during normalization

./Batchy --batch-process \
  -i /audio/mixed_formats \
  -p normalize.batchyfx \
  --preserve-format \
  --normalization lufs \
  --target-loudness -14

WAV-to-FLAC archival conversion

./Batchy --batch-process \
  -i /audio/session_masters \
  -p passthrough.batchyfx \
  --output-format flac \
  --output-bit-depth 24 \
  -o /archive/flac

Stem delivery with client naming

./Batchy --batch-process \
  -i session.wav \
  -p stems_export.batchyfx \
  --client "Acme Records" \
  --project "Album 2026" \
  --output-filename '$client/$project/$filename_$outputnode' \
  --output-format wav \
  --output-sample-rate 48000 \
  --output-bit-depth 24

Log to file for debugging

./Batchy --batch-process \
  -i audio.wav \
  -p effect.batchyfx \
  -v --log-file /tmp/batchy.log

Scheduled folder automation

Run the same command from macOS launchd or Windows Task Scheduler. Existing outputs are skipped by default, so a recurring job can safely revisit the incoming directory:

Batchy --batch-process \
  --input /audio/incoming \
  --preset /presets/auto_process.batchyfx \
  --output-dir /audio/processed \
  --render-report /audio/reports/latest.json \
  --fail-fast

Script integration

#!/bin/bash
./Batchy --batch-process \
  --input "$1" \
  --preset effect.batchyfx \
  --output-dir ./processed
status=$?

case "$status" in
  0)   echo "Processing completed successfully" ;;
  1)   echo "One or more processing operations failed" ;;
  2)   echo "Command or configuration error" ;;
  130) echo "Processing was cancelled or interrupted" ;;
  *)   echo "Unexpected exit code: $status" ;;
esac
exit "$status"
Error Handling & Troubleshooting

Exit Codes

CodeMeaning
0Success: the requested operation completed
1Processing failure: a render/fatal processing error occurred, result accounting was inconsistent, or a requested report could not be written
2Configuration error: invalid or incompatible arguments, missing input/preset, nothing to process, or pre-processing validation failure
130Cancelled or interrupted: Ctrl+C, SIGINT, SIGTERM, internal cancellation, or deadline expiry

Debugging Failed Runs

Combine --verbose, --log-file, and --dry-run to diagnose issues:

# Validate configuration without processing
./Batchy --batch-process -i /audio -p preset.batchyfx --dry-run --verbose

# Run with full logging to file
./Batchy --batch-process -i /audio -p preset.batchyfx --verbose --log-file debug.log

Common Errors

  • “Preset not found” — use the full .batchyfx file path, or run --list-presets to see available catalog names
  • “No audio files found” — run Batchy --help and check that the input directory contains a format supported by that platform build
  • “Plugin not available in headless mode” — third-party plugins require a GUI scan first (see External Plugin Support above)
  • “Output would overwrite the input” — choose a separate --output-dir, or pass --in-place only when source replacement is intentional

Log Locations

PlatformPath
macOS~/Library/Application Support/Batchy/Logs/batch_process_*.log
Windows%APPDATA%\Batchy\Logs\batch_process_*.log

Limitations

  • Real-time plugin parameters cannot be automated during batch processing
  • Rendering is streamed rather than buffered as a whole file, but source/output format limits, free disk space, path limits, plugin behavior, and the configured render deadline still apply
  • Some plugin formats may not be available in headless mode

Troubleshooting

Audio Issues

No Audio Output

  1. Check Preferences → Audio Settings — verify correct interface selected
  2. Ensure audio interface is connected and powered on
  3. Check system audio settings (macOS: System Settings → Sound → Output)
  4. Try increasing buffer size to 512 or 1024 samples
  5. Ensure sample rate matches your interface
  6. Press B to toggle bypass — if sound works, issue is in processing chain

Audio Dropouts / Glitches

  1. Increase buffer size (Preferences → Audio → Buffer Size)
  2. Close other audio applications and background apps
  3. Bypass heavy plugins to identify CPU-heavy nodes
  4. Use direct USB/Thunderbolt connection (avoid hubs)
  5. Copy files to local SSD before processing

Distortion or Clipping

  1. Check gain staging — aim for -6dB to -3dB peaks between nodes
  2. Reduce limiter/compressor intensity
  3. Bypass plugins one at a time to isolate culprit
  4. Use 24-bit or 32-bit float output for maximum headroom
Plugin Issues

Plugin Not Found

  1. Rescan: Preferences → Plugin Management → Scan Plugins
  2. Verify plugin location:
    • macOS VST3: /Library/Audio/Plug-Ins/VST3
    • macOS AU: /Library/Audio/Plug-Ins/Components
    • Windows VST3: C:\Program Files\Common Files\VST3
  3. Batchy supports VST3 and AU only — VST2 is not supported
  4. Plugins must be 64-bit
  5. Check blacklist: Preferences → Plugin Management → Blacklist
  6. macOS: Check System Settings → Privacy & Security for unsigned plugins

Plugin Crashes Batchy

  1. Note which plugin you added before the crash
  2. Update the plugin to latest version from vendor
  3. Send crash logs to support: macOS ~/Library/Logs/DiagnosticReports/

Plugin UI Not Appearing

  1. Double-click plugin node to open editor
  2. Check if plugin window is behind Batchy (Mission Control / taskbar)
  3. Close and reopen plugin editor, or restart Batchy
File Loading Problems

"File Could Not Be Loaded"

  1. Check format — use the platform-specific input list printed by Batchy --help
  2. Verify file isn't corrupted (try opening in another app)
  3. Very high sample rates (384kHz+) may not be supported
  4. Check file permissions and path length

Large File Warnings

Batchy uses memory-mapped I/O — actual RAM usage is only 5-30 MB per file regardless of size. Warnings appear at files ≥ 2 GB and are informational only.

Adjust threshold: Preferences → File Limits → Warning Threshold (10-25%)

Drag and Drop Not Working

  1. Drop directly onto waveform area, not toolbar
  2. macOS: Check System Settings → Privacy → Files and Folders
  3. Try using File → Open instead
Batch Processing Issues

Batch Processing Fails to Start

  1. Verify preset file path and .batchyfx extension
  2. Check input path exists and files have supported extensions
  3. Choose a writable output location; Batchy creates missing directories only after the command and path checks pass
  4. Use --dry-run to validate configuration

Some Files Fail

  1. Use --verbose for detailed error messages
  2. Use --output-sample-rate same to avoid resampling issues
  3. Add $counter{3} to filename template to avoid conflicts
  4. Check disk space and file permissions

Processing is Very Slow

  1. Increase threads: --max-threads 8
  2. Copy files to local SSD (network drives are slow)
  3. Use --output-sample-rate same to skip resampling
  4. Use --progress to monitor
Performance & Stability

Slow / Laggy UI

  1. Close other applications to free RAM and CPU
  2. Very complex graphs (50+ nodes) can impact UI — consider splitting presets
  3. Increase buffer size for high-resolution files
  4. Update graphics drivers

Batchy Crashes

  1. Most crashes are plugin-related — disable recently added plugins
  2. Try deleting preferences: macOS ~/Library/Application Support/Batchy/
  3. Update your OS and Batchy to latest version
  4. Send crash logs to support

Batchy Won't Launch

  1. macOS Gatekeeper: Right-click → Open, or run xattr -cr /Applications/Batchy.app
  2. Windows SmartScreen: Click "More info" → "Run anyway"
  3. Try deleting license file and re-activating
License & Activation

"License Invalid" or "License Expired"

  1. Check license status in Preferences → License, or run Batchy --license-status on a headless machine
  2. Ensure internet connection for first activation
  3. Copy-paste license key from email to avoid typos
  4. Personal licenses allow 2 simultaneous activations — deactivate old machine first

Headless Activation

Batchy --activate "YOUR-LICENSE-KEY"
Batchy --license-status
# Before retiring or moving this machine:
Batchy --deactivate

Each command is standalone and exits immediately. Do not combine license commands with one another.

"Activation Required" on first launch

Batchy needs a purchased license to run. Enter the license key from your purchase confirmation email on the activation screen. If you don't have a license yet, buy one here — reinstalling or moving machines won't change this.

Platform-Specific Issues

macOS: "Batchy is damaged and can't be opened"

xattr -cr /Applications/Batchy.app

Run in Terminal, then try launching again.

Windows: Missing DLL Error

Install Visual C++ Redistributable 2022 (x64) from Microsoft, then restart.

Windows: Audio Device Shows "ASIO4ALL"

Install proper ASIO drivers from your audio interface manufacturer.

Getting Help

Before contacting support, please gather:

  1. Batchy version (Help → About Batchy)
  2. Operating system version
  3. Audio interface make and model
  4. Steps to reproduce the issue
  5. Screenshots of error dialogs
  6. Crash logs: macOS ~/Library/Logs/DiagnosticReports/ • Windows %LOCALAPPDATA%\Batchy\CrashDumps\ and Event Viewer

Email: support@batchyandfriends.com

Typically within 24 hours (business days).