Auto cut audio for Final Cut Pro
Final Cut has no Delete Pauses of its own. So either you buy a plugin that lives inside the app, or you cut the silences somewhere else and import the result. This runs in a browser, finds the pauses, and writes an FCPXML — Final Cut’s own format — that opens as a finished project. Your rushes never move and nothing is re-encoded.
In short: upload, check the pauses it found, pick your project frame rate, download the FCPXML, then File > Import > XML into an open library. You relink the media once and the cuts are in place. Free tier: 5 min and 200 MB per file, no account.
Of the three editors, Final Cut is the easy one
FCPXML is Apple’s format. It came out of Final Cut Pro X and Final Cut reads it as its own language — no translation, no guessing what an editor from another vendor will tolerate. Premiere needs the old FCP7 XML (<xmeml>), a completely different vocabulary that only shares a name; Resolve reads FCPXML as a well-behaved guest. Final Cut is where the format comes from.
So what we write is a real Final Cut structure, not a lowest-common-denominator timeline: a <library> holding an <event> holding a <project>, with every kept segment as an <asset-clip> on the spine. That is exactly the shape Final Cut exports and re-imports. Here is the skeleton, straight from src/lib/timeline.ts:
<fcpxml version="1.9">
<resources>
<format id="r1" frameDuration="1001/24000s"/> <!-- 23.976, exact -->
<asset id="r2" name="interview.mp4" hasVideo="1" hasAudio="1" ...>
<media-rep kind="original-media" src="file://localhost/interview.mp4"/>
</asset>
</resources>
<library>
<event name="make-autocut">
<project name="interview (autocut)">
<sequence format="r1" tcFormat="NDF" audioLayout="stereo" audioRate="48k">
<spine>
<asset-clip ref="r2" offset="..." start="..." duration="..."/>
<!-- one per kept segment, already rippled end to end -->
</spine>
</sequence>
</project>
</event>
</library>
</fcpxml>We leave the format @name out on purpose
An FCPXML <format> can carry a name like FFVideoFormat1080p2398. Those identifiers encode a resolution, and we never probe your picture — silencedetect reads the audio stream. Inventing one is inventing a fact we don’t have, so we write only frameDuration, the attribute that actually drives the conform, and let Final Cut fill the rest from your media. Omitting an optional attribute beats guessing it.
NTSC rates are rationals, never decimals
23.976 is not a frame rate; 24000/1001 is. In FCPXML we express it as frameDuration="1001/24000s", and every cut point is a rational over the same base. Store the decimal instead and your cuts drift by about a frame every 40 seconds — imperceptible at the head of the project, obviously wrong by minute nine.
The one thing to check before you upload
Final Cut is strict about FCPXML versions in a way the other editors are not. We write version 1.9, which shipped with Final Cut Pro 10.4.9 in 2020. Every Final Cut since reads it — on import it silently upgrades the file to its own newer version and carries on. But a Final Cut older than 10.4.9 will refuse a 1.9 document outright, with a version-mismatch dialog and no timeline.
So, practically
If you keep Final Cut anywhere near current — anything from 2020 on — you never think about this. If you are pinned to an old build on a locked machine, that is the one case where an import fails and there is nothing on our end to fix, because the version number is the contract. We picked 1.9 rather than a newer schema precisely to keep that window as wide as possible.
The import, click by click
Nobody documents this end to end, for an obvious reason: if you know how to import an FCPXML you don’t need a plugin. Here is all of it.
1. Open (or make) a library first
Final Cut has nowhere to put an import without one. Any library will do — a scratch one is fine, because the import arrives as its own event and project and touches nothing else.
2. Upload the file you are actually going to cut
Give us the video, not a bounced MP3. We write a video track into the FCPXML only when the source we analysed was a video, so an audio upload produces an audio-only project. Detection reads the audio either way — the picture just rides along, cut on the same frames.
3. Check the pauses before you export anything
The waveform highlights every stretch we are about to remove. Auto-calibration has already picked a threshold from your file’s own noise floor; drag it and re-analyse if it looks timid — it usually is, on purpose. Fixing a threshold takes two seconds here and a full re-import later.
4. Set the frame rate to your project, then click “Final Cut Pro”
Not the camera’s rate, not the delivery rate — the rate of the project you are cutting into. We never probe the picture, so this is the one thing we genuinely cannot infer. The download is an
.fcpxmlof a few kilobytes, instant: no render, no queue. The timeline endpoint reads the analysis already in the database and templates a string.5. File > Import > XML, pick the .fcpxml
Final Cut creates an event named make-autocut in your open library, with a project named after your file and (autocut) appended. Open it. Every cut is already on the primary storyline and the timecode starts at 00:00:00:00 non-drop.
6. Relink the media — this always happens
Every clip arrives as missing media with a red icon and Final Cut offers to locate it. Point at your original file once (File > Relink Files, or “Locate All”) and the whole project resolves; every clip references the same asset. See below for why we make you do this.
7. Do the part a detector should not do
The cuts are straight cuts. Detach audio and slide edges where a join is abrupt, add short fades on the harsh ones, restore any pause that was carrying meaning. This is the argument for handing you a project over a flattened file — you get to disagree with us, edit by edit.
Why every clip arrives as missing media
Your file reached us through a browser upload, and a browser upload strips the disk path. We never knew where your media lives, so the asset’s <media-rep kind="original-media" src="file://localhost/your-file.mp4"/> is a bare filename — which Final Cut always flags missing and always offers to relink. That is deliberate. Inventing a plausible absolute path is worse: a wrong path either fails with no explanation or, on a machine holding a similarly named file, links the wrong media and lets you cut for an hour before you notice. An honest relink beats a silent mislink.
Plugins inside Final Cut, and us
Final Cut has no built-in pause remover, so the real comparison is against the plugins that run inside it. When one of those works, it is a nicer experience than exporting a file and importing it back — fewer clicks, and it knows things about your project we never will. We are not going to pretend otherwise. The trade is what you can install and what you have to keep up with.
| Installed plugin / effect | Make Autocut | |
|---|---|---|
| Built into Final Cut | No — Final Cut ships none | No — it is a web page |
| Install needed | Download, install, sometimes a licence server | None. Nothing to install or uninstall |
| Final Cut version required | A supported minimum, per vendor | Anything from 10.4.9 (FCPXML 1.9) |
| How it finds a pause | Loudness, inside the timeline | Loudness, ffmpeg silencedetect |
| Removes filler words (“um”) | No | No. An um is sound, not silence |
| Other editors | Final Cut only | Premiere, Resolve, EDL, OTIO — same analysis |
| J-cuts / L-cuts | Some, on paid tiers | No. Straight cuts only |
| Touches your media | Depends on the plugin | No, on the FCPXML path |
| Price to try | Trial, then a purchase | Free: 5 min · 200 MB · 1 file/day, no account |
The row that decides it is the second from the bottom. A plugin does one editor; we do the analysis once and serialize it for four. That only matters if you actually move between editors — and if you live entirely in Final Cut and can install what you like, a plugin next to your timeline is a perfectly good answer. We are the tool for the machine you can’t install on, and for the day the same cut has to open in Premiere too.
Plugin behaviour above is described by category, not by vendor, because minimum versions and tiers change faster than this page does. Apple documents the FCPXML format in its FCPXML Reference.
What to set the threshold to
Every tool in this space publishes a dB range and tells you to pick a number in it. That advice is close to useless, because a fixed threshold is the wrong idea: a mic in a treated booth and a laptop capture with a fan running do not share a noise floor, and −40 dB means something different on each.
So we measure yours first. volumedetect reports the mean volume of your file, we set the threshold to mean − 5 dB clamped into the −50…−25 dB range, and fall back to -35 dB only if the probe returns nothing. That 5 dB gap is the whole safety margin and it is deliberately timid — on every file in our public benchmark, auto under-cuts rather than risk clipping a word. So the table below is not “set it to X”; it is “start on auto, then nudge”.
| Recording | Threshold | Min. silence | Padding | Why |
|---|---|---|---|---|
| Two-host podcast, treated room, decent mics | Leave it on auto | 0.8 s | 150 ms | The gap between voice and noise floor is wide here, so auto-calibration (mean − 5 dB) lands in a sane place. This is the case the defaults were built for. |
| Voice-over recorded at home, no treatment | Auto, then +3 to +5 dB | 0.8 s | 150 ms | A prepared read has little dead air to begin with — on our bench an already-published voice-over gave back 3.3% at defaults. Nudging the threshold up finds the rest. |
| Screencast, tutorial, Zoom lesson | Auto, then +5 dB | 1.2 s | 200 ms | Teaching pauses are long and meaningful. Raising the minimum keeps the beat after a question and only kills the “where is that slide” dead air. Extra padding stops the joins sounding clipped. |
| Outdoor interview, handheld or lav | Auto, expect to fight it | 1.0 s | 200 ms | Wind, traffic and room tone sit close to the voice. If the tool removes almost nothing, that is the honest answer and no threshold fixes it — denoise first, then come back. |
Defaults are 0.8 s minimum silence and 150 ms padding at each end, so a 1.00 s pause loses 0.70 s and keeps 0.30 s of air. All of it is measured, not asserted — the main auto cut audio page has 155 threshold measurements on five public-domain recordings you can download and re-run yourself, including the one where the tool honestly fails.
Four things a plugin does and we don’t
A comparison written by the vendor always has the empty boxes on the other side. Ours doesn’t, so here they are.
Roles and multichannel
Final Cut's roles are one of the best things about it, and we throw them all away. We analyse the mixed-down audio and write a single stereo asset — every kept segment on one storyline. On a two-mic interview the mix is usually the right thing to cut on (a pause is only a pause when nobody talks), but you cannot drive detection from one mic, and your careful role setup is not in the file.
J-cuts and L-cuts
Offsetting audio ahead of or behind the picture so a cut lands under the previous shot's sound. It is the single biggest thing between a rough assembly and something that sounds edited, and our serializer lays audio and video in lockstep. Detach audio in Final Cut and slide the edges yourself — which is exactly what a plugin automates. Doing it in the serializer is on our list; it is offset arithmetic on data we already hold.
Disable instead of delete
Leaving the silences in as disabled clips so you re-approve each one by hand, instead of rippling them out. Everything we write is enabled and already tightened. In FCPXML terms this is a small change and we intend to make it.
Saved presets
We auto-calibrate the threshold to each file, which beats a preset for that number and does nothing for the minimum-silence and padding rhythm you prefer. You set those every time. It is a real annoyance and we know it.
If any of those four is the reason you are searching, buy the plugin. It will do the job and this page will still be here when you are on a machine you cannot install it on.
Cut a file and take the FCPXML
First one is free, no account. You see the waveform, the pauses and the threshold it picked before anything is exported — and the timeline download appears as soon as the analysis is done. You never have to run the render.
Cutting in Premiere or DaVinci instead? The Premiere Pro page covers the FCP7 XML route, and the DaVinci Resolve page covers the frame-rate lock and the media pool checkbox.
Questions people actually ask
Does Final Cut have a built-in pause remover like Premiere's Delete Pauses?
▾
No, and this is the honest reason a Final Cut editor ends up on this search in the first place. Premiere transcribes a sequence and offers Delete Pauses; Final Cut has no equivalent shipped in the box. So on Final Cut your realistic options are a third-party plugin that runs inside the app or an external tool like this one that hands you a cut project. We are the second kind. If you were hoping Apple already did this and you just hadn't found the menu — they didn't.
Which Final Cut version do I need to import the XML?
▾
Final Cut Pro 10.4.9 or newer, which is the release that shipped FCPXML 1.9 back in 2020. We write version 1.9 specifically because it is old enough to be read by every Final Cut of the last five years and new enough to carry a clean library/event/project structure. A newer Final Cut reads it and quietly upgrades it to its own version on import. If you are on something older than 10.4.9, the import will refuse the file, and that is the one machine we cannot help.
Do I import it as an event, a project, or into an open library?
▾
You need a library open first — Final Cut has nowhere to put an import otherwise. File > Import > XML, pick the .fcpxml, and Final Cut creates an event called “make-autocut” inside the current library, with a project named after your file. The cuts are already laid on the primary storyline. Nothing merges into an existing project; it arrives as its own, so you can throw it away if you hate the result without disturbing anything.
Why is every clip showing as missing media with a red icon?
▾
Because we hand Final Cut a filename and not a path, on purpose. Your file reached us through a browser upload, and a browser upload strips the disk path — we never knew where your media lives. So the asset's media-rep points at file://localhost/your-file.mp4, a bare name, and Final Cut flags it missing and offers to relink. Do it once (File > Relink Files, or the “Locate All” button) against your original and the whole project resolves, because every clip references the same asset. Guessing an absolute path would be worse: a wrong guess either fails outright or silently links a similarly named file and lets you cut for an hour before you notice.
How does it set the frame rate — will it match my project?
▾
We write a <format> element with a frameDuration, and that is what Final Cut reads to build the project's timeline rate. So it matches whatever you choose in our export dropdown, not your camera and not your delivery rate — pick the rate of the project you are cutting into. The NTSC ones are exact rationals: 23.976 goes in as 1001/24000s, never as a decimal, because rounding it drifts the cuts by about a frame every 40 seconds. We offer 8 rates. If you pick the wrong one, re-export — it costs a second, no render involved.
Does the XML re-encode or degrade my footage?
▾
It can't. The timeline endpoint reads the cut list already sitting in our database and templates a string — no ffmpeg process starts, no worker touches it, your media is never opened. Final Cut plays your original off your own disk after you relink. That is the structural difference from our MP4 export, which really does re-encode (H.264, CRF 20, AAC at 192 kbps). If preserving quality is the whole point, take the FCPXML and never press export.
Why do all my audio clips land on one role instead of my mic roles?
▾
Because we analyse the mixed-down audio and write a single stereo asset with one audio source. Final Cut's roles system is one of the best things about the app for organising dialogue, music and effects — and we throw all of that away, because we never saw your separate tracks. Every kept segment becomes one asset-clip on the primary storyline. If your project lives or dies on roles and multichannel, this is a rough-assembly tool you will re-organise, not a conform.
Can it do connected clips, J-cuts or L-cuts?
▾
No. Every cut we write is a straight cut on the spine: audio and picture start and end on the same frame, laid end to end in the primary storyline. Final Cut's connected clips and the split edits you build by detaching audio are exactly the thing that turns an assembly into an edit, and our serializer lays everything in lockstep. Once the project is in Final Cut you can detach audio and slide the edges yourself — which is the work a straight-cut export is honestly not doing for you.
Can I disable the silences instead of deleting them?
▾
Not today. We ripple the gaps out and hand you a project that is already tightened, every clip enabled. Final Cut lets you disable a clip with V, but ours arrive with nothing to disable because the pauses are gone. The non-destructive part of our approach is elsewhere: your rushes are untouched and the FCPXML is a text file you can delete. If you specifically want the pauses left in and switched off so you re-approve each one, a plugin working inside the timeline does that and we don't.
What does it cost, and is the XML export a paid feature?
▾
The first file is free: 5 minutes, 200 MB, one file a day, no account. Pro raises it to 60 minutes and 2 GB with no daily cap. The limit is on the upload, not the output — no watermark on any tier, no degraded export, and the FCPXML is not locked behind Pro. Straight talk: 5 minutes will not hold a real interview, so if this becomes part of how you edit, you will be paying.
Nothing to install. Try it on a real file.
Five minutes, no account, no card, no watermark — and the FCPXML costs nothing extra.
Cut my file and get the FCPXML