Just the folders
Give it one folder per camera or recorder, straight off the cards, a Premiere timeline, or any mix. How a card is organised inside doesn’t matter.
ActionCheese Sync
Free multicam sync for Mac · open source
Drop in the folders off your cards, your Sony, GoPro, iPhone or Zoom recorder, and ActionCheese Sync lines every clip up by its sound, fixes recorder drift and hands Premiere Pro or DaVinci Resolve one timeline with every angle in place. No timecode needed. A free, open-source alternative to PluralEyes and Syncaila. Shot with ActionCheese? Your iPhones arrive already in sync.
Read the help · Source on GitHub · Mac with Apple silicon (not Intel) · macOS 11 or later
picturesoundunmatched, kept on its own track
Shot with ActionCheese
iPhone · WideTC 14:03:22:05
iPhone · HostTC 14:03:22:05
iPhone · GuestTC 14:03:22:05
iPhone · OverheadTC 14:03:22:05One clock on every iPhone; Sync only has to find the rest. Sample pictures are AI-generated.
Every ActionCheese camera stamps the same time-of-day timecode, set from one clock while you shoot, and your Mac files each take by name. Open the day’s folder in Sync and the phones are already lined up, takes and markers included.
So Sync’s job shrinks to the part only sound can solve: where your other cameras and recorders fit. It places them against a reference that’s already right, instead of guessing every angle from scratch.
One folder does it: drop the cards into the day’s shoot folder and add just that.
How close ActionCheese’s own timings were for most phones, measured on two real shoots. Sync still double-checks them by sound: on one handset that was up to 0.7 s out, the audio caught it and the report said so. Prefer the timings exactly as recorded? Turn on Trust already-synced clips.
On set, then at home
📁 2026-09-27/ Take 01 – 14.03.22 – Wide.mov Take 01 – 14.03.22 – Host.mov Take 02 – 14.21.07 – Wide.mov … ActionCheese 2026-09-27 – Premiere.xml + 📁 Sony A/ ← your card + 📁 Zoom/ ← your recorder
What it does
Every camera hears the same room. Sync listens to all of them, works out where each clip really belongs, and writes it down. It runs entirely on your Mac, offline: nothing is uploaded.
Give it one folder per camera or recorder, straight off the cards, a Premiere timeline, or any mix. How a card is organised inside doesn’t matter.
On Sony cards, Sync reads each clip’s own sidecar file, which records the moment recording started: faster and more reliable than guessing from the movie.
Once one clip from a camera matches, Sync knows that camera’s clock, so its other clips are placed by their timestamps, even the ones with nothing to hear.
Every marker stays tied to the clip it was made on, so after everything moves it still points at the same moment, not at whatever slid into its old spot.
A field recorder’s clock can drift tens of milliseconds an hour. Sync measures it and writes a tiny speed correction to the recorder’s audio. Picture is never resampled.
A camera can’t record two things at once, so its clips never overlap and stay in shooting order. A match that breaks that is thrown out, not trusted.
A clip it can’t match moves to its own track, marked in red, placed by its recording time where possible. Take-after-take shoots come out as tidy groups.
Give it a single Premiere timeline and it edits a copy of that very document, so everything you set up survives. The result sits beside the original, never over it.
The Log lists what matched, what moved and by how much, drift in ppm and anything left over. For batch jobs, the same engine runs from Terminal.
How it works
An ActionCheese shoot folder, a camera card, a recorder, a Premiere timeline, in any mix.
It listens to every clip, matches them in pairs, then solves the whole shoot at once.
The Timeline tab shows your footage as imported and as synced. Anything unmatched is in red.
File › Import the XML. The synced sequence appears beside your original, never over it.
A demo shoot built from generated audio, run through the real app. No private footage.
Help
What you need, what to add, and getting the result into your editor.
Open the downloaded zip and drag ActionCheese Sync into Applications. It's signed with Apple's Developer ID and notarized by Apple, so it opens like any other app.
Use Add folder… and Add XML… to add any mix of these:
| Add | What Sync does with it |
|---|---|
| A camera or recorder folder | Treats everything inside as one device, however the card is organised. Two cameras need two folders. |
| An ActionCheese shoot folder | Brings in every phone as its own camera, already in sync with the others. Camera cards dropped inside the folder come along as further cameras. |
| A Premiere timeline (.xml) | Put one camera or recorder on each track, then File › Export › Final Cut Pro XML. Its clips keep their tracks. |
The sequence is named after your first input with “_synced” added, so it appears beside the original in your bin instead of replacing it.
With a single timeline and nothing else, Sync edits a copy of that timeline and everything Premiere put in it survives. With anything else it builds a new timeline: clips keep their media, in and out points and positions, but effects, labels and speed changes already on them don't come along.
iPhones from ActionCheese plus cameras that aren't iPhones.
Sony A, Zoom.The phones come in already lined up by their shared timecode, and every other device is placed against them by its sound. Saying “action” out loud gives every microphone the same clear sound to match.
ActionCheese's own timings are treated as strong evidence, not as fact: where the audio is confident and disagrees, the audio wins. The report lists every phone clip it moved, and by how much.
Turn on Trust already-synced clips to keep the phones' timings exactly as recorded, for example when the material has little usable sound.
Markers you dropped with “mark”, the flag or M come across and stay with the phone clips they were made on, since the phones' clock is the one that timed them. A marker made between takes keeps its distance from the takes either side.
The defaults suit most shoots. Here's what each one changes.
| Option | What it does |
|---|---|
| Close empty gaps | Removes every stretch where nothing plays on any track. Gaps never cut through a clip, so sync is unaffected. |
| Correct recorder drift | Writes a small speed correction to long field-recorder clips whose clock drifts. Only recorder audio is corrected; picture never is. |
| Trust already-synced clips | Keeps ActionCheese's timings exactly, instead of letting a confident audio match correct them. |
| Unmatched clips | Inline puts each unmatched clip just after the last clip shot before it. Append puts them all after the last synced clip. Either way they get new tracks and nothing is deleted. |
| Unmatched audio | Keep leaves an unmatched clip's sound on its track and moves only the picture. Split gives the sound new tracks too, one per channel. |
| Mark with | The label colour for unmatched clips. Rose is Premiere's red. |
| Reference track | The track that stays put, e.g. V1 or A3. Leave it blank to use the busiest camera track. |
| Min confidence | How strong a match has to be, from 0 to 1. Lower catches more clips at the risk of a wrong placement. The default, 0.45, suits most shoots. |
| Name suffix | Added to the sequence name in the output. “_synced” by default. |
What the Timeline tab and the report are telling you.
It draws your material as imported and as exported, on the same time scale, with each clip's waveform inside. Cyan is picture, amber is sound, rose is anything Sync couldn't place. Hover a clip for its name and timecode. There's one row per device, not per track, and empty tracks are left out of the exported XML.
A typical “before” is one solid bar per device, clips butted end to end. The “after” breaks into blocks at their true positions.
| Result | Meaning |
|---|---|
| Synced | Matched and moved into place. |
| Groups | Clips in sync with each other but with nothing in the audio linking them to the rest. Normal when one camera and one recorder shoot take after take. Each group is correct within itself. |
| Unmatched | No confident match: usually no usable sound, or nothing else was recording then. Marked in colour and placed by its recording time where possible; otherwise after the last synced clip from the same device. |
A camera can't record two things at once, so its clips never overlap and stay in shooting order. A match that breaks that rule is thrown out and the clip is reported as unmatched instead. The one exception: if the footage between two synced takes doesn't fit the gap left for it, the clip goes after them rather than through them.
The usual snags and what to do.
Check the media is still where the XML says it is: the Log tab names any file it couldn't open. Clips with no sound can never match.
A folder is one device, so two cameras need two folders. A card folder inside an ActionCheese shoot folder you also added is used once, not twice; the log says so.
Raise Min confidence and run again. If it persists, email the XML and the report to [email protected].
Turn off Correct recorder drift, run again, and let us know so we can fix it.
Final Cut Pro's .fcpxml is a different format and isn't supported yet. Add the camera folders directly instead, and import the result into Premiere Pro or DaVinci Resolve.
Download it again from this page: the download is signed and notarized by Apple. If macOS still blocks it, go to System Settings › Privacy & Security and click Open Anyway, then tell us at [email protected].
For batch jobs and scripts. The app carries the same engine.
actioncheese-sync sync ~/cards/cam-a ~/cards/recorder -o synced.xml --report report.json actioncheese-sync sync timeline.xml --dry-run actioncheese-sync probe /Volumes/T7/actioncheese/2026-09-27 actioncheese-sync guide
probe shows what would be read without analysing anything, --dry-run analyses without writing a file, and guide prints the full manual. From the app bundle, run "ActionCheese Sync.app/Contents/MacOS/ActionCheese Sync" --cli followed by the same arguments.
Who makes it, and what it costs.
ActionCheese Sync is free, released under the GPL-3.0 licence with its source on GitHub, and made by Gabriel at Focalizat as the companion to ActionCheese – Multicam Remote. Everything runs on your Mac; nothing is uploaded.
Bugs, sample projects and testing feedback: [email protected] (attach the timeline XML and the log text if you can). Anything else: [email protected].
No articles match. Try a shorter word, such as “Sony”, “drift” or “markers”.