Introduction
Wave Copilot is a professional desktop application designed for broadcast WAV file management. Built specifically for production sound mixers, field recordists, and broadcast audio engineers, it provides comprehensive tools for:
- Metadata editing - Edit bEXT and iXML metadata in broadcast WAV files
- Audio playback - Multi-track playback with professional mixing controls, including real-time Automix
- File processing - Split polyphonic files, combine mono files, reorder tracks
- Sound reports - Generate professional PDF and CSV sound reports
- Format conversion - Convert sample rates, bit depths, and apply dithering
- Export Mix - Render a stereo mixdown of any file with your mixer settings applied, and optionally add it straight back into the poly WAV it came from
- Continuous Recording Conform - Trim backup recordings to match primary takes, or replace individual tracks with backup audio using timecode-based matching
Key Features
- Support for standard and Broadcast WAV files with full bEXT/iXML metadata
- Multi-mono file detection and automatic grouping
- Up to 64-channel polyphonic file support, with full per-channel mixer control on every channel
- Professional mixer with per-channel gain, pan, solo, mute, and phase invert (Ø)
- Automix with Gain Sharing and Intelligent Gate modes for automatic microphone level management
- Mixer lock to carry settings across files when browsing takes from the same scene
- Pre-fader and post-fader metering with clip indicators
- Waveform visualization with timecode ruler
- Batch processing for all operations
- Customizable column display with 20+ metadata fields
System Requirements
Windows
- Windows 10 or later (64-bit)
- 4 GB RAM minimum (8 GB recommended)
- 200 MB available disk space
- Audio output device
macOS
- macOS 10.15 (Catalina) or later
- Intel or Apple Silicon (M1/M2/M3)
- 4 GB RAM minimum (8 GB recommended)
- 200 MB available disk space
- Audio output device
Linux
- 64-bit distribution (Ubuntu 20.04+, Debian 11+, Fedora 36+, or equivalent)
- 4 GB RAM minimum (8 GB recommended)
- 200 MB available disk space
- Audio output device (PulseAudio or PipeWire)
Installation
Every build is downloaded from the Wave Copilot product page at 1khz.ca. Pick the file for your platform below.
Windows
- Download the installer ('Wave Copilot Setup.exe') or portable version ('Wave Copilot Portable.exe')
- For the installer:
- Run the setup file
- Follow the installation wizard
- Launch from the Start menu or desktop shortcut
- For the portable version:
- Run the executable directly (no installation required)
macOS
- Download the DMG file ('Wave Copilot.dmg')
- Open the DMG file
- Drag Wave Copilot to the Applications folder
- Launch from Applications or Spotlight
Linux
Two packages are available:
AppImage (portable: works on any distribution, no installation required):
- Download 'Wave-Copilot-x.x.x.AppImage'
- Make it executable: 'chmod +x Wave-Copilot-*.AppImage'
- Run it: './Wave-Copilot-*.AppImage'
DEB package (Debian / Ubuntu):
- Download 'wave-copilot_x.x.x_amd64.deb'
- Install it: 'sudo dpkg -i wave-copilot_*.deb'
- Launch from your application menu or by running 'wave-copilot'
Note: Automatic in-app updates are supported for the AppImage version only. The DEB package is managed by your system package manager and cannot be updated in-app. Download the new DEB from the Wave Copilot product page at 1khz.ca and reinstall.
Automatic Updates
Wave Copilot checks for updates automatically. When an update is available:
- A notification will appear
- Click "Download Update" to download
- Click "Install and Restart" to apply the update
Getting Started
First Launch
When you first launch Wave Copilot, you'll start with a 14-day free trial. The trial banner at the top of the window shows your remaining trial days.
Loading Files
- Go to File > Add Files (or press 'Ctrl+O' / 'Cmd+O')
- Select one or more WAV files, or select a folder to load all WAV files it contains (non-recursive, top-level files only)
- Files will appear in the file list with their metadata displayed
Or drag and drop. Dropping WAV files, or a folder of them, straight onto the file list loads them the same way the dialog does. Dropping onto a list that already has files adds to it rather than replacing what is there, so you can build a session up from several folders.
Release Notes
Help > Release Notes opens a summary of what changed in each version, newest first. It is the quickest way to see whether a feature you are looking for arrived in the version you are running.
Interface Overview
The main window consists of:
- Title Bar - Application name and window controls
- Menu Bar - File, Window, and Help menus
- Trial/License Banner - Shows trial status or license information
- Tab Bar - Switch between the six main sections:
- Files & Metadata - Browse files and edit metadata
- Playback - Audio playback with mixer
- Split/Combine - File splitting and combining tools
- Sync - Align recordings by audio content and write timecode
- Audio TC - Read timecode recorded as audio and write it into the file
- Reports - Sound report generation
The chapters that follow describe each tab in turn. If you would rather start from the job than from the tool, see Workflows and Recipes, which answers the questions that come up most often on set and names the tab to reach for in each case.
Files & Metadata

The Files & Metadata tab is the primary workspace for managing your audio files.
File List

The left panel displays all loaded files in a sortable table with customizable columns:
| Column | Description |
|---|---|
| Current Name | File name |
| Channels | Number of audio channels |
| Project | Project name from metadata |
| Tape | Tape/Roll number |
| Scene | Scene identifier |
| Take | Take number |
| Start TC | Start timecode |
| Length | Duration |
| End TC | End timecode |
| Originator | Recording device/software |
| Date | Recording date |
| Sample Rate | Audio sample rate |
| Frame Rate | Timecode frame rate |
| Bit Depth | Audio bit depth |
| Originator Ref | The originator's unique reference string, written by the recorder |
| Time | Time of day the recording started, from the bEXT time reference |
| Circled | Whether the take is marked as circled |
| Wild | Whether the take is marked as a wild track |
| uBits | User bits, shown as a hexadecimal value |
| File UID | The file's unique identifier from iXML |
| Notes | The free-form note stored in the file |
To sort the file list:
- Click any column header to sort ascending; click again for descending; click a third time to clear the sort.
- The active sort column and direction are preserved when switching tabs and restored when you return to Files & Metadata.
- The Previous/Next buttons in the Playback tab follow the same sort order, so if you sort by Scene, navigation moves through files in scene order.
To customize columns:
- Click the Settings button (gear icon) to show/hide individual columns
- Drag column headers left or right to reorder them
- Resize a column by dragging the divider on the right edge of its header. The column takes exactly the width you drag it to; when the columns together are wider than the list, the list scrolls horizontally. Values that no longer fit are shortened with an ellipsis. Hover to see the full text.
- Double-click a column divider to size that column to its contents, the same "best fit" as Excel or Numbers: the narrowest width that still shows every value in full. This shrinks an over-wide column as readily as it widens a cramped one.
- Reset widths in the Configure Columns panel puts every column back to its default width, leaving your visibility and order choices alone.
- Column visibility, order and width are saved automatically and restored the next time you open the app
Resizing the Metadata Editor
The divider between the file list and the Metadata Editor can be dragged left or right to trade space between them. The width is remembered between sessions.
- Drag the divider to resize. It stops before either side becomes too narrow to use.
- Double-click the divider to return the editor to its default width.
- Click the chevron on the divider to hide the editor entirely and give the file list the full window; click it again to bring the editor back at its previous width.
Detachable Metadata Editor Window
The Metadata Editor can be detached into its own floating window, so the file list gets the full width of the main window, which is useful on a second display, or when you have many columns visible.
To detach: click the small ⇱ (external link) icon next to the Save button in the Metadata Editor header. The editor and its divider disappear from the main window and the file list expands to fill it.
The detached editor follows your selection from either window. Selecting a file in the main list updates it immediately, and so does pressing Previous / Next in the detached Playback window. All three windows can be open at once and stay in step.
Two layouts. The window opens with the familiar tabs. The Columns button in its title bar switches to a five-column view showing General, Recording, Track Info, History and Cues side by side, so nothing is hidden behind a tab. Click Tabs to switch back. Your choice is remembered.
Sizing. The window opens at about the width the editor had while docked. Resize it however you like. The size is remembered and used the next time you detach.
Saving works exactly as it does docked: the file is written to disk and the main window's file list updates to match, without marking the main window as having unsaved changes.
To reattach: close the Metadata Editor window. The editor returns to the main window at its previous width. The Playback window, if open, is unaffected.
File Operations:
- Open files - Click anywhere in the empty file list area to open a file dialog
- Select files - Click to select, Ctrl+Click for multiple selection
- Right-click menu - Access Rename, Copy, Delete, and Convert options
- Double-click - Load file for playback
Metadata Editor
The right panel provides detailed metadata editing through five tabs:
General Tab

- Current File Name - The name of the file being edited, shown for reference; rename from the file list rather than here
- Project - Project name
- Tape - Tape/Roll identifier
- Scene - Scene name or number
- Take - Take number
- Notes - Free-form notes field
- User Info - A second free-text field, separate from Notes. Recorders use it for whatever the mixer wants carried with the take, such as a sound report line or a naming convention of your own. It is written to the file's metadata alongside Notes, and appears in sound reports as the User Info column
- Circled - Mark as a circled (selected) take
- Wild - Mark as wild track (non-sync audio)
If you set a Scene and Take that another loaded file already uses, a Duplicate Scene/Take Detected warning appears when you save. Continuing anyway is allowed: a '+' is added to the front of the scene so the two takes stay distinguishable rather than silently colliding.
Recording Tab

- Sample Rate - The file's audio sample rate. Changing it here rewrites the metadata; use Format Conversion if you want to actually resample the audio
- Frame Rate - Timecode frame rate: 23.97, 24, 25, 29.97 and 30, with drop-frame available at 29.97 and 30
- Start TC - Beginning timecode of the recording. Type 8 digits and the separators are added for you
- Length - The file's duration, calculated from the audio itself
- Samples Since Midnight - The timecode expressed the way it is actually stored in the file: a count of samples elapsed since midnight. Start TC is the human-readable view of this number, and the two are always kept consistent with each other
- Sample Rate (Digitize Rate) and TC Sample Rate - Read-only values reported by the recorder, describing the rate the audio was digitised at and the rate its timecode was counted against. They normally match the file's Sample Rate; when they do not, the file was recorded with a pull-up or pull-down
- Bit Depth - The file's audio bit depth
- User Bits (uBits) - User bits, an eight-character hexadecimal field recorders use to carry a date, a camera roll, or a custom code alongside the timecode
- Originator - The device or software that made the recording
- Originator Reference - The recorder's unique reference string for the take
- Originator Date and Originator Time - The date and time of day the recorder started the file
- Software Version - The recorder's firmware or software version, where it wrote one
Two checkboxes govern how timecode reacts when you change the format fields:
Preserve Start TC (on by default) keeps the Start TC fixed when you change Sample Rate or Frame Rate, and recalculates Samples Since Midnight to match. This is what you want almost always, because it keeps the take in sync with the camera and any other timecode equipment on the shoot. Turn it off only when you intend the opposite: to hold the stored sample count and let the displayed timecode move instead.
Use Originator Time sets Start TC automatically from the Originator Time field, for files whose recorder wrote a time of day but no usable timecode.
Track Info Tab

- Track Names - Name for each channel
- Track Functions - Role of each track (Boom, Lav, etc.)
History Tab

- Original File Name - File name when first recorded, preserved even after the file is renamed
- Originator - Recording device or software
- Originator Reference - Unique reference ID
- Originator Date and Originator Time - When the recorder started the file
- Software Version - The recorder's firmware or software version
File set fields. The rest of the tab describes the file's place in a multi-mono family, and is read from the recorder's iXML. It is what lets Wave Copilot group separate mono files back into one take:
- Family Name and Family UID - The name and unique identifier shared by every file in the set
- Total Files - How many files the recorder wrote for this take
- File Set Index - Which member of the set this file is
- Parent Name and Parent UID - The recording the set was derived from, where the recorder wrote one
These are shown for reference and are not editable: they describe how the recorder wrote the take, and changing them would break the grouping.
Cues Tab

- Sync Points - List of cue markers in the file
- Add Cue - Create new cue at current position
- Remove Cue - Delete selected cue
- Edit - Modify cue name or position
Multi-Mono Detection
Wave Copilot automatically detects related mono files (e.g., files with matching names ending in channel indicators like '_1', '_2', '_L', '_R') and groups them together for easier management.
Saving Changes
Metadata changes are saved when you:
- Click the "Save" button
- Switch to another file
- Close the application (you'll be prompted to save unsaved changes)
Copying Files
Copy to copies the selected files to another folder, leaving the originals where they are. Multi-mono groups are expanded automatically, so selecting one group copies every member file in it rather than just the one row you clicked. Nothing about the files is changed on the way: this is a copy, not a convert or a rename.
Renaming Files

Select one or more files and choose Rename (toolbar button, right-click menu, File > Rename, or 'F2'). A dialog opens showing exactly what each file will be renamed to before anything happens:
- Automatic (default): files are renamed to 'SceneT{Take}.wav' (e.g. '12AT03.wav'); files without scene/take metadata are listed with an error and skipped
- Custom: build your own naming scheme from metadata chips; see Custom Output Filenames
The preview lists every selected file as 'old name → new name'. Multi-mono groups are renamed together, preserving each member's channel-number suffix ('_01', '_02', …). Click Rename to apply or Cancel to leave everything untouched. If a target name already exists on disk, that file is skipped and reported.
Audio Playback

The Playback tab provides professional audio playback with a full-featured mixer.
Transport Controls
| Control | Function |
|---|---|
| Play/Pause | Start playback from current position (Space or K when stopped). K always pauses in place when playing. Space and the Pause button pause in place when Return to Start is off; when on, they stop and return to the play-in point instead. |
| Stop | Stop playback (F3). If Return to Start is on, returns to the play-in point; otherwise 00:00 |
| Rewind (⏪) | Seek back 5 seconds (J when stopped) |
| Fast Forward (⏩) | Seek forward 5 seconds (L when stopped) |
| Return to Start (↺) | Toggle: when lit (blue), Stop, end-of-file, and Space all return to where Play was last pressed |
| Shuttle speed badge | Shows current speed (2×, 4×, 8×) next to the play button; all speeds play audio with pitch preserved |
| Previous/Next | Navigate between files in the current sort order (← / →) |
| Time Display | Shows current position, timecode, and remaining duration |
| Seek Slider | Click or drag to jump to any position |
Waveform Viewer
The waveform viewer shows the audio content of the loaded file with a timecode ruler across the top. All channels are stacked vertically. Click anywhere on the waveform or ruler to seek to that position.
The ruler uses adaptive tick spacing: the interval between marks is chosen automatically from a set of clean values (single frames, 2f, 5f, 10f, 0.5 s, 1 s, 2 s, 5 s, 10 s, 15 s, 30 s, 1 min … 2 h) so that labels are always legible and never duplicated, regardless of the current zoom level.
Each channel strip shows its peak dB level in the top-right corner (green ≤ −6 dB, amber −6 to −0.5 dB, red above −0.5 dB). The value always reflects the peak of the entire file regardless of zoom level.
Zoom Controls
The waveform supports horizontal zoom from 1× (full overview) up to 1000×.
| Action | Effect |
|---|---|
| 'Ctrl'+scroll wheel (Windows / Linux) | Zoom in / out, centred on mouse position |
| 'Cmd'+scroll wheel (macOS) | Zoom in / out, centred on mouse position |
| Trackpad pinch (macOS) | Zoom in / out, centred on mouse position |
| − / + buttons next to the seek slider | Step zoom out / in by 1.5× per click, centred on the playhead |
| 'Ctrl/Cmd' + '-' | Zoom out by 1.5×, centred on the playhead |
| 'Ctrl/Cmd' + '=' | Zoom in by 1.5×, centred on the playhead |
| 'Ctrl/Cmd' + '0' | Reset zoom to 1× (full file overview) |
| Click the zoom level (e.g. 4×) between the buttons | Type an integer 1–1000 and press Enter (or click away) to jump directly to that zoom level, centred on the playhead |
At 1× the entire file is visible. Zoom in to inspect transients, room tone texture, or the shape of individual audio cycles.
The playhead is always kept in the visible window when zooming. When using scroll-to-zoom, if the mouse-centred zoom would push the playhead off-screen, the view automatically shifts to bring it back near the edge. The − / + buttons always centre the zoom on the playhead position.
Scrolling and Panning
| Action | Effect |
|---|---|
| Plain scroll wheel | Scroll the waveform panel up / down (normal behaviour for many-channel files) |
| 'Shift'+scroll wheel | Pan the waveform left / right when zoomed in |
| Two-finger horizontal swipe (macOS trackpad) | Pan left / right when zoomed in |
| Drag the scrollbar thumb below the timeline | Jump to any horizontal position |
| Click on the scrollbar track | Jump the view to that point in time |
The horizontal scrollbar appears below the timeline ruler whenever the zoom level is above 1×. Its thumb width is proportional to the fraction of the file currently visible.
Auto-scroll and Playhead Tracking
The waveform keeps the playhead visible in two complementary ways:
- While playing: when the playhead reaches the edge of the visible window, the view automatically jumps so the playhead reappears roughly one-quarter from the left edge, matching the paging behaviour of professional DAWs.
- While zooming: any zoom action (Ctrl+scroll, pinch, or the ± buttons) ensures the playhead cannot be pushed off-screen. If zooming centred on the mouse position would hide the playhead, the view shifts to keep it near the nearest edge.
If you manually pan away from the playhead while paused, the view will re-centre on it the next time the playhead moves outside the visible area.
Peak Resolution and Background Loading
When a file is opened, the waveform appears quickly using a low-resolution scan (~20 000 peaks). A background scan at full resolution (up to 256 000 peaks) then runs silently, with no spinner and no interruption to playback. Once the background scan completes (typically within a few seconds for most files), every zoom level from 1× to 256× renders crisp, detailed waveforms.
For zoom levels above 256×, the app performs an on-demand windowed scan that reads only the currently visible portion of the file. Even for very long recordings this is near-instant because only a tiny slice of audio data is read. The visible area is buffered slightly so small scrolls do not trigger a rescan.
All peak data is cached on disk so a file only needs to be fully scanned once; subsequent loads use the cached peaks instantly.
Console Toggle
A Console toggle bar sits between the transport controls and the mixer. Clicking it collapses or expands the mixer panel. When the mixer is hidden, the waveform zone expands to fill the freed space, which helps when working with many-channel files and you want more track height visible. Click the bar again (or use the chevron arrow on the right) to restore the mixer.
Detachable Playback Window
The Playback tab can be detached into its own floating window, leaving the main window free to stay on the Files & Metadata tab while you monitor playback on a second display or in a separate spot on the same screen.
To detach: click the small ⇱ (external link) icon to the right of the Playback tab label. A separate Playback window opens and the tab disappears from the main tab bar.
Navigation stays in sync in both directions:
- Loading or double-clicking a file in the main window loads it in the detached Playback window immediately.
- Pressing Previous / Next in the detached window navigates the file list in the main window and updates both windows.
Mixer and transport controls are fully functional in the detached window: faders, pan, solo, mute, phase, automix, shuttle, and seek all work the same as in the embedded tab. All changes are reflected in the main window's audio engine in real time.
To reattach: close the Playback window (click the × button or use the native close control on macOS). The Playback tab reappears in the main tab bar exactly as it was before.
Mixer

The mixer provides per-channel controls:
| Control | Range | Description |
|---|---|---|
| Gain Slider | -∞ to +12 dB | Adjust channel volume. Fully down = silence (-∞ dB) |
| Pan | L to R | Position in stereo field. Double-click to reset to center. |
| Solo (S) | On/Off | Hear only this channel. Ctrl/Cmd+click to solo exclusively (unsolos all others). |
| Mute (M) | On/Off | Silence this channel |
| Phase Invert (Ø) | On/Off | Flip the polarity of the channel (180° phase inversion) |
| Meter | - | Real-time level display |
| Clip Indicator | Red | Shows when audio is clipping |
Mixer Features:
- Pre-fader metering (PRE): The meter shows the signal level before the fader and mute are applied. Useful for confirming a signal is present on a channel regardless of its fader position or mute state.
- Post-fader metering (POST): The meter reflects the level after gain and mute, showing exactly what is sent to the output.
- Phase Invert (Ø): Flips the polarity of the channel by 180°. Use this to correct a microphone that is wired out of phase with the others, or to fix comb filtering when blending two mics on the same source. An active phase invert is shown in purple. Phase state is saved and restored per file along with all other mixer settings.
- Master gain - Overall output level control
- Settings are saved per file: Mix settings (gain, pan, solo, mute, phase, meter mode) persist per file while the session is open
- Reset: Click the reset icon (↺, top-right of the mixer) to instantly return all channels of the current file to defaults (0 dB gain, center pan, no solo or mute)
- Lock Mixer: Click the lock icon (top-right of the mixer) to carry settings to every file you navigate to. When locked (amber icon), your current mix settings, including Automix enabled/mode and per-channel Automix selection, are always applied when switching files. Channels are matched by position; extra channels in the new file are set to defaults. When unlocked, each file restores its own last-saved settings (or defaults if never visited).
Lock Mixer examples:
Example 1: carrying a mix across takes from the same scene
- Open Scene 5 Take 1. Adjust the boom to –3 dB and mute track 4.
- Click the lock icon (turns amber).
- Press Next. Scene 5 Take 2 loads with the same boom level and muted track 4.
- Press Next again. Scene 5 Take 3 also gets those settings.
Example 2: adjusting settings on one file, then locking
- Open Take 1. Dial in your mix, then click the lock icon.
- Press Next. Take 2 inherits Take 1's settings regardless of whether you locked before or after adjusting.
Example 3: stopping the carry-over midway
- Navigate through Takes 1–3 with lock on. All three receive the same settings.
- On Take 3, click the lock icon to deactivate it (icon turns grey).
- Press Next. Take 4 loads with its own previously-saved settings, or defaults if never visited.
Example 4: overwriting a previously-visited file
- Browse Takes 1–4 with lock off (each loads with defaults).
- Go back to Take 2, dial in a new mix, and turn the lock on.
- Navigate to Take 4. Even though Take 4 was already visited, the lock overwrites it with Take 2's settings.
Playback Notes
- Files under 1.5 GB use the Web Audio API for high-quality playback
- Larger files use streaming playback to conserve memory
- Supports sample rates from 44.1 kHz to 192 kHz
- Shuttle audio quality: all shuttle speeds (2×, 4×, 8×) use pitch-preserving time-stretch so the audio remains intelligible at any speed. Pitch is held constant while only the tempo changes.
Automix

Automix automatically manages per-channel gain in real time based on signal activity, so the dominant microphone is always at full level while inactive channels are attenuated, without riding faders manually. It is designed for reviewing multi-microphone recordings where you want the audio to feel naturally mixed without manual intervention.
Automix is disabled by default. Enable it by clicking the wave icon (∿) in the top-right toolbar of the mixer. The icon glows cyan when active.
Modes
Two modes are available, selectable via the GS / IG pill that appears when Automix is on:
GS: Gain Sharing
A smooth, continuous algorithm. Each channel's gain is set proportional to its level relative to the group:
'gain = channel_level / √(sum of all channel levels²)'
The total system gain (measured as the RMS of all channels) is always conserved. When one mic is much louder than the others it rises toward full gain; the others fall proportionally. There are no threshold crossings or binary decisions. Gain is always moving, always proportional. This mode is natural-sounding and works well for typical multi-mic dialogue review.
IG: Intelligent Gate
A more decisive mode that makes on/off gating decisions per channel. A channel gates on only when two conditions are met simultaneously:
- Its signal envelope is within 5% of the loudest active channel (Maxbus test)
- Its signal is at least 2× its own estimated noise floor (NAT, Noise-Adaptive Threshold)
Channels that don't meet both conditions are attenuated by −10 dB (not silenced). The last active channel is held on if nothing else qualifies, preventing dead air. NOMA (Number of Open Microphone Attenuation) reduces the gain by −3 dB for each doubling of open channels to keep the mix level consistent.
Use Intelligent Gate when you want decisive switching between speakers rather than a gradual blend.
How Automix Interacts with Other Controls
- Faders: Automix reads each channel's true, pre-fader signal to make its gain-sharing/gating decisions, so moving a fader up or down does not influence which channels Automix favors, the same way a hardware automixer works. Your fader position is applied afterward, on top of whatever gain Automix has already decided. To leave a specific channel out of the Automix calculation regardless of its fader level, use channel selection instead (below).
- Mute: Muted channels are excluded from the Automix calculation entirely.
- Solo: When any channel is soloed, only soloed channels participate in Automix.
- Pan: Pan does not affect Automix decisions; the algorithm reads each channel's mono level signal before panning.
Choosing Which Channels Participate
Each channel strip has a small toggle next to its Automix indicator, visible whenever Automix is enabled, that includes or excludes that channel from the Automix calculation:
- Included (cyan toggle): the default for every channel. Its signal counts toward Automix's gain-sharing/gating decisions, and its own gain is modulated by Automix like any other participating channel.
- Excluded (grey toggle): the channel is left out of the calculation entirely. It is not muted. It keeps playing at whatever level you've set on its fader, blending in underneath whatever Automix decides for the rest of the channels.
Use this for a channel you always want present at a fixed level without it swaying, or being swayed by, the automix decision for the others, for example a boom that's mostly picking up room tone, or a fixed ambience/reference track.
Per-File Settings
Automix enabled/mode and per-channel selection are all saved per file. Loading file A (GS on, one channel excluded) and switching to file B restores whatever was last set for file B (or defaults, meaning Automix off with every channel included, if never configured). This lets different takes in a session have independent Automix setups.
When the Mixer Lock is active, the current Automix state, including channel selection, carries over to every file you navigate to, the same as gain, pan, and mute.
Automix Indicator
When Automix is active, each channel strip shows the channel-selection toggle described above alongside a small bar showing that channel's real-time automix gain:
| Colour | Automix gain |
|---|---|
| Green | > 70%, channel is dominant |
| Yellow | 30–70%, channel is partial |
| Dim | < 30%, channel is attenuated |
Hover the bar to see the exact gain value in % and dB. Excluded channels show a dimmed, static bar since their gain isn't being modulated.
Export with Automix
When you export a mix with Automix enabled for a file, the export engine applies the same algorithm offline, reading the same pre-fader signal and respecting the same per-channel selection, processing the full file faster than real time in a streaming render. The rendered output reflects the dynamic gain decisions exactly as they would sound during playback.
See Automix Option under Export Mix for batch export controls.
Split & Combine
The Split/Combine tab provides tools for splitting polyphonic files into separate mono files, combining mono files into polyphonic files, merging two poly WAV files into a single combined poly WAV, and merging any number of files (mono, stereo, or a mix of channel counts) into one polyphonic WAV with the Combine Group tool.
Split Polyphonic Files

Break a multi-channel WAV into separate files:
- Select polyphonic files from the file list
- Switch to the Split Poly sub-tab
- Configure the routing matrix:
- Each row is one output file, each column is one input channel
- Click cells to assign channels to output files
- A row with one channel selected produces a mono file, which is the default layout and the usual reason to split. A row with several channels selected produces one multi-channel file containing just those channels, which is how you export a poly with unwanted channels left out
- A row with nothing selected is skipped entirely, so clearing the rows you don't want is how you reduce the number of output files
- Channels always appear in the output in their original order. Split Poly can drop channels and regroup them, but it cannot reorder them. See Change the track order of a poly WAV
- Optionally define a naming scheme in the Output Filename section (see Custom Output Filenames). Automatic naming is '{name}_{channel}.wav'; to include track names in the output filenames, switch to Custom and use the Track Name chip
- Select the output directory
- Click Split
Metadata (iXML, bext, track names) is carried into every split file.
Combine Mono Files

Merge separate mono files into a single polyphonic file:
- Add mono files to the file list
- Switch to the Combine Mono sub-tab
- Choose Batch mode (auto-detects groups by filename) or Manual mode (pick files explicitly)
- Configure the routing matrix. Each row is an output track, each column is an input file. Click a cell to assign a file to a track. Click an active cell to deselect it; rows with no file selected are skipped from the output entirely, allowing you to combine only a subset of channels (e.g. ISO tracks only from a 6-track split).
- Set the output directory (batch) or output file path (manual)
- Click Combine / Batch Combine
Requirements:
- All files must have the same sample rate
- All files must have the same bit depth
- All files must have compatible duration (batch mode also checks matching timecode fields)
Combine Poly Files

Merge two poly WAV files, for example a main multi-channel recording and a separate stereo mix file, into a single combined poly WAV. This is common when recording on devices at 32-bit float where the stereo mix output cannot be embedded in the same poly WAV and is recorded in a separate file.
How to use:
- Load your primary poly WAV files (the main recordings) into the Wave Copilot file list
- Switch to the Split/Combine panel → Combine Poly tab
- Add your secondary poly WAV files (e.g. the mix files) using + Add Files or by dragging them into the secondary file list
- Wave Copilot automatically matches each primary file to a secondary file by timecode. Matched pairs are highlighted in green
- Choose the secondary channel placement: Before Primary puts secondary channels first, After Primary appends them at the end. Your selection is saved automatically and restored the next time you open the app.
- Select the output format: Match primary (uses each primary file's own format, so no conversion is needed), Match secondary, or Custom (choose sample rate and bit depth)
- Optionally enable Normalize channels to –1 dBFS to apply per-channel peak normalization to all channels before combining. This setting is saved automatically and restored between sessions.
- Choose an output directory
- Click Combine N Pairs
Output files:
Each combined output file is named '{primary_filename}_combined.wav' by default; use the Output Filename section to define your own scheme (see Custom Output Filenames). Track names from both files are preserved in the iXML 'TRACK_LIST' and bext description of the combined file.
Notes:
- Files with no timecode or no matching partner are shown with a warning badge and are not combined
- If primary and secondary files have different formats, they are automatically converted via FFmpeg before combining (unless you choose "Match primary" or "Match secondary" which avoids unnecessary conversion)
- If the two files have different lengths, the output matches the longer file's duration, and the shorter file's channels are padded with silence
- Output files exceeding 4 GB are automatically written in RF64 format
The grid of file-to-track assignments is called the Track Routing matrix throughout this tab. When several multi-mono groups are loaded at once, Wave Copilot reports Multi-Mono Groups Found and offers Track Routing for All Groups, which applies one routing layout to every group rather than making you configure them one at a time. Batch operations show an Overall Progress bar alongside the per-file one.
Combine Group

Merge any number of files (mono, stereo, or a mix of channel counts, and regardless of filename) into a single polyphonic WAV. This is the tool for mixed-mic sessions, such as an LCR setup recorded as one mono file plus one stereo file, or several mics of different channel counts recorded together.
How grouping works:
- Files are grouped automatically by matching start timecode, sample rate, frame rate, and length
- Files with no embedded timecode at all can also auto-group with each other by matching sample rate and exact length alone, since they have no timecode to contradict a match. A file that does have timecode but doesn't match anything is never pulled into a group this way, since its own timecode is treated as a genuine signal it belongs elsewhere
- Files that don't auto-match land in the Unmatched Files list
How to use:
- Load your files into the Wave Copilot file list
- Switch to the Split/Combine panel → Combine Group tab
- Review the auto-detected groups. Each group card lists its members under Source files and every output channel under Output channels
- Reorder output channels by dragging their grip handle, or with the up/down buttons. Channels from different files can be freely interleaved, not just kept as whole-file blocks
- Edit any channel's name directly in the Output channels list; names default to the source file's own bext/iXML track name where one exists
- Choose which file's other metadata (scene, take, timecode, notes, markers) is used for the merged output with the radio button next to each file in Source files. This also drives the values shown by Scene/Take/Tape/etc. chips in the Output Filename section
- Select the output format: Match first file or Custom (choose sample rate and bit depth)
- Optionally enable Normalize channels to –1 dBFS
- Choose an output directory
- Click Combine N Groups
Manual grouping:
Files in Unmatched Files aren't stuck there:
- Select two or more and click Create Group to merge them anyway, even without a shared timecode or length
- Use the + Add unmatched file control on any group card to fold an unmatched file directly into that group
- Click × next to any file in a group's Source files list to take it back out. The file is marked excluded from auto-matching so it won't silently reappear on the next scan; click Re-enable auto-match in Unmatched Files to undo this
Groups changed this way are labelled Modified (started as an auto-detected group) or Manual (built entirely from scratch), with a warning noting anything that doesn't match: different sample rates, different lengths, or no shared timecode. These warnings are informational only and never block the merge.
Output files:
Output files are named '{name}_group.wav' by default, where '{name}' is the metadata-source file's name; use the Output Filename section to define your own scheme (see Custom Output Filenames).
Notes:
- Groups, and each group's Source files / Output channels lists, can be collapsed independently to save space when working with many files
- Files with different sample rates or bit depths are automatically converted via FFmpeg before combining
- If files in a group have different lengths, the output matches the longest file's duration, and shorter files' channels are padded with silence
- Groups are capped at 64 channels (the app's playback channel limit); files beyond the cap are excluded, with a warning shown on the group
- Output files exceeding 4 GB are automatically written in RF64 format
Continuous Recording Conform

Use this when a backup recorder (body pack transmitter, Zoom, or any secondary device) captured audio continuously without cutting between takes, and you need to trim it to match the takes from your primary recorder, or replace specific tracks inside your primary files with audio from the backup.
Conform Modes
Select the mode at the top of the Conform tab. The three buttons read Match Reference, Custom TC Range and Track Replace.
Match Reference Files (default, shown on the button as Match Reference): automatically trims the backup recording to match each take using timecode overlap. One output file is produced per matched take. The reference take list can come from the session file list (default) or from a CSV sound report file (see CSV Reference File below). Enable Poly WAV Output to instead combine all overlapping backup files into a single polyphonic WAV per take (see below).
Custom TC Range: trims all loaded backup recordings to a single manually-specified timecode window. Use this when the primary recorder missed a take but the backup recorder still captured it. Enable Poly WAV Output to assemble all overlapping backup channels into a single polyphonic WAV for the specified range instead of individual trimmed files (see below).
Track Replace: replaces individual tracks inside your primary polyphonic files with audio from a backup recording. Use this when a wireless receiver or other channel in your primary file recorded unusable audio (noise, dropout, interference) and the backup recorder captured a clean version of the same source. Channels can also be left out of the output entirely, which strips a ruined mix pair in the same pass rather than needing a Split Poly run afterwards.
Backup Recordings
The Backup Recordings list holds the continuous recordings being conformed. It is shared by all three modes: add files with + Add Files (individual files or a folder) or by dragging them onto the list.
With Poly WAV Output enabled, the order of this list is the default channel order of the output. See Channel Order.
A file already in the session file list cannot be added here. Files in the main list are reference takes, and one file cannot be both the take and a backup of itself: it would either be counted twice in the output, or leak into a different take's output as a stray channel. Attempting to add one leaves the list unchanged and explains why. To include a reference take's audio in a poly output, use Merge with reference instead. If a file is already in the list when it is loaded into the session, it is removed from Backup Recordings and a note tells you which file and why.
How to Use: Match Reference Files
- Load your primary recorder files into the Wave Agent session list
- Open the Split/Combine panel → Conform tab
- Confirm Match Reference Files is selected
- Add your backup recording(s) using + Add Files (select files or a folder) or drag and drop
- Review the match table. Each row is one trimmed output file matched to a primary take
- Choose an output format and select an output directory
- Click Trim & Export
CSV Reference File (Match Reference)
Instead of loading primary recorder files into the session list, you can use a CSV sound report as the reference source. This is useful when you have the session's sound report on hand but not the original WAV files, or when working from a pull list.
How to use:
- Open the Split/Combine panel → Conform tab with Match Reference Files selected
- In the Reference Files panel, click CSV File
- Click Load CSV and select your sound report CSV file
- The CSV is parsed automatically. A preview table shows the loaded takes (start TC, end TC, scene, take)
- Add your backup recording(s) using + Add Files or drag and drop
- Review the match table, choose an output format, and select an output directory
- Click Trim & Export (or Combine & Export with Poly WAV Output enabled)
Supported column names (case-insensitive, spaces or underscores both accepted):
| Column | Required | Example values |
|---|---|---|
| 'Start TC' or 'TC Start' | Yes | '12:10:59:00' |
| 'End TC' or 'TC End' | Yes | '12:11:52:00' |
| 'Scene' | No | '12A' |
| 'Take' | No | 'T1' |
| 'Tape' | No | 'A002' |
| 'Frame Rate' / 'TC Fps' | No | '23.976', '25', '24Fps' |
| 'Sample Rate' / 'SR/Hz' / 'Frequency' | No | '48000', '48K' |
| 'Bit Depth' / 'Bits' | No | '24', '24 b' |
The 'TC Start' / 'TC End' / 'Frequency' / 'Bits' / 'TC Fps' aliases match the column names used in Cantar poly reports. Sample rate values with a 'K' suffix (e.g. '48K') are interpreted as kHz automatically.
Compatible formats:
- Sound report CSV exported from Wave Agent
- Cantar poly report ('.csv', tab-delimited)
- Sound reports from 788T, 833, 888, and other recorders that export a take list
- Any comma- or tab-delimited file with at least 'Start TC' / 'TC Start' and 'End TC' / 'TC End' columns
- Files with preamble rows (project name, date, recorder info) above the column header are handled automatically
- Delimiter is detected automatically. Comma and tab are both supported
- Line endings: LF, CRLF, and CR-only (legacy Mac) are all supported
Note: If 'Frame Rate' is not present in the CSV, the frame rate is inherited from the loaded backup files, the same fallback used in Custom TC Range mode.
Poly WAV Output (Match Reference Files)
Enable the Poly WAV Output checkbox in Match Reference mode to assemble all backup files that overlap a reference take into a single polyphonic WAV per take, rather than exporting individual trimmed files.
Use this when a backup recorder delivered separate mono or polyphonic files that need to be combined back into one poly file alongside your primary recording, for example a client delivering a multi-mic backup as individual mono tracks.
How it works:
- Every backup channel (from mono or poly backup files) that overlaps the reference take's timecode window becomes one channel in the output poly WAV
- Channels are grouped by track name (from iXML metadata). If two backup files share the same track name (for example a recording that was split mid-take), their audio is stitched into one channel automatically, with silence filling any gap between them
- Where a backup does not cover the full reference TC window (starts late or ends early), the missing portion is filled with silence
- Output channel order follows the Backup Recordings list order, each file contributing its channels in their own order. You can change it per output file in the Poly Output Preview (see Channel Order below)
- Metadata in the output (timecode, scene, take, originator, frame rate, iXML) is taken from the reference file; track names come from the backup files
- Output files are named '
_poly_backup.wav'
How to use:
- Load primary recorder files into the session list
- Open the Split/Combine panel → Conform tab, with Match Reference Files selected
- Add your backup file(s) using + Add Files (select files or a folder) or drag and drop
- Check Poly WAV Output. This setting is saved automatically and restored the next time you open the app
- Review the Poly Output Preview. Each row is one output file; expand it to see and reorder its channels
- Choose an output format (Match reference or Custom) and select an output directory
- Click Combine & Export
Note: The "Keep original" format option is not available in Poly WAV Output mode because the output combines multiple sources that may have different formats. Use "Match reference" (default) to target the primary file's sample rate and bit depth, or "Custom" to specify manually.
Merge With Reference (Match Reference Files)
Merge with reference, below the Poly WAV Output checkbox, adds each reference take's own channels to its poly file, so the primary recording and the backups end up in one file.
Use this when you want the recorder's take and the backup sources side by side for comparison or for handing on a single file, for example a 5-channel ISO take plus four radio-mic backups, giving a 9-channel output.
- Reference channels are placed at the front by default, and can be moved anywhere in the order like any other channel
- They are always separate channels, even when a reference track name matches a backup's. A reference and a backup both named 'Lav1' produce two channels, not one. The reference is a different source, not a continuation of the backup. In the expanded channel list each is labelled with where it came from, so identical names remain distinguishable
- Reference channel counts vary per take, so each output file has its own channel count
- Not available when the reference source is a CSV file, since a CSV take list carries no audio
Note: A file that is already in the session file list is a reference take, so it cannot also be added to Backup Recordings. Use Merge with reference to include it rather than loading it twice. See Backup Recordings below.
Channel Order (Poly WAV Output)
Channel order in a poly output follows the Backup Recordings list order, the order you added the files, with each file contributing its channels in their own order. This applies to both Match Reference and Custom TC Range, and to mono and polyphonic backups alike.
To change it, expand an output file in the Poly Output Preview:
- Each row shows the output channel number, the track name, and the source it comes from: 'File.wav ch2', or '◆ from reference' for a channel supplied by Merge with reference. A channel stitched from several files (a split recording) shows the first source with '+1 more'
- Drag a channel by its handle, or use the up/down arrows, to move it. Numbering updates as you go
- Order is set per output file: reordering one take does not affect the others
- reset on the output file's row restores the default order
Custom TC Range produces a single output file, so its channel order is set once and applies to that file.
How to Use: Custom TC Range

Use this when no primary takes exist for the moment you need to recover.
- Open the Split/Combine panel → Conform tab
- Select Custom TC Range
- Add your backup recording(s) using + Add Files or drag and drop
- The frame rate and drop-frame setting are detected automatically from the first backup file
- Start TC and End TC (HH:MM:SS:FF) are prefilled with the full span of the loaded backups, the earliest start and the latest end, so the default window covers everything. Narrow it by typing your own; end must be later than start
- Optionally enter a Scene and Take label used for the output filename
- Review the match table. Each row represents one backup file trimmed to the specified window
- Choose an output format and select an output directory
- Click Trim & Export
About the prefilled range: the window keeps following the loaded files (adding or removing a backup widens or narrows it) until you type a timecode of your own, after which your values stay put through any further file changes. A Full range button appears in the TC Range header whenever the current values differ from the full span; click it to go back. Backups without timecode are ignored when working out the span.
Poly WAV Output (Custom TC Range)
Enable the Poly WAV Output checkbox in Custom TC Range mode to assemble all backup files that overlap the specified TC window into a single polyphonic WAV, rather than exporting individual trimmed files.
Use this when your backup sources are spread across multiple mono or poly files and you want a single combined poly WAV covering a specific timecode window, for example a multi-mic recording from a body-pack transmitter and a boom mic that both need to be in one file.
How it works:
- Every backup channel (from mono or poly backup files) that overlaps the specified TC window becomes one channel in the output poly WAV
- Channels are grouped by track name (from iXML metadata). If two backup files share the same track name (for example a recording that was split mid-session), their audio is stitched into one channel automatically
- Where a backup does not cover the full TC window (starts late or ends early), the missing portion is filled with silence
- Output channel order follows the Backup Recordings list order and can be changed in the Poly Output Preview (see Channel Order above)
- The output duration equals exactly 'End TC − Start TC'; the bEXT timecode reference is set to the specified Start TC
- Output file is named 'Scene_Take_poly_backup.wav' (e.g., '12A_T1_poly_backup.wav'); if no scene/take is entered, the file is named 'TCRange_poly_backup.wav'
How to use:
- Open the Split/Combine panel → Conform tab, with Custom TC Range selected
- Add your backup file(s) using + Add Files (select files or a folder) or drag and drop
- Enter a Start TC and End TC
- Optionally enter a Scene and Take label
- Check Poly WAV Output. This setting is saved automatically and restored the next time you open the app
- Choose an output format (the format defaults to the first backup file's own rate/bit depth; use Custom to override) and select an output directory
- Click Combine & Export
Note: The "Keep original" format option is not available in Poly WAV Output mode. The format defaults to the first backup file's sample rate and bit depth, or use "Custom" to specify manually.
How to Use: Track Replace

- Load your primary polyphonic recorder files into the Wave Agent session list
- Open the Split/Combine panel → Conform tab
- Select Track Replace
- Add your backup recording(s) using + Add Files (select files or a folder) or drag and drop
- Each primary take appears as a collapsible section. For each take, every output channel is listed with a source dropdown
- Assign sources for each channel (see Channel Assignment below)
- Select an output directory
- Click Replace Tracks & Export
Note: Mono files and multi-mono groups are excluded from Track Replace mode. Only polyphonic (multi-channel) primary files appear as reference takes.
Track Replace has no output format section. Each output file always takes the sample rate and bit depth of its own reference file, and always has exactly the reference file's duration. A 32-bit float backup replacing a channel in a 24-bit take is converted to 24-bit on the way in.
Channel Assignment (Track Replace)
Each primary take has its own independent channel assignment panel.
Source options per channel:
- Reference (keep original): audio is taken directly from the primary file channel (no replacement)
- Backup file · Channel N: audio is pulled from a specific channel of a backup recording
Auto-matching by track name:
When backup files are loaded, Wave Agent automatically compares the track names stored in the primary file's metadata with the track names in each backup file. If a match is found (case-insensitive), the backup channel is pre-selected. This means you typically only need to review rather than manually configure each assignment.
TC-filtered dropdowns:
The backup file channels available in each dropdown are filtered to only show backup files whose timecode overlaps the reference take's timecode window. A backup file recorded during a different part of the day will not appear for takes it did not cover.
Silent channel warning:
When backup files are loaded in Track Replace mode, Wave Copilot scans each file and measures the peak level of every channel. If a channel's peak is below the silence threshold, a ⚠ icon appears next to its dropdown. Hover the icon to see the measured peak level. This typically indicates the microphone was not connected to that input during recording. You can still assign the channel. The warning is advisory only.
Silence threshold:
A Silence threshold slider in the Channel Assignment header controls the dBFS level below which a channel is considered silent. The range is −90 to −48 dBFS and the default is −72 dBFS. Drag the slider left to only flag very quiet channels, or right to flag more channels as silent. The setting is saved between sessions.
When one or more assigned backup channels are below the threshold, a Reset silent tracks to Keep Reference button appears. Click it to automatically switch all flagged channels back to Reference (keep original) in one step, which is useful for quickly cleaning up any accidental assignments to dead inputs.
Remove silent tracks from output:
Enable the Remove silent tracks from output checkbox (below the Normalize audio checkbox) to automatically exclude all silent backup channels from the exported file entirely. When enabled, silent channels are dropped from the output rather than replaced with reference audio, reducing the output channel count accordingly. For example, a 6-channel assignment where 2 backup channels are below the silence threshold produces a 4-channel output file. When disabled (default), all assigned channels are written to the output as configured. This setting is saved between sessions.
Dropping channels from the output:
Any channel can be left out of the exported file, not only the silent ones. This is what lets you strip a ruined mix pair in the same pass that rebuilds the isos, instead of running Split Poly afterwards to do it.
Click the drop button at the end of a channel row, the circle with a line through it, to leave that channel out. The row stays where it is, struck through and greyed, and its dropdown is disabled; the button becomes a restore arrow, which brings the channel back. Nothing is renumbered while you work, so the row always tells you which channel of the original file it came from. When a take has channels dropped, its header reads the old and new counts, for example '6 ch → 4 ch'. The last surviving channel of a take cannot be dropped.
Two shortcuts in the Channel Assignment header set the dropped channels for every take at once:
- Drop channels … from every take is a preset list: keep all channels, drop channel 1 for a mono mix, drop channels 1 and 2 for a stereo mix, drop the last channel, or drop the last two. A preset is the whole answer for each take, so choosing one also restores anything you had dropped by hand that the preset does not name. It is remembered between sessions and applied to takes as they are loaded. A preset that would empty a take is ignored for that take, so 'drop channels 1-2' does nothing to a two-channel file. Change a row by hand afterwards and the list reads Custom selection, unless what you are left with happens to match another preset
- Drop N detected mix channels appears when any reference take has a channel whose track name reads as a mix: Mix, MixL, MixR, and the spacing and casing variants of those, such as 'Mix L', 'MIX-R' and 'mix_1'. The count is across every take. Clicking it adds those channels to whatever you have already dropped, so it never restores a channel you removed deliberately, and the button disappears once there is nothing left to find
The detector is deliberately narrow. A channel named simply L, R, LR or ST, or Master or Mixdown, is not treated as a mix, because those turn up as genuine iso names often enough that a false positive would silently strip a track you wanted. Drop those by hand, or with a preset.
Dropping channels alone is a complete job. Where nothing is being replaced, Replace Tracks & Export still runs and writes your poly back out without the channels you dropped, which is the shortest route to 'export this file without channels 3 and 4'.
Whatever survives is compacted into the output with no gap: the iXML track list is rewritten with the surviving names, its channel and interleave indexes are renumbered from 1, and the file's format chunk carries the reduced channel count. Timecode, scene, take and tape are unaffected.
Adding output channels:
Each take has an Add Output Channel button to append an extra channel to that take's output, which helps when you want to include an additional backup track not present in the original primary file.
Channels with no valid backup assigned output silence. A warning is printed to the console log if a backup file ID is no longer present or has no timecode overlap.
Reference Source: Session Files or CSV File
The Reference Files panel takes its list of takes from one of two places, chosen with the toggle on its right:
- Session Files (default) uses the files already loaded in the session file list. The panel reports how many were found and how many of them carry timecode, since timecode is what the matching is done on
- CSV File reads the take list from a sound report instead, for when the takes themselves are not to hand. See CSV Reference File
Scene and Take are optional throughout. They are used to label the output files and to make the match table readable; matching itself is done purely on timecode overlap, so takes with no scene or take number still conform correctly.
Match Table (Match Reference Files & Custom TC Range)
| Icon | Meaning |
|---|---|
| ✓ | Full match: take is fully within the backup recording |
| ⚠ | Warning: partial overlap, or sample rate differs between files |
Hover the warning icon to see details.
Trim In and Trim Out show the exact timecodes the backup will be cut at for each row, and Duration the length that produces. They are derived from the reference take, so they are the clearest way to confirm a match landed where you expected before exporting.
Remove All clears the Backup Recordings list in one step. Individual files are removed with the x on their own row.
Normalize Audio
All three conform modes include a Normalize audio to –1 dBFS checkbox. When enabled, each backup channel is analysed with a FFmpeg 'volumedetect' pass before extraction, and a gain adjustment is applied so the peak level reaches –1 dBFS.
This is particularly useful for 32-bit float backup recordings that were captured at low levels, but the option applies to any format. Format-specific normalization is not required. The same path is used regardless of bit depth or encoding.
Each conform mode saves its Normalize setting independently. Switching from Match Reference to Track Replace (for example) will restore the Normalize state you last used in that mode. Your per-mode preferences are preserved between sessions.
Output Format Options (Match Reference Files & Custom TC Range)
- Keep original: same bit depth and sample rate as the backup file (e.g., 32-bit float 48 kHz). Not available in Poly WAV Output mode
- Match reference: converts to the primary recorder's format (e.g., 24-bit 48 kHz), performed in a single pass
- Custom: manually choose sample rate and bit depth
Output Filename Templates (All Conform Modes)
Each conform mode has its own Output Filename section for custom naming schemes (see Custom Output Filenames). Match Reference, Custom TC Range, and Track Replace each remember an independent template. The preview always reflects what will be exported: with Poly WAV Output enabled it previews the poly job names, otherwise the per-take trim names. The Backup Name chip resolves to the backup recording each output (or each channel, for poly output) comes from, and Sample Rate / Bit Depth follow the Output Format selection above.
Notes
- Backup files can be mono or polyphonic. Channel and track names are preserved from the backup in all modes
- Files larger than 4 GB (RF64 format) are fully supported
- Trimmed files can be loaded back into the session for use in sound reports and will display the correct start timecode
- Match reference files mode: primary files require timecode metadata (bEXT or iXML); scene/take labels are optional. Output files are named 'Scene_Take_BackupFileName.wav' (e.g., '12A_T1_ZOOM0001.wav'); scene/take are omitted if absent from the primary file's metadata
- Custom TC range mode: no primary files required. Frame rate and drop-frame are read from the backup file's metadata. Output files are named 'Scene_Take_BackupFileName.wav'; if no scene/take is entered, the file is named after the backup file. If multiple backup files are loaded with different frame rates, the first file's frame rate is used for TC input validation. When Poly WAV Output is enabled, a single poly WAV is produced spanning the full TC window, with silence padding for any backup that only partially overlaps; the file is named 'Scene_Take_poly_backup.wav'
- Track Replace mode: primary files must be polyphonic WAV files with timecode metadata. Output files are named after the primary file. Track names in iXML metadata are updated to reflect the final channel layout of each output file
- Poly WAV Output mode (both Match Reference and Custom TC Range): backup files can be mono or polyphonic. Each backup channel that overlaps the reference TC range becomes one output channel. Split recordings sharing a track name are stitched automatically. Silence is inserted wherever backup audio does not cover the full window. Channel order follows the Backup Recordings list order and can be rearranged per output file in the Poly Output Preview. In Match Reference mode, Merge with reference adds each take's own channels to its poly file, always as separate channels even where a track name matches a backup's
Custom Output Filenames
Every operation that writes new files (Rename, Convert Format, Export Mix, Split Poly, Combine Mono, Combine Poly, Combine Group, and all three Conform modes) includes an Output Filename section where you can define your own naming scheme instead of the automatic one.
Automatic vs. Custom
- Automatic (default): files are named exactly as in previous versions (e.g. 'SceneT01.wav' for Rename, '{name}_mix.wav' for Export Mix, 'Scene_Take_BackupName.wav' for Conform). Nothing changes unless you opt in.
- Custom: build the filename from metadata attribute chips and free text. The first time you switch to Custom, the template is pre-filled to reproduce the automatic name, so you can start from a familiar base.
Building a Template
- Expand the Output Filename section and select Custom
- Click attribute chips (Scene, Take, Start TC, …) to append them to the Result row; click Free Text to insert your own text (prefixes, suffixes, version tags)
- Drag chips in the Result row to reorder them; click a chip's × to remove it
- Choose a Separator (underscore, dash, dot, space, or none) inserted between every part
- Check the live Preview, which shows the resulting names for the actual files about to be processed
Your template is saved automatically per operation and restored every time you open the app. Configure it once and it applies until you change it. Each operation has its own independent template, including a separate one for each Conform mode.
Available Attributes
Every operation offers a shared metadata core (Project, Scene, Take, Tape, Date, Start TC, End TC, Sample Rate, Bit Depth) plus operation-specific chips. Free Text is always available. Full matrix:
| Chip | Rename | Convert | Export Mix | Split Poly | Combine Mono | Combine Poly | Combine Group | Conform: Match Ref | Conform: TC Range | Conform: Track Replace |
|---|---|---|---|---|---|---|---|---|---|---|
| Name (source file) | ✓ | ✓ | ✓ | ✓ | ||||||
| Project | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓¹ | ✓ |
| Scene | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Take | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Tape | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓¹ | ✓ |
| Date (YYYY-MM-DD) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓¹ | ✓ |
| Start TC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| End TC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Originator (recorder) | ✓ | ✓ | ✓ | |||||||
| Sample Rate² | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Bit Depth² | ✓ | ✓ | ✓³ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Channels (count) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Circled | ✓ | ✓ | ✓ | |||||||
| Track Name | ✓ | |||||||||
| Channel Number | ✓ | ✓ | ||||||||
| Group Name | ✓ | ✓ | ||||||||
| Primary Name | ✓ | ✓ | ✓ | |||||||
| Secondary Name | ✓ | |||||||||
| Backup Name | ✓ | ✓ | ||||||||
| Automix Mode (GS/IG) | ✓ | |||||||||
| Mix Format (stereo/mono) | ✓ | |||||||||
| Format (WAV/MP3/AAC) | ✓ | ✓ | ||||||||
| Free Text | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
¹ Custom TC Range has no reference file, so Project, Tape, and Date are read from the backup recording's metadata.
² Sample Rate and Bit Depth describe the output file, not necessarily the source: Convert and Export Mix report the format selected in the dialog, Combine Poly and Combine Group follow their own Match primary/first file / Match secondary / Custom selection, and Conform follows the Output Format options. "Keep original" and unconverted operations report the source format.
³ In Export Mix the chip is labelled Quality: it resolves to the bit depth for WAV output (e.g. '24bit', '32f') and to the selected bitrate for MP3/AAC output (e.g. '320kbps').
When Add the mix to the poly WAV is enabled, that merged file gets its own Output Filename section, inside the same panel as its other options, with the same chips as Export Mix except Format, which is dropped because the merged file is always a WAV. Sample Rate and Bit Depth there describe the source poly, since the embedded mix always matches it.
Behaviour Details
- Missing metadata is skipped: if a file has no Scene, the Scene chip and its separator are simply omitted; no doubled separators
- Fallback to automatic: if a template resolves to nothing (or only free text remains because every metadata chip was empty), the automatic name is used instead, so files are never named after leftover static text
- Duplicates: when several outputs in one batch resolve to the same name, every one of them is numbered, starting at '_1' ('name_1', 'name_2', 'name_3', …). The first file is numbered too, which is what lets a set of mono outputs load back as a multi-mono family, for example a Split Poly template of just 'Name' on an 8-channel file produces 'S001T01_1.wav' … 'S001T01_8.wav'. Names that occur only once in the batch are left exactly as the template resolved them, with no number appended. If a custom-named file already exists in the output folder, the new file is suffixed rather than overwriting it
- Sanitization: characters that are invalid in filenames ('/ \ : * ? " < > |') are removed and spaces become underscores
- Multiple values expand with your separator: a Split Poly output carrying two channels lists both track names/numbers; a Conform poly output built from several backup recorders lists the file each channel starts in
Sync by Audio

Align recordings by their audio content instead of relying on embedded timecode, then write the result to every file's metadata, assemble the aligned session into a single poly WAV, or both. This is built for two common situations: syncing a backup recorder that carries no timecode of its own to a main recorder that does, and aligning recordings that were never given timecode at all.
Your original recordings' audio is never modified. Sync by Audio computes offsets and, when you save, writes timecode metadata. The optional poly export writes a new file of its own and leaves every source exactly as it was.
How to Use
- Open the Sync tab. The Loaded Files panel on the left lists every file currently loaded in the app (poly, mono, or multi-mono groups each count as one selectable item).
- Check the files you want to sync, at least two of them. Each checked file (or multi-mono group) appears as its own lane with a waveform.
- If a file has more than one channel, pick which one to match on from the dropdown next to its name (see Choosing the Channel below). The default, channel 1, is right most of the time.
- Click Align by Audio. Every non-reference lane is analyzed against the reference lane using audio cross-correlation, and each lane's waveform block moves to its computed offset. A match-confidence percentage is shown next to each lane.
- Press Play (or 'Space') to listen to every lane together and confirm the sync sounds right. Use Mute, Solo, and the volume slider per lane to isolate what you're listening to.
- Fine-tune if needed: drag a lane's waveform block directly, or use the ±1 frame / ±10 ms / ±1 ms nudge buttons next to each lane.
- Set the Anchor TC and frame rate if the reference file has no timecode of its own (see Timecode and Frame Rate below).
- Click Save & Export…, choose whether to write timecode, export a poly WAV, or both, and review before writing.
The Reference Lane
One lane is always the reference, the anchor everything else is aligned to, shown with a blue waveform and an anchor icon. By default, the first file with existing timecode becomes the reference. Click the anchor icon on any other lane to make it the reference instead; every other lane's offset is re-expressed relative to the new reference automatically.
Alignment and Confidence
Alignment uses cross-correlation of each file's audio content, not a simple waveform match, so it works even when files were recorded at different levels or through different microphones. The confidence percentage shown per lane reflects how distinct the correlation peak is, not how much of the audio matches:
- A single sharp, distinctive sound (a slate clap, a door slam) tends to produce a high, sharp confidence score.
- Continuous, similar-sounding audio (room tone, ambient wind, long dialogue with little variation) naturally produces a lower score even when the alignment is correct, because many nearby offsets correlate almost as well.
- Confidence below roughly 25% is flagged as a low-confidence match. Treat this as a prompt to verify by ear and nudge manually if needed, not as a sign the sync definitely failed.
Always confirm alignment with Play before saving, regardless of the confidence score.
A low score is often a channel problem rather than an alignment problem. Alignment matches one channel per lane, and by default that is channel 1. If channel 1 on that recorder happens to be a lav that stayed closed, there is little for the matcher to work with even though the boom on another channel of the same file lines up perfectly. Before nudging by hand, try pointing the lane at a livelier channel and running Align by Audio again.
Choosing the Channel
Each lane with something to choose from has a dropdown next to its file name:
- Poly files list their channels, named from the file's own track metadata where it has them, so you see 'Ch 3 · Boom' rather than a bare number. The default is channel 1.
- Multi-mono groups list their member files instead, since each member is already a single channel. The default, Mix (all N), sums every member. Pick a single file to match on just that one.
- Standalone mono files have nothing to choose, so no dropdown appears.
The choice applies to all three places the lane's audio is used: what it is matched on, what its waveform block draws, and what you hear when you audition it. So what you see, what you hear and what you align on are always the same signal. Changing it clears that lane's match confidence and returns it to pending, since the previous result was correlated against a different signal; the lane's current offset is kept, so nothing jumps on screen, and a manual nudge stays manual. Changing it mid-preview restarts the audition on the new channel.
The selection lasts for the session and is not saved between app launches.
Manual Adjustment
- Drag a lane's waveform block left or right to nudge its offset freely. The reference lane cannot be dragged.
- Nudge buttons next to each non-reference lane move it by exactly ±1 frame (at the session frame rate), ±10 ms, or ±1 ms.
- Revert (the circular arrow icon) appears once a lane has been moved manually, and restores the last automatically-computed offset.
- If a lane's existing embedded timecode disagrees with the audio-based alignment by more than one frame, this is flagged as a warning in the Save confirmation dialog. Audio alignment always takes priority, since that is what Sync by Audio is measuring.
Waveform Display
- Waveform boost (the slider next to the waveform icon in the toolbar) increases the visual amplitude of quiet recordings so they're visible alongside louder ones. This affects the display only, never playback level or the saved audio.
- Zoom works the same as the Playback tab's waveform zoom: 'Ctrl/Cmd + =' / 'Ctrl/Cmd + -' to zoom in/out (centred on the playhead), 'Ctrl/Cmd + 0' to reset to the full overview, or use the toolbar buttons. Scroll/trackpad gestures also match: Shift+scroll (or a horizontal swipe) pans, Ctrl/Cmd+scroll zooms.
- Each lane's waveform block reflects the file's actual start and end position, so nudging or aligning a file visibly moves its block. The borders are only drawn where the file's true start/end is currently in view.
Audition Playback
Play mixes every selected lane together into a single synchronized preview so you can judge the alignment by ear, independent of the main Playback tab and the detached Playback window (only one can play at a time: opening the Sync tab stops the other, and leaving the Sync tab stops the Sync preview). Per-lane controls while previewing:
| Control | Action |
|---|---|
| Mute | Silences that lane |
| Solo (S) | Isolates that lane |
| 'Ctrl/Cmd' + click Solo | Exclusive solo, solos only this lane and unsolos others |
| Volume slider | Adjusts that lane's level in the preview mix |
| Double-click volume slider | Reset gain to unity (0 dB) |
| Level meter | Shows real-time signal from that lane during playback |
Checking or unchecking a file, or re-running Align by Audio, while the preview is playing seamlessly restarts the mix with the updated lane set or offsets. You don't need to stop playback first.
Timecode and Frame Rate
- If the reference file already has embedded timecode, its start time is used as the anchor automatically, and its frame rate is adopted for the session whenever the file's metadata carries one.
- If the reference file has no timecode, an Anchor TC field appears. Type a starting timecode for the reference lane and choose a frame rate from the dropdown. A sensible starting value is suggested automatically from the file's recording time-of-day when available.
- Snap to Frame rounds every lane's computed start time to the nearest frame boundary before saving. Off (the default), saved timecode is sample-accurate to the audio alignment, which may land a fraction of a frame from a clean boundary; on, every saved timecode lands exactly on a frame, matching how video editing software reads embedded timecode, at the cost of up to half a frame of position error relative to the true audio alignment.
- Clock drift: if two recorders' clocks run at very slightly different speeds, a long file can drift out of sync over its length even when it starts perfectly aligned. Sync by Audio detects this (comparing alignment near the start and end of the overlap) and shows a drift warning, but does not time-stretch audio to compensate. The saved timecode is exact at the start of the file.
Saving and Exporting
Save & Export… is the single way out of a session. It opens one dialog with two independent choices: write the aligned timecode into your original recordings, export the aligned session as a poly WAV, or do both in one pass. Neither depends on the other, and the button names whichever you have chosen: Write Timecode, Export Poly, or Write TC & Export Poly.
Writing timecode
Ticking Write the aligned timecode to the original files lists every file's current and new timecode before anything is written. Files whose computed timecode doesn't change are shown as unchanged and skipped. Review any warnings (low confidence, clock drift, a timecode conflict, or a value wrapping past midnight) before confirming.
What gets written, per file:
- Start timecode (bEXT TimeReference and iXML samples-since-midnight) and the matching End timecode for display
- Frame rate and drop-frame flag, so the file's timecode is self-describing and usable by every other timecode-aware feature in the app (Conform, Combine Group auto-matching, sound reports, and so on)
A multi-mono group is written as a single lane. Moving or saving it applies the same timecode to every member file in the group.
Exporting an aligned poly WAV
Ticking Export an aligned poly WAV reveals the rest of the options and assembles the whole session into one multi-channel WAV. Each recording sits at the position you aligned it to, with silence where a file has not started yet, so the file opens in an NLE already in sync. Source audio is never modified by the assembly.
- Channel order follows the sync file list. Drag a row by its handle in the dialog to change where its channels land in the poly. This changes the exported layout only. It never moves a lane, or its audio, in time.
- Include the anchor file can be turned off when the anchor is only there to give the others something to line up against.
- Output Format either matches the widest source (highest sample rate, deepest bit depth, float if any source is float) so assembling never degrades one, or takes an explicit sample rate and bit depth.
- Normalize audio to –1 dBFS applies two-pass peak normalization, as in Conform and Audio TC.
- Multi-mono groups spread into their member files, so their channels land exactly as a poly file's would. Channel names come from each file's track names, with the file name added where two files use the same name.
- Poly File Name defaults to the anchor file's name with '_synced' appended. Type your own to override it. '.wav' is added for you.
- Output Directory is where the poly is written: browse to a folder or type a path. The export button stays disabled until one is set, and nothing is ever written into the source folders.
These options, including whether each of the two boxes is ticked, are remembered between sessions.
When both boxes are ticked, timecode is written first, so a problem during assembly never costs you that write. Writing timecode is not a prerequisite for the export, though. The poly is laid out from the alignment itself, not from the files' stored timecode, so a session showing No TC everywhere exports correctly with the timecode box left unticked. The poly's scene, take, tape and originator come from the anchor file (or, when the anchor is excluded, from the earliest file in the poly), and its frame rate is the one selected in the toolbar. Its start timecode is the earliest position on the assembled timeline, which is what the audio actually begins at.
The estimated channel count, length, format and file size are shown before the write. The timeline spans from the earliest lane to the latest, so lanes far apart in time produce a long, mostly silent file. A gap over ten minutes, or an estimate over 4 GB, is flagged in amber. If the aligned timeline crosses midnight, that is flagged too: the poly's own start timecode wraps into the next day, as timecode must, while the channels stay correctly spaced relative to each other.
When the export finishes, Wave Copilot reports what it wrote and asks whether to Add to List. Choosing Don't Add leaves the poly on disk untouched, so an export never joins the takes you are still syncing unless you say so. Adding it puts it in the file list without selecting it as a lane.
Audio TC

Read SMPTE timecode that was recorded as audio at the head of a file, write it into the file's timecode metadata, and optionally mute the burst.
This is for the rig without a timecode-capable transmitter. Jam a timecode generator into the transmitter or recorder track, record a few seconds of it, then plug the mic in and shoot. The camera and the sound file now share a clock, but the sound file's timecode only exists as an audible burst at its head. Audio TC turns that burst into real BWF timecode, after which the file behaves like any recorder file: Conform, Combine Group, Sync by Audio and Sound Reports all work with it, and it lines up in an NLE.
How to use:
- Load your files. Every loaded file is scanned, so there is nothing to select first
- Switch to the Audio TC tab ('Ctrl/Cmd + T')
- Choose how much of each file to scan (30 seconds by default, which is enough for any normal jam burst). Leave Timecode offset at 0 unless you have established that your generator needs it
- Click Scan for LTC and review the results table
- Tick the files to write, optionally enable Mute the LTC audio, and click Stamp Timecode
The results table:
| Column | Meaning |
|---|---|
| Timecode from | Which channel's timecode is written to the file. It shows the channel Wave Copilot picked, marked (found), using the track's name from the file's metadata where it has one, for example 'Ch 5 · Mix L'. When the burst was found on more than one channel, all of them are listed underneath in channel order; every one is muted, whichever supplies the timecode. Choosing a different channel also forces a full scan of it, which can recover a burst too weak for the initial one-second probe |
| LTC at head | The first timecode read out of the burst |
| Rate | Frame rate and drop-frame, detected from the burst. The measured rate is shown underneath; override if needed |
| Burst | The region that will be muted. With the burst on several channels this shows the widest of them; each channel is muted over its own range |
| Frames | How many consecutive timecode frames were decoded |
| Conf. | How well the burst decoded. Rows below 50% are left unticked for you to check |
| Current TC | The file's existing timecode, if any. This is what will be replaced |
| New file TC | The exact timecode that will be written. If the file already carries timecode, the difference is shown underneath in frames and milliseconds. See When the decoded timecode disagrees with the file below |
Status flags:
- No LTC found: nothing decodable in the scanned region. If the burst starts later in the file, scan further in
- Rate ambiguous: the burst was too short to tell 29.97 from 30 (or 23.976 from 24); these differ by only 0.1%, so about 20 frames are needed. Set the rate manually
- Burst truncated: timecode was still running at the end of the scanned region, so the burst may continue past it. Scan further in before muting
- Reversed LTC: the burst was recorded backwards. Not decoded
- Channels disagree: the burst was found on several channels but they read different timecodes, more than a frame apart. Two copies of one jam feed should agree, so check which channel is really the timecode before writing
- Overwrites TC: the file already has timecode, which will be replaced
When the decoded timecode disagrees with the file:
If a file already has timecode, the difference against the decoded burst is shown under the new value, in frames and milliseconds. A disagreement is not necessarily an error, and the size of it tells you which:
- A few milliseconds: the delay of the path the burst travelled. A wireless transmitter and receiver add a couple of milliseconds before the signal reaches the recorder's input, so the burst lands fractionally later in the file than the generator sent it
- Exactly one frame: a convention difference. Generators and readers do not all agree on whether the code word transmitted during a frame belongs to that frame or the one before it. Set Timecode offset to '+1' or '-1' frame to line them up
- A whole second or more: the two clocks were jammed at different times, or the file's existing timecode came from somewhere else entirely. The burst is normally the one to trust, which is the point of the feature
Watch the millisecond figure rather than the two timecode strings. The existing timecode is rendered at the frame rate stored in the file, and the decoded one at the rate read from the burst; where those differ, the two strings can read identically while being a frame apart, or read a frame apart while being nearly identical.
Muting:
Muting silences only the channels the timecode was found on, over the burst region. Anything else recorded at the same time on other tracks is kept. A short fade is applied at any edge of the region that borders real audio.
The same jam feed frequently lands on more than one track: an ISO channel and the mix L/R, or both legs of a stereo pair. Every channel carrying it is found and silenced where it sits, each over its own range, since the copies rarely start and stop at exactly the same moment. A six-track file with the burst on channel 1 and on the mix pair comes back with channels 1, 5 and 6 cleaned and channels 2–4 untouched.
Muted copies are written to an output folder you choose. Your original recordings are never modified. If a burst is mis-read, or the region is not the one you expected, the original is still there. Tick Also write timecode to the original files if you want the sources stamped too; that writes metadata only and leaves their audio alone.
Assembling a synced poly WAV:
Assemble everything into one poly WAV, synced by timecode combines the whole selection into a single multi-channel file instead of separate ones. Every channel of every file becomes a channel of the poly, placed at its decoded timecode. A take that started five seconds after another begins five seconds into the poly, with silence before it. This is the same idea as Poly WAV Output in Conform's Match Reference mode, except the timeline comes from the decoded bursts rather than from a reference take.
Channel order is the order of the results table, and you can set it: drag a row by the handle on its left. Sorting the main file list also carries through. Reordering changes only which channel a file lands on. Where it sits in time comes from its timecode, so moving a row never moves the audio.
Channels are named from each file's track metadata. Where two files use the same track name, the file name is added so they stay distinct. Two rigs both labelling a channel 'MixL' produce 'MixL (take1)' and 'MixL (take2)' rather than being merged.
When this is on, the individual muted copies are not kept: the poly is the output, and it contains the muted audio if muting is on.
Output Format works as it does in Conform. Match the widest source takes the highest sample rate and the deepest bit depth found among the selected files, and float if any one of them is 32-bit float, so assembling never degrades a source; the narrower files are converted into that format on the way in. The resolved format is shown next to the option. Choose Custom to set the sample rate and bit depth yourself. Normalize audio to –1 dBFS applies the same two-pass peak normalization used elsewhere in the app.
Above the button you will see what the poly is going to be: channel count, length, format and approximate size. Read this line. The poly spans from the earliest file to the latest, so a selection whose timecodes are hours apart produces hours of silence with a few seconds of audio in it. Two seven-second takes stamped eight hours apart assemble into a perfectly correct 33 GB file. Anything with a long silent gap is flagged in amber and asks for confirmation; if the takes are not from one continuous period, select a smaller group.
Adding the results to the file list:
Nothing is loaded into the main file list behind your back. When a run finishes it reports what it wrote and asks whether to add the new files; declining leaves them on disk exactly as written.
Notes:
- The written timecode is sample-accurate, not rounded to the nearest frame, so a file that started part-way through a frame keeps that offset
- Frame rate, drop-frame and the timecode itself are written to both the 'bext' chunk and iXML
- Extend mute to start of file (on by default) pulls the mute back to sample 0 when the burst starts within half a second of it
- A multi-mono group is treated as one take with as many channels as it has member files, exactly like a poly: every member is scanned, all of them appear in the channel dropdown named from their own track names, and the burst is found wherever it actually sits. All members are stamped with the same timecode. Muting silences only the members carrying the burst, but copies every member to the output folder, with the others copied through untouched, so what lands there is a complete group that loads back as one take
- Leave Mute the LTC audio off to write timecode only and touch no audio at all
- Reverse-playback timecode and frame rates above 30 fps (48/50/59.94/60) are not supported. SMPTE timecode generators jam at 24, 25 or 30 fps and their NTSC pulldowns, which are the rates Audio TC reads
Sound Reports

Generate professional sound reports for production documentation.
Creating a Report
- Load your audio files
- Go to the Reports tab
- Optionally load a saved Template to restore all settings at once
- Configure report options across the Report Settings and Header & Recording tabs
- Export as PDF or CSV
Templates
Templates save and restore the complete report configuration: all settings, columns, file order, header info, and recording info in one click.
- Load: Select a template from the dropdown. All settings are applied immediately.
- Save: Enter a name in the name field and click Save. If a template with that name already exists it is overwritten.
- Delete: Select a template from the dropdown, then click Delete.
The Templates section is always visible above the tabs so you can save at any point, whether you are on Report Settings or Header & Recording.
Report Settings Tab
File Order:
Controls the sort order of files in the exported report:
- File Name - Alphabetical order by file name
- Timecode - Ascending start timecode (HH:MM:SS:FF)
- Scene / Take - Alphabetical by Scene, then by Take (numeric-aware: Take 2 before Take 10)
- File Creation Date - Ascending filesystem creation date/time
Include Files:
- Non-Circled Takes - Include regular takes
- Circled Takes - Include selected/circled takes
- Wild Tracks - Include non-sync audio
Column Selection: Check the columns you want to include in the report:
- Scene, Take, File Name, Track Names
- Timecode, Duration, Sample Rate
- Notes, and more
Track Names Display:
- None - Don't show track names
- Column - Track names as dedicated T1, T2… columns. The preview and PDF export are limited to the first 8 tracks; CSV export includes all tracks.
- Row - A single "Tracks:" row beneath each file listing every track inline
Additional Rows:
- Notes (row format) - Adds a "Notes:" row beneath each file; removes the Notes column
Header & Recording Tab

Enter project and session details that appear in the report header.
Each field has two icon controls in its label row:
- ↺ (Live): Only shown on fields that can be auto-derived (e.g. Date, Folder, Roll, Sample Rate). When active (blue), the field tracks your files: it re-derives when the file selection changes, when a template is loaded, and the moment you switch the icon on. Useful so the Date always reflects today and technical fields always match the current session. When grey, the field keeps whatever value it has and a template load restores the saved value.
- 👁 (Include): Controls whether the field appears in the exported PDF/CSV. Blue = included; grey = excluded from output even if the field has a value.
These settings are saved as part of a template, and the Header Information settings are also remembered between sessions.
Typing into a live field switches its ↺ icon off automatically. Your text is treated as a manual override and won't be overwritten when the file selection changes. Click ↺ again to hand the field back to the metadata. Clearing the file list leaves live fields showing their last values rather than blanking them.
Header Information fields: Project, Producer, Director, Job, Date, Location, Folder, Sound Mixer, Phone, Email, Client, Boom Op., Prod Co., Prod Co. Tel#, Comments. Of these, only Project (from file metadata), Folder (the parent folder name of the first file), and Date (today's date) can be derived; the rest are typed in and remembered between sessions.
Recording Information fields: Roll, Recorder, Media, File Type, Sample Rate, Frame Rate, Bit Depth, Tone Level, Mics. All except Tone Level (which defaults to -20 dBFS) and Mics auto-populate from the first file's metadata when files are loaded.
Export Formats
PDF Export:
- Professional formatted document
- Includes header and recording information (non-excluded, non-empty fields only)
- Table with selected columns
- Suitable for printing or digital distribution
An exported PDF report looks like this. The page is Letter landscape, with the header and recording information laid out in two columns above the table of takes:

CSV Export:
- Comma-separated values file
- Opens in Excel, Google Sheets, etc.
- Useful for further data processing
- When using Column track name mode, all tracks are exported regardless of count (no 8-track limit)
Preview
The live preview table at the bottom of the page shows up to 5 files using the current settings.
Format Conversion

Convert WAV files to different formats, sample rates, and bit depths. MP3 and AAC (M4A) output includes the start timecode in the filename and embedded metadata.
Output filenames follow the source name by default (with the start-timecode suffix for MP3/AAC); the dialog's Output Filename section lets you define your own scheme instead. See Custom Output Filenames. When a custom scheme is active, it fully replaces the automatic name including the timecode suffix (add the Start TC chip if you want to keep it).
Opening the Converter
- Select files in the file list
- Right-click and choose Convert Format...
- Or go to File > Convert Format... ('Ctrl/Cmd + K')
Conversion Options
Output Format:
- WAV (default): lossless, preserves all metadata (iXML, bEXT, cue points)
- MP3: lossy compression; start timecode appended to filename and written as ID3 TXXX tags
- AAC (M4A): lossy compression; start timecode appended to filename and written as format tags
MP3 Bitrate (when MP3 is selected):
- 128 kbps
- 192 kbps
- 256 kbps
- 320 kbps (default)
AAC Bitrate (when AAC (M4A) is selected):
- 128 kbps
- 192 kbps
- 256 kbps (default)
Poly Channel Handling (MP3 and AAC only):
When the source WAV has more than 2 channels (poly recording), you must choose how the extra tracks are handled:
- Downmix all channels to stereo (default): FFmpeg mixes all tracks together using its standard matrix. Every channel contributes to the stereo output.
- First two channels only (Ch 1 = L, Ch 2 = R): Only channels 1 and 2 are kept; all other tracks are discarded. Useful when the first two channels are a stereo mix or a specific track pair you want to isolate.
Mono and stereo source files are unaffected by this setting.
Sample Rate (44.1 kHz and 48 kHz available for MP3 and AAC; full range for WAV):
- 44.1 kHz (CD quality)
- 48 kHz (Video standard, default for lossy formats)
- 88.2 kHz (WAV only)
- 96 kHz (WAV only)
- 176.4 kHz (WAV only)
- 192 kHz (WAV only)
Bit Depth (WAV only):
- 16-bit (CD quality)
- 24-bit (Professional standard)
- 32-bit (Integer)
- 32-bit Float (Maximum headroom)
Dither (when reducing bit depth, WAV only):
- None
- Rectangular TPDF
- Triangular TPDF
- Lipshitz Noise Shaping
Resampling Quality (shown when sample rate conversion is needed):
- Linear (fastest)
- Cubic (good balance)
- Sinc (high quality)
- SoX Resampler (highest quality)
Conversion Process
- Choose output format (WAV, MP3, or AAC (M4A))
- Configure format-specific options (bitrate, channel handling, or bit depth)
- Select output directory
- Click Convert
- Progress is displayed for each file
- Review results when complete
Output files are organised in a subfolder named after the target format:
- WAV: '48000Hz_24bit/'
- MP3: 'MP3_320kbps/'
- AAC (M4A): 'AAC_256kbps/'
Audio Level Options
Normalize audio to −1 dBFS
Each channel of every selected file is independently measured and brought to exactly −1 dBFS in a single conversion pass. No manual split/adjust/combine workflow is needed. Works for all channel counts including large multi-channel RF64 files.
- WAV output: normalized to −1 dBFS.
- MP3 / AAC output: normalized to −2 dBFS to leave headroom for inter-sample peaks that lossy encoding introduces.
Prevent Clipping
Reduces the gain only when the source audio would clip after conversion, without boosting quieter material. Useful when converting from 32-bit float files that may contain values above 0 dBFS.
- WAV output: peak is capped at −1 dBFS.
- MP3 / AAC output: peak is capped at −2 dBFS.
Only one option can be active at a time. When Normalize audio is enabled, the clipping check is skipped since normalization handles the output level regardless.
Other Features
- Timecode in filename: For MP3 and AAC, the start timecode (matching the Start TC column in the file list) is appended to the filename in 'HH-MM-SS-FF' format, e.g. 'filename_11-02-55-00.mp3'
- Timecode in metadata: Same start timecode is embedded in the file's metadata tags (see sections below)
- Metadata preservation: iXML, bEXT, and cue points are fully preserved for WAV output
- Batch conversion: Process multiple files at once
- Parallel processing: All files convert concurrently regardless of output format
MP3 Timecode Preservation
When converting to MP3, the start timecode (as shown in the Start TC column) is written as ID3v2 TXXX (user-defined text) tags. Additional bEXT fields are included when present in the source file.
| ID3 Tag | Content |
|---|---|
| 'TXXX:BWF_TIMECODE' | Start timecode as 'HH:MM:SS:FF' |
| 'TXXX:BWF_SAMPLE_RATE' | Source sample rate |
| 'TXXX:BWF_ORIGINATOR' | Recorder name (if present) |
| 'TXXX:BWF_ORIGINATOR_REFERENCE' | Originator reference (if present) |
| 'TXXX:BWF_DESCRIPTION' | Scene/take description (if present) |
Read tags with: 'ffprobe -v quiet -print_format json -show_format file.mp3'
MP3 does not support bEXT, iXML, or cue point chunks natively. Use WAV output when full metadata round-trip is required.
AAC (M4A) Timecode Preservation
When converting to AAC (M4A), the start timecode (as shown in the Start TC column) is written as key-value metadata atoms in the M4A container, readable via 'ffprobe'.
| Tag Key | Content |
|---|---|
| 'BWF_TIMECODE' | Start timecode as 'HH:MM:SS:FF' |
| 'BWF_SAMPLE_RATE' | Source sample rate |
| 'BWF_ORIGINATOR' | Recorder name (if present) |
| 'BWF_ORIGINATOR_REFERENCE' | Originator reference (if present) |
| 'BWF_DESCRIPTION' | Scene/take description (if present) |
Read tags with: 'ffprobe -v quiet -print_format json -show_format file.m4a'
Note: DaVinci Resolve cannot read timecode from audio-only M4A files. Use WAV if timecode sync in an NLE is required.
Export Mix

Export a rendered mix of each loaded file with your current mixer settings applied: per-channel gain, pan, mute, and solo. Output can be stereo (default) or mono. This is not a format conversion: Export Mix captures your creative mix decisions and writes them into a new audio file.
Export Mix vs. Convert Format:
| Export Mix | Convert Format | |
|---|---|---|
| Applies mixer settings | Yes | No |
| Output channels | Stereo (2-channel) or Mono (1-channel) | Preserves source channel count (WAV) or downmixes (MP3/AAC) |
| Use case | Deliver a mix to an editor | Archive or transcode a file as-is |
| Output track names | MIX L / MIX R (stereo) or MIX (mono) | Preserved from source |
Opening Export Mix
Go to File > Export Mix... ('Ctrl/Cmd + D')
The dialog opens showing all currently loaded files and the mixer state that will be applied to each one.
Output files are named '{name}_mix.wav' by default, with a '_GS' or '_IG' suffix when automix is applied. The dialog's Output Filename section lets you define your own scheme instead. See Custom Output Filenames. A custom scheme replaces the automatic suffixes entirely; use the Automix Mode chip to keep the GS/IG tag, and note the Quality chip resolves to the bit depth for WAV or the bitrate for MP3/AAC.
How Mixer Settings Are Applied
Each file uses its own saved mixer state:
- Gain: per-channel level adjustment (−48 dB to +12 dB) is applied to all output modes
- Pan: positions each channel in the stereo field using equal-power panning. Not applied in mono mode. Pan is ignored when exporting mono since there is only one output channel
- Mute: muted channels contribute nothing to the output
- Solo: if any channel is soloed, only soloed channels are rendered; all others are silenced
- Automix: if enabled for the file (or forced via the batch Automix option), dynamic per-channel gain is applied on top of the fader settings during the offline render
If you haven't changed the mixer for a file, it exports with unity gain (0 dB), centre pan, and all channels active, giving a flat downmix of all source channels.
Tip: Set the mixer how you want it while listening to the file, then open Export Mix. The saved state for each file is used, so you can configure multiple files before exporting them all at once.
Export Mix Options
The dialog is arranged around the two things a run can produce. Export the mix as a separate file comes first, with everything that describes that file grouped beneath it: format, bit depth or bitrate, sample rate, and its output filename. Add the mix to the poly WAV follows, with its own placement and filename options. Below both sit Export as Mono and Automix, which shape the mix itself and therefore apply to whichever outputs you asked for.
Untick the separate file and its whole group of format settings disappears, since nothing is left for them to describe.
Both outputs are free to untick, including both at once. A run that would write nothing is caught at the Export Mix button, which is greyed out with a note saying what to choose, rather than by preventing the tick. The same applies when adding the mix to the poly is the only output you asked for but none of the loaded files is a poly WAV.
Export the mix as a separate file:
On by default. Untick it, with the poly option on, when the poly carrying the mix is the only deliverable you want. A file the mix cannot be added to, such as a mono file or a multi-mono group, still gets its separate mix.
Output Format:
- WAV (default): lossless, preserves all metadata (iXML, bEXT, cue points)
- MP3: lossy compression; start timecode appended to filename and written as ID3 TXXX tags
- AAC (M4A): lossy compression; start timecode appended to filename and written as format tags
Bit Depth (WAV only):
- 16-bit
- 24-bit (default)
- 32-bit (Integer)
- 32-bit Float
Sample Rate (WAV):
- Preserve source (default)
- 44.1 kHz / 48 kHz / 88.2 kHz / 96 kHz / 176.4 kHz / 192 kHz
Sample Rate (MP3 and AAC):
- 44.1 kHz
- 48 kHz (default)
MP3 Bitrate (when MP3 is selected):
- 128 kbps / 192 kbps / 256 kbps / 320 kbps (default)
AAC Bitrate (when AAC (M4A) is selected):
- 128 kbps / 192 kbps / 256 kbps (default)
Mono:
- When checked, all channels are summed to a single mono track. Gain, mute, solo, and phase invert are applied; pan is ignored.
- When unchecked (default), the output is stereo.
Add the mix to the poly WAV: {#add-mix-to-poly}
Writes the mix back into the poly file it came from, so one pass gives you both the mix and a poly WAV that carries it. This is the same merge as Combine Poly, with the mix you just rendered as the secondary file, and it saves you from exporting a mix and then combining it by hand.
- Mix Channel Placement: Before Poly Channels puts the mix channels first, After Poly Channels appends them at the end. Your choice is saved and restored the next time you open the app. Whether you also get the mix on its own is set by Export the mix as a separate file at the top of the dialog. Leave it ticked for both files; untick it when the poly is the only deliverable you want, and the mix is discarded once it has been merged in.
The embedded mix always matches the source file's own sample rate and bit depth, so the original channels are copied through with no conversion. The Bit Depth and Sample Rate options above therefore apply only to the separate mix file. If you export to MP3 or AAC, you still get that lossy mix on its own, and the mix added to the poly is PCM at the source's format.
The source file on disk is never modified. The merged files are written to their own 'Poly_With_Mix/' subfolder, named '
They get a folder of their own rather than sharing the mix's because the two rarely have the same format: the mix follows the options above while each merged poly follows its own source, so a batch can produce 24-bit and 32-bit float polys side by side and no single 'Mix_
Note: This is available for poly WAV files only, since the mix has to be added to an existing multi-channel file. Mono files and multi-mono groups export their separate mix as usual and are listed as a warning in the result. A file is also skipped if adding the mix would push it past the 64-channel limit.
Automix Option: {#automix-option}
Controls whether Automix is applied during the export render, and whether it is applied uniformly or per file:
| Setting | Behaviour |
|---|---|
| As configured | Each file is exported using the Automix setting you configured for it in the mixer. Files with Automix off export as a straight fader mix. |
| Gain Sharing for all files | Forces Gain Sharing on every file in the batch, regardless of individual settings. |
| Intelligent Gate for all files | Forces Intelligent Gate on every file in the batch, regardless of individual settings. |
The default is As configured. If you have not set Automix on any file, this is equivalent to a straight fader mix for all files.
Note: When Automix is applied during export, the rendering engine processes the entire file offline in a streaming pass, much faster than real time. The output faithfully reflects the same dynamic gain decisions you hear during playback.
Output Folder:
Choose where exported files are saved. A subfolder is created automatically:
- WAV: 'Mix_24bit/' (or 'Mix_16bit/', 'Mix_32bit/' etc.)
- MP3: 'Mix_MP3_320kbps/'
- AAC: 'Mix_AAC_256kbps/'
When Mono is enabled the suffix '_Mono' is appended to the subfolder name, e.g. 'Mix_24bit_Mono/', 'Mix_MP3_320kbps_Mono/'.
With Add the mix to the poly WAV enabled you get a second subfolder holding the merged polys, so an MP3 export of a 24-bit session gives you 'Mix_MP3_320kbps/SoundReport_001_mix.mp3' alongside 'Poly_With_Mix/SoundReport_001_withmix.wav':
- Poly with the mix: 'Poly_With_Mix/' (or 'Poly_With_Mix_Mono/')
Each subfolder is only created when something is actually written into it, so unticking the separate mix file leaves you with 'PolyWith_Mix/' alone rather than an empty 'Mix
Output File Naming
Output files are named '
| Automix applied | Example filename |
|---|---|
| None | 'SoundReport_001_mix.wav' |
| Gain Sharing | 'SoundReport_001_mix_GS.wav' |
| Intelligent Gate | 'SoundReport_001_mix_IG.wav' |
This makes it easy to distinguish exported files at a glance and avoid overwriting a straight mix with an automixed version of the same file.
When Add the mix to the poly WAV is enabled, the merged file is named '
Metadata Preservation
All iXML and bEXT metadata is copied from the source file to the export:
- Start timecode, scene, take, recorder, and originator fields are preserved
- Sample-rate-dependent timecode fields are recalculated if you change the sample rate
- Track names in iXML and in the bEXT description reflect the output mode: stereo exports set track names to MIX L and MIX R; mono exports set a single track name to MIX. The original per-channel track names from the source file are not carried over
- When the mix is added to the poly WAV, the merged file keeps every original track name and adds MIX L and MIX R for the new channels, renumbered to their position in the file
Edge Cases
| Situation | Behaviour |
|---|---|
| All channels muted | Export completes; output file is silent. A warning is shown in the result. |
| Single mono source channel | Stereo mode: rendered to stereo using equal-power panning. Mono mode: output is a single mono track. |
| No mixer changes made for a file | Unity gain (0 dB), centre pan, all channels active |
| Mono mode enabled | Pan settings are ignored; all channels are summed with their gain into a single output channel. |
Workflows and Recipes
The chapters above describe Wave Copilot one tab at a time. This one works the other way round: it starts from a job you actually have to deliver and names the tabs to use, in the order to use them. Every recipe here is built out of features already described above, and links back to them rather than repeating them.
Several of these answers chain two or three passes together. Where that is the case, the recipe says why the shorter route does not work, so you can tell when a step is genuinely needed and when you can skip it.
Which tool builds my poly WAV
Five different tools in Wave Copilot can write a polyphonic WAV. Picking the right one is most of the battle.
| Your situation | Use | Because |
|---|---|---|
| Separate mono files, one per track, already the same length | Combine Mono | Batch mode groups them by filename and runs a whole session in one click |
| Exactly two poly files, typically a main recording plus a separate mix | Combine Poly | Pairs them by timecode automatically and lets you place the mix first or last |
| Any mixture of mono, stereo and poly files that belong together | Combine Group | The only tool that interleaves channels freely across files of different widths |
| Sources that must be trimmed to a take, or to a timecode window | Conform, Poly WAV Output | The only tool that trims. Everything else spans the full length of its sources |
| Sources whose timecode is wrong, missing, or not to be trusted | Sync by Audio | Positions files by their audio content, then exports the aligned session |
| Files carrying timecode only as an audible burst at the head | Audio TC | Decodes the burst first, then assembles by the timecode it just recovered |
What sets the length of the output
Output length is decided for you, and the rule is not the same in every tool. This is worth knowing before you start, because it is the difference between a delivery that matches your reference take and one that runs to the length of your longest transmitter file.
| Operation | Length of the output |
|---|---|
| Conform, Match Reference, individual | The reference take's timecode window, cut short where the backup does not cover all of it |
| Conform, Match Reference, Poly WAV | The reference take's timecode window exactly, with silence filling any gap |
| Conform, Custom TC Range | Exactly 'End TC' minus 'Start TC', with silence filling any gap |
| Conform, Track Replace | Exactly the reference file's duration |
| Combine Poly | The longer of the two files, the shorter padded with silence |
| Combine Group | The longest file in the group, the others padded with silence |
| Sync by Audio, poly export | Earliest lane start to latest lane end across the aligned timeline |
| Audio TC, assembled poly | Earliest file start to latest file end on the timecode timeline |
The short version: only Conform trims. If you need the output to end where your reference take ends, the recipe has to go through Conform, whatever else it does.
Replace iso tracks when the transmitter timecode is slightly off
Timecode on a transmitter or backup recorder often lands a few samples away from the recorder's, because the two devices write audio differently or because you put a delay on the recorder input. Track Replace positions backup audio purely by timecode, so it inherits that error.
There is no single control that aligns and replaces in one pass. The way to combine them is to correct the timecode first, in Sync by Audio, and then let Track Replace do what it already does well.
- Load the primary takes and the transmitter files into the file list
- Open the Sync tab and check the primary take and the transmitter files you want to correct
- Make the primary take the reference lane, by clicking its anchor icon if it is not already
- Point each transmitter lane at a channel with something distinctive on it, using the channel dropdown, then click Align by Audio
- Press Play and confirm the sync by ear. Nudge with the ±1 ms buttons if you need to
- Leave Snap to frame switched off
- Click Save & Export…, tick Write the aligned timecode to the original files, and leave Export an aligned poly WAV unticked. The button reads Write Timecode
- Switch to Split/Combine → Conform → Track Replace, add the transmitter files as backups, and export as usual
Why Snap to frame stays off. Conform does its matching and trimming in samples, not frames, reading the sample count stored in the file's timecode. Left off, Sync writes a sample-accurate position and Track Replace reproduces your alignment exactly. Switched on, every position is rounded to the nearest frame boundary first, which can reintroduce up to half a frame of the very error you were removing. Turn it on only when something downstream insists on frame-aligned timecode.
Note: This rewrites the timecode metadata of your transmitter files. Their audio is never touched, and neither is anything else about them, but if you need the original timecode preserved, work on copies. Copy to… in the file list makes them for you.
Watch for clock drift. If the transmitter's clock runs slightly fast or slow, a long recording can start in sync and end out of it. Sync by Audio detects this and warns you, but it does not time-stretch to correct it. The timecode it writes is exact at the point it aligned. On a long recording, align and replace take by take rather than once for the whole roll.
Sync and replace several takes from one long transmitter recording
Five takes on the recorder, one continuous file off the transmitter's card. The usual instinct is to cut the card file into five pieces first. Most of the time you do not have to.
Track Replace already reads a continuous recording. It works out where each take sits inside the backup and seeks to that point on its own, take by take, which is the job the Conform tab was built for. Load the five takes, add the one long file as a backup, and export all five. No splitting anywhere.
Splitting only becomes necessary because of Sync by Audio, which aligns whole files against whole files. One transmitter file gives you one offset. So the question to settle first is whether one offset serves all five takes.
If the offset is constant, which it usually is when it comes from an input delay on the recorder or from the two devices writing audio slightly differently, one pass fixes the whole card:
- Load the five takes and the long transmitter file
- In the Sync tab, check the transmitter file and one take, choosing a take with clear, distinctive content
- Make the take the reference lane, align, and confirm by ear. Leave Snap to frame off
- Save & Export…, tick only Write the aligned timecode to the original files
- Go to Conform → Track Replace, add the long transmitter file as a backup, and export all five takes at once
Correlating a short take against a card file that runs for hours is a large search, so give the analysis time and check the confidence figure and your ears before trusting it. If it lands somewhere wrong, cut the file down first as below and align take by take.
If the offset changes across the day, because the two clocks run at slightly different speeds, then each take needs its own alignment and therefore its own segment. Cutting those segments is one pass, not five:
- Load the five takes into the file list
- Open Conform → Match Reference and add the long transmitter file as a backup. It matches every take by timecode overlap at once, so five takes give five rows
- Click Trim & Export. You now have five segments, one per take
- Load the segments and align each one against its take in the Sync tab, writing timecode each time. This part is one session per take, since a sync session has a single reference lane
- Return to Conform → Track Replace, add the five aligned segments as backups, and export
Note: Use Match Reference for this, not Custom TC Range. Custom TC Range trims to one window you type by hand, so five takes means running it five times. Match Reference reads the takes you already have loaded and cuts all of them in a single pass. Custom TC Range is for the takes the recorder never captured.
Skipping Track Replace altogether. If the channels you are replacing are the only bad ones, you can assemble the finished file in Sync instead. Strip the defective channels from the take with Split Poly, leaving a clean poly, then align that against the transmitter segment and tick Export an aligned poly WAV in the Save dialog. One pass, and the alignment and the assembly happen together.
Two things to watch with this route. The output is the clean channels plus the transmitter channels, so it has a different channel count and layout from the original rather than being a like-for-like replacement. And Sync's poly export spans from the earliest lane to the latest, so feed it a per-take segment. Give it the whole card file and you get an output as long as the card.
Avoiding the problem next time. Record a short burst of timecode, two seconds is plenty, at the head of each transmitter file and on the recorder before a long take. Audio TC decodes the burst and writes real timecode into the file, after which the transmitter file behaves like a recorder file: Track Replace finds its own way into it, and neither the splitting nor the audio alignment is needed at all. This is the cheapest of all these routes, and the only one that costs nothing in post.
Rebuild the isos and the mix when the mix track is unusable
The car-to-car problem: the transmitters have usable audio but the mix went to pieces when the cars separated. You want the isos replaced from the transmitters, and a fresh mix built from those new isos rather than the one you recorded.
This takes two passes: Conform rebuilds the isos, then Export Mix builds the new mix and puts it into the poly in the same run.
Pass 1, rebuild the isos. Which mode you want depends on how much you are replacing.
- Replacing every iso from the transmitters: use Match Reference with Poly WAV Output enabled. The output contains the transmitter channels only, so the unusable mix never enters the file in the first place, and each take is trimmed to the reference. Do not tick Merge with reference, since that is what would bring the old channels back in
- Replacing some isos and keeping others from the recorder: use Track Replace, set the channels you are keeping to Keep reference, and drop the ruined mix channels in the same pass. Drop N detected mix channels in the Channel Assignment header finds them by track name across every take; where your mix channels are not named for it, the Drop channels preset beside it takes channels 1 and 2 off every take instead. See Dropping channels from the output
Pass 2, build the new mix and put it back in the file. Load the iso-only file from pass 1, go to the Playback tab, and set it up: faders, pans, mutes, and Automix on if you want it to ride itself. Gain Sharing blends, Intelligent Gate switches more decisively. Then File > Export Mix… ('Ctrl/Cmd + D'), tick Add the mix to the poly WAV, and set Mix Channel Placement to Before Poly Channels for the usual mix-first delivery layout. Export.
You get back a poly containing the rebuilt isos with the new mix on the front, plus the standalone mix file if you left that box ticked. The mix inherits the file's timecode, scene and take, and its track names are 'MIX L' and 'MIX R'.
Note: Doing this for a whole day rather than one take is the same two passes. Pass 2 works in batch, so the only per-take work is the channel assignment in pass 1.
If you would rather keep the mix and the merge apart, for instance to audition several mixes before committing to one, untick the embed option and combine the mix you settle on by hand in Split/Combine → Combine Poly. That is the same merge this option performs.
Align several transmitters to a reference and trim to the reference
Trimming to the reference is what separates this from a plain merge. Combine Group and Sync's poly export both run to the length of the longest file, so a transmitter that rolled through the whole scene gives you an output far longer than the take.
The tool that trims is Conform.
- Load the timecode reference file into the file list. It is the reference take, so do not add it to Backup Recordings as well
- If the transmitters' timecode is not trustworthy, correct it first with the align-then-replace recipe above, stopping after the Write Timecode step
- Open Split/Combine → Conform → Match Reference and add every transmitter file as a backup
- Tick Poly WAV Output. Each transmitter channel that overlaps the take becomes one channel of a single poly per take, and the output is exactly the reference take's window: transmitters that started late or stopped early are padded with silence rather than shortening the file
- Tick Merge with reference as well if you want the reference file's own channels in the poly. They are placed at the front by default
- Expand each output row in the Poly Output Preview to set the channel order, then choose a format and an output directory
- Click Combine & Export
Note: Poly WAV Output is what makes this land on the reference length. Without it, Match Reference writes one trimmed file per backup and cuts each one short wherever the backup does not cover the whole take, which is not the same thing.
Deliver a poly when you only recorded transmitters
No reference file, no take list, just continuous transmitter recordings that need cutting down.
If the transmitter files carry timecode, use Split/Combine → Conform → Custom TC Range:
- Add every transmitter file as a backup
- Start TC and End TC arrive prefilled with the full span of what you loaded. Type the window you actually want. Full range puts the original span back
- Enter a Scene and Take if you want them in the output filename
- Tick Poly WAV Output, set the channel order in the preview, choose a format and an output directory
- Click Combine & Export
The output is exactly the window you typed, silence-padded for any transmitter that only partly covers it, and its start timecode is set to your Start TC. Repeat for each take.
If the transmitter files carry no timecode at all, give them some first, then come back:
- A timecode burst recorded at the head of the file: use Audio TC to decode it and write it in. Its own Assemble everything into one poly WAV, synced by timecode option may finish the job on its own
- No burst either: use Sync by Audio. Align the files to each other, type an Anchor TC and pick a frame rate, and write the timecode. If you do not need the output trimmed to a window, tick Export an aligned poly WAV in the same dialog and you are done in one pass
Export a sync-by-audio session as a poly WAV
Alignment and export are the same dialog, so this is one pass.
- Open the Sync tab and check the files you want, at least two
- Pick the matching channel for each lane, then click Align by Audio
- Press Play and confirm by ear. Nudge any lane that needs it
- If the reference lane has no timecode, type an Anchor TC and choose a frame rate
- Click Save & Export… and tick Export an aligned poly WAV
- Drag the rows in Channel Order to set where each lane's channels land. This changes the layout only and never moves anything in time
- Untick Include the anchor file in the poly if the anchor was only there to give the others something to line up against
- Set Output Format, Poly File Name and Output Directory, then export
Tick Write the aligned timecode to the original files as well if you want both. Timecode is written first, so a problem during assembly never costs you that write.
The two are independent. The poly is laid out from the alignment itself, not from stored timecode, so a session showing No TC on every lane still exports correctly with the timecode box left unticked.
Note: The exported timeline runs from the earliest lane to the latest. Lanes far apart in time produce a long, mostly silent file, and the estimate line warns you in amber before you commit.
Assemble files that already share timecode into a poly WAV
When the timecode is good and no audio alignment is needed, skip the Sync tab entirely.
- Any mixture of files, whatever their channel counts: Split/Combine → Combine Group. Files are grouped automatically by matching start timecode, sample rate, frame rate and length. Reorder and rename the output channels on the group card, pick which file donates the scene, take and other metadata, then combine
- Exactly two poly files: Combine Poly is the more direct route, and pairs them across a whole session at once
- Files whose timecode you just recovered from an audio burst: Audio TC has Assemble everything into one poly WAV, synced by timecode built in, so decode and assemble in one visit
- You also need it trimmed to a take or a window: none of the above trims. Use Conform's Poly WAV Output instead
Files that do not auto-match land in Unmatched Files. Select two or more and click Create Group to merge them regardless, or use + Add unmatched file to fold one into an existing group. The warnings that appear are informational and never block the merge.
Merge a stereo file and a mono file into an LCR poly
Combine Group is the one tool that interleaves channels from files of different widths, which is exactly what LCR needs: left and right come from the stereo file, centre from the mono one, and the centre has to sit between them.
- Load the stereo file and the mono file
- Open Split/Combine → Combine Group. If they share timecode, sample rate and length they are already grouped. If not, select both in Unmatched Files and click Create Group
- Expand Output channels. It starts as the three channels in file order, so the mono is at one end
- Drag the mono channel by its grip handle so it sits between the stereo file's two channels
- Rename the three channels to 'L', 'C' and 'R' by editing them in place
- Choose which file donates the rest of the metadata with the radio button in Source files
- Set the output format and directory, then click Combine
The same approach handles any fixed layout you need to build by hand, such as LCRS or a 5.1 bed assembled from separate stems.
Note: This builds an LCR channel layout. It places three existing signals in three channels. It is not a downmix, and nothing is derived or summed. To fold channels down into a stereo or mono mix, use Export Mix.
Merge 32-bit float isos with a separate mix track, take by take
Recorders working at 32-bit float often cannot embed the stereo mix in the same poly and write it as a second file. Combine Poly exists for this, and runs a whole day in one pass.
- Load every iso poly for the day into the file list. These are the primaries
- Open Split/Combine → Combine Poly
- Add every mix file with + Add Files, or drag them onto the secondary list. Each mix is paired to its iso file by timecode, and matched pairs turn green
- Set Secondary Channel Placement: Before Primary puts the mix channels first, After Primary appends them
- Choose the output format. Match primary keeps the 32-bit float files as they are, with no conversion pass. Pick Custom and 24-bit if the delivery calls for it, which converts in the same pass
- Tick Normalize channels to –1 dBFS if the float recordings were captured low
- Choose an output directory and click Combine N Pairs
You get one poly per take, named '{primary_filename}_combined.wav' unless you set your own scheme in Output Filename. Track names from both files are preserved.
Two things to check before you run it. Anything showing a warning badge has no timecode or found no partner, and will not be combined. And if a take's mix is longer than its isos, or the other way round, the output takes the longer length and pads the shorter with silence.
Note: If your isos are separate mono files rather than one poly, use Combine Group instead. It takes the monos and the stereo mix in a single pass, and you set the channel order on the group card.
Export a poly WAV with channels 3 and 4 removed
One pass, in Split Poly. The tool is named for splitting, but a routing row holding several channels writes one multi-channel file, so it does subsetting too.
- Select the poly file in the file list
- Open Split/Combine → Split Poly
- In the routing matrix, clear every row
- On the first row, click the cells for the channels you want to keep, leaving 3 and 4 unselected. On a 6-channel file that is channels 1, 2, 5 and 6
- Leave every other row empty. Rows with nothing selected are skipped, so this produces a single output file rather than one per channel
- Set the output directory and click Split
The result is one 4-channel WAV. Track names, iXML and bext metadata come across, with the track list renumbered to match the new channel layout.
The automatic name lists the channels it kept, so a 6-channel 'A001.wav' minus channels 3 and 4 becomes 'A001_1_2_5_6.wav'. Set your own scheme in the Output Filename section if that is not what you want to hand over.
Note: Channels keep their original relative order, so this cannot also reorder them. See the next recipe if you need both.
For a whole day of takes, use Track Replace instead. Split Poly works on one file at a time, so a day of takes means a run each. Conform → Track Replace lists every loaded poly at once, and the Drop channels preset in the Channel Assignment header sets the same dropped channels on all of them in one click; individual rows can be adjusted per take afterwards. Export writes the lot. Nothing has to be replaced for this to work: dropping channels on its own is a complete job. The trade is that Track Replace only accepts polyphonic files that carry timecode, where Split Poly will take any poly at all. See Dropping channels from the output.
Change the track order of a poly WAV
Wave Copilot can set channel order while building a file, in Combine Group, in Conform's Poly Output Preview, in Sync's export dialog and in the Audio TC results table. It cannot reorder the channels of a poly file in place, and Combine Group needs at least two files so it cannot be used on a single poly.
Two passes, then. Split it apart, and put it back together in the order you want.
- Select the poly file and open Split/Combine → Split Poly
- Leave the default routing, one channel per output file, and split to a working folder
- Load the resulting mono files into the file list
- Switch to the Combine Mono sub-tab and choose Manual mode
- In the routing matrix, each row is an output track and each column is one of the mono files. Click the cell that puts the file you want on track 1, then track 2, and so on, in the order you want them
- Leave a row empty to drop that track from the output entirely
- Set the output file path and click Combine
Alternatively, load the mono files and use Combine Group, where you drag the output channels into order and rename them in place. It is the more comfortable interface of the two, since it shows you the finished layout as a list.
Situations that come up
My transmitter files have no timecode at all. If you recorded a timecode burst at the head, Audio TC decodes it and writes real BWF timecode. If you did not, Sync by Audio aligns the files by their audio and writes timecode from an Anchor TC you type. After either, the files behave like recorder files everywhere else in the app.
The transmitter split into several files mid-take. Conform's Poly WAV Output groups backup channels by track name, so two files sharing a track name are stitched into one channel automatically, with silence filling any gap between them. Nothing to configure, but it does depend on the track names matching.
One transmitter was dead all day. In Track Replace, silent channels are flagged with a warning icon and the Silence threshold slider sets the level below which a channel counts as silent, from −90 to −48 dBFS. Reset silent tracks to Keep Reference switches them all back in one click, or tick Remove silent tracks from output to drop them from the exported files entirely and reduce the channel count. That covers channels that are silent; to leave out a channel that has perfectly good audio on it, such as a mix you are about to rebuild, drop it by hand or by preset instead. See Dropping channels from the output.
The 32-bit float backup was recorded very low. Every Conform mode, both Combine Poly and Combine Group, and Sync's poly export all offer Normalize audio to –1 dBFS. The file is analysed first and a gain adjustment applied so the peak lands at −1 dBFS. It works on any format, not just float.
The transmitter ran at a different sample rate from the recorder. Conform's match table flags it with a warning icon and converts on export, so choose Match reference as the output format to land on the recorder's rate. Combine Poly and Combine Group convert automatically too. The one exception is Track Replace, which has no format control and always matches the reference file.
I need the scene, take and tape to survive the merge. In Combine Group, the radio button next to each file in Source files chooses which file donates the metadata, and it also drives the Scene and Take chips in the Output Filename section. In every Conform mode the metadata comes from the reference file, with track names taken from the backups. In Combine Poly it comes from the primary.
Where do the track names come from. Split Poly, Combine Mono and Combine Poly carry names through from the source files. Combine Group defaults to each source's own name and lets you edit any of them. Conform takes names from the backup files and rewrites the iXML track list to match the final layout. Export Mix replaces them with 'MIX L' and 'MIX R', or 'MIX' in mono, since the original per-channel names no longer describe the file.
The editor wants an MP3 or AAC, but needs the timecode. Export Mix writes both, and preserves the start timecode: MP3 as ID3 TXXX tags, AAC as format tags, and both with the timecode appended to the filename. Format Conversion does the same for a straight transcode with no mixer settings applied.
How do I check the sync before committing to an export. In the Sync tab, Play mixes every lane together with per-lane mute, solo and volume, so you can judge the alignment by ear before saving anything. Everywhere else, export first and then load the result back into the file list and play it. Conform outputs carry correct timecode, so they can go straight into a sound report as well.
My files are over 4 GB. Supported throughout. Any output that crosses 4 GB is written as RF64 automatically, and large source files stream rather than loading into memory.
How many channels can one file have. 64, which is the app's playback limit. Combine Group caps groups at 64 and warns you about anything it had to leave out.
Licensing & Activation
Wave Copilot requires a license for continued use after the trial period.
Trial Mode
- Duration: 14 days from first launch
- Features: Full functionality during trial
- Trial Banner: Shows remaining days at top of window
- Expiration: Trial modal appears when trial ends
Activating a License

- Purchase a license from the Wave Copilot website
- You'll receive a license key via email (format: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX)
- In Wave Copilot, go to Help > License Information
- Click Activate License
- Enter your license key and email address
- Click Activate
License Details
- Hardware Locked: License is tied to your computer
- Activation Limit: Check your license for the number of allowed machines
- Online Validation: License is validated periodically (requires internet)
- Offline Grace Period: Works offline for up to 7 days
Viewing License Status

Go to Help > License Information to see:
- License status (Active/Trial/Expired)
- Registered email
- Machine ID
- Expiration date (if applicable)
- Last validation date
Deactivating a License
To move your license to a different computer:
- Go to Help > License Information
- Click Deactivate
- Confirm deactivation
- Activate on your new computer
Managing Activations Online
You can also manage your license activations directly from the 1KHZ website. This is particularly useful if you see the error "This license has reached the maximum number of activations. Please deactivate on another machine first." and you no longer have access to the previously activated machine.
- Log in to your account at 1khz.ca
- Go to My Account > My Licenses
- Your license is listed with all currently activated computers
- Click Deactivate next to any machine you want to remove
This frees up an activation slot so you can activate on a new computer.
Keyboard Shortcuts
Global Shortcuts
| Shortcut | Action |
|---|---|
| 'Ctrl/Cmd + O' | Add files |
| 'Ctrl/Cmd + Q' | Exit application |
| 'Del' | Remove selected files |
| 'F1' | Open user guide |
Navigation
| Shortcut | Action |
|---|---|
| 'Ctrl/Cmd + F' | Go to Files & Metadata |
| 'Ctrl/Cmd + M' | Go to Playback |
| 'Ctrl/Cmd + I' | Go to Split/Combine |
| 'Ctrl/Cmd + Y' | Go to Sync |
| 'Ctrl/Cmd + T' | Go to Audio TC |
| 'Ctrl/Cmd + R' | Go to Reports |
File Operations
| Shortcut | Action |
|---|---|
| 'Ctrl/Cmd + E' | Copy files to... |
| 'F2' | Rename file |
| 'Ctrl/Cmd + K' | Open Convert Format |
| 'Ctrl/Cmd + D' | Open Export Mix |
Waveform Zoom
Also applies on the Sync tab, zooming/panning that tab's timeline instead.
| Shortcut | Action |
|---|---|
| 'Ctrl/Cmd + -' | Zoom out 1.5× (centred on playhead) |
| 'Ctrl/Cmd + =' | Zoom in 1.5× (centred on playhead) |
| 'Ctrl/Cmd + 0' | Reset zoom to 1× (full overview) |
Playback
| Shortcut | Action |
|---|---|
| 'Space' | Play from current position when stopped. When Return to Start is off: pauses in place when playing. When on: stops and returns to play-in point |
| 'L' | Seek +5 s when stopped; while playing, each press doubles speed (1×, 2×, 4×, 8×) |
| 'K' | Play from current position when stopped; pause in place when playing (resets shuttle speed to 1×) |
| 'J' | Seek −5 s when stopped; while playing, each press halves speed (8×→4×→2×→1×), pausing at 1× |
| 'Home' | Seek to beginning |
| 'End' | Seek to end |
| 'F3' | Stop (triggers Return to Start if enabled) |
| '←' / '→' | Load previous / next file (Playback tab) |
| 'Q' | Add cue at current position |
| 'N' | Navigate to next cue |
| 'B' | Navigate to previous cue |
These apply on the Playback tab. On the Sync tab, 'Space' instead plays/pauses the audition mix of the selected lanes.
Mixer
| Shortcut | Action |
|---|---|
| Double-click pan slider | Reset pan to center |
| Double-click gain fader | Reset gain to 0 dB (unity) |
| 'Ctrl/Cmd' + click Solo (S) | Exclusive solo, solos only this channel and unsolos all others |
Troubleshooting
Common Issues
Files won't load
- Ensure files are valid WAV format
- Check that files are not corrupted
- Verify file permissions allow reading
No audio playback
- Check your system audio output settings
- Verify the mixer channels aren't all muted
- Try a different audio file to isolate the issue
Metadata not saving
- Ensure you have write permissions for the file
- Check that the file is not open in another application
- Verify the disk has available space
License activation fails
- Check your internet connection
- Verify the license key is entered correctly
- Ensure the email matches your purchase
- Contact support if problems persist
Application crashes
- Check for available updates
- Try restarting the application
- Clear application data and restart
- Report the issue with crash details
Performance Tips
- Large files: Files over 1.5 GB use streaming playback
- Many files: Load only the files you need for better performance
- Batch operations: Process files in smaller batches if experiencing slowdowns
Logs and Diagnostics
Application logs can help diagnose issues:
- Windows: '%APPDATA%\Wave Copilot\logs'
- macOS: '~/Library/Logs/Wave Copilot/'
Support
Getting Help
- User Guide: Press 'F1' or go to Help > User Guide
- Check for Updates: Help > Check for Updates
Reporting Issues
If you encounter a bug or have a feature request:
- Go to 1khz.ca and use the contact details there, or email info@1khz.ca
- Describe the problem, including:
- What happened, and what you expected instead
- Steps to reproduce it
- Your operating system
- Wave Copilot version
- Any error messages
Contact
- Developer: 1KHZ Inc
- Website: https://1khz.ca
- Email: Support contact available on website
Appendix
Supported Audio Formats
| Format | Read | Write |
|---|---|---|
| WAV (PCM) | Yes | Yes |
| Broadcast WAV (BWF) | Yes | Yes |
Supported Metadata
bEXT Chunk:
- Description
- Originator
- Originator Reference
- Origination Date/Time
- Time Reference
- Version
- UMID
- Coding History
iXML Chunk:
- Project
- Scene
- Take
- Tape
- Notes
- Circled Flag
- Wild Track Flag
- Track Names
- Track Functions
- File Set Information
- Sync Points (Cues)
Drop-Frame Notation
Drop-frame timecode is written with a semicolon before the frames, as in '18:35:06;11', and non-drop with a colon throughout. Wave Copilot uses that convention everywhere it shows or accepts timecode, including the file list and the Metadata Editor, so you can tell at a glance which one a file carries.
When you type a timecode into a drop-frame file, the semicolon appears on its own once you have entered six digits; you can also type either separator yourself and it will be accepted.
Drop-frame skips frame numbers ';00' and ';01' at the start of every minute except every tenth, which is how 29.97 fps keeps pace with the clock. Only 29.97 has a drop-frame form.
Timecode Frame Rates
| Frame Rate | Common Use |
|---|---|
| 23.976 fps | Film (NTSC) |
| 24 fps | Film |
| 25 fps | PAL Video |
| 29.97 fps | NTSC Video (drop-frame available) |
| 30 fps | NTSC Video (drop-frame available) |
Wave Copilot - Professional Broadcast WAV File Management Copyright 2026 1KHZ Inc. All rights reserved.
Wave Copilot, Professional Broadcast WAV File Management.
Product page ·
Release notes ·
1khz.ca ·
info@1khz.ca
Copyright 2026 1KHZ Inc. All rights reserved.