fcp2aaf — how to convert a Final Cut Pro timeline to AAF for Pro Tools
What this is
fcp2aaf turns a Final Cut Pro timeline into an AAF that Pro Tools — and any other DAW: Nuendo, Fairlight, Reaper, Resolve — opens as an audio session: every clip in its place, with its level, its fades and its markers.
Final Cut does not export AAF. It exports FCPXML, a document describing the edit, and that document is what gets read here to write the AAF and to cut from your original material exactly the pieces that are heard in the edit.
What you hand over is not a file, it is a folder: the AAF, the audio it points at, and a report of what travelled and what did not. Hand over all of it.
Where all of this happens
Every part of the work happens inside your browser. Neither the FCPXML nor your material is uploaded anywhere: the same converter that exists as a command-line program runs here, in this tab, on the files you point it at.
That is why the browser asks permission to read a folder. That permission is between your browser and your disk, nobody else sees it, and it is read-only: nothing is ever written over your material. The only thing written is the delivery, into the folder you choose at the end, and if one of that name is already there another is made beside it rather than over it.
One practical consequence: closing the tab halfway through a conversion stops it. Whatever was already written to disk stays written.
Before you start: exporting from Final Cut
In Final Cut Pro, select the project in the browser and use File ▸ Export XML. Save it wherever you like; the FCPXML version does not matter, every one Final Cut writes today is read here.
Final Cut can give you two things: a loose .fcpxml file, or a .fcpxmld package, which is a folder underneath. Both work.
A .fcpxmld package can only be dragged. No browser dialog knows how to open one: the file picker sees a folder and the folder picker sees a file. Drag it from the Finder onto the drop zone.
You do not need to consolidate or copy anything. What matters is that the original files are still on your disk and that you can point at the folder holding them.
Step 1 · Timeline
Drag the .fcpxml or the .fcpxmld onto the dashed area, or use “or pick a file” if it is a loose .fcpxml.
If the document holds several projects, the Summary step lets you choose which one you are converting.
Step 2 · The material
Here you point at the folder where the material used by the edit lives. Subfolders are searched too, and files are matched by name: if the timeline asks for A001_C003.wav, it is enough for that name to exist somewhere inside the folder you chose.
You can drag the folder in, or use “or pick a folder”. Loose files can be dragged in as well when there are only a few.
And you can add more than one: if the video is in one folder and the sound in another, add both with “Add another folder” and both are searched. The ✕ on a line removes that folder, and only what it brought.
The browser will not let you pick the Desktop, Downloads, Documents or your home folder: the system protects those, and the picker either refuses them or does nothing at all. Pick a subfolder instead. If your material is sitting loose on the Desktop, put it in a folder — “Material”, “Rushes”, anything — and pick that.
When the folder holds everything the timeline asks for, the zone turns purple and says “Everything is here”. If something is missing, the names that did not turn up are listed: it almost always means you picked a folder too far down the tree and need to go up one.
At the foot of the step is the path where Final Cut had the material when you exported. You do not have to use it — matching is by name — but it is the fastest hint when you cannot remember where things were.
Nothing is copied or moved. The pieces that are needed are read, and that is all.
Step 3 · What I found
This is where you check that what was read is your project. If these numbers do not look like your timeline, something went wrong in the export, and it is better seen here than after a long conversion.
- Clips — how many pieces of audio are in the edit. A stereo clip counts once.
- Tracks — how many audio tracks the session will have. Not the same as your roles: if two clips of the same role overlap, two tracks are needed.
- Roles — the Final Cut roles that were found (dialogue, music, effects…). They are what names the tracks.
- Frame rate and Timecode — the project's rate, and whether timecode is NDF (non-drop) or DF (drop frame). They change how times are numbered, never where the audio sounds.
- Duration — how long the timeline runs.
- FCPXML — the version of the document Final Cut exported.
- Regions — how many pieces of audio have to be cut from the material. It is the unit the conversion's progress is measured in.
Below that, “What it carries” counts everything travelling besides the clips themselves:
- Fades — ins and outs drawn on a clip.
- Crossfades — dissolves between two consecutive clips.
- With gain — clips whose level you changed.
- With automation — clips carrying a volume curve rather than a fixed level.
- With pan — clips whose left/right position you moved.
- Markers — they arrive in the session as locators.
- Switched off — clips you silenced in Final Cut. They do not travel by default; it says “out” until you ask for them in Settings.
Anything that cannot be converted appears in a notice at the end of the step, with the clip and the moment it sits at. It is not an error: it is the list of what you will have to handle by hand, and the same list travels in the delivery's report.
Step 4 · Settings
The defaults are the ones that suit an ordinary delivery. Change them only when you know why.
- Pan — writes each clip's left/right position into the AAF. Turn it off if you would rather start the mix with everything centred.
- Markers — the timeline's markers arrive as locators, on their frame.
- Include what is switched off — also brings the clips you silenced in Final Cut, the multicam angles that are only seen, and the camera tracks a sync clip muted. They arrive on separate tracks marked
(OFF). Note that they arrive unmuted. - Transcode MXF — not available, and it is not going to be: no browser can open MXF. If your material is XDCAM, P2 or Avid, get the audio out as WAV before exporting the FCPXML.
How fades travel. AAF has four places a fade can live and they are not interchangeable:
- As clip fades (recommended) — they arrive in Pro Tools as real fades, the kind you grab and drag.
- As volume automation — ramps in the volume curve. Sounds identical, but spends the automation lane on shapes that are really clip fades.
- Do not write them — the clip stays at its steady level and you are handed the list of fades to redraw.
- Native AAF properties — what the standard says, and what Pro Tools ignores. For other programs only.
Group each clip's channels. Off, every channel arrives on its own track (.L, .R, .1, .2…), which is standard AAF and opens anywhere. On, a clip's channels arrive on a single stereo track, which is handier in Pro Tools but uses an operation that is not in the standard. With channels grouped, Pro Tools does not read pan correctly.
The session.
- Start timecode — where the session begins. Taken from the project by default; type one and yours is used instead. Write it as
01:00:00:00. - Sample rate — “Automatic” conforms to the rate your material already has, which is the best answer: a conversion that never runs cannot colour anything. Pick another only when the session has to be at that rate.
- Handles — extra seconds on each side of every clip, so it can be stretched in the mix. They cost disk space.
- Whole files — every original file end to end instead of the pieces. The delivery is far heavier; it makes sense when the mixer wants the complete takes.
- Frame rate — shown, not chosen. The project says what it is.
At the end of the step is everything that travels unconditionally and has no switch: clip gain, volume automation, compound clips and containers (opened up, with their level and their fades), sync clips and multicam (every angle switched on for audio is heard, not only the one you see) and multitrack recorders (each microphone on its own track).
Step 5 · The tracks
This is exactly what you are going to open in the DAW, in the order it will open. Each row is a track: its number (A1, A2…), the role it comes from, how many clips it carries and between which seconds it lives.
- Reorder — with the arrows. This list's order is the track order in the session.
- Rename — type over the name. It replaces the role; the track number and the
.L/.Rsuffix stay, because they are how Pro Tools knows two tracks are a pair. - Leave out — the crossed-out eye. That track does not travel, and its audio is not even read, so the conversion is quicker too. At least one has to remain.
Tracks marked (OFF) are material that was silenced in Final Cut and that you asked to bring. They arrive unmuted: mute or delete them in the DAW if you do not want them in the mix.
At the bottom it says how many audio slots the AAF will have. A mono track is one slot; an ungrouped pair is two.
Step 6 · Converting, and the delivery
Before anything starts you are asked where the delivery should go, and a folder named after the project is created there. If one already exists, another is created beside it with a number on the end: two conversions never overwrite each other.
The same warning as with the material applies here: the browser will not write into the Desktop, Documents or Downloads directly. Pick or create a subfolder.
Each piece of audio is read, conformed and written to disk as soon as it is ready. Nothing piles up in memory, so it does not matter that the delivery runs to gigabytes.
When it finishes, the folder holds:
- An AAF whose name starts with
00_, so it always sorts to the very top of the folder. That is the one you import. - The audio the AAF points at, under readable names.
- A report in plain text: what travelled, what did not, and why. It is in English on purpose: it travels with the delivery, and whoever opens it did not choose the language the editor happened to be working in.
Hand over the whole folder. The audio is not inside the AAF: the AAF points at the files sitting next to it, and on its own it opens a session with every region offline.
Safari and Firefox have no folder picker, so the delivery comes down as a single .zip. Unzip it before importing.
Opening it in Pro Tools
In Pro Tools: File ▸ Import ▸ Session Data, and choose the AAF that starts with 00_. In the dialog that follows, import the audio tracks as new tracks.
If you choose to copy the audio into the session, Pro Tools takes the files into the session folder and the delivery is no longer needed. If you choose to reference it, do not move the folder.
Other DAWs open the AAF through their own import menu. With channels ungrouped — the default — the file is standard AAF and opens just as well in Nuendo, Fairlight, Reaper and Resolve.
When something goes wrong
- “I could not find N files” — the folder you picked does not contain them. Try a folder further up, or drag the loose files in.
- A file is 0 bytes — macOS has it in iCloud and left only the placeholder on disk. Open it in the Finder to download it in full and convert again.
- “I could not open…” partway through a conversion — the file moved, was renamed, is an alias, or the external drive went away. Pick the folder again and convert again.
- The browser asks for permission again — read access lapses once the tab has been in the background long enough. That is normal; say yes.
- A very large file that cannot be opened — WAV, BWF, RF64, MP4 and MOV have no size limit here. Other formats do: past about 2 GB no browser manages them. Convert it to WAV and it is fine.
- MXF — there is no way around it. Get the audio out as WAV before exporting from Final Cut.
- The session opens at the wrong timecode — check the start timecode in Settings. By default it is whatever the project says.
If something fails in another way, the Bug button at the top opens an email. Say what you were doing and, if you can, attach the .fcpxml: that is what makes it reproducible.
Glossary
- AAF — the interchange format between edit and mix. It describes what sounds, when, and at what level, and points at the audio.
- Region — a piece of an original file: the piece a clip in the edit needs, plus handles if you asked for them.
- Handles — extra seconds on each side of a region, so a clip can be stretched in the mix without going back to the rushes.
- Conform — cut exactly that region out of the original and leave it at the session's rate and bit depth.
- Role and subrole — the label Final Cut classifies each clip with (dialogue, music, effects, and their subdivisions). Here it is what decides which track a clip lands on.
- Slot — each audio channel inside the AAF. A mono track is one slot; an ungrouped pair is two.
- NDF / DF — how timecode is counted at 29.97 and 59.94. It changes how times are numbered, never where the audio sounds.
- Sample rate — how many samples per second the audio has: 48,000 Hz is the norm in picture work.
What it costs
Nothing. If you are a student, feel free to use it — this project was made for you.
If you are using it commercially, consider making a donation. The programs that do this are on sale and cost between 80 and 150 dollars. Donations keep the servers running and the service free, and keep it updated to work with the latest versions of Final Cut and Pro Tools.