All features
Everything Frame Job does, by area. Type in the box to filter by name, menu, shortcut or what a feature does, and follow a name to the page that explains it.
Getting started
| Feature | What it does | Where |
|---|---|---|
| What Frame Job needs | Frame Job runs on an Apple Silicon Mac with macOS 26 or later. | |
| Download and install | The newest signed and notarized build is a DMG on the project's GitHub Releases page; drag Frame Job to Applications. | The project's GitHub Releases page |
| What a first launch asks | Frame Job asks for no account, key or system permission at first launch, and with nothing to open it shows the Welcome window. | Welcome window |
| Your first edit, start to finish | Open a movie, cut a section out, add a title and export an H.264 file. | File ▸ Open… ⌘O |
| The editor window | Each project opens in one window: title bar, toolbar, preview and inspector side by side, the timeline bar and the timeline. | Editor window |
| Title bar | The title bar shows the project's name; its subtitle gives the canvas size, frame rate and "edited" while changes are unsaved. | Title bar |
| Toolbar | A strip under the title bar holds the transport, the timecode, the preview zoom, Safe and Export…. | Top of the editor window |
| Timeline bar | A bar above the timeline names the selection and holds the clip tools, Snap, the level meter, zoom and track size. | Above the time ruler |
| Pane dividers and remembered sizes | Drag the dividers to size the inspector and the timeline; new windows open at the sizes you chose. | The dividers left of the inspector and above the timeline |
| Minimize and Zoom | The standard window commands: Minimize sends the window to the Dock and Zoom makes it larger or smaller. | Window ▸ Minimize, Window ▸ Zoom ⌘M |
| Project | A project is one .framejob package: a single file in the Finder that holds the edit and its caches. | |
| Media and clips | Media is a file the project knows about; a clip is one placement of something on the timeline. | |
| Tracks and stacking | There is one kind of track, it holds any clip, and tracks stack back to front. | |
| The canvas | The canvas is the fixed frame every clip is drawn into, at the project's size and frame rate. | |
| Nests | A nest collapses several clips into one clip that stands for the group. | |
| The five inspector tabs | The inspector has five tabs: Clip, Media, Document, Transcript and Assistant. | Inspector tab strip, editor window middle right |
| The Clip tab's pinned block | Above its sections the Clip tab pins the selection header, the action lane and the sub-tabs. | Inspector ▸ Clip tab |
| Sub-tabs follow the selection | Text, Shape, Graphic, Picture, Color, Sound and Clip sub-tabs split the Clip tab, showing only what the selection can use. | Clip tab ▸ sub-tab strip |
| Selection follows to the Clip tab | Clicking a clip moves the inspector to the Clip tab, unless you're on Transcript, which stays and scrolls to that clip's first word. | Click a clip on the timeline or the canvas |
| Folding sections and their summaries | Click a section's header to fold it; a folded header keeps a one-line summary of what is inside, and the fold is remembered. | Any inspector section header |
| Hide or show the inspector | View ▸ Hide Inspector collapses the inspector so the preview takes its space; the item then reads Show Inspector. | View ▸ Hide Inspector ⌥⌘I |
| Typing a value | A number field applies your value on Return, Tab or a click elsewhere, throws it away on Esc, and holds it to the field's range. | Inspector number and text fields ↩ |
| Quick-pick chevrons | A field with common values has a chevron at its right that opens a menu of them. | The chevron at the right of a value field |
| Sliders | A click on a slider jumps to that value and a drag follows the pointer, as one undo step. | Click or drag an inspector slider |
| Colour swatches and the colour panel | Clicking a colour swatch opens the macOS colour panel, with opacity, and the value follows it live. | Any colour swatch |
| Edit several clips at once | With several clips selected, a row whose values differ shows a mixed badge, and an edit gives every clip it applies to the same value. | Inspector row |
| Section Reset | A Reset button appears on a section's header only while the section differs from its default, and puts the whole section back. | Inspector section header |
| Right-click menu on a row | Right-click an inspector row to reset it to its default, take it out of an action, or go to another action that changes it. | Right-click a row in the inspector |
| Single-letter editor keys | Space, the letter keys, comma, period and the arrow keys act on the editor window whenever you are not typing and no sheet is open. | Editor window, Preview Window Space |
| ⌘ shortcuts follow their menu item | Every ⌘ shortcut is a menu shortcut, and does nothing while its item is greyed out. | Menu bar |
| Start and finish typing | A field takes the keys only when you click in it or choose a command that opens one for typing, and hands them back when you finish. | Any field ↩ |
| Delete keys in a text field | Delete, ⌘⌫, ⌘↓ and ⌘↑ act on the timeline, but in a text field they keep their usual text meaning. | Any text field ⌫ |
| Multi-line field keys | In a multi-line field, Return applies the text and Return with ⇧, ⌘, ⌥ or ⌃ starts a new line. | Text tab ▸ Content, the Assistant's message field ↩ |
| Keys in a sheet | In a sheet, Return presses the main button and Esc presses Cancel. | Any sheet ↩ |
| What Esc leaves | Esc backs out of whatever is under way, such as a canvas drag, crop mode, region mode, an eyedropper or a selected curve point. | ⎋ |
| Undo and Redo | Edit ▸ Undo and Edit ▸ Redo walk back and forward one step at a time. | Edit ▸ Undo, Edit ▸ Redo ⌘Z ⇧⌘Z |
| What one step is | A menu command or key is one step however many clips it changes, and a gesture is one step from mouse-down to mouse-up. | |
| Named steps | The Edit menu names the step it will take back, for example Undo Move Clips. | Edit ▸ Undo |
| What makes no step | Anything that does not change the project makes no undo step. | |
| The Refused line in the inspector | When a rule won't allow an edit, Frame Job beeps, changes nothing and shows a "Refused:" line at the foot of the inspector saying why. | Foot of the inspector |
| A beep with no message | An edit that would change nothing beeps but shows no message, because no rule was broken. | |
| An error alert | A request Frame Job can't use at all, such as a value outside its allowed range, shows an error alert naming the value. | |
| Your own keys, your own bill | There is no Frame Job account or relay: the cloud features run on your own API keys, and the provider bills you directly. | Frame Job ▸ Settings… ▸ Assistant or Transcription ⌘, |
| What needs a key | Anything that sends your words or audio to a language or cloud model needs your own key; everything that runs on your Mac needs none. | |
| Greyed commands and their tooltips | A command that needs a key you have not set is greyed rather than hidden, and says which key and where to set it. | Clip ▸ Remove Filler Words… |
| Saving a key takes effect at once | Saving or removing a key updates open sheets and menu items immediately, with nothing to reopen or relaunch. | Frame Job ▸ Settings… ⌘, |
| What stays on this Mac | Editing, analysis, on-device transcription, recording and export stay on this Mac; only things you start or can see reach the network. | |
| Which copy updates itself | The copy downloaded from the project's GitHub Releases page updates itself with Sparkle; a copy built from source has no updater. | |
| Check for Updates… | Frame Job ▸ Check for Updates… checks now for a newer Frame Job and offers to install it. | Frame Job ▸ Check for Updates… |
| Automatic checks | The second time you open Frame Job it asks whether to check automatically; if you agree it checks about once a day while open. | The prompt the second time you open Frame Job |
| Turning automatic checks off | There is no Settings control for automatic checks, but a Terminal command turns them off. | Terminal, with Frame Job closed |
| Signed updates | Every update is signed, and Frame Job won't install one whose signature doesn't match the key built into the app. |
Projects and media
| Feature | What it does | Where |
|---|---|---|
| Open a movie as a project | Opening a movie makes an untitled project at its size and frame rate, with the movie as the first clip on Track 1. | File ▸ Open… ⌘O |
| The canvas takes the movie's display size | A project built from a movie uses the size the movie displays at, so a portrait phone clip opens as 1080 × 1920 and not sideways. | |
| The exact frame rate from the file | A project opened from a movie keeps the file's exact rate, so 29.97 and 23.976 are never rounded to 30 or 24. | |
| Open a sound file as a project | Opening a sound file makes an untitled 1920 × 1080, 30 fps project with that sound as its first clip. | File ▸ Open… ⌘O |
| Open a picture as a project | Opening a PNG, JPEG or HEIC makes an untitled project at the picture's pixel size with the picture as a 5-second clip. | File ▸ Open… ⌘O |
| New Project | File ▸ New Project opens a blank 1920 × 1080, 30 fps project at once, with no dialog, in a window titled "Untitled Project". | File ▸ New Project ⌘N |
| A project from a file starts unsaved | A project made from an opened file exists only in its window until you save it, so closing it asks whether to save. | |
| The first Save goes beside the source | The first Save of a project made from a file offers to put the package next to the source file, under the source's name. | File ▸ Save ⌘S |
| The Welcome window | With nothing open, a start window offers the ways in and your recent projects. | Shown when Frame Job starts with nothing to open |
| Open Video… on the Welcome window | Shows the same open panel as File ▸ Open…, so it also opens sound files, pictures and saved projects. | Welcome window ▸ Open Video… |
| New Project on the Welcome window | Starts a blank 1920 × 1080, 30 fps project. | Welcome window ▸ New Project |
| New Recording… on the Welcome window | Opens the recorder panel, with no project needed. | Welcome window ▸ New Recording… |
| The Recent list | Lists up to five recently opened projects by name, most recent first; one click reopens one. | Welcome window ▸ Recent |
| The file types line | The foot of the window names the common types it opens: MOV · MP4 · M4V · M4A · MP3 · WAV · AIFF · PNG · JPEG · HEIC. | Welcome window, foot |
| Drop files on the Welcome window | A project or media file dropped anywhere on the Welcome window opens, each as its own document. | Drag files from the Finder onto the Welcome window |
| Open a project | Opening a .framejob package opens that project, and a double-click on a package always opens it in Frame Job. | File ▸ Open… ⌘O |
| Open Recent | File ▸ Open Recent lists recently opened projects, with Clear Menu to empty the list. | File ▸ Open Recent ▸ |
| A project already open comes forward | Opening a saved project that's already open brings its window forward instead of opening a second copy. | |
| Drop files to open them | Files dropped on a project window outside the Media tab, on the Welcome window or on the Dock icon each open as a document of their own. | Drag from the Finder onto a project window, outside the Media tab |
| Older projects open | A project saved by any earlier version of Frame Job opens, and the next save writes it in the current format. | File ▸ Open… ⌘O |
| Projects from a newer Frame Job | A project saved by a newer Frame Job won't open, and the message gives both versions and asks you to update. | File ▸ Open… ⌘O |
| Damaged projects | A damaged or out-of-range project fails to open with a message naming the problem, and the package is not rewritten. | |
| Missing media still opens | A project whose files have moved or gone still opens, with slates in their place and a sheet to relink them. | File ▸ Open… ⌘O |
| New Project from Range | Opens a new project holding exactly the timeline's In–Out range, moved to start at 0, and leaves the source project unchanged. | File ▸ New Project from Range… |
| Clips cut at the range's edges | A clip across the range's In or Out is cut there as Split cuts it; markers inside are kept and media no kept clip plays is left out. | |
| The new project's name and undo | The new project opens untitled with unsaved changes, named like "Interview (range)", with no undo step back to the whole timeline. | |
| What's already measured comes along | Filmstrips, waveforms, on-device transcripts, analyses and reversed renders of each kept file come along, so nothing is measured again. | |
| Cloud transcripts in a range project | A cloud transcript goes to the range project only once AssemblyAI has been told to delete its copy. | |
| Graphics come along | The graphics the kept clips draw come along, with every font and picture of the project's graphics. | |
| When a range can't be kept | If the range can't be kept, the command beeps and shows why at the foot of the inspector, and no project opens. | |
| Save | Writes the project to its package; an untitled project asks for a name and a place first. | File ▸ Save ⌘S |
| Save As and Duplicate | Duplicate opens a copy as a new untitled project; Save As…, shown while you hold ⌥, writes to a new package and carries on in it. | File ▸ Duplicate, File ▸ Save As… ⇧⌘S ⌥⇧⌘S |
| Autosave | Once saved, a project autosaves in place as you work, the macOS way. | |
| Crash-safe package writes | The package is written beside the old one and swapped in, so a crash part-way through a save cannot leave half a package. | |
| Revert To and browsing versions | Goes back to the last saved version, or browses earlier versions of the package. | File ▸ Revert To ▸ |
| Rename | The standard macOS command renames the project's package, from the File menu or the window's title. | File ▸ Rename… |
| Move To | The standard macOS command moves the project's package to another folder, from the File menu or the window's title. | File ▸ Move To… |
| Share | Opens the macOS Share menu for the project. | File ▸ Share |
| Close | Closes the window: a saved project writes its changes without asking, and an untitled project with changes asks whether to save. | File ▸ Close ⌘W |
| A project saves only as a package | A project only ever saves as a .framejob package; a movie or still is a separate Export step. | |
| The Document tab | Holds what belongs to the whole project, in five sections: its size, frame rate, background and markers. | Document tab |
| Document summary rows | Read-only rows show Resolution, Frame rate, Duration, Tracks, Background and Colour. | Document tab ▸ Document |
| Canvas Preset | Picks a canvas size from a popup of common shapes. | Document tab ▸ Canvas ▸ Preset |
| Source Size | Sets the canvas to the size of the first media file that has a picture size, as long as both sides are even. | Document tab ▸ Canvas ▸ Preset ▸ Source Size |
| Custom Width and Height | You type the canvas size in pixels: even numbers from 16 to 16,384. | Document tab ▸ Canvas ▸ Width and Height |
| Resize clips proportionally | When on, clips follow a canvas size change so the layout looks the same; when off, they keep their scale and distance from the centre. | Document tab ▸ Canvas ▸ Resize clips proportionally |
| Project frame rate | Picks the project's rate: 24, 23.976, 25, 30, 29.97, 50 or 60 fps, or Match First Clip. Custom shows a rate it doesn't list. | Document tab ▸ Frame Rate ▸ Rate |
| Match First Clip | Takes the rate of the earliest clip on the timeline whose file has video. | Document tab ▸ Frame Rate ▸ Rate ▸ Match First Clip |
| Rates the popup does not list | A project can run at a rate the popup doesn't list. The popup then shows Custom, and the Frame rate row shows the real rate. | |
| What a rate change does to the timeline | Changing the rate moves every clip start, length, action and marker onto the new frame grid. | |
| Duration row | A read-only row shows the timeline's length. | Document tab ▸ Frame Rate ▸ Duration |
| Canvas background colour | Sets the colour behind every layer. | Document tab ▸ Appearance ▸ Background |
| A transparent background | Lowering the background's opacity makes it transparent, and the section adds a note about the export formats that keep it. | Document tab ▸ Appearance ▸ Background |
| Timecode | Shows times as Frames (HH:MM:SS:FF) or Milliseconds (HH:MM:SS.mmm) everywhere in the project. | Document tab ▸ Appearance ▸ Timecode |
| Fit new clips to canvas | When on, a new clip bigger than the canvas starts scaled down to fit; when off, it starts at 100 % and runs past the edges. | Document tab ▸ Appearance ▸ Fit new clips to canvas |
| Reset Appearance | Reset on the section header puts Background, Timecode and Fit new clips back to their defaults: opaque black, Frames and on. | Document tab ▸ Appearance header ▸ Reset |
| Add Media | Adds one or more files to the Media tab as one undo step, without putting them on the timeline. | File ▸ Add Media… ⇧⌘I |
| Drop files on the Media tab | Dragging files or a folder from the Finder onto the Media tab adds them to this project, including types the panels don't list. A folder adds the media files directly inside it. | Drag from the Finder onto the Media tab |
| Media is referenced, not copied | A project remembers each file's path and a Finder bookmark and reads it from there, so the package stays small. | |
| What the open panels list | The Add Media… and Open panels list movies, M4A, MP3, WAV, AIFF, PNG, JPEG, HEIC and, in Add Media… only, .cube. | |
| Add a media entry from a description | An agent can add a media entry from a description it supplies, without reading the file, to replay a project's own JSON. | |
| Codecs this Mac can't decode | A video in a codec this Mac can't decode is left out at import, and an alert names the codec. | File ▸ Add Media… ⇧⌘I |
| When a file won't import | A file that can't be read, holds no video or sound, or takes over 30 seconds to check shows an alert saying so. | |
| WebM and Matroska import | A .webm or .mkv is copied unchanged into a QuickTime movie the first time it comes in, with no re-encoding, and the original stays put. | File ▸ Add Media… ⇧⌘I |
| The Copying Movie window | A copy that takes more than a second shows a small progress window with Cancel. | Copying Movie window ▸ Cancel |
| The free-space check | Before copying, Frame Job checks the disk has room; if it doesn't, nothing is copied and an alert says what's needed. | |
| The Rewrapped folder | Copies live in ~/Library/Application Support/Frame Job/Rewrapped/, shared by all projects. Frame Job doesn't clear it, but you can. | |
| A copied file keeps its name | The media keeps the original's name, and its Media tab tooltip says where the copy lives. | |
| Streams the copy can't carry | A file with a stream the copy can't carry isn't added, and an alert names the stream; with ffmpeg installed, Frame Job offers to help. | File ▸ Add Media… ⇧⌘I |
| Stated colour is kept | The copy keeps the colour the file states: HLG, HDR10 (PQ), or a BT.709, BT.601 or BT.2020 SDR picture. | |
| A missing copy is remade | If a copy is deleted or moved to the Trash, the project makes it again from the original the next time it opens. | |
| Optional ffmpeg conversion | With your own ffmpeg, a file macOS can't open can still come in, each stream copied when it can be and re-encoded when it can't. | Alert on import ▸ Repackage or Convert Needs your own ffmpeg and ffprobe |
| Finding ffmpeg | Frame Job looks for ffmpeg on your PATH first, then in the usual install folders, and a Terminal setting can name a particular build. | |
| The Repackage or Convert alert | Before anything starts, the alert names the codecs and gives the size and the time, and offers Repackage or Convert, or Cancel. | Alert on import ▸ Repackage or Convert Needs your own ffmpeg and ffprobe |
| Do this automatically from now on | Keeps the answer you give: Repackage or Convert means such files convert from then on without asking, Cancel means they never do. | Alert on import ▸ Do this automatically from now on Needs your own ffmpeg and ffprobe |
| When a conversion fails | A conversion that fails or runs out of time shows an alert, and no partial file is left behind. | Needs your own ffmpeg and ffprobe |
| A lost conversion stays missing | Unlike a WebM copy, a deleted conversion is not remade when the project opens, and the media stays missing until relinked. | |
| Agent imports and ffmpeg | An agent's import never shows the ffmpeg question: unless you chose to convert automatically, the import fails and gives the reason. | |
| The Media tab | The inspector's Media tab lists every file the project has imported, used or not, with a search, a sort and a filter. | Media tab |
| The item count | The top bar holds Add Media… and a count of the files, and of how many are showing. | Media tab ▸ top bar |
| Search by name | A Search by name field narrows the list as you type, ignoring case and accents as the Finder does. Esc clears it. | Media tab ▸ Search by name Esc |
| Sort | A Sort popup orders the list by Import Order, Name, Duration or Kind. | Media tab ▸ Sort |
| Unused only | A checkbox shows only the files no clip uses. | Media tab ▸ Unused only |
| A media row | Each row shows a thumbnail, the file's name and an info line for its kind. | Media tab ▸ row |
| Audio and missing badges | Badges on the right mark a file that has audio and, in coral, a file that cannot be found. | Media tab ▸ row badges |
| The row's tooltip | Hovering a row shows how to place it, and where a copied file came from. | Hover over a Media tab row |
| Selecting a row | Clicking a row selects it for Edit ▸ Insert at Playhead, Edit ▸ Overwrite at Playhead and the sections under the list. | Click a Media tab row |
| The row's menu | Right-clicking a row offers Insert at Playhead, Overwrite at Playhead, Reveal in Timeline, Reveal in Finder, Relink… and Remove. | Right-click a Media tab row |
| Reveal in Timeline | Selects every clip showing this file and scrolls to the earliest one; if the selection changes, the inspector moves to the Clip tab. | Media row menu ▸ Reveal in Timeline |
| Reveal in Finder | Shows the file in the Finder. | Media row menu ▸ Reveal in Finder |
| Remove media | Takes the file out of the project and never deletes it from disk; an unused file goes at once, as one undo step. | Media row menu ▸ Remove |
| Remove media used by clips | If clips use the file Frame Job asks first, and Remove and Delete Clips removes the file and those clips as one undo step. | Alert ▸ Remove and Delete Clips |
| The Missing media sheet | When a project opens with files missing, a sheet lists each with its old path and a Locate… button. | Missing media sheet ▸ Locate… |
| Locate finds siblings by name | Choosing a file for one entry also looks in its folder for the other missing files by name, so a moved shoot is usually found with one Locate…. | Missing media sheet ▸ Locate… |
| Relink every located file | Relink applies every choice as one undo step, and skipped files stay missing to relink later. | Missing media sheet ▸ Relink |
| Relink one file | Points one media entry at a file you choose, missing or not. | Media row menu ▸ Relink… |
| What a relink checks | The new file must be readable and the same kind, and the row takes on its duration, size, frame rate, and audio, video and alpha. | |
| What a relink keeps | A relink keeps the file's Camera Log and HDR10 peak, and keeps or finds its cursor file and any saved speech that still fits. | Media row menu ▸ Relink… |
| Consolidate Media | Copies every file in the media list, used or not, into the package's media/ folder and points the project at the copies. | File ▸ Consolidate Media… |
| Consolidate needs a saved project | On an untitled project the command asks "Save this project first?", offers Save…, and carries on after the save. | Alert ▸ Save… |
| The Consolidating Media sheet | A sheet shows a bar, the file being copied and Cancel. | Consolidating Media sheet ▸ Cancel |
| When Consolidate Media finishes | When it finishes the sheet says what happened and offers Show in Finder and Close. | Consolidating Media sheet ▸ Show in Finder |
| Consolidating files with the same name | Two files with one name are kept apart, two entries for one file share a copy, and files already inside are not copied again. | |
| Consolidating with missing files | Missing files are left alone until you relink them; with nothing to do, an alert says "Nothing to consolidate." and why. | |
| Consolidating LUTs | LUTs are copied like footage, used or not, and the looks and Camera Logs that use one then read the copy. | |
| Consolidating cursor files | A recording's cursor file is copied next to its movie and named after it, and counts as one of the files copied. | File ▸ Consolidate Media… |
| Consolidating WebM, MKV and converted files | For a WebM, an MKV or a file converted with ffmpeg, Consolidate Media copies the movie it plays from, not the file you imported. | |
| A moved package finds its copies | A moved or renamed consolidated package points missing media back at same-named files in its media/ folder, with no sheet. | |
| On-device media analysis | Frame Job studies your files on this Mac to find shots, faces, people and sound events, with no upload, no network request and no key. | Clip ▸ Split at Shot Changes, Clip ▸ Follow Subject…, Clip ▸ Remove Background, Clip ▸ Switch by Speaker…, File ▸ Make Vertical Version… |
| Analysis on demand | A file's picture is not analysed at import, only when something asks, and only the missing part is read. | |
| Analysis runs in the background | Picture analysis runs at low priority, one job at a time, and sound analysis on its own queue, so the app stays usable while it works. | |
| The Analyzing sheet | When a menu command needs analysis the project doesn't have yet, a sheet shows each file's progress, then closes and the command goes on. | Clip ▸ Split at Shot Changes, Clip ▸ Follow Subject…, Clip ▸ Switch by Speaker…, File ▸ Make Vertical Version… |
| Stop an analysis | Stop on the Analyzing sheet cancels the command and makes no edit, and what was already saved stays in the project for next time. | Analyzing sheet ▸ Stop Esc |
| When an analysis fails | If an analysis cannot finish, the command stops and says which file failed and why rather than editing with half an answer. | The foot of the inspector |
| Results kept per file | Anything found is kept for the file in the project's cache, so a second request over the same part is ready at once. | |
| Analysis travels with the project | The caches live inside the .framejob package, so they go wherever it goes and carry into a project made from it. | |
| Filmstrips, waveforms and loudness | After an open, an import or a relink, Frame Job builds thumbnails, waveforms, loudness, sound matching and voice detection in the background. | |
| Voice detection | Frame Job scores every 32 ms of a file's sound for speech with the bundled Silero voice model, so commands can tell a voice from noise. | |
| Shots | Frame Job finds the hard cuts in a video by comparing each frame's colours with the frames before it. | Clip ▸ Split at Shot Changes |
| Faces | Frame Job looks for faces ten times a second, keeping each face's box, how far it's turned and tilted, and how open its mouth is. | Clip ▸ Follow Subject…, File ▸ Make Vertical Version…, Clip ▸ Switch by Speaker… |
| People and salient regions | Frame Job finds people's head and shoulders and the regions the eye goes to first, at the same ten samples a second. | Clip ▸ Follow Subject…, File ▸ Make Vertical Version… |
| Person masks | Frame Job outlines a person in every frame a clip plays, which is what Remove Background and Text Behind Subject draw with. | Clip tab ▸ Picture ▸ Background |
| Foreground masks on pictures | On a still picture, Frame Job can mask the foreground subject, whether or not it's a person. | Clip tab ▸ Picture ▸ Background ▸ Subject ▸ Foreground |
| Sound events | An agent can have Frame Job score a file's first sound track for laughter, applause, cheering, crowd, music and speech. No menu uses it. |
Timeline and playback
| Feature | What it does | Where |
|---|---|---|
| One kind of track | Any track holds any mix of clips: video, audio, a picture, text, a shape, a graphic, a nest or an adjustment clip. | Timeline |
| Tracks stack back to front | Tracks are layers: the top lane is front-most and the bottom lane is at the back. | Timeline |
| The current track | Commands that need one track use the track of the first selected clip, or the front-most track when nothing is selected. | Track menu |
| Default track names | A new track is named from the track count, such as Track 3, and keeps that name when you reorder the stack. | Track header |
| The track header and its switches | Each track has a header on the left with its name, the Hide Video, Mute Audio, Lock Track and Solo switches, and the Mix button. | Track header: eye, speaker, lock, headphones, sliders |
| New Track | Adds an empty track at the front, as the top lane. | Track ▸ New Track ⇧⌘N |
| Make a track by dropping past the stack | Dragging clips above the top lane or below the bottom lane creates a new track for them. | Drag a clip past the top or bottom lane |
| Rename a track | Double-clicking a track header opens an in-place name field. | Double-click a track header |
| Reorder tracks | Dragging a track header up or down restacks the track. | Drag a track header |
| Remove Track | Removes the current track, or the track whose context menu you opened, asking first if it still holds clips. | Track ▸ Remove Track |
| Remove Empty Tracks | Removes every track that holds no clips, as one undo step. | Track ▸ Remove Empty Tracks |
| Track menu switches | The Track menu flips the current track's Hide Video, Mute Audio, Lock Track and Solo switches. | Track ▸ Hide Video, Mute Audio, Lock Track, Solo |
| The track context menu | Right-clicking a track header or the empty part of its lane opens a menu for that track, showing its own state. | Right-click or ⌃-click a track header or the empty part of its lane |
| Track, marker and label edits undo one at a time | Every switch flip, rename and reorder is one undo step, and Edit ▸ Undo names the edit it will reverse. | Edit ▸ Undo ⌘Z |
| Hide Video | Takes a track's picture out of the preview and the export, leaving its sound playing. | Track header: eye / struck-through eye |
| Lock Track | Protects a track: its clips can't be dragged, trimmed, slipped or rolled with the mouse, and ripples and range deletes leave them alone. | Track header: open / closed padlock |
| Timeline Track Height | Picks small, medium or large track rows for every project. | Timeline bar: S / M / L |
| Height follows what a track holds | A track's height also depends on what it holds, so sound-only and text tracks draw shorter than picture tracks. | Timeline |
| The clip block | Each clip draws as one rounded block with a thin border, so its ends are always visible. | Timeline lanes |
| Colour by kind | A clip's colour and the symbol on its name strip show its kind, such as green for audio and amber for text. | Timeline lanes |
| The name strip | The top strip of a clip carries its kind symbol, a link symbol if it's linked, its name, a wave for During motion and its label dot. | Timeline lanes |
| Filmstrip thumbnails | Thumbnails run along the picture part of a video or image clip, under a wash of its colour. | Timeline lanes |
| The waveform | A clip with sound draws it as a waveform, below the filmstrip if it has both, following speed changes and ramps. | Timeline lanes |
| Fade handles | Small white squares at the top corners of the audio part of a clip set its fades when dragged inward. | Drag a fade handle on a clip |
| The selection ring and trim grips | A selected clip gets a 2 pt coral ring, plus a trim grip at each end when it's wide enough and its track is unlocked. | Timeline lanes |
| Dimmed clips | A clip on a hidden track, or with both its picture and sound switched off, draws dimmed. | Timeline lanes |
| How an adjustment clip looks | An adjustment clip is a plain rose block with only its name strip and action lane. | Timeline lanes |
| A ruler that follows the zoom | The ruler's divisions adapt to the zoom, from single frames up to one hour, and its labels use the project's timecode format. | Timeline ruler |
| The playhead | The playhead is a coral line down every track with a triangle head on the ruler. | Timeline ruler |
| The playhead is where edits happen | Split, trim to playhead, freeze frame, paste, insert and overwrite all work at the playhead. | Timeline playhead |
| Click or drag the ruler to scrub | Clicking the ruler moves the playhead there, and dragging along it scrubs while you hear the sound under the playhead. | Click or drag on the ruler |
| A click in a lane leaves the playhead | A click in a lane doesn't move the playhead, except on an action band, which moves it to the end of that action. | Click in a lane |
| The timeline follows the playhead | When the playhead nears the edge of the visible part or leaves it, the view moves so it sits about a third of the way in. | |
| Play and pause | Space, or the toolbar's Play and Pause button, starts and stops playback from almost anywhere in the window. | Toolbar transport: Play / Pause Space |
| J, K and L shuttle | L plays forward and J plays in reverse, each further press stepping ×1 to ×2 to ×4, and K pauses. | J K L |
| Step frames | ← and → pause and move the playhead one frame; with ⇧ they move ten. | ← → |
| What happens at the end | Playback stops at the end of the timeline and the playhead stays there. On an empty timeline, Play, J and L beep. | Toolbar transport: Play / Pause |
| Look-only edits redraw in place | A change that only alters how something looks redraws the frame without interrupting playback. | Preview |
| Structural edits rebuild in the background | A move, a trim, a new clip or a change to the sound rebuilds the preview in the background, keeping your place and speed. | Preview |
| A failed rebuild keeps playing | If a rebuild fails, an error shows and the previous version keeps playing. | Preview |
| Previous and Next Edit Point | ↑ and ↓, or the toolbar's buttons either side of Play, jump the playhead to the previous or next edit point. | Toolbar transport: Previous Edit Point, Next Edit Point ↑ ↓ |
| Go to Start and Go to End | Home and End, or the transport's buttons, pause and move the playhead to the start or end of the timeline. | Toolbar transport: Go to Start, Go to End Home End |
| Type a timecode to jump | The toolbar shows the playhead's time; click it, type a time and press Return to pause and jump there. | Toolbar timecode field |
| The duration readout | Beside the time, the toolbar shows a slash and the duration of what the timeline shows. | Toolbar, after the timecode field |
| Move the playhead with an agent | With set_playhead, an agent moves the playhead and the preview. It makes no undo step and doesn't pause playback. | |
| Loop playback | The Loop button repeats the in/out range, or the whole timeline when there's no range. | Toolbar transport: Loop |
| Pinch and ⌥ or ⌘ scroll to zoom | A trackpad pinch, or scrolling with ⌥ or ⌘ held, zooms the timeline about the pointer, keeping the time under it in place. | Pinch, or ⌥ or ⌘ and scroll, over the timeline |
| The zoom slider | The Timeline Zoom slider zooms about the middle of the view, across the whole zoom range. | Timeline bar: Timeline Zoom slider |
| Zoom Out and Zoom In buttons | The − and + buttons step the timeline zoom about the middle of the view. | Timeline bar: − / + |
| Fit Timeline | Fits the whole project across the timeline pane and scrolls to the start. | View ▸ Fit Timeline ⇧Z |
| Starting zoom and zoom range | A window opens with each second 42 points wide, not fitted to the project, and the zoom runs from hours down to single frames. | Timeline |
| Scroll the timeline | A plain scroll or two-finger swipe moves the timeline, with the track headers and ruler staying in place. | Scroll or two-finger swipe over the timeline |
| Click to select | Clicking a clip selects it alone, unless it's part of a larger selection, which then stays selected. | Click a clip |
| ⇧-click to add or remove | ⇧-click adds a clip to the selection, or takes out one that's already selected. | ⇧-click a clip |
| Marquee selection | Dragging from empty timeline space draws a band that selects every clip it touches; ⇧-drag adds to the selection. | Drag from a gap in a lane, the strip under the ruler or the space below the last lane |
| Clear the selection | A single click on empty timeline space clears the selection. | Click an empty lane, or above or below the lanes |
| Select All | Selects every clip in the timeline being edited, on locked tracks too. | Edit ▸ Select All ⌘A |
| Select After Playhead | Selects every clip whose start is at or after the playhead. | Edit ▸ Select After Playhead ⌥⌘A |
| Select All on Track | Selects every clip on the current track, or on the track whose header you ⌥-click. | Edit ▸ Select All on Track |
| The selection block | The left end of the timeline bar names what is selected. | Timeline bar, left end |
| A selection isn't saved | A selection is never an undo step and isn't saved, so a project always opens with nothing selected. | |
| What a drag snaps to | Clip moves, trims, rolls and rate stretches, marker drags and ruler scrubs catch clip edges, markers, the playhead and the range. | Timeline drags |
| Turn snapping on and off | N, the Snap box or View ▸ Snapping turn snapping on or off for the timeline and the canvas together. | View ▸ Snapping N |
| Hold ⌘ to suspend snapping | Holding ⌘ turns snapping off for the current drag, on the timeline and on the canvas. | Hold ⌘ during any drag that snaps ⌘ while dragging |
| The snap guide line | When a drag snaps, a thin vertical guide line across the timeline marks what it caught. | Timeline drags |
| Drags land on whole frames | A drag that doesn't snap still lands on a whole frame. | Timeline drags |
| What never snaps | Slips, action band drags and fade handles never snap, and a Media tab row dropped on a lane lands on the nearest frame. | Timeline drags |
| Add a marker | Drops a marker at the playhead. | Mark ▸ Add Marker M |
| Marker flags | Each marker draws as a small flag with a line down the ruler, in its colour. | Timeline ruler |
| Move a marker | Dragging a flag along the ruler moves the marker. | Drag a marker's flag |
| Rename a marker | Double-click a flag to type in place, or type in its row in the Document tab. | Double-click a marker flag |
| Next and Previous Marker | Pause playback and jump the playhead to the next or previous marker. | Mark ▸ Next Marker, Previous Marker |
| The Document tab's Markers list | The Document tab lists every marker in time order, each with its time, name, Chapter, Go and Delete. | Document tab: Markers |
| Go to a marker from its row | A marker row's Go button moves the playhead to it. | Document tab: Markers row, Go |
| Remove a marker | A marker row's Delete button removes it. | Document tab: Markers row, Delete |
| Chapter markers | Turn on Chapter in a marker's row and its flag fills, and it becomes a chapter in exported MP4, MOV, M4A and WebM files. | Document tab: Markers row, Chapter |
| Marker colours | Markers are red unless an agent changes them, because the Document tab has no colour control. | |
| Markers while a nest is open | Markers belong to the whole timeline, so an open nest hides them from the ruler. | Timeline while a nest is open |
| The in/out range | A span of the timeline, shaded across the ruler and lanes, that other commands act on. | Timeline ruler and lanes |
| Set In | Sets the in point at the playhead. | Mark ▸ Set In I |
| Set Out | Sets the out point at the playhead. | Mark ▸ Set Out O |
| Clear Range | Clears the in/out range. | Mark ▸ Clear Range ⌥X |
| Crossing points | Setting an in point after the out point moves the out point to match, and the other way round. | Mark ▸ Set In / Set Out |
| The range isn't saved | The range isn't an undo step and isn't saved, and it clears when you enter or leave a nest. | |
| Rename a clip | A field opens over the clip's name strip so you can name it in place. | Clip ▸ Rename…, or double-click the clip ⇧⌘R |
| Clear a clip's name | Emptying the name field at the top of the Clip tab clears a clip's name, so it shows what it holds again. | Clip tab: header name field |
| Label a clip | Applies a colour label to every selected clip, shown as a small dot on its name strip. | Clip ▸ Label ▸ Red, Orange, Yellow, Green, Blue, Purple, None |
| Names and labels for agents | With set_clip, an agent names or labels several clips in one step. | |
| The preview pane | The preview shows the frame under the playhead in the canvas's shape, letterboxed in the pane to the left of the inspector. | Editor window, top left, above the timeline |
| Preview tags | Small tags in the preview's top-left corner show when the picture isn't the plain one: Ungraded, Selection or SDR Version. | Preview, top-left |
| Other View items for the preview | The View menu's other preview items: Safe Areas, Show Ungraded, Show Selection, Show SDR Version, Show Subjects, Scopes, Loudness Meter. | View menu ⌃⌘U ⌃⌘W ⌃⌘L |
| Preview Quality | Draws the preview at Full, Half or Quarter of the canvas size and scales it back up, so heavy projects play more smoothly. | View ▸ Preview Quality ▸ Full, Half, Quarter |
| The Preview Window | Opens the picture in its own window with no handles or guides, for a second display. | View ▸ Preview Window ⇧⌘P |
| The window remembers its place | The window remembers where you put it and stays visible when you switch to another app. | Preview Window |
| Keys in the Preview Window | While it has focus, the playback keys, the editor's other single-letter keys and every editor ⌘ command keep working. | Preview Window |
Editing
| Feature | What it does | Where |
|---|---|---|
| What an edit acts on | Most commands act on the selected clips, and some also use the playhead, the in and out range or the current track. | The timeline |
| Clips never push each other | A dragged clip never shoves its neighbours aside. Only edits made to shift time, such as Ripple Delete or Insert, move other clips. | Timeline ▸ drag a clip's body |
| Times land on frames | A time you drag or type lands on a whole frame of the project's frame rate, except short audio times such as a typed fade length. | Timeline |
| One frame minimum | Trims and rolls always leave a clip at least one frame long. | Timeline |
| Project size limits | A project holds up to 4,096 clips, 64 tracks, eight levels of nesting, 1,024 markers and 1,024 media files. | |
| Drag media onto a track | Drag a row from the Media tab onto a track to place the whole file as a clip at the drop point, moving nothing else. | Media tab ▸ drag a row onto a track |
| Drop media on the canvas | Drop a Media tab row on the preview canvas to add the file at the playhead on a new track at the front. | Media tab ▸ drag a row onto the preview canvas |
| New clips cover the whole file | A new clip runs the whole file from its first frame, rounded down to whole frames. A picture lands 5 seconds long. | Media tab ▸ drag a row |
| When a media drop doesn't land | A drop that breaks the overlap rule beeps and adds nothing. One outside the lanes or in another project's window springs back. | Media tab ▸ drag a row |
| Insert | Insert places a file at a point and makes room for it by pushing everything later along on every unlocked track. | Edit ▸ Insert at Playhead |
| Overwrite | Overwrite clears the file's length on one track and places the file there, moving nothing. | Edit ▸ Overwrite at Playhead |
| Insert or overwrite as you drop | Hold ⌥ at the drop to insert, or ⇧⌥ to overwrite, when dragging a Media tab row onto a track. | Media tab ▸ drag a row onto a track ⌥-drop ⇧⌥-drop |
| Drag to move a clip | Drag a clip's body to move it in time, and up or down to move it to another track. | Timeline ▸ drag a clip's body |
| Move several clips together | Drag any one of several selected clips to move them all, keeping the same time and number of tracks between them. | Timeline ▸ drag one clip of a selection |
| When a drop won't go where you let go | Over a spot the overlap rule doesn't allow, the clip stays at the last allowed position, or where it started if there was none. | Timeline ▸ clip drag |
| One undo step per drag | A whole drag is one undo step, however long it lasts. | Edit ▸ Undo ⌘Z |
| Nudge one frame | Comma and period move the selected clips one frame earlier or later. | , . |
| Nudge ten frames | With ⇧, comma and period move the selected clips ten frames. | ⇧, ⇧. |
| Drag an edge to trim | Drag either edge of a clip to trim it. | Timeline ▸ drag a clip edge |
| Start trim | A start trim moves the clip's start and its place in the footage together, so the rest of the clip stays where it is. | Timeline ▸ drag a clip's start edge |
| End trim | An end trim moves the clip's end and changes nothing else about the clip. | Timeline ▸ drag a clip's end edge |
| Trim to the playhead | W and E trim the start or end of each selected clip the playhead is inside to the playhead. | Clip ▸ Trim Start to Playhead, Clip ▸ Trim End to Playhead W E |
| How far a trim goes | A clip always keeps at least one frame, and a media clip's trim stops at the start and end of its file. | Timeline |
| Type a clip's In and Out | Type where a clip starts and ends on the timeline, which trims its edges. | Clip tab ▸ Clip ▸ Timing ▸ In and Out |
| Read a clip's duration | Duration shows the clip's length. You can't type in it, so change the length through In and Out. | Clip tab ▸ Clip ▸ Timing ▸ Duration |
| Timing with several clips selected | With several video or audio clips selected, Timing holds only the Reverse rows. A mixed selection has no Timing section. | Clip tab ▸ Clip ▸ Timing |
| Slip | ⌥⇧-drag a clip's body to slide the footage underneath it while the clip stays in place at the same length. | Timeline ▸ ⌥⇧-drag a clip's body ⌥⇧-drag body |
| Roll | ⌥⇧-drag a clip's edge to move the cut between two touching clips: one gets longer and the other shorter by the same amount. | Timeline ▸ ⌥⇧-drag a clip's edge ⌥⇧-drag edge |
| Move a sound clip's edge alone | A drag, W, E or a roll on a linked sound clip moves only the sound's edge, leaving its picture where it is. | Timeline ▸ drag a linked sound clip's edge W E |
| Split | Clip ▸ Split cuts clips in two at the playhead. | Clip ▸ Split ⌘T |
| Footage stays continuous | The second piece carries on playing the footage from where the first stopped. | Clip ▸ Split ⌘T |
| Actions and word timings | Actions stay with the piece they fall in, an action spanning the cut becomes two, and caption word timings stay on their words. | Clip ▸ Split ⌘T |
| Splitting a graphic | A split graphic carries on across the cut rather than restarting, and plays its outro once, at the true end. | Clip ▸ Split ⌘T |
| Split at Shot Changes | Cuts each selected video clip at every hard cut in the part of the file it plays, giving one clip per shot in one undo step. | Clip ▸ Split at Shot Changes |
| What counts as a hard cut | A hard cut is a change from one picture to another between two frames, found by comparing each frame's colours with those before it. | Clip ▸ Split at Shot Changes |
| Found on this Mac and cached | Shot changes are found on the Mac with nothing sent anywhere and no key needed, and kept in the project's cache. | Clip ▸ Split at Shot Changes |
| While the cuts are found | The Analyzing sheet shows each file with a bar while cuts are found, and Stop closes it and changes nothing. | Clip ▸ Split at Shot Changes |
| Cuts land on the frame grid | Each shot cut lands on the project's frame grid, worked out through the clip's speed, speed ramp and reversal. | Clip ▸ Split at Shot Changes |
| Shot splits on locked tracks | A selected clip on a locked track is still cut, with its linked sound when that sound is on an unlocked track. | Clip ▸ Split at Shot Changes |
| The clip limit for shot splits | If the splits would take the project past 4,096 clips, nothing is split and the inspector says how many clips it would add and how many fit. | Clip ▸ Split at Shot Changes |
| Delete | Edit ▸ Delete removes the selected clips and leaves gaps. | Edit ▸ Delete ⌫ |
| Ripple Delete | Edit ▸ Ripple Delete removes the selected clips and closes each hole they leave, moving everything later on every unlocked track left. | Edit ▸ Ripple Delete ⌘⌫ |
| Lift | With a range set and nothing selected, ⌫ removes what's in the range on every unlocked track and moves nothing. | Edit ▸ Delete with a range and no selection ⌫ |
| Ripple Delete a range | With a range set and nothing selected, ⌘⌫ removes what's in the range on every unlocked track and closes the hole. | Edit ▸ Ripple Delete with a range and no selection ⌘⌫ |
| Choose a delete | Each delete key acts on the selection, or on the in and out range when nothing is selected. Only ⌘⌫ closes the hole. | Edit ▸ Delete ⌫ |
| How a ripple closes holes | Each hole closes with one shift of everything after it, so clips that touched before still touch. | Edit ▸ Ripple Delete ⌘⌫ |
| Ripple delete several ranges | Agents cut a list of time ranges out of the timeline as one undo step, as Remove Silences and Remove Filler Words do. | Clip ▸ Remove Silences… |
| Delete keys in text fields | ⌫ and ⌘⌫ still edit text while you type in a field, because both menu items are greyed out there. | Edit ▸ Delete ⌫ |
| Close Gap | Clip ▸ Close Gap closes the gap under the playhead on the current track, sliding everything after it left on every unlocked track. | Clip ▸ Close Gap |
| Double-click a gap | Double-click an empty stretch of a lane to close that gap, moving everything after it on every unlocked track left by the gap's length. | Timeline ▸ double-click an empty stretch of a lane |
| When a gap won't close | A gap closes completely or not at all. If it can't, Frame Job beeps and gives the reason at the foot of the inspector. | Clip ▸ Close Gap |
| Insert time | Agents can open empty room: clips on unlocked tracks and markers at or after a point move later. ⌥-drop insert does it too. | |
| Open room by hand | Select After Playhead, then drag or ⇧-nudge the clips later to open room on the timeline. | Edit ▸ Select After Playhead ⌥⌘A |
| Duplicate | Edit ▸ Duplicate puts a copy of each selected clip on the same track, starting right after the selection's span. | Edit ▸ Duplicate ⌘D |
| ⌥-drag a copy | Hold ⌥ when you press on a clip to drag copies and leave the originals in place. | Timeline ▸ ⌥-drag a clip ⌥-drag |
| Copy | Edit ▸ Copy puts the selected clips on the clipboard with a note of their media files, to paste here or in another project. | Edit ▸ Copy ⌘C |
| Cut | Edit ▸ Cut copies the selected clips, then deletes them and leaves gaps, as ⌫ does. | Edit ▸ Cut ⌘X |
| Paste | Edit ▸ Paste pastes the clipboard's clips at the playhead, then selects them. | Edit ▸ Paste ⌘V |
| Paste keeps the arrangement | The earliest clip lands at the playhead, the others keep their distance from it, and each keeps its place back from the front track. | Edit ▸ Paste ⌘V |
| When a paste has no room | A pasted clip that would break the overlap rule goes on a new track at the front rather than being dropped. | Edit ▸ Paste ⌘V |
| Paste between projects | You can paste clips into another project, and any media files that project lacks are added to its Media tab. | Edit ▸ Paste ⌘V |
| A detached sound comes along | A selected picture brings its detached sound, so the pair pastes as a pair; a selected detached sound is copied on its own. | Edit ▸ Copy ⌘C |
| Copied clips as text | Pasted into a text editor, copied clips arrive as a one-line summary. | Edit ▸ Copy, then paste in another app ⌘C |
| Paste Attributes | Edit ▸ Paste Attributes puts the look and sound settings of the earliest copied clip onto every selected clip, in one undo step. | Edit ▸ Paste Attributes ⌥⌘V |
| Paste Attributes: the Video group | The Video group carries everything about the picture: position, scale, rotation, crop, opacity, effects and grade. | Edit ▸ Paste Attributes ⌥⌘V |
| Paste Attributes: the Audio group | The Audio group carries everything about the sound: volume, pan, fades and effects. | Edit ▸ Paste Attributes ⌥⌘V |
| Paste Attributes: the Text group | The Text group carries font, size, colours, layout and animation, while the target keeps its own words and their timings. | Edit ▸ Paste Attributes ⌥⌘V |
| Paste Attributes: the Shape group | The Shape group carries fill, stroke, gradient and the rest of the style, while the target keeps its kind, size and end points. | Edit ▸ Paste Attributes ⌥⌘V |
| What Paste Attributes leaves alone | The target keeps its place, length, speed, animation actions, transition, name, label and which halves are switched on. | Edit ▸ Paste Attributes ⌥⌘V |
| Paste attributes across a mixed selection | An agent can paste attributes across a mixed selection without stopping, skipping clips that cannot take a group. | |
| Qualifiers and adjustment clips | A qualifier is copied only from one adjustment clip to another, and some picture settings can't land on an adjustment clip. | Edit ▸ Paste Attributes ⌥⌘V |
| Turn a clip's picture or sound off | Commands such as Detach Audio switch off a clip's picture or sound while it stays in place, and that half adds nothing. | Clip ▸ Detach Audio ⌥⌘D |
| Nest | Clip ▸ Nest collapses the selected clips into one clip that moves, trims, fades and transforms as a group. | Clip ▸ Nest ⌘G |
| Where the nest clip lands | The nest clip goes on the front-most track the selection used, runs from the earliest start to the latest end, and is selected. | Clip ▸ Nest ⌘G |
| What a nest keeps | Inside the nest, clips keep their properties, actions, transitions, relative timing and stacking order. | Clip ▸ Nest ⌘G |
| A nest's fixed canvas size | A nest's canvas is fixed at the project's size at the moment you nest, and later size changes don't re-lay out what's inside. | Clip ▸ Nest ⌘G |
| Naming a nest | Nests are named "Nest 1", "Nest 2" and so on, and you rename one through the menu or the Clip tab. | Clip ▸ Rename… ⇧⌘R |
| Un-nest | Clip ▸ Un-nest opens every selected nest clip back out in one undo step and selects what came out. | Clip ▸ Un-nest ⇧⌘G |
| What Un-nest discards | Un-nesting discards the nest clip's own transform, opacity, fades and volume. | Clip ▸ Un-nest ⇧⌘G |
| Nests inside nests | Nests can contain nests, up to eight levels deep. | Clip ▸ Nest ⌘G |
| Open Nest | Go inside a nest to edit its contents in place, instead of un-nesting. | Double-click a nest clip ⌘↓ |
| Close Nest | Come out of a nest one level. | Clip ▸ Close Nest ⌘↑ |
| The breadcrumb | While a nest is open, the corner above the track headers shows a path such as "Timeline › Intro", and clicking it goes out one level. | Corner above the track headers ⌘↑ |
| What you see inside | Inside, the timeline shows the nest's own tracks and clips from zero, and the canvas shows the group without the nest clip's settings. | Timeline |
| The playhead maps through | The playhead moves with you into and out of a nest, so the frame under it doesn't change. | Clip ▸ Open Nest |
| Going in and out isn't an edit | Entering or leaving a nest makes no undo step and does not mark the project as changed. | Clip ▸ Open Nest ⌘↓ |
| Edits inside a nest | Every clip edit works inside a nest, in the nest's own times, and each is one step on the project's single undo history. | Inside an open nest ⌘↓ |
| Media and settings stay project-wide | Adding, relinking or removing media and changing the Document tab still work with a nest open, and they change the whole project. | Inside an open nest |
| Limits count the whole project | Clip, track and nesting-depth limits count the whole project even while you edit inside a nest. | Inside an open nest |
| Shared copies | Split, Duplicate and ⌥-drag copies of a nest clip share one nest, so editing inside any of them changes them all. | Clip ▸ Split ⌘T |
| Independent copies | Duplicate a nest clip, un-nest the copy and nest its clips again to get a nest you can edit on its own. | Edit ▸ Duplicate, then Clip ▸ Un-nest and Clip ▸ Nest ⌘D |
| Trimming a nest hides, it doesn't cut | Trimming a nest clip changes how much of the nest plays and cuts nothing, so Un-nest still gives everything back. | Timeline ▸ drag a nest clip's edge |
Canvas and layers
| Feature | What it does | Where |
|---|---|---|
| The preview canvas | The canvas shows the composition at the playhead, at the project's size, centred in the preview pane. | Preview pane |
| Canvas size and rate caption | A small line under the picture states the canvas size and frame rate. | Preview pane, below the picture |
| Layers stack back to front | A track higher in the timeline draws in front of the ones below it, and any kind of picture clip can share a track. | |
| What you can do on the canvas | Select, move, scale, rotate and crop a clip directly on the picture, with the same placement the Picture tab shows as numbers. | Preview canvas |
| Hidden and locked tracks on the canvas | Clips on hidden tracks are not drawn and can't be clicked; clips on locked tracks are drawn but can't be selected or moved on the canvas. | Preview canvas |
| Canvas modes | Tools that wait for a click or drag show a crosshair and a hint at the top of the preview. Only one can be on at a time, and Esc ends it. | Preview canvas Esc |
| The zoom popup | A toolbar popup sets how large the picture appears: Fit, 50%, 100% or 200%. | The zoom popup in the toolbar |
| Zoom In, Zoom Out and Zoom to Fit | View menu commands step the preview through its four zoom stops, or go straight back to Fit. | View ▸ Zoom In, Zoom Out, Zoom to Fit ⌘+ |
| Pinch and scroll to zoom | A trackpad pinch, or scrolling with ⌥ or ⌘ held, steps through the zoom stops. | Pinch over the preview ⌥-scroll |
| Pan a zoomed canvas | When the zoomed canvas is bigger than the pane, scroll or hold Space and drag to pan it. | Scroll over the preview Space-drag |
| Space on the canvas | After you've clicked the canvas, Space still plays and pauses when you release it, and holding it to drag pans instead. | Space, after clicking the canvas Space |
| Click to select a layer | Clicking the picture selects the front-most visible clip under the pointer at the playhead. | Click on the preview canvas |
| Add or remove a clip with ⇧-click | ⇧-click adds a clip to the selection or removes it. | ⇧-click on the preview canvas ⇧-click |
| Click empty canvas to deselect | Clicking empty canvas clears the selection and leaves crop mode. | Click empty canvas |
| The selection frame and handles | Every selected clip at the playhead gets an outline, and the front-most also gets eight square handles and a round rotation grip. | Preview canvas |
| Selecting matte clips | A clip on a matte track can be selected and dragged inside its own box even though it draws nothing there. | Click on the preview canvas |
| Drag to move | Drag inside a clip's box to move it, and every selected clip moves by the same amount. | Drag a clip in the preview |
| Nudge with the arrow keys | With the canvas focused and a selected clip showing at the playhead, the arrow keys move it 1 pixel, or 10 with ⇧. | The arrow keys, after clicking the canvas ← → ↑ ↓ |
| Scale with the eight handles | Drag a corner or edge handle to scale the clip, with the opposite handle pinned in place. | Drag a square handle in the preview |
| Scale about the centre | Hold ⌥ while scaling to keep the clip's centre still instead of the opposite handle. | ⌥ during a handle drag ⌥-drag |
| Rotate with the grip | Drag the round grip above the top edge to rotate the clip about its centre. | Drag the rotation grip |
| Snap the angle | Hold ⇧ while rotating to snap the angle to 15° steps. | ⇧ during a rotation drag ⇧-drag |
| Cancel a drag | Press Esc during a canvas drag to put everything back, with no undo step. | Esc during a canvas drag Esc |
| The fixed pivot | Rotation, the Scale field and a ⌥ scale drag all pivot on the centre of the clip's uncropped picture. | |
| One undo step per drag | Each canvas drag is one undo step, and a click that moves nothing adds no step. | |
| What a move snaps to | While you drag a clip to move it, its box snaps to the canvas and to other visible layers. | Drag a clip with snapping on |
| Snap guide lines | A guide line is drawn across the canvas on each axis that snapped. | |
| Suspend snapping for one drag | Hold ⌘ during a drag to stop snapping for as long as it's down. | ⌘ during a drag ⌘-drag |
| Safe area guides | Two guide frames over the picture mark the 90 % title-safe and 80 % action-safe areas. | View ▸ Safe Areas |
| The Crop section | Type how many source pixels to cut from each edge of a video clip, image clip or freeze frame. | Clip tab ▸ Picture ▸ Crop |
| Crop mode | Press C, double-click a video clip, image clip or freeze frame, or use Crop on Canvas to crop the selected clip with handles on the canvas. | C, a double-click on the clip, or Inspector ▸ Clip ▸ Picture ▸ Crop ▸ Crop on Canvas C |
| Crop handles | In crop mode the eight handles trim the clip's edges, and the area being cut away shows as a faint white shape. | Drag a crop handle in crop mode |
| Leaving crop mode | Return, keypad Enter, Esc, C, Crop on Canvas or a click on empty canvas leave crop mode from any focus but typing, and your crop stays. | Return, anywhere but a text field Return |
| A crop removes edges in place | A crop never shifts the picture, and its amounts stay correct when you scale the clip later. | |
| The Picture tab's sections | The Clip tab's Picture sub-tab holds a clip's placement and picture effects, and which sections show depends on the selection. | Clip tab ▸ Picture |
| How the sections behave | Sections fold, show a summary while closed, and edit every selected clip at once. | Clip tab ▸ Picture |
| Picture settings for agents | An agent changes the placement and look of any number of clips with set_video, sending only the settings to change. | |
| The Transform section | Holds a clip's scale, position, rotation, opacity, blend and motion blur, for every clip that draws. | Clip tab ▸ Picture ▸ Transform |
| Scale | Sets the clip's size as a percentage, where 100 % is its native pixels. | Clip tab ▸ Picture ▸ Transform ▸ Scale |
| Position X and Y | Places the clip in canvas pixels, measured from the canvas centre. | Clip tab ▸ Picture ▸ Transform ▸ Position X, Position Y |
| Rotation | Turns the clip in degrees about its centre; a positive angle turns clockwise on screen. | Clip tab ▸ Picture ▸ Transform ▸ Rotation |
| Opacity | Sets how see-through the clip is. | Clip tab ▸ Picture ▸ Transform ▸ Opacity |
| Fit to Canvas | Scales each selected clip so its whole picture fits the canvas, and centres it. | Clip tab ▸ Picture ▸ Transform ▸ Fit to Canvas |
| Fill Canvas | Scales each selected clip until it covers the whole canvas, and centres it. | Clip tab ▸ Picture ▸ Transform ▸ Fill Canvas |
| Reset Transform | Puts position, scale, rotation, opacity, blend and motion blur back to their defaults in one step. | Clip tab ▸ Picture ▸ Transform ▸ Reset |
| No stretching on pictures | A video, image or nest always keeps its proportions. Only shapes, text and graphics can change on one axis. | |
| The Blend popup | Chooses how a layer combines with what is under it. | Clip tab ▸ Picture ▸ Transform ▸ Blend |
| Normal blend mode | Draws over what is underneath. | Clip tab ▸ Picture ▸ Transform ▸ Blend ▸ Normal |
| Multiply blend mode | Darkens by multiplying with what is underneath. | Clip tab ▸ Picture ▸ Transform ▸ Blend ▸ Multiply |
| Screen blend mode | Lightens, the inverse of multiply. | Clip tab ▸ Picture ▸ Transform ▸ Blend ▸ Screen |
| Add blend mode | Adds the colours together. | Clip tab ▸ Picture ▸ Transform ▸ Blend ▸ Add |
| Overlay blend mode | Multiplies where what's underneath is dark, and screens where it's light. | Clip tab ▸ Picture ▸ Transform ▸ Blend ▸ Overlay |
| Darken blend mode | Keeps the darker of the two colours. | Clip tab ▸ Picture ▸ Transform ▸ Blend ▸ Darken |
| Lighten blend mode | Keeps the lighter of the two colours. | Clip tab ▸ Picture ▸ Transform ▸ Blend ▸ Lighten |
| Difference blend mode | Gives the absolute difference of the two colours. | Clip tab ▸ Picture ▸ Transform ▸ Blend ▸ Difference |
| Warning when nothing is behind a blend | The Transform section warns when a blend has nothing under it to work against. | Clip tab ▸ Picture ▸ Transform |
| Blend during a transition | A layer draws as Normal for as long as it is in a transition, whatever blend mode it has. | |
| Corner Radius | Rounds the corners of a video clip, image clip or freeze frame, following any crop. | Clip tab ▸ Picture ▸ Corner Radius ▸ Radius |
| A background gets its own track | Each background command puts one clip on a new back-most track and selects it. | Clip ▸ Add Background, Clip ▸ Add Blurred Background |
| Add Background: Solid Color | Puts a canvas-sized white rectangle named "Background" behind everything, starting at 0 and as long as the timeline. | Clip ▸ Add Background ▸ Solid Color |
| Add Background: Image | Puts a picture you choose behind everything, scaled to fill the canvas and as long as the timeline. | Clip ▸ Add Background ▸ Image… |
| Add Blurred Background | Puts a muted, blurred, canvas-filling copy of the selected clip behind everything, the usual backdrop for a screen recording. | Clip ▸ Add Blurred Background |
| Matte tracks | A matte track cuts the track directly behind it: its clips are never drawn, and what they show decides where the track behind can be seen. | Track ▸ Matte |
| Setting a matte | Choose a mode from Track ▸ Matte, or right-click a track for its Matte submenu. | Track ▸ Matte, or right-click a track's header ▸ Matte |
| Matte mode: Off | An ordinary track, which is every track's default. | Track ▸ Matte ▸ Off |
| Matte mode: Alpha | The track behind shows where the matte clip is opaque. | Track ▸ Matte ▸ Alpha |
| Matte mode: Inverted Alpha | The track behind shows where the matte clip is transparent. | Track ▸ Matte ▸ Inverted Alpha |
| Matte mode: Luma | The track behind shows where the matte clip is bright. | Track ▸ Matte ▸ Luma |
| Matte mode: Inverted Luma | The track behind shows where the matte clip is dark. | Track ▸ Matte ▸ Inverted Luma |
| Gaps in a matte track | Where the matte track has no clip, the track behind shows uncut. | |
| Turning a cut off for a while | Hide Video on the matte track, or turning off a matte clip's picture, turns the cut off and shows the track behind whole. | Hide Video on the matte track |
| A matte with nothing to cut | A matte on the back-most track, or directly in front of another matte track, cuts nothing and still draws nothing. | |
| What shapes a matte | Most of a matte clip's settings, from position and crop to filters and actions, shape the cut, so a moving title can wipe footage on. | |
| What a matte ignores | A matte clip's blend mode, drop shadow and reflection have no effect, but they are kept and apply again when the track stops being a matte. | |
| A matte clip's sound | A matte clip's sound still plays. | |
| Adjustment clips and mattes | On a track cut by a matte, an adjustment clip grades only inside the matte; on a matte track it does nothing. | Timeline |
| The matte note on the Clip tab | With every selected clip on a matte track, each Clip sub-tab shows a note saying what the matte does, and every control still works. | Inspector ▸ Clip, under the sub-tabs |
| How a matte track looks | A matte track's header carries a tag, its clips draw at half opacity with dashed outlines, and a bracket joins it to the track it cuts. | Timeline track header |
| Mattes inside a nest | A matte track works inside a nest as it does on the timeline, and a nest clip can itself be a matte or be cut by one. | |
| Nesting a matte | Nest keeps a track's matte only when the track it cuts is nested with it. | Clip ▸ Nest ⌘G |
| Un-nesting a matte | Un-nest lines the nest's front-most non-matte track up with the nest clip's track, so the picture comes back as it was. | Clip ▸ Un-nest ⇧⌘G |
| Transitions across matted tracks | Mattes work through transitions. A Cross Dissolve or Zoom involving a nest draws each side whole, then mixes the two. | Timeline |
Text, shapes and pictures
| Feature | What it does | Where |
|---|---|---|
| Add a text clip | Press T or click Add Text in the timeline bar to put a five-second title at the playhead. | Timeline bar ▸ Add Text T |
| Trim a text clip to any length | A text clip has no source file, so you can trim it to any length. | Drag a text clip's edge on the timeline |
| Type a text clip's words | Type the words in the Content box. Return applies them and ⇧Return starts a new line. | Clip tab ▸ Text ▸ Content Return |
| Place a text clip and add effects | A text clip also has a Picture sub-tab for its position, scale, rotation, opacity and effects. | Clip tab ▸ Picture |
| Restyle a text clip from an agent | An agent can change any mix of a text clip's words and typography in one undo step. | |
| Font Family | Choose from every font family installed on the Mac, plus the faces the app ships with. | Clip tab ▸ Text ▸ Font ▸ Family |
| Font Style | Pick one of the family's faces, such as Regular or SemiBold. | Clip tab ▸ Text ▸ Font ▸ Style |
| Font Size | Set the text size in pixels. | Clip tab ▸ Text ▸ Font ▸ Size |
| Text Color | Set the colour of the text. | Clip tab ▸ Text ▸ Style ▸ Color |
| Text Align | Align text left, centre or right. | Clip tab ▸ Text ▸ Style ▸ Align |
| Vertical alignment | Align text to the top, middle or bottom of its box, which moves it by a pixel or two at most. | Clip tab ▸ Text ▸ Style ▸ Vertical |
| UPPERCASE | Show the text in capitals without changing what you typed. | Clip tab ▸ Text ▸ Style ▸ UPPERCASE |
| Line spacing | Set the space between lines as a multiple of the font's line height. | Clip tab ▸ Text ▸ Style ▸ Line spacing |
| Tracking | Set the spacing between letters. | Clip tab ▸ Text ▸ Style ▸ Tracking |
| Reset the text style | Reset on the Style section puts colour, alignment, case, line spacing and tracking back to their defaults. | Clip tab ▸ Text ▸ Style ▸ Reset |
| Edit text on the canvas | Double-click a text clip in the preview to type straight into it. | Double-click a text clip in the preview |
| Apply canvas text | Return, keypad Enter or a click elsewhere applies the text and closes the editor. | Return or keypad Enter in the canvas text editor Return |
| New line in canvas text | Return with ⇧, ⌥, ⌘ or ⌃ starts a new line. | ⇧Return, ⌥Return, ⌘Return or ⌃Return in the canvas text editor ⇧Return |
| Leave the canvas editor with Esc | Esc closes an unchanged editor at once. Over changed text, a sheet offers Apply, Revert and Cancel. | Esc in the canvas text editor Esc |
| Input methods in canvas text | While an input method is composing, Return and Esc go to the input method. | Canvas text editor |
| Text presets | One click gives a text clip a font, size, alignment, backdrop and position sized to your canvas. | Clip tab ▸ Text ▸ Presets |
| Title preset | A large centred title. | Clip tab ▸ Text ▸ Presets ▸ Title |
| Subtitle preset | A smaller centred line below the middle. | Clip tab ▸ Text ▸ Presets ▸ Subtitle |
| Lower Third preset | A left-aligned name strap on a plate. | Clip tab ▸ Text ▸ Presets ▸ Lower Third |
| Caption preset | A small caption line near the bottom, on a plate. | Clip tab ▸ Text ▸ Presets ▸ Caption |
| Text Outline | Draw a stroke around the letters. | Clip tab ▸ Text ▸ Outline ▸ Outline |
| Outline Width | Set the outline's thickness. | Clip tab ▸ Text ▸ Outline ▸ Width |
| Outline Color | Set the outline's colour. | Clip tab ▸ Text ▸ Outline ▸ Color |
| Text Backdrop | Put a rounded plate behind the text. | Clip tab ▸ Text ▸ Backdrop ▸ Backdrop |
| Backdrop Fill | Set the plate's colour and opacity. | Clip tab ▸ Text ▸ Backdrop ▸ Fill |
| Backdrop Padding | Set the space between the text and the plate's edge. | Clip tab ▸ Text ▸ Backdrop ▸ Padding |
| Backdrop Radius | Round the plate's corners. | Clip tab ▸ Text ▸ Backdrop ▸ Radius |
| Text Box mode | Choose Auto-size, where the box fits the words, or Fixed width, where the words wrap. | Clip tab ▸ Text ▸ Box ▸ Mode |
| Text Box Width | Set the width the text wraps at. | Clip tab ▸ Text ▸ Box ▸ Width |
| Set the wrap width with the side handles | Drag a text clip's left or right handle on the canvas to set its wrap width. | Drag a text clip's left or right handle on the canvas |
| Text Reveal | Choose how the text arrives and leaves: None, Typewriter, Word Fade or Line Rise. | Clip tab ▸ Text ▸ Reveal ▸ Reveal |
| Typewriter reveal | The text types on, character by character. | Clip tab ▸ Text ▸ Reveal ▸ Reveal ▸ Typewriter |
| Word Fade reveal | Words fade in one after another. | Clip tab ▸ Text ▸ Reveal ▸ Reveal ▸ Word Fade |
| Line Rise reveal | Lines rise into place. | Clip tab ▸ Text ▸ Reveal ▸ Reveal ▸ Line Rise |
| Reveal In and Out durations | Set separate durations for the reveal's arrival and its departure. | Clip tab ▸ Text ▸ Reveal ▸ In, Out |
| Word styles replace the reveal | On a word-styled caption page the Reveal section is greyed, because the word style decides how the words appear. | Clip tab ▸ Text ▸ Reveal |
| Bundled fonts | Frame Job ships open-licensed faces that are always in the Family list. | Clip tab ▸ Text ▸ Font ▸ Family |
| Installed fonts and missing fonts | A text clip can use any font family installed on the Mac, and a project using a font this Mac lacks still opens. | Clip tab ▸ Text ▸ Font ▸ Family |
| Add a shape clip | Click Add Shape in the timeline bar and pick Rectangle, Ellipse, Line or Arrow to add one at the playhead. | Timeline bar ▸ Add Shape ▸ Rectangle, Ellipse, Line, Arrow |
| Rectangle | A rectangle shape clip, and with a corner radius, a rounded rectangle. | Timeline bar ▸ Add Shape ▸ Rectangle |
| Ellipse | An ellipse shape clip that fills its box. | Timeline bar ▸ Add Shape ▸ Ellipse |
| Line | A straight line that starts diagonally across its box, with two ends you can drag. | Timeline bar ▸ Add Shape ▸ Line |
| Arrow | A line with an arrowhead at its end. | Timeline bar ▸ Add Shape ▸ Arrow |
| Resize a shape with the handles | Drag a handle to resize a shape's box, keeping the stroke's thickness. ⇧ frees the aspect ratio on a corner. | Drag a shape's handle on the canvas ⇧-drag |
| Place a shape and add effects | A shape also has a Picture sub-tab for its position, scale, rotation, opacity and effects. | Clip tab ▸ Picture |
| Shape Kind | Switch a shape between Rectangle, Ellipse, Line and Arrow. | Clip tab ▸ Shape ▸ Shape ▸ Kind |
| Shape Width and Height | Set the shape's box in pixels. | Clip tab ▸ Shape ▸ Shape ▸ Width, Height |
| Shape Corner radius | Round a rectangle's corners. | Clip tab ▸ Shape ▸ Shape ▸ Corner radius |
| Shape Stroke | Draw an outline around the shape. | Clip tab ▸ Shape ▸ Stroke ▸ Stroke |
| Stroke Width | Set the stroke's thickness. | Clip tab ▸ Shape ▸ Stroke ▸ Width |
| Stroke Color | Set the stroke's colour. | Clip tab ▸ Shape ▸ Stroke ▸ Color |
| Shape Fill | Fill a rectangle or ellipse with a flat colour. | Clip tab ▸ Shape ▸ Fill ▸ Fill |
| Fill Color | Set the fill's colour. | Clip tab ▸ Shape ▸ Fill ▸ Color |
| Fill Opacity | Set how see-through the fill is. | Clip tab ▸ Shape ▸ Fill ▸ Opacity |
| Arrowheads | Put a head on the start, the end or both ends of an arrow. Heads show only when Kind is Arrow. | Clip tab ▸ Shape ▸ Arrowheads ▸ Arrowhead at start, Arrowhead at end |
| Shape colours don't animate | A shape's kind, stroke, fill, gradient and arrowheads cannot be animated; its position, scale and opacity can. | Clip tab ▸ Shape |
| Change a shape from an agent | An agent can change any of a shape's settings in one call and leave the rest as they are. | |
| Drag a line or arrow endpoint | A selected line or arrow has a round handle at each end that moves that end alone. | Drag a round end handle of a selected line or arrow on the canvas |
| Shape Gradient | Fill a rectangle or ellipse with a colour ramp in place of the flat fill. | Clip tab ▸ Shape ▸ Gradient ▸ Gradient |
| Gradient Kind | Choose a Linear or Radial gradient. | Clip tab ▸ Shape ▸ Gradient ▸ Kind |
| Gradient Angle | Set a linear gradient's direction, from 0 to 360°. | Clip tab ▸ Shape ▸ Gradient ▸ Angle |
| Gradient stops | Each stop has a colour swatch, a position along the ramp and a Remove button. | Clip tab ▸ Shape ▸ Gradient ▸ Stop 1, Stop 2 and so on |
| Add Stop | Add a stop in the middle of the widest gap, in the colour the ramp already has there, so the picture does not change. | Clip tab ▸ Shape ▸ Gradient ▸ Add Stop |
| Place an image on the timeline | Import a picture as you would a movie, then drag it to a track or the canvas. It lands as a five-second clip. | Media tab ▸ drag a picture to a track or the canvas |
| Image clip length | A picture has no length of its own, so an image clip can be trimmed to any duration. | Drag an image clip's edge on the timeline |
| Picture and Color controls on an image clip | An image clip has every Picture section a video clip has but Layout and Cursor, and a Color sub-tab for grading. | Clip tab ▸ Picture |
Effects and keying
| Feature | What it does | Where |
|---|---|---|
| Chroma Key | Remove a background colour, such as a green screen, so what is on the tracks behind shows through. | Clip tab ▸ Picture ▸ Chroma Key ▸ Key out a color |
| Key Color | Choose the colour to remove. | Clip tab ▸ Picture ▸ Chroma Key ▸ Key Color |
| Pick from Canvas | Click the preview to sample the key colour; picking also turns the key on. | Clip tab ▸ Picture ▸ Chroma Key ▸ Pick from Canvas |
| Chroma Key Tolerance | Set how far from the key colour still counts as background. | Clip tab ▸ Picture ▸ Chroma Key ▸ Tolerance |
| Chroma Key Softness | Set how gradual the edge of the key is. | Clip tab ▸ Picture ▸ Chroma Key ▸ Softness |
| Chroma Key Spill | Set how much of the key colour is removed from the soft edges that remain, which takes out a coloured fringe. | Clip tab ▸ Picture ▸ Chroma Key ▸ Spill |
| Remove Background | Keep the person in a video or picture and make the rest transparent, with no green screen, upload or key. | Clip ▸ Remove Background |
| Remove Background Subject | For pictures, choose to keep the person or every foreground subject found, such as a pet or an object. | Clip tab ▸ Picture ▸ Background ▸ Subject: Person, Foreground |
| Background: Remove or Keep | Draw the subject alone, or draw the whole clip and still let another clip go behind the subject. | Clip tab ▸ Picture ▸ Background ▸ Background: Remove, Keep |
| Remove Background Edge | Pull the cut-out outline in or push it out. | Clip tab ▸ Picture ▸ Background ▸ Edge |
| Remove Background Feather | Set how soft the cut-out outline is. | Clip tab ▸ Picture ▸ Background ▸ Feather |
| Why the Background rows are greyed | Subject, Background, Edge and Feather stay greyed until every selected clip has Remove Background on. | Clip tab ▸ Picture ▸ Background |
| Remove Background Status | A read-out says how far the clip's masks have got, and why a clip is drawing whole. | Clip tab ▸ Picture ▸ Background ▸ Status |
| Analyze Now | Ask for the clip's masks again or retry after a failure, while a clip is analysing or has failed. | Clip tab ▸ Picture ▸ Background ▸ Analyze Now |
| Automatic, cached masks | Masks are made on this Mac as soon as Remove Background is on, for the frames the clip plays, and kept in the project's cache. | |
| Clip shows whole until its masks are ready | In the preview, a clip with Remove Background on shows whole until a frame has its mask, then updates by itself. | Preview |
| Remove Background on pictures | A picture's mask is made once on this Mac, from the picture as the preview draws it. | Clip ▸ Remove Background |
| Exports wait for the masks | With Background on Remove, an export draws the subject alone and waits, with no time limit, for every mask it needs. | File ▸ Export… |
| Save Frame waits for the masks | Saving a frame waits up to 30 seconds for the masks it needs, then saves the clip whole and tells you which files were. | File ▸ Save Frame… ⌥⌘E |
| Text Behind Subject | Put a new title behind the person in a camera clip or photo in one step at the playhead. | Insert ▸ Text Behind Subject |
| Behind Subject by hand | Put a title, shape, picture or graphic behind a subject yourself with one checkbox. | Clip tab ▸ Picture ▸ Behind Subject ▸ Behind subject |
| What cuts a clip behind the subject | A clip with Behind subject on is cut, at every moment, by the subject of every cutout clip on a track behind it. | |
| Note when nothing cuts the clip | With one clip selected and Behind subject on, a note says when nothing cuts it at the playhead. | Clip tab ▸ Picture ▸ Behind Subject |
| Drop Shadow | Add a drop shadow cast by the clip's own shape: the picture, a text clip's letters, or a shape's outline and fill. | Clip tab ▸ Picture ▸ Shadow ▸ Drop shadow |
| Shadow Color | Set the shadow's colour. | Clip tab ▸ Picture ▸ Shadow ▸ Color |
| Shadow Opacity | Set the shadow's strength. | Clip tab ▸ Picture ▸ Shadow ▸ Opacity |
| Shadow Blur | Soften the shadow. | Clip tab ▸ Picture ▸ Shadow ▸ Blur |
| Shadow Angle | Set which way the shadow falls. | Clip tab ▸ Picture ▸ Shadow ▸ Angle |
| Shadow Distance | Set how far the shadow falls. | Clip tab ▸ Picture ▸ Shadow ▸ Distance |
| Filter stack | A clip can carry up to four filters. | Clip tab ▸ Picture ▸ Filters |
| Add Filter | Add a Blur at 50 % to the end of the stack, ready to change to the filter you want. | Clip tab ▸ Picture ▸ Filters ▸ Add Filter |
| Filter order | Move a filter by picking a number in its row; the order only changes the picture among Sepia, Noir, Vignette and Invert. | Clip tab ▸ Picture ▸ Filters ▸ number popup |
| Filter kind | Change what a filter does, keeping its amount. | Clip tab ▸ Picture ▸ Filters ▸ kind popup |
| Filter Amount | Set a filter's strength. | Clip tab ▸ Picture ▸ Filters ▸ Amount |
| Remove Filter | Take a filter off the clip. | Clip tab ▸ Picture ▸ Filters ▸ Remove |
| Blur filter | Soften the picture. | Clip tab ▸ Picture ▸ Filters ▸ kind popup ▸ Blur |
| Sharpen filter | Crisp up edges and fine detail. | Clip tab ▸ Picture ▸ Filters ▸ kind popup ▸ Sharpen |
| Pixelate filter | Break the picture into square blocks. | Clip tab ▸ Picture ▸ Filters ▸ kind popup ▸ Pixelate |
| Sepia filter | Give the picture a warm old-photo tone. | Clip tab ▸ Picture ▸ Filters ▸ kind popup ▸ Sepia |
| Noir filter | Turn the picture black and white and add contrast. | Clip tab ▸ Picture ▸ Filters ▸ kind popup ▸ Noir |
| Vignette filter | Darken the picture towards its edges, in an ellipse fitted to the clip's cropped shape. | Clip tab ▸ Picture ▸ Filters ▸ kind popup ▸ Vignette |
| Invert filter | Turn the picture into its negative. | Clip tab ▸ Picture ▸ Filters ▸ kind popup ▸ Invert |
| Filters on adjustment clips | Paste Sepia, Noir, Vignette or Invert onto an adjustment clip, and it applies to everything behind that clip. | Edit ▸ Paste Attributes ⌥⌘V |
| Filters in an action | An action can ramp a filter's Amount; its kind and place switch at the action's end, and adding or removing isn't animated. | Clip tab ▸ Picture ▸ Filters with an action selected |
| Reflection | Hang a mirrored copy of the clip under it, fading out. | Clip tab ▸ Picture ▸ Reflection ▸ Mirror the layer below itself |
| Reflection Opacity | Set how strong the reflection is where it touches the clip. | Clip tab ▸ Picture ▸ Reflection ▸ Opacity |
| Reflection Height | Set how much of the clip is mirrored, as a share of its cropped height. | Clip tab ▸ Picture ▸ Reflection ▸ Height |
| Reflection Gap | Set the space between the clip and its reflection. | Clip tab ▸ Picture ▸ Reflection ▸ Gap |
| Reflection Falloff | Set how far the reflection fades on its way down. | Clip tab ▸ Picture ▸ Reflection ▸ Falloff |
| Spotlight | Dim the clip outside a rectangle or ellipse, and optionally magnify what is inside. | Clip tab ▸ Picture ▸ Spotlight ▸ Spotlight a region |
| Spotlight Shape | Choose a rectangle or an ellipse. | Clip tab ▸ Picture ▸ Spotlight ▸ Shape: Rectangle, Ellipse |
| Spotlight Center | Place the spotlight on the clip's picture, measured from its centre. | Clip tab ▸ Picture ▸ Spotlight ▸ Center X, Center Y |
| Spotlight Size | Set the spotlight's width and height. | Clip tab ▸ Picture ▸ Spotlight ▸ Width, Height |
| Spotlight Feather | Soften the spotlight's edge. | Clip tab ▸ Picture ▸ Spotlight ▸ Feather |
| Spotlight Dim | Set how much darker everything outside the region is. | Clip tab ▸ Picture ▸ Spotlight ▸ Dim |
| Spotlight Zoom | Magnify what is inside the spotlight. | Clip tab ▸ Picture ▸ Spotlight ▸ Zoom |
| Obscure regions | Hide a face, password field or phone number behind up to four blurred or pixelated regions per clip. | Clip tab ▸ Picture ▸ Obscure |
| Add Region | Add a 480 × 270 pixelated region at the centre of the clip. | Clip tab ▸ Picture ▸ Obscure ▸ Add Region |
| Place on Canvas | Drag a rectangle over the selected clip to add a region there. | Clip tab ▸ Picture ▸ Obscure ▸ Place on Canvas |
| Region kind | Choose Pixelate, which destroys the detail, or Blur, which only softens it. | Clip tab ▸ Picture ▸ Obscure ▸ Region N popup |
| Region shape | Choose a rectangle or an ellipse for a region. | Clip tab ▸ Picture ▸ Obscure ▸ Region N ▸ Shape: Rectangle, Ellipse |
| Region Amount | Set how strongly the region hides. | Clip tab ▸ Picture ▸ Obscure ▸ Region N ▸ Amount |
| Region Feather | Ramp the effect in over the region's edge. | Clip tab ▸ Picture ▸ Obscure ▸ Region N ▸ Feather |
| Region Center | Place a region as numbers, in the clip's own pixels from the centre of its picture. | Clip tab ▸ Picture ▸ Obscure ▸ Region N ▸ Center |
| Region Size | Set a region's width and height as numbers. | Clip tab ▸ Picture ▸ Obscure ▸ Region N ▸ Size |
| Remove Region | Take a region off the clip. | Clip tab ▸ Picture ▸ Obscure ▸ Region N ▸ Remove |
| Region grips on the canvas | Move a selected clip's regions and resize them on the preview; hold ⌥ to resize about the centre. | Preview: drag a region's centre cross or handles |
| Animating a region | A region's Amount, Feather, Center and Size can ramp over an action, so it can follow something across the shot. | Clip tab ▸ Picture ▸ Obscure with an action selected |
| Hide While Silent | Fade a clip out in the pauses of a chosen file's speech and back in as it resumes. | Clip tab ▸ Picture ▸ Hide While Silent ▸ Hide while silent |
| Hide While Silent Speech from | Pick which file's speech the clip follows. | Clip tab ▸ Picture ▸ Hide While Silent ▸ Speech from |
| Hide While Silent Pre-roll | Set how long before each run of words the clip is fully back. | Clip tab ▸ Picture ▸ Hide While Silent ▸ Pre-roll |
| Hide While Silent Hold | Set how long the clip stays after each run of words. | Clip tab ▸ Picture ▸ Hide While Silent ▸ Hold |
| Hide While Silent Fade | Set how long the clip takes to fade out and in. | Clip tab ▸ Picture ▸ Hide While Silent ▸ Fade |
| When the followed file stops playing | Where the followed file does not play at all, the clip shows, coming straight back with no fade. | |
| Hide While Silent leaves Opacity alone | The fade only touches the drawn picture, so the clip's own Opacity keeps its value. | |
| The line on the timeline | A teal line runs across a Hide While Silent clip on the timeline: at the top the clip shows, at the bottom it is hidden. | Timeline clip |
Motion and transitions
| Feature | What it does | Where |
|---|---|---|
| Actions | A span of time on one clip over which its properties move to an end state you set, in place of keyframes. | Clip ▸ Add Action ⌥⌘K |
| An action holds its end state | When an action's span is over, the clip keeps the end state until a later action changes it. | |
| Action times are in clip time | An action's times are measured from the clip's own start, not from the start of the timeline. | |
| Several actions on one clip | A clip can have as many actions as fit end to end, and they run in time order, each starting from the state the earlier ones left behind. | |
| Action numbers | Actions are numbered in time order, and the number is the same on the timeline and in the Clip tab. | |
| Easing curves | Four curves set how a value moves across an action or a transition: Linear, Ease In, Ease Out and Ease In Out. | Clip tab ▸ action lane ▸ detail row ▸ Curve |
| Default action curves | A new action from Add Action is Linear, and a zoom action is Ease In Out. | |
| Numbers ramp along the curve | Numbers such as position, scale, opacity, volume and a grade's sliders move smoothly along the action's curve. | |
| Switches, pop-ups and text change at the end | An on/off box, a filter's kind, a font or a graphic's text or image holds its value, then switches when the action ends. | Clip tab, with an action selected |
| Lists ramp entry by entry | Filter and obscure-region lists ramp entry by entry while both ends have the same number of entries. | |
| Animate picture properties | An action can animate almost every value in the Picture sub-tab, from transform and crop to shadow, spotlight and filter amounts. | Clip tab ▸ Picture with an action selected |
| Animate colour properties | An action can animate Light, Color, Wheels, Curves and the Look amount, and on an adjustment clip its Strength and the Qualifier. | Clip tab ▸ Color with an action selected |
| Animate sound properties | An action can animate the Sound sub-tab's Volume and Fades sections and every audio setting except the few that never animate. | Clip tab ▸ Sound with an action selected |
| Animate text properties | An action can animate the Text sub-tab's style, size and colours. | Clip tab ▸ Text sub-tab with an action selected |
| Animate speed | An action can change a media clip's playback rate, which makes a speed ramp, and hold the new rate after it ends. | Clip tab ▸ Clip ▸ Speed ▸ Rate with an action selected |
| What never animates | Some rows change the clip itself whatever is selected, such as Motion presets and Ducking, and most are marked ⊘. | Clip tab rows marked ⊘ |
| Colours blend in OKLab | Colours that ramp blend through OKLab, which keeps the midpoints even and avoids the muddy middle of a straight RGB blend. | |
| Add Action | Add a 1-second action at the playhead on the selected clip, selected and ready to edit. | Clip ▸ Add Action ⌥⌘K |
| A new action starts empty | A new action's end state is empty, so it changes nothing until you edit it. | |
| When Add Action is available | Add Action needs the playhead over a selected clip: the menu item greys out otherwise, and the lane's + button beeps. | Clip ▸ Add Action |
| Add Action with several clips selected | With several clips selected, the action goes on the first selected clip under the playhead and is not selected. | |
| When there's no room for an action | Frame Job beeps and adds nothing when the action would overlap another action or run past the clip's end. | |
| Other commands that make actions | Zoom to Region, Speed Ramp, Auto Zoom, Follow Subject, Camera Layout and the volume line all make ordinary actions you can edit. | |
| Click a band to select an action | Click a band on the timeline or in the action lane to select its action, and the playhead moves to the action's end. | A band on the timeline, or Clip tab ▸ action lane |
| Adding an action selects it | An action made with Add Action, Zoom to Region or Zoom Back is selected as it is added. | |
| Play or scrub into an action | Playing or scrubbing the playhead into an action's span selects it while its clip is the only one selected. | Move the playhead into an action's span |
| How a selected action looks | The selected action's band is solid, a wash runs down the clip under its span, and the span is shaded on the ruler. | Timeline |
| The Clip chip | Highlighted while no action is selected. Click it to leave the action, so the fields edit the clip again. | Clip tab ▸ action lane ▸ Clip chip |
| Leave an action | Press Esc, click the Clip chip or select a different clip to deselect an action, so the Clip tab shows the clip's own values again. | Esc Esc |
| Selecting is not an edit | Selecting an action is not an undo step and is not saved with the project. | |
| Edit an action's end state | While an action is selected, every field in the Clip tab shows and sets the values the clip reaches at the action's end. | Clip tab with an action selected |
| Edit an action's end state on the canvas | With an action selected, moving, scaling, rotating or cropping on the canvas edits that action's end state instead of the clip. | The canvas, with an action selected |
| Switch a property off at an action's end | Untick a switch inside an action, such as Drop shadow or Outline, and that property turns off when the action ends. | Clip tab checkbox with an action selected |
| Set an action's end state as an agent | An agent sets an action's end state with set_action_end, and what it sends merges into what the action already holds. | |
| Row marks | A narrow gutter on each Clip tab row shows how it relates to the selected action. | Clip tab row gutter |
| The "at end" tag | A control that can't blend, such as a pop-up or a checkbox, says "at end": it holds until the action's end, then switches. | Clip tab row |
| Sliders inside an action | A slider's rail fills in the action colour from the action's start value to the knob, and a coral tick marks the playhead's value. | Clip tab slider |
| The "now …" tag | A row with no slider shows the value at the playhead in a coral tag, such as "now 1.50×". | Clip tab field |
| Section header marks | Section headers carry the same marks as rows, with a ◆N count, and a section where every row is ⊘ says so. | Clip tab section header |
| Clear a section from an action | Click Clear in a section's header to take that whole section out of the selected action. | Clip tab section header ▸ Clear |
| Sub-tab ◆N counts | Each sub-tab's label shows ◆N when the selected action animates N things on it. | Clip tab sub-tab strip |
| Animated sections open by themselves | Selecting an action opens the sections it animates on the current sub-tab, for as long as that action stays selected. | Clip tab |
| Take a property out of an action | Hover over a ◆ and click the × that replaces it to take that row out of the selected action. | Clip tab row ▸ ◆ ▸ × |
| The row menu | Right-click an inspector row to take it out of the action, go to the action that animates it, or put it back to its default. | Right-click a row in the Clip tab |
| Drag a band to move an action | Drag a band's body on the timeline or in the action lane to move the action within its clip. | A band on the timeline, or Clip tab ▸ action lane |
| Drag a band's grips to resize an action | Drag either end of a band to move that end of the action. The 5 pt grips show on hover. | A band on the timeline, or Clip tab ▸ action lane |
| What a band drag stops at | A band drag snaps to whole frames, keeps the action at least one frame long, and stops at neighbouring actions and the clip's ends. | |
| The drag readout | While you drag, a readout gives the band's new times and offset, or the change in length in frames. | During a band drag |
| Drag in the Clip tab's lane | The Clip tab's lane moves and resizes bands the same way as the timeline, and selects the action when you let go. | Clip tab ▸ action lane |
| Zero-length actions | A zero-length action shows only in the Clip tab's lane, where you can select it but not drag it. | Clip tab ▸ action lane |
| Action Start | Type where the action starts, as a timecode measured from the clip's own start. | Clip tab ▸ action lane ▸ detail row ▸ Start |
| Action Length | Type how long the action takes, in seconds, snapped to whole frames. | Clip tab ▸ action lane ▸ detail row ▸ Length |
| Action Curve | Pick how the action eases from its start to its end state, with a small glyph of the curve beside the pop-up. | Clip tab ▸ action lane ▸ detail row ▸ Curve |
| Change an action as an agent | Agents move an action, change its length or change its curve with set_action. | |
| Why an action edit didn't work | When Frame Job won't take a typed Start, Length or end value, it beeps and gives the reason at the foot of the inspector. | Foot of the inspector |
| Remove an action | With an action selected, press ⌫ or click the trash button in the action lane to remove only the action, not the clip. | Edit ▸ Delete, with an action selected ⌫ |
| Ripple Delete still deletes the clip | ⌘⌫ deletes the whole selected clip and closes the gap, even while an action is selected. | Edit ▸ Ripple Delete ⌘⌫ |
| Action bands on the timeline | Each clip that has an action shows an action lane directly under its name strip, with one numbered band per action. | Timeline, under the name strip |
| What a band shows at each track height | How much a band shows depends on View ▸ Timeline Track Height. | View ▸ Timeline Track Height |
| Band hover | Pointing at a band highlights it and shows its grips. | Hover a band on the timeline or in the Clip tab's lane |
| The Clip tab's action lane | A small timeline of the selected clip in the Clip tab shows the Clip chip, its actions as numbered bands in time order, and the playhead. | Clip tab ▸ action lane |
| The lane's header row | The header shows ACTIONS, the count or "none", "· editing N" while action N is selected, and three buttons. | Clip tab ▸ action lane ▸ header row |
| Transition, fades and motion in the lane | Under the bands the lane draws the clip's hatched transition overlap, its audio fades and its motion wedges, the same marks the timeline draws. | Clip tab ▸ action lane |
| The lane's detail row | Shown only while an action is selected, with Start, Length, Curve and the trash button. | Clip tab ▸ action lane ▸ detail row |
| The lane with several clips selected | With several clips selected the lane reads "Select one clip to edit its actions." | Clip tab ▸ action lane |
| Trimming and actions | Trimming a clip's start keeps its actions' clip time, and trimming its end leaves them in place, so one can run past the new end. | Timeline |
| Slip, Roll and actions | Slip and Roll leave actions where they are in clip time. | Timeline |
| Speed changes and actions | Changing the speed or rate-stretching keeps a clip's actions at their place as a fraction of the clip. | Clip ▸ Speed… |
| Splitting and actions | On a split, actions after the cut go to the second half, and one that spans the cut is divided between the halves. | Clip ▸ Split ⌘T |
| Adding a transition and actions | Adding a transition at a hard cut moves the incoming clip's actions with its new first frame, so a zoom stays on the frame it was drawn over. | |
| Copies keep their actions | Duplicate, Copy and Paste give copies that keep their actions. | Edit ▸ Duplicate ⌘D |
| Nesting keeps actions | Nested clips keep their actions inside the nest. | |
| Freeze Frame bakes actions | A freeze frame's still has no actions, and the look at the frozen frame is baked into its own properties. | Clip ▸ Freeze Frame ⇧⌘F |
| Blurred Background has no actions | The backdrop copy has no actions, so a zoom on the foreground doesn't zoom the backdrop. | Clip ▸ Add Blurred Background |
| Paste Attributes skips actions | Paste Attributes does not copy actions. | Edit ▸ Paste Attributes ⌥⌘V |
| What keeps or drops motion presets | Freeze Frame and Add Blurred Background drop a clip's motion presets, while Duplicate, Detach Audio and Paste keep them. | |
| Properties a graphic no longer has | When a graphic's module changes, a property it no longer has or lets animate shows dimmed, with ⌫ to take it out of the action. | Clip tab ▸ Graphic ▸ Properties ▸ ⌫ |
| Zoom to Region | Draw a rectangle on the picture and the clip zooms so that rectangle fills the frame: the screencast zoom, added as an action. | Clip tab ▸ action lane ▸ zoom-in magnifier Z |
| The canvas hint and outline | While you draw, a hint gives the keys and a second outline shows exactly what the canvas will show once the zoom lands. | Canvas, in Zoom to Region mode |
| Fit or fill | By default the whole rectangle is shown; hold ⇧ while dragging to fill the canvas instead. | ⇧ while dragging in Zoom to Region mode ⇧ |
| The scale limit | The zoom stops at 1,000%, the largest scale a layer can take, and the rectangle stays centred even then. | |
| Leaving Zoom to Region | Press Esc, press Z again or click the zoom-in magnifier again to leave the mode. | Esc Esc |
| Which clip can be zoomed | The mode needs exactly one selected clip drawn at the playhead and not on a locked track; otherwise Z beeps. | Z Z |
| A zoom on a clip with a During preset | On a clip with a During preset, a second hint warns that the zoom is worked out without it, so the rectangle won't sit exactly in place. | Canvas, in Zoom to Region mode |
| Zoom Back | Add a 1-second Ease In Out action back to the clip's own scale and position, to pull out after a zoom. | Clip tab ▸ action lane ▸ zoom-out magnifier |
| Auto Zoom | Clip ▸ Auto Zoom… plans these same zoom actions for a screen recording from its cursor file. | Clip ▸ Auto Zoom… |
| Motion presets | Give a clip a ready-made entrance, exit or continuous movement tied to its two ends, so it moves with a trim. | Clip tab ▸ Clip ▸ Motion presets |
| Motion sits on top of placement | Motion is applied on top of the clip's own placement and any actions, relative to the clip. | |
| The inspector shows un-moved values | The Clip tab's fields show the clip's own, un-moved values, even though the preview and export show it moving. | Clip tab |
| The Motion presets section | The section at the end of the Clip sub-tab holds In, In Duration, Out, Out Duration, During, Amount, Period and Preview. | Clip tab ▸ Clip ▸ Motion presets |
| In | Choose how a clip enters, or None. | Clip tab ▸ Clip ▸ Motion presets ▸ In |
| In Duration | Set how long the entrance takes, from 0.1 to 10 s. | Clip tab ▸ Clip ▸ Motion presets ▸ In Duration |
| Out | Choose how a clip leaves, or None. | Clip tab ▸ Clip ▸ Motion presets ▸ Out |
| Out Duration | Set how long the exit takes, from 0.1 to 10 s. | Clip tab ▸ Clip ▸ Motion presets ▸ Out Duration |
| The Clip ▸ Motion menu | Each of In, Out and During lists its kinds, then None to clear the slot, and works on every selected clip that has a picture. | Clip ▸ Motion |
| Changing a kind keeps its settings | Changing a slot's kind keeps the duration, amount and period it already had. | |
| Reset | The section's Reset clears all three slots on every selected clip. | Clip tab ▸ Clip ▸ Motion presets ▸ Reset |
| Presets across several clips | With several clips selected, a change to one slot leaves each clip's other slots as they were. | |
| Preview | Set the in/out range to the clip, turn Loop on and play it, so you can watch its motion. | Clip ▸ Motion ▸ Preview |
| Set presets as an agent | Agents set or clear a clip's motion presets through set_video. | |
| Motion marks on the timeline | Small marks on a clip's name strip show its active motion: a wedge at each end for an In or Out, and a wave symbol for a During. | Timeline clip name strip |
| Overlong presets shorten | When In and Out together outlast the clip, both shorten in proportion, so the entrance ends on the frame where the exit begins. | |
| Inactive presets | An In or Out with zero duration, which can come from an agent, is kept but does nothing, and is marked so you can fix it. | Clip tab ▸ Clip ▸ Motion presets |
| Presets are not part of an action | Motion rows are marked ⊘ and always change the clip, even with an action selected. | |
| Splitting a clip with presets | A split gives the first half no Out and the second half no In, so the cut doesn't play an exit and an entrance. | |
| Speed changes leave presets alone | Changing the speed doesn't rescale a clip's motion presets. | |
| Dragging during motion | A canvas drag started mid-motion starts from the clip's un-moved position. | |
| How In and Out relate | The same nine kinds fill both slots as a pair, not a rewind: an In slows as the clip arrives, and an Out speeds up as it leaves. | |
| Fade | Fades the clip in or out. | Clip tab ▸ Clip ▸ Motion presets ▸ In or Out |
| Zoom In | Grows the clip while fading it, from 60% on the way in and to 140% on the way out. | Clip tab ▸ Clip ▸ Motion presets ▸ In or Out |
| Zoom Out | Shrinks the clip while fading it, from 140% on the way in and to 60% on the way out. | Clip tab ▸ Clip ▸ Motion presets ▸ In or Out |
| Slide Left | Moves the clip leftward as it arrives or leaves. | Clip tab ▸ Clip ▸ Motion presets ▸ In or Out |
| Slide Right | Moves the clip rightward as it arrives or leaves. | Clip tab ▸ Clip ▸ Motion presets ▸ In or Out |
| Slide Up | Moves the clip upward as it arrives or leaves. | Clip tab ▸ Clip ▸ Motion presets ▸ In or Out |
| Slide Down | Moves the clip downward as it arrives or leaves. | Clip tab ▸ Clip ▸ Motion presets ▸ In or Out |
| Spin (In and Out) | Makes half a turn clockwise as the clip arrives or leaves, scaling between 30% and full size and fading. | Clip tab ▸ Clip ▸ Motion presets ▸ In or Out |
| Pop | Springs the clip past full size as it arrives or leaves. | Clip tab ▸ Clip ▸ Motion presets ▸ In or Out |
| Slides measure the drawn layer | A slide measures the layer as it is drawn, so it starts or ends exactly off the edge of the canvas, or of the nest it is inside. | |
| Slides on text clips | A text clip has no measured size, so a slide starts or ends half a canvas past the edge, which clears any text narrower than the canvas. | |
| During | Choose what a clip does all the way through, or None. | Clip tab ▸ Clip ▸ Motion presets ▸ During |
| Amount | Set how strong the During movement is, from 0 to 100%. | Clip tab ▸ Clip ▸ Motion presets ▸ Amount |
| Period | Set how long one During cycle takes, from 0.1 to 10 s. | Clip tab ▸ Clip ▸ Motion presets ▸ Period |
| Pulse | Gently grows and shrinks once per period. | Clip tab ▸ Clip ▸ Motion presets ▸ During |
| Shake | Jitters in a pattern that never visibly repeats. | Clip tab ▸ Clip ▸ Motion presets ▸ During |
| Spin (During) | Turns clockwise without stopping. | Clip tab ▸ Clip ▸ Motion presets ▸ During |
| Bounce | Hops upward once per period. | Clip tab ▸ Clip ▸ Motion presets ▸ During |
| Drift | A slow push-in across the whole clip. | Clip tab ▸ Clip ▸ Motion presets ▸ During |
| During starts from the clip's placement | Every During movement starts from the clip's own placement on its first frame. | |
| During runs under In and Out | A During movement runs under the In and Out, so a clip can slide in while it pulses. | |
| During restarts at each cut | A During movement restarts at each cut, so Remove Silences on a clip with Pulse or Drift can make it jump at the cuts. | |
| Motion Blur | Blur a moving clip along its path, set as the shutter's share of one frame. | Clip tab ▸ Picture ▸ Transform ▸ Motion Blur |
| The same in preview and export | The blur is the same in the preview, Save Frame, every export and a frame an agent renders. | |
| Motion Blur animates | Motion Blur can change inside an action, so a blur can ramp in and out. | Clip tab ▸ Picture ▸ Transform ▸ Motion Blur, with an action selected |
| Motion blur with blend modes | A blended clip blends its averaged picture once, so a screened clip screens its blurred picture over what is under it. | |
| Where motion blur stays sharp | A clip in a transition, on a matte track, cut by Text Behind Subject or with a drop shadow draws sharp, whatever the row says. | |
| No motion blur on nests or adjustment clips | The row is greyed on a nest clip, so set the blur on the clips inside. An adjustment clip has no Picture sub-tab, so no row. | Clip tab ▸ Picture ▸ Transform ▸ Motion Blur |
| Transitions | A transition plays across the overlap between two clips on the same track. | Clip ▸ Transition ▸ |
| The overlap rules | Clips on a track overlap only as a transition: at most one neighbour on each side, and at most half the shorter clip. | Timeline |
| Overlapping two clips adds a Cross Dissolve | When an edit makes a clip overlap the one before it, with no transition stored, Frame Job adds an eased, crossfading Cross Dissolve. | Drag a clip onto its neighbour |
| An overlap with no stored transition | Choosing None keeps the overlap, which blends as a linear cross dissolve with no hatch and no sound crossfade until the next move or trim. | Clip tab ▸ Clip ▸ Transition |
| The transition zone on clips | The overlap between two clips draws as a hatched zone across the cut, with the transition's name in it when the word fits. | Timeline |
| A transition needs an overlap | A transition stored on a clip that overlaps nothing does nothing until there is an overlap. | |
| Cross Dissolve | The outgoing clip fades into the incoming one. | Clip ▸ Transition ▸ Cross Dissolve |
| Fade Through Black | The outgoing clip fades to black over the first half, then the incoming one fades up from black over the second half. | Clip ▸ Transition ▸ Fade Through Black |
| Fade Through White | The outgoing clip fades to white, then the incoming one fades up from white. | Clip ▸ Transition ▸ Fade Through White |
| Push Left | Both clips move: the outgoing leaves to the left as the incoming pushes in from the right. | Clip ▸ Transition ▸ Push Left |
| Push Right | The outgoing leaves to the right and the incoming comes in from the left. | Clip ▸ Transition ▸ Push Right |
| Push Up | The outgoing leaves upward and the incoming comes up from the bottom. | Clip ▸ Transition ▸ Push Up |
| Push Down | The outgoing leaves downward and the incoming comes down from the top. | Clip ▸ Transition ▸ Push Down |
| Wipe | An edge sweeps left to right, revealing the incoming clip. | Clip ▸ Transition ▸ Wipe |
| Slide | The incoming clip slides in from the right over the outgoing one, which stays put. | Clip ▸ Transition ▸ Slide |
| Zoom | The outgoing clip grows toward you to 125% while the incoming one grows into place from 75%, and the two dissolve into each other. | Clip ▸ Transition ▸ Zoom |
| Wipe Left | An edge sweeps right to left. | Clip ▸ Transition ▸ Wipe Left |
| Wipe Up | An edge sweeps upward. | Clip ▸ Transition ▸ Wipe Up |
| Wipe Down | An edge sweeps downward. | Clip ▸ Transition ▸ Wipe Down |
| Wipes on clips of different sizes | A wipe's edge is measured in each clip's own frame, so two clips of different sizes don't meet at one line. | |
| Fades through a colour on small layers | On a picture-in-picture, a fade through a colour shows a black or white box over what's behind it, not a see-through fade. | |
| The Clip ▸ Transition menu | Apply a chosen style to every selected clip at once. | Clip ▸ Transition ▸ |
| Restyle an existing overlap | A clip that already overlaps the clip before it gets the chosen style, keeping its curve and crossfade. | Clip ▸ Transition ▸ |
| A transition at a hard cut | A clip that starts where the previous one ends gets a half-second overlap centred on the cut, from footage the clips aren't showing. | Clip ▸ Transition ▸ |
| Clips that are skipped | A clip after a gap, or the first clip on its track, is skipped by Clip ▸ Transition. | Clip ▸ Transition ▸ |
| When there is no footage to spare | When two clips use their whole files, Clip ▸ Transition shows a sheet offering to make the overlap another way. | Clip ▸ Transition ▸ |
| Shift Clips Left | Make the overlap by sliding the second clip, and everything after it on unlocked tracks, left by half a second. | No-extra-footage sheet ▸ Shift Clips Left |
| Set or clear a transition as an agent | Agents set a style on a clip that already overlaps, or clear it, with set_transition. | |
| Remove a transition | Choose None to remove the stored transition. The overlap stays, so move or trim the clips to get a hard cut back. | Clip ▸ Transition ▸ None |
| The Transition section | An inspector section on the Clip sub-tab, shown when a single selected clip overlaps the clip before it. | Clip tab ▸ Clip ▸ Transition |
| Kind | Choose how a clip meets the one before it where they overlap, or None. | Clip tab ▸ Clip ▸ Transition ▸ Kind |
| Curve | Choose how the transition's progress is eased. | Clip tab ▸ Clip ▸ Transition ▸ Curve |
| Duration | Set the overlap's length, from 0.02 to 10 s, which moves the later clip to match. | Clip tab ▸ Clip ▸ Transition ▸ Duration |
| Transition alignment | A new overlap is centred on the cut, and an agent can take its footage from one side instead. | |
| Default transition values | A transition Frame Job makes is eased with Ease In Out and crossfades its sound. |
Speed
| Feature | What it does | Where |
|---|---|---|
| Which clips take speed | Speed…, Fit to, rate stretch, ramps, Reverse and Freeze Frame need a video or audio clip; only Retime Range also reaches other clips. | |
| Rate range ×0.1 to ×1000 | A clip can play anywhere from a tenth of normal speed to a thousand times normal. | Clip ▸ Speed… |
| Speed limits at a glance | A clip keeps its sound up to ×12, rates run from ×0.1 to ×1000, and a freeze frame lasts 2 s. | |
| The Speed sheet | Clip ▸ Speed… sets the playback rate of the selected media clips and shows the result before you apply it. | Clip ▸ Speed… |
| Speed sheet: Rate | Type the playback rate as a number: 1 is normal, 2 is twice as fast, 0.5 is half speed. | Clip ▸ Speed… ▸ Rate |
| Speed sheet: Presets | A pull-down that fills in Rate with a common speed. | Clip ▸ Speed… ▸ Presets |
| Speed sheet: the readout | A readout shows the clip count, the total length before and after, each transition affected, and a note for ramped clips. | Clip ▸ Speed… |
| Speed sheet: Apply | Apply sets the rate on every listed clip as one undo step, Set Speed. | Clip ▸ Speed… ▸ Apply |
| A speed change keeps the clip's start | A constant speed change keeps the clip's start and changes its length, so a faster clip can leave a gap that later clips do not close. | Clip ▸ Speed… |
| A slowed clip overlapping the next clip | A slowed clip that runs into the next gives that clip a transition across the overlap, or keeps its old speed if the overlap isn't allowed. | Clip ▸ Speed… |
| Fit to | Type a length in the Speed section and the rate changes so the clip plays in that time, within the ×0.1 to ×1000 limits. | Clip tab ▸ Clip ▸ Speed section ▸ Fit to |
| The new length snaps to a whole frame | After a speed change the clip's length snaps to a whole frame and never runs past the end of the file at the new rate. | Clip ▸ Speed… |
| When Fit to is unavailable | Fit to changes the whole clip even with an action selected, shows only for media clips, and won't change a clip linked to detached sound. | Clip tab ▸ Clip ▸ Speed section ▸ Fit to |
| The Speed section | When every selected clip is a media clip, the Clip tab's Clip sub-tab has a Speed section holding Rate, Keep pitch and Fit to. | Clip tab ▸ Clip ▸ Speed section |
| Speed section: Rate | Sets the rate, from ×0.1 to ×1000, on every selected media clip. A value past a limit is set to the nearest limit. | Clip tab ▸ Clip ▸ Speed section ▸ Rate |
| Speed section: Rate quick picks | The chevron at the end of the Rate field opens a menu of 0.50×, 1.00×, 2.00× and 4.00×. | Clip tab ▸ Clip ▸ Speed section ▸ the chevron on Rate |
| Speed section: Keep pitch | The same setting as the Speed sheet's Preserve pitch, on every selected media clip. It also brings them all to the first clip's rate. | Clip tab ▸ Clip ▸ Speed section ▸ Keep pitch |
| Speed section: Reset | Reset in the section header sets the rate back to ×1. | Clip tab ▸ Clip ▸ Speed section ▸ Reset |
| Rate inside an action | While an action is selected, Rate shows and sets the rate that action ends on, which turns any action into a Speed action. | Clip tab ▸ Clip ▸ Speed section ▸ Rate |
| Clear a rate from an action | Take the rate out of an action, and keep the action, with the header's Clear, the row's × on hover, or right-click Remove from action N. | Clip tab ▸ Clip ▸ Speed section ▸ Clear |
| Keep pitch and Fit to stay the clip's in an action | Keep pitch and Fit to change the clip itself even with an action selected, so they're marked ⊘ and never animate. | Clip tab ▸ Clip ▸ Speed section |
| Rate stretch | Hold ⌥ and drag a media clip's end edge to change its length by changing its speed, so it still plays all of the source it showed. | Timeline: ⌥-drag a media clip's end edge ⌥-drag |
| Rate stretch snapping | A rate stretch snaps like any other edge drag; hold ⌘ to turn snapping off. | Timeline: ⌥-drag a media clip's end edge ⌘ while dragging |
| Which edges and clips stretch | Only the end edge of a media clip stretches; every other case falls back to an ordinary trim or does nothing. | Timeline: ⌥-drag |
| Rate stretch of a ramped clip | On a clip with a speed ramp the whole ramp stretches with the clip and keeps its shape. | Timeline: ⌥-drag end edge |
| Keep pitch | A per-clip setting, on by default, that decides whether sound keeps its own pitch at a new speed or follows the speed like tape. | Clip tab ▸ Clip ▸ Speed section ▸ Keep pitch |
| Speed sheet: Preserve pitch | Keeps the sound at its own pitch at the new speed; off, the pitch rises and falls with the speed. | Clip ▸ Speed… ▸ Preserve pitch |
| Tape-pitch audio is rendered in the background | With Keep pitch off at any rate but ×1, up to ×12, the clip's sound is rendered first, so it's silent in the preview until that finishes. | Clip tab ▸ Clip ▸ Speed section ▸ Keep pitch |
| Sound is left out above ×12 | A clip played faster than ×12 goes silent in the preview and the export while its picture keeps playing, and Frame Job asks first. | Clip ▸ Speed… |
| The ×12 rule on ramped clips | On a ramped clip, one rate above ×12 anywhere in the ramp silences the whole clip, not only the fast part. | |
| The ×12 alert | Before an edit takes a clip with sound from ×12 or below to above ×12, an alert asks first. | |
| ×12 alert: Set Speed | Makes the edit exactly as you asked, and keeps this name when the edit is a ramp or a stretch. | ×12 alert ▸ Set Speed |
| ×12 alert: Cancel | Changes nothing and adds no undo step, and a sheet that asked stays open. | ×12 alert ▸ Cancel |
| Where the ×12 alert appears | The alert can come from the Speed, Speed Ramp, Retime Range and Speed Up Typing sheets, the Speed section and the ⌥ rate stretch. | |
| The silent audio note | The Speed section shows "Audio is silent above ×12" when a selected clip with sound is past the audio limit. | Clip tab ▸ Clip ▸ Speed section |
| Agents and the ×12 limit | An agent is never asked: its edit goes through, and the result lists the clips that went silent. | |
| Speed ramps | A clip's rate can change over time, for example ×1 up to ×4 over half a second, a hold, then back down. | Clip ▸ Speed Ramp… |
| Speed actions | A ramp is made of ordinary actions on the clip's action lane whose end sets a rate. | Action lane |
| A ramped clip keeps its place and length | A ramp changes how much of the file plays, not the clip's start, its end or the clips around it. | Timeline |
| The rate line | A white line across the action lane draws the clip's rate over its length, higher where it plays faster. | Timeline action lane |
| The speed band label | At the Large track height, a Speed action's band on the timeline is labelled speed. | Timeline action lane |
| A ramp never plays past the media's end | An edit that would make a ramp play past the end of the file isn't made, and the reason says what would fit. | Clip tab ▸ Clip ▸ Speed section |
| The Speed Ramp sheet | Clip ▸ Speed Ramp… makes a whole ramp in one step on one selected media clip, out of ordinary Speed actions. | Clip ▸ Speed Ramp… |
| The span a ramp covers | The ramp covers the timeline's in/out range if it lies entirely inside the clip, otherwise the whole clip. | Clip ▸ Speed Ramp… |
| Speed Ramp sheet: Shape | Picks one of the four shapes; choosing a shape resets Rate to that shape's default. | Clip ▸ Speed Ramp… ▸ Shape |
| Ramp Up | One action over the span, rising from the current rate to the target and holding it after. | Clip ▸ Speed Ramp… ▸ Shape |
| Ramp Down | One action over the span, falling to the target and holding it after. | Clip ▸ Speed Ramp… ▸ Shape |
| Speed Dip | Two actions: a ramp down to the target at the start of the span, a hold, and a ramp back to the starting rate at its end. | Clip ▸ Speed Ramp… ▸ Shape |
| Speed Burst | Two actions: a ramp up to the target at the start of the span, a hold, and a ramp back to the starting rate at its end. | Clip ▸ Speed Ramp… ▸ Shape |
| Speed Ramp sheet: Rate | The target rate the ramp reaches, from ×0.1 to ×1000, with the same Presets as the Speed sheet. | Clip ▸ Speed Ramp… ▸ Rate |
| Speed Ramp sheet: Curve | How each new action eases: Ease In Out or Linear. | Clip ▸ Speed Ramp… ▸ Curve |
| Speed Ramp sheet: Hold | For Speed Dip and Speed Burst, how much of the span stays at the rate: None, 25%, 50% or 75%. | Clip ▸ Speed Ramp… ▸ Hold |
| Speed Ramp sheet: the live readout | The sheet tries the ramp on every change, including each keystroke in Rate, and shows the shape, the span and the rates it would make. | Clip ▸ Speed Ramp… |
| Speed Ramp sheet: Apply | Adds the actions as one undo step named after the shape, for example Speed Dip. | Clip ▸ Speed Ramp… ▸ Apply |
| When Speed Ramp's Apply is unavailable | Apply is dimmed if the span overlaps an action or is too short, the rate is on the wrong side, the clip is linked, or the file runs out. | Clip ▸ Speed Ramp… |
| Build a ramp by hand | Add actions at the playhead and give each an end rate to shape a ramp one change at a time. | Clip ▸ Add Action ⌥⌘K |
| Move and resize a Speed action | Drag the band on the action lane to move it, or drag its edges to resize it. | Action lane: drag the band |
| Speed action curve | Choose how an action eases, Linear, In, Out or In Out, in the detail row under the Clip tab's action lane. | Clip tab ▸ action lane detail row ▸ curve pop-up |
| The playhead selects the action | With one clip selected, playing or scrubbing into an action selects it. | Timeline |
| Back to editing the clip | Press Esc, or choose the Clip chip on the Clip tab's action lane, to go back to editing the clip itself. | Clip tab ▸ action lane ▸ Clip chip Esc |
| Splitting inside a Speed action | A split inside a Speed action keeps the picture continuous at the cut, with no repeated or skipped frame. | Clip ▸ Split |
| Scaling a whole ramp | Speed…, Rate with no action selected, Fit to, the ⌥ rate stretch and Retime Range scale a whole ramp by one factor, keeping its shape. | Clip ▸ Speed… |
| Edits follow the ramp | Trims, slips, rolls, splits, freeze frames and transitions read the ramp, so each lands on the frame actually playing at that moment. | Timeline |
| Filmstrip and waveform follow the ramp | A ramped clip's filmstrip and waveform on the timeline follow the ramp. | Timeline |
| A Speed action past the clip's end | An action left past the clip's end stays on it and still counts for ×12. While its band shows, you can change its curve, move or shorten it. | Action lane |
| When a ramp edit can't be made | Nothing changes, and the reason shows at the foot of the inspector, or in the Speed Ramp sheet's readout. | The foot of the inspector |
| Rendered audio | Ramped clips, and constant clips at any rate but ×1 with Keep pitch off, have their sound rendered in the background. | |
| Undo and redo render again | Undo and redo usually render the clip's sound again, because the older file is dropped, so the clip is briefly silent then too. | Edit ▸ Undo, Edit ▸ Redo |
| Ramp sound with Keep pitch off | The sound glides smoothly up and down in pitch with the rate, like tape, and stays in step with the picture. | Clip tab ▸ Clip ▸ Speed section ▸ Keep pitch |
| Ramp sound with Keep pitch on | The sound keeps its own pitch as the speed changes. After a steep slow-down it can run up to about 24 ms behind the picture. | Clip tab ▸ Clip ▸ Speed section ▸ Keep pitch |
| Silent in the preview while rendering | While a clip's sound is still rendering, that clip plays silent in the preview. | Preview |
| Exports wait for rendered audio | An export waits for every render it needs and never writes that sound silent. The Exporting sheet reads Preparing during the wait. | The Exporting sheet |
| A failed audio render | If a render fails, an export that needs it fails naming the clip, and the clip stays silent until its timing changes or Frame Job is reopened. | |
| Captions follow a speed change | When a clip with sound changes speed, or a Speed action on it changes, the captions over it move with its speech in the same undo step. | Clip ▸ Speed… |
| Which captions move | Only text clips on an unlocked, text-only track named Captions or Captions N, lying wholly inside the edited clip, are re-timed. | Timeline |
| Speech the clip no longer plays | A caption whose speech the clip no longer reaches is removed; a word caption page only partly reached keeps the words that still play. | Timeline |
| Moved captions and their neighbours | A moved caption is cut back where it would run into a caption that did not move. | Timeline |
| Retime Range | Clip ▸ Retime Range… plays the In–Out range faster or slower on every unlocked track at once and moves everything after Out to stay in step. | Clip ▸ Retime Range… |
| Retime Range inside a nest | Retime Range works inside a nest, where it retimes the nest's own tracks. | Clip ▸ Retime Range… |
| Retime Range sheet: Rate | How much faster the range plays, from ×0.1 to ×1000, starting at ×2, with the Speed sheet's presets. | Clip ▸ Retime Range… ▸ Rate |
| Retime Range sheet: Preserve pitch | Sets the pitch setting on every video or audio clip in the range. | Clip ▸ Retime Range… ▸ Preserve pitch |
| Retime Range sheet: Apply | Apply at ×1 closes the sheet and changes nothing. At any other rate it retimes the range. | Clip ▸ Retime Range… ▸ Apply |
| Clips across an edge are cut | A clip that crosses In or Out is cut there first, as Split cuts it. | Clip ▸ Retime Range… |
| Rates multiply | Each video or audio clip inside plays at its own rate times the Rate, and a ramp keeps its shape with every rate scaled. | Clip ▸ Retime Range… |
| Titles, shapes and stills stretch too | Titles, shapes, stills, images, graphics and adjustment clips inside are stretched or squeezed by the same amount. | Clip ▸ Retime Range… |
| Actions keep their place | Actions keep their place in each clip, at the same fraction of its length. | Clip ▸ Retime Range… |
| Markers and detached sound | Markers inside the range move with the picture, markers after it move with everything else, and a detached sound moves with its linked clip. | Clip ▸ Retime Range… |
| When a range cannot be retimed | Nothing changes and the reason appears at the foot of the inspector when the range cannot be retimed. | The foot of the inspector |
| Reverse a clip | A checkbox plays the clip back to front, picture and sound, or forwards again. | Clip tab ▸ Clip ▸ Timing section ▸ Reverse |
| Reverse in the Timing section | With one clip selected Timing shows In, Out and Duration above the Reverse rows; with several media clips, only the Reverse rows. | Clip tab ▸ Clip ▸ Timing section |
| Reversed frames | A row shows where the backwards copy has got to: Rendering…, Rendered, Not rendered or Media missing. | Clip tab ▸ Clip ▸ Timing section ▸ Reversed frames |
| Render Reverse | Starts the render again after it was cancelled or failed. | Clip tab ▸ Clip ▸ Timing section ▸ Render Reverse |
| Reversing keeps the clip in place | Reversing never moves the clip: it keeps its start, its length and its in point. | Clip tab ▸ Clip ▸ Timing section ▸ Reverse |
| Reverse with speed and ramps | Reverse works with Speed, Fit to, the ⌥ rate stretch and speed ramps; a reversed ramped clip ramps through the file backwards. | Clip tab ▸ Clip ▸ Timing section ▸ Reverse |
| The Reversing sheet | Turning on Reverse for a file with no copy shows a progress sheet while Frame Job renders a backwards copy once. | Reversing sheet |
| The backwards copy is shared | The backwards copy is kept in the project package and shared by every reversed clip of that file. | |
| Reversing sheet: Cancel | Stops the render; the sheet reads Stopping… and then explains how to try again, offering Close. | Reversing sheet ▸ Cancel |
| When a file cannot be reversed | If a file cannot be reversed, the sheet says how many files failed and names the first. | Reversing sheet |
| A slate until the copy exists | Until a clip's backwards copy exists it shows a slate instead of playing forwards. | Preview |
| Reversed clips keep depth and colour | The backwards copy is 10-bit, at the source's exact size, with its colour information, so an HDR or log clip still looks right. | |
| Still images have no Reverse | A picture or freeze frame looks the same backwards, so it has no Reverse rows and nothing to render. | |
| Freeze Frame | Holds the frame under the playhead for 2 s by splitting the clip, opening time and filling it with a still. | Clip ▸ Freeze Frame ⇧⌘F |
| Freeze Frame keeps everything in sync | 2 s of empty time opens at the playhead across every unlocked track, so everything after it moves later together. | Clip ▸ Freeze Frame ⇧⌘F |
| Freeze Frame keeps the clip's look | The still keeps the clip's position, scale, crop and other picture settings as they were at that moment, so it lines up with the frame. | Clip ▸ Freeze Frame ⇧⌘F |
| Freeze Frame on a ramped clip | On a ramped or speed-changed clip the still holds the frame actually playing at the playhead. | Clip ▸ Freeze Frame ⇧⌘F |
| Change the frozen frame | ⌥⇧-drag the still's body to hold an earlier or later frame of the source while it stays where it is. | Timeline: ⌥⇧-drag the still's body ⌥⇧-drag |
| When Freeze Frame is available | Freeze Frame works on a selected clip of a video file under the playhead, and is dimmed when there's none. | Clip ▸ Freeze Frame ⇧⌘F |
Audio
| Feature | What it does | Where |
|---|---|---|
| One kind of track for all sound | Any track can hold a clip with sound, and every clip with sound is mixed by its own settings and its track's. | Timeline |
| The fixed signal order | Sound passes through a clip's settings in one fixed order, from Voice Isolation to Limiter, with Volume, fades and ducking last. | Clip tab ▸ Sound |
| Sound on a nest | On a nest clip, Volume, Mute, the fades, Mix to mono and ducking work, and the other Sound sections do nothing. | Clip tab ▸ Sound, with a nest clip selected |
| Sound analysis after import | Frame Job analyses each file's sound on your Mac after import. Until that's done, the tools that measure a clip skip it or stop. | |
| The Sound sub-tab | When the selection includes a clip that plays sound, the Clip tab shows a Sound sub-tab with fifteen sections. | Clip tab ▸ Sound |
| Section summaries | Each Sound section header shows a one-line summary of its state, such as '+3.5 dB', '2 on' or 'Space: Hall 100%'. | Clip tab ▸ Sound ▸ section headers |
| Section Reset buttons | Each Sound section header has a Reset button that appears when the section differs from its default. | Clip tab ▸ Sound ▸ section headers ▸ Reset |
| Quick-pick values | Most Sound number fields have a chevron that opens a short menu of common values. | Clip tab ▸ Sound |
| Editing several clips at once | Changing a Sound control with several clips selected changes all of them, and a control whose clips differ is marked mixed. | Clip tab ▸ Sound |
| Change sound settings with an agent | An agent can change any Sound setting on one or more clips in one call with set_audio, and read it back with get_project. | |
| Clip volume | Sets the clip's level from 0 to 3200 %. The slider stops at 400 %, so type in the field to go higher. | Clip tab ▸ Sound ▸ Volume |
| Gain readout | Shows the volume in decibels, or 'silent' at 0 %. | Clip tab ▸ Sound ▸ Volume ▸ Gain |
| Loudness readout | Shows the clip's integrated loudness and true peak at volume 100 %, over the part of the file it plays. | Clip tab ▸ Sound ▸ Volume ▸ Loudness |
| At volume readout | Shows the same reading with the clip's Volume applied, and through its Limiter when that's on. | Clip tab ▸ Sound ▸ Volume ▸ At volume |
| Mute a clip | Silences the clip without changing its volume. | Clip tab ▸ Sound ▸ Volume ▸ Mute |
| Reset the Volume section | Puts the volume back to 100 % and turns Mute off. | Clip tab ▸ Sound ▸ Volume ▸ Reset |
| The volume line | Every clip with sound except a nest clip draws a thin white line over its waveform showing the level you hear from it over time. | Timeline ▸ a clip's audio part |
| Volume action markers | A small square in the action colour marks each action end that sets the volume. | Timeline ▸ the volume line |
| Drag the line | Drag the line up or down to change the clip's Volume, or the end level of the action that sets the level there. | Timeline ▸ drag the volume line |
| Add a volume point | ⌥-clicking the line adds an action ending at the level already there, so nothing changes until you drag. | Timeline ▸ ⌥-click the volume line ⌥-click |
| Move or remove a volume point | Drag a point's action band to move it in time, or select the band and press ⌫ to remove it. | Timeline ▸ the action band ⌫ |
| Clicks on the line that reach the clip | ⇧-click, ⌥⇧-drag and a double-click on the line act on the clip, as they do anywhere else on it. | Timeline ▸ the volume line |
| Sound settings in an action | With an action selected, most Sound controls, from Volume and Pan to the EQ and Limiter, set where the action ends. | Clip tab ▸ Sound, with an action selected |
| Numbers glide, switches jump | Numbers move smoothly across an action, and switches change at the action's end with no glide. | Clip tab ▸ Sound, with an action selected |
| Processing turned on by an action | A clip gets the preparation its sound needs when an action asks for it, even if the clip's own setting is off. | Clip tab ▸ Sound, with an action selected |
| What cannot be animated | Ducking, Keep pitch, the fade shapes, the Voice Effect and a nest clip's Mix to mono always change the clip's own settings. | Clip tab ▸ Sound, with an action selected |
| Fade in and Fade out | Set how long the clip's sound takes to rise from silence at its start and fall to silence at its end. | Clip tab ▸ Sound ▸ Fades |
| In shape and Out shape | Give each fade one of four curves: Linear, S-Curve, +3 dB or −3 dB. | Clip tab ▸ Sound ▸ Fades |
| Fade handles on the timeline | Every clip with sound has a small square handle at each top corner of its audio part. Drag one inward to set the fade. | Timeline ▸ drag a fade handle |
| Fades when a clip moves or is trimmed | A fade travels with the clip when moved and stays at the edge when trimmed. | Timeline |
| Crossfade Audio | A transition between two overlapping clips fades the outgoing sound out and the incoming sound in. It's on by default. | Clip tab ▸ Clip ▸ Transition ▸ Crossfade Audio |
| Crossfade Shape | Pick the curve of a transition's audio crossfade: +3 dB, Linear, S-Curve or −3 dB. | Clip tab ▸ Clip ▸ Transition ▸ Crossfade Shape |
| Audio-only transitions | Two overlapping clips with no picture get the same section, and only their sound changes. | Clip tab ▸ Clip ▸ Transition |
| Crossfading after Detach Audio | After Detach Audio the crossfade belongs to the audio clips: overlap them and they get a transition of their own. | |
| Clip pan | Moves a stereo clip's balance left or right. | Clip tab ▸ Sound ▸ Mix ▸ Pan |
| Pan position readout | Shows the pan in words: 'centre', or the side and amount, such as 'left 30'. | Clip tab ▸ Sound ▸ Mix ▸ Position |
| Mix to mono | Averages all the clip's channels into one and sends it to every channel. | Clip tab ▸ Sound ▸ Mix ▸ Mix to mono |
| Reset the Mix section | Sets the pan back to centre and turns Mix to mono off. | Clip tab ▸ Sound ▸ Mix ▸ Reset |
| Channels | Chooses which channels of a stereo file play: Both, Left Only, Right Only, or Swap Left and Right. | Clip tab ▸ Sound ▸ Channels ▸ Play |
| Normalize | Sets each selected clip's volume from a measurement of the clip. | Clip ▸ Normalize |
| Normalize mode | Choose whether Normalize aims at a Peak or a Loudness. | Clip tab ▸ Sound ▸ Volume ▸ Normalize row |
| Normalize loudness target | Sets the level in LUFS that Normalize and Enhance Voice aim at, from −50 to −5. The default is −16. | Clip tab ▸ Sound ▸ Volume ▸ Normalize row |
| Normalize Loudness mode | Sets each clip's volume so its integrated loudness reaches the target, so clips match. | Clip tab ▸ Sound ▸ Volume ▸ Normalize row ▸ Loudness |
| Normalize Peak mode | Sets each clip's volume so its loudest moment reaches −1 dBFS. | Clip tab ▸ Sound ▸ Volume ▸ Normalize row ▸ Peak |
| What Normalize measures | Normalize measures the clip over the part that plays, not the mix, so volume, fades, ducking, mute, solo and the track don't count. | Clip ▸ Normalize |
| Measuring through processing | In Loudness mode, a clip with EQ, clean-up, dynamics or a voice effect is rendered through them and its volume set from the result. | Clip ▸ Normalize |
| The Measuring Sound sheet | A sheet shows progress ('Clip 1 of 2…') with Cancel while clips are measured through their processing. | Clip ▸ Normalize |
| Clips Normalize skips | Clips Normalize can't measure, such as nests, silent clips and clips not analysed yet, are left out and the rest are done. | Clip ▸ Normalize |
| Enhance Voice | Sets each selected clip up for speech from its own measurements, in one undo step, writing ordinary settings you can see and change. | Clip ▸ Enhance Voice |
| Enhance Voice: rumble cut | Enhance Voice always sets the EQ's Rumble Cut, 80 Hz at 24 dB/oct, and keeps the EQ's other parts. | Clip ▸ Enhance Voice |
| Enhance Voice: noisy pauses | When the pauses are noisy, Enhance Voice turns on voice isolation or noise reduction, and a gate fitted to the pauses. | Clip ▸ Enhance Voice |
| Enhance Voice: leveller | Enhance Voice turns on the leveller at its defaults when the speech's short-term loudness range is over 6 LU. | Clip ▸ Enhance Voice |
| Enhance Voice: de-esser | Enhance Voice turns on the de-esser at its defaults when at least 5 % of the speech has a hot 's' band. | Clip ▸ Enhance Voice |
| Enhance Voice: compressor, limiter and final volume | Enhance Voice finishes with a compressor from the voice's own level, then the limiter and the volume that reach the target. | Clip ▸ Enhance Voice |
| Clips Enhance Voice skips | Enhance Voice leaves out what Normalize in Loudness mode does, plus clips with under 1 second of speech or not analysed yet. | Clip ▸ Enhance Voice |
| Check Enhance Voice's gate by ear | Enhance Voice sets the gate from the pauses it measured, so on very soft word starts, listen and lower the threshold if you need to. | Clip ▸ Enhance Voice |
| Match Audio | Gives the selected clips the loudness and tone of one of them, the reference, in one undo step. | Clip ▸ Match Audio… |
| Choose the reference clip | Chooses the reference clip, which itself is not changed. | Clip ▸ Match Audio… ▸ Match to: |
| Match loudness | Brings each other clip to the reference's loudness, as Normalize in Loudness mode does. | Clip ▸ Match Audio… ▸ Loudness |
| Match EQ | Compares each clip's speech spectrum with the reference's and fits the EQ to the difference. | Clip ▸ Match Audio… ▸ EQ |
| When a clip can't be matched | A clip that can't be matched is skipped. If the reference can't be used or nothing matches, the foot of the inspector says why. | Clip ▸ Match Audio… |
| Voice Isolation | Keeps the voice and removes background noise and room echo, using Apple's on-device voice model, so nothing leaves your Mac. | Clip tab ▸ Sound ▸ Voice Isolation |
| Isolate voice | Turns isolation on at 80 %, or off. | Clip tab ▸ Sound ▸ Voice Isolation ▸ Isolate voice |
| Voice Isolation amount | How much of the isolated voice replaces the clip's own sound. | Clip tab ▸ Sound ▸ Voice Isolation ▸ Amount |
| Voice Isolation status | Shows what the isolated voice is doing, such as Rendering…, Ready or Plays without it at this speed. | Clip tab ▸ Sound ▸ Voice Isolation ▸ Status |
| Voice Isolation's background render | The isolated voice is worked out once per clip in the background, and the clip plays without it until it's ready. | Clip tab ▸ Sound ▸ Voice Isolation |
| Voice Isolation and speed | Isolation plays only at normal speed; a speed change, ramp or freeze frame plays without it and Status says so. | Clip tab ▸ Sound ▸ Voice Isolation ▸ Status |
| Remove noise | How much steady background noise to remove, working out the noise level from the clip itself. | Clip tab ▸ Sound ▸ Noise Reduction ▸ Remove noise |
| Noise Reduction depth readout | Shows the most any part of the sound can be turned down at this setting, such as '6 dB at most'. | Clip tab ▸ Sound ▸ Noise Reduction ▸ Depth |
| Remove hum | Turns hum removal on, notching out mains hum and its harmonics. | Clip tab ▸ Sound ▸ Hum ▸ Remove hum |
| Hum mains frequency | The mains frequency where the recording was made, 50 Hz or 60 Hz. | Clip tab ▸ Sound ▸ Hum ▸ Mains |
| Hum depth | How far each notch turns the hum down. | Clip tab ▸ Sound ▸ Hum ▸ Depth |
| Hum harmonics | How many notches: the mains frequency and its multiples. | Clip tab ▸ Sound ▸ Hum ▸ Harmonics |
| Gate pauses | Turns the gate on, pushing sound below the threshold further down so room noise and breaths between phrases get quieter. | Clip tab ▸ Sound ▸ Gate ▸ Gate pauses |
| Gate threshold | How far under the clip's loudness the gate opens. | Clip tab ▸ Sound ▸ Gate ▸ Threshold |
| Gate ratio | How strongly sound under the threshold is turned down. | Clip tab ▸ Sound ▸ Gate ▸ Ratio |
| Gate range | The most the gate ever takes away. | Clip tab ▸ Sound ▸ Gate ▸ Range |
| Gate attack | How quickly it opens when the sound rises. | Clip tab ▸ Sound ▸ Gate ▸ Attack |
| Gate hold | How long it stays open after the sound falls, so word ends are not clipped. | Clip tab ▸ Sound ▸ Gate ▸ Hold |
| Gate release | How quickly it closes after the hold. | Clip tab ▸ Sound ▸ Gate ▸ Release |
| Gate Status and Loudness readouts | Readouts say where the gate opens on this clip, why it's waiting or not working, and the loudness it's measured from. | Clip tab ▸ Sound ▸ Gate |
| Waiting for the clip's loudness | Until a clip's loudness is measured it plays without the gate, leveller and de-esser, and an export waits for it. | Clip tab ▸ Sound ▸ Gate, Leveller or De-esser |
| Reduce sibilance | Turns the de-esser on, turning down only the band above its frequency while it is over the threshold. | Clip tab ▸ Sound ▸ De-esser ▸ Reduce sibilance |
| De-esser frequency | Where the sibilant band starts. | Clip tab ▸ Sound ▸ De-esser ▸ Frequency |
| De-esser threshold | How loud the band must get, relative to the clip's loudness, before it is turned down. | Clip tab ▸ Sound ▸ De-esser ▸ Threshold |
| De-esser range | The most the band is turned down. | Clip tab ▸ Sound ▸ De-esser ▸ Range |
| De-esser Status and Loudness readouts | Readouts say where the de-esser acts on this clip, why it's waiting or not working, and the loudness it's measured from. | Clip tab ▸ Sound ▸ De-esser |
| EQ | Shape the clip's tone with seven parts, each with its own checkbox: a high-pass, two shelves, three bands and a low-pass. | Clip tab ▸ Sound ▸ EQ |
| The EQ response curve | The EQ's first row draws how much each frequency from 20 Hz to 20 kHz is turned up or down, hum notches included. | Clip tab ▸ Sound ▸ EQ |
| EQ Bypass | Switches the EQ off without losing its settings, so you can compare with and without. | Clip tab ▸ Sound ▸ EQ ▸ Bypass |
| EQ presets | Rumble Cut, De-mud and Presence each set one EQ part in one press, so they combine. | Clip tab ▸ Sound ▸ EQ |
| EQ High-pass | Turns down everything below its Frequency. | Clip tab ▸ Sound ▸ EQ ▸ High-pass |
| EQ Low shelf | Turns everything below its Frequency up or down by its Gain. | Clip tab ▸ Sound ▸ EQ ▸ Low shelf |
| EQ Band 1, 2 and 3 | Turns the frequencies around each Frequency up or down by its Gain, with Q setting how narrow. | Clip tab ▸ Sound ▸ EQ |
| EQ High shelf | Turns everything above its Frequency up or down by its Gain. | Clip tab ▸ Sound ▸ EQ ▸ High shelf |
| EQ Low-pass | Turns down everything above its Frequency. | Clip tab ▸ Sound ▸ EQ ▸ Low-pass |
| EQ Frequency, Gain, Q and Slope | Each EQ part has a typed Frequency and, by its kind, a Gain, a Q or a Slope. | Clip tab ▸ Sound ▸ EQ |
| Ride the level | Turns the leveller on, evening out a voice that moves on and off the microphone by bringing each phrase toward a target. | Clip tab ▸ Sound ▸ Leveller ▸ Ride the level |
| Leveller target | Where it aims, in dB from the clip's loudness. | Clip tab ▸ Sound ▸ Leveller ▸ Target |
| Leveller Max Boost | The most it turns the clip up. | Clip tab ▸ Sound ▸ Leveller ▸ Max Boost |
| Leveller Max Cut | The most it turns the clip down. | Clip tab ▸ Sound ▸ Leveller ▸ Max Cut |
| Leveller response | How smoothly it follows the voice within a phrase: shorter changes are smoothed out. | Clip tab ▸ Sound ▸ Leveller ▸ Response |
| Leveller Status and Loudness readouts | Readouts say where the leveller aims on this clip, what it waits for or why it isn't levelling, and the loudness it's measured from. | Clip tab ▸ Sound ▸ Leveller |
| Smooth volume levels | Turns the compressor on, evening out loud and quiet passages by turning down what goes above the threshold. | Clip tab ▸ Sound ▸ Compressor ▸ Smooth volume levels |
| Compressor threshold | The level above which it starts turning the sound down. | Clip tab ▸ Sound ▸ Compressor ▸ Threshold |
| Compressor ratio | How strongly it turns down sound above the threshold. | Clip tab ▸ Sound ▸ Compressor ▸ Ratio |
| Compressor attack | How quickly it reacts when the level rises. | Clip tab ▸ Sound ▸ Compressor ▸ Attack |
| Compressor release | How quickly it lets go when the level falls. | Clip tab ▸ Sound ▸ Compressor ▸ Release |
| Compressor makeup | Gain added afterwards to make up what the compressor took away. | Clip tab ▸ Sound ▸ Compressor ▸ Makeup |
| Limit peaks | Turns on a true-peak limiter that looks between samples and a little ahead, holding the clip's peaks under a ceiling. | Clip tab ▸ Sound ▸ Limiter ▸ Limit peaks |
| Limiter ceiling | The highest true peak the clip may reach, after its volume. | Clip tab ▸ Sound ▸ Limiter ▸ Ceiling |
| Limiter release | How quickly the level recovers after a peak. | Clip tab ▸ Sound ▸ Limiter ▸ Release |
| Limiter latency compensation | Looking ahead delays the sound by 3.3 ms, so Frame Job starts that track's clips 3.3 ms early and they stay on their frames. | |
| Voice Effect | Put one of sixteen effects, grouped Voice, Tone, Space and Character, on the clip's sound, or None. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect |
| Voice: Pitch | Shifts the voice up or down without changing its speed. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Voice: Pitch |
| Voice: High | Shifts the voice up 5 semitones and thins and brightens it, for a small, high voice. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Voice: High |
| Voice: Deep | Shifts the voice down 5 semitones and warms it with low weight. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Voice: Deep |
| Voice: Robot | Makes the voice metallic and buzzing with a ring modulator. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Voice: Robot |
| Tone: Bass | Boosts the lows by up to 10 dB. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Tone: Bass |
| Tone: Treble | Boosts the highs by up to 10 dB. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Tone: Treble |
| Tone: Bright | Lifts the presence and air. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Tone: Bright |
| Tone: Telephone | Squeezes the sound into the narrow band of a phone line. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Tone: Telephone |
| Tone: Radio | Squeezes the sound into a narrow band with a radio tower's crackle. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Tone: Radio |
| Character: Lo-Fi | Makes the sound gritty and dull, like a low-resolution recording. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Character: Lo-Fi |
| Character: Distorted | Overdrives the sound into heavy distortion. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Character: Distorted |
| Space: Echo | Repeats the sound every quarter of a second, each repeat darkened above 6 kHz. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Space: Echo |
| Space: Room | Puts the sound in a medium room. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Space: Room |
| Space: Hall | Puts the sound in a large hall. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Space: Hall |
| Space: Plate | Adds a plate reverb. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Space: Plate |
| Space: Cathedral | Puts the sound in a cathedral, with a long tail. | Clip tab ▸ Sound ▸ Voice Effect ▸ Effect ▸ Space: Cathedral |
| Voice Effect amount | How much of the effect you hear, from 0 to 100 %, with every boost, mix and shift scaling with it. | Clip tab ▸ Sound ▸ Voice Effect ▸ Amount |
| Voice Effect pitch | The shift in semitones, from −12 to 12, for Voice: Pitch, Voice: High and Voice: Deep only. | Clip tab ▸ Sound ▸ Voice Effect ▸ Pitch |
| Voice Effect status | Shows where the effect's render has got to, such as Rendering…, Ready or Plays without it at this speed. | Clip tab ▸ Sound ▸ Voice Effect ▸ Status |
| Voice Effect's background render | The effect is worked out once per clip in the background; until ready the clip plays without it. | Clip tab ▸ Sound ▸ Voice Effect |
| Ducking | Lower every other clip while this one plays, usually so music drops under a voice-over. | Clip tab ▸ Sound ▸ Ducking ▸ Duck other audio |
| Duck by | Clip Length keeps the others down for the clip's whole length; Speech only while this clip's speech plays. | Clip tab ▸ Sound ▸ Ducking ▸ Duck by |
| Ducking level | How loud the other clips are while this one plays. | Clip tab ▸ Sound ▸ Ducking ▸ Level |
| Ducking attack | How long the other clips take to fall to Level, from this clip's first frame. | Clip tab ▸ Sound ▸ Ducking ▸ Attack |
| Ducking release | How long they take to come back up, starting after this clip ends. | Clip tab ▸ Sound ▸ Ducking ▸ Release |
| Duck by Speech | The others go down only around this clip's stretches of speech, using speech detected on your Mac. | Clip tab ▸ Sound ▸ Ducking ▸ Duck by ▸ Speech |
| Duck by Speech pre-roll | With Duck by Speech, how long before each stretch of speech the others start going down. | Clip tab ▸ Sound ▸ Ducking ▸ Pre-roll |
| Duck by Speech hold | With Duck by Speech, how long after each stretch of speech the others stay down before the release. | Clip tab ▸ Sound ▸ Ducking ▸ Hold |
| The yellow line on a clip ducking by speech | A clip that ducks by speech has a thin yellow line across its waveform, high at full level and low where the others are ducked. | Timeline ▸ a clip ducking by speech |
| Give a file its own speech with an agent | An agent can give a file stretches of speech of its own with set_media_speech, in place of the detected ones. | |
| Detach Audio | Splits each selected clip's sound onto a linked clip of its own on the track below. | Clip ▸ Detach Audio ⌥⌘D |
| Attach Audio | Merges each detached sound in the selection back into its picture. | Clip ▸ Attach Audio ⇧⌥⌘D |
| Linked clip marks | Linked picture and sound each show a link symbol after their kind symbol, and selecting one draws a dashed ring around the other. | Timeline |
| How a clip with its audio off looks | A clip whose audio is off shows no waveform and no fade handles; a clip with picture and sound both off is drawn dimmed. | Timeline |
| What stays in sync | A linked picture and sound stay in step through moves, splits, ripple edits, slips and deletes, unless a lock holds one half. | Timeline |
| Deleting one half | Deleting a picture takes its sound, but deleting only the detached sound leaves the picture, silent, with its link gone. | Timeline ▸ select the sound half and press ⌫ ⌫ |
| A detached sound with actions or a ramp | The new sound clip gets a copy of every action, so volume actions keep working and a ramped clip's sound keeps the same ramp. | Clip ▸ Detach Audio ⌥⌘D |
| J-cut | Detach a shot's sound and drag its start edge left, so the sound begins before its picture. | Timeline ▸ drag a detached sound clip's start edge |
| L-cut | Detach a shot's sound and drag its end edge right, so it runs on under the next shot. | Timeline ▸ drag a detached sound clip's end edge |
| Mute a track | Silences every clip on the track; the picture is unaffected. | Track ▸ Mute Audio |
| Solo a track | Silences the tracks beside it: the other timeline tracks or, inside a nest, that nest's other tracks. | Track ▸ Solo |
| How a solo shows on silenced tracks | Under a solo, waveforms on silenced tracks draw faded while their speaker switches stay unlit. | Timeline ▸ track lanes and headers |
| The Track Mix panel | A small panel beside the header holds the track's volume, pan, compressor, limiter and Reset. | Track ▸ Mix…, or the sliders switch in the track header |
| Track volume | The track's level, from Off to +12 dB, applied on top of every clip on it. | Track ▸ Mix… ▸ Volume |
| Track pan | Leans the track's sound left or right. | Track ▸ Mix… ▸ Pan |
| Reset a track's mix | Puts volume back to 0 dB, pan to centre, and turns the track's compressor and limiter off. | Track ▸ Mix… ▸ Reset |
| Track volume in a nest | A clip inside a nest plays through its own track inside the nest and through the track the nest clip sits on. | Track ▸ Mix… |
| What hears track volume | The preview, exports, the level meter and Remove Silences include track volume. Normalize, the Loudness readout and a clip's limiter don't. | |
| A track's own dynamics | A track can have its own compressor and limiter acting on its whole sound, after each clip's processing and the track's volume and pan. | Track ▸ Mix… |
| Track compressor | Turns on a compressor over the track's whole sound, with Threshold, Ratio, Attack, Release and Makeup. | Track ▸ Mix… ▸ Compressor |
| Track limiter | Turns on a true-peak limiter on what the track hands the mix, after its compressor, with Ceiling and Release. | Track ▸ Mix… ▸ Limit peaks |
| A track as a nest's bus | A compressor or limiter on the track holding a nest clip acts on everything inside the nest together. | Track ▸ Mix… |
| Exact in the export, approximate in the preview | An export runs a track's compressor and limiter exactly, while the preview approximates them where the track's clips overlap. | |
| What hears track dynamics | The preview, both meters and exports hear them. Normalize, the Loudness readout, Enhance Voice, Match Audio and a scrub don't. | |
| Audio scrubbing | Clicking or dragging along the ruler plays about 80 ms of the mix forward from each new frame. | Timeline ruler ▸ click or drag |
| The level meter | A meter in the timeline bar, left of the zoom controls, shows the mix you are hearing while the timeline plays. | Timeline bar |
| Two channel rows | One row per channel on a −60 to 0 dB scale. | Timeline bar ▸ level meter |
| RMS bar and peak wash | A solid bar shows the average level with a lighter wash behind it for the instantaneous peak. | Timeline bar ▸ level meter |
| Peak-hold mark | A mark stays at the highest recent level for about 1.2 seconds, then falls. | Timeline bar ▸ level meter |
| Clip cell | A cell at the right end of each row lights for 2 seconds when a sample reaches full scale. | Timeline bar ▸ level meter |
| The Loudness Meter | A column beside the preview measures the mix you hear to EBU R 128 and ITU-R BS.1770 while it plays at normal speed. | View ▸ Loudness Meter ⌃⌘L |
| M and S bars | Two bars show Momentary and Short-term loudness on a scale from −48 to 0 LUFS. | View ▸ Loudness Meter ⌃⌘L |
| The target line | The Normalize row's target is drawn across the meter's scale as a thin accent line. | View ▸ Loudness Meter |
| The four figures | The column lists Momentary, Short-term, Integrated and True peak max. | View ▸ Loudness Meter ⌃⌘L |
| Reset the Loudness Meter | The Reset button at the top of the column starts measuring again, and the meter restarts itself on a jump. | View ▸ Loudness Meter ▸ Reset |
| Measuring only at normal speed | At any other speed Momentary and Short-term show '—', and Integrated and True peak max keep their values. | View ▸ Loudness Meter ⌃⌘L |
| The note under the figures | A note under the figures says what is being measured and when it cannot be trusted. | View ▸ Loudness Meter |
| Synchronize Audio | Lines up two or more clips by their sound, such as a camera and a separate recorder, with each clip on its own track. | Clip ▸ Synchronize Audio |
| The anchor | One clip stays where it is and every other clip slides along its own track to it. | Clip ▸ Synchronize Audio |
| Matching by sound | Frame Job compares each file's analysed sound, speech first and trimmed parts first, so gain, microphone and room don't stop a match. | Clip ▸ Synchronize Audio |
| The waveform check | A match is used only if the waveforms also line up, which keeps two takes of the same words apart and fine-tunes the offset. | Clip ▸ Synchronize Audio |
| Drift correction | When clips overlap for at least 60 seconds, clock drift is measured and corrected by playing the clip at a slightly different speed. | Clip ▸ Synchronize Audio |
| The head trim | A clip that would have to start before 0:00 loses that much from its start, and starts at 0:00 in sync. | Clip ▸ Synchronize Audio |
| Moves land on whole frames | Clips move by a whole number of frames, so up to half a frame of constant offset can remain. | Clip ▸ Synchronize Audio |
| The Synchronizing Audio sheet | Matching runs in the background behind a sheet with a progress bar and Cancel, and nothing moves until a match is found. | Clip ▸ Synchronize Audio |
| Which clips it takes | It needs at least two selected clips that can play sound. Nests, stills, titles and clips with no sound are left out without a message. | Clip ▸ Synchronize Audio |
| When Synchronize Audio won't run | If any clip can't be lined up, nothing moves, Frame Job beeps and the foot of the inspector lists every reason. | Clip ▸ Synchronize Audio |
| Confident matches | A match whose best candidate has a confidence of at least 10 and at least 1.5 above the next is applied straight away. | Clip ▸ Synchronize Audio |
| The Weak match sheet | A weak match, confidence at least 4 within about 3 seconds of where the clip sits, is never applied without asking. | Clip ▸ Synchronize Audio ▸ Weak match sheet |
| When nothing matches | If nothing matches, the foot of the inspector names the offsets found and their confidences, so you can move the clip near one and retry. | Clip ▸ Synchronize Audio |
Clean-up tools
| Feature | What it does | Where |
|---|---|---|
| Two commands for a spoken recording | Remove Silences cuts the dead air and Remove Filler Words cuts the ums and uhs from a spoken recording, and both cut the same way. | Clip ▸ Remove Silences…, Clip ▸ Remove Filler Words… |
| Preview shading on the timeline | While a clean-up sheet is open, every span it would remove is shaded on the timeline ruler and lanes. | Timeline ruler and lanes, while a clean-up sheet is open |
| The cut count | The sheet reads how many cuts it would make and how much time they remove, so you know the result before pressing Remove. | Remove Silences and Remove Filler Words sheets |
| One undo step | Remove cuts every span and closes the timeline over each one as a single undo step, so one ⌘Z restores everything. | Remove, in either clean-up sheet ⌘Z |
| A ripple across every unlocked track | A clean-up cut is a ripple delete across every unlocked track, not only the clips analysed, so the picture stays with its voice-over. | |
| Markers keep their place | Markers stay where they are when a clean-up cut closes the timeline. | Footnote of both clean-up sheets |
| Frame-accurate edges | Each cut's start rounds up to the next frame and its end rounds down, so a cut never clips the start of the next word. | |
| Nests are protected | A clean-up cut never reaches into a nest clip. To clean up the audio inside one, open it and run the command there. | Clip ▸ Open Nest ⌘↓ |
| Transitions are protected | A clean-up cut never reaches into a transition's overlap or the area around it. | |
| The rest of the editor waits | Playback pauses when a clean-up sheet opens, and other editing commands are unavailable until you close it. | Remove Silences and Remove Filler Words sheets |
| Cut edges in a reversed clip | In Voice mode, a Remove Silences cut edge in a reversed clip can be off by up to 32 ms. | |
| Make the cut from an agent | An agent passes the ranges from detect_silence or detect_fillers to ripple_delete_ranges, which makes the same cut as Remove. | |
| Remove Silences | Finds the dead air in a spoken recording, shows it on the timeline and cuts it as one edit. | Clip ▸ Remove Silences… |
| Which clips are measured | In: chooses whether quiet is measured over Selected clips or All audible clips. The cut still reaches every unlocked track. | Clip ▸ Remove Silences… ▸ In: |
| Longer than | Sets the shortest quiet stretch worth cutting, 0.5 s by default, so short pauses such as the gap between two words stay. | Clip ▸ Remove Silences… ▸ Longer than: |
| Keep at ends | Sets how much of each quiet stretch to keep at each end, 0.1 s by default, so speech doesn't start or stop abruptly. | Clip ▸ Remove Silences… ▸ Keep at ends: |
| Quieter than and Level if no voice | A slider from −80 to −10 dBFS, at −40 by default, sets the level that counts as quiet. | Clip ▸ Remove Silences… ▸ Quieter than: or Level if no voice: |
| Numbers outside a field's range | A number outside a field's range stays in the field, and Remove beeps until you fix it. | Clip ▸ Remove Silences… ▸ Longer than: or Keep at ends: |
| The count follows the controls | The count and the shading update as you change a control, and for a number field when you leave it. | Clip ▸ Remove Silences… |
| Timeline gaps are left alone | Remove Silences leaves alone the gaps you placed between clips. Close Gap is the command for those. | Clip ▸ Close Gap |
| When nothing is audible | A line under the count tells you when nothing the sheet is measuring makes a sound, so nothing was analysed. | Clip ▸ Remove Silences… |
| When analysis is still running | The sheet names the files still being analysed and updates as each one finishes, so you can wait with it open. | Clip ▸ Remove Silences… |
| Relinking restarts the analysis | Relinking a file starts its analysis again. If an agent does it with the sheet open, the old results clear at once. | Clip ▸ Remove Silences… |
| Quiet inside a nest | The sheet says when a long quiet stretch ran across a nest and tells you to open it, because there may be dead air inside. | Clip ▸ Remove Silences… ⌘↓ |
| Find silences with an agent | With detect_silence an agent reads the ranges the sheet would cut, changing nothing, and ripple_delete_ranges makes the cut. | |
| Judge by | Judge by picks how a moment is tested: Voice cuts where nobody is talking, Level cuts purely by loudness. | Clip ▸ Remove Silences… ▸ Judge by: |
| Voice mode | In Voice mode quiet means nobody is talking: a voice model on your Mac listens to each file once and keeps the result with the project. | Clip ▸ Remove Silences… ▸ Judge by: Voice |
| Level mode | In Level mode quiet means the sound in the mix is at or below the threshold. | Clip ▸ Remove Silences… ▸ Judge by: Level |
| Clips with no voice are judged by level | In Voice mode, a clip with no voice in it at all, such as music or a tone, is judged by level instead, and the sheet names it. | Clip ▸ Remove Silences… ▸ Level if no voice: |
| When the voice model can't be used | If the voice model can't be used on this Mac, the sheet opens in Level mode with Voice greyed out and says why. | Clip ▸ Remove Silences… |
| Voice confidence | An agent can set how sure the voice model must be for a moment to count as speech; the sheet has no control for it. | |
| Silence is measured in the mix | Silence is measured in the mix, as you hear it, not in the raw file. | Clip ▸ Remove Silences… |
| Every clip being measured has to be quiet | A stretch is silent only where every clip being measured is quiet, so a music bed holds up the pauses until you measure only the voice. | Clip ▸ Remove Silences… ▸ In: Selected clips |
| Muted clips are left out | A muted clip is left out of the analysis entirely, so a muted music bed is never read as one long silence covering the whole song. | Clip ▸ Remove Silences… |
| Nothing is cut before analysis finishes | Nothing inside a file is offered for cutting until its analysis is ready, except a part the mix has already made quiet. | Clip ▸ Remove Silences… |
| Limits of Voice mode | A soft word can read as quiet, and so can music around a little speech. Raise Keep at ends: or measure Selected clips. | Clip ▸ Remove Silences… ▸ Keep at ends: |
| Remove Filler Words | Finds the ums and uhs in your speech and cuts them at the words' own timings, as one edit. | Clip ▸ Remove Filler Words… Needs your AssemblyAI key |
| Which words are fillers | Fillers are a fixed list of eleven words, such as um, uh and er, ignoring capitals and punctuation. You can't change the list. | Clip ▸ Remove Filler Words… |
| Which clips are read | Remove Filler Words reads the selected clips when the selection includes speech from a media file, otherwise every clip. | Clip ▸ Remove Filler Words… |
| A run of fillers is one cut | Each run of consecutive fillers becomes one cut, with nothing to tune. | Clip ▸ Remove Filler Words… |
| Neighbouring words are kept | A filler cut stops short of the words on either side, and up to a frame of the filler can remain at each end. | Clip ▸ Remove Filler Words… |
| Fillers left in whole | A filler too short to cut, or whose cut would reach another clip's word, a nest, or an overlap between two clips on one track or the area around it, stays in whole, and the sheet counts it. | Clip ▸ Remove Filler Words… |
| Clips on locked tracks aren't read | A clip on a locked track isn't read, because the cut can neither cut nor move it, and the sheet says how many there are. | Clip ▸ Remove Filler Words… |
| Clips with no words to read | A clip that plays in reverse, has its sound off, or whose file is missing or has no audio track is passed over without a note. | Clip ▸ Remove Filler Words… |
| Protection needs a transcript | A filler cut is kept away from speech in another clip only when that clip's file has a kept AssemblyAI transcript. | Clip ▸ Remove Filler Words… |
| The service can miss a filler | A filler AssemblyAI doesn't return isn't cut, and one it returns that isn't on the list stays in, both in the cut and in captions. | Clip ▸ Remove Filler Words… |
| Find filler words with an agent | With detect_fillers an agent reads the ranges the sheet would cut, changing nothing, and ripple_delete_ranges makes the cut. | |
| Filler words need a cloud transcript | Filler words come only from an AssemblyAI transcript made with filler words, because transcription on your Mac doesn't report them. | Frame Job ▸ Settings… ▸ Transcription ⌘, Needs your AssemblyAI key |
| The menu item with no key | With no key the menu item is greyed and reads that it needs your AssemblyAI key, with a tooltip saying where to set one. | Clip ▸ Remove Filler Words… |
| Using an existing transcript with no key | If a file the command would read already has a filler transcript, the command stays on and cuts that file's fillers with no key. | Clip ▸ Remove Filler Words… |
| Every AssemblyAI transcription asks for fillers | Any file you caption with AssemblyAI is already ready for Remove Filler Words, with no second upload. | File ▸ Generate Captions… Needs your AssemblyAI key |
| The list of files with no transcript | Each file the sheet reads that has no filler transcript gets a row with its name, an upload and cost estimate, and a Transcribe button. | Clip ▸ Remove Filler Words… Needs your AssemblyAI key |
| Where the audio goes | Above the rows, the sheet says where the audio goes before anything is sent. | Clip ▸ Remove Filler Words… Needs your AssemblyAI key |
| Transcribe a file for filler words | Transcribe makes a paid upload of one file's audio to AssemblyAI, and updates only that file's kept transcript. | Clip ▸ Remove Filler Words… ▸ Transcribe Needs your AssemblyAI key |
| Progress and Stop | While a run goes, the row shows its progress, its button reads Stop, the other rows' buttons are disabled and Remove is disabled. | Clip ▸ Remove Filler Words… ▸ Stop Needs your AssemblyAI key |
| When a run ends | When a run finishes the file drops off the list and its fillers join the count. If it doesn't, the file stays listed and the note says why. | Clip ▸ Remove Filler Words… Needs your AssemblyAI key |
| When Transcribe is disabled | Transcribe is dimmed with no API key, while another file's run is going, and in the rare project with no folder to keep transcripts in. | Clip ▸ Remove Filler Words… ▸ Transcribe |
| Transcribing an unsaved project | A project you haven't saved yet can be transcribed, and its transcript is kept with the project when you save. | Clip ▸ Remove Filler Words… ▸ Transcribe Needs your AssemblyAI key |
| The transcript also serves captions | A filler transcript also serves Generate Captions, with no new upload or bill, if you ask for the same language, speakers and vocabulary. | File ▸ Generate Captions… Needs your AssemblyAI key |
| Captions stay clean | Filler words never reach captions made from an AssemblyAI transcript. Captions made on this Mac aren't filtered. | File ▸ Generate Captions… |
| Transcribe for filler words with an agent | With transcribe_for_fillers an agent makes the same paid upload of one file as the Transcribe button, but it has no Stop. | Needs your AssemblyAI key |
| Cut a false start with the Assistant | Ask the Assistant to cut a phrase the speaker abandoned or said again: it tells you which words it will cut, then cuts them in one step. | Assistant tab ⌃⌘A Needs your Anthropic key |
| Remove fillers and silences by asking | Ask the Assistant to take out silences, or fillers in files that already have a filler transcript, as the sheets would. | Assistant tab Needs your Anthropic key |
| The Assistant won't start a paid transcription | The Assistant can't start a paid filler transcription, so you press Transcribe in the sheet yourself. | Clip ▸ Remove Filler Words… ▸ Transcribe |
Captions and transcript
| Feature | What it does | Where |
|---|---|---|
| Captions are ordinary text clips | Every caption is a text clip on a track of its own at the front of the stack, so it draws over everything else. | Timeline |
| Captions burn in with no extra step | The preview, a rendered frame and an exported movie all show captions, because they are part of the picture. | Preview |
| Two kinds of caption: subtitles and word captions | Generate classic two-line subtitles, or large captions in one of five styles where the word being said stands out. | File ▸ Generate Captions… ▸ Style |
| Caption track names | The first caption track is named Captions, then Captions 2, Captions 3 and so on, so separate runs can be told apart in the track headers. | Timeline track headers |
| Choosing the caption track | Nothing marks a track as the caption track, so Export Captions lists every track of text clips for you to choose from. | File ▸ Export Captions… ▸ Track |
| Captions land on frames and never overlap | Every caption starts and ends on a frame of the project, and captions on one track never overlap. | File ▸ Import Captions… or File ▸ Generate Captions… |
| Captions inside a nest | The caption commands work on the timeline you have open, so with a nest open they work inside that nest. | File ▸ Import Captions…, Generate Captions… or Export Captions… |
| Import Captions | File ▸ Import Captions… reads a SubRip (.srt) or WebVTT (.vtt) file onto a new caption track, one text clip per cue, as a single undo step. | File ▸ Import Captions… |
| Caption file variations it copes with | Frame Job copes with common caption file variations, such as old line endings, a missing index line, short times, and UTF-16, Windows-1252 or Latin-1 text. | File ▸ Import Captions… |
| Markup stripped on import | Formatting tags and overrides are removed and common HTML entities are decoded. | File ▸ Import Captions… |
| Line breaks kept | The file's own line breaks are kept, and long lines also wrap inside the caption box. | File ▸ Import Captions… |
| Malformed entries are reported | Bad entries are skipped and listed by line number, never dropped silently. | File ▸ Import Captions… |
| When a caption file can't be read | If no caption in a file can be read, nothing is imported and a message gives the first three reasons. | File ▸ Import Captions… |
| Generate Captions | File ▸ Generate Captions… transcribes the speech in your clips onto a new caption track, as ordinary text clips. | File ▸ Generate Captions… |
| Choose what to transcribe | From chooses what to transcribe: Selected clips, In/out range or Whole timeline. | File ▸ Generate Captions… ▸ From |
| Choose a speech engine | Engine chooses where the words are recognised: On this Mac or AssemblyAI. | File ▸ Generate Captions… ▸ Engine |
| Choose the spoken language | Language sets the spoken language of the run, from a list that depends on the engine. | File ▸ Generate Captions… ▸ Language |
| Choose a caption style | Style picks Subtitles or one of the five word caption styles. | File ▸ Generate Captions… ▸ Style |
| Sample preview | A sample page under the style and its look boxes shows the style on this canvas before you run anything. | File ▸ Generate Captions… ▸ preview under Style |
| Replace existing captions | With a word style chosen, Replace swaps out earlier caption tracks over the same clips instead of adding another. | File ▸ Generate Captions… ▸ Replace: existing captions |
| The sheet remembers its choices | Generate Captions reopens with your last engine, Style and three look boxes. | File ▸ Generate Captions… |
| Summary line and note | Under the rows, a summary gives the size of the run, and a note explains anything stopping it. | File ▸ Generate Captions… |
| Progress | While a run goes, the card shows a progress bar, "Transcribing N clips…" and a detail line. | File ▸ Generate Captions… ▸ progress |
| Cancel a run | Cancel stops a run, closing the sheet mid-run also stops it, and nothing is placed. | File ▸ Generate Captions… ▸ Cancel |
| The run report | Placing the captions is one undo step, and a run with something to report keeps the card open to say so. | File ▸ Generate Captions… |
| Generating captions from an agent | The transcribe tool does what the sheet does, and can return the captions without placing them so an agent can check them first. | MCP tool transcribe |
| Which clips can be transcribed | A clip can be transcribed if it plays forwards from a movie or sound file with an audio track, its audio is on and its file is present. Whole timeline and In/out range read only clips you can hear. | File ▸ Generate Captions… |
| Why a clip is skipped | The sheet leaves a clip it can't read out of its count, and an agent that names the clip is told why. | File ▸ Generate Captions… |
| Retimed clips land correctly | On a sped-up, slowed or speed-ramped clip, each word lands where it is heard on the timeline. | File ▸ Generate Captions… |
| The 10-hour and 4,096-clip limits | AssemblyAI takes at most 10 hours per file, and captions that would take a project past 4,096 clips aren't placed. | File ▸ Generate Captions… |
| Transcribe on this Mac | With Engine set to On this Mac, each clip's own part of its media is extracted and recognised locally, and nothing is uploaded. | File ▸ Generate Captions… ▸ Engine ▸ On this Mac |
| No permission prompt | macOS shows no permission prompt, because the recogniser reads an extracted audio file and never touches the microphone. | File ▸ Generate Captions… |
| On-device languages | Language lists every language this Mac's recogniser supports, and marks one with no speech model as not installed. | File ▸ Generate Captions… ▸ Language |
| Download a speech language | A language whose model is missing can be installed from a Download button under the Language pop-up. | File ▸ Generate Captions… ▸ Download |
| Every run recognises the audio again | Nothing is kept between runs for captions made on this Mac, so every run, restyling included, takes the time again. | File ▸ Generate Captions… |
| The pause note | With On this Mac and a word style chosen, a note says on-device words rarely carry a pause. | File ▸ Generate Captions… ▸ under the look boxes |
| Transcribe with AssemblyAI | With Engine set to AssemblyAI, your files' audio is transcribed in the cloud on your own key, then deleted there once the words are back. | File ▸ Generate Captions… ▸ Engine ▸ AssemblyAI Needs your AssemblyAI key |
| Generate needs a key, unless the words are cached | With no key saved, the sheet says where to set one and Generate is greyed, unless every file is already transcribed. | File ▸ Generate Captions… Needs your AssemblyAI key |
| Split the words by speaker | Speakers asks AssemblyAI to split the words by speaker, so a change of speaker always starts a new cue or page. | File ▸ Generate Captions… ▸ Speakers Needs your AssemblyAI key |
| Vocabulary for names and jargon | Vocabulary sends AssemblyAI the names and jargon to expect, separated by commas, up to 1,000 terms. | File ▸ Generate Captions… ▸ Vocabulary Needs your AssemblyAI key |
| Language detection and languages | A cloud run can leave the language to Detect automatically, or name one of 18 languages, with English listed four ways. | File ▸ Generate Captions… ▸ Language Needs your AssemblyAI key |
| Detected language in the report | With Detect automatically, the run report gives each file's detected language and how confident AssemblyAI was. | File ▸ Generate Captions… ▸ run report Needs your AssemblyAI key |
| Fallback model in the report | If AssemblyAI used a different model than the one asked for, the run report says so. | File ▸ Generate Captions… ▸ run report Needs your AssemblyAI key |
| The price before you press Generate | The summary line prices the run at AssemblyAI's published rate, updating as you change the controls. | File ▸ Generate Captions… ▸ summary line |
| Why each file uploads | Hovering over the summary gives one line per file that is not already transcribed, saying why, followed by the dated rate. | File ▸ Generate Captions… ▸ hover the summary line |
| One transcript cached per media | Each file's transcript is kept in the project package, so a later run with the same settings uploads nothing and costs nothing. | |
| Untitled projects | An untitled project can be transcribed too: its transcripts stay in a temporary folder until it is saved, then go into the project package. | File ▸ Generate Captions… Needs your AssemblyAI key |
| Transcribe again | Transcribe again ignores any cached transcript and uploads again, which is a paid upload. | File ▸ Generate Captions… ▸ Transcribe again Needs your AssemblyAI key |
| Filler words stay out of captions | AssemblyAI's words include fillers, but captions and the sheet's preview leave them out. | File ▸ Generate Captions… Needs your AssemblyAI key |
| When a file fails | One file's failure does not end a run: its clips are listed with the reason, and captions from the other files are still placed. | File ▸ Generate Captions… ▸ run report Needs your AssemblyAI key |
| What is uploaded and billed | The whole audio of each file behind your clips is uploaded and billed, not only the parts in use, and the video stays on your Mac. | File ▸ Generate Captions… ▸ Engine ▸ AssemblyAI Needs your AssemblyAI key |
| The transcript is deleted after reading | Once the words have been read back, Frame Job asks AssemblyAI to delete its copy, automatically. | Needs your AssemblyAI key |
| Unconfirmed deletes are retried | An unconfirmed delete is retried at the start of the next AssemblyAI run in the project, with a key for the same account and region. | File ▸ Generate Captions… ▸ run report Needs your AssemblyAI key |
| A pending delete holds a file back | While a delete is pending, that file is not uploaded again until it clears. | File ▸ Generate Captions… ▸ summary line Needs your AssemblyAI key |
| Save your AssemblyAI key | Paste your own AssemblyAI key into Settings and press Save or Return. | Frame Job ▸ Settings… ▸ Transcription ▸ AssemblyAI API key: ⌘, Needs an AssemblyAI account |
| Remove the key | Remove deletes the saved key. | Frame Job ▸ Settings… ▸ Transcription ▸ Remove ⌘, Needs your AssemblyAI key |
| Where the key is kept | The key is saved in a file only you can read, not in the Keychain, and is never passed on the command line. | Frame Job ▸ Settings… ▸ Transcription ⌘, |
| A key from the environment | If no key is saved, Frame Job also accepts one from the RC_ASSEMBLYAI_KEY environment variable, useful when launching from a terminal. | |
| Verify your key | Verify checks that the key works in your region with AssemblyAI's cheapest signed-in request, transcribing and billing nothing. | Frame Job ▸ Settings… ▸ Transcription ▸ Verify ⌘, Needs your AssemblyAI key |
| AssemblyAI region | Region chooses the AssemblyAI data centre your audio goes to: United States or European Union. | Frame Job ▸ Settings… ▸ Transcription ▸ Region: ⌘, |
| Account Page | Account Page opens your AssemblyAI dashboard in the browser, where you get a key and see what you have spent. | Frame Job ▸ Settings… ▸ Transcription ▸ Account Page ⌘, |
| The Transcription info button | The ⓘ beside the heading explains what is uploaded, what is deleted, the published rate and where the key is kept. | Frame Job ▸ Settings… ▸ Transcription ▸ ⓘ ⌘, |
| What the key turns on | Your AssemblyAI key turns on the AssemblyAI engine of Generate Captions and Remove Filler Words, which finds fillers only through AssemblyAI. | Frame Job ▸ Settings… ▸ Transcription ⌘, |
| Only a person sets the key | No agent tool can read or change the key or the region: only a person sets them, in Settings. | Frame Job ▸ Settings… ▸ Transcription ⌘, |
| The Subtitles style | The Subtitles style makes classic two-line cues as text clips. | File ▸ Generate Captions… ▸ Style ▸ Subtitles |
| Speaker colours | With Speakers on, each speaker's cues take their own colour, in the order the speakers first appear. | File ▸ Generate Captions… ▸ Speakers Needs your AssemblyAI key |
| The Caption preset | Each cue uses the Caption text preset, and on a canvas taller than wide the box sits higher. | File ▸ Generate Captions… |
| Word caption pages | The five word styles make large captions for shorts and reels: each clip holds a page of timed words, with the spoken word marked. | File ▸ Generate Captions… ▸ Style |
| Highlight | The spoken word turns yellow and pops to 112%. | File ▸ Generate Captions… ▸ Style ▸ Highlight |
| Pill | The spoken word sits on a violet pill. | File ▸ Generate Captions… ▸ Style ▸ Pill |
| Karaoke | Words turn yellow as they are said and stay yellow, while words still to come are dimmed white. | File ▸ Generate Captions… ▸ Style ▸ Karaoke |
| Build | Words appear one by one, and the newest is yellow and pops to 115%. | File ▸ Generate Captions… ▸ Style ▸ Build |
| One Word | One large white word shows at a time, popping to 120%. | File ▸ Generate Captions… ▸ Style ▸ One Word |
| Bundled typefaces | Montserrat Black, Montserrat ExtraBold, Anton and Bebas Neue ship inside the app, so there's nothing to install. | |
| Pages are filled to their measured width | A page holds as many words as fit, up to 86% of the canvas width, measured in its style on your canvas. | File ▸ Generate Captions… |
| Where a page breaks | A page ends early at a pause of 0.25 s or more, at the end of a sentence, after 3 seconds or at a change of speaker. | File ▸ Generate Captions… |
| A word too wide for the frame | A single word too wide for the frame shrinks, down to 80% of the style's size, before it wraps. | File ▸ Generate Captions… |
| How long a page stays up | A page stays up 0.5 s after its last word, or runs up to the next page if that starts sooner, so the row doesn't blink. | File ▸ Generate Captions… |
| The sheet's two-frame preview | A word style's preview shows two frames, with the first word active in the top frame and the second in the bottom one. | File ▸ Generate Captions… ▸ preview under Style |
| Three looks for word captions | Three checkboxes under the Style pop-up each add a look to a word style's pages. | File ▸ Generate Captions… ▸ under Style |
| Slide the pill | The pill slides from the previous word to the one being said instead of jumping. | File ▸ Generate Captions… ▸ Slide the pill |
| Fill words as spoken | The word being said fills from left to right as it is spoken. | File ▸ Generate Captions… ▸ Fill words as spoken |
| Dim in pauses | The page fades to half opacity during a pause, then comes back before the next word. | File ▸ Generate Captions… ▸ Dim in pauses |
| Change word colours | No inspector section changes a page's word colours, pop or pill: generate again with another style, or ask an agent. | File ▸ Generate Captions… ▸ Style |
| Restyle by generating again | A style is fixed when the captions are generated: to change it, generate again over the same clips with Replace on. | File ▸ Generate Captions… ▸ Replace: existing captions |
| Which tracks Replace may remove | Replace works only for a word style, on text tracks named Captions or Captions N whose clips all overlap what's being transcribed. | File ▸ Generate Captions… ▸ Replace: existing captions |
| Change a run of captions together | Select a run of captions and restyle them together in the inspector's Text sections; each page keeps its own words and word timing. | Clip tab ▸ Text |
| Re-lay Captions for This Canvas | After a canvas size change, this command pages word captions again for the new width from the words they already hold, as one undo step. | File ▸ Re-lay Captions for This Canvas |
| What a re-lay keeps | Your corrected words are kept and each page stays inside its own clip, but hand changes such as a colour or size go. | File ▸ Re-lay Captions for This Canvas |
| Tracks kept as placed | A track that cannot be re-laid is kept as placed, and a sheet after the edit names each one and why. | File ▸ Re-lay Captions for This Canvas |
| When Re-lay Captions is available | The item is greyed with no caption track it can re-lay, while a sheet is open, and while a recording runs. | File ▸ Re-lay Captions for This Canvas |
| Edit captions in the Text sections | Captions are text clips, so the inspector's Clip tab edits them under Text: Content, Font, Style, Outline, Backdrop, Box, Reveal and Presets. | Clip tab ▸ Text |
| Case on a word page | The style's capitals come from UPPERCASE: turn it off to show a page as written. | Clip tab ▸ Text ▸ Style ▸ UPPERCASE |
| Change the words on a page | Keeping the same number of words keeps each word's timing, and changing the number drops it, so the page shows plainly. | Clip tab ▸ Text ▸ Content |
| Reveals don't work on a word caption page | The text reveals (Typewriter, Word Fade and Line Rise) don't work on a word caption page, and their rows are greyed. | Clip tab ▸ Text ▸ Reveal |
| Trimming, splitting and moving a page | Trimming and splitting keep each word on the speech it times, and dragging a page moves its words with it. | Timeline |
| Word timings for agents | With set_text, an agent can rewrite a page's word timings and its word style, which the inspector can't. | MCP tool set_text |
| Newly revealed speech stays uncaptioned | When a speed-up or ramp plays further into the file, the new part gets no captions until you generate again. | File ▸ Generate Captions… |
| Export Captions | File ▸ Export Captions… writes one caption track out as SubRip (.srt) or WebVTT (.vtt), and changes nothing in the project. | File ▸ Export Captions… |
| Choose the track to export | Track picks which track to write, front-most first, with each row reading like "Captions — 12 cues (track 4)". | File ▸ Export Captions… ▸ Track |
| Format: SubRip or WebVTT | Format picks SubRip (.srt) or WebVTT (.vtt), and changing it changes the file name's extension. | File ▸ Export Captions… ▸ Format |
| One cue per text clip | Each text clip on the track becomes one cue, at the time and with the words it has now, so a caption you dragged exports where you dragged it. | File ▸ Export Captions… |
| Frame-exact round trips | A track exported and imported again puts every cue back on the frame it came from, at every ordinary frame rate. | File ▸ Export Captions… |
| The Transcript tab | The Transcript tab shows what's said in your project as text you can read and click. | Transcript tab |
| Open the Transcript | View ▸ Transcript shows the tab with the text ready for its keys; you can also click Transcript in the inspector's tab strip. | View ▸ Transcript ⌃⌘T |
| Every word you would hear | The tab lists every word you would hear when the timeline plays, in order: clips on every track, and clips inside nests where they play. | Transcript tab |
| Paragraphs and timecodes | The words come in paragraphs, each with its timecode above it. | Transcript tab |
| The bar | A bar above the text holds the tab's choices and notes, and stays put while the text scrolls. | Transcript tab ▸ top bar |
| Words from | Words from chooses whose words to show: All tracks, or one track by name. | Transcript tab ▸ Words from |
| Transcript language | Language chooses the language files are read in on this Mac. | Transcript tab ▸ Language |
| Read and Stop | While a file is being transcribed a note shows its progress with a Stop button, and after Stop a Read button carries on. | Transcript tab ▸ Stop |
| Clips with no words | A clip with no words is listed under the pop-ups with the reason. | Transcript tab ▸ notes |
| The same speech on two tracks | When two clips carry the same speech, a note names the pair so you can mute one and read it once. | Transcript tab ▸ notes |
| AssemblyAI first, otherwise this Mac | If a file already has an AssemblyAI transcript, the tab uses it; otherwise the tab transcribes the file on this Mac the first time you look. | Transcript tab |
| Kept per file and language | What this Mac heard is kept in the project per file and language, so the next look is immediate. | Transcript tab |
| One file at a time, playhead first | Files are read one at a time, starting with the one under the playhead, and each file's words appear as soon as it is done. | Transcript tab |
| When no speech model is installed | If your Mac has no speech model installed, the tab says so and points you to the download. | Transcript tab ▸ status |
| Ramped clips and following edits | Words are placed through a clip's speed, including a ramp, and editing the timeline updates the text right away. | Transcript tab |
| The word being spoken | While the video plays, the word being spoken is highlighted. | Transcript tab |
| The text scrolls with playback | The text scrolls to keep the spoken word in view. | Transcript tab |
| Click a word to jump | Clicking a word moves the playhead to it and selects it. | Inspector ▸ Transcript, click a word |
| Click a timecode to jump | Clicking a paragraph's timecode moves the playhead to the start of that paragraph. | Inspector ▸ Transcript, click a timecode |
| A selected clip scrolls to its words | Clicking a clip on the timeline or canvas while the Transcript shows scrolls its first word to the top. | Timeline or canvas, click a clip |
| Loop plays the selected words | Loop plays the shaded range, so a cut can be heard before you delete. | Toolbar ▸ Loop, with words selected |
| Selecting words | Click a word, drag across a run, or extend with ⇧-click or ⇧ and an arrow, and ⌘A selects every word. | Transcript tab ⌘A |
| The selection is the in/out range | Whatever you select becomes the timeline's in/out range, so the timeline shades exactly what will go. | Transcript tab |
| Delete Words | Select words and press ⌫: the words and the sound under them come out of every unlocked track and the gap closes, as one undo step. | Transcript tab ⌫ |
| Where a word cut falls | A cut runs from the first word's start to the start of the next word you keep, so the pause before stays and the pause after goes. | Transcript tab |
| Where a word starts | For words read on this Mac, the tab moves each start to where its sound begins, so a cut keeps no slice of the pause. | Transcript tab |
| Words that can't be cut | Some words are shown faint: a cut at them would break something, so they can't be deleted, and holding the pointer over one says why. | Inspector ▸ Transcript, hover a faint word |
| Overlapping words on other tracks | If a word on another track runs into your selection, the tab adds it first, so you see everything the cut takes. | Transcript tab |
| When the tab won't cut | When a cut can't go ahead, the tab beeps, keeps your selection and shows the reason at the foot of the inspector. | Foot of the inspector |
| How exact a word cut is | Word edges come from the transcript, so in fast speech a cut can take the end of the word before it or leave a sliver of a deleted word. | Transcript tab |
| Pauses in the transcript | A stop of more than a second between two words of one clip shows in grey as its length, such as [2.4 s]. | Transcript tab |
| Select a pause | Clicking a pause selects it on its own, makes the part that would go the in/out range, and moves the playhead to the start of that cut. | Inspector ▸ Transcript, click a pause |
| Delete Pause | With a pause selected, ⌫ shortens it, keeping 0.2 s at each end, and closes the gap on every unlocked track, as one undo step. | Transcript tab ⌫ |
| Move word by word | ← and → select the previous or next word and move the playhead to it. | Inspector ▸ Transcript, text active ← → |
| Move line by line | ↑ and ↓ select the nearest word on the line above or below and move the playhead to it. | Inspector ▸ Transcript, text active ↑ ↓ |
| Extend the selection | ⇧ with an arrow grows the selection without moving the playhead. | Inspector ▸ Transcript, text active ⇧ with an arrow |
| Select every word | ⌘A selects every word. | Inspector ▸ Transcript, text active ⌘A |
| Clear the selection | ⎋ clears the selected words or pause, along with the range they set. | Inspector ▸ Transcript, text active ⎋ |
| Delete the selection | ⌫ or ⌦ deletes the selected words and closes the gap, or shortens the selected pause. | Inspector ▸ Transcript, text active ⌫ ⌦ |
| Timeline keys keep working | Every other key works as it does on the timeline while the transcript text has the keyboard. | Inspector ▸ Transcript, text active |
Colour
| Feature | What it does | Where |
|---|---|---|
| One grade everywhere | The preview, Save Frame… and every export draw a grade the same way. | |
| Ungraded clips stay untouched | A clip you haven't graded renders exactly as it would without a grade. | |
| The Color sub-tab | A sub-tab of the Clip inspector that holds every grading control for the selected clips. | Clip tab ▸ Color |
| What can be graded | Video clips, image clips, stills (freeze frames) and adjustment clips can take a grade. | Clip tab ▸ Color |
| Mixed selections | Mixing a text, shape, graphic or nest clip into the selection hides the tab, while an audio-only clip does not. | Clip tab ▸ Color |
| Sections only adjustment clips show | The Adjustment and Qualifier sections show only when every selected clip is an adjustment clip. | Clip tab ▸ Color |
| Section summaries | Each section's header shows a short summary of its state. | Clip tab ▸ Color, section headers |
| Reset a section | A section's Reset, shown while it differs from its default, returns only that section to neutral. | Clip tab ▸ Color, section header ▸ Reset |
| Which section opens | If no section is open, the tab opens the first one you haven't closed yourself. | Clip tab ▸ Color |
| Grade several clips at once | With several clips selected, a control changes only its own value on each clip and keeps their other values. | Clip tab ▸ Color with several clips selected |
| Undo in the Color tab | A slider drag or a typed value is one undo step named after its control. | Edit ▸ Undo |
| The fixed grade order | The grade always applies in one order: Color, Light, Wheels, Curves, then the Look. | Clip tab ▸ Color |
| Filters around the grade | The Picture tab's filters act on either side of the grade, which matters when you combine them with one. | Clip tab ▸ Picture ▸ Filters |
| The Light section | Nine tone and white-balance controls, each a slider with a number field beside it. | Clip tab ▸ Color ▸ Light |
| Exposure | Brightens or darkens the picture in stops, from −3 to +3 EV, with black staying black. | Clip tab ▸ Color ▸ Light ▸ Exposure |
| Temperature | Makes the picture warmer (more red, less blue) or cooler (more blue, less red). | Clip tab ▸ Color ▸ Light ▸ Temperature |
| Tint | Shifts the picture toward magenta (positive) or green (negative). | Clip tab ▸ Color ▸ Light ▸ Tint |
| Highlights | Lifts or lowers the brighter half of the tones. | Clip tab ▸ Color ▸ Light ▸ Highlights |
| Shadows | Lifts or lowers the darker half of the tones. | Clip tab ▸ Color ▸ Light ▸ Shadows |
| Whites | Stretches the tones toward white, with black held. | Clip tab ▸ Color ▸ Light ▸ Whites |
| Blacks | Raises (positive) or deepens (negative) the dark end of the tones, with white held. | Clip tab ▸ Color ▸ Light ▸ Blacks |
| Vibrance | Changes saturation mostly in colours that have little of it. | Clip tab ▸ Color ▸ Light ▸ Vibrance |
| Fade | Lifts black toward 10 % and lowers white toward 95 %, for a washed-out film look. | Clip tab ▸ Color ▸ Light ▸ Fade |
| Set Light and Color with an agent | One set_video call can set any of the nine Light and four Color controls together. | |
| The Color section | Four sliders for overall Brightness, Contrast, Saturation and Hue. | Clip tab ▸ Color ▸ Color |
| Brightness | Raises or lowers every level. | Clip tab ▸ Color ▸ Color ▸ Brightness |
| Contrast | Spreads the tones apart or pulls them together. | Clip tab ▸ Color ▸ Color ▸ Contrast |
| Saturation | Gives more or less colour overall. | Clip tab ▸ Color ▸ Color ▸ Saturation |
| Hue | Turns every colour around the colour wheel. | Clip tab ▸ Color ▸ Color ▸ Hue |
| The Wheels section | Three colour wheels side by side, Lift, Gamma and Gain, each with a colour disc, a master strip and a number field. | Clip tab ▸ Color ▸ Wheels |
| Lift | Moves black and holds white, so it mostly affects the shadows. | Clip tab ▸ Color ▸ Wheels ▸ Lift |
| Gamma | Moves the middle tones and holds both ends. | Clip tab ▸ Color ▸ Wheels ▸ Gamma |
| Gain | Moves white and holds black, so it mostly affects the highlights. | Clip tab ▸ Color ▸ Wheels ▸ Gain |
| Drag the puck | Dragging on a disc pushes the wheel's tonal range toward a colour: the direction picks the hue, the distance the strength. | Wheels disc: press and drag |
| Wheels match the vectorscope | Each hue on a disc sits where the vectorscope draws it, so dragging toward a colour moves the trace toward it. | Clip tab ▸ Color ▸ Wheels ▸ disc |
| Fine drag on a wheel | Holding ⌥ moves a puck or a strip at a tenth of the speed, and a strip doesn't jump to the pointer. | Wheels disc or strip: ⌥-drag ⌥-drag |
| Reset a wheel's push | Double-clicking a disc returns the push to the centre and leaves the wheel's brightness alone. | Wheels disc: double-click Double-click |
| Reading the push | Hovering a disc shows its push as a hue angle and strength, or Neutral when the puck is centred. | Hover a wheel disc |
| Master strip | The strip under each disc sets that wheel's master brightness. | Wheels strip: click or drag |
| Reset a wheel's master | Double-clicking the strip returns the master to 0. | Wheels strip: double-click Double-click |
| Master field | Type a wheel's master value directly in the field under its strip. | Clip tab ▸ Color ▸ Wheels ▸ master field |
| Set the wheels with an agent | An agent can set each wheel's push and brightness as exact numbers, the only way to enter a push by number. | |
| The Curves section | A square plot with a channel picker above it and the selected point's fields below it. | Clip tab ▸ Color ▸ Curves |
| The channel picker | Six cells above the plot choose which channel you edit: Master, Red, Green, Blue, Hue and Sat. | Clip tab ▸ Color ▸ Curves ▸ picker |
| Master curve | A tone curve on all three colours, for contrast and the black and white points. | Curves picker ▸ Master |
| Red curve | A tone curve on the red channel only. | Curves picker ▸ Red |
| Green curve | A tone curve on the green channel only. | Curves picker ▸ Green |
| Blue curve | A tone curve on the blue channel only. | Curves picker ▸ Blue |
| Other curves behind the plot | Tone channels you've changed show as faint lines in their own colour behind the curve you're editing. | Curves plot |
| The changed-channel dot | A dot under a picker cell means that channel has been changed. | Curves picker |
| Point limits | A curve holds 2 to 16 points and runs smoothly through them without overshooting. | Curves plot |
| Add a point | Clicking the plot away from a point adds one on the curve above or below the click, ready to drag. | Curves plot: click |
| A stray click changes nothing | A point added to a straight channel isn't saved until you move it, nudge it or type a value. | Curves plot |
| Drag a point | Dragging moves a point, which stays inside the plot and can't pass its neighbours. | Curves plot: drag |
| Fine drag on a curve | ⌥-drag moves a point at a tenth of the speed. | Curves plot: ⌥-drag ⌥-drag |
| Axis lock | ⇧-drag locks the point to the axis you moved along most. | Curves plot: ⇧-drag ⇧-drag |
| Nudge a point | The arrow keys nudge the selected point, and ⇧ with an arrow nudges it ten times as far. | Curves plot: arrow keys, ⇧-arrow keys ← → ↑ ↓ |
| Delete a point | Remove the selected point with ⌫ or ⌦, the Delete button below the plot, or a double-click on the point. | Curves plot: ⌫ or ⌦, or double-click a point ⌫ ⌦ |
| Deselect a point | Esc deselects the point and hands the keyboard back to the editor. | Curves plot: Esc Esc |
| The plot and the keyboard | While a point is selected the plot has the keyboard, but keys it doesn't use still reach the editor. | Curves plot |
| In and Out fields | Below the plot, the In and Out fields let you type the selected point's position. | Below the Curves plot: In, Out |
| Hover readout | While the pointer is over the plot, and during a drag, a label shows its position and the curve's value there. | Curves plot: hover or drag |
| Undo in Curves | Each drag, nudge, deletion or typed value is one undo step named Curves. | Edit ▸ Undo |
| Reset one channel | Right-click a channel's cell and choose its Reset item to straighten that channel alone. | Curves picker: right-click ▸ Reset Master, Reset Red, Reset Green, Reset Blue, Reset Hue or Reset Sat |
| Reset all curves | The Curves section's Reset straightens all six channels in one undo step. | Clip tab ▸ Color ▸ Curves ▸ Reset |
| Write curves with an agent | An agent writes a whole channel as a list of 2 to 16 points, and the list replaces that channel. | |
| The two hue channels | The Hue and Sat channels turn or saturate one colour at a time, on a plot in degrees over a spectrum strip. | Clip tab ▸ Color ▸ Curves ▸ Hue, Sat |
| Hue vs Hue | Shifts a chosen hue toward another with brightness kept, such as making the greens more teal. | Curves picker ▸ Hue |
| Hue vs Sat | Saturates or mutes a chosen hue. | Curves picker ▸ Sat |
| The spectrum strip | A hue channel plots in degrees with a spectrum strip under it, so you can see which colour each point sits on. | Curves plot on Hue or Sat |
| Hue curve safeguards | A hue curve never tints a grey, and its points never cross the 0°/360° wrap. | Curves plot on Hue or Sat |
| Write hue curves with an agent | An agent writes hue_hue and hue_sat whole, each as a list of 2 to 16 hue and value pairs. | |
| The Look gallery | A 3 × 3 grid of tiles, None and the eight looks, each a thumbnail of the first selected clip with that look applied. | Clip tab ▸ Color ▸ Look |
| Live thumbnails | Each tile shows the actual frame with that look, refreshed a moment after the playhead stops or an edit lands. | Clip tab ▸ Color ▸ Look |
| Warm | A warmer white balance with golden highlights. | Clip tab ▸ Color ▸ Look ▸ Warm |
| Cool | A cooler white balance with blue shadows. | Clip tab ▸ Color ▸ Look ▸ Cool |
| Teal & Orange | Teal shadows and orange highlights, with more contrast and vibrance. | Clip tab ▸ Color ▸ Look ▸ Teal & Orange |
| Vivid | More contrast and strong vibrance, with deeper blacks and brighter whites. | Clip tab ▸ Color ▸ Look ▸ Vivid |
| Faded | Low contrast, muted colour and lifted blacks, for a washed-out picture. | Clip tab ▸ Color ▸ Look ▸ Faded |
| Vintage | Muted and warm, with a fade, green-tinted shadows and yellow-tinted highlights. | Clip tab ▸ Color ▸ Look ▸ Vintage |
| Dramatic | Darker, contrasty and desaturated, with cool shadows. | Clip tab ▸ Color ▸ Look ▸ Dramatic |
| Black & White | Monochrome, with all colour removed and more contrast. | Clip tab ▸ Color ▸ Look ▸ Black & White |
| Apply a look | Clicking a tile puts that look on every selected clip. | Look gallery: click a tile |
| The outlined tile | The tile of the look every selected clip shares is outlined in the accent colour. | Look gallery |
| Remove a look | The None tile, the section's Reset or Clip ▸ Look ▸ None takes the look off and leaves the rest of the grade. | Look gallery ▸ None, or Clip ▸ Look ▸ None |
| Look Amount | Sets how much of the look applies, from 0 to 100%. | Clip tab ▸ Color ▸ Look ▸ Amount |
| Apply a look from the menu | The menu does what the gallery does: the eight looks, then any imported LUTs, then None. | Clip ▸ Look |
| The Look summary | The section header reads the look and its amount, for example Warm 80%. | Clip tab ▸ Color ▸ Look |
| Looks on stills and adjustment clips | A look works on video, image and still clips, and on adjustment clips. | Clip tab ▸ Color ▸ Look |
| Set a look with an agent | An agent sets a look by kind with set_video, with an optional amount, and removes it with look: null. | |
| Supported .cube files | Frame Job reads 3D LUTs in a text .cube file of up to 32 MiB, and shows an error for anything else. | Clip tab ▸ Color ▸ Look ▸ Import LUT… |
| Import LUT… | The button under the gallery picks a .cube file and applies it to the selected clips. | Clip tab ▸ Color ▸ Look ▸ Import LUT… |
| Add a LUT with Add Media… | File ▸ Add Media… adds a .cube file to the project, to use as a look or a Camera Log conversion. | File ▸ Add Media… ⇧⌘I |
| Drop a LUT on the Media tab | Dropping a .cube file on the Media tab adds it to the project. | Media tab: drag and drop |
| LUT rows on the Media tab | A LUT appears in the media list with a cube icon and never goes on the timeline. | Media tab |
| Imported tiles | Each LUT gets a tile in the gallery's Imported group, previewing it on your frame. | Look gallery ▸ Imported |
| LUTs in Clip ▸ Look | Each LUT gets an item in Clip ▸ Look between the eight looks and None. | Clip ▸ Look ▸ <LUT name> |
| A LUT is a look | A LUT is applied at the same step as a built-in look and uses the same Amount row. | Clip tab ▸ Color ▸ Look ▸ Amount |
| A changed file | If you change the file on disk, the new table is read at the next frame drawn. | |
| A missing or broken file | If the file goes missing or can't be read, the clip draws without its look and keeps the rest of its grade. | |
| A LUT can't be placed as a clip | An agent can't place a LUT as a clip, and the error says how to apply it instead. | |
| Removing a LUT in use | Removing a LUT in use asks first, counting its uses. Its button names what it clears and keeps the clips. | Media tab ▸ right-click a LUT row ▸ Remove |
| A LUT in an HDR project | The Look section warns that in an HLG project a .cube LUT reads its values as Rec. 709. | Clip tab ▸ Color ▸ Look |
| Apply a LUT with an agent | An agent imports the .cube with import_media, then sets it as a look by its media id. | |
| What an adjustment clip is | A clip with no picture of its own that grades everything already drawn behind it for as long as it lasts. | Insert ▸ Adjustment Clip |
| Insert Adjustment Clip | One menu command places an adjustment clip, as one undo step named Add Adjustment Clip. | Insert ▸ Adjustment Clip |
| What an adjustment clip covers | The new clip covers the In–Out range, or else the selected clips, or else the whole timeline. | Insert ▸ Adjustment Clip |
| Which track an adjustment clip goes on | The new clip goes on the front track when it has room and isn't a matte track, otherwise on a new front track named Adjustment. | Insert ▸ Adjustment Clip |
| The full grade | An adjustment clip's Color tab has Light, Color, Wheels, Curves and Look, plus Adjustment and Qualifier. | Clip tab ▸ Color |
| No Picture sub-tab | An adjustment clip has nothing to place or crop, so its sub-tabs are Color and Clip. | Clip tab |
| Adjustment clip Strength | Sets how much of the grade is mixed over the picture behind the clip. | Clip tab ▸ Color ▸ Adjustment ▸ Strength |
| No adjustment clips in nests | An adjustment clip can't go inside a nest, and can't be nested. | Insert ▸ Adjustment Clip |
| No transitions or overlaps on adjustment clips | An adjustment clip can't take a transition or overlap another clip on its track. | Timeline |
| No blur, sharpen, pixelate or blend modes | An adjustment clip can't take a blur, sharpen or pixelate filter or a blend mode, as it has no pixels of its own. | |
| Grade a graphic | Graphics have no Color sub-tab; put an adjustment clip above one to grade it. | Insert ▸ Adjustment Clip |
| Add an adjustment clip with an agent | An agent places an adjustment clip on a named track at a named time, then grades it with set_video. | |
| The Qualifier section | Limits an adjustment clip's grade to the pixels behind it that match up to three ranges of hue, saturation and luma. | Clip tab ▸ Color ▸ Qualifier |
| The Qualifier summary | The section header says which ranges are on, for example hue · sat · inverted · blur 20%. | Clip tab ▸ Color ▸ Qualifier |
| Turning a range on | Turning a range's checkbox on starts the range at its default. | Clip tab ▸ Color ▸ Qualifier ▸ range checkbox |
| Hue range | Picks pixels by hue, on a strip of the colour spectrum. | Clip tab ▸ Color ▸ Qualifier ▸ Hue |
| Saturation range | Picks pixels by saturation, on a strip from neutral to fully saturated. | Clip tab ▸ Color ▸ Qualifier ▸ Saturation |
| Luma range | Picks pixels by brightness, on a strip from black to white. | Clip tab ▸ Color ▸ Qualifier ▸ Luma |
| Low and High never cross | A typed Low is held at or below High, and a typed High at or above Low. | Clip tab ▸ Color ▸ Qualifier ▸ Saturation or Luma ▸ Low, High |
| How ranges combine | A pixel must fall inside every range that is on, and each range falls off smoothly across its softness outside each edge. | Clip tab ▸ Color ▸ Qualifier |
| Reading a strip | Each range has a strip that dims everything outside the range, the soft edges half as much, so you can see on the scale what is picked. | Qualifier strips |
| Dragging a strip | A strip's block knobs set the width or the edges, its small squares the softness, and its band moves the whole range. | Qualifier strip: drag a block knob, a small square or the band |
| Fine drag on a qualifier strip | Holding ⌥ moves a strip handle at a tenth of the speed. | Qualifier strip: ⌥-drag ⌥-drag |
| Reset a range | Double-clicking a strip resets the range to its default. | Qualifier strip: double-click |
| Invert a qualifier | Grades everything except what the ranges pick. | Clip tab ▸ Color ▸ Qualifier ▸ Invert |
| Blur a qualifier's selection | Blurs the selection, not the picture: a speckled selection on noisy footage turns clean and the grade blends into its surroundings. | Clip tab ▸ Color ▸ Qualifier ▸ Blur |
| Animate a qualifier | An action can animate a qualifier's numbers. | Clip tab ▸ Color ▸ Qualifier, with an action selected |
| Set a qualifier with an agent | An agent sets a qualifier with set_video: it can turn a range on, change part of one, or turn one off. | |
| Pick from Canvas | Press the button and click the preview to centre the ranges on that colour. | Clip tab ▸ Color ▸ Qualifier ▸ Pick from Canvas, then click the preview |
| What a pick sets on Hue | Hue turns on if it was off and centres on the colour you clicked. Clicking a near-grey turns it off. | Clip tab ▸ Color ▸ Qualifier ▸ Pick from Canvas |
| What a pick sets on Saturation | The Saturation range is turned on if needed and centred on the colour's saturation. | Clip tab ▸ Color ▸ Qualifier ▸ Pick from Canvas |
| What a pick sets on Luma | Luma moves to the colour's brightness only if it was already on. | Clip tab ▸ Color ▸ Qualifier ▸ Pick from Canvas |
| Width and softness are kept | A range that was already on keeps its width and softness. | Clip tab ▸ Color ▸ Qualifier ▸ Pick from Canvas |
| Cancelling a pick | Esc or pressing the button again cancels the pick, and so does changing the selection. | Esc, or press Pick from Canvas again Esc |
| One preview tool at a time | Starting Pick from Canvas cancels any other tool waiting on the preview, and starting one of those cancels a pick. | Clip tab ▸ Color ▸ Qualifier ▸ Pick from Canvas |
| A pick inside an action | With an action selected, the picked ranges go to the action's end state. | Clip tab ▸ Color ▸ Qualifier ▸ Pick from Canvas, with an action selected |
| Show Selection | Draws the qualifier's selection in grey in place of the graded picture: white is fully graded, black untouched, grey in between. | View ▸ Show Selection |
| The Selection tag | A Selection tag appears in the preview's top-left corner while Show Selection is on. | Preview, top-left |
| It follows the selection | Show Selection follows the first selected adjustment clip and turns off when none is selected. | View ▸ Show Selection |
| Preview only | It affects only this window's preview and the Preview Window, never an export or Save Frame…. | View ▸ Show Selection |
| Draw the selection with an agent | An agent can render an adjustment clip's selection as grey. | |
| Show Ungraded | A before/after switch that shows this window's preview, and the Preview Window, as if no clip were graded. | View ▸ Show Ungraded ⌃⌘U |
| The Ungraded tag | An Ungraded tag appears in the preview's top-left corner while Show Ungraded is on. | Preview, top-left |
| What it leaves on | A camera-log conversion on the media, filters, the chroma key and placement are not part of the grade, so they stay on. | View ▸ Show Ungraded |
| Grade view tools are never saved | Show Ungraded, Show Selection and the scopes affect only the window's preview, and nothing about them is saved or exported. | View menu |
| Draw an ungraded frame with an agent | An agent can render a frame as if no clip were graded. | |
| The Scopes panel | A 248 pt column between the picture and the inspector that measures the picture while you grade. | View ▸ Scopes ⌃⌘W |
| Two slots and their popups | The panel holds two stacked slots, each with a popup that picks one of four scopes. | Scopes panel ▸ a slot's popup |
| The slot caption | A faint caption at each slot's top right says what the scope reads. | Scopes panel |
| Scopes in a short pane | If the preview pane is too short for both slots they shrink together, and below 360 pt only the top slot shows. | Scopes panel |
| Live scopes | The scopes follow the picture live while it plays, and update after each edit while it's paused. | Scopes panel |
| Scopes follow the preview | Because they read the preview's frame, scopes follow Show Ungraded, Show Selection and Show SDR Version. | Scopes panel |
| Measure scopes with an agent | An agent measures any of the four scopes on any frame with render_frame, without opening the panel. | |
| Waveform | Shows the picture's luma (Y′) by position across the frame, left to right. | Scopes panel ▸ a slot's popup ▸ Waveform ⌃⌘W |
| RGB Parade | Shows red, green and blue as three side-by-side waveforms, each with its own clip marks. | Scopes panel ▸ a slot's popup ▸ Parade ⌃⌘W |
| Clip marks | Red marks on the top and bottom edges of the Waveform and Parade show where highlights and shadows clip. | Scopes panel ▸ Waveform or Parade |
| Clipping readouts | Under the Waveform and the Histogram, Highlights clipped and Shadows clipped show a share of the frame. | Scopes panel ▸ under a Waveform or Histogram slot |
| Measure the Waveform and Parade with an agent | An agent measures a frame's waveform or parade and gets clipping figures and the raw counts. | |
| Vectorscope | Plots the picture's colour by hue and strength, with Cb running across and Cr up. | Scopes panel ▸ a slot's popup ▸ Vectorscope ⌃⌘W |
| Vectorscope targets | Six boxes mark where the 75 % colour bars land: red, magenta, blue, cyan, green and yellow. | Scopes panel ▸ Vectorscope |
| The skin line | A line running up and to the left from the centre marks where skin tones fall. | Scopes panel ▸ Vectorscope |
| Vectorscope zoom | The 1× 2× 4× cells in the scope's bottom-right corner zoom in on a low-saturation picture, to show small casts. | Scopes panel ▸ Vectorscope, bottom-right cells |
| Measure the Vectorscope with an agent | An agent measures a frame's vectorscope and chooses its zoom. | |
| Histogram | Shows how many pixels sit at each level: red, green and blue counts as tinted fills, with luma as a white line. | Scopes panel ▸ a slot's popup ▸ Histogram ⌃⌘W |
| Measure the Histogram with an agent | An agent measures a frame's histogram. | |
| Grading inside an action | With an action selected, a control change goes to the action's end state and ramps there from the clip's own value. | Clip tab ▸ action lane, then Clip tab ▸ Color |
| Row marks and the tab badge | The row marks (◆) and the Color tab's ◆N badge show which settings the selected action animates. | Clip tab ▸ Color |
| What ramps smoothly | Light, Color, wheels, Strength, the look's Amount and the qualifier's numbers ramp smoothly. | Clip tab ▸ Color, with an action selected |
| A hue centre takes the short way | An animated qualifier hue centre takes the short way round the colour wheel. | Clip tab ▸ Color ▸ Qualifier ▸ Hue, with an action selected |
| Curves animate | Curves animate between any two curves, even with different numbers of points, and from or to a straight line. | Clip tab ▸ Color ▸ Curves, with an action selected |
| Resetting a curve inside an action | Inside an action, a channel's Reset or Set end value to default writes a straight curve to the action's end, so it animates back to neutral. | Curves picker: right-click ▸ Reset Red |
| A look switches instead | Turning a look on or off, or changing it, applies to the clip itself, not to the action, even with an action selected. | Clip tab ▸ Color ▸ Look |
| A qualifier range switches | A range turned on or off in an action switches whole at its end. | Clip tab ▸ Color ▸ Qualifier, with an action selected |
| Clear in a section header | While an action animates a grade section, its header shows Clear in place of Reset, to take it out of the action. | Section header ▸ Clear |
| Take one row out of an action | Right-clicking a grade row offers Remove from action N or Set end value to default. | Grade row: right-click |
| How a wheel disc shows an action | The disc shows a hollow square at the action's start value, the puck in the action colour, and a coral mark at the playhead's value. | Wheels disc |
| How a wheel strip shows an action | The strip fills in the action colour from the start value, with a coral tick at the playhead's value. | Wheels strip |
| How the curve plot shows an action | The plot shows the action's start curve dashed, and the edited curve and its points in the action colour. | Curves plot |
| How a qualifier strip shows an action | The band is outlined and its knobs are drawn in the action colour. | Qualifier strips |
| How sliders show an action | Grade sliders carry the same action marks as everywhere else in the inspector. | Clip tab ▸ Color |
| Copy a grade with Paste Attributes | Copy a graded clip, select others and choose Paste Attributes: its video settings replace theirs in one undo step. | Edit ▸ Copy, then Edit ▸ Paste Attributes ⌘C then ⌥⌘V |
| Paste only some settings with an agent | An agent can list which groups to paste, such as only the picture settings and not the sound. | |
| A qualifier between clips | Paste Attributes copies a qualifier only between adjustment clips. | Edit ▸ Paste Attributes |
| When a paste stops | If the copied clip has a blur, sharpen or pixelate filter or a blend mode, a paste onto an adjustment clip shows an error. | Edit ▸ Paste Attributes |
| LUTs travel with a paste | Pasting a clip with a LUT look into another project brings the LUT into that project's media. | Edit ▸ Paste or Edit ▸ Paste Attributes |
HDR and colour management
| Feature | What it does | Where |
|---|---|---|
| Automatic source conversion | Each frame of a source is converted once into the colour the project works in, so most footage needs no setting. | |
| SDR-only projects stay untouched | An SDR project holding only Rec. 709 sources isn't converted at all: its pixels and labels stay exactly as they are. | |
| Rec. 709 and untagged sources | Rec. 709 or unlabelled video, stills and recordings are drawn as they are in SDR and lifted to reference white in HDR (HLG). | |
| HLG video | HLG video such as iPhone HDR has its highlights rolled off in an SDR project and kept above white in an HDR (HLG) project. | |
| PQ / HDR10 video | A PQ (HDR10) file rolls off at its own peak in an SDR project and becomes real HDR, up to 1,000 cd/m², in HDR (HLG). | Media tab ▸ HDR10 |
| Wide-gamut SDR sources | A BT.2020 or P3 D65 source with an SDR transfer curve is converted to the project's colours, not drawn with the wrong ones. | |
| sRGB-transfer sources | A source labelled with the sRGB transfer is read as sRGB rather than as Rec. 709. | |
| Full-range files | S-Log3 and V-Log files stored in full range are read as full range, from the flag in the file. | |
| Camera log in each kind of project | Log footage with a built-in Camera Log curve looks normal in an SDR project and becomes real HDR in an HDR (HLG) project. | Media tab ▸ Camera Log |
| HDR stills | A PNG or HEIC still labelled HLG or PQ is treated as HDR, the way a video of the same kind is, rather than read as SDR. | File ▸ Add Media… ⇧⌘I |
| Gain-map HDR photos | An iPhone HDR photo with a gain map shows its HDR highlights in an HDR (HLG) project and its ordinary picture in SDR. | File ▸ Add Media… ⇧⌘I |
| The same conversion everywhere | The conversion is the same in the preview, every export and saved frames, and filmstrips and thumbnails follow it. | |
| Show Ungraded keeps the conversion | View ▸ Show Ungraded turns off the grades but leaves the source conversion on, because the conversion is how the file is read. | View ▸ Show Ungraded ⌃⌘U |
| Camera Log section | The Media tab's Camera Log section tells Frame Job which curve a video file was shot with, so flat log footage displays correctly. | Media tab ▸ Camera Log ▸ Log |
| A setting on the file | Camera Log is set on the media file, so every clip of that file follows it, reversed clips included. | Media tab ▸ Camera Log |
| Camera Log undo step | Changing a file's Camera Log is one undo step, named Camera Log. | Edit ▸ Undo |
| Camera Log status line and header | A line under the Log popup says what's set and whether it came from the file, and the section's header repeats the setting. | Media tab ▸ Camera Log |
| Log popup: None | No conversion: the file shows its log picture as recorded. | Media tab ▸ Camera Log ▸ Log ▸ None |
| Log popup: Apple Log | Converts footage shot in Apple Log, using the Apple Log curve and the BT.2020 camera gamut. | Media tab ▸ Camera Log ▸ Log ▸ Apple Log |
| Log popup: Apple Log 2 | Converts footage shot in Apple Log 2, which is the Apple Log curve with Apple Wide Gamut. | Media tab ▸ Camera Log ▸ Log ▸ Apple Log 2 |
| Log popup: S-Log3 | Converts Sony S-Log3 footage, with two rows for its gamut: S-Log3 / S-Gamut3.Cine and S-Log3 / S-Gamut3. | Media tab ▸ Camera Log ▸ Log |
| Log popup: V-Log | Converts Panasonic V-Log footage with V-Gamut, shown as V-Log / V-Gamut. | Media tab ▸ Camera Log ▸ Log ▸ V-Log / V-Gamut |
| Log popup: C-Log2 | Converts Canon Log 2 footage, with two rows for its gamut: C-Log2 / Cinema Gamut and C-Log2 / BT.2020. | Media tab ▸ Camera Log ▸ Log |
| Log popup: C-Log3 | Converts Canon Log 3 footage, with two rows for its gamut: C-Log3 / Cinema Gamut and C-Log3 / BT.2020. | Media tab ▸ Camera Log ▸ Log |
| How a curve is displayed | Each built-in curve follows its maker's published curve and gamut, and Frame Job's display transform turns it into a normal-looking picture. | |
| Detection on import | An iPhone Apple Log or Apple Log 2 file is recognised by its label when you import it, so it looks like normal video straight away. | Media tab ▸ Camera Log ▸ Log |
| Thumbnails follow Camera Log | Changing a file's Camera Log redraws its Media tab thumbnails and timeline filmstrip to show the converted picture. | Media tab |
| Camera Log runs before the grade | The conversion happens before the chroma key and every grade step, and Show Ungraded keeps it. | Media tab ▸ Camera Log |
| Which files take Camera Log | Camera Log is for video files only: the popup is disabled for an audio file, an image or a LUT. | Media tab ▸ Camera Log |
| Set Camera Log with an agent | Agents set or clear a file's Camera Log with set_media_color, and read it back from get_project. | |
| Use LUT… | Use LUT… picks a .cube file, adds it to the project and makes it this file's log conversion to Rec. 709, in one undo step. | Media tab ▸ Camera Log ▸ Log ▸ Use LUT… |
| A LUT already in the project | Each .cube LUT already in the project is offered in the Log popup as LUT: name, so other files can use it as their conversion. | Media tab ▸ Camera Log ▸ Log ▸ LUT: name |
| A Camera Log LUT counts as used | A LUT that is some file's Camera Log counts as used: Unused only hides it, and Remove asks first. | Media tab ▸ Unused only |
| Removing a Camera Log LUT | Removing a LUT in use says how many files lose it, and Remove and Clear Camera Log sends them back to no conversion. | Media tab ▸ right-click the LUT ▸ Remove |
| Camera Log and looks: converting twice | Camera Log is applied before any look, and the Look section warns when a .cube look sits on a file Camera Log converts. | Clip tab ▸ Color ▸ Look |
| Peak read at import | Import reads a PQ file's peak from its HDR10 metadata, so its highlights roll off to white at the brightness the file names. | Media tab ▸ HDR10 |
| HDR10 section | The Media tab's HDR10 section shows and changes the selected PQ file's peak. | Media tab ▸ HDR10 |
| Peak | Typing a value in Peak overrides the brightness a PQ file's highlights roll off to white at. | Media tab ▸ HDR10 ▸ Peak |
| Use File's | Use File's clears the override and goes back to the peak the file's HDR10 metadata names. | Media tab ▸ HDR10 ▸ Use File's |
| Where the peak came from | A line under the controls says where the peak came from. | Media tab ▸ HDR10 |
| PQ Peak undo step | Each peak change is one undo step, PQ Peak, and in the app changing the peak or the Camera Log keeps the other. | Edit ▸ Undo |
| Set a PQ peak with an agent | Agents set a PQ file's peak with set_media_color's peak, and read the file's own reading from get_project. | |
| Limits of the peak | Only a PQ file has a peak, and it's read once, at import, so relinking the file doesn't read it again. | Media tab ▸ HDR10 |
| Dynamic Range | The Document tab's Dynamic Range popup sets whether the project works in SDR (Rec. 709, the default) or HDR (HLG). | Document tab ▸ Canvas ▸ Dynamic Range |
| Dynamic Range undo step | Switching the project's dynamic range is one undo step, Dynamic Range. | Edit ▸ Undo |
| Colour row in the Document section | The Document section's Colour row shows the project's dynamic range. | Document tab ▸ Document ▸ Colour |
| The HDR (HLG) working space | An HDR project composes every frame in HLG-encoded BT.2020, so HDR footage keeps its range through to the file. | Document tab ▸ Canvas ▸ Dynamic Range ▸ HDR (HLG) |
| SDR material lifted to reference white | In an HDR (HLG) project SDR material is lifted so its white sits at HDR reference white, and HDR highlights rise above it. | Document tab ▸ Canvas ▸ Dynamic Range |
| Drawn layers and generated content | In an HDR (HLG) project text, captions, shapes, SDR stills, graphics and background colours are lifted to reference white. | Document tab ▸ Canvas ▸ Dynamic Range |
| Grades keep their settings | Switching dynamic range changes no grade value. | Document tab ▸ Canvas ▸ Dynamic Range |
| The chroma key across a switch | A chroma key keeps keying the colour it was picked on after a switch to HDR (HLG), exactly or very nearly. | Clip tab ▸ Picture ▸ Chroma Key |
| Pick from Canvas in an HDR project | In an HDR (HLG) project Pick from Canvas stores the key colour as an SDR project shows it. | Clip tab ▸ Picture ▸ Chroma Key ▸ Pick from Canvas |
| Qualifiers read the HLG signal | An adjustment clip's qualifier ranges are measured on the HLG values in an HDR (HLG) project, so re-pick them after switching. | Clip tab ▸ Color ▸ Qualifier |
| Show SDR Version | View ▸ Show SDR Version puts the project's SDR version in the preview: the picture 8-bit formats and JPEG frames get. | View ▸ Show SDR Version |
| It belongs to the window | Show SDR Version belongs to the window: it reaches the preview and the Preview Window, and never an export or a saved frame. | View ▸ Show SDR Version |
| The SDR Version tag | A tag reading "SDR Version" sits in the preview's top-left corner while the view is on. | Preview, top left |
| What the SDR version is | The SDR version brings the HLG master back to Rec. 709, unchanged to a little below reference white, with highlights rolled off. | |
| Draw the SDR version with an agent | An agent draws the same picture with render_frame's sdr_version. | |
| Scopes read the HLG signal | In an HDR (HLG) project View ▸ Scopes reads the HLG signal, with scales and targets to match. | View ▸ Scopes ⌃⌘W |
| Waveform and Parade in cd/m² | In an HDR (HLG) project the Waveform and Parade label every line in cd/m²: 0, 10, 51, 203 and 1000 at 0, 25, 50, 75 and 100 %. | View ▸ Scopes ⌃⌘W |
| The reference white line | The 75 % line, HDR reference white, is dashed: titles and SDR material sit on it, and HDR highlights rise above it. | View ▸ Scopes ⌃⌘W |
| BT.2020 luma and vectorscope targets | In an HDR (HLG) project luma and the vectorscope use BT.2020's weights, and the vectorscope's targets are BT.2020's too. | View ▸ Scopes ⌃⌘W |
| Scope captions in an HDR project | Each scope slot's caption names what it reads. | View ▸ Scopes ⌃⌘W |
| HDR scope numbers for agents | In an HDR (HLG) project each scope's JSON from render_frame adds the signal, and the Waveform, Parade and Histogram add a scale. | |
| Blending | The Document tab's Blending popup sets how layers mix where they overlap: in opacity, dissolves, soft edges, blend modes and glows. | Document tab ▸ Canvas ▸ Blending |
| Encoded | Layers blend on their encoded values, as most editors do. | Document tab ▸ Canvas ▸ Blending ▸ Encoded |
| Linear light | Layers blend as light, so a dissolve between saturated clips keeps its brightness instead of dipping dark at the midpoint. | Document tab ▸ Canvas ▸ Blending ▸ Linear light |
| What Blending leaves alone | Blending changes no clip and no grade, so a grade looks the same either way. | |
| Dynamic Range on the export sheet | In an HDR (HLG) project the export sheet gets a Dynamic Range row under Format: HDR (HLG), HDR10 (PQ) or SDR version. | File ▸ Export… ▸ Dynamic Range ⌘E |
| HDR (HLG) | Writes the BT.2100 HLG master, the row's default. | File ▸ Export… ▸ Dynamic Range ▸ HDR (HLG) ⌘E |
| HDR10 (PQ) | Writes an HDR10 file: BT.2100 PQ mastered at 1,000 cd/m², with fixed mastering metadata. | File ▸ Export… ▸ Dynamic Range ▸ HDR10 (PQ) ⌘E |
| SDR version | Writes the project's SDR version in Rec. 709. | File ▸ Export… ▸ Dynamic Range ▸ SDR version ⌘E |
| Which formats carry HDR | Six formats can carry an HDR picture, each at 10 bits or more, and every other video format writes the SDR version. | File ▸ Export… ▸ Format ⌘E |
| VP9 and HDR | VP9 (WebM) writes HLG and HDR10 as 10-bit VP9 Profile 2, and the SDR version as 8-bit Profile 0. | File ▸ Export… ▸ Format ▸ VP9 (WebM) ⌘E |
| Fixed HDR10 metadata | An HDR10 file carries fixed metadata that is always accurate, because its picture never goes above 1,000 cd/m². | File ▸ Export… ▸ Dynamic Range ▸ HDR10 (PQ) ⌘E |
| HDR export errors for agents | An agent asking export for a picture the format or project can't carry gets a message saying what will work. | |
| See which picture an export wrote | Once export_status reports a video job done in an HDR (HLG) project, its dynamic_range names the picture written. | |
| 16-bit float compositing | Every video source is decoded and every frame composited at 16-bit float, so gradients from a 10-bit file survive grading. | |
| 10-bit exports | HEVC 10-bit, both AV1 formats and ProRes keep the depth, VP9 (WebM) for HLG and HDR10 only; other video formats are 8-bit. | File ▸ Export… ▸ Format ⌘E |
| Deep stills | A still deeper than 8 bits per channel, such as a 16-bit PNG or TIFF or a 10-bit HEIC, is drawn at 16-bit float. | File ▸ Add Media… ⇧⌘I |
| What stays 8-bit | Text, shapes, captions, graphics, thumbnails and screen recordings are 8-bit, and still sit at reference white in HDR (HLG). |
Motion graphics
| Feature | What it does | Where |
|---|---|---|
| Graphic clips | A motion graphic that sits on a track like any clip, drawn fresh on every frame by a small JavaScript module kept in your project. | Insert ▸ Graphic… |
| Modules | A module is one file in your project, graphics/<name>.js, that draws an SVG picture for any frame Frame Job asks for. | Clip tab ▸ Graphic ▸ Source ▸ Reveal in Finder |
| Clips sharing one module | Many clips can be drawn by one module, each with its own property values, size and timeline. | Insert ▸ Graphic… ▸ This Project |
| Graphic properties | Each property a module declares becomes a control in the inspector, and a value you don't set draws with the module's own default. | Clip tab ▸ Graphic ▸ Properties |
| Same frame, same pixels | A graphic always draws the same pixels for the same frame and settings, so the preview and an export show the same graphic. | |
| Module names | A module's name is its file name without .js: lowercase letters, digits and -, starting with a letter or digit, at most 63 characters. | |
| Gradients don't band | A fixed, very fine pattern keeps dark gradients shading smoothly. Choose 10-bit or ProRes to keep that in an export. | |
| The graphics folder | Each project keeps its graphics in a graphics/ folder inside the .framejob package, holding modules, fonts/, assets/ and history/. | Clip tab ▸ Graphic ▸ Source ▸ Reveal in Finder |
| Graphics in an untitled project | An unsaved project can use graphics: they are kept in a temporary folder and move into the package when you first save it. | |
| Templates are copied into the project | Inserting a template writes your own editable copy into graphics/ under a free name, so each insert can be edited on its own. | Insert ▸ Graphic… |
| A graphics-only timeline | A timeline of nothing but graphics, text, shapes and images still plays and exports. | |
| Graphics in HDR projects | In an HDR (HLG) project, graphics draw at reference white, 203 cd/m², so a white graphic matches SDR white. | |
| Graphics limits | The fixed limits in one list, such as 8192 pixels a side, 64 property values a clip and 10 kept versions of each module. | |
| The Insert Graphic sheet | A sheet for choosing a bundled template, a project graphic or a file of your own, with categories, a list and a looping preview. | Insert ▸ Graphic… |
| Graphic categories | The left list files graphics by category, with This Project first when your project holds a module. | Insert ▸ Graphic… ▸ categories list |
| The graphics list | The middle list shows the chosen category's graphics sorted by title, with a module that doesn't compile in grey. | Insert ▸ Graphic… ▸ graphics list |
| The looping preview | The chosen graphic plays on a loop over a checkerboard, at the project's canvas shape, with its title and one-line description under it. | Insert ▸ Graphic… ▸ preview |
| Insert a graphic | Insert, Return or a double-click on a graphic places the chosen graphic at the playhead, selects the new clip and closes the sheet. | Insert ▸ Graphic… ▸ Insert Return |
| Cancel the Insert Graphic sheet | Cancel or Esc closes the sheet without changing anything. | Insert ▸ Graphic… ▸ Cancel Esc |
| Insert from This Project | Choosing a graphic under This Project places another clip drawn by that module, with nothing copied. | Insert ▸ Graphic… ▸ This Project |
| Insert from a file | From File… closes the sheet so you can pick a .js module to copy in and place, or a .fjgraphic package to import. | Insert ▸ Graphic… ▸ From File… |
| How From File… names a module | From File… names the module after the file you chose, changed as needed to make a valid name that isn't taken. | Insert ▸ Graphic… ▸ From File… |
| Where an inserted graphic lands | An inserted graphic goes at the playhead on the front track if it fits there, otherwise on a new track above everything. | Insert ▸ Graphic… |
| Default length and size | A new clip takes the length and size its module gives, otherwise 5 seconds and the canvas's size. | Insert ▸ Graphic… |
| A module that doesn't compile | If the module doesn't compile, no clip is placed and Frame Job shows its first error, with the line when it knows it. | Insert ▸ Graphic… |
| A graphic clip on the timeline | A graphic clip is teal with no thumbnails, and its strip shows a {} symbol and reads Graphic until you name it. | Timeline |
| The 23 bundled templates | Frame Job ships 23 ready-made graphics in four categories, drawn by code and fully editable once inserted. | Insert ▸ Graphic… |
| Templates at any canvas shape | Seventeen templates stay inside the title-safe area in landscape, portrait and square, fitting or wrapping long text. | Insert ▸ Graphic… |
| Templates end clean | Seventeen templates have an accent colour and leave in about their last 15 frames, so the last frame is bare. | |
| Template fonts and glyphs | Templates use bundled fonts and generic vector glyphs only, never a brand's artwork. | |
| Arrow highlight | A rounded box drawn on around a spot, an arrow growing toward it from the side nearer the frame's centre, and a label at the arrow's tail. | Insert ▸ Graphic… ▸ Screencast ▸ Arrow highlight |
| Bar chart | A titled bar chart whose bars grow in turn, from comma-separated values and labels. | Insert ▸ Graphic… ▸ Data & Time ▸ Bar chart |
| Callout | A circle that draws itself round a spot on the frame, with an arrow and a label. | Insert ▸ Graphic… ▸ Screencast ▸ Callout |
| Chapter card | A full-frame card with a large outlined chapter number, a kicker, an accent rule drawing across and the title rising into view. | Insert ▸ Graphic… ▸ Titles & Text ▸ Chapter card |
| Countdown | A timer counting down or up one step a second inside a ring that empties or fills, pulsing each second and flashing at the end. | Insert ▸ Graphic… ▸ Data & Time ▸ Countdown |
| Counter | A number counting from one value to another with thousands separators, a prefix and a label. | Insert ▸ Graphic… ▸ Data & Time ▸ Counter |
| Donut chart | A titled donut whose slices sweep in turn, the first slice's share counting up in the centre, with a legend. | Insert ▸ Graphic… ▸ Data & Time ▸ Donut chart |
| End screen | A full-frame card with a title, two 16:9 placeholders for the video elements you add when you publish, and a subscribe circle. | Insert ▸ Graphic… ▸ Social & YouTube ▸ End screen |
| Gauge | A 270° dial whose accent arc and needle swing to a value while the figure counts up, with its units and a label. | Insert ▸ Graphic… ▸ Data & Time ▸ Gauge |
| Handle tag | An accent tile holding a generic glyph and a pill with your @handle, at a corner. | Insert ▸ Graphic… ▸ Social & YouTube ▸ Handle tag |
| Keyboard keys | A shortcut such as cmd+shift+4 drawn as keycaps that pop in and are pressed in turn, with a label under them. | Insert ▸ Graphic… ▸ Screencast ▸ Keyboard keys |
| Kinetic type | A sentence shown word by word, each word springing in, with an accent colour. | Insert ▸ Graphic… ▸ Titles & Text ▸ Kinetic type |
| Line chart | A titled line drawn on through comma-separated values, a dot popping at each point, an optional area fill and the last value called out. | Insert ▸ Graphic… ▸ Data & Time ▸ Line chart |
| Logo reveal | A full-frame card on which an accent bar sweeps across to reveal your logo or a text mark, then settles into a rule over a tagline. | Insert ▸ Graphic… ▸ Titles & Text ▸ Logo reveal |
| Lower third | A name and subtitle that slide in from the left and fade out, with or without a dark box, placed left, centre or right. | Insert ▸ Graphic… ▸ Titles & Text ▸ Lower third |
| News ticker | A band along the foot of the frame with a headline box and items, typed with | between them, crawling right to left. | Insert ▸ Graphic… ▸ Titles & Text ▸ News ticker |
| Progress bar | A labelled bar on a plate whose fill grows to a percentage, the figure counting, with a shine across it, at the bottom, centre or top. | Insert ▸ Graphic… ▸ Data & Time ▸ Progress bar |
| Quote card | A full-frame card with a large quote mark, the quote's lines fading up in turn, and the attribution sliding in. | Insert ▸ Graphic… ▸ Titles & Text ▸ Quote card |
| Social popup | A notification card at a corner with a generic avatar and handle, its heart, bubble or share arrow popping as the count goes up by one. | Insert ▸ Graphic… ▸ Social & YouTube ▸ Social popup |
| Step badge | A numbered accent circle popping in at a corner, with a label panel wiping out from behind it. | Insert ▸ Graphic… ▸ Screencast ▸ Step badge |
| Subscribe button | A button a cursor clicks: it turns grey with a check and its done label, then a bell pops in beside it and rings after a second click. | Insert ▸ Graphic… ▸ Social & YouTube ▸ Subscribe button |
| Title card | A title fitted to the frame with a kicker above it, over a two-colour gradient. The text fades in and out, and the gradient stays. | Insert ▸ Graphic… ▸ Titles & Text ▸ Title card |
| Window frame | A browser or app window's frame, with a title bar, three dots and a title or address field, to sit over a recording on the track below. | Insert ▸ Graphic… ▸ Screencast ▸ Window frame |
| Export a graphic | Export… saves the chosen graphic as a .fjgraphic file holding its module and only the project fonts and pictures it uses. | Insert ▸ Graphic… ▸ Export… |
| What a package finds to pack | To find the fonts and pictures a graphic uses, Frame Job draws it and packs what it saw, so check the file list after an export. | Insert ▸ Graphic… ▸ Export… |
| The .fjgraphic file | A package is an uncompressed zip of a manifest, the module, fonts/ and assets/, and two exports by one version are byte-identical. | |
| Open a .fjgraphic from the Finder | Double-click a .fjgraphic, use Open With, drop it on the Dock icon or open it from a browser's downloads to import it. | Finder |
| Import with From File… | Choosing a .fjgraphic with From File… puts up the Import Graphic sheet for that same project. | Insert ▸ Graphic… ▸ From File… |
| The Import Graphic sheet | Before anything is copied, a sheet shows the graphic's title and description, and what will happen to its module, fonts and pictures. | Import Graphic sheet |
| After an import | Import copies the files into graphics/ and opens the Insert Graphic sheet on This Project with the graphic chosen, ready to insert. | Import Graphic sheet ▸ Import |
| Name clashes on import | An import never replaces a file: identical files are reused, a different module or font gets a new name, and a different picture stops it. | Import Graphic sheet |
| Package checks | Frame Job checks a package before copying anything, and a damaged, compressed, altered or newer one isn't imported. The message says why. | |
| The Graphic sub-tab | When every selected clip is a graphic, the Clip tab gains a Graphic sub-tab with Source, Properties, Size and Timeline sections. | Clip tab ▸ Graphic |
| The Picture sub-tab on a graphic | A graphic has the usual layer settings, such as Transform, Shadow and Filters, so you can move and fade it, but no Crop or Chroma Key. | Clip tab ▸ Picture |
| The Clip sub-tab on a graphic | A graphic has Timing, Transition and Motion presets in the Clip sub-tab, but no Speed section. | Clip tab ▸ Clip |
| Name, File and Revision | The Source section shows what draws the clip: its Name, File and Revision. | Clip tab ▸ Graphic ▸ Source |
| Open in Editor | Open in Editor opens the module in the app your Mac uses for .js files; save there and the preview redraws within a moment. | Clip tab ▸ Graphic ▸ Source ▸ Open in Editor |
| Reveal in Finder | Reveal in Finder shows the module's file. | Clip tab ▸ Graphic ▸ Source ▸ Reveal in Finder |
| A missing module | When the module file is gone, Source shows an error, Revision reads missing and its buttons are dimmed. | Clip tab ▸ Graphic ▸ Source |
| Errors and warnings in Source | Under the buttons, Source lists what the module says about the clip: compile errors and warnings, then what its first frame reported. | Clip tab ▸ Graphic ▸ Source |
| Open a diagnostic | Click a diagnostic, or its Open button, to open the module in your editor. This opens the file, not the line. | Clip tab ▸ Graphic ▸ Source ▸ Open |
| Problems in the graphics folder | Under In the graphics folder, Source lists what Frame Job skipped or couldn't watch, each with a Reveal button. | Clip tab ▸ Graphic ▸ Source ▸ In the graphics folder |
| Several modules selected | When the selected clips are drawn by different modules, Source names them and asks you to select one module's clips to edit its properties. | Clip tab ▸ Graphic ▸ Source |
| Move clips to another module | To move clips to a module that already exists, delete them and insert that module again, or have an agent do it with set_graphic. | Insert ▸ Graphic… |
| Property rows | One row appears per property the module declares, in the module's own order, with the module's label and its help text as the tooltip. | Clip tab ▸ Graphic ▸ Properties |
| Number properties | A number property is a value field, with a slider when the module gives both a minimum and a maximum. | Clip tab ▸ Graphic ▸ Properties |
| Text properties | A text property is a one-line field the width of the inspector, or a text area when the module marks it multi-line. | Clip tab ▸ Graphic ▸ Properties ↩, ⇧↩ |
| Checkbox properties | A property that's either on or off is a checkbox. | Clip tab ▸ Graphic ▸ Properties |
| Pop-up properties | A property with a fixed list of choices is a pop-up of the module's options. | Clip tab ▸ Graphic ▸ Properties |
| Colour properties | A colour property is a swatch that opens the macOS colour panel, and a colour you can see through keeps its opacity. | Clip tab ▸ Graphic ▸ Properties |
| Picture properties | A picture property is a pop-up of None, every picture in the project's graphics, and any name referred to but missing from the folder. | Clip tab ▸ Graphic ▸ Properties |
| Reset a graphic's properties | Reset on the Properties header clears every value stored on the selected clips, so the module draws its own defaults. | Clip tab ▸ Graphic ▸ Properties ▸ Reset |
| A value at the default is not stored | With no action selected, setting a value back to the module's default clears it, so the clip follows that default if it changes later. | Clip tab ▸ Graphic ▸ Properties |
| Edit several clips of one module | With several clips of one module selected, a change to a property row applies to all of them. | Clip tab ▸ Graphic ▸ Properties |
| Leftover values | A value for a property the module no longer has stays listed, dimmed, below the rows, with ⌫ to remove it. | Clip tab ▸ Graphic ▸ Properties ▸ ⌫ |
| Width and Height | Width and Height set the size a graphic draws at, 1 to 8192 pixels a side, so text and shapes stay sharp. | Clip tab ▸ Graphic ▸ Size ▸ Width, Height |
| Fit to Canvas | Fit to Canvas sets the size to the canvas's and centres the clip at scale 1. | Clip tab ▸ Graphic ▸ Size ▸ Fit to Canvas |
| The graphic's own timeline | A graphic has a timeline of its own, counted from its first frame, shown in the Timeline section. | Clip tab ▸ Graphic ▸ Timeline |
| The graphic's In point | In shows the graphic frame the clip's first frame shows. You can't type it: trimming the front, rolling and splitting move it. | Clip tab ▸ Graphic ▸ Timeline ▸ In |
| Pin a graphic's Length | Typing a Length pins the graphic's own timeline, so the animation keeps its pace when the clip's length changes. | Clip tab ▸ Graphic ▸ Timeline ▸ Length |
| Follow Clip | With Follow Clip on, the default, the graphic's timeline ends when the clip ends, so lengthening the clip moves its outro to the new end. | Clip tab ▸ Graphic ▸ Timeline ▸ Follow Clip |
| Length pinned shorter than the clip | When Length is pinned shorter than the clip, frames keep counting past it but the graphic's progress stays at its end. | Clip tab ▸ Graphic ▸ Timeline |
| Trim a graphic like footage | Trimming the front of a graphic clip cuts into its animation, and trimming the end never changes a pinned Length. | Timeline: drag a clip edge |
| Graphics and transitions | A transition that gives a graphic clip extra frames at its head moves In back by the same amount, so the picture stays in step. | Clip ▸ Transition ▸ |
| Graphics and a frame-rate change | Changing the project's frame rate snaps In and a pinned Length to the nearest frame on the new grid. | Document tab ▸ Frame Rate |
| Canvas-sized graphics are re-sized | Make Vertical Version re-sizes a graphic exactly the old canvas's size to the new canvas, so it lays itself out again on the new frame. | File ▸ Make Vertical Version… |
| Templates measured by the short side | Every bundled template measures itself by the short side of the size it draws at, so it fits a tall frame. | Insert ▸ Graphic… |
| Older template copies are updated | Older copies of six templates are recognised, and rewritten with the current template in the copy that Make a copy opens. | File ▸ Make Vertical Version… ▸ Make a copy |
| Your own height-sized modules are named | A module of your own that sizes itself by the canvas's height (ctx.height / 1080) is named in the summary, as it may not fit the frame. | File ▸ Make Vertical Version… ▸ summary |
| Animate a graphic's properties | Add an action to a graphic clip, select it, and set in the Graphic sub-tab the values its properties should end at. | Clip ▸ Add Action ⌥⌘K |
| Numbers and colours ramp | Across an action, numbers and colours move along the action's curve, with colours blending through OKLab. | Clip tab ▸ Graphic ▸ Properties, action selected |
| Text, checkboxes, menus and pictures switch | Text, checkboxes, pop-ups and pictures hold their value through an action, then change as it ends. Their rows say "at end". | Clip tab ▸ Graphic ▸ Properties, action selected |
| Keep a property out of animation | A module can mark a property animate: false, so no action animates it. Its row shows ⊘ and edits the clip even with an action selected. | Clip tab ▸ Graphic ▸ Properties |
| Action values must fit the module | A value you put in an action is checked against the module as it is now, including any minimum and maximum. | |
| Where an animated property starts | An action starts from the value in force, or, if the clip holds none, from the module's default when an action first names it. | |
| The ◆N badge | The Graphic sub-tab shows a ◆N badge counting how many properties the selected action animates. | Clip tab ▸ Graphic (badge) |
| Paste Graphic Properties | Pastes a copied graphic clip's properties, text and colours included, onto every selected clip drawn by the same graphic. | Edit ▸ Paste Graphic Properties |
| Paste Attributes leaves graphic properties alone | Paste Attributes copies a clip's look, such as its position and opacity, and never carries a graphic's properties. | Edit ▸ Paste Attributes ⌥⌘V |
| Copying a graphic clip | Copying and pasting a graphic clip pastes a clip that names its module; the module's .js file, fonts and pictures are not copied. | Edit ▸ Copy ⌘C |
| Add Font to Graphics | Copies a .ttf or .otf file into the project's graphics/fonts/ folder, and every graphic in the project can then use it. | File ▸ Add Font to Graphics… |
| Exact font family names | A module must use the family name Frame Job reads from the font file, which can differ from the name Font Book shows. | Clip tab ▸ Graphic ▸ Source |
| Bundled fonts | Graphics can draw with seven bundled families on every Mac, with nothing to install. | |
| Generic font families | serif, sans-serif and monospace draw in bundled faces: Source Serif 4, Source Sans 3 and IBM Plex Mono. | |
| System fonts are never used | Graphics never use the fonts installed on your Mac, only the bundled ones and those you add, so a project draws the same everywhere. | |
| Add Image to Graphics | Copies a PNG, JPEG, GIF, WebP, SVG or SVGZ picture into graphics/assets/, where a module can draw it and a picture property lists it. | File ▸ Add Image to Graphics… |
| Picture names made legal | A picture whose name a module can't refer to is added under a legal name, and a notice says which. | File ▸ Add Image to Graphics… |
| Dropping files in the folder | Fonts and pictures may also be put straight into graphics/fonts/ and graphics/assets/ with the Finder or any tool. | Clip tab ▸ Graphic ▸ Source ▸ Reveal in Finder |
| Edit in any editor | A module is an ordinary file in the project package's graphics/ folder, so you can edit it in any editor or with your own tools. | Clip tab ▸ Graphic ▸ Source ▸ Reveal in Finder |
| Live reload | When a module, font or picture changes, the paused preview redraws and the inspector updates within a moment, with no reimport. | Clip tab ▸ Graphic ▸ Source ▸ Open in Editor |
| How many files are watched | Frame Job watches the graphics folder, its fonts/ and assets/ folders, and the first 16 files one by one. | |
| Reading a module's errors and warnings | An error means nothing drew and a warning means the graphic drew anyway, each with its line and column when they're known. | Clip tab ▸ Graphic ▸ Source |
| The error card | A graphic that fails draws a dark red error card in its own box, in place of the graphic, in the preview and in stills. | Preview |
| Kept versions | Whenever Frame Job sees a module's code replaced while the project is open, it keeps the old code, up to the last 10 versions. | File ▸ Restore Graphic Version… |
| API.md and API.d.ts beside your modules | Frame Job keeps the reference and its TypeScript definitions in graphics/, for an editor or an agent working in the folder. | Clip tab ▸ Graphic ▸ Source ▸ Reveal in Finder |
| Rename Graphic | Renames a module, and every clip drawn by it, on the timeline and inside nests, follows the new name. | File ▸ Rename Graphic… |
| Undo a rename | When a clip uses the module, undo puts the clips and the module's file back under the old name, and redo moves both forward. | Edit ▸ Undo |
| Delete Graphic | Deletes a module no clip uses, keeping its code so it can be restored. | File ▸ Delete Graphic… |
| Restore Graphic Version | Puts back the newest kept version of a module's code, deleted modules included. | File ▸ Restore Graphic Version… |
| Duplicate as New Graphic | Writes a copy of the module under a new name and switches the selected clips to it, so you can change one clip's look alone. | Clip tab ▸ Graphic ▸ Source ▸ Duplicate as New Graphic… |
| When a rename, delete or restore can't go ahead | These sheets close without a message on success. When Frame Job can't do it, it beeps, gives the reason and leaves the sheet open. | File ▸ Rename Graphic…, Delete Graphic…, Restore Graphic Version… |
| Show video inside a graphic | Put a graphic on the track directly above a video and make its track a matte, and the video shows only where the graphic draws. | Track ▸ Matte ▸ Alpha |
| Drawing ahead while playing | While a preview plays forward, Frame Job draws upcoming graphic frames on spare processor cores ahead of the playhead. | |
| Kept frames | A window keeps the graphic frames it has drawn in memory while it is open, so a stretch you play again comes from memory. | |
| The memory budget | Frames drawn ahead and frames kept share one budget, a quarter of your Mac's physical memory, and less when memory is short. | |
| Repeat frames skip the draw | When a frame's SVG matches one already drawn, such as during a hold or in a static graphic, Frame Job reuses that picture. | |
| The picture cache | PNG and JPEG pictures a graphic draws are decoded once and cached, so image-heavy graphics draw faster. | |
| Background render | When you leave Frame Job alone, the window you last played or moved the playhead in draws its graphics ahead of the paused playhead. | Frame Job ▸ Settings… ▸ Playback ▸ Background render ⌘, |
| Start after … seconds | How long Frame Job must be left alone before Background render starts, from 1 to 60 seconds, 5 by default. | Frame Job ▸ Settings… ▸ Playback ▸ Start after … seconds ⌘, |
| What stops Background render | Any activity in Frame Job stops the pass at once, and it starts again after the same wait. | Frame Job ▸ Settings… ▸ Playback |
| Exports keep the code they started with | An export draws each graphic as its module stood when you started or queued it, whatever you edit next. | File ▸ Export… ⌘E |
| Parallel rendering | An export draws its graphics ahead on worker threads, one fewer than the Mac's active cores. | |
| A broken graphic stops an export starting | An export that would draw a missing module or one that doesn't compile isn't started, and the message names each graphic and its error. | File ▸ Export… ⌘E |
| A graphic failing mid-export | A graphic that fails partway through stops the export at that frame, names the graphic, and writes no file. | File ▸ Export… |
| Graphic warnings in an export | Warnings a graphic gives while drawing don't stop the export, and a finished export reports each one with its name and frame. | Exporting sheet |
| The frozen clock | The clock inside a graphic is frozen, so nothing depends on when it's drawn and an export matches the preview. | Help ▸ Graphics Reference |
| Make a graphic with an agent | An agent can read the API, write a module, look at it, add fonts and pictures, place it, change it, animate it and check the frame. | |
| Read the API | graphic_reference returns the whole graphics API as Markdown, for an agent to read once before writing a graphic. | Help ▸ Graphics Reference |
| Write a module | write_graphic saves graphics/<name>.js, compiles it and reports the result, so an agent can fix it and write again. | |
| Look at frames on a contact sheet | render_graphic draws a module without placing a clip: up to 16 frames on a PNG contact sheet, each frame's number under it. | |
| One frame's SVG | render_graphic with format svg returns one frame's SVG text, its problems and the ctx it was drawn with. | |
| List and insert graphics | list_graphics lists what the Insert Graphic sheet shows, in its order, and insert_graphic is its Insert. | Insert ▸ Graphic… |
| Place a graphic clip with an agent | add_graphic_clip places a clip drawn by a module already in graphics/ on a chosen track and time. | |
| Change graphic clips with an agent | set_graphic changes what graphic clips are drawn from: another module, the size, the length or the properties. | Clip tab ▸ Graphic ▸ Properties, Size, Timeline |
| Read a module or the folder | get_graphic reads one module, or with no name lists the whole graphics folder. | Clip tab ▸ Graphic ▸ Source |
| Edit the folder with file tools | An agent may also edit the graphics folder with its own file tools, and the app sees the change within a moment. | |
| What undo covers for an agent | File writes in graphics/ are not undo steps and don't mark the project edited, while placing and changing clips are undo steps. | |
| Graphics in render_frame | When a graphic in the frame failed or warned, render_frame names it, its frame and the problem, and a failed one draws its error card. | |
| The Assistant and graphics | The Assistant tab can write, change, place, render, rename, delete, restore, export and import graphics. | Assistant tab Needs your Anthropic key |
| The shape of a module | A graphic is one JavaScript ES module exporting render, with optional meta and schema, and render returns an SVG string for each frame. | Help ▸ Graphics Reference |
| A module's meta | A module's meta gives its name, a new clip's default length and size, and a category and description for the Insert Graphic sheet. | Help ▸ Graphics Reference |
| The ctx argument | render receives ctx with the project's frame rate, the time, the graphic's length and progress, and the sizes. | Help ▸ Graphics Reference |
| Resolution-independent drawing | Writing every coordinate against ctx.width and ctx.height lets one graphic draw at any size or shape. | Help ▸ Graphics Reference |
| The schema | A module's schema declares its properties, which become inspector controls and the props render receives. | Help ▸ Graphics Reference |
| Property types | A schema entry's type is string, number, boolean, color, enum or asset. | Help ▸ Graphics Reference |
| Stored values that don't fit | props always has every schema key, and a stored value that doesn't fit gives a warning: the default is drawn and the frame still draws. | Help ▸ Graphics Reference |
| The SVG the engine draws | Frame Job draws render's SVG with resvg, including text, PNG, JPEG, GIF, WebP and SVG images, and compressed SVGZ. | |
| The sandbox | A graphic runs in a sandbox with no import, eval, Function, Math.random, fetch, files, clock, performance, WebAssembly or Intl. | Help ▸ Graphics Reference |
| Modern JavaScript | Modern syntax works in a module, such as template literals, ??, ?., destructuring and replaceAll. | Help ▸ Graphics Reference |
| The time budget | Each frame has 250 ms to draw in the preview and 2 s in an export, so a runaway graphic reports an error instead of hanging. | Help ▸ Graphics Reference |
| Size and memory limits | Each module gets 64 MiB of heap and 1 MiB of stack, a graphic is at most 8192 pixels a side, and its SVG at most 8 MiB. | Help ▸ Graphics Reference |
| The graphics reference | Help ▸ Graphics Reference opens the whole graphics API reference in your default Markdown app, with or without a project open. | Help ▸ Graphics Reference |
| svg() | svg(ctx, body, {background}) writes the root element with the right size and viewBox. | Help ▸ Graphics Reference |
| interpolate() | interpolate maps a value through matching input and output ranges. | Help ▸ Graphics Reference |
| Easing | Easing gives ready-made curves for interpolate. | Help ▸ Graphics Reference |
| spring() | spring gives a physical spring from one value to another. | Help ▸ Graphics Reference |
| interpolateColors() | interpolateColors blends colours in OKLab, so a blend looks even. | Help ▸ Graphics Reference |
| random() | random(seed) returns a repeatable number from 0 up to, but not including, 1, from a number or string seed. | Help ▸ Graphics Reference |
| noise2D() and noise3D() | noise2D and noise3D give smooth simplex noise for organic motion. | Help ▸ Graphics Reference |
| Path helpers | getLength, getPointAtLength and evolvePath measure an SVG path and draw it on. | Help ▸ Graphics Reference |
| measureText() | measureText(text, font) measures text with the same fonts the graphic draws. | Help ▸ Graphics Reference |
| wrapText() | wrapText(text, maxWidth, font) breaks text into lines that fit. | Help ▸ Graphics Reference |
| fitText() | fitText(text, maxWidth, font, {min, max}) returns the largest whole font size at which text fits on one line. | Help ▸ Graphics Reference |
| textLines() | textLines(lines, {x, y, lineHeight, anchor, fill, font}) writes a text element with one tspan per line. | Help ▸ Graphics Reference |
| escapeXml() | escapeXml(s) escapes & < > " ' so a prop is safe to write into markup. | Help ▸ Graphics Reference |
| formatNumber() | formatNumber(n, {decimals, separator}) groups thousands. | Help ▸ Graphics Reference |
| asset() | asset(name) returns the href of a file in graphics/assets/ for an image element. | Help ▸ Graphics Reference |
| Worked examples | The reference ends with six complete modules, each showing a common move, that you can copy into a graphic as written. | Help ▸ Graphics Reference |
Vertical and framing
| Feature | What it does | Where |
|---|---|---|
| What Frame Job finds in the picture | Frame Job finds who and what is in a clip's picture on this Mac with Apple's Vision framework, with nothing uploaded and no key needed. | Clip ▸ Follow Subject… |
| People in the picture | Finds each person's head and shoulders as a box, which can stand in for their face while the face can't be found. | View ▸ Show Subjects |
| No face recognition | Frame Job never puts a name to a face or recognises anyone, and nothing links a box in one sample to a box in the next. | |
| Show Subjects | Draws what has been found for the selected clip at the playhead over the preview. | View ▸ Show Subjects |
| What the outlines mean | Faces are outlined in yellow, people in teal and salient regions in purple with a dashed line. | View ▸ Show Subjects |
| The boxes stay on the picture | The boxes sit on the clip's picture wherever it is placed, and follow its speed, speed ramps and reversal. | View ▸ Show Subjects |
| The Not analyzed note | When nothing has been found for the clip's picture at the playhead, the preview says so at the clip's top-left corner. | View ▸ Show Subjects |
| Show Subjects is per window | Each window has its own setting, off in a new window and not remembered between launches, and it never changes an export or a saved frame. | View ▸ Show Subjects |
| Follow Subject | Frames each selected movie clip on its subject with eased moves on its action lane, on the current canvas. | Clip ▸ Follow Subject… |
| Follow | Chooses what the frame stays on: Subject, Faces, People, Salient Region or Center. | Clip ▸ Follow Subject… ▸ Follow |
| Zoom | Sets how tight the frame is, 100 to 400 %. | Clip ▸ Follow Subject… ▸ Zoom |
| Where Empty | Sets what the frame shows while there's nothing to follow: Show Whole or Center. | Clip ▸ Follow Subject… ▸ Where Empty |
| Follow Subject's summary | Under the controls, the sheet says what Follow will do before you press it. | Clip ▸ Follow Subject… |
| Analysis before framing | Clips not yet analysed get the Analyzing sheet first, while faces, people and shot changes are found on this Mac, then they're framed. | Clip ▸ Follow Subject… |
| It starts from the whole picture | Each clip is framed from the whole picture: its own positions and scales are replaced, and its volume, crop and other actions stay. | Clip ▸ Follow Subject… |
| How following moves: easing | The frame eases onto the subject and moves only when the subject leaves the middle of the frame, so a speaker who sways stays put. | Clip ▸ Follow Subject… |
| How following moves: cuts | The frame cuts with the picture at each shot change, landing on the first frame of the new shot. | Clip ▸ Follow Subject… |
| How following moves: a lost subject | When the subject is lost the frame holds for a second, then follows someone else in the shot or eases to your Where Empty choice. | Clip ▸ Follow Subject… |
| How following moves: coming back | The frame comes back once a subject has been in view for 0.6 s. | Clip ▸ Follow Subject… |
| How following moves: two people | The frame holds two people together when both fit in it. | Clip ▸ Follow Subject… |
| The blurred Backgrounds track | Where the frame shows the whole picture, a blurred copy of the clip goes on a new Backgrounds track at the back. | Clip ▸ Follow Subject… |
| Every move is an action | Every move is an ordinary action on the clip's action lane: select one and drag the picture on the canvas to nudge where its frame ends. | Action lane |
| Undo Follow Subject | Edit ▸ Undo Follow Subject takes the whole command back in one step. | Edit ▸ Undo Follow Subject |
| Screen recordings are skipped | A screen recording with a cursor file isn't followed by faces: it's left unanalysed and listed under the summary with the reason. | Clip ▸ Follow Subject… |
| Clips it cannot frame | A selected movie clip that cannot be followed is listed under the summary with the reason, and the others are still framed. | Clip ▸ Follow Subject… |
| Make Vertical Version | Makes a tall or square version of a landscape edit, for a phone, a reel or a square post, from the whole timeline in one step. | File ▸ Make Vertical Version… |
| Shape | Picks 9:16, 4:5 or 1:1, each shown with the size it makes. | File ▸ Make Vertical Version… ▸ Shape |
| Follow | Chooses what each movie clip follows, as in Follow Subject, with one more choice, Speaker. | File ▸ Make Vertical Version… ▸ Follow |
| Zoom | Sets how tight the frame is, 100 to 400 %, where 100 % is the smallest scale at which a picture covers the new canvas. | File ▸ Make Vertical Version… ▸ Zoom |
| Where Empty | Sets what a followed clip shows while there is nothing to follow, as in Follow Subject. | File ▸ Make Vertical Version… ▸ Where Empty |
| Make a copy | Opens the vertical version as a new untitled project, leaving this one unchanged; unticked, this project becomes the vertical version. | File ▸ Make Vertical Version… ▸ Make a copy |
| Make Vertical's summary | Under the controls, the sheet says what Make will do before you press it. | File ▸ Make Vertical Version… |
| Analysis before making | Movies not yet analysed get the Analyzing sheet first, while faces, people and shot changes are found on this Mac, then the version is made. | File ▸ Make Vertical Version… |
| Making another shape | What was found is kept in this project's cache and carried into the copy, so making another shape afterwards needs no analysis. | File ▸ Make Vertical Version… |
| Undo Make Vertical | It's one undo step: in the copy, Edit ▸ Undo Make Vertical gives back the landscape edit; in place, it takes the command back. | Edit ▸ Undo Make Vertical |
| Keeping a vertical sharp | A vertical canvas shows part of a landscape picture enlarged, so shoot 4K for footage you mean to make vertical. | File ▸ Make Vertical Version… |
| How a clip is judged | Each clip with a picture on the top-level timeline is treated by what it is, judged on the old canvas. | File ▸ Make Vertical Version… |
| Full-frame movies follow their subject | A movie clip that fills the old frame follows what you chose in Follow, with its own moves and actions kept inside the framing. | File ▸ Make Vertical Version… |
| Screen recordings follow the pointer | A screen recording with its cursor file follows the pointer instead of a face. | File ▸ Make Vertical Version… |
| Camera layouts are re-laid | Each camera layout switch is made again for the new canvas at the same time, length and curve, Side by Side becoming Stacked on a tall one. | File ▸ Make Vertical Version… |
| A layout changed by hand | A camera changed by hand after its switch is kept as placed, with its screen, and the summary says so. | File ▸ Make Vertical Version… |
| Stills, pictures and nests are centred | A still, picture or nest that fills the frame is centred. | File ▸ Make Vertical Version… |
| Everything else is kept as placed | Titles, other graphics, shapes, a picture-in-picture and any clip that doesn't fill the frame are moved and scaled to the new canvas. | File ▸ Make Vertical Version… |
| Blurred copies and background plates | A blurred copy behind a clip is removed when that clip is framed, otherwise re-filled to cover the new canvas, as a background plate is. | File ▸ Make Vertical Version… |
| Word captions are paged again | Word captions are split into pages again for the narrow frame, keeping every correction, as File ▸ Re-lay Captions for This Canvas does. | File ▸ Make Vertical Version… |
| Follow Speaker | With Follow on Speaker, a wide shot of two to four people that plays beside their microphones cuts to whoever is talking. | File ▸ Make Vertical Version… ▸ Follow ▸ Speaker |
| Microphones | A checkbox for each track holding a sound file: tick the ones that belong to the people in the shot, two to four. | File ▸ Make Vertical Version… ▸ Follow ▸ Speaker ▸ Microphones |
| Faces | One row per ticked microphone, with a pop-up of the faces Frame Job found in the longest shot it can frame this way. | File ▸ Make Vertical Version… ▸ Follow ▸ Speaker ▸ Faces |
| The automatic match | Frame Job matches each microphone to the face whose mouth moves while it talks, and sets the pop-ups when the match is clear. | File ▸ Make Vertical Version… ▸ Follow ▸ Speaker ▸ Faces |
| Choose a face | When the match isn't clear, each pop-up says Choose a face and you pick each microphone's face yourself. | File ▸ Make Vertical Version… ▸ Follow ▸ Speaker ▸ Faces |
| When Make is offered | Make is offered once two to four microphones are ticked, a shot plays beside two of them and every ticked microphone has a face of its own. | File ▸ Make Vertical Version… ▸ Follow ▸ Speaker |
| The sheet comes back after analysis | With Speaker, the sheet comes back after the analysis with your choices kept, so you can confirm who's on each microphone before Make. | File ▸ Make Vertical Version… ▸ Follow ▸ Speaker |
| Camera Layout | Switches a camera clip and the screen behind it between layouts as they play: move the playhead to the moment and choose one. | Clip ▸ Camera Layout ▸ |
| Corner | The camera in a square-cornered box in the corner you choose, showing its whole picture. | Clip ▸ Camera Layout ▸ Corner ▸ |
| Rounded Corner | The same corner box with rounded corners. | Clip ▸ Camera Layout ▸ Rounded Corner ▸ |
| Circle | The largest square of the camera picture, cropped to a circle in the corner you choose. | Clip ▸ Camera Layout ▸ Circle ▸ |
| Side by Side | The screen fitted in the left two-thirds and the camera cropped to fill the right third. | Clip ▸ Camera Layout ▸ Side by Side |
| Stacked | The screen across the top and the camera cropped to fill the rest below it. | Clip ▸ Camera Layout ▸ Stacked |
| Camera Full | The camera fills the canvas. | Clip ▸ Camera Layout ▸ Camera Full |
| Screen Only | The camera is hidden, though its sound carries on, and the screen goes to its full placement. | Clip ▸ Camera Layout ▸ Screen Only |
| Which clips it uses | The camera and screen are worked out from the selection and the playhead, or the track named Camera when nothing is selected. | Clip ▸ Camera Layout ▸ |
| The switch | A switch eases over 0.5 s from the playhead, as a layout action on each clip that you can retime on its action lane. | Clip ▸ Camera Layout ▸ |
| How far a layout reaches | A layout holds until the next switch, so a camera cut into pieces stays in the corner. | Clip ▸ Camera Layout ▸ |
| When a switch can't be made | A switch that can't be made changes nothing: Frame Job beeps and the foot of the inspector gives the reason. | Clip ▸ Camera Layout ▸ |
| The Layout section | With one video clip selected, the Picture sub-tab's Layout section makes the same switch and lets you choose how long it takes. | Clip tab ▸ Picture ▸ Layout |
| Layout | Choose Corner, Side by Side, Stacked, Camera Full or Screen Only. | Clip tab ▸ Picture ▸ Layout ▸ Layout |
| Shape | Choose Square, Rounded or Circle for a corner layout. | Clip tab ▸ Picture ▸ Layout ▸ Shape |
| Corner | Choose which canvas corner the camera sits in. | Clip tab ▸ Picture ▸ Layout ▸ Corner |
| Duration | Sets how long the switch takes, from 0.01 to 10 s, starting at 0.5 s. | Clip tab ▸ Picture ▸ Layout ▸ Duration |
| Switch at Playhead | Does what the menu does, with this clip as the camera and the clip drawing behind it as the screen. | Clip tab ▸ Picture ▸ Layout ▸ Switch at Playhead |
| The crop centred on the person | Circle, Side by Side and Stacked centre the camera's crop on the person when its person masks already exist for every frame it plays. | Clip ▸ Camera Layout ▸ |
| A layout meets a zoom | Frame Job won't switch when a clip it would move holds a zoom or another moving action after the playhead. | Clip ▸ Camera Layout ▸ |
| Lay out the clips in a nest? | When a nest would let a switch go ahead, a sheet offers to nest those clips first, so the layout moves the nest and the zoom plays inside it. | Clip ▸ Camera Layout ▸ |
| Reframe a clip with an agent | An agent fits one clip to the current canvas, say a landscape recording on a 1080 × 1920 canvas, with every framing choice in its hands. | Clip ▸ Follow Subject… |
| Agent framing: follow a subject | Follows a face; where there is none, a person; where there is neither, a salient region. | Clip ▸ Follow Subject… ▸ Follow ▸ Subject |
| Agent framing: follow faces, people or salient regions | Follows only faces, only people or only salient regions. | Clip ▸ Follow Subject… ▸ Follow |
| Agent framing: follow the pointer | Follows a screen recording's recorded pointer, from its media's cursor file. | File ▸ Make Vertical Version… |
| Agent framing: follow the speaker | Frames a wide shot of two to four people on whoever is talking, each person with a microphone of their own. | File ▸ Make Vertical Version… ▸ Follow ▸ Speaker |
| Agent framing: hold on the centre | Holds the frame on the middle of the picture for the whole clip. | Clip ▸ Follow Subject… ▸ Follow ▸ Center |
| Agent framing: show the whole picture | Shows the whole picture for the whole clip, scaled to fit the canvas. | File ▸ Make Vertical Version… |
| Agent framing: lay out camera layouts again | Lays a camera clip's camera layouts, and its screen's, out again on the current canvas. | File ▸ Make Vertical Version… |
| Agent framing: rescale from an older canvas | Rescales a clip from the canvas it was placed on to the current one, its actions' positions and scales moving with it. | File ▸ Make Vertical Version… |
| Agent framing: how tight the frame is | Sets how tight the frame is, from 1 to 4, where 1 is the scale that fills the canvas. | |
| Written as ordinary edits | The framing is written as the clip's position and scale and one action per move, each of which you can change afterwards like any other. | Action lane |
| Undo Reframe Clip | Edit ▸ Undo Reframe Clip takes the whole framing back in one step. | Edit ▸ Undo Reframe Clip |
| A clip that already has actions | A clip keeps the actions it has: a zoom or pan still happens inside the new framing, and a volume or speed action does what it did. | File ▸ Make Vertical Version… |
| A shot change inside an action | A shot change inside an action cuts it in three, so a steady volume change sounds as it did and an eased one eases again on each side. | |
| Agent framing: start from the whole picture | An agent can replace the clip's own moves: every position and scale its actions set is removed first, then the clip is framed. | |
| Agent framing: a blurred copy behind | An agent can name a track behind the clip, and a blurred copy goes there where the framing shows the whole picture. | Clip ▸ Add Blurred Background |
| Agent framing: waiting for analysis | If the part of the file a clip plays hasn't been analysed, it's analysed first, and the agent waits up to a minute. | |
| When an agent can't frame a clip | A clip that can't be framed is left as it was, and the agent is told why. |
Multicam
| Feature | What it does | Where |
|---|---|---|
| Multicam on ordinary tracks | A show filmed with several cameras is cut as ordinary clips on ordinary tracks, one track per camera, with no special multicam clip. | Timeline tracks |
| One camera per track, lined up in time | Put each camera's recording on a track of its own and line them up in time. | Clip ▸ Synchronize Audio |
| Camera names come from track names | Name each track after its camera, because the track names are what Switch Angle and the Switch by Speaker sheet list. | Double-click the track's header |
| The program track | Paste a camera's clip onto a new track in front of the others and split it into shots, or let Switch by Speaker write it. | Clip ▸ Split ⌘T |
| Camera tracks can stay shown or be hidden | The camera tracks stay underneath the program, shown or hidden, and they still work as angles either way. | The hide switch in the track header, or Hide Video in its right-click menu |
| Choosing the microphones | Select separate microphone files with the cameras and they're the microphones; with none, each camera with sound is its own. | Switch by Speaker sheet ▸ Microphone pop-ups |
| Switch by Speaker | Cuts a whole program track from a conversation by listening to each microphone and showing whoever is talking. | Clip ▸ Switch by Speaker… |
| Synchronize Audio first | Switch by Speaker trusts where the clips sit, so the recordings must be in sync before you run it. | Clip ▸ Synchronize Audio |
| When Switch by Speaker is available | The item is available when the selection holds pictures on two or more tracks and a clip with its sound on. | Clip ▸ Switch by Speaker… |
| Speaker rows | One row per person pairs that person's microphone with the camera that shows them. | Switch by Speaker sheet ▸ Speaker rows |
| The range it cuts | The cut covers the In–Out range when one is set, otherwise the selected camera clips' whole length. | Clip ▸ Switch by Speaker… |
| The summary line | The line under the controls says what Switch will do, or every reason it can't go ahead. | Switch by Speaker sheet, summary under the controls |
| A camera linked to its detached sound | A camera clip linked to its detached sound stops the cut if it crosses the range, and the sheet names the clip. | Switch by Speaker sheet |
| One undo step | Pressing Switch applies the whole cut as a single undo step named Switch by Speaker. | Switch by Speaker sheet ▸ Switch |
| The new Program track | Switch adds a track named Program in front of the cameras, with a silent piece of the chosen camera for each shot. | Switch by Speaker sheet ▸ Switch |
| Camera tracks hidden after switching | Switch hides the camera tracks so only the program shows; a track with other material stays, its pictures off in the range. | Switch by Speaker sheet ▸ Switch |
| What stays untouched | Nothing outside the range changes and the microphones aren't edited, so you hear the same sound unless you mute the cameras. | Switch by Speaker sheet ▸ Switch |
| Wide | Your wide shot: it opens the cut and shows during crosstalk, long monologues and gaps in another camera. | Switch by Speaker sheet ▸ Wide |
| Minimum shot | Sets the shortest shot, from 0.5 to 30 s; a shorter one merges into a neighbour that covers it. | Switch by Speaker sheet ▸ Minimum shot |
| Cut before speech | Sets how long before a new speaker's first word the cut comes. | Switch by Speaker sheet ▸ Cut |
| Late cuts under heavy bleed | With heavy bleed in a noisy room a cut can land later than Cut before speech asks. | Switch by Speaker sheet ▸ Cut |
| Crosstalk shows | Chooses what is shown while two people talk at once for a second or more. | Switch by Speaker sheet ▸ Crosstalk |
| Ignore bleed | Sets how far below a microphone's own speaker a voice must be to count as bleed, never as that person talking. | Switch by Speaker sheet ▸ Ignore bleed |
| Cut to the wide after | Breaks up a long monologue with the wide for one minimum shot. | Switch by Speaker sheet ▸ Cut to the wide after |
| Mute the cameras' own sound | Switches the cameras' scratch sound off inside the range. | Switch by Speaker sheet ▸ Mute the cameras' own sound |
| Write to | Writes the new cut over an earlier Program track instead of adding another track. | Switch by Speaker sheet ▸ Write to |
| Remembered values | Minimum shot, Cut, Crosstalk and Ignore bleed are kept for next time when you change one and press Switch. | Switch by Speaker sheet |
| One microphone for everyone | With one shared microphone, Switch by Speaker decides who talks from the cameras' pictures. | Clip ▸ Switch by Speaker… |
| The Analyzing sheet for faces | When a camera's faces have not been found yet, an Analyzing sheet finds them on this Mac before the Switch by Speaker sheet opens. | Analyzing sheet, then the Switch by Speaker sheet |
| The one-microphone sheet | For one shared microphone the sheet has one Microphone pop-up and lists the Cameras. | Switch by Speaker sheet ▸ Microphone, Cameras |
| Wide in the one-microphone form | Choose a Wide to show it during crosstalk; that camera then takes no part in deciding who talks. | Switch by Speaker sheet ▸ Wide |
| Faces only guess | The summary warns that faces only guess who is talking, so look through the result. | Switch by Speaker sheet, summary |
| Switch Angle | Replaces one shot with another camera's picture, to fix a single cut or pick shots by hand. | Clip ▸ Switch Angle ▸ |
| The camera list | The submenu lists, front first, up to nine other tracks whose video clips cover the shot's whole span. | Clip ▸ Switch Angle ▸ |
| Tracks with the same name | Two listed tracks with the same name are told apart by their position from the back. | Clip ▸ Switch Angle ▸ |
| No Covering Angle | The submenu holds one greyed item when there is nothing to switch to. | Clip ▸ Switch Angle ▸ No Covering Angle |
| Greyed camera items | Cameras are listed but greyed when the shot's track is locked, the shot is linked to detached sound, or a sheet is open. | Clip ▸ Switch Angle ▸ |
| The shot is replaced in sync | The new clip sits on the shot's own track, over the same span, and shows the camera's own frame at every moment. | Clip ▸ Switch Angle ▸ |
| A camera that stopped and started | A shot crossing the end of one camera clip and the start of the next becomes two pieces, one from each file. | Clip ▸ Switch Angle ▸ |
| Overlapping camera clips | Where two of a camera's clips overlap, the later one takes over at its own start. | Clip ▸ Switch Angle ▸ |
| What a switched shot keeps | The shot keeps its span, whether its picture and sound are on, and the transitions at both of its edges. | Clip ▸ Switch Angle ▸ |
| What a switched shot loses | A punch-in, a grade or an action on the old shot isn't copied; the new piece has the camera clip's settings. | Clip ▸ Switch Angle ▸ |
| Undo and selection | The whole switch is one undo step, Switch Angle, and the new pieces are selected afterwards. | Clip ▸ Switch Angle ▸ |
| A transition that no longer fits | A transition the camera's piece is too short for is dropped, leaving a plain cut, and the undo step says so. | Clip ▸ Switch Angle ▸ |
| When a switch fails | When a switch can't be done nothing changes, and Frame Job beeps and says why at the foot of the inspector. | Clip ▸ Switch Angle ▸ |
| Copy pieces of a clip to another track (agents) | An agent can copy parts of a clip onto another track at the same times, so a piece of a synced camera stays in sync. | MCP tool copy_pieces |
| Shortest turn that cuts (agents) | An agent can set the shortest turn that cuts, from 0.2 to 10 s, a value the sheet doesn't show. | MCP tool switch_by_speaker |
| How far a microphone must lead (agents) | An agent can set how far one active microphone must lead the others to count alone, a value the sheet doesn't show. | MCP tool switch_by_speaker |
| Preview a cut without editing (agents) | With apply: false, an agent sees the shots and how many edits and clips they'd make, and nothing in the project moves. | MCP tool switch_by_speaker |
| Check which mode ran (agents) | Every result says whether microphones or faces decided, and with faces a note warns that the cuts are a guess. | MCP tool switch_by_speaker |
| Waiting for faces (agents) | Where the sheet would show Analyzing, an agent's call waits up to 60 seconds for faces, then stops and keeps what it found. | MCP tool switch_by_speaker |
| When Switch by Speaker won't run (agents) | A call that can't run changes nothing, and most reasons are named together so they can be fixed in one go. | MCP tool switch_by_speaker |
Recording
| Feature | What it does | Where |
|---|---|---|
| The New Recording panel | One floating panel holds every recording choice: a display, a window, a camera or the microphone, straight into a project. | File ▸ New Recording… ⌥⌘N |
| The panel floats without taking focus | The panel stays above other windows and can be clicked while the app you are about to record stays in front. | New Recording panel |
| Return and Esc in the panel | Return presses Record and Esc presses Close, when the panel has keyboard focus. | New Recording panel Return Esc |
| The panel stays on screen as it grows | The panel pushes itself back onto its display when the countdown or a note makes it taller, so Cancel never ends up under the Dock. | New Recording panel |
| Choose what to record (Source) | Chooses what to record: one row per connected display by name, then Window…, Camera and Microphone Only. | New Recording panel ▸ Source |
| The panel's defaults | Until you change it, the panel records the main display at 60 fps and Nominal size, with System Audio on and no microphone. | New Recording panel |
| Controls grey out to fit the source | Rows that do not apply to the chosen source grey out and keep their values, so nothing jumps. | New Recording panel |
| The size note | A line under Size says what you will get for the chosen source. | New Recording panel ▸ Size |
| The panel's footnote | The text at the bottom left shows where recordings are saved, or the elapsed time during a camera recording or voice-over. | New Recording panel ▸ footnote |
| The panel remembers your choices | The panel reopens with your last display, devices, switches, rate, size and boxes, between launches. | New Recording panel |
| Choose where it lands (Record Into) | Chooses where the recording lands: New Project, or any open project by name. | New Recording panel ▸ Record Into |
| Record with an agent | An agent can record for 1 to 600 seconds with record_screen, with no panel and no countdown. | |
| Record a display | Choose a display by name in Source to record the whole of it. | New Recording panel ▸ Source Needs screen recording permission |
| Include Frame Job windows | Puts Frame Job's own editor and preview windows into a display recording, and into the window picker's list. | New Recording panel ▸ Include Frame Job windows Needs screen recording permission |
| Recording frame rate (Rate) | Sets the most frames per second the file may hold, 30 or 60 fps, and the frame rate of a new project made from the recording. | New Recording panel ▸ Rate |
| Recording size (Size) | Records at the display's point size, Nominal (points), or at every pixel, Best (pixels), which is twice the points on a Retina display. | New Recording panel ▸ Size |
| The panel hides while it records | The panel leaves the screen once a display or window recording starts, so it isn't in the picture, and the menu-bar item takes over. | New Recording panel |
| Record a window | Choose Window… and pick a window with macOS's picker: the recording is that window alone, at its own size. | New Recording panel ▸ Source ▸ Window… Needs screen recording permission |
| Which windows the picker lists | With Include Frame Job windows off the picker lists none of Frame Job's windows; with it on it lists them, but never the recorder panel. | New Recording panel ▸ Source ▸ Window… |
| Record needs a picked window | Pressing Record on Window… with nothing picked says so and starts no countdown, rather than recording the wrong thing. | New Recording panel ▸ Record |
| Record a camera on its own | With Source set to Camera, Frame Job records the chosen camera at the chosen format's highest frame rate, with no screen. | New Recording panel ▸ Source ▸ Camera Needs camera permission |
| Choose a camera | Chooses which connected camera to record, listing each by name. | New Recording panel ▸ Camera |
| Camera format | Chooses the size and frame rate the camera records at, with Best first. | New Recording panel ▸ Format |
| The best format | Best is the largest format wider than tall that reaches 30 fps or more, at that format's highest rate. | New Recording panel ▸ Format ▸ Best |
| Live camera preview | A live picture under Format shows the chosen camera at the chosen format, as the movie will record it. | New Recording panel ▸ under Format Needs camera permission |
| The camera's warm-up | The camera starts as soon as the panel shows it, and a cold camera gets up to a second to settle, so the recording starts steady. | New Recording panel Needs camera permission |
| The panel stays up while a camera records | The panel stays up while a camera records, with the meter live, the time in the footnote, and Stop and Pause or Resume buttons. | New Recording panel ▸ Stop |
| Where a camera recording lands | The movie lands on the front track if it fits, else a new front track, with any microphone on a new back track named Microphone. | New Recording panel |
| Record the camera too | With a display or Window… as the source, also records the chosen camera beside the screen, for a talking head over a screencast. | New Recording panel ▸ Record the camera too Needs screen recording permission, camera permission |
| Camera layout | Chooses how the camera lands beside the screen: Corner, Rounded Corner, Circle, Side by Side or Camera Full. | New Recording panel ▸ Layout |
| How far a landed layout reaches | The layout starts at the camera clip's first frame and ends with that stretch's screen or camera clip, whichever is later. | New Recording panel ▸ Layout |
| Remove the camera's background when it lands | Runs Clip ▸ Remove Background on the camera's clips as soon as they land, as its own undo step. | New Recording panel ▸ Remove the camera's background when it lands |
| The Camera track | Each stretch's camera movie goes on one new track named Camera, in front of everything, lined up with its screen clip. | New Recording panel ▸ Record the camera too |
| Camera clips stay ordinary clips | Each camera clip can be moved or given another layout afterwards, with Clip ▸ Camera Layout. | Clip ▸ Camera Layout ▸ |
| Record a voice-over | Choose Microphone Only to record narration with no picture, from the playhead. | New Recording panel ▸ Source ▸ Microphone Only Needs microphone permission |
| The panel stays up during a voice-over | The panel stays up with the meter live, the time in the footnote, and Stop and Pause or Resume buttons. | New Recording panel |
| Where a voice-over lands | Each stretch's file lands end to end from the playhead on one new back track named Microphone, as one Add Recording undo step. | New Recording panel ▸ Source ▸ Microphone Only Needs microphone permission |
| Record what your Mac plays (System Audio) | Records what the Mac plays, from every app but Frame Job, as the movie's own stereo 48 kHz sound track. | New Recording panel ▸ System Audio Needs screen recording permission |
| Frame Job's own sound is never recorded | System audio leaves out Frame Job, so you can play the timeline during a recording and its sound will not be in the file. | New Recording panel ▸ System Audio |
| Record your voice (Microphone) | Picks Off or a connected microphone to record beside the picture, into a second file and never into the movie. | New Recording panel ▸ Microphone Needs microphone permission |
| The recorder's level meter | A meter beside Microphone shows your level from the countdown on, so the 3, 2, 1 is your chance to check it. | New Recording panel ▸ Microphone Needs microphone permission |
| Your first words are kept | The microphone starts during the countdown, so the recording's first words are in the file. | New Recording panel |
| The microphone stays separate and aligned | The microphone file lands on one new back track named Microphone, lined up with the picture, so you can set each level on its own. | New Recording panel |
| Devices plugged in and removed | The Camera, Format and Microphone popups follow devices you plug in or remove, whenever the panel is idle. | New Recording panel |
| The three-second countdown | Pressing Record checks permissions, then counts 3, 2, 1 in the panel; you can cancel it. | New Recording panel ▸ Record |
| The Record button's states | The panel's main button reads Record, Cancel, Starting…, Stop, Stopping… and Adding… as the recording moves along. | New Recording panel |
| A start that fails or is abandoned | A recording that hasn't started within 20 seconds fails with a note instead of hanging, and you can stop while the button reads Starting… | New Recording panel ▸ Starting… |
| One recording at a time | Press Record while another recording runs or is paused, even an agent's, and after the countdown the panel says one is in progress. | New Recording panel ▸ Record |
| Pause and Resume | Pause a running recording and carry on later, from the menu-bar item, the File menu, or the panel for a camera or voice-over. | File ▸ Pause Recording |
| Stop Recording | Stops a running or paused recording and adds it to your project; while one runs, File ▸ New Recording… reads Stop Recording. | File ▸ Stop Recording ⌥⌘N |
| The Welcome window during a recording | The Welcome window's New Recording… never stops a recording: it beeps during your screen recording, otherwise it shows the panel. | Welcome window ▸ New Recording… |
| Stop from macOS's indicator | Stopping from macOS's own screen-recording indicator ends the recording and still adds it, with a note. | macOS menu-bar indicator |
| Paused recordings are stretches | A pause ends the current file and a resume starts a new one, so each stretch of the recording has its own set of files. | Menu-bar item ▸ Pause Recording |
| A recording carries on if the panel closes | Closing the panel during a camera recording or voice-over leaves it running, under the menu-bar item and File ▸ Stop Recording. | New Recording panel ▸ Close |
| Quit is held during a recording | Choosing Quit during a recording does not quit: it puts the recording's controls in front of you. | Frame Job ▸ Quit Frame Job ⌘Q |
| Stop an agent's recording | You can pause or stop an agent's recording from the same menu-bar item or the File menu, and what was recorded still lands. | Menu-bar item |
| The recording menu-bar item | While a recording runs the menu bar shows a coral ● and the elapsed time, and ❚❚ with the time held still while paused. | Menu-bar item |
| Pause, Resume and Stop from the menu bar | The item's menu offers Pause Recording and Stop Recording, or Resume Recording and Stop Recording while paused. | Menu-bar item |
| The keyboard mark | While a recording records shortcuts, a ⌨︎ mark follows the ● or ❚❚ and the menu starts with a greyed-out Recording keyboard shortcuts row. | Menu-bar item |
| A fixed width | The item is sized once, so other menu-bar items don't shift as the seconds go by or at a pause. | Menu-bar item |
| If macOS hides the item | macOS may drop the item from a crowded menu bar or behind the notch; File ▸ Stop Recording and Pause Recording still work. | File ▸ Stop Recording |
| Landing in an open project | A finished recording goes in at the chosen project's playhead as ordinary media, inside a nest if one is open. | New Recording panel ▸ Record Into |
| Stretches land touching on one track | A paused recording lands one clip per stretch, back to back on one track, never overlapping and never joined by a transition. | New Recording panel |
| Landed clips are selected | Every landed clip, microphone and camera included, is selected after the recording lands. | New Recording panel |
| One undo removes a landed recording | Everything landed in an open project is one undo step, Add Recording, which removes the clips and media and leaves the files on disk. | Edit ▸ Undo Add Recording |
| Landing as a new project | With New Project chosen, the recording opens as a new untitled project named after its file, at the movie's size and your Rate. | New Recording panel ▸ Record Into ▸ New Project |
| Landing waits for a drag | If you are dragging in the timeline when a recording ends, the landing waits for the drag, up to 20 seconds. | New Recording panel |
| The chosen project closed | If the project you chose closes while recording, the recording opens as a new project and the note says so. | New Recording panel note |
| When the panel comes back | The panel returns on its own, with a note, only if it was on screen when recording began and there's something to report. | New Recording panel note ⌥⌘N |
| Enhance the microphone when it lands | Runs Enhance Voice on the recording's microphone clips once they have landed and been analysed, as its own undo step. | New Recording panel ▸ Enhance the microphone when it lands Needs microphone permission |
| Zoom in on clicks | After the recording lands, runs Auto Zoom on its screen clips. | New Recording panel ▸ When it lands ▸ Zoom in on clicks |
| Show shortcuts | After the recording lands, runs Add Shortcut Overlays on its screen clips, at the bottom in the dark theme. | New Recording panel ▸ When it lands ▸ Show shortcuts Needs input monitoring permission |
| Speed up typing | After the recording lands and its speech is detected, runs Speed Up Typing on its screen clips with the sheet's last values. | New Recording panel ▸ When it lands ▸ Speed up typing Needs input monitoring permission |
| The fixed order | Remove Background, Enhance Voice, Auto Zoom, Add Shortcut Overlays and Speed Up Typing run in that order, each its own undo step. | New Recording panel ▸ When it lands |
| Problems show at the inspector's foot | If a landing step cannot run, the inspector's foot says why, with no beep and no sheet; a step with nothing to do stays quiet. | Inspector foot |
| The Recordings folder | Recordings are saved in ~/Movies/Frame Job Recordings, created the first time it is needed, and never inside the project package. | New Recording panel ▸ footnote |
| Dated names and collisions | Files are named by date and time, such as Screen Recording 2026-09-10 at 14.03.22.mov, and (2), (3) and so on are added if a name is taken. | |
| The screen movie | A screen recording is a QuickTime .mov in HEVC where your Mac offers it, else H.264, with system audio as one stereo 48 kHz track. | File ▸ New Recording… Needs screen recording permission |
| The microphone file | The microphone is written beside the movie as <movie name> (Microphone).m4a, an AAC file kept apart from the system sound. | New Recording panel ▸ Microphone Needs microphone permission |
| Voice-over files | A voice-over is an AAC file named Voice-over <date> at <time>.m4a, one file per stretch between pauses. | New Recording panel ▸ Source ▸ Microphone Only Needs microphone permission |
| Camera files | A camera recording is a QuickTime .mov at the camera's format, in HEVC where that size allows it, else H.264, with no sound of its own. | New Recording panel ▸ Source ▸ Camera Needs camera permission |
| Variable frame rate from a still screen | macOS delivers frames only when the screen changes, so a mostly still screen's file has a low, fractional frame rate; Rate is its maximum. | New Recording panel ▸ Rate |
| Cursor: Separate or In the picture | Separate keeps the pointer out of the movie so Frame Job draws it and you can restyle it; In the picture has macOS draw it in for good. | New Recording panel ▸ Cursor |
| Show Clicks | Shows each mouse click: with In the picture a ring is drawn into the movie, and with Separate the screen clips land with click ripples on. | New Recording panel ▸ Show Clicks Needs screen recording permission |
| What a Separate recording lands with | The clip gets a Cursor section with the pointer drawn; with Show Clicks too, Clicks is Ripple in the same undo step. | Clip tab ▸ Picture ▸ Cursor |
| What an In the picture recording lands with | The pointer is in the movie, the cursor file says so, and the clip shows no Cursor section, so nothing is drawn twice. | |
| The Cursor section | A recording's clip gets a Cursor section, after Background, to restyle the pointer Frame Job draws, unless the pointer is in the movie. | Clip tab ▸ Picture ▸ Cursor |
| Show or hide the pointer (Show cursor) | Turns the drawn pointer on or off for the clip. | Clip tab ▸ Picture ▸ Cursor ▸ Show cursor |
| Pointer size | Scales the drawn pointer, 25–800 %. | Clip tab ▸ Picture ▸ Cursor ▸ Size |
| Pointer style | Offers As recorded and Arrow, but both draw Frame Job's arrow; the only difference you'll see is the section's header. | Clip tab ▸ Picture ▸ Cursor ▸ Style |
| Frame Job's arrow | A black arrow with a white outline, 14 by 21 points at 100 %, redrawn for each Size so it stays crisp. | Clip tab ▸ Picture ▸ Cursor ▸ Style |
| Pointer smoothing | Calms a shaky pointer path: Off, Light, Medium or Strong. | Clip tab ▸ Picture ▸ Cursor ▸ Smoothing |
| Hide when idle | Fades the pointer out after a set time with no movement or click, and brings it back 0.15 s before it next moves. | Clip tab ▸ Picture ▸ Cursor ▸ Hide when idle |
| Click ripples (Clicks) | Draws a ring growing out of every click: None or Ripple. | Clip tab ▸ Picture ▸ Cursor ▸ Clicks |
| Ripple color | Sets the ring's colour, with opacity. | Clip tab ▸ Picture ▸ Cursor ▸ Ripple color |
| Ripple size | Sets how big the ring grows, 25–400 %. | Clip tab ▸ Picture ▸ Cursor ▸ Ripple size |
| Tidy the pointer in one click (Polish) | One button sets Smoothing to Medium and Hide when idle to 3 s. | Clip tab ▸ Picture ▸ Cursor ▸ Polish |
| Reset the pointer's settings | Puts every row of the clip's cursor settings back to its default. | Clip tab ▸ Picture ▸ Cursor ▸ Reset |
| Cursor settings through actions | With an action selected, Size and Ripple size animate across it, while Show cursor, Style, Clicks and Ripple color switch at its end. | Clip tab ▸ Picture ▸ Cursor |
| Paste Attributes carries the cursor | Paste Attributes copies a clip's cursor settings to another clip with the rest of its picture settings. | Edit ▸ Paste Attributes ⌥⌘V |
| Motion blur on the pointer | With the clip's Motion Blur above 0, a moving pointer is streaked along its path across the shutter, even when the clip itself stands still. | Clip tab ▸ Picture ▸ Transform ▸ Motion Blur |
| The pointer is part of its clip | The pointer is drawn inside its clip's layer, so it follows the clip's zooms, placement, crop and grade, in the preview, frames and exports. | Clip tab ▸ Picture ▸ Cursor |
| The cursor loads in the background | A cursor file loads without blocking the preview: the frame draws without it until ready, then redraws. | Clip tab ▸ Picture ▸ Cursor |
| The pointer on a reversed clip | A reversed clip plays its pointer reversed too. | Clip tab ▸ Picture ▸ Cursor |
| The cursor file | Each screen recording keeps a .fjcursor file beside its movie, holding the pointer's path, every click and scroll, and any shortcuts. | Needs screen recording permission |
| Cursor files found on import | Importing a movie picks up a same-named .fjcursor beside it, if that's a cursor file made for a movie of exactly this size. | File ▸ Add Media… |
| Cursor files after a relink | Relinking takes the cursor file beside the new movie, else keeps the existing one if it is still there and the new movie is the same size. | Media tab ▸ right-click a row ▸ Relink… |
| The Media tab's Cursor section | Selecting a video in the Media tab names its cursor file, or says it is missing or absent. | Media tab ▸ Cursor |
| Attach a cursor file (Locate…) | Attaches or re-points a .fjcursor file for the selected video. | Media tab ▸ Cursor ▸ Locate… |
| Forget a cursor file (Remove) | Forgets the selected video's cursor file; the file itself stays on disk. | Media tab ▸ Cursor ▸ Remove |
| Cursor problems never fail a recording or export | If a cursor file can't be written or drawn, the recording still lands and the export still finishes, and Frame Job says what's missing. | New Recording panel note |
| Read cursor events with an agent | An agent can read a recording's clicks, scrolls, shortcuts, typing stretches and, if asked, the pointer's path, with get_cursor_events. | |
| Record shortcuts | With a display or window source, notes each keyboard shortcut you press and when you type, never what you type, in the cursor files. | New Recording panel ▸ Record shortcuts Needs input monitoring permission |
| What counts as a shortcut | A shortcut is any key pressed with ⌘ or ⌃, or ⌥ with an arrow, Delete, Forward Delete, Return, Enter, Tab or Esc. | New Recording panel ▸ Record shortcuts Needs input monitoring permission |
| Typed text is never recorded | Every other key press, and every key held until it repeats, is stored only as a moment in time, never which key. | New Recording panel ▸ Record shortcuts Needs input monitoring permission |
| Nothing is recorded during secure input | Nothing is recorded while any app holds secure input, such as a password field, not even a typing mark. | |
| Auto Zoom | Zooms a screen recording in where things happen, from its cursor file: in at each click, holding while you work, out when you stop. | Clip ▸ Auto Zoom… |
| How far Auto Zoom goes in | How far in, as a multiple of the clip's own size, from 1.25 to 4×. | Clip ▸ Auto Zoom… ▸ Zoom |
| How long a zoom takes (Arrive) | How long the zoom takes: it starts this long before the click and is fully in on the click. | Clip ▸ Auto Zoom… ▸ Arrive |
| How long a zoom holds (Stay) | How long the zoom holds after the last click or typing. | Clip ▸ Auto Zoom… ▸ Stay |
| Follow the cursor while zoomed | Pans along when the pointer stays near the edge of the zoomed view. | Clip ▸ Auto Zoom… ▸ Follow the cursor while zoomed |
| Zoom on typing | Also zooms on stretches of typing, aimed at the last click before them. | Clip ▸ Auto Zoom… ▸ Zoom on typing Needs input monitoring permission |
| Replace existing zooms | Removes the clips' existing zooms first; off keeps your own. | Clip ▸ Auto Zoom… ▸ Replace existing zooms |
| Motion blur on zooms | Gives each zoomed clip a 50 % motion blur (a 180° shutter), in the same step, so zooms and pans blur along their movement. | Clip ▸ Auto Zoom… ▸ Motion blur |
| Auto Zoom's live summary | A line under the controls says what Zoom would do, or why it can't, and updates as you change them. | Clip ▸ Auto Zoom… |
| Auto Zoom remembers its settings | Zoom, Arrive, Stay, Follow, Replace and Motion blur are kept for next time, if you changed them and chose Zoom. | Clip ▸ Auto Zoom… |
| How a visit is planned | Clicks and typing are grouped into visits: a zoom-in, a pan to each later click outside the middle 60 % of the view, and a 0.8 s zoom back. | Clip ▸ Auto Zoom… |
| Zooms are ordinary actions | Each planned zoom is a normal action on the action lane that you can move, retime, change or delete. | Clip ▸ Auto Zoom… |
| Auto Zoom across a split | The halves of a split clip are planned as one recording, and every zoom out returns to the first half's placement. | Clip ▸ Auto Zoom… |
| What stops Auto Zoom | Auto Zoom won't plan a reversed clip, a clip with no picture, one placed smaller than the canvas, or one whose cursor file is missing. | Clip ▸ Auto Zoom… |
| Add Shortcut Overlays | Shows each shortcut you pressed while recording as animated keycaps at that moment, one graphic clip each, in one undo step. | Clip ▸ Add Shortcut Overlays Needs input monitoring permission |
| Overlays follow the clip's timing | An overlay starts on the frame where its press plays, following the clip's speed and any ramp; a trimmed-away shortcut gets none. | Clip ▸ Add Shortcut Overlays |
| Overlay duration | Each overlay lasts 1.5 s, and never less than the keycaps need to press in turn and fade out. | Clip ▸ Add Shortcut Overlays |
| Repeats are counted | Pressing the same shortcut again before its overlay ends keeps it up 1.5 s past the last press, labelled ×2, ×3 and so on. | Clip ▸ Add Shortcut Overlays |
| Shortcuts pressed close together | A new shortcut takes over once the first has had its minimum; one more than half a second late is left out, and a sheet says so. | Clip ▸ Add Shortcut Overlays |
| The Shortcuts track | Overlays go on the front-most track named Shortcuts when it is usable, otherwise on a new Shortcuts track at the front. | Clip ▸ Add Shortcut Overlays |
| The Keyboard keys template | Overlays are drawn by the project's copy of the bundled Keyboard keys template, written the first time something is placed and reused after. | Clip ▸ Add Shortcut Overlays |
| What the overlay sheet tells you | A sheet says when no shortcut was found, some came too close to show, a clip or cursor file can't be used, or the project changed. | Clip ▸ Add Shortcut Overlays |
| Speed Up Typing | Plays the typing in a screen recording faster, reading it from the cursor file, where nobody speaks and no shortcut shows, in one undo step. | Clip ▸ Speed Up Typing… Needs input monitoring permission |
| What a typing stretch is | A typing stretch is at least 3 typed keys, each less than 1 s after the last. | Clip ▸ Speed Up Typing… |
| How much faster typing plays (Rate) | How much faster the typing plays, from ×2 to ×8. | Clip ▸ Speed Up Typing… ▸ Rate |
| Shortest stretch | Typing shorter than this is left alone, from 1 to 30 s. | Clip ▸ Speed Up Typing… ▸ Shortest stretch |
| Keep pitch on sped-up typing | Keeps the sped-up sound at its own pitch; off, it rises like a fast tape. | Clip ▸ Speed Up Typing… ▸ Keep pitch |
| Speed Up Typing's live summary | The sheet says what Apply would do before you press it, or why nothing would change. | Clip ▸ Speed Up Typing… |
| Speed Up Typing remembers its settings | Rate, Shortest stretch and Keep pitch are kept for next time, if you changed them and chose Apply. | Clip ▸ Speed Up Typing… |
| Speech stays at normal speed | Any part of a stretch with speech under it, on any track, stays at normal speed, using on-device speech detection saved with the project. | Clip ▸ Speed Up Typing… |
| Shortcuts stay at normal speed | A recorded shortcut and its overlay are never sped up, so add the overlays first. | Clip ▸ Speed Up Typing… |
| Clean edges | Each sped stretch keeps 0.3 s at normal speed at both ends. | Clip ▸ Speed Up Typing… |
| Typing across a split recording | The halves of a split recording are treated as one when you select both and they touch, so typing across the cut is one stretch. | Clip ▸ Speed Up Typing… |
| Everything stays in step | Each stretch is sped with Retime Range on every unlocked track, so camera and microphone stay in sync and everything after moves up. | Clip ▸ Speed Up Typing… |
| Asked before a clip goes silent | If speeding would take a clip with sound past ×12, where its sound is left out, an alert asks first; Cancel leaves the sheet open. | Clip ▸ Speed Up Typing… |
| When Speed Up Typing can't run | It's all or nothing: if any stretch can't be sped, nothing changes, and the sheet names the stretch and the reason. | Clip ▸ Speed Up Typing… |
| Asked only when you press Record | Frame Job asks for macOS permissions only when you press Record in the panel, never during a countdown or from an agent's tool. | New Recording panel ▸ Record |
| The order of the permission checks | Record checks Screen Recording, then Input Monitoring, then Camera, then Microphone, all before the countdown. | New Recording panel ▸ Record |
| Screen Recording permission | The first press of Record shows macOS's prompt; later presses open System Settings at the right pane, with a note saying to relaunch. | System Settings ▸ Privacy & Security ▸ Screen & System Audio Recording Needs screen recording permission |
| Microphone permission | Asked only when a microphone is chosen: the countdown starts as soon as you allow it, and a prior denial opens the Microphone pane. | System Settings ▸ Privacy & Security ▸ Microphone Needs microphone permission |
| Camera permission | Asked only with Source Camera or Record the camera too, after Screen Recording and before the microphone. | System Settings ▸ Privacy & Security ▸ Camera Needs camera permission |
| Input Monitoring permission | Record shortcuts needs Input Monitoring, which shows no prompt, so pressing Record opens the pane and tells you to add Frame Job with +. | System Settings ▸ Privacy & Security ▸ Input Monitoring Needs input monitoring permission |
| Starting Frame Job from a terminal | A Frame Job started from a terminal or another app runs under that app's permissions, and the note names the process that launched it. | New Recording panel note |
| macOS's recurring alert | macOS periodically asks whether to keep letting Frame Job record; if the panel stays on Starting…, look for that alert. | |
| The panel steps aside | While a macOS prompt or System Settings is up, the panel stops floating so it doesn't cover them. | New Recording panel |
| A camera that stops | If the camera stops, a camera recording ends and lands what was captured; beside a screen, the screen keeps recording. | New Recording panel note |
| A microphone that stops | A microphone that stops doesn't end the recording: the picture keeps going, the meter goes silent and a note says so. | New Recording panel note |
| A voice-over whose microphone stops | If the microphone stops on its own, the voice-over ends there and what was recorded lands with a note. | New Recording panel note |
| A sleeping display or the system | If the display sleeps or goes away, or the system stops the recording, what was captured is added, with a note. | New Recording panel note |
| A locked screen | If the screen is locked or every display is asleep, a screen recording can't start until one wakes. | |
| When Resume fails | If Resume fails the recording stays paused and the panel's note carries the reason, so you can retry, or stop and land what you have. | Menu-bar item ▸ Resume Recording |
| Unreadable stretches are left out | A stretch whose movie will not read is left out and named in the note, and the readable stretches land. | New Recording panel note |
| A left-out stretch's voice still lands | If a left-out stretch's microphone file reads, it lands without its picture, in the slot the picture would have had. | New Recording panel note |
| A file too short for one frame | A file too short for one frame lands in the Media tab with a note, and the rest of the recording lands as usual. | New Recording panel note |
| A failed landing names the files | If a recording cannot be added, the note names every saved file so nothing is lost. | New Recording panel note |
| Very long recordings | A recording longer than 9:59:59 shows a label wider than the menu-bar item was sized for. | Menu-bar item |
Export
| Feature | What it does | Where |
|---|---|---|
| The export sheet | One sheet exports the timeline as a movie, an audio file or an animated image, and shows what the file will be before anything is written. | File ▸ Export… ⌘E |
| Controls a format cannot use | A control the chosen format can't use is greyed out rather than hidden, so it never affects the file. | Export sheet |
| The readout line | A line under the controls states the size, frame rate and duration the file will actually have. | Export sheet ▸ readout |
| The footnote | A small line under the readout names the file's codec and container, plus any rates, stems or loudness target you chose. | Export sheet ▸ footnote |
| Estimated export time | AV1 and VP9 exports show a second readout line estimating how long the export will take. | Export sheet ▸ readout |
| The remembered last choice | The sheet reopens on the last choices you exported with, in every document. | File ▸ Export… |
| Cancel, Export… and Add to Queue | The sheet ends in three buttons: close it, write the file now, or queue it and keep editing. | Export sheet |
| The fifteen formats | The Format popup offers fifteen encodings, each a container and a codec together. | Export sheet ▸ Format |
| Sound in each format | Every file with sound is stereo at 48 kHz, in AAC, Opus or LPCM depending on the format. | Export sheet ▸ Format |
| Changing the format | Changing the format rebuilds the Size list and returns it to that format's default, and leaves your other choices alone. | Export sheet ▸ Format |
| Software and hardware encoders | AV1 and VP9 are encoded in software and take longer than the HEVC formats, which use the Mac's hardware encoder. | Export sheet ▸ Format |
| A Mac with no encoder for a format | A Mac with no encoder for a format reports it and leaves no file. | Exporting sheet |
| H.264 (MP4) | The default export: H.264 video in an MP4 that every player and upload form takes. | Export sheet ▸ Format ▸ H.264 (MP4) |
| HEVC (MP4) | HEVC video in an MP4: a smaller file at the same picture, though not yet accepted everywhere. | Export sheet ▸ Format ▸ HEVC (MP4) |
| HEVC 10-bit (MP4) | HEVC Main 10 in an MP4, so a 10-bit source keeps its gradients in a delivery file. | Export sheet ▸ Format ▸ HEVC 10-bit (MP4) |
| HEVC with Alpha (MOV) | A small 8-bit delivery movie that keeps a transparent canvas, for Safari, QuickTime and Apple's apps. | Export sheet ▸ Format ▸ HEVC with Alpha (MOV) |
| Fast start for delivery files | MP4 and M4A files are written with their index at the front, so a player can start before the whole file has downloaded. | |
| ProRes 422 (MOV) | A 10-bit editing master for another application, at ProRes's fixed profile rate. | Export sheet ▸ Format ▸ ProRes 422 (MOV) |
| ProRes 4444 (MOV) | A 12-bit master that keeps the alpha channel, for a title or lower third another application will composite. | Export sheet ▸ Format ▸ ProRes 4444 (MOV) |
| AV1 (MP4) | AV1 video and AAC sound in an MP4, always 10-bit, aiming for HEVC's picture or better at the same rate. | Export sheet ▸ Format ▸ AV1 (MP4) |
| AV1 (WebM) | The same AV1 picture in a WebM file with Opus sound, for the web. | Export sheet ▸ Format ▸ AV1 (WebM) |
| VP9 (WebM) | VP9 video and Opus sound in a WebM file, for a web page, encoded by the VP9 encoder built into Frame Job. | Export sheet ▸ Format ▸ VP9 (WebM) |
| VP9 with Alpha (WebM) | VP9 (WebM) that keeps a transparent canvas, for a title or lower third a web page plays over its own background in Chrome or Firefox. | Export sheet ▸ Format ▸ VP9 with Alpha (WebM) |
| The rate as a soft cap | On AV1 and VP9 the rate is a soft cap: a constant quality chosen to match HEVC at that rate, so the file usually stays under it. | Export sheet ▸ Quality |
| AV1 on M1 and M2 Macs | On M1 and M2 Macs neither Frame Job nor QuickTime can play an AV1 file, and Frame Job can't import one, though it can still export it. | |
| Animated GIF | A short, silent, looping GIF sized to be sendable. | Export sheet ▸ Format ▸ Animated GIF |
| Animated PNG | A lossless, silent, looping true-colour animation with real transparency. | Export sheet ▸ Format ▸ Animated PNG |
| The 600-frame limit | An animated GIF or APNG holds at most 600 frames, and a longer range shows a sentence in the readout and greys out Export… and Add to Queue. | Export sheet ▸ readout |
| Fitting inside the size | GIF and APNG list their own cap first and fit the picture inside the chosen size, keeping its shape and never enlarging it. | Export sheet ▸ Size |
| Audio only (M4A) | Writes the timeline's sound with no picture as a compressed AAC file, the smallest to send. | Export sheet ▸ Format ▸ Audio only (M4A) |
| Audio only (WAV) | Writes the mix as uncompressed sound, for a mastering engineer or a DAW. | Export sheet ▸ Format ▸ Audio only (WAV) |
| Audio only (AIFF) | Writes the same samples as WAV in an AIFF file. | Export sheet ▸ Format ▸ Audio only (AIFF) |
| The 48 kHz stereo master | Every export with sound works on the mix as 48 kHz stereo 32-bit float and rounds it once at the very end. | |
| Controls for audio-only exports | Audio-only formats grey out Size, Frame rate, Speed and Burn in timecode, because there's no picture. | Export sheet |
| The Size popup | Export at the document's size, or at a standard size named by its short edge. | Export sheet ▸ Size |
| Custom size | Type a width and height for the export, from 16 to 8192 pixels each. | Export sheet ▸ Size ▸ Custom… |
| Repeated rows hidden | A row with the same numbers as an earlier row is hidden, so one size shows once under the name that says more. | Export sheet ▸ Size |
| Larger than the document | Sizes larger than the document are offered, so a 720p recording can be exported at 4K. | Export sheet ▸ Size |
| Even-dimension rounding | Formats that need even dimensions write an odd width or height one pixel smaller, and report the real size. | Export sheet ▸ Size |
| Letterboxing to a different shape | A custom size of a different shape from the canvas is letterboxed with black, except in the formats that keep transparency. | Export sheet ▸ Size ▸ Custom… |
| The Frame rate popup | Export at the project's rate, or at a fixed rate from 23.976 to 60 fps. | Export sheet ▸ Frame rate |
| The Speed row | Choose how long the AV1 encoder works on each frame, trading time against file size. | Export sheet ▸ Speed |
| Format default | The default row works the video rate out from the frame's size and rate, and uses 192 kbps sound. | Export sheet ▸ Quality ▸ Format default |
| Low, Medium, High and Maximum | Four tiers set a video rate from the frame's size, so a tier means the same picture quality at every size. | Export sheet ▸ Quality |
| How the rate scales | The video rate scales with the frame's area, rises for high frame rates, and is lower for the more efficient codecs. | Export sheet ▸ Quality |
| Audio bitrate by tier | A Quality tier also sets the AAC or Opus sound rate, from 128 to 320 kbps. | Export sheet ▸ Quality |
| When Quality greys out | Quality is greyed out for ProRes, WAV, AIFF, GIF and APNG, where the format fixes the rate. | Export sheet ▸ Quality |
| The Bit depth row | Write Audio only (WAV) or (AIFF) at 16 or 24 bits. | Export sheet ▸ Bit depth |
| The Range popup | Write the whole timeline, or only the in/out range. | Export sheet ▸ Range |
| Exports write the top-level timeline | An export always writes the top-level timeline, even when you're working inside a nest, so it can't use a nest's own range. | Export sheet ▸ Range |
| Sound ends with the range | A file's sound is exactly as long as the range it exports, including when a clip in it plays faster or slower. | |
| The Stems row | An audio export can also write each track's sound as its own file beside the mix, for mixing or mastering in another editor. | Export sheet ▸ Stems |
| Which tracks get a stem | Only tracks you can hear get a stem, one per track or one per track name. | Export sheet ▸ Stems |
| Stem file names | A stem is named after the mix and its track, beside the mix. | Export sheet ▸ Stems |
| Overwriting and clean-up | A stem replaces a file of its name without asking, but never the project's media, and a cancelled or failed export removes what it wrote. | Export sheet ▸ Stems |
| Stems are pre-master | Each stem holds its tracks' sound as the mix plays it, but with no loudness target and no master limiter. | Export sheet ▸ Stems |
| The Loudness popup | Normalise the whole mix to an integrated loudness target, measured to ITU-R BS.1770-4. | Export sheet ▸ Loudness |
| Measuring, then one gain | The export measures the real mix first, then applies one gain to everything, so levels inside the timeline keep their relationship. | Export sheet ▸ Loudness |
| The master limiter | Every export with sound goes through a true-peak limiter at −1 dBTP, so a mix that would pass it is limited instead of clipped. | |
| Track compressors in the export | A track's own compressor and limiter run before the master, on that track's sound alone, exactly as set. | |
| What the loudness line means | Every export of a file with sound reports what that sound measured, whether or not you normalised it. | Exporting sheet |
| Burn in timecode | Writes the project's timecode into the exported picture, for a review copy; it appears only in the file, never in the preview. | Export sheet ▸ Burn in timecode |
| What a preset stores | A preset stores the choices on the sheet, not the numbers they resolve to, so it means the same on a document of another size. | Export sheet ▸ Preset |
| Apply a preset | Pick a preset from the Preset popup and every control is set exactly as if you had clicked it. | Export sheet ▸ Preset |
| Save a preset | Save the sheet's choices under a name, from the gear beside Preset. | Export sheet ▸ gear ▸ Save… |
| Delete a preset | Choose a preset in the popup, then choose Delete from the gear. | Export sheet ▸ gear ▸ Delete |
| Change a preset | Apply a preset, adjust the controls, and save again under the same name. | Export sheet ▸ gear ▸ Save… |
| Back to Custom | Changing a control by hand puts the Preset popup back on Custom. | Export sheet ▸ Preset |
| The presets file | Presets are kept for your macOS user account, so every project and window shares them. | ~/Library/Application Support/Frame Job/ExportPresets.json |
| The save panel | A save panel suggests the project's name with the format's extension and says what is being written. | Export sheet ▸ Export… or Add to Queue |
| The Exporting sheet | A progress bar, a percentage and a status line show the file being written. | Exporting sheet |
| Cancel a running export | Cancel stops the export and removes the half-written file. | Exporting sheet ▸ Cancel |
| The finish report | When an export finishes, the line names the file and says what the sound measured, with Show in Finder and Close. | Exporting sheet |
| Graphic and cursor warnings | A warning does not stop an export: the finish line adds a count and its tooltip lists each one. | Exporting sheet |
| When an export cannot run | An export that can't run says why in a sentence, on the sheet or on its queue row. | Exporting sheet |
| Quitting during a progress sheet | Frame Job won't quit while an Export… progress sheet is writing, and brings a minimised window or a hidden Frame Job back. | Exporting sheet |
| Add to Queue | Writes the same file without the wait: the export runs behind the editor while you keep working. | Export sheet ▸ Add to Queue |
| The Export Queue window | A window lists every queued, running and finished export, run one at a time while you keep editing. | Window ▸ Export Queue |
| A queued job's snapshot | A job holds the timeline as it was when you confirmed it, including its media files, reversed clips and graphics. | Window ▸ Export Queue |
| Queue rows and their buttons | Each row shows the file's name and state, with buttons to cancel the job, remove a finished row or reveal the file. | Window ▸ Export Queue |
| Clear Finished and Cancel All | Clear Finished removes every finished, cancelled and failed row, and Cancel All stops the running job and every waiting one. | Window ▸ Export Queue |
| Quitting with jobs in the queue | Quitting while a queued job runs or waits asks first. | Frame Job ▸ Quit Frame Job ⌘Q |
| The AV1 and VP9 memory wait | A queued AV1 or VP9 job waits if starting it would take the AV1 and VP9 exports running past a quarter of the Mac's memory. | Window ▸ Export Queue |
| Save Frame | Saves the frame under the playhead as a still. | File ▸ Save Frame… ⌥⌘E |
| PNG, JPEG or HEIC | The save panel's Format popup offers PNG, JPEG and HEIC, and a line under it says what each does with transparency. | File ▸ Save Frame… ▸ Format |
| Drawn the way an export draws it | The frame is drawn the way an export draws it, at the canvas's full size. | File ▸ Save Frame… |
| Save Frame inside a nest | Inside a nest the saved frame is the nest's own picture at the nest's time, the one the canvas shows. | File ▸ Save Frame… |
| Deep and HDR frames | A frame showing a deep still or 10-bit VP9 clip, and any PNG or HEIC from an HDR project, saves as 16-bit PNG or 10-bit HEIC. | File ▸ Save Frame… |
| Waiting for masks | A clip with Remove Background waits up to 30 seconds for that frame's masks, and past that the frame is saved with the clip whole. | File ▸ Save Frame… |
| Stills from an agent | An agent's render_frame writes the same file as Save Frame for the same frame and format. | |
| Which formats keep transparency | A transparent canvas keeps its transparency only in ProRes 4444, HEVC with Alpha, VP9 with Alpha (WebM) and Animated PNG. | Document tab ▸ Appearance ▸ Background |
| Which transparent movie to send | VP9 with Alpha is for the web, HEVC with Alpha for Apple's players, and ProRes 4444 for another editor. | Export sheet ▸ Format |
| Straight alpha | The colour in all three transparent movies is straight, so a re-imported ProRes 4444 or HEVC with Alpha file composites correctly. | |
| The same-shape rule | ProRes 4444, HEVC with Alpha and VP9 with Alpha won't write a different shape from the canvas, because padding would lose the alpha. | Export sheet ▸ Size ▸ Custom… |
| The Transparency note | While the canvas isn't fully opaque, the Document tab says how many export formats will keep its transparency. | Document tab ▸ Appearance |
| Chapters in exports | Chapter markers on the timeline become chapters in MP4, MOV, M4A and WebM files, in time order. | Document tab ▸ Markers ▸ Chapter |
| Chapters in a range export | A range export keeps the chapters inside the range, with their times counted from the start of the file. | Export sheet ▸ Range |
| The same picture as the preview | An export draws the picture the way the preview does, and view-only settings never reach the file. | |
| What an export waits for | An export waits for masks, rendered sound, loudness measurements and cursor tracks, and never writes that sound silent or that clip uncut. | Exporting sheet |
| Missing media still exports | A clip whose file is missing still exports, showing its slate and with no sound. | |
| Graphics as they were when you exported | An export draws graphics as they were when you asked for it, even if a graphic's code is saved again while it runs. | |
| Burned-in captions | Captions are ordinary text clips, so they are always burned into the picture, never a switchable subtitle track. | |
| Colour labels | An exported file carries colour labels for players to read: SDR files BT.709, HDR files BT.2020 with HLG or PQ. |
The Assistant
| Feature | What it does | Where |
|---|---|---|
| Your own Anthropic key | The Assistant runs on your own Anthropic API key, so Anthropic bills its usage to your account and there is no Frame Job account or relay. | Frame Job ▸ Settings… ▸ Assistant Needs your Anthropic key |
| The Assistant section of Settings | Settings has an Assistant section holding the key, the model and the chat settings. | Frame Job ▸ Settings… ▸ Assistant ⌘, |
| Save your Anthropic API key | Paste your key into the Anthropic API key field and click Save or press Return. It is never shown again. | Frame Job ▸ Settings… ▸ Assistant ▸ Anthropic API key: |
| Remove the saved key | Click Remove to delete the saved key. The button is only enabled while a key is saved. | Frame Job ▸ Settings… ▸ Assistant ▸ Remove |
| The key's status line | A line above Save and Remove tells you the key's state and what your last press did. | Frame Job ▸ Settings… ▸ Assistant |
| Test your key | Sending a message from the Assistant tab is the test: a key Anthropic won't accept shows as an error in the transcript. | Assistant tab Needs your Anthropic key |
| Choose the Assistant's model | Type a Claude model id, or leave the field blank for the default, claude-opus-5-5. | Frame Job ▸ Settings… ▸ Assistant ▸ Model: Needs your Anthropic key |
| Compact when context reaches | Sets when a long conversation is replaced by a summary: on at 300,000 tokens, from 20,000 to 900,000. | Frame Job ▸ Settings… ▸ Assistant ▸ Compact when context reaches … tokens Needs your Anthropic key |
| Clear old tool results | Off by default. Lets Anthropic drop old tool results from what the model sees past 150,000 tokens. | Frame Job ▸ Settings… ▸ Assistant ▸ Clear old tool results past 150,000 tokens Needs your Anthropic key |
| A key or model change ends the conversation | Saving or removing the key, or changing to a different model, ends the conversation in every open window. | Frame Job ▸ Settings… ▸ Assistant Needs your Anthropic key |
| Chat settings apply at once | Changing the compaction or clearing settings applies to every open conversation and keeps each one going. | Frame Job ▸ Settings… ▸ Assistant Needs your Anthropic key |
| The Assistant ⓘ | The ⓘ beside the Assistant heading sums up what is sent and to whom, what it costs, where the key is kept, and what the chat settings do. | Frame Job ▸ Settings… ▸ Assistant ▸ ⓘ |
| Where the key is kept | A saved key lives in a file named anthropic-key that only your user account can read. | ~/Library/Application Support/Frame Job/anthropic-key |
| Settings agents can't touch | No tool reads or writes the key, the model or the chat settings, so neither an MCP agent nor the Assistant can see or change them. | Frame Job ▸ Settings… ▸ Assistant |
| A key from the environment | With no saved key, Frame Job uses the ANTHROPIC_API_KEY environment variable. | Launch Frame Job from a shell that sets ANTHROPIC_API_KEY |
| What the tab shows without a key | Without a key, the Assistant tab replaces the message field with a prompt and an Open Settings… button. | Assistant tab ▸ Open Settings… |
| If the helper is missing | The Assistant runs in a helper inside the app. A copy of Frame Job without it says so in the transcript when you send a message. | Assistant tab ▸ transcript |
| The Assistant tab | A conversation with Claude in the inspector of every editor window, which reads and edits that window's project. | Assistant tab ⌃⌘A Needs your Anthropic key |
| Open the Assistant | Shows the inspector if it was hidden, switches to the Assistant tab and puts the cursor in the message field. | View ▸ Assistant ⌃⌘A |
| The tab's layout | From the top: Context with Clear, Spend, the transcript, a row for any waiting question, and the message field with Send. | Assistant tab |
| The tab stays put | The Assistant's own edits change the selection without moving you off its tab, so you can read along. | Assistant tab Needs your Anthropic key |
| Send a message | Type a request in the field and press Return or click Send; the field empties once the message is taken. | Assistant tab ▸ message field Needs your Anthropic key |
| Send with Return | Return or keypad Enter sends the message and gives the keys back to the editor, so Space plays while the Assistant works. | Assistant tab ▸ message field ↩ Needs your Anthropic key |
| New line in the message field | Return with ⇧, ⌘, ⌥ or ⌃ starts a new line. | Assistant tab ▸ message field ⇧↩ |
| Tab leaves the message field | Tab and ⇧Tab give the keys back to the editor and never type a tab. | Assistant tab ▸ message field Tab |
| Undo in the message field | ⌘Z and ⇧⌘Z in the field undo and redo your typing, which never lands on the project's undo stack. | Assistant tab ▸ message field ⌘Z |
| If a message can't be sent | If the conversation cannot start, the reason appears in red in the transcript and your text stays in the field. | Assistant tab Needs your Anthropic key |
| What each message carries | A short block describing your window goes with each message, so "this clip" and "the selected titles" mean what you'd expect. | Assistant tab Needs your Anthropic key |
| One conversation per window | Each editor window has its own conversation about its own project, and closing the window ends it. | Assistant tab Needs your Anthropic key |
| Clear the conversation | Clear ends the conversation, empties the transcript and resets Spend and Context. Your next message starts a fresh one. | Assistant tab ▸ Context ▸ Clear (↺) |
| Streaming replies | A reply streams in as it's written, under your message, and the transcript scrolls to the newest line. | Assistant tab ▸ transcript Needs your Anthropic key |
| Working notes | The Assistant's notes between tool calls appear small and faint. They're its thinking updates. | Assistant tab ▸ transcript Needs your Anthropic key |
| Tool call lines | Each tool call shows as one small monospace line with the tool's name and its arguments. | Assistant tab ▸ transcript Needs your Anthropic key |
| When a tool call doesn't work | A tool call that didn't work is followed by a failed: line giving the reason. | Assistant tab ▸ transcript Needs your Anthropic key |
| Permission lines | Each answered question is recorded in the transcript as Allowed: or Declined:, with the question's sentence. | Assistant tab ▸ transcript Needs your Anthropic key |
| Notes in the transcript | Small monospace notes record each turn's cost, compaction and clearing, a key or model change, and a spend ledger problem. | Assistant tab ▸ transcript Needs your Anthropic key |
| Errors in the transcript | An error is a red line that says what went wrong. | Assistant tab ▸ transcript Needs your Anthropic key |
| Automatic retries | Rate limits, outages and connection failures are retried up to three times before an error appears. | Assistant tab Needs your Anthropic key |
| Copy from the transcript | The transcript is one block of text, so a selection can cross entries and ⌘C copies it as plain text. | Assistant tab ▸ transcript ⌘C |
| If the helper stops | If the helper stops, the transcript says so, a waiting question is declined, and your next message starts a new conversation. | Assistant tab ▸ transcript Needs your Anthropic key |
| The same tools as MCP | The Assistant uses the same tools an agent uses over MCP, less a few held back, and searches for the one it needs. | Assistant tab Needs your Anthropic key |
| Ask it to open, save and move around | It can open, create and save projects, move the playhead, set the in and out range, change the selection, and enter or leave a nest. | Assistant tab Needs your Anthropic key |
| Ask it to change tracks, markers and the canvas | It can add, remove, reorder, rename, hide, mute, solo and lock tracks, edit markers, and change the canvas's size and frame rate. | Assistant tab Needs your Anthropic key |
| Ask it to manage media | It can import, relink and remove media, copy it into the project (it asks first), and set a file's camera log. | Assistant tab Needs your Anthropic key |
| Ask it to place clips | It can place media, text, shapes, backgrounds, adjustment clips and graphics, and insert, overwrite, paste and duplicate. | Assistant tab Needs your Anthropic key |
| Ask it to edit clips | It can move, trim, split, slip, roll, rate-stretch, lift, ripple-delete, insert time, close gaps, detach audio and make J- and L-cuts. | Assistant tab Needs your Anthropic key |
| Ask it to nest clips | It can nest clips or take a nest apart. | Assistant tab Needs your Anthropic key |
| Ask it to change speed | It can set speed, reverse a clip, freeze a frame, add speed ramps, retime a range and speed up typing in a screen recording. | Assistant tab Needs your Anthropic key |
| Ask it to change look and sound | It can change a clip's look and sound, add transitions, actions and zooms, rename it, turn its picture or sound off, and paste attributes. | Assistant tab Needs your Anthropic key |
| Ask it for captions and words | It can import captions, transcribe on this Mac, read a clip's timed words, and export captions. | Assistant tab Needs your Anthropic key |
| Ask it to clean up audio | It can find and cut silences and filler words, normalise loudness, enhance a voice, match a clip's sound and synchronise audio. | Assistant tab Needs your Anthropic key |
| Ask it to export | It can export, check how an export is going, or cancel it. Exporting asks first. | Assistant tab Needs your Anthropic key |
| It looks at rendered frames | The Assistant renders a frame of the finished timeline, drawn the way an export draws it, to look before and after a visual edit. | Assistant tab Needs your Anthropic key |
| Each edit is an undo step | Each edit the Assistant makes is its own undo step, named in Edit ▸ Undo. Changes to graphics files make no undo step. | Edit ▸ Undo ⌘Z Needs your Anthropic key |
| Short replies | Its replies are a sentence or two and don't repeat what the tool lines already show. | Assistant tab Needs your Anthropic key |
| Captions only on request | The Assistant writes or restyles a caption only when you ask. | Assistant tab Needs your Anthropic key |
| Medium effort, thinking on | The model always runs at medium effort with thinking on, and Settings has no control for either. | Assistant tab Needs your Anthropic key |
| Only its own window's project | The Assistant acts only on the project in its own window. A tool call that names another project doesn't run. | Assistant tab Needs your Anthropic key |
| It can't record | The Assistant can't record the screen or a camera, because recording needs a person at the Record button. | File ▸ New Recording… ⌥⌘N |
| It can't close the project | The Assistant can't close its own project, because that would close the window the conversation lives in. | File ▸ Close ⌘W |
| It can't use cloud transcription | The Assistant can't transcribe with AssemblyAI: audio leaves your Mac only when you choose it, with the price in front of you. | File ▸ Generate Captions… |
| It can't upload audio to find fillers | The Assistant can't start the cloud transcription that finds filler words, because that uploads audio. Press Transcribe yourself. | Clip ▸ Remove Filler Words… |
| What it asks about first | Before it exports, saves the project, copies media, exports a graphic or writes anything else to a path it chose, the Assistant waits for you to choose Allow or Deny. | Assistant tab ▸ ask-first row ▸ Allow or Deny Needs your Anthropic key |
| What each question reads | The question names the tool and the file it would write, and says when it would replace one. | Assistant tab ▸ ask-first row Needs your Anthropic key |
| File writes that do not ask | Temporary renders and files in the project's graphics folder are written without a question. | Assistant tab Needs your Anthropic key |
| The dot on the Assistant tab | While a question waits, a small accent dot shows on the Assistant tab title, whichever inspector tab you are on. | Inspector tab strip, beside Assistant |
| Declining | Deny tells the Assistant you declined, and it won't try that call again in the same turn unless you ask. | Assistant tab ▸ ask-first row ▸ Deny Needs your Anthropic key |
| A waiting question holds only its window | Other windows' Assistants and agents over MCP keep working while one window waits for an answer, and you can go on editing. | Assistant tab Needs your Anthropic key |
| MCP agents aren't bound by these rules | An agent over MCP drives the same tools directly, so it's never asked first and none of these tools is held back from it. | |
| Stop a turn | Click Stop, the Send button while a turn runs or a question waits, to end the request to Anthropic and halt what has not started. | Assistant tab ▸ Stop Needs your Anthropic key |
| What stopping leaves in place | Stop undoes nothing and ends only the turn: edits that landed stay, and your next message carries on the same conversation. | Assistant tab Needs your Anthropic key |
| Stop leaves queued exports alone | An export goes to the Export Queue as soon as it starts, so Stop doesn't reach it. Cancel it there, or ask the Assistant to. | Window ▸ Export Queue Needs your Anthropic key |
| The 30-round limit | One turn stops after 30 requests to Anthropic, with no error. Send another message to carry on. | Assistant tab Needs your Anthropic key |
| Tool calls wait for your drag | A tool call that arrives during a drag waits until you release the mouse, then runs as its own undo step after yours. | Timeline, canvas or inspector slider drags |
| Tool calls take turns | The assistant's tool calls and MCP agents' calls take turns, one at a time, and each window's calls run in order. | Assistant tab |
| The context meter | The Context meter shows how much of the model's context window the conversation is using, as of the last response. | Assistant tab ▸ Context Needs your Anthropic key |
| Compaction | With Compact when context reaches on, a summary replaces the conversation at the end of the first turn to reach the threshold. | Assistant tab ▸ transcript Needs your Anthropic key |
| With compaction off | With compaction off, a conversation grows until it fills the model's window, and requests then fail until you click Clear. | Assistant tab Needs your Anthropic key |
| Clearing old tool results | Past 150,000 tokens Anthropic may drop older tool results, keeping the five most recent. The conversation itself stays. | Assistant tab ▸ transcript Needs your Anthropic key |
| All figures are estimates | Every cost figure is Frame Job's own estimate at LiteLLM's published prices. The Anthropic Console shows what you were billed. | Assistant tab |
| The cost of a turn | Each turn ends with a transcript line giving its estimated cost and the price table used. | Assistant tab ▸ transcript Needs your Anthropic key |
| Unpriced responses | A response that could not be priced shows as unknown with its reason, never as $0. | Assistant tab ▸ transcript |
| Responses cut short | A response cut short by Stop or an error is priced from what had arrived. | Assistant tab ▸ transcript Needs your Anthropic key |
| The Spend row | The tab's Spend row adds up the conversation's turns since the last Clear, or since a key or model change ended the conversation. | Assistant tab ▸ Spend Needs your Anthropic key |
| This month's spend | A line in Settings, under Save and Remove, totals what the Assistant has cost in the current calendar month, in UTC. | Frame Job ▸ Settings… ▸ Assistant |
| Prices refreshed daily | Costs use LiteLLM's published Anthropic prices: a table built into the app, and a copy refreshed at most once a day. | ~/Library/Application Support/Frame Job/anthropic-prices.json |
| The spend ledger | Each response is written to spend.jsonl on your Mac with its model, tokens and estimated dollars, never your key or the conversation. | ~/Library/Application Support/Frame Job/spend.jsonl |
| What goes to Anthropic | Your messages, what the tools send back and the frames it renders go to Anthropic under your key, and nowhere else. | Assistant tab Needs your Anthropic key |
| What stays on your Mac | The key file, the spend ledger and the cached price table stay in your Application Support folder. | ~/Library/Application Support/Frame Job/ |
| The conversation lives in memory | A conversation is kept in memory only, so it goes when you clear it or close the window, and nothing is saved in the project. | Assistant tab Needs your Anthropic key |
Agents and MCP
| Feature | What it does | Where |
|---|---|---|
| The whole editor as tools | Frame Job serves its whole editor as MCP tools, so an agent such as Claude Code can open projects, cut, style, check frames and export. | |
| The framejob-mcp helper | A small stdio MCP server inside the app bundle is how MCP clients connect to Frame Job. | Frame Job ▸ Settings… ▸ MCP |
| The tool list with Frame Job closed | A client can start a session and see every tool with nothing on screen. | |
| Opening on the first tool call | If a tool call finds Frame Job not running, the helper launches its own copy in the background and waits for it. | |
| Who can connect | Only programs running under your own account can connect, and any of them can while Frame Job is running; there is no network port. | |
| Assistant rules do not bind an MCP client | The Assistant's limits and questions are its own: a client connected over MCP calls every tool directly and nothing asks you first. | |
| Settings can't be changed by an agent | No MCP tool reads or writes anything in Settings, so keys, the model, the region and Background render are set only by a person. | Frame Job ▸ Settings… ⌘, |
| The MCP section in Settings | Settings opens with an MCP section explaining how a client reaches Frame Job. | Frame Job ▸ Settings… ▸ MCP ⌘, |
| The helper path in Settings | The MCP section shows the full, selectable path of this copy's framejob-mcp. | Frame Job ▸ Settings… ▸ MCP ⌘, |
| Copy MCP Command | One button puts the Claude Code registration command for this copy of Frame Job on the clipboard. | Frame Job ▸ Settings… ▸ MCP ▸ Copy MCP Command ⌘, |
| The missing helper warning | If the helper is missing from this copy or can't be run, Copy MCP Command is dimmed and the status line says so. | Frame Job ▸ Settings… ▸ MCP |
| Connect Claude Code | Paste the copied command into Terminal to register Frame Job with Claude Code. | |
| Claude Desktop and other stdio clients | Any MCP client that starts a stdio server can use the same helper by its path. | |
| Testing a second copy | Setting RC_AGENT_SOCKET for both Frame Job and framejob-mcp keeps a test copy on its own socket, apart from your everyday one. | |
| The local agent socket | Frame Job opens a local Unix socket every time it launches, with no switch to turn it on or off and no network port. | |
| Streamable HTTP over the socket | The socket serves MCP as streamable HTTP, so a client that speaks HTTP over a Unix socket can connect directly. | |
| The socket's folder and permissions | The socket sits in a private 0700 folder and is itself 0600; a folder with the wrong permissions means no socket at all. | |
| One copy holds the socket | With several copies of Frame Job open, the first owns the socket and later ones leave it alone. | |
| Stale socket cleanup | A socket file left by a crashed copy is removed and replaced automatically. | |
| The socket released at quit | Quitting removes the socket file if it is still this copy's, and a call in flight cannot hold up the quit. | |
| Socket status in the log | A launch that cannot open the socket logs why and carries on, with no dialog. | Console app |
| The helper stays in the bundle | The helper launches only the Frame Job it belongs to, so register it at its path inside the app bundle. | |
| One launch between several clients | Two clients that both find no Frame Job launch one copy between them, not two. | |
| The launch wait | The helper waits up to 60 seconds for a launched Frame Job, and RC_MCP_LAUNCH_WAIT changes that. | |
| Failed launches | If a launched Frame Job never starts listening, the call says so and that client session stops launching more. | |
| Long calls are never timed out | A forwarded tool call can take as long as it needs, so the helper never cuts off a long recording or analysis. | |
| Errors from the helper | A call the helper could not deliver comes back as a tool result with isError true and a plain sentence. | |
| Protocol versions | Frame Job speaks three MCP protocol revisions and uses the one a client asks for, or the newest if it asks for any other. | |
| Tool list changes | If the list a client got from the stored copy differs from the running app's, the helper tells the client the list changed. | |
| A custom socket path | RC_AGENT_SOCKET moves the socket to an absolute path of at most 103 bytes, in a folder held to the same permission rules. | |
| One call at a time | Frame Job runs one tool call at a time, across every connected client and the Assistant. | |
| Calls wait for your drag | A call made while you drag a clip, canvas handle or inspector slider waits until you let go, then runs as its own undo step. | |
| A tool call never asks | A tool call never puts up an alert or asks for a permission; it comes back with a message instead. | |
| The ffmpeg offer is declined | An agent's import never shows the ffmpeg question: unless you've chosen to convert automatically, the file is turned down with the reason. | |
| close_project stops rather than asks | close_project won't close a project with unsaved changes unless passed discard: true, or a window with a sheet open. | |
| Which project a call acts on | Every tool takes an optional project path; without it the call goes to the frontmost open project. | |
| One call, one undo step | Every tool that edits makes exactly one undo step, however many clips it touched. | |
| Edits show live | Every edit an agent makes shows in the window at once, marks the document edited and can be undone with ⌘Z. | Edit ▸ Undo ⌘Z |
| Analysis tools wait 60 seconds, then resume | A call that needs analysis waits at most 60 seconds; what was analysed is kept, so calling again carries on from there. | |
| Calls and Background render | An MCP call stops Background render when it edits a project or moves a playhead; a call that only reads does not. | |
| Times in ticks | Time arguments are in ticks, 600,000 to the second, and are rounded to the project's frame grid. | |
| One id space | Clip, track, marker and media ids share one number space, so an id names one thing on its own. | |
| Track order | tracks[0] is the back of the layer stack and the bottom lane of the timeline; a higher index draws in front. | |
| Colour formats | Clip and canvas colours are [r, g, b, a] from 0 to 1, and a few other colours are spelled their own way. | |
| Boolean spellings | A tool's boolean argument may also be sent as "true", "1", "false" or "0". | |
| Keys that must be sent even when null | set_transition's kind and add_zoom_action's region must be sent even when null, because null means something. | |
| No empty lists | An empty clips, ranges or groups list stops the call and names it; only set_selection takes an empty list, to select nothing. | |
| Speed rates are clamped | set_speed and add_speed_ramp bring a rate outside ×0.1–×1000 into that range; a rate of zero or less stops the call. | |
| How a patch merges | Property tools take a patch object that merges into what the clip already has, at every depth. | |
| A bad patch names its path | An unknown key or wrong value in a patch stops the call, naming its dotted path and the value sent. | |
| Unknown arguments are named | An argument a tool doesn't take stops the call before anything runs, and the message lists what it does take. | |
| Text and shape shorthands | add_text_clip's text may be a plain string (the words), and add_shape_clip's shape a plain string (the kind). | |
| Errors come back as tool results | Every outcome comes back as the tool's result, errors included, so a model can read it and correct itself. | |
| A landed edit | An edit that landed returns ok: true, the ids it created and a short project summary. | |
| A call that changed nothing | A message that the project is already in that state means nothing was wrong and no undo step was made, so it's safe to retry. | |
| An edit a rule declined | A message reading "was refused at" means a rule declined the edit. It says what to act on, and no undo step was made. | |
| Keyed tools with no key | A tool that sends to AssemblyAI needs your key only at the moment it would send; without one it stops and says where to set it. | Frame Job ▸ Settings… ▸ Transcription Needs your AssemblyAI key |
| Tools that never reach the network | Reads of words and analysis never make a network request and need no key. | |
| The scope argument | Every edit tool takes scope, a nest id, so one call edits inside that nest from wherever the window is looking. | |
| Opening and closing a nest with set_scope | set_scope opens a nest by its id or the clip that shows it, like double-clicking the clip; with no arguments it comes back out. | Clip ▸ Open Nest ⌘↓ |
| Tools that follow the open nest | Tools that aren't plain edits take no scope and work in whatever nest set_scope has open. | |
| protected_nests in detect_silence | detect_silence names the nest clips a quiet run crossed and left uncut, so you can open one and look for dead air inside it. | |
| Edit tools that won't take a scope | Eleven edit tools have no meaning inside a nest and stop with an error if given a scope. | |
| Document edits while a nest is open | With a nest only open, nine of those tools apply to the whole project, and the result lists what went there under document_ops. | |
| Markers while a nest is open | add_marker, and set_marker with a time, return an error while a nest is open, because a marker sits at project time. | |
| Document-wide limits inside a nest | An edit valid inside a nest can still fail, because the clip, track and nesting limits count the whole project. | |
| A typical session | The usual order is open, read the project, import, place, edit, render a frame, save, export and poll. | |
| get_project | Returns the whole project as JSON, the same document every edit changes; every other tool names things by the ids it reports. | |
| The graphics summary | get_project reports each graphic module's name, revision, whether it compiles and the clips drawn by it. | |
| Reading a file's Camera Log | get_project's media[].color reports a file's colour setting and shows detected: true for one set at import. | |
| The report while a nest is open | While a nest is open get_project reports it as if it were the project, and render_frame draws it at its own size. | |
| render_frame | Draws one frame of the finished timeline the way an export draws it, so an agent can see what the file will hold. | File ▸ Save Frame… ⌥⌘E |
| render_frame: t | Chooses the moment to render, in ticks; the playhead by default. | |
| render_frame: path | Chooses where to write the file; a temporary file by default. | |
| render_frame: format | Writes png, jpeg or heic, and wins over the path's extension. | |
| render_frame: max_width | Caps the width at 16 to 8192 pixels; the picture keeps its shape and is never made larger than the canvas. | |
| render_frame: burn_in_timecode | Draws the project timecode over the picture. | Export sheet ▸ Burn in timecode |
| render_frame: ungraded | Draws every clip as if it weren't graded, the picture View ▸ Show Ungraded gives. | View ▸ Show Ungraded |
| render_frame: selection | Given an adjustment clip's id, draws what its qualifier selects, the picture View ▸ Show Selection gives. | View ▸ Show Selection |
| render_frame: sdr_version | In an HDR project, draws its SDR version, the picture View ▸ Show SDR Version gives. | View ▸ Show SDR Version |
| render_frame: waveform, parade and histogram | Each also measures that scope: the text gives the clipping share and a JSON file beside the image holds the counts. | View ▸ Scopes |
| render_frame: vectorscope and vectorscope_zoom | Measures the vectorscope, with its neutral share in the text and an optional zoom of 1, 2 or 4. | View ▸ Scopes |
| Graphic problems in a rendered frame | When a graphic in the frame failed or warned, the text names it, and a failed graphic draws its error card in the picture. | |
| Waiting for cutout masks | A Remove Background clip waits up to 30 seconds for the masks the frame needs; past that it's drawn whole and the text says so. | |
| Frames from an HDR project | In an HLG project a PNG is 16-bit and a HEIC 10-bit, both labelled BT.2100 HLG; a JPEG or sdr_version frame is the SDR version. | |
| export | Puts the job on the Export Queue and returns at once with export_id, path and status. | File ▸ Export… ⌘E |
| export_status | Reports how an export is going, as its Export Queue row does, and never waits. | Window ▸ Export Queue |
| cancel_export | Stops an export, as the queue row's Cancel does. | Window ▸ Export Queue ▸ Cancel |
| export_id and its lifetime | An export_id is known until Frame Job quits, even after its row is removed from the Export Queue. | |
| When an export can't start or fails | A problem Frame Job can see from the request comes back from export; one while writing comes back from export_status as failed. | |
| Export presets | Fifteen export presets cover video, audio and animated images. | Export sheet ▸ Format |
| Export frame rate | There is no frame-rate argument: an export runs at the project's rate, or 12.5 fps for gif and 25 fps for apng. | |
| Export paths | An existing file at the path is replaced, and the file always ends in the preset's extension. | |
| export: size | Chooses the output size: the document, a named short edge, the preset, or a [width, height]. | Export sheet ▸ Size |
| export: range | Writes the whole timeline, or only the in and out range. | Export sheet ▸ Range |
| export: exact bitrates | An agent sets video and audio rates in bits per second directly. | Export sheet ▸ Quality |
| export: the loudness report | loudness_lufs normalises the whole mix, and a finished export reports its full loudness measurements. | Export sheet ▸ Loudness |
| peak_dbtp | Sets the ceiling of the limiter every export with sound goes through. | |
| audio_bits | Chooses 16 or 24 bits for audio_wav and audio_aiff. | Export sheet ▸ Bit depth |
| export: stems | Also writes one file per heard track, or per track name, beside an audio mix. | Export sheet ▸ Stems |
| dynamic_range | Chooses HLG, HDR10 or the SDR version when exporting an HLG project. | Export sheet ▸ Dynamic Range |
| encoder_speed | Chooses faster, balanced or smaller for av1 and av1_webm. | Export sheet ▸ Speed |
| Transparent export presets | Four presets keep a transparent canvas transparent: prores_4444, hevc_alpha, vp9_alpha_webm and apng. | |
| record_screen | Records for 1 to 600 seconds and lands the recording in the project as the panel does, with no countdown. | File ▸ New Recording… Needs screen recording permission |
| record_screen: seconds | How long to record, 1–600 s; required. | |
| record_screen: source | screen, voice_over or camera; screen by default. | |
| record_screen: display | Records a chosen shareable display, 0 being the main one. | Needs screen recording permission |
| record_screen: window | Records one window at its own size. | Needs screen recording permission |
| include_framejob_windows | Puts Frame Job's own windows in a display recording. | Recorder panel ▸ Include Frame Job windows |
| record_screen: microphone | Also records the default microphone to a second file that lands on a Microphone track. | Needs microphone permission |
| system_audio | Records what the system plays, except Frame Job, into the movie. | |
| show_clicks | Shows each mouse click: drawn into the movie with in_picture, as click ripples with separate. | |
| record_screen: cursor | separate keeps the pointer out of the movie for Frame Job to draw; in_picture burns it in. | Recorder panel ▸ Cursor Needs screen recording permission |
| record_screen: keys | shortcuts writes each shortcut, spelled, and a time-only typing mark for every other key into the cursor files. | Recorder panel ▸ Record shortcuts Needs input monitoring permission |
| record_screen: rate | Sets the most frames a second the file may hold, 30 or 60, and a new project's canvas rate. | |
| record_screen: size | Records at a display's point or pixel size. | |
| record_screen: path | Records into a folder of your choice; the file name is always the dated one. | |
| record_screen: project | The open project to land in; the front project by default. | |
| record_screen: place | Puts clips on the timeline, or with false adds the recording to the media list only. | |
| Voice-overs | source: "voice_over" records the default microphone alone, and an argument it can't use stops the call by name. | File ▸ New Recording… Needs microphone permission |
| A camera alone | source: "camera" records a camera on its own, with camera to choose one and camera_format its format. | File ▸ New Recording… Needs camera permission |
| camera and camera_format | Names the camera by unique id or name in any case, and its format as 1920x1080@30, WIDTHxHEIGHT or best. | |
| A camera beside the screen | With source: "screen" and camera, each stretch gets a camera movie on one new front Camera track in the same undo step. | File ▸ New Recording… Needs screen recording permission, camera permission |
| camera_layout | Lays each camera clip out from its first frame with its screen clip, as the panel's Layout does. | Recorder panel ▸ Layout Needs camera permission |
| camera_cutout | Runs Remove Background on the camera clips as its own undo step right after the landing. | Recorder panel ▸ Remove the camera's background when it lands Needs camera permission |
| record_screen: enhance | Runs enhance_voice on the microphone's clips at −16 LUFS as its own undo step once their sound is analysed. | Recorder panel ▸ Enhance the microphone when it lands Needs microphone permission |
| After-landing steps | auto_zoom, shortcut_overlays and speed_up_typing run those tools on the screen clips after the landing, each its own undo step. | Recorder panel ▸ When it lands: Needs screen recording permission |
| record_screen never asks for a permission | A missing permission stops the call with a message naming the System Settings pane; it never shows a prompt, the picker or Settings. | |
| What record_screen checks first | A call is checked in a fixed order, the caller's own mistakes first, so an agent hears of a mistake even with no permission given. | |
| A person can pause or stop a recording | The same menu-bar item appears while an agent records, so a person can pause, resume or stop it; the recording still lands. | Menu bar recording item |
| What record_screen returns | The result reports the files, duration, stretches, pauses, how it stopped, where it landed, and media and clip ids. | |
| Undoing a recording | Undo removes the recording's media and clips in one step and leaves the files on disk. | |
| The tool catalog | Frame Job gives an agent 125 tools: 69 edit tools, each one undo step, and 56 app tools for files, reads, the view and whole commands. | |
| How arguments are published | Each tool publishes its arguments as JSON Schema: names, kinds, closed lists of values, bounds and which are required. | |
| set_video: position, scale, rotation, opacity and blend | Places, scales, turns and fades a clip, and chooses how it combines with what is under it. | |
| set_video: crop and corners | Crops a clip's edges in place and rounds its corners. | |
| set_video: shadow, chroma key, filters, reflection, spotlight and obscure | Adds a clip's picture effects, each an object that merges or a list that replaces. | |
| set_video: cutout | Remove Background: the clip drawn as its subject alone, from masks made on this Mac. | Clip ▸ Remove Background |
| set_video: cursor | Styles how the pointer recorded beside a screen recording is drawn on a clip, through eight keys. | Clip tab ▸ Picture ▸ Cursor |
| set_video: motion | Gives a clip an entrance, an exit and a motion all the way through. | Clip ▸ Motion ▸ |
| set_video: motion_blur | Blurs a clip and its moving cursor along their motion, as a shutter fraction of a frame. | Clip tab ▸ Picture ▸ Transform ▸ Motion Blur |
| set_video: hide_silent | Fades the clip out while a media's speech is silent, and back in ahead of the next words. | Clip tab ▸ Picture ▸ Hide While Silent |
| set_video: behind_subject | Cuts the clip by the person of every cut-out clip behind it, so the person stands in front. | Clip tab ▸ Picture ▸ Behind Subject |
| set_video: color | Sets all thirteen Light and Color values through one patch. | Clip tab ▸ Color ▸ Light, Color |
| set_video: wheels | Pushes lift, gamma and gain towards a hue and sets each one's brightness. | Clip tab ▸ Color ▸ Wheels |
| set_video: curves | Writes the master, red, green, blue, Hue vs Hue and Hue vs Sat curves, one list of points per channel. | Clip tab ▸ Color ▸ Curves |
| set_video: look | Applies one of eight built-in looks at an amount, or an imported .cube LUT. | Clip tab ▸ Color ▸ Look |
| set_video: qualifier | Narrows which pixels an adjustment clip grades, by hue, saturation and luma. | Clip tab ▸ Color ▸ Qualifier |
| set_text: word timings and word style | set_text edits a caption page's words, their timing and how the active word is drawn. | |
| set_action_end: graphic props | set_action_end animates a graphic clip's props, through a graphic group in its patch. | Clip tab ▸ Graphic ▸ Properties |
| set_action_end: speed | set_action_end's speed ramps a media clip's rate along the action's curve and holds it after. | Clip tab ▸ Clip ▸ Speed ▸ Rate |
| set_action_end: switching off at an end | set_action_end's off turns an optional property off at an action's end. | |
| set_track: compressor and limiter | set_track's compressor and limiter each take a whole object, or null to clear, and work on timeline tracks only. | Track ▸ Mix… |
| set_track: mattes | set_track's matte makes a track cut the track directly behind it. | Track ▸ Matte |
| set_track | Sets name, Hide Video, Mute Audio, Lock Track, Solo and Matte, and the mix panel's volume, pan, compressor and limiter. | Track ▸ Hide Video / Mute Audio / Lock Track / Solo |
| set_audio: volume and mute | Sets a clip's gain, from 0 to 32, and mutes it. | |
| set_audio: fades and fade shapes | Fades a clip's sound in and out, and chooses each fade's curve. | Clip tab ▸ Sound ▸ Fades |
| set_audio: ducking | Lowers other sound while this clip plays, or only while its speech plays. | Clip tab ▸ Sound ▸ Ducking |
| set_audio: mono, keep pitch, pan and channels | Plays a clip in mono, keeps its pitch at a new speed, pans it, and picks or swaps its channels. | Clip tab ▸ Sound ▸ Channels |
| set_audio: compressor and limiter | Compresses a clip's sound and adds a true-peak limiter last in its chain. | Clip tab ▸ Sound ▸ Compressor, Limiter |
| set_audio: noise reduction and voice isolation | Reduces noise, or isolates a voice with Apple's on-device model. | Clip tab ▸ Sound ▸ Noise Reduction, Voice Isolation |
| set_audio: EQ | Shapes a clip's tone with seven slots. | Clip tab ▸ Sound ▸ EQ |
| set_audio: hum removal | Notches out mains hum and its harmonics. | Clip tab ▸ Sound ▸ Hum |
| set_audio: gate | Turns the pauses down with a downward expander. | Clip tab ▸ Sound ▸ Gate |
| set_audio: leveller | Evens out a speaker who moves on and off the mic, from a gain curve made ahead of time. | Clip tab ▸ Sound ▸ Leveller |
| set_audio: de-esser | Turns the band above a frequency down on sibilance. | Clip tab ▸ Sound ▸ De-esser |
| set_audio: voice effects | Replaces a clip's sound with a rendered voice effect. | Clip tab ▸ Sound ▸ Voice Effect |
| Cutting what detect_silence and detect_fillers found | Pass the ranges of detect_silence or detect_fillers to ripple_delete_ranges to make the cut. | |
| transcribe engines | transcribe runs on this Mac by default, or with AssemblyAI using your key. | |
| transcribe: speakers and vocabulary | With AssemblyAI, speakers starts a new cue at a change of speaker and vocabulary says which words to expect. | Needs your AssemblyAI key |
| Checking a transcript before placing it | place: false returns the cues without changing the project. | |
| transcribe: caption styles and paging | style chooses subtitles or one of five word styles, and word styles fill each page to the width it measures on this canvas. | File ▸ Generate Captions… ▸ Style |
| transcribe: caption looks | slide, fill and dim add looks to a word style's pages, each false unless given. | File ▸ Generate Captions… |
| transcribe: restyling captions | replace removes earlier caption tracks when restyling. | |
| Where get_transcript's words come from | Words come from the file's saved AssemblyAI transcript, else this Mac's own recogniser, and reading never uploads anything. | |
| Fillers in a transcript | Each word says whether it is a filler, and fillers_reported says whether the transcript was made with filler words at all. | |
| get_transcript: the from and to window | A from/to window in timeline time returns only the words that overlap it, and a word crossing an edge comes back whole. | |
| Heard words and editable words | Words come from every clip playing speech, nests included; each says if cutting it is safe and keeps its id across edits. | |
| Read once per file | A file with no saved AssemblyAI transcript is read whole by this Mac's recogniser once, and the words are saved in the project. | |
| Duplicate speech | When two clips of different files carry the same speech at the same time, notes names the pair and both sets of words stay. | |
| get_timeline_transcript: paging | Long timelines come in pages of at most 2,000 words, with a place to continue from. | |
| Cutting words and pauses | Each word and pause carries the range the Transcript tab would cut it by, and one ripple_delete_ranges does the cut. | |
| get_timeline_transcript | Reads every word heard on the timeline or in the open nest, in timeline order, nested clips included. | Transcript tab |
| get_transcript | Reads one clip's spoken words with their times on the timeline. | |
| get_media_analysis kind: shots | Finds the hard cuts, with clip and timeline times when you name a clip. | |
| get_media_analysis kind: masks | Says where a person is, as runs of frames, never the masks themselves. | |
| get_media_analysis kind: faces | Finds every face ten times a second, with its box, its tilt and how wide and open the mouth is. | |
| get_media_analysis kind: subjects | Finds boxes for people and the regions the eye is drawn to, ten times a second. | View ▸ Show Subjects |
| get_media_analysis kind: sound_events | Says how sure Apple's sound classifier is of laughter, applause, cheering, a crowd, music and speech, every 0.75 s. | |
| reframe_clip follow: subject, face, person and salient | Follows a face, a person or a salient region found on this Mac, analysing the clip first. | |
| reframe_clip follow: cursor | Follows a screen recording's recorded pointer from its media's cursor file, with no analysis and no wait. | |
| reframe_clip follow: layout | Re-lays a camera clip's camera layouts and its screen's on the current canvas. | |
| reframe_clip follow: speaker | Frames a wide shot of two to four people on whoever is talking, from the microphone clips in mics. | File ▸ Make Vertical Version… ▸ Follow ▸ Speaker |
| reframe_clip follow: center | Holds the frame on the middle of the picture for the whole clip, at zoom. | |
| reframe_clip follow: fit | Shows the whole picture for the whole clip. | |
| reframe_clip follow: keep | Rescales the clip from the canvas it was made for. | |
| reframe_clip: zoom, where_empty, backdrop and replace | Sets how tight the frame is, what shows where nothing is found, a blurred copy behind, and whether the clip's own moves are kept. | Clip ▸ Add Blurred Background |
| reframe_clip's analysis wait | The tool analyses the part of the file the clip plays and waits up to a minute; past that it changes nothing and says how much is done. | |
| Clips reframe_clip won't frame | A clip that can't be framed stops the call with one sentence saying why, and the checks run in a fixed order. | |
| make_vertical_version: subject following | Each movie clip that fills the old frame on one side is framed on its subject, or shown whole where nothing is found. | File ▸ Make Vertical Version… |
| make_vertical_version: screen recordings follow the cursor | A screen recording with a cursor file follows its cursor, its own zooms and pans replaced, or is shown whole when the file cannot be read. | File ▸ Make Vertical Version… |
| make_vertical_version follow: speaker | With follow: speaker and mics, a wide shot of two to four people cuts to whoever is talking. | File ▸ Make Vertical Version… |
| make_vertical_version: camera layouts re-laid | A camera and its screen in camera layouts are re-laid for the new canvas. | File ▸ Make Vertical Version… |
| make_vertical_version: stills, graphics, titles and plates | Stills and nests are centred; other items are resized, kept or re-filled by kind. | File ▸ Make Vertical Version… |
| make_vertical_version: a copy or in place | By default it opens a new project holding the change as one undo step "Make Vertical"; copy: false applies it to the project you name. | File ▸ Make Vertical Version… |
| make_vertical_version: captions re-paged | Word caption tracks are re-paged for the new canvas as relay_captions does. | File ▸ Make Vertical Version… |
| make_vertical_version: bundled templates updated | In a copy, older copies of bundled templates are rewritten with the current text; in place they are only listed. | File ▸ Make Vertical Version… |
| switch_by_speaker options | Every argument is optional, and each tunes how the Program track is cut. | Clip ▸ Switch by Speaker… |
| switch_by_speaker: previewing with apply: false | apply: false returns the planned shots without editing the project. | |
| switch_by_speaker: faces mode | When one microphone is shared by two or more cameras, their faces decide who talks. | Clip ▸ Switch by Speaker… |
| When switch_by_speaker won't cut | Nothing changes, and problems that are checked together are all named in one sentence. | Clip ▸ Switch by Speaker… |
| render_graphic: the contact sheet | The png format returns up to 16 frames on a grid, each frame number under its cell. | |
| render_graphic: one frame as SVG | The svg format returns one frame's SVG text, its diagnostics and the ctx it was drawn with. | |
| render_graphic options | render_graphic can draw with chosen properties, size, width limit, background and output path. | |
| Editing the graphics folder with your own file tools | An agent may edit the graphics folder with its own file tools, and the app sees the change within a moment. | |
| Write, place, change and check a graphic | An agent writes a module, places a clip with explicit options, changes it, animates it and checks a timeline frame. | |
| What can and cannot be undone in graphics | File writes can't be undone, but placing and changing clips can; Frame Job keeps the last 10 versions of each module. | |
| Fonts and pictures for graphics | An agent adds a font or a picture to the project's graphics by path. |
Reference
| Feature | What it does | Where |
|---|---|---|
| How to read the menu tables | What the key symbols, the (key) mark, Always and "the current track" mean in the menu tables. | |
| Frame Job menu | About, Check for Updates…, Settings…, the Hide items and Quit, and what can stop a quit. | Frame Job ▸ Settings… ⌘, |
| File menu: projects and recording | The File menu's first groups make, open, close and save projects, and start or stop a recording. | File ▸ New Project ⌘N |
| File menu: media, captions and graphics | The File menu's middle group brings in media, captions, fonts and pictures, and looks after the project's graphics. | File ▸ Add Media… ⇧⌘I |
| File menu: export | The File menu ends with Export… for a movie and Save Frame… for a still. | File ▸ Export… ⌘E |
| Edit menu | Undo and redo, the clipboard, Delete and Ripple Delete, Insert and Overwrite at Playhead, and the selection commands. | Edit ▸ Undo ⌘Z |
| Insert menu | Adds an adjustment clip, a graphic, or a title behind the person. | Insert ▸ Adjustment Clip |
| Track menu | Adds and removes tracks, and sets the current track's picture, sound, lock, solo, mix and matte. | Track ▸ New Track ⇧⌘N |
| Mark menu | Adds and steps through markers, and sets or clears the in/out range. | Mark ▸ Add Marker M |
| View menu: zoom, snapping and panes | Canvas zoom, Fit Timeline, Snapping, Safe Areas, the inspector, its Transcript and Assistant tabs, and track height. | View ▸ Zoom In ⌘+ |
| View menu: preview, grade and meters | Preview Quality, the Preview Window, and the view items that change what you see but never an export. | View ▸ Preview Window ⇧⌘P |
| Window menu | Minimize, Zoom, the Export Queue, Bring All to Front and the list of open windows. | Window ▸ Minimize ⌘M |
| Help menu | Opens the bundled graphics scripting reference. Frame Job ships no help book, so this site is the help. | Help ▸ Graphics Reference |
| The Clip menu in order | Every Clip menu item from top to bottom, with its shortcut. | Clip menu |
| Clip menu: cutting and trimming | Split, Split at Shot Changes, the two Trim to Playhead items, Freeze Frame and Close Gap. | Clip ▸ Split ⌘T |
| Clip menu: sound | Detach and Attach Audio, Normalize, Enhance Voice, Match Audio…, Synchronize Audio and Switch by Speaker…. | Clip ▸ Detach Audio ⌥⌘D |
| Clip menu: actions, automatic moves and speed | Add Action, the commands that write moves for you, and the speed commands. | Clip ▸ Add Action ⌥⌘K |
| Clip menu: Remove Silences and Remove Filler Words | Remove Silences… cuts dead air with no key. Remove Filler Words… cuts "um"s and "uh"s, usually with your AssemblyAI key. | Clip ▸ Remove Silences… |
| Clip ▸ Transition ▸ | Sets the transition into the clip. | Clip ▸ Transition ▸ |
| Clip ▸ Motion ▸ | Sets how the clip enters, leaves and moves, and previews it. | Clip ▸ Motion ▸ |
| Clip ▸ Look ▸ | Puts a look or a LUT on the clip. | Clip ▸ Look ▸ |
| Clip ▸ Remove Background | Keeps the person and removes the rest of the picture, or turns that off. | Clip ▸ Remove Background |
| Clip ▸ Camera Layout ▸ | Lays out the camera and the screen behind it at the playhead, eased over half a second and held until the next switch. | Clip ▸ Camera Layout ▸ |
| Clip ▸ Switch Angle ▸ | Changes which camera track the selected shot comes from, keeping its span, switches and dissolves, as one undo step. | Clip ▸ Switch Angle ▸ |
| Clip ▸ Add Background ▸ and Add Blurred Background | Puts a white rectangle, a picture or a blurred copy of a clip on a new track behind everything. | Clip ▸ Add Background ▸ |
| Clip ▸ Rename… and Label ▸ | Renames the selected clip in place on the timeline and gives clips a colour label. | Clip ▸ Rename… ⇧⌘R |
| Clip menu: nests | Nest, Un-nest, Open Nest and Close Nest. | Clip ▸ Nest ⌘G |
| How the keys are shared | Keys with no modifier belong to the editor window and stop while you type or a sheet is open. The rest are menu shortcuts. | |
| Every shortcut on a menu item | Every shortcut that belongs to a menu item, grouped by job. | |
| Playback and moving the playhead | Space, J, K, L, the arrows, Home and End play and move the playhead. None has a menu item. | Space |
| Editing keys | Keys with no modifier that nudge, trim, mark, add text, and turn on crop and region modes. | |
| Keys in text on the canvas | What Return and Escape do while text is edited in place on the preview. | ↩ |
| Keys in a rename field | Return or Tab saves a clip, track or marker name on the timeline, and ⎋ keeps the old one. | Timeline ↩ |
| Keys in the Transcript | With the Transcript tab's text focused, the arrows move by word and line and Delete cuts words. | Transcript tab ← |
| Keys in the Assistant's message field | Return sends, and Return with a modifier starts a new line. | Assistant tab ↩ |
| The toolbar's timecode field | Click the timecode, type a time and press Return to jump there. | Toolbar timecode field ↩ |
| Keys in inspector fields | Return and Tab apply a value; Escape throws it away. | Inspector ↩ |
| Modes that ⎋ leaves | Escape backs out of a canvas drag, crop mode, region mode, the eyedroppers and a selected curve point. | ⎋ |
| Timeline gestures: selecting | Click, ⇧-click and marquee selection on the timeline. | Timeline ⇧-click |
| Timeline gestures: moving clips | Drag moves clips in time and to other tracks; ⌥-drag duplicates. | Timeline ⌥-drag |
| Timeline gestures: trim, rate stretch, slip and roll | Dragging a clip's edge trims it; modifiers make it a rate stretch, a roll or, on the body, a slip. | Timeline ⌥-drag |
| Timeline gestures: fades and the volume line | Dragging a fade handle sets an audio fade; dragging the volume line sets the level. | Timeline ⌥-click |
| Timeline gestures: action bands | Click a band to select an action; drag it or its edges to move and resize it. | Timeline |
| Timeline gestures: double-clicks and the nest breadcrumb | A double-click renames a clip, opens a nest or closes a gap; the breadcrumb comes back out of a nest. | Timeline |
| Timeline gestures: the ruler and markers | Click or drag the ruler to scrub. Drag a marker to move it, or double-click it to rename it. | Timeline ruler |
| Timeline gestures: track headers | Drag to restack, double-click to rename, and five buttons on each header. | Track header ⌥-click |
| Timeline gestures: snapping | With snapping on, drags snap within 8 points. Hold ⌘ to turn it off for that drag. | Timeline N |
| Timeline gestures: zoom and scroll | Pinch or ⌥ / ⌘ scroll zooms around the pointer; a plain scroll scrolls. | Timeline Pinch |
| Dragging media in | Drag a Media row to a track or the canvas, or files from the Finder onto the window. | Media tab ⌥ |
| Preview canvas gestures: selecting and moving | Click selects the front-most visible clip, ⇧-click adds to the selection, and a drag moves the selected clips. | Preview canvas ⇧-click |
| Preview canvas gestures: scale, rotate and crop | The handles scale and rotate a clip; crop mode trims its edges. | Preview canvas ⌥ |
| Preview canvas gestures: endpoints, obscure regions and text | Drag a line's ends and an obscure region's grips, and double-click text to edit it. | Preview canvas ⌥ |
| Preview canvas gestures: zoom and pan | Pinch or ⌥ / ⌘ scroll steps the zoom; a scroll or Space-drag pans a canvas larger than the preview. | Preview canvas Pinch |
| Color tab controls | Hold ⌥ for fine moves on wheels, strips and curve points. Double-click a wheel or strip to reset it. | Clip tab ▸ Color ⌥ |
| Buttons with no menu item | Loop, the timeline zoom controls, Add Text and Add Shape have no menu item, and a few buttons match View menu items. | Toolbar and timeline bar |
| Add Shape | The timeline bar's Add Shape button adds a rectangle, ellipse, line or arrow. No menu bar item lets you choose one. | Timeline bar ▸ Add Shape |
| Where a right-click opens a menu | Right-click or ⌃-click opens a menu on a track header or empty lane, a Media row, an inspector row and a curves channel. | ⌃-click |
| Track header or empty lane | The menu for the track you clicked, showing that track's own state. | Right-click or ⌃-click a track's header or the empty part of its lane |
| Media row | The menu for one file in the Media tab; it acts on the clicked row whatever the list's selection is. | Right-click a row in the Media tab |
| Inspector row | Right-click a row's label, slider, checkbox or the space beside them; the menu shows only what applies to that row. | Right-click a row in the inspector |
| Curves channel strip | Right-click a channel in the Color tab's curves strip to reset that curve. | Right-click a cell of the curve editor's channel strip |
| Recording status item | While a recording runs, its time shows in the macOS menu bar, and a click offers its controls. | The menu bar's recording item |
| The Settings window | One window holds what belongs to you and not to a project, in four sections: MCP, Assistant, Transcription and Playback. | Frame Job ▸ Settings… ⌘, |
| The ⓘ buttons | The Assistant, Transcription and Playback headings each carry an ⓘ that explains the section. | Frame Job ▸ Settings… ▸ ⓘ beside a heading |
| Settings: MCP | Tells an MCP client such as Claude Code how to reach Frame Job, shows the helper's path and copies the command that registers it. | Frame Job ▸ Settings… ▸ MCP |
| Settings: Assistant | Your Anthropic API key, the model, and two settings for long conversations. | Frame Job ▸ Settings… ▸ Assistant |
| Settings: Transcription | Your AssemblyAI key and region, used by File ▸ Generate Captions… with AssemblyAI chosen and by Clip ▸ Remove Filler Words…. | Frame Job ▸ Settings… ▸ Transcription |
| How the two key fields behave | A saved key is never shown again; a line under the controls reports what happened to it. | Frame Job ▸ Settings… |
| Settings: Playback | Whether Frame Job draws graphics ahead of time while you are idle, and how long it waits first. | Frame Job ▸ Settings… ▸ Playback ▸ Background render |
| What agents can't reach in Settings | No MCP tool reads or writes anything in Settings: keys, the model, the region and Background render are set only by a person. | |
| View choices Frame Job remembers | Snapping, Safe Areas, the inspector, track height and Preview Quality: the next window opens with your last choice. | View menu |
| Pane sizes | Dragging a divider sizes the inspector or the timeline, and new windows open at that size. | Drag the divider above the timeline, or left of the inspector |
| The Preview Window's frame | The Preview Window opens where the last one was left, on a second display for example. | View ▸ Preview Window ⇧⌘P |
| What is not remembered | Scopes, the meter and other view items start off in each window. Timeline zoom, Loop, the playhead and the in/out range reset. | |
| Sheets that reopen on your last choice | Some sheets reopen on what you chose last time; these are your choices, not the project's, and no agent tool reads them. | |
| The recorder panel | The recorder panel reopens on your last choices, apart from Record Into:. | File ▸ New Recording… ⌥⌘N |
| Inspector sections | Whether each inspector section is collapsed or expanded is remembered, per section, in every window. | Inspector ▸ section headers |
| Permission questions already asked | Frame Job remembers that it has already asked macOS, because macOS will not show its prompt twice. | Recorder panel ▸ Record |
| Convert on import | Choosing Do this automatically from now on in the Convert / Repackage alert remembers your answer. | Import alert ▸ Do this automatically from now on |
| Automatic update checks | The downloaded copy remembers your answer to whether it should check for updates automatically, and when it last checked. | |
| Where these are kept | All of these live in macOS's preferences for Frame Job, the com.kgalligan.FrameJob domain; keys are never stored there. | |
| The Application Support folder | Frame Job's own folder is ~/Library/Application Support/Frame Job/. | |
| Key files | Your keys are the files assemblyai-key and anthropic-key in Frame Job's Application Support folder. | |
| How keys are stored | Each key is a plain file readable and writable only by your user account. | |
| Keys from the environment | If no key is stored, Frame Job falls back to an environment variable, useful when you launch it from a terminal. | |
| The spend ledger and price table | spend.jsonl records one line per assistant response; anthropic-prices.json is the cached price table. | |
| Export presets | Your named export presets are kept in ExportPresets.json. | |
| Rewrapped copies | Movies Frame Job converted or repackaged from files macOS could not open live in the Rewrapped folder. | |
| The agent socket | The local socket MCP clients connect to is created at every launch. | |
| Recordings | Screen recordings, camera recordings and voice-overs go to ~/Movies/Frame Job Recordings/, named by date and time. | |
| Projects | Projects are .framejob packages wherever you save them, and hold their own caches. | |
| Movies | MOV, MP4, M4V and other containers macOS plays, with H.264, HEVC, ProRes, MJPEG or MPEG-4 video, and VP9 and AV1 with limits. | File ▸ Add Media… ⇧⌘I |
| WebM and Matroska | .webm and .mkv with VP9, AV1, H.264 or HEVC video and Opus, Vorbis or AAC sound, copied unchanged into a QuickTime movie. | File ▸ Add Media… ⇧⌘I |
| Sound | M4A (AAC, ALAC), MP3, WAV and AIFF everywhere; other formats macOS plays, such as CAF and FLAC, import when dropped on the Media tab. | File ▸ Add Media… ⇧⌘I |
| Any sample rate | A source that is not 48 kHz stays aligned on the timeline through a hidden 48 kHz copy. | |
| MP3 gapless start | An MP3's encoder delay is skipped, at any sample rate, so its sound starts on time. | |
| Pictures | PNG, JPEG and HEIC everywhere; TIFF, GIF, BMP, HEIF, WebP and AVIF import when dropped on the Media tab. | File ▸ Add Media… ⇧⌘I |
| Deep and HDR stills | A still deeper than 8 bits a component is drawn at 16-bit float, and one labelled HLG or PQ is read as HDR. | File ▸ Add Media… ⇧⌘I |
| Movies with alpha | Transparency in a movie is detected on import. | File ▸ Add Media… ⇧⌘I |
| Portrait and rotated movies | A portrait phone clip imports at its display size, not sideways. | File ▸ Add Media… ⇧⌘I |
| Variable and unusual frame rates | A rate within 0.01 fps of a standard one becomes exactly that rate, and any other keeps three decimals. | File ▸ Add Media… ⇧⌘I |
| LUTs | .cube 3D LUTs, applied as a clip's look or as a file's Camera Log. | File ▸ Add Media… ⇧⌘I |
| Caption files are not media | An .srt or a .vtt comes in through File ▸ Import Captions…, not as media. | File ▸ Import Captions… |
| Which way in takes which file | The Add Media… and Open panels list fewer types than a drop on the Media tab takes. | File ▸ Add Media… ⇧⌘I |
| What a package is | A project is one .framejob package: a folder the Finder shows as one file, holding the edit, its caches and, on request, copies of the footage. | File ▸ Save ⌘S |
| project.json | The edit itself: canvas, media list, tracks, clips, markers, and the only thing a package needs in order to open. | |
| cache/ | Things Frame Job can rebuild, so a package with a missing or damaged cache/ still opens and redraws. | |
| Transcripts are worth keeping | A transcript from AssemblyAI costs money to make again, so treat cache/transcripts/ as worth keeping. | |
| media/ | Copies of the footage, present only after Consolidate Media…. | File ▸ Consolidate Media… |
| graphics/ | Graphic modules, their fonts, images and kept versions, present only once you add a graphic, font or image. | |
| How a package travels | Moving, copying or consolidating a package keeps its caches. | |
| Project size | A project holds at most 4,096 clips, 64 tracks, 1,024 markers and 1,024 media files, with nests up to 8 deep. | |
| Canvas, layers and text | Canvas sides are even numbers from 16 to 16,384 px, and a clip takes up to 4 filters and 4 obscure regions. | |
| Timeline and editing | The overlap rule, the one-frame minimum and the timeline's ranges. | |
| Speed | A rate is always between ×0.1 and ×1000, and a clip keeps its sound up to ×12. | |
| Audio | Clip volume reaches 3200 % and track volume +12 dB, and the gate, leveller and de-esser need a measured clip. | |
| Captions and transcription | AssemblyAI takes files up to 10 hours long and 1,000 Vocabulary terms, and caption import reads SubRip and WebVTT. | |
| Colour | A curve holds 2 to 16 points, and only 3D .cube LUTs of size 2 to 65 are read. | |
| Export | Custom sizes of 16 to 8,192 px, 600 frames for an animated GIF or PNG, and the limits on loudness, 24-bit sound and transparency. | |
| Graphics | A graphic draws at most 8,192 pixels on a side. | |
| Recording | Camera frame rates, the panel's five layouts and the menu-bar item's length. No global shortcut stops a recording. | |
| The Assistant and agents | The compaction threshold is 20,000 to 900,000 tokens, and a launch or get_media_analysis waits up to 60 seconds. | |
| Settings and tools | Background render's wait, the inspector and timeline pane sizes, and where Frame Job looks for ffmpeg. | |
| A command is greyed out | Every menu item has a rule for when it is on: check the selection, a nest, an open sheet and any key it needs. | |
| A key does nothing | Single-letter keys and the arrow keys stop working while you type in a field or a sheet is open. | |
| The app beeps and an edit doesn't happen | When the project's rules won't allow an edit, the app beeps, nothing changes and the rule appears at the foot of the inspector. | |
| A project won't open | A project that can't be read fails with a message naming the problem, and Frame Job doesn't rewrite the package. | File ▸ Open… ⌘O |
| A file won't import | Frame Job tells you which file it couldn't add and why. | File ▸ Add Media… ⇧⌘I |
| Clips show a slate | A project always opens; clips whose file is gone keep their place, show a slate, and their media rows wear the missing badge. | Right-click a row in the Media tab ▸ Relink… |
| A clip is silent | Check the clip's own sound, the track's Mute and Solo, the clip's rate and whether its sound is still rendering. | |
| An export won't start or stops | An export that fails says why and leaves no finished file. | |
| A feature asks for a key | Anything that sends your words or audio to a language or cloud model needs your own key. | |
| Recording won't start | A recording needs macOS's permissions, asked only when you press Record. | System Settings ▸ Privacy & Security |
| An agent can't reach Frame Job | Only programs running as you can connect, through the framejob-mcp helper. | |
| Glossary: projects and the timeline | Words for the things you edit. | |
| Glossary: picture and sound | Words for what is drawn and heard. | |
| Glossary: graphics and agents | Words for code-drawn clips and for driving Frame Job from an agent. | |
| Frame Job's licence | Frame Job is released under the Apache License, Version 2.0. | |
| Third-party notices | Every copy of the app carries Acknowledgements.txt, listing every third-party notice it owes, each with its licence text. | Frame Job.app ▸ Contents/Resources/Acknowledgements.txt |
| What carries its own licence | The bundled fonts, the voice-activity model, the encoders and the patched tiny-skia keep their own licences. |