The ALE file format explained: inside Avid Log Exchange
Avid Log Exchange is a tab-delimited text file designed in the early nineties — and it still decides whether your dailies arrive in Media Composer labelled or naked. Here is the format section by section: the Heading block whose single FPS line governs every timecode in the file, the canonical columns and what Avid does with each, how a merge actually matches rows to master clips, and the quiet ways a perfectly good ALE gets destroyed on its way to the cutting room.
Three sections, one delimiter
An ALE is plain text. You can open one in any editor, and you should — being readable is the format’s whole personality. The file has three mandatory section markers, each on its own line: Heading, a small block of global key–value pairs; Column, followed by one line of tab-separated column names; and Data, followed by one tab-separated row per clip. Every field on every line is separated by a single tab character — never commas, never multiple spaces.
Note what an ALE is not: it is not a project format. There are no sequences, no sync relationships, no bins-within-bins — just a flat table of clip metadata. FCPXML and Premiere XML carry structure; ALE carries labels. That division of labour is covered in the editor package guide; this article is about the labels themselves.
The Heading block: four lines that govern everything
A typical Heading block is four lines, and one of them can quietly ruin a conform:
FIELD_DELIM TABS— declares the delimiter.TABSis the only value you will meet in practice, and for good reason: clip names and comments contain commas all the time.VIDEO_FORMAT 1080— a coarse picture-format hint (PAL,NTSC,1080,CUSTOM). Tools mostly pass it through.AUDIO_FORMAT 48khz— ditto for sound. Informational.FPS 25— the big one. There is one frame rate for the entire file, and everyStart,EndandDurationin the Data section is interpreted at that rate. A mixed-rate shoot day needs one ALE per rate; there is no per-row override that every reader respects. Fractional rates are written out (23.976,29.97) — though some tools emit23.98, a rounding dialect that better parsers accept and stricter ones refuse.
The columns: a canon plus anything you like
The Column line names the fields; the useful core has been stable for thirty years:
Name— the clip name as it should appear in the bin. Usually the camera filename for file-based media.Tape— the reel identity: the camera roll (A001R1KE) or sound roll the clip came from. Together with start timecode, this is the identity that tape-style relinking and conform key on — the same identity contract that proxy workflows depend on.Source File— the media filename, the identity that file-based relinking keys on. Tape and Source File are two parallel identity systems; a well-made ALE fills whichever the downstream workflow uses, and ideally both.Start,End,Duration— timecodes at the header FPS. Non-drop uses colons (10:35:20:12), drop-frame uses semicolons (10;35;20;12) — punctuation is data here, not style.Tracks— which tracks the clip carries, in Avid’s compact notation:Vfor picture-only,VA1A2for picture plus two audio channels,A1A2A3A4for a sound roll.Scene,Take,Sound Roll,Shoot Date,Comments— the slate. For dual-system material this is where the sound side’s iXML metadata resurfaces as picture-side bin columns — an ALE is the classic bridge that carries scene, take and sound-roll from the recorder’s files into an Avid bin.- Anything else —
Camroll,Labroll,Circled,Episode, LUT names… Unknown columns are not errors: Media Composer turns them into custom bin columns, which is precisely why the format has survived. If production tracking needs a field, you add a column and it flows to the bin.
A minimal ALE, annotated
This is a complete, valid file (tabs shown as arrows):
Heading
FIELD_DELIM → TABS
VIDEO_FORMAT → 1080
AUDIO_FORMAT → 48khz
FPS → 25
Column
Name → Tape → Start → End → Tracks → Scene → Take → Sound Roll → Comments
Data
A001C003_260727_R1KE → A001R1KE → 10:35:20:12 → 10:36:05:00 → VA1A2 → 14A → 3 → SR003 → circled
One clip from camera roll A001R1KE, starting at 10:35:20:12 interpreted at 25 fps, carrying picture and two audio channels, slated scene 14A take 3 against sound roll SR003, and marked as a circled take. Nine tab-separated values — and an assistant editor’s afternoon saved.
What Media Composer actually does with it
An ALE enters Avid in one of two ways, and the difference matters:
- Import as a shot log. The ALE becomes a bin of offline master clips — entries with names, reels and timecodes but no media, waiting to be captured or relinked. This is the format’s original tape-era job, still used when the log exists before the media does.
- Merge into existing clips. The modern dailies move: media is already in the bin, and the ALE is merged against it — Media Composer matches rows to master clips on the source identity (Tape, or Source File for file-based media) plus overlapping start timecode, then pours the remaining columns onto the matched clips. Scene, take, sound roll and every custom column appear on clips that until a second ago knew only their filename.
This is also why dailies houses still deliver an ALE next to the MXF files, and why DaVinci Resolve can both import ALEs into its media pool and export them — including with grade metadata on board, which brings us to colour.
Colour rides along: the ASC CDL columns
A dailies grade can travel inside the same text file. Two conventional columns carry an ASC Color Decision List per clip: ASC_SOP, holding slope, offset and power as three bracketed RGB triplets — (1.02 0.98 1.00)(0.01 -0.02 0.00)(0.95 1.00 1.05) — and ASC_SAT, a single saturation value. The colourist’s starting point rides from the dailies suite to the finish as twelve numbers per clip in a text file. It is crude, it is thirty years younger than the format hosting it, and it works.
How good ALEs die
Like BWF metadata, an ALE is robust in the file and fragile in the pipeline. The classic killers:
- The Excel round-trip. Someone opens the ALE in a spreadsheet “just to fix one take number”. On the way back out: tabs become commas or cells, leading zeros vanish from takes, and
10:35:20:12gets helpfully reinterpreted as a time of day. If an ALE must be edited by hand, edit it in a text editor with tabs visible. - The wrong header FPS. Because the rate is global, one wrong line silently reinterprets every timecode in the file — a 25 fps day read as 24 puts every clip’s TC address off by a growing margin, the same class of arithmetic error as a 23.976/25 frame-rate mismatch. Wrong-looking bin timecodes after a merge? Check the header before anything else.
- Punctuation as data. Drop-frame semicolons written as colons (or vice versa) shift how readers count frames. A find-and-replace that “tidies up” punctuation is corrupting timecode.
- Tape-name mismatches. Avid truncates tape names past 32 characters, and tools disagree about case sensitivity. If the ALE says
A001R1KEand the media saysa001r1ke, a strict merge matches nothing — keep reel names short, consistent and exact everywhere they appear. - Encoding surprises. The format predates Unicode. Accented characters in comments survive some readers and garble in others, and an invisible UTF-8 byte-order mark in front of
Headingcan make a strict parser reject the entire file. Plain ASCII in names and reels is the safe dialect. - One-frame duration disagreements. Tools differ on whether
Endnames the last frame or the frame after it. Good readers recompute duration from Start and End; a persistent off-by-one between columns is the fingerprint of two tools disagreeing about the convention.
Where Launchr Post fits
Launchr Post writes an ALE as part of every editor package, on your own Mac. Names, reels and start/end timecodes come from the camera files at the correct rate; scene, take and sound roll come from the sound rolls’ iXML during ingest and sync; tracks reflect what each synced clip actually carries. The file is tab-clean, ASCII-safe and merge-ready — so if an Avid editor or a finishing house is anywhere downstream, the metadata arrives as bin columns instead of a re-logging job.
Hand your editor labelled dailies
Drop a shoot day into Launchr Post. It syncs, sorts and transcribes on your own machine — then exports the editor package with FCPXML, Premiere XML and a merge-ready ALE.