Install & first run
AAF Everything is a batch converter for timelines between four interchange formats, not an editor, not a player. It reads a timeline, builds a neutral model of it, and writes it fresh in the target format:
| Reads | Writes |
|---|---|
.aaf | .aaf |
.xml (Premiere Pro) |
.xml (Premiere Pro) |
.fcpxml | .fcpxml |
.fcpxmld (bundle) |
.fcpxmld (bundle) |
Every combination is available. The one format your loaded files
already have is locked in the target menu, .fcpxml and
.fcpxmld count as different formats there.
System requirements
- macOS 13 or newer, Apple Silicon. The build is made for Apple Silicon only, it does not run on Intel Macs.
- Nothing else to install, everything the converter needs, including its own audio converter, is inside the program.
Installing
- macOS: open the DMG and drag the app into Applications. Until the app is notarized, macOS blocks the first launch: double-click the app, click Done on the warning, then open System Settings → Privacy & Security, scroll down and click Open Anyway. You do this once, macOS remembers it. The READ ME FIRST file in the DMG walks through it, including the one-line Terminal fallback for the rare case the button does not appear.
Questions, problems, or a timeline that converts wrong: support@aafeverything.app, real timelines that break the converter are exactly what we want to see.
Quick start
- 1, Load timelines. Click the Files row or drop the files in. Any number works; the list scrolls internally from the fourth entry on.
- 2, Pick the target. The row reads as a sentence:
Convert to [
.aaf] at [as source].as sourceis the default and keeps the frame rate of each source file. - 3, Click Check and convert. Nothing converts yet. A dialog opens with everything that decides how the output looks, the point is that you see it before the run, not in the report afterwards.
- 4, Step 1 of 2 · Media. Link to original media (default, nothing is copied) or Collect next to output (one closed package); MXF handling; and, for an AAF, the two channel switches with Handles underneath. See Media handling and Channels & stereo.
- 5, Step 2 of 2 · Roles and tracks. The roles found in the timeline, grouped and numbered as the tracks they will become. Reorder, rename, merge or leave one out, or take it as it is. An AAF source carries no roles, so there the dialog has only one page. See Roles & tracks.
- 6, Convert. A mini-report appears in the window; the full report is a text file next to every output.
Under Include, nine switches decide what travels: Crossfades, Fades, Clip gain, Volume automation, Pan, Markers, Colors and Video, all on, plus Extract video audio, off by default. Whatever you switch off is removed before converting, and the report notes it as “excluded by choice”. The selection applies to the whole batch, not per file.
The output is named <source name>
(converted).<ext> and never overwrites anything, if the name is taken, it counts up. After the run, Show in
Finder and Show report sit under the mini-report; with
several files, each output gets its own report and the Finder opens at
the last one.
How a run works
Between reading and writing, the media steps run in a fixed order: relink moved files first, unpack audio embedded in the AAF, join channel files that belong to one clip, pull the sound out of video files (if switched on), convert MXF to WAV, then write per-channel files (if switched on), then collect. Two consequences worth knowing: converted MXF audio and extracted video sound are picked up by the channel split too, and the combining of split track pairs happens before all of this, so a combined pair behaves like any other stereo clip from there on.
Every file the converter writes itself also names the clip in the
target: _2ch (channels joined),
_C1-2 (channel selection),
_audio (sound from a video file). Clip names from the
source timeline don’t travel in any of the four formats, the
report says so.
Common routes
Each route has its own step-by-step page:
- Final Cut out to the mix: export XML from
Final Cut, convert to
.aaf, Final Cut to AAF, with per-application pages for Pro Tools, Nuendo, Resolve and Media Composer. - The way back: an AAF becomes
.fcpxmlor the.fcpxmldbundle, AAF back into Final Cut. - Into Premiere: convert to
.xml, AAF to Premiere or Final Cut to Premiere. Premiere XML is a delivery format, not a source: coming from Premiere, export Premiere’s own AAF (File → Export → AAF) and convert that. - Stereo arrived in pieces? Split-stereo & channels.
Choosing a format
.aaf, the recommended interchange. The richest of the four: the only one with pan (constant and as automation), plus volume automation as real curves, markers, channel counts and multiple picture tracks. Track and clip colors ride in a private comment that only this converter reads back. Prefer it whenever the target reads AAF..xml, the delivery format for Premiere Pro, which reads no third-party AAF. The format counts in frames; fades and crossfades arrive as real transitions, constant clip gain stays, moving volume automation is left out, never averaged. No pan, and audio tracks have no name field there (they arrive as A1, A2, …)..fcpxml, the format for Final Cut Pro. Fades and true overlapping crossfades, clip gain, volume automation as real Final Cut keyframes, markers, picture; tracks arrive as audio roles. No pan or clip colors, the format has no field for them..fcpxmld, the same content packed as the bundle Final Cut 10.6+ uses; collected media can travel inside the package.
Channels & stereo
Stereo is not stored the same way twice. There are three forms:
| Form | What sits on disk | Typical writer |
|---|---|---|
| 1, interleaved | one file with two channels | Resolve (default), Avid, Nuendo |
| 2, one file per channel | two mono files, but one stereo track in the timeline | Resolve “render one track per channel” |
| 3, two mono tracks | two mono files on two separate tracks | Nuendo/Cubase/Pro Tools splits, Premiere “exploded” stereo |
Applications differ in which of these they put back together as stereo on import, which is why a conversion can be technically correct and still look wrong when it opens.
Which switch for which job
Two switches under Channels, on the first page of the
Check and convert dialog. They appear only when the target
is .aaf, in every other format a clip points at
exactly one file, so neither switch has any meaning there.
Separate combined channels is on by default, because the common AAF delivery goes to a mix:
| Target | Separate combined channels | Why |
|---|---|---|
| Pro Tools | ON | Pro Tools rebuilds a stereo track only from form 2, one mono file per channel |
| Nuendo / Cubase | ON | deliver one mono file per channel here as well |
| DaVinci Resolve | off | same |
| Avid Media Composer | off | same |
| any non-AAF target | — | the row is not shown at all; the option applies to AAF only |
And the other direction: if the source timeline carries a
stereo pair as two mono tracks (a Nuendo, Cubase or
Pro Tools split, Premiere’s _L/_R
pair), switch Combine split stereo tracks on, otherwise they
stay two mono tracks in the target, and no program will merge them
there.
Combine split stereo tracks
What is recognized, two directly adjacent mono tracks:
- same-name neighbours (Nuendo, Cubase, Pro Tools): matching layout and sources are enough; the pans stay as they are;
- a stem with
_L/_R(Premiere’s exploded stereo): here both tracks must really be panned hard left and hard right. Recognized endings are_L/_R,L/Rand.L/.R, upper or lower case. The pans are dropped in the merge.
Both patterns are built from real Premiere and Nuendo exports. The pair must match in structure: same clip count, same positions and lengths, both sides mono, both sources present and different, no video involved. What is deliberately not checked: sample rate, bit depth and file length, if those don’t fit and the render fails, the clip shows offline with the reason in the report.
The review window opens as soon as you tick the box. The analysis runs right away and shows, file by file, every audio track in order: recognized pairs as a double row with L/R chips, single tracks marked M or ST. Every pair can be unticked, the combined track renamed. The footer counts “N audio tracks instead of M”; the buttons are Keep all separate and Combine N pairs. Escape or a click outside cancels the whole conversion, nothing is written. If the analysis finds nothing, the window stays away; the Check… link explains instead what was looked for.
Pairing by hand: Pair tracks manually… walks
through it in two steps, click the track that carries the left
channel, then the track below it. Only the directly adjacent track can
be chosen; tracks that can’t pair are dimmed and say why
(already stereo, not combinable,
not the next track down, layout differs,
sources overlap).
What survives the merge, and what doesn’t:
- The clips of the upper track carry both channels from then on.
- Gain, fades, volume automation and the color of the lower track are discarded with the track, different levels or fades on L and R are lost.
- The upper track always becomes the left channel. If the right channel sits on top in the source, the channels come out swapped, and that cannot be fixed inside the app. Correct the track order in the source, or leave the pair separate.
- Same-name pairs keep the pan of the upper track. If both were panned hard, the finished stereo track arrives hard left. Fix: untick Pan in the Include panel (drops pan on all tracks), or re-pan in the target.
A track double is not stereo: two same-name tracks whose clips point at the same source file are a duplicate, not a split pair, they are deliberately left alone, and the report names them.
<output name> Media, and the output references that
file, without the folder, the clip is offline in the target. For a
delivery, Collect next to output is the safe way.Separate combined channels
What it does: every channel gets its own mono WAV, the
tracks stay stereo. It does not create mono track pairs;
the track layout is unchanged. Files are named
<stem>_L.wav / _R.wav (or
_C1…_CN beyond two channels); the clip in the
session keeps the original name without a channel suffix.
AAF target only. For any other target the row is not shown. One consequence: with an AAF as the source the switch cannot be reached, because the app never converts a format into itself, the practical route is Final Cut or Premiere to AAF. A finished AAF (say, from Resolve) cannot be repacked into one-file-per-channel here; that needs a fresh export from the editor.
- No silent fallback. If a channel render fails, the clip does not quietly fall back to the interleaved file, it shows offline, with the file name and the reason in the report. A half-and-half AAF confuses more than a visible offline clip.
- Disk space: the split needs roughly the size of the multichannel material again. The app estimates first and only asks when space is tight or more than about 5 GB would be written. Channel files from an earlier export are reused instead of stacking duplicates.
- Bit depth is never inflated: 16-bit sources stay 16-bit, anything higher is written at 24-bit; lossy sources count as 16-bit. The sample rate is untouched.
- Skipped: clips whose channel count cannot be read (anything other than WAV or AIFF) or whose media file is missing keep their interleaved form. If your material mixes formats, give those clips a look in the target.
Both switches together, the classic “Nuendo split
stereo to Pro Tools”, is fine: the two mono tracks are
first joined into one stereo file, then split again per channel. The
clip shows up in the session as <stem>_2ch.
Handles
Directly under Separate combined channels, and only active together with it: Handles decides how much extra material each written channel file keeps before and after the clip, so the mixer can still pull an edge.
- 48 frames is the default. The unit switches between frames and seconds; the figure next to the field shows the same value in the other unit, so a discussion in seconds and a delivery spec in frames do not need arithmetic.
- 0 writes exactly the clip, nothing around it.
- complete, the checkbox in front of the field, skips the trimming altogether and writes each source file in full. Field and unit go inactive, because there is nothing left to measure.
Without Separate combined channels, Handles do nothing. No new files are written in that case, the AAF points into the original recordings, which are complete anyway.
What Pro Tools needs
What a stable Pro Tools import needs is written automatically: stereo markings only on tracks that really carry two channels, a neutral wrapper around every stereo clip, and clean standard headers in every file the converter writes.
- Stereo is the reliable ceiling for Pro Tools. Material with more than two channels travels complete inside the AAF, but Pro Tools’ track shape beyond stereo is not guaranteed, such tracks can arrive mono.
- Media must be fully online when you convert. A missing file on a stereo track can leave the AAF in a shape Pro Tools’ import refuses. Relink or restore first, then convert.
- Linked originals: some 24-bit WAVs written by other tools carry a header variant that Pro Tools’ AAF import does not read (“Error reading AAF WAVE Data”). Everything this converter writes itself is safe, and switching Separate combined channels on rewrites every file, which clears the problem for linked originals too.
What Nuendo needs
Switch Separate combined channels on here too, one mono file per channel is the delivery form for Nuendo and Cubase as well. Everything else Nuendo needs is written automatically. The reliable combination is WAV source material with Transcode MXF audio left on (the default). AIFF, FLAC, MP3 and untranscoded MXF fall onto a weaker file description that Nuendo can read as mono-left; and a file whose channel count cannot be read is written with a stereo assumption, the report names it. With WAV sources, neither can happen.
What arrives in the session
- Track names and sample-accurate clip positions
- Fades and crossfades as real transitions, including a crossfade’s true, even unevenly placed cut point
- Constant clip level and volume automation
- Track pan, constant and as automation, Avid, Pro Tools and Nuendo read it; Resolve ignores pan in any AAF
- Markers, display confirmed in Avid Media Composer and Pro Tools, and a timecode track starting at 01:00:00:00
- Source timecode for every file, so the target can relink cleanly
What doesn’t arrive: fade curve shapes (everything is linear or the standard dissolve), clip names from the source timeline, track mute and lock, and effects, plugins or mixer settings, the formats carry the edit, not the mix.
Media is always linked, never embedded, the form Pro Tools requires. An AAF without its media is empty; for a handover to another machine, use Collect next to output.
Roles & tracks
Final Cut does not have tracks, it has roles. AAF has tracks and no roles. Something has to decide which becomes which, and page 2 of the Check and convert dialog is where you see that decision before it happens.
The roles are grouped the way Final Cut groups them: main
role first, then its subroles. Each line shows the track numbers
it will occupy, A1–A2, A5, and whether
those tracks are mono or stereo. The numbers are the answer a bare
track count leaves open: not how many, but which.
| What you can do | Effect |
|---|---|
| drag a role or a whole group | changes the order of the tracks in the target session |
| rename | the track carries your name instead of the role name |
| untick | the role is left out entirely; its tracks are not written |
| Merge roles manually | two steps: first the role that keeps its track, then the one that moves into it |
| Merge sub roles automatically | every subrole goes to its main role, Dialogue BOOM and Dialogue LAV1 become one Dialogue |
| Reset to automatic | back to the grouping the file itself suggests |
A layout stays set until you reset it or the file list changes, so a series of reels can go through with the same track plan. It is not remembered between starts, like every other setting in the app.
Preview track layout
The button on page 2 opens a separate window with the session as a drawing: every track as a row, every region in place, a time ruler above and the totals in the title, 9 tracks · 69 regions · 00:02:30:00. Colour follows the role, the same colour as in the list, so a role can be recognised across both views.
It is the last chance to notice that something is where it should not be, and it costs nothing, because nothing has been written yet.
What transfers, the full matrix
No converter can move what the target format cannot hold. This is the matrix we work from, derived from the format specifications and our own round-trips through each format, it’s the same information the conversion report prints per file. AAF dialects differ between applications, so the report next to your own file is the last word, not this table.
| Timeline element | AAF | Premiere XML | FCPXML / FCPXMLD |
|---|---|---|---|
| Clip positions & source offsets | sample-accurate | frame-accurate¹ | sample-accurate |
| Fades | yes | yes (as transitions) | yes |
| Crossfades | yes (real dissolves) | yes (as transitions) | yes (true overlaps) |
| Clip gain | yes | yes (constant level) | yes |
| Markers | yes | yes | yes |
| Track names | yes | no, no name field (A1, A2, …) | yes (as audio roles) |
| Video tracks (also multiple) | yes | yes | yes (storyline + lanes) |
| Channel counts | yes, all channels | stereo pairs only | yes |
| Pan (static & automation) | yes, real curves | no, not in the format | no, not in the format |
| Volume automation | yes, real curves | no, left out, never averaged (constant clip gain stays) | yes, as Final Cut volume keyframes |
| Track / clip colors | yes (round trip)³ | no, not in the format | no, not in the format |
| Empty (named) tracks | yes | yes | no, clip-based format |
| Effects / EQ / plugins | no | no | no |
| Speed changes / retimes | no² | no² | no² |
¹ Premiere XML counts time in frames, the format itself is frame-quantized. ² Render or consolidate retimed material in the source editor first; the report flags it rather than converting it wrong. ³ Colors ride in a private comment inside the AAF and survive a round trip through this converter; other applications ignore that comment.
Media handling
- Link to original media (default): the output references your files where they are, ideal when both apps see the same drive.
- Collect next to output: the output, the report and every
referenced audio file land in one package folder,
Name/Name.aafplusName/Media/(a.fcpxmldbundle packs the media inside itself), one complete, movable turnover. - Relink finds files that have moved: renamed drives, moved project folders, Windows-style paths, accented file names, changed extensions. Matches found by name alone are flagged in the report so you can check them.
- MXF is converted to WAV by default; the streams of a multi-stream MXF are joined into one file. Switch to reference as-is if your target reads MXF natively (Resolve, Avid) and you want untouched originals.
- Extract video audio (in the Include panel, off by default) pulls the sound track out of video files into new audio tracks that the output references. It writes new WAVs, which is why it stays off unless you ask.
Media folder next to the output even in Link
mode, and the output points at them. Keep that folder with the
file, or use Collect for anything that leaves your
machine.Frame rates
as source (default, keeps each file’s own rate)
· 23.976 · 24 · 25 · 29.97 DF ·
30 · 50 · 59.94 · 60 · 120, plus
none (no timecode track) for audio-only AAF deliveries. NTSC
rates are written exactly, drop-frame flag included. If the source
names no rate, 25 fps is assumed and disclosed in the report.
Two substitutions are made openly rather than silently:
none applies to AAF only (elsewhere 24 fps), and 120
is not a Final Cut preset (written at 60 there), both come with
a report line. The frame rate affects the timecode track and how the
editor snaps picture edits; audio placement is sample-accurate at
every rate.
The conversion report
Every conversion writes a text file next to the result. It is the part of the program worth reading before a handover, and it follows one rule: a silent change is a defect, not a feature. Reported is every place where the converter left something out, changed a value you set, could not carry something, made a decision you might have made differently, or repaired something that would otherwise look like an error. Every line names what happened, how many elements were affected, and, where one exists, the action that remains.
The mini-report in the app shows the important lines; the file next to the output has everything, including the purely descriptive notes. If there was truly nothing: “No notes, nothing had to be changed or left out.”
Demo & license
- The demo is the full app: unlimited conversions, each output covering the first 120 seconds of the timeline, a hard cut, no watermark, no locked features. Finished files show done (demo). If every clip sits past the 120-second line, the output has tracks but no audio, the report warns about exactly that.
- A license unlocks full length. Activation needs the internet once; afterwards conversions run without a connection, the app re-checks the license occasionally in the background and keeps working offline when it can’t reach the server. Deactivate this computer frees the seat for another machine.
- If activation fails, the message names the cause, an antivirus or proxy breaking the secure connection, DNS, a timeout, or a key that belongs to a different product.
- On start the app asks once whether a newer version exists, sending the version, the platform and whether it runs licensed or demo. No key, no account, no device ID. Switch it off with Check for updates on start; without a connection the start never hangs.
Limits worth knowing
- Retiming does not travel, sound or picture. Render stretched material in the source editor; the report flags every affected clip.
- Asymmetric crossfades into Final Cut are centered: Final Cut blends audio symmetrically around the transition middle, so the asymmetry is not representable there, cut point and clip content take priority. The AAF direction carries the asymmetry exactly.
- Multicam, compound clips and auditions are flattened, the output carries the angle or take that was active. The structure itself does not exist in AAF.
- Pan travels only via AAF. The XML formats carry no track pan, and Resolve ignores pan entirely.
- More than two channels into Premiere XML are delivered as stereo, with a warning pointing to AAF or FCPXML.
- While a run is going, the file list is locked, but files dropped onto the window are still added and converted with the batch, so don’t drop anything mid-run.
- If a source reads as an empty timeline, no file is written, and the message asks you to send the source file to support, so the dialect can be added. Please do; that is how the reader grows.
Troubleshooting
macOS: “App from an unidentified developer”
That’s Gatekeeper being cautious because we haven’t finished the code-signing yet (see Install & first run for how to open it the first time via System Settings → Privacy & Security → Open Anyway). We’re a small independent studio, the signing is on the way. The app is completely safe, keeps your work offline, and your timelines never leave your machine.
Pro Tools shows mono where I expected stereo
Pro Tools rebuilds stereo only from the one-file-per-channel form, the switch was turned off somewhere. Convert again with Separate combined channels switched on, see Channels & stereo. If the source itself carried the pair as two mono tracks, additionally switch Combine split stereo tracks on.
Pro Tools: “Error reading AAF WAVE Data”
A linked original WAV carries a header variant Pro Tools’ AAF import doesn’t read (typical for some 24-bit files from other tools). Convert again with Separate combined channels on, that rewrites every audio file in a form Pro Tools accepts.
Nuendo plays stereo only on the left
The source audio wasn’t WAV, or MXF went in untranscoded. Keep Transcode MXF audio on (the default) and prefer WAV source material for Nuendo deliveries, then this cannot happen.
“N file(s) could not be collected”
The source timeline references media that no longer exists at the recorded location. The output still works and references the original paths, relink in the target editor, or restore the files and convert again.
Premiere won’t import the file / “unsupported format”
You are probably handing Premiere an AAF, Premiere imports no
third-party AAFs. Convert to .xml instead and import via
File → Import…; that is the dialect Premiere reads.
Final Cut rejects the XML
Make sure you import via File → Import → XML… and that your
Final Cut version matches the file: .fcpxmld bundles
need FCP 10.6 or newer, for older versions convert to plain
.fcpxml.
Clips show offline after import
Three usual causes. The target app can’t see the media at the
recorded paths (different machine or drive), relink in the target, or
convert again with Collect so the output travels as one
package. The Media folder next to the output stayed
behind, it must travel with the file, even in Link mode. Or a channel
render failed, then the report names the file and the reason instead
of silently substituting something else.
The demo output has tracks but no sound
Every clip in that timeline starts past the 120-second demo line, so the hard cut removed them all, the report warns about it. The full version converts the whole length.
Something is missing in the target
Open the conversion report next to the output first, it lists per file what could not travel and why (for example pan into an XML target, moving automation into Premiere XML, or a flattened multicam). That is usually faster than comparing timelines by ear.