Every change to Wave Copilot, newest first. 20 releases, 136 entries. The same notes appear in the app under Help, Release Notes.
Version 1.1.0Current
August 24, 2026
- NewFiles & Metadata: resizable columns. Drag the divider on the right edge of any column header and the column takes exactly that width; when the columns together outgrow the list, it scrolls horizontally instead of squeezing them. Values that no longer fit are shortened with an ellipsis and show in full on hover. Double-click a divider for a best fit, the same as Excel or Numbers — the narrowest width that still shows every value in that column, which shrinks an over-wide column just as readily as it widens a cramped one. Reset widths in the Configure Columns panel puts everything back to the defaults without disturbing which columns you have shown or the order you put them in. Widths are saved along with visibility and order, so the list comes back the way you left it.
- NewFiles & Metadata: the divider between the file list and the Metadata Editor can be dragged to trade space between them, and the position is remembered between sessions. Double-click the divider to return the editor to its default width, or click the chevron on it to hide the editor entirely and give the file list the whole window.
- NewMetadata Editor: detachable window. Click the ⇱ icon beside Save to move the editor into its own floating window; the divider and pane disappear from the main window and the file list expands to fill it. The detached editor follows your selection from either direction — picking a file in the main list updates it, and so does Previous/Next in the detached Playback window, so all three windows can be open at once and stay in step. Saving behaves exactly as it does docked: the file is written and the main window's list updates to match, without leaving the main window marked as unsaved. The window opens at roughly the width the editor had while docked, and whatever size you resize it to is remembered for next time. A Columns button in its title bar switches from the usual tabs to a five-column view with General, Recording, Track Info, History and Cues side by side, so nothing is hidden behind a tab — that choice is remembered too. Close the window to put the editor back where it was.
- ChangedPlayback now supports up to 64 channels, raised from 32. Per-channel gain, pan, phase, mute, solo, and metering have moved inside the audio worklet, which now outputs a ready-mixed stereo bus — this removes the Web Audio limit of 32 channels per node that set the old ceiling, and collapses the audio graph from roughly seven nodes per channel to a single one overall. 64 is now a hard limit imposed by FFmpeg's own channel cap rather than by Wave Copilot. Automix, Export Mix, and the meters behave exactly as before; the post-fader meters and the equal-power pan law were matched to the previous graph to within 0.03 dB.
- NewAudio TC tab: turn timecode that was recorded as audio into real file timecode. If you have no timecode-capable transmitter, you can jam a timecode generator into a transmitter or recorder track, record a few seconds of it, then plug the mic in and shoot — the camera and the sound file share a clock, but that clock only exists as an audible burst at the head of the file. Load the files, open the Audio TC tab, and click Scan for LTC: Wave Copilot scans every file you have loaded — nothing to select first — finds which channels carry the burst, reads the timecode, works out the frame rate and drop-frame setting from the burst itself, and writes it all into the file as proper BWF timecode. From that point the file behaves like any recorder file — Conform, Combine Group, Sync, and Sound Reports all work with it, and it drops straight into an NLE.
- NewAudio TC muting: after reading the timecode, Wave Copilot can silence the burst so it never reaches your mix. The same jam feed often lands on more than one track — an ISO channel and the mix L/R, or both legs of a stereo pair — so every channel carrying it is found and cleaned where it sits, each over its own range, since the copies rarely start and stop at the same moment. Only those channels are touched, and only across the burst itself — anything else recorded at the same time on other tracks is left exactly as it was, with a short fade wherever the silenced region meets real audio. Muting always writes copies to an output folder — your original recordings are never modified, so a mis-read burst is always recoverable. Leave muting off to write timecode only and change no audio at all.
- NewAudio TC review before writing: nothing is written until you have seen what was found. The results table shows, per file, the channel the timecode came from and any others it was also found on — named from the track names in the file where it has them, so you see “Ch 5 · Mix L” rather than a bare number — the first timecode read, the frame rate, the region to be muted, how many frames decoded, a confidence score, the timecode the file has now, and the exact timecode it will get. Files that decoded poorly are left unticked for you to check. Where a burst is too short to tell 29.97 apart from 30 — they differ by only a tenth of a percent — it is flagged rather than guessed at, and you can set the channel or frame rate by hand on any row. The timecode written is sample-accurate, so a file that started part-way through a frame keeps that exact offset. Where a file already has timecode, the difference against the burst is shown in frames and milliseconds: a few milliseconds is the delay of the wireless link the burst came down, while exactly one frame is the well-known disagreement between generators and readers about which frame a code word belongs to — a Timecode offset control lets you line them up.
- NewAudio TC can assemble everything into one synced poly WAV. Instead of separate files, the whole selection can be combined into a single multi-channel file with each take placed at its own decoded timecode — a take that started five seconds after another begins five seconds in, with silence before it. It is the same idea as Poly WAV Output in Conform, except the timeline comes from the bursts Wave Copilot has just read rather than from a reference take. Drag the rows of the results table by their handle to set which channel each file lands on, or sort the file list — reordering changes only the channel layout, never where the audio sits in time. Channels take their names from each file’s track names, with the file name added where two files use the same one, so two rigs that both label a channel “Mix L” stay separate rather than being merged onto one channel. Output Format and Normalize work as they do in Conform: match the widest of the sources, or set the sample rate and bit depth yourself. Because the poly spans from the earliest file to the latest, the panel shows the channel count, length and approximate size before writing anything — takes recorded hours apart would produce hours of silence, so a long gap is flagged and asks you to confirm.
- NewExport Mix can put the mix back into the poly WAV it came from. Until now a mix and a poly carrying that mix took two passes: export the mix, then go to Split/Combine and combine it back in by hand. Tick Add the mix to the poly WAV in the Export Mix dialog and both come out of one run. Mix Channel Placement puts the mix channels before or after the file’s own, the same choice Combine Poly offers, and it is remembered between sessions. The mix added to the file always matches that file’s own sample rate and bit depth, so your original channels are copied across untouched with nothing re-encoded — the format options above apply only to the separate mix file, and an MP3 or AAC export still gives you that mix on its own with a proper PCM mix inside the poly. Your source file is never modified: the result is written as a new file, ‘name_withmix.wav’, into its own Poly_With_Mix folder rather than the mix folder, because the two rarely share a format and a batch can produce 24-bit and 32-bit float polys at once. Poly WAV only — a mono file or a multi-mono group has nothing to add the mix to, so it exports its separate mix and is listed as a warning, as is any file that would go past 64 channels.
- Changedthe Export Mix dialog is now arranged around the two things a run can produce. Export the mix as a separate file comes first, with everything describing that file grouped under it — format, bit depth or bitrate, sample rate and its output filename — and the whole group disappears when you untick it, since none of it describes anything any more. Adding the mix to the poly follows with its own placement and filename. Export as Mono and Automix sit below both, where they read as shaping the mix itself rather than either output. Both outputs untick freely, including both at once; a combination that would write nothing greys out the Export button and says what to choose instead of stopping you at the checkbox.
- NewConform: set the channel order of a poly output. Expand an output file in the Poly Output Preview and its channels are listed one per row — drag a row by its handle, or use the arrows, and the channel layout of the exported file follows. Each row tells you where that channel comes from, so you can see at a glance which file and which of its channels is landing where, and a channel stitched together from a split recording shows the first file with the rest noted alongside. Order is set per output file, so rearranging one take leaves every other take in a batch alone, and reset on the file’s row puts it back the way it was. Channel order previously followed the source files with no way to change it, and a set of mono backups was sorted alphabetically by track name — that sort has gone, because it left nothing for the list order to say. Channels now come out in the order the files sit in the Backup Recordings list, and you rearrange them in the preview.
- NewConform: Merge with reference. A checkbox under Poly WAV Output in Match Reference mode adds each take’s own channels to its poly file, so the recorder take and its backups end up in one file. Reference channels lead by default and can be dragged anywhere in the order. They are always kept as their own channels, even where a track name matches a backup’s — a 5-channel ISO take plus four radio-mic backups named for the same sources gives you a 9-channel file, not a 5-channel one with the backups folded on top. The expanded channel list labels which channels came from the reference, so two channels called Lav1 are still tellable apart. Not available with a CSV reference, which has no audio of its own.
- NewConform: Track Replace can leave channels out of the output. Until now the mode could swap a channel’s audio or add an extra channel, but never remove one, so a ruined mix pair survived into the export and had to be stripped with a separate Split Poly pass. Any channel can now be dropped: click the button at the end of its row and the row stays in place, struck through and greyed, with a restore arrow to bring it back. Nothing is renumbered while you work, so a row always tells you which channel of the original file it came from, and a take whose channels are dropped shows the old and new counts in its header, such as 6 ch → 4 ch. Two shortcuts in the Channel Assignment header set every take at once. Drop channels is a preset list: channel 1 for a mono mix, channels 1 and 2 for a stereo mix, the last channel, or the last two. It is remembered between sessions, applied to takes as they load, and ignored for any take it would empty. Drop N detected mix channels appears when a reference take has a channel whose track name reads as a mix, covering Mix, MixL and MixR with any spacing or casing, so 'Mix L', 'MIX-R' and 'mix_1' all count; it adds to whatever you dropped by hand rather than replacing it. A bare L, R, LR or ST, and Master or Mixdown, are deliberately not treated as a mix, because those are real iso names often enough that guessing would silently strip a track you wanted. Dropping channels is a complete job on its own: with nothing being replaced, Replace Tracks & Export still writes your poly back out without the channels you dropped, which is the shortest route to exporting a file without channels 3 and 4, and unlike Split Poly it does a whole day of takes in one pass. The surviving channels are compacted with no gap, and the iXML track list, its channel and interleave indexes, and the channel count in the file header are all rewritten to match. The last channel of a take cannot be dropped.
- ChangedConform: a file already in your session list can no longer be added to Backup Recordings. Files in the main list are reference takes, and one file cannot be both a take and a backup of itself — it would either be counted twice in its own output or turn up as an extra channel in every other take’s output. Adding one is now refused with a note saying which file and why, and if a file is already sitting in Backup Recordings when you load it into the session, it is taken out. To include a reference take’s audio in a poly output, use Merge with reference.
- ChangedConform: Custom TC Range now opens on the full span of your backup files. Start TC and End TC are filled in with the earliest start and the latest end across everything loaded, so the default window covers the lot instead of starting at zero. The range keeps following the file list as you add and remove backups, until you type a timecode of your own — after that your values stay put. A Full range button appears whenever they differ, to put it back.
- ChangedConform: the Backup Recordings list now sits above the Poly WAV Output options and the TC Range panel in both modes, so the tab reads in the order you work: load the files, choose what to do with them, then see the result.
- Fixedan exported mix carried the wrong track names in its bext description. The iXML track list was correctly set to MIX L and MIX R, but the bext chunk was copied from the source file wholesale, so its sTRK lines still named the first two ISO tracks of the original. Anything reading track names from bext rather than iXML — which includes several recorders and BWF tools — showed a stereo mix labelled Boom and Lav1.
- FixedPoly output could be corrupted for files whose bit depth and storage size disagree, such as 24-bit audio stored in 32-bit containers. Samples were assembled from the wrong end, which threw away the sign of the audio: quiet passages came out near full scale and the file read as clipping, while the waveform still looked almost silent. Normalize appeared to make no difference because the damage happened after the gain was applied. Affected Poly WAV Output in both Conform modes and Track Replace. Files whose bit depth and container agree — the common case — were never affected.
- ChangedAudio TC asks before adding its output to the file list. Muted copies and assembled poly files used to appear in the main file list automatically as soon as a run finished. Wave Copilot now reports what it wrote and asks whether to load it; declining leaves the files on disk exactly as written.
- FixedSamples Since Midnight was one sample low. A timecode’s sample position is the first sample at or after its frame boundary, and Sound Devices recorders count the first sample of the day as sample 1 rather than sample 0 — so the value Wave Copilot wrote sat one sample below what the recorder itself had written, and one below what Wave Agent reads. Checked against nineteen measured positions from three 833 recordings across seven frame rates, all of which agree with the recorder’s convention. Timecode written by Audio TC, Sync by Audio and the Metadata Editor now matches the hardware exactly. Files already on disk are not changed until you edit them.
- NewSync tab channel selection: each lane now has a channel selector, so you choose which channel Wave Copilot matches on. Until now alignment always used channel 1, which is fine when that is your boom or your mix, but not when it happens to be a lav that stayed closed — a lane with strong common audio elsewhere in the same file came back as a low match, with no way to point the matcher at it. Pick a channel and that lane is matched, drawn and auditioned on it, so what you see, what you hear and what you align on are the same signal. Channels are named from the track names in the file where it has them, so you see “Ch 3 · Boom” rather than a bare number. Multi-mono groups list their member files instead of channels, and still default to the mix of all of them. Nothing changes unless you use the control — every lane still defaults to channel 1, and alignments you have already made come out exactly the same.
- NewSync tab poly export: once everything is lined up, Save & Export can assemble the whole session into one multi-channel WAV, each recording sitting at the position you aligned it to, with silence where a file has not started yet. It is the same assembly Audio TC uses, with the same Output Format and Normalize options — match the widest source, or set the sample rate and bit depth yourself. Two things are specific to a sync: the anchor can be left out, for when it is only there to give the others something to line up against; and the channel order, which follows your file list, can be rearranged by dragging the rows in the dialog. Dragging changes the channel layout of the exported file only — it never moves a lane or its audio in time. Multi-mono groups spread out into their member files, so their channels land exactly as a poly file’s would, and channel names come from each file’s track names with the file name added where two of them agree. The poly takes the anchor’s name with _synced on the end unless you type your own, and is written to the folder you choose. Before writing, the dialog shows the channel count, length, format and approximate size, because the file spans from your earliest lane to your latest — lanes recorded far apart produce a long, mostly silent file, so a gap over ten minutes or a size over 4 GB is called out. A timeline that runs past midnight is flagged too: the poly’s own start timecode wraps into the next day, as timecode must, while the channels stay correctly spaced. When it is done Wave Copilot tells you what it wrote and asks whether to add it to your file list — decline and it simply stays on disk, so an export never ends up among the takes you are still syncing unless you want it there.
- NoteSync tab poly export does not need timecode written first: the poly is laid out from the alignment itself, not from what the files carry, so a session where nothing has timecode yet exports correctly with the timecode box left unticked. The take details the poly inherits — scene, take, tape, originator — come from the anchor file, the one you chose as the reference, rather than from whichever recording happens to start earliest; those differ as soon as a file aligns ahead of the anchor. If you leave the anchor out of the poly, they come from the earliest file that is in it. Its frame rate is the one selected in the toolbar, so exporting before saving timecode no longer stamps the poly with a rate the file was carrying from before. The poly’s own start timecode is still the earliest point on the assembled timeline, because that is where its audio begins.
- ChangedSync tab now finishes in one place: Save Timecode and the poly export have become a single Save & Export button. The window it opens asks two things — write the aligned timecode into your original recordings, and export an aligned poly WAV — and you can do either on its own or both in one pass. Tick the poly box and its options appear beneath it; the button itself tells you what will happen, reading Write Timecode, Export Poly, or Write TC & Export Poly. When you ask for both, the timecode goes in first, because it is metadata on your own recordings and has nothing to do with the poly — if the assembly then fails, you still have the timecode. The timecode table is the same one as before, so nothing is written that you have not seen.
- ChangedSync tab button colour: the Save Timecode button and the Write Timecode button in its dialog were the only green buttons in the app. The button that replaced them is the same blue as every other main action.
- FixedTimecode showed a frame early at 23.976 and 29.97 non-drop. Unless a file’s timecode happened to land exactly on frame 00, Wave Copilot displayed it one frame low — in the file list, the Metadata Editor, the waveform ruler, the transport readout, Sync and Sound Reports — and wrote that same error into files when you edited timecode or used Sync. Custom TC Range conform points were out by up to a millisecond for the same reason. These two rates count 24 and 30 frames per timecode second while running fractionally slow, and the conversion was mixing those two facts up. 24, 25 and 30 fps were never affected and are unchanged. Drop-frame is fixed too, and in a way you can see: a 29.97 DF file from an 833 stamped at 18:35:06;00 was being displayed as 18:35:06;02, because the two halves of the conversion disagreed about what 29.97 means. The error grew through the day, reaching around two and a half frames by the evening. Wave Copilot now reads those files exactly as the recorder and Wave Agent do.
- FixedChanging a file’s frame rate no longer nudges its timecode. With Preserve Start TC switched on, Wave Copilot rebuilt the sample position from the timecode text, which rounds it to the nearest frame — so a recording that started part-way through a frame lost that offset, and changing the rate and changing it back did not give you your original value. The position within the frame is now carried across, matching Wave Agent exactly on every frame rate. This matters most for Audio TC and Sync by Audio, whose timecode is accurate to the sample rather than the frame. Re-selecting the frame rate a file already has now leaves it completely alone rather than recomputing it.
- FixedDrop-frame timecode could not be edited, and saving one erased the frames. On a 29.97 drop-frame file, typing a timecode into the Metadata Editor reported “Invalid timecode value” on a perfectly valid entry: drop-frame is written with a semicolon before the frames (18:35:06;12) and the check only understood a colon. Saving one was worse — the frames were read from the wrong part of the text and silently became 00, so the file came back as 18:35:06;00. Both are fixed, and either separator is now accepted anywhere you can type a timecode. This was not a recent regression; drop-frame files have behaved this way in earlier versions too.
- ChangedDrop-frame timecode is now shown with a semicolon. The file list displayed drop-frame with a colon like everything else, hiding the distinction at a glance; it now reads 18:35:06;11, matching the Metadata Editor and the SMPTE convention. This also clears up an inconsistency where two files at the same timecode could be treated as different when grouping multi-mono families, depending on whether the timecode had been written by Sync or read from the file.
- FixedAudio TC only saw one channel of a multi-mono take. Where a take is stored as separate mono files, Wave Copilot scanned just one of them, so the channel list offered a single entry and a timecode burst sitting on any other channel was never found. A multi-mono take now behaves exactly like a poly file: every channel is scanned and listed under its own track name, and the burst is found wherever it actually is. Muting silences only the channels carrying it, and writes copies of all of them, so what you get back is a complete take rather than a single file on its own. Assembling a poly from a multi-mono take now brings in every channel too.
- FixedPoly output was wrong for 32-bit float recordings. When assembling a poly WAV, Wave Copilot did not recognise that a source was 32-bit float, so the assembled file was labelled as integer audio while the float samples were copied straight in — leaving a file whose contents did not match what its header claimed, with levels reading wildly wrong. This affected Conform’s Match Reference and Custom TC Range poly output as well as Audio TC’s new assembly. Float sources are now detected properly, and mixed float and integer sources assemble together cleanly.
- FixedOverlapping timecodes on the waveform ruler. At some zoom levels the first and last timecode labels on the ruler were drawn on top of their neighbours: labels are centred on their tick but nudged inward at the edges to stay on screen, and the spacing had not allowed for that nudge. Frame-level ruler ticks were also a tenth of a percent out at 23.976 and 29.97, where a frame was being measured very slightly long.
- FixedChannel assignment scrambling during playback: a momentary read underrun on a slow drive could permanently rotate which channel played on which strip for the rest of the file, so track 1 would come out of track 2. Audio frames are now only consumed whole. A related crash on some files, caused by an audio chunk arriving split mid-sample, has also been fixed.
- FixedPlayhead jumping when changing shuttle speed: while shuttling, each further press of J or L moved the playhead to the wrong position instead of continuing from where the audio actually was — backwards when stepping down (8×→4×→2×), forwards when stepping up. The error grew the longer you had held the previous speed, so dropping from 8× after ten seconds could land you tens of seconds early. Speed changes now resume from the true playback position.
- FixedDetached playback window playhead jumpiness: the playhead in the detached window now follows the audio smoothly instead of stuttering or snapping backwards, most visibly at 2×–8× shuttle speeds. It now eases toward the true audio position rather than jumping to each update as it arrives, and only jumps outright for a real seek.
- FixedDetached playback window re-scanning waveforms: waveforms handed over from the main window when the Playback window is detached are now kept, so resizing the detached window no longer triggers a full FFmpeg re-scan of the file. Waveform generation also stops retrying a file that FFmpeg cannot decode after three attempts, instead of retrying forever and pegging a CPU core.
- ImprovedApp startup: every open window used to run its own full license validation at the same moment, including a hardware fingerprint and sometimes a network call to the license server. These are now coalesced into a single check, making startup quicker — especially with the Playback window detached.
- ChangedReports live fields: the fields in Header Info and Recording Info that can be read from your files — Project, Folder, Date, Roll, Recorder, Media, File Type, Sample Rate, Frame Rate, and Bit Depth — now stay in sync with the loaded files when their re-sync icon is lit. Previously a live field only re-derived when a template was loaded, so it could sit there showing a value from an earlier selection. Switching files now updates every live field immediately, and turning the re-sync icon on refreshes that field on the spot instead of waiting for the next template load. Clearing the file list leaves the last values in place rather than blanking them.
- ChangedReports field overrides: typing into a live field now turns its re-sync off automatically, so your text stays put and no longer gets overwritten the next time the file selection changes. Click the re-sync icon again to hand the field back to the metadata.
- FixedReports live fields forgetting their setting: the re-sync and show/hide settings on the saved Header Info fields were lost when the app restarted, so a field set to live came back marked fixed and still showing its old stored value. Both settings now persist, and live fields re-derive from the current files on launch. Loading a template also correctly re-derives live fields that a template saved before the field existed would previously have skipped.
- FixedCustom output names numbered from _2 instead of _1: when several outputs of one operation resolved to the same custom name, the first file was left unnumbered and the rest became _2, _3, … So splitting an 8-channel poly with a custom name gave name.wav, name_2.wav … name_8.wav, and those files would not load back as a multi-mono group. Every file in a repeated set is now numbered from _1 (name_1.wav … name_8.wav), so split mono files reload as one multi-mono family. Names that are already unique within the batch are still left exactly as your template resolved them, with no number appended. This applies to every operation with a custom Output Filename — Split Poly, Combine Mono/Poly/Group, Convert Format, Export Mix, and all three Conform modes — and the live preview in the Output Filename editor now shows the numbering it will actually use.
Version 1.0.18
July 27, 2026
- NewSync tab: align recordings by their audio content instead of relying on embedded timecode. Select any combination of loaded files — poly, mono, or multi-mono groups — click Align by Audio, and each one is automatically positioned relative to a reference recording using audio cross-correlation, with a match-confidence score shown per file. Drag a waveform directly to fine-tune the alignment, or nudge it by ±1 frame, ±10 ms, or ±1 ms. Play every selected file together through one sample-locked mix to confirm sync by ear, with independent mute, solo, and volume per file and a live level meter. This is built for syncing backup recorders that carry no timecode of their own to a main recorder that does, or for aligning any recordings made without timecode at all.
- NewSync tab timecode writing: once you're happy with the alignment, Save Timecode writes the computed start timecode and frame rate to every file's metadata — the audio itself is never touched. The reference file's own timecode and frame rate are picked up automatically when available; if none of the selected files carry timecode, you can type a starting timecode and choose a frame rate manually, with a Snap to Frame option to round every file's computed start to the nearest frame boundary. A confirmation dialog lists the old and new timecode for every file before anything is written, flagging low-confidence matches, detected clock drift between recorders, and any existing timecode that disagrees with the audio-based alignment.
- NewAutomix channel selection: each channel strip now has a toggle, visible whenever Automix is enabled, to include or exclude that channel from the gain-sharing/gating calculation. Excluded channels are never muted — they keep playing at their own fader level and blend in underneath the automixed channels; they're simply left out of the ducking decision. All channels participate by default. The selection is saved per file and restored when you switch between files, carries over to the next file when the mixer is locked, and is fully respected by Export Mix.
- ChangedPlayback waveform zoom controls: the text-based "−" / "+" zoom buttons in the Playback transport bar have been replaced with zoom-in/zoom-out icons matching the Sync tab, and a new reset-zoom button (⛶) has been added next to them to instantly return to the full 1× overview.
- FixedAutomix reacting to fader moves: Gain Sharing and Intelligent Gate now base their gain-sharing and gating decisions on each channel's true, unprocessed signal level instead of its level after your fader adjustment. Previously, riding a fader while Automix was on fed back into its own decisions — turning a channel down made Automix duck it even further, and turning it up made Automix favor it more — which matched neither hardware automixer behaviour nor what Export Mix produced. Automix in the Playback window and in Export Mix now agree.
Version 1.0.17
July 22, 2026
- NewCombine Group: a new Split/Combine tab for merging any number of files — regardless of channel count or filename — into one polyphonic WAV. 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 sample rate and exact length alone. Output channels can be freely reordered by drag-and-drop across file boundaries (not just as whole-file blocks), and each channel's name is independently editable, defaulting to the source file's own bext/iXML track name. Each group also lets you choose which file's other metadata (scene, take, timecode, notes, markers) carries over to the merged output, shown with a warning for anything that doesn't match — informational only, it never blocks the merge.
- NewCombine Group manual matching: files that don't auto-match land in an Unmatched Files list, where you can select several and click Create Group to merge them anyway, or fold one directly into an existing group with + Add unmatched file. Any file can be pulled back out of a group with one click if an automatic match doesn't actually make sense — it's marked excluded from auto-matching until you re-enable it.
- ChangedCombine Poly tab icon: the Combine Poly tab now has its own icon, distinct from Combine Mono, making the two tabs easier to tell apart at a glance.
- FixedMetadata editor End TC not updating: editing a file's Start TC and saving now recalculates End TC to match. Previously only changing frame rate or sample rate refreshed End TC; a direct Start TC edit left the old End TC value in place, most noticeably when resetting Start TC to 00:00:00:00.
- FixedStart TC rounding off by one sample: saving a Start TC, frame rate, or sample rate change could write a timecode one sample later than entered — most noticeably, setting Start TC to 00:00:00:00 saved a samples-since-midnight value of 1 instead of 0. A duplicated rounding offset in the timecode-to-samples conversion caused every save to round up an extra sample. This also affected Combine Group auto-matching: a file with Start TC manually reset to 00:00:00:00 could fail to auto-match an otherwise identical file, since the stray value of 1 made it look like it carried real embedded timecode.
Version 1.0.16
July 10, 2026
- NewCustom output filenames: every operation that writes files (Rename, Convert Format, Export Mix, Split Poly, Combine Mono, Combine Poly, and all three Conform modes) now has an Output Filename section where you can build your own naming scheme from metadata attribute chips — Project, Scene, Take, Tape, Date, Start/End TC, Sample Rate, Bit Depth, Track Name, Backup Name, and more — plus free text, with a selectable separator and a live preview of the resulting names. Drag chips to reorder them. Automatic mode (the default) keeps the exact naming behaviour of previous versions, so nothing changes unless you opt in. Templates are saved per operation and restored between sessions; each Conform mode keeps its own independent template. Chips with missing metadata are skipped cleanly, duplicate names get _2/_3 suffixes, and custom-named files never overwrite existing files in the output folder.
- NewRename preview dialog: renaming files now opens a dialog showing every file as "old name → new name" before anything is touched, with the filename scheme editor built in. Files missing the metadata required by the scheme are flagged and skipped.
- ChangedSplit Poly: the "Include track names in output filenames" checkbox has been removed; use the Track Name chip in a custom naming scheme instead. Automatic naming remains {name}_{channel}.wav.
Version 1.0.15
June 28, 2026
- ImprovedExternal drive performance: playback and waveform loading are significantly faster when working from USB or network-attached storage. The app now keeps file handles open for the duration of a session instead of reopening them on every read, pre-warms the audio buffer as soon as a file is loaded so the first play starts without delay, and uses larger read blocks during waveform scanning to reduce I/O round-trips. On a typical USB hard drive with a 20-minute multi-track session, waveform generation is up to 5× faster.
- ImprovedWaveform loading priority: selecting a file now immediately pauses any background waveform scan in progress, giving the selected file exclusive access to the drive. Previously the background queue competed with the foreground scan, causing the waveform to appear much later than expected on slow drives.
- ImprovedWaveform loading indicator: a spinner and live progress percentage now appear while waveforms are being computed for the first time, making it clear the app is working. Peaks are cached after the first scan and load instantly on every subsequent session.
- FixedAudio glitch when scrubbing: clicking to a new position in the waveform during playback no longer produces an audible pop or click on slow drives. The audio is briefly muted during the buffer refill and restored as soon as playback resumes.
- ImprovedDetachable playback window smoothness: the playhead and VU meters in the detached Playback window now animate at the display's native refresh rate, matching the fluidity of the main window. VU meters previously triggered two render passes per frame; they now update in a single pass alongside the playhead.
- ImprovedDetachable playback window waveform: waveform peaks computed in the main window are instantly shared with the detached window when it opens, including multi-mono and on-demand generated waveforms. The detached window no longer re-scans files from scratch.
- FixedVU meters for multi-mono sessions: level meters now work correctly for multi-mono groups of 6 or more tracks. Previously, meters were only active for RF64 stream files beyond that channel count.
- ImprovedRF64 streaming reliability: the pre-buffer window before playback starts has been increased, reducing the chance of dropouts at the beginning of RF64 and high-channel-count streams.
- NewWAV file association: Wave Copilot is now registered as a capable handler for .wav and .wave files. You can right-click any WAV file and choose Open With → Wave Copilot to add it directly to the list. This does not change your existing default app — it simply makes Wave Copilot available as an option wherever your OS shows "Open With".
Version 1.0.14
June 15, 2026
- FixedDetachable playback window performance: opening the Playback panel in a detached floating window no longer causes GUI lag or audio dropouts on lower-spec machines or when playing files from external drives. The main renderer was performing up to 60 canvas redraws per second even while the user was looking at the detached window; these are now suppressed while the window is detached. The IPC state payload sent to the detached window every 100 ms during playback has also been trimmed — static file-list data that does not change while playing is no longer included, reducing serialisation overhead by roughly 80 %.
Version 1.0.13
June 13, 2026
- Playback — Waveform zoom: the waveform now supports horizontal zoom from 1× to 1000×. Use Ctrl+scroll (or trackpad pinch on macOS) to zoom centred on the cursor, or use the ‒ / + buttons in the transport bar; the current zoom level is shown between them. When zoomed in, Shift+scroll (or a two-finger horizontal swipe on macOS) pans through the file, and a scrollbar below the timeline ruler lets you jump to any position. The timeline ruler adapts its tick spacing to stay legible at every zoom level. The playhead stays visible at all times — the view follows it automatically during playback and zoom always keeps it on screen. Zoom is fully supported in the detached Playback window.
- Playback — Detachable window: the Playback tab can now be popped out into its own floating window. Click the ⇱ icon to the right of the Playback tab label to detach it; the tab disappears from the main bar. File navigation syncs in both directions — loading a file in the main window updates the detached player, and using Previous/Next in the detached window navigates the main file list. The full mixer, transport, and automix controls all work in the detached window. Close the window to reattach.
- Playback — Console toggle: a new "Console" bar between the transport controls and the mixer can be clicked to collapse or expand the mixer panel. When collapsed, the waveform zone expands to fill the freed space — useful when working with many-channel files and you want more track height visible. Click the bar again to restore the mixer.
- Playback mixer — Pan reset: double-clicking the pan slider on any channel strip instantly resets it to center (0). No more manually dragging back to the middle.
- Playback mixer — Exclusive solo: holding Ctrl (Windows/Linux) or Cmd (Mac) while clicking the Solo button on a channel now solos only that channel and unsolos all others. A regular click still toggles solo additively as before.
- Playback — Keyboard file navigation: pressing the Left arrow key on the Playback tab loads the previous file and Right loads the next file, following the current sort order. The shortcut is active whenever you are not typing in an input field.
- Playback — Return to Start: a new toggle button (↺) in the transport bar lets you pin the playhead to a play-in point. When enabled, pressing Stop or reaching the end of the file returns the playhead to exactly where you pressed Play, not to the beginning of the file. When disabled (default), the playhead stays wherever it stopped.
- Playback — J/K/L shuttle and ⏪/⏩ seek buttons: the transport bar now includes Rewind (⏪) and Fast Forward (⏩) buttons, each stepping the playhead by 5 seconds. The J, K, and L keys provide NLE-style shuttle control: J and L seek −5 s / +5 s when stopped; while playing, each L press doubles playback speed (1×, 2×, 4×, 8×) and each J press steps it back down, pausing at 1×; K plays from the current position when stopped, or pauses when playing. Space respects the Return to Start toggle: when off, Space pauses in place; when on, Space acts as Play/Stop and returns to the play-in point. The current shuttle speed is shown as a badge next to the play button.
- FixedSplit poly WAV compatibility with Cantar TrackMatch: mono files produced by the Split function now open correctly in Cantar's TrackMatch tool. The bext metadata chunk is now always written at the standard 602-byte size (previously it included a coding history block that caused TrackMatch to misparse the file structure and report "no data chunk"). The output iXML now includes a unique FILE_UID for each split file and correctly declares the channel mode as mono in the BWF coding history.
- Fixed24-bit WAV playback: split mono and multi-mono WAV files now play back at the correct pitch and speed. Chromium's built-in audio decoder only handles 8/16-bit PCM and silently misread 24-bit files as 16-bit, causing playback at two-thirds speed (roughly a fifth lower in pitch) with distortion. Wave Copilot now routes all 24-bit WAV files through FFmpeg for decoding, which handles every bit depth correctly.
- FixedMulti-mono playback: playing two or more mono files grouped as a multi-mono set now works correctly. A missing parameter in the audio bridge caused the second (and any subsequent) file path to be silently dropped, so FFmpeg only decoded the first channel while Wave Copilot expected two — producing a half-speed, octave-low output. All file paths are now forwarded correctly and the channels are merged in sync via FFmpeg's amerge filter.
- FixedConform CSV: tab-delimited CSV files exported from Cantar are now parsed correctly. The importer auto-detects whether the file uses commas or tabs as the delimiter and maps Cantar column names (TC Start, TC End, Frequency, Bits, TC FPS) to the expected fields automatically.
- FixedCrash on quit: clicking the red close button no longer triggers a JavaScript error in the main process. A pending timer could fire after the window was destroyed and attempt to call methods on it — the window reference is now cleared on close so the timer exits cleanly.
- FixedPlayback stops when file is removed: removing a file from the list while it is playing now stops playback immediately. Previously, audio would continue even after the file was no longer in the list.
- FixedCombine Poly bit depth display: combined files exported at a different bit depth than the primary (e.g. secondary ISO files converted from 32-bit float combined with a 24-bit main mix) now show the correct output bit depth in the Recording tab. The primary file's iXML AUDIO_BIT_DEPTH value was being carried into the output unchanged and overriding the actual fmt chunk value when the file was re-read.
- FixedConform Poly WAV Output channel order: when backup recordings are polyphonic WAV files, the output channel order now matches the channel order of the source file instead of sorting alphabetically. Alphabetical sorting is still applied when all backup files are mono (one channel each), where it ensures a consistent, predictable layout. This fix applies to both Match Reference and Custom TC Range modes.
Version 1.0.12
May 28, 2026
- Fixedpressing Play after an external audio interruption (OS audio event, Electron window losing audio focus) previously did nothing — the engine incorrectly believed it was still playing. Wave Copilot now detects when the audio was stopped externally and resets playback state automatically, so clicking Play restarts from the last position without needing to reload the file.
- FixedAATON CANTAR poly WAV files (and any recorder that embeds large proprietary metadata blocks before the audio) now display the correct end timecode and duration. The CANTAR stores its complete mixer state in a chunk that can exceed 8 MB, pushing the audio data beyond Wave Copilot's initial scan window and causing an incorrect duration to be calculated. Wave Copilot now streams through chunk headers until it locates the audio data, regardless of how much metadata precedes it.
- Automix: the playback mixer now includes an automatic mixing assistant that controls per-channel gains in real time based on signal activity, keeping the dominant microphone at full level while attenuating inactive channels — without riding faders manually. Two modes are available: Gain Sharing (GS) smoothly and continuously redistributes gain across all channels proportional to each channel's level relative to the group; Intelligent Gate (IG) makes more decisive switching decisions using per-channel noise floor tracking, a cross-channel loudness comparison, and −10 dB off-attenuation for inactive mics. Automix is disabled by default and must be explicitly enabled per file using the wave (∿) icon in the mixer toolbar. Settings are saved per file and restored when you switch between files. When the mixer is locked, automix settings carry over to each new file alongside all other mixer settings. Export Mix fully supports automix: the rendered output reflects the same dynamic gain decisions applied during playback. A batch automix option in the Export Mix dialog lets you override all files at once with Gain Sharing, Intelligent Gate, or leave each file using its own individual setting. Output filenames include a _GS or _IG suffix when automix is applied, making it easy to distinguish automixed exports from straight fader mixes.
- Conform — CSV Reference File: Match Reference mode now accepts a CSV sound report as the reference source instead of the session file list. Click "CSV File" in the Reference Files panel to load any CSV exported from your sound report software. The CSV is parsed automatically regardless of line endings (LF, CRLF, or CR-only) and skips any project-info preamble rows at the top of the file. Required columns: Start TC and End TC. Optional: Scene, Take, Tape, Frame Rate, Sample Rate, Bit Depth. Column names are case-insensitive and accept spaces or underscores. The SR/Hz column name used by some recorders is also recognised as sample rate.
- Improved (macOS): hovering the green zoom button now shows the macOS window management popover (Move & Resize, Full Screen, Move To) on macOS 13 Ventura and later. Tiling to left/right/top/bottom halves works correctly on macOS 15 Sequoia. The minimum window size has been reduced to allow macOS to snap the window into tiled positions without pushing it off-screen.
- Conform — Backup Recordings: the loaded file list in all three conform modes (Match Reference, Custom TC Range, and Track Replace) now has a fixed maximum height with a vertical scrollbar, so adding many backup files no longer pushes the rest of the panel off-screen.
- Conform — Track Replace: a new "Remove silent tracks from output" checkbox automatically excludes any backup channel whose peak is below the silence threshold from the exported file. When enabled, the output poly WAV contains only the non-silent channels — for example, a 6-channel file with 2 silent channels produces a 4-channel output instead. When disabled (default), behaviour is unchanged.
- Sound Report — Track Names (Column): the in-app preview and PDF export remain limited to the first 8 track columns to fit the page width. CSV export now includes all track columns with no limit, making it suitable for sessions with more than 8 tracks.
- ImprovedTimecode fields: Start TC and End TC fields in the Metadata editor and Conform Custom TC Range panel now accept digit-only input with colons inserted automatically (semicolons for drop-frame rates, switching when you change frame rate), support paste via Ctrl+V / Cmd+V, no longer jump the cursor to the end when clicking mid-value, and can be fully cleared.
- Conform — Custom TC Range: a new Poly WAV Output checkbox assembles all loaded backup files that overlap the specified timecode window into a single polyphonic WAV, with silence padding where a backup does not cover the full range. Channels are grouped by track name (from iXML metadata) and sorted alphabetically. Multiple backup files sharing the same track name are stitched into one channel automatically.
- ImprovedConform Custom TC Range: when the End TC field is at its default (00:00:00:00) and you finish entering a Start TC value, End TC is automatically pre-filled with the same value. You only need to adjust the end time rather than retyping the entire timecode from scratch.
- Settings persistence — all configuration options in the Report panel (include files, file order, include in report, additional rows, and columns to include), Combine Poly options (secondary channel placement and normalise to –1 dBFS), Conform normalise settings (saved independently per conform mode), Conform Match Reference poly WAV output, Conform Custom TC Range poly WAV output, and Conform Track Replace silent track removal are now saved automatically and restored between sessions.
Version 1.0.11
May 21, 2026
- Fixedsome users were unexpectedly returned to trial mode after updating the app and had to re-enter their licence key. This has been resolved — your licence now persists correctly across updates.
- Fixedseveral metadata reliability issues affecting large RF64 files and output files have been resolved. Saving metadata on RF64 files no longer corrupts the container. Origination date and time are now preserved correctly in all output files. BWF Version and UMID fields are read from the correct positions during split, combine, convert, and export. Export Mix no longer reports an incorrect file size for recordings whose stereo mix exceeds 4 GB.
- Combine Poly: a new tab in the Split/Combine panel lets you merge two poly WAV files (e.g. main recording + stereo mix file from 32-bit float devices) into a single combined poly WAV. Secondary files are loaded as a separate list and automatically matched to primary files by timecode. Output format can match the primary file, secondary file, or a custom rate/bit depth. Secondary channels can be placed before or after primary channels. Track names from both files are preserved in the combined iXML and bext metadata. Optional per-channel normalization to –1 dBFS is available.
- Conform — Poly WAV Output: a new option in Match Reference mode reassembles mono or poly backup files into a single poly WAV per reference take. Each backup channel is placed at the exact timecode position it was recorded at, with silence padding where a backup does not cover the full reference window. Multiple backup files sharing the same track name (e.g. a split recording) are stitched into one channel automatically. All reference metadata — timecode, scene, take, originator, and iXML — is preserved from the reference file, with track names sourced from the backup files. Format conversion and normalisation options are available.
- Improved (macOS): the app now looks and behaves like a native Mac application. The title bar uses the standard macOS traffic-light window controls (close, minimise, zoom) instead of Windows-style buttons. Cmd+Q quits the app in a single press. The duplicate in-app menu bar has been replaced by a proper native macOS menu bar containing all File, View, Window, and Help items with their keyboard shortcuts.
- Fixed (Linux): corrected the Electron sandbox option that prevented the app from launching correctly on certain Linux systems.
- Track Replace — Silence threshold: the level at which a backup channel is flagged as potentially silent is now configurable via a slider ranging from -90 to -48 dBFS in the Channel Assignment panel (default -72 dBFS, previously hard-coded at -80 dBFS). Changing the slider immediately re-evaluates all channels — no re-scan needed. Your selection is saved automatically and restored the next time you open the app.
- Track Replace — Reset silent tracks: a new button in the Channel Assignment panel bulk-sets all silence-flagged channels across every reference file to "Keep Reference" in one click, so they are excluded from the conform output. The button only appears when at least one silent channel is detected. An Undo button appears immediately after the reset in case you change your mind.
- Folder loading: the Add Files dialog now accepts folders in addition to individual files. Selecting a folder loads all WAV files it contains (top-level only, non-recursive). This works in both the main file list and the Conform backup recordings list.
- Export Mix — Mono output: a new "Export as Mono" checkbox in the Export Mix dialog collapses all channels into a single mono track. Gain, mute, solo, and phase invert are all respected; pan position is ignored since there is only one output channel. The output subfolder name gains a _Mono suffix (e.g. Mix_24bit_Mono/) and the iXML TRACK_LIST is updated to a single MIX track.
Version 1.0.10
May 13, 2026
- Wave Copilot is now available on Linux — download the AppImage (portable, works on any distro) or the .deb package (Debian/Ubuntu) from the releases page.
- Track Replace: a warning icon now appears next to any backup channel whose peak level is below –80 dBFS, indicating the channel may be silent. Hovering the icon shows the measured peak level.
- Fixedthe app no longer becomes unresponsive during long file operations. Split, Convert Format, Export Mix, Combine Mono, Conform, and Track Replace Conform all yielded the main thread during large I/O loops, causing the OS to show a "not responding" dialog on large files. All streaming loops now yield between chunks so the interface stays interactive and progress updates deliver smoothly throughout.
- Improvedtooltips throughout the app now use a custom implementation that appears reliably and quickly on all platforms, including macOS where native browser tooltips could be slow or fail to appear.
- Improvedkeyboard shortcuts now display the correct modifier key for each platform — Cmd on macOS, Ctrl on Windows. New shortcuts added: F2 to rename, Cmd+K to open Convert Format, and Cmd+D to open Export Mix.
- Improvedthe file list toolbar no longer wraps to a second line when many files are loaded or selected. The item count and selection count are now displayed on a dedicated row below the action buttons, keeping all controls on a single line.
- Fixedthe template dropdown in the Reports tab now has sufficient right padding so the chevron arrow no longer overlaps the placeholder text.
Version 1.0.9
May 7, 2026
- Wave Copilot is now a universal binary — a single download runs natively on both Intel and Apple Silicon Macs. The macOS "Support Ending for Intel-based Apps" warning will no longer appear, and clients previously running the Intel build on Apple Silicon hardware will automatically update to the native version.
- FixedCombine Mono and Batch Combine now handle source files larger than 2 GiB. Files in that range previously failed with a "File size is greater than 2 GiB" error. The header and metadata are now read in slices rather than loading the entire file into memory, so combining multi-hour recordings is no longer limited by the 2 GiB Node.js Buffer ceiling.
Version 1.0.8
April 27, 2026
- Batch Combine: tracks can now be excluded from the output by deselecting them in the routing matrix — click an active cell to toggle it off. Unselected rows are skipped entirely, allowing you to combine a subset of channels (e.g. ISO tracks only) into a new poly WAV without affecting the rest of the batch.
- Fixedfile conversion now works correctly on Mac Intel — the app was bundling an Apple Silicon (ARM64) FFmpeg binary in the Intel build, causing a CPU architecture error when attempting any conversion or export on x86_64 Macs.
- Fixed32-bit float WAV files with over-range content (peaks above 0 dBFS) now display correctly in the Playback waveform — the waveform shape is always visible and over-range sections clip visually at the channel boundary, matching standard DAW behaviour.
- Fixedwaveform peak cache could store a garbage value in the last bin when the WAV file contained metadata after the audio data chunk, causing an incorrect 698 dB peak label. The cache version has been bumped to regenerate any affected files automatically.
- FixedNormalize to -1 dBFS for 32-bit float files now produces audible output — the gain is now calibrated to the actual audio content, ignoring extreme transient outliers (such as recorder glitches far above normal signal levels) that previously caused the entire file to be reduced to near-silence.
Version 1.0.7
April 10, 2026
- FixedPRE/POST meter mode now works correctly — in PRE mode the meter shows signal even when the fader is down or the channel is muted, matching standard mixer behaviour. The hot-swap also now works correctly when toggling modes while playing, for all file types including multi-mono and RF64 streams.
- Phase invert button (Ø) added to each mixer channel strip — click to flip the polarity of any channel. Useful for correcting out-of-phase microphones. State is saved and restored per file along with all other mixer settings.
- Fader floor is now true silence — pulling the fader to -48 dB produces no output (-∞) instead of a faint residual signal.
Version 1.0.6
March 31, 2026
- Column sort is now preserved when switching tabs — returning to the file list keeps your sort intact.
- Previous/Next in the Playback tab now follows the sorted file order, so navigating matches the list exactly.
- Normalize to -1 dBFS option in Convert Format — brings every channel to -1 dBFS in a single pass. Targets -2 dBFS for MP3 and AAC to avoid inter-sample clipping.
- Prevent Clipping now targets -2 dBFS for MP3 and AAC output.
- Waveform peak scanner now reads every sample for accurate peak dB readings, runs asynchronously, and uses the WAV fmt chunk for channel and bit-depth info.
- Fixedbatch scene update no longer adds a + prefix to filenames when all selected files have unique take numbers.
Version 1.0.5
March 24, 2026
- Conform — Replace Track In: replace an existing track in the conform list by dragging a new file onto it, preserving its destination and settings.
- Conform — Normalization option now available for all conform modes, not just certain presets.
- Export Mix: export a rendered mix directly from the session, streamlining delivery workflows.
Version 1.0.4
March 18, 2026
- Fixed a bug with the Split / Combine feature causing incorrect output in certain scenarios.
Version 1.0.3
March 17, 2026
- Main file list state is now persisted between sessions — the app no longer resets on relaunch.
- Various cosmetic fixes and UI polish.
Version 1.0.2
March 16, 2026
- Introduced the Conform feature for matching and delivering audio files to picture.
- Mixer Lock and Reset: lock channel strip settings to prevent accidental changes, and reset any channel to its default state.
Version 1.0.1
March 6, 2026
- MP3 and AAC export: added lossy format options to the conversion panel.
- Sound report templates: create and save custom templates for audio delivery reports.
Version 1.0.0
February 18, 2026
- Initial release.
Wave Copilot, Professional Broadcast WAV File Management.
Product page ·
User manual ·
1khz.ca ·
info@1khz.ca
Copyright 2026 1KHZ Inc. All rights reserved.