metalign

metalign handbook

metalign is the field logbook for film, on iPhone, iPad and Apple Watch; metalign desktop is the Mac app; metalign web is the Mac app's Film section in a browser. First the order the work happens in: four steps, and only the last one leaves the phone. Then everything each of the three can do, one heading per feature, and the part none of them can explain on its own: what passes between them.

Document
metalign handbook, second edition
Checked
, against the apps themselves
Applies to
metalign 0.1 (iPhone and iPad with iOS 17 or later, Apple Watch with watchOS 10 or later) · metalign desktop 0.1 (macOS 14 or later) · metalign web, which carries no version yet
Status
metalign web is live at web.metalign.org. metalign for iPhone and for the Mac are not released yet: this says how they work, not how to get them.

Section 1 A roll, start to finish

Four steps. The first three happen on the phone, over however many days the roll takes; the fourth happens once the scans are back, and it is the only one with a choice in it. Each step ends where the full description of it begins.

  1. Step 1.1 Your gear, and your name

    Creator and Copyright are copied into a roll when it is created, not added to it later. Set them before the first roll, not after.

    Bodies
    Gear → Cameras. Make and model get written into every scan.
    Lenses
    Gear → Lenses. Mount is optional. The aperture dial can be bounded to the stops the ring really clicks at, half-stops included.
    Film
    Gear → Film stocks, or straight from the New roll form, or from the barcode on the box.
    Creator & Copyright
    Settings → Defaults for new rolls.

    Everything about gear, the catalogue and the barcode: §2.7.

    Fig. 1.1 Gear, before the first roll.
  2. Step 1.2 Create the roll, and load it into a body

    The number the roll will get is on the form before the roll exists. Write it on the canister: it is how the roll back from the lab finds its log.

    Rolls → +
    the film first, then the camera it goes into, then the roll's number, frames and expiry.
    The barcode button
    fills in the film from the box, once the app has learned that box.
    Load into a camera now
    with the lens that's mounted; or later from the roll, or from Apple Watch.
    Metered at
    the box speed, unless you push or pull.

    The whole form, and the rest of a roll's life: §2.2.

    Fig. 1.2 New roll: the film first, then the camera it goes into.
  3. Step 1.3 Log each frame as you shoot it

    A frame logged without the dials in view records the time and the gear and leaves the exposure blank on purpose. It is never guessed from the frame before it.

    Set the dials, tap Log frame N
    time and place are stamped automatically (§2.3).
    No dials in view
    Apple Watch, a widget, the Log Frame control, the Live Activity, Siri, the Action button (§3).
    Skipped a frame?
    Add blank frame holds its place: pairing is positional (§7).
    Finished
    ⋯ → Finish roll marks the roll Exposed.
    Fig. 1.3 A roll in a camera: the frames logged so far, and the capture bar for the next one.
  4. Step 1.4 Write the log onto the scans

    All three apps write from the same document, by the same positional pairing, into the same tags. What differs is which files they open and what they leave behind (§9).

    On the phone
    • ⋯ → Scan pairing, then From Files or From Photos.
    • Check the pairing, tap Write N scans. JPEG only: a TIFF is refused.
    • Full detail: §2.8.
    On the Mac
    • Send the roll from the phone, click metalign in the Dock while the roll is open on the phone, or AirDrop the exported .json (§6).
    • Drop in the scans, check the pairing, press Write metadata. Every scan keeps an _original backup.
    • Full detail: §4.8.
    In a browser
    • Open in a browser on the phone's Export screen, or drop the .json and the scan folder into metalign web.
    • Check the pairing, then write into the files (Chrome, Edge, Opera) or download a ZIP. Nothing is uploaded.
    • Full detail: §5.

Section 2 metalign on the iPhone and iPad

metalign is a logbook for film: one entry per frame, written at the shutter, and later written onto the lab's scans. Everything it does is here, one heading per feature, in the order you meet it. The app has four tabs: Rolls, Gear, Digital and Settings. On an iPad it is the same app, with the list of rolls beside the open roll.

Section 2.1 The Rolls list

The five tabs: where a roll is in its life

The Rolls list opens on a strip of five tabs, one per stage of a roll's life and one for everything: In a camera (loaded rolls), Ready to shoot (unused film, including rolls taken out part-shot), Shot (exposed, developed and scanned rolls), Archived (whatever you put away yourself, in any state) and All rolls. Only the selected tab shows its name; the others show an icon. A finished roll is under Shot. An empty tab says what lands there. The list opens on the first tab that holds a roll, never on All rolls unless you pick it.

Several cameras at once: one heading per body

With rolls loaded in two or more bodies, In a camera gets one heading per camera, named as in Gear, so you can see which film is in which body. Each body holds one roll; two cameras are shot at once by loading a roll into each.

Storage, fridge, freezer: where unshot film is kept

Unshot film can be filed by where it is kept: Storage, Fridge or Freezer, set as Kept in on the New roll form or in Roll details. Under Ready to shoot a row of chips appears, All and one per place that holds film, each with a count: tap Freezer to see what film is left in the freezer. The New roll form starts on the last place you chose.

Sorting the list

The ↑↓ button at the end of the tabs sorts the tab you are on. Ready to shoot sorts by Expiry date (the default, soonest first), Canister number or Film. Shot sorts by What’s next (exposed rolls first, then those at the lab, developed and scanned) or Most recent. Archived sorts by Most recent, Film or Camera. All rolls keeps the four tabs' headings with Tab, or becomes one flat list by canister number, most recent or film. In a camera has no sort. The choice travels with your library.

Pull the list down for a search field, Film, gear, place or note. It finds a roll by its name, its #number, film, body, lab or notes, by the year it was shot, and by what its frames carry: a title, caption, keyword, note, lens or a place name already looked up. Every word you type has to match somewhere on the roll, and a row found through a frame says which frame. Case and accents are ignored, so tromso finds Tromsø. #12 finds roll 12 alone. Search never looks anything up, so it works offline; a place matches only once its name has been looked up (§2.6).

What a roll's row shows

A row carries the roll's number, the camera or film as its headline, its name, format, ISO and storage place, and a count of frames against the roll's length, orange once the roll is past it.

  • Expiry. An hourglass and Exp. 03/2027, the way the box prints it, in orange once that month has ended. There are no reminders: the app sends no notifications. Ready to shoot sorted by expiry is the list of what to shoot first.
  • Push or pull. A roll metered at another speed than the box draws its ISO in full ink with an arrow up or down (§2.2).
  • Process badge. A small box before the film's name says its process: C-41, E-6, ECN-2 or B&W, coloured so the kinds tell apart at a glance. It appears when the film has a process set in Gear.
  • State. A coloured capsule: Unused, Part-shot, Loaded, Exposed, Developing, Developed or Scanned. On the list it shows only its icon, to leave room for the name; tap it to read the word. Part-shot is an unused roll that already has frames (one taken out to change film). Developing is an exposed roll you marked Sent to lab.
  • Delivery marks. A green mark once the log has been exported or sent, a second once it has been written onto scans, and a blue dot with a number for frames logged with the app closed that are not confirmed yet (§2.4). The marks record what happened; they never stop you sending a roll again.

A Log frame button on the list

Settings → Rolls & frames → On the Rolls list → Log frame button puts a Log frame N button on every loaded roll's row. It logs the next frame without opening the roll: time, gear and, with location on, the place, but no exposure, which you can add to the frame afterwards. Off by default.

In hand: which camera a blind press logs onto

With two or more rolls loaded, Shortcuts, Siri and the Action button cannot see which camera you just used. Swipe a loaded roll right, or hold it down, and choose In hand: those routes then log onto that body until you choose another. The body in hand is drawn green with a filled camera icon, and a line under its heading says where frames will land. Pressing a camera on Apple Watch sets it too, and so does Settings → This device → Body in hand. It is a preference, not a lock: if that body is empty, a frame lands on the roll most recently loaded. It stays on the device and is not synced. More in §3.

Swiping and holding a roll

Swipe a roll right to Archive it (Unarchive on an archived one), or left to Delete it; both need a tap, not a full flick, on a loaded roll. Hold a roll down for more without opening it: Roll details, Show as Live Activity, Sent to lab, In hand, Export for metalign, Scan pairing and Select, each where it applies.

Archiving a roll

Archiving moves a roll to Archived and keeps everything on it. From the list it is a right swipe; from the roll it is ⋯ → Archive roll. An archived roll can still be opened, edited and sent, and still counts in Statistics. Archiving a loaded roll takes it out of its camera.

Selecting several rolls

Select (from a roll's long press) or Send multiple (from the share button at the top of the list) ticks rolls. A bar then offers Mark as, Move to (Storage, Fridge or Freezer), Archive and Delete, and the top bar Send N rolls (§2.12). To mark ten rolls developed at once, tick them and choose Mark as → Developed.

An empty library

With no rolls yet, the Rolls tab offers two ways in: Add a roll and Import a shot log (§2.11).

metalign on iPad

On an iPad at full width the Rolls list is a sidebar with the open roll beside it, and the app opens on the roll in hand. With no roll open the right side says No roll open. The list folds away while Scan pairing is open, which gets a wider table there (§2.8). A narrow Split View window follows the iPhone's layout.

Long roll names

A roll's name that does not fit the top bar wraps onto a second, smaller line before it is cut.

A canister number that moved after a sync

If two of your devices gave two rolls the same canister number, the roll added later takes the next free number, and a line above the list says so until you dismiss it.

Section 2.2 A roll, from New roll to the archive

New roll

Rolls → + opens New roll, one form in four parts. Film: the format and the Stock, picked from your gear or the bundled catalogue, or Add a film stock…. Camera: Load into a camera now, with the body and lens. Roll: number, how many rolls, an optional name, frames, expiry and the speed you meter at. Storage: Kept in. At the foot, Already shot for a roll shot without metalign. The barcode button in the top bar scans the film box (§2.7), and the tick adds the roll.

The format sets the frame count: 36 for 135, 12 for 120, 24 for 220 and 110, 1 for 4×5 and 8×10, 8 for Instant. The stepper takes any count from 1 to 200, so a 24-exposure roll is one tap away.

Canister number, and several rolls at once

The form shows the number the roll will get before it exists (#12, or #12–#16 for five) so you can write it on the canister, which is how a roll back from the lab is matched to its log. Rolls adds up to 20 rolls of one film in one go; a batch is not loaded. The next number is one above the highest in the library, and it can be changed later to any whole number, year-style ones included.

Metered at: box speed, push and pull

Metered at starts at the film's box speed. Change it only if you push or pull: to log HP5 pushed to 1600, pick HP5 and set Metered at to 1600. The form then adds a Push / pull row (+2 stops), and the roll's card says it was pushed from box speed. The metered speed, not the box speed, is written as the film speed on every scan, and it is what the lab needs. It can be changed after shooting in Roll details; a single frame metered differently is set on that frame (§2.5).

Loading a roll into a camera

Switch on Load into a camera now and pick the body and the lens. The lens becomes that camera's usual lens, so the capture bar and Apple Watch both start on it. A roll can also be loaded later with ⋯ → Mark as → Loaded, which asks for the body and, if you have lenses, which one is mounted: Load roll offers the camera's usual lens, and Every frame takes this lens until you change it on the capture bar. A body set as Default body in Settings is preselected when its format matches.

Swapping a roll out of a camera

Loading into a body that already holds a roll asks what happened to that one: Mark it exposed (shot to the end, ready for the lab) or Put it back on the shelf (taken out part-shot to change film; it keeps its frames and carries on where it stopped when you load it again). Settings → Rolls & frames → When swapping a roll answers it once for good. With Ask every time, Apple Watch will not swap and sends you to the phone.

Already shot: a roll shot without metalign

Already shot at the foot of New roll is for a roll you shot without the app, years ago if you like. You name its body without loading it and give it a developed or scanned date. The roll starts as Developed or Scanned, and its frames come from its scans: pick the lab's scans in Scan pairing and it adds one frame per scan (§2.8). One roll at a time.

A roll with no frames

An empty roll's screen says the next step: on a loaded roll, tap Log frame; on unused film, load it first; on a shot or scanned roll, pick the lab's scans in Scan pairing. Frames can be logged only on a loaded roll.

The roll's summary card

The top of a roll's screen repeats its row and adds what the row has no room for: a push or pull line, the dates the log was exported and written onto scans, and the Mac's receipt when it was sent to one. The camera's name links to that camera in Gear.

The roll's ⋯ menu

A roll's screen has a ⋯ menu with everything that acts on the whole roll: Roll details, Frame map, Add frames…, Export for metalign, Scan pairing, Sent to lab, Mark as, Finish roll and Archive roll, each where it applies.

Roll details

⋯ → Roll details edits a roll after it exists: name, frames, expiry, Metered at, film and body; number and Kept in; Creator and Copyright, which are per roll and written onto every scan from it; the lab and notes; the dates and the log's marks. A wrongly chosen film is fixed here; the format cannot change. Choosing None (back on the shelf) as a loaded roll's body takes it out, part-shot, with its frames kept. Editing never changes the roll's state; only Mark as does.

Dates, and the log's two marks

Roll details lists Loaded, Finished, Sent to lab, Developed and Scanned, and under The log the dates it was Exported and Written onto scans. Each can be set or cleared by hand when the app has it wrong. Changing a date does not change the roll's state.

Danger zone

At the foot of Roll details, when there is something to clear: Clear exported mark, Clear written mark, Clear N thumbnails, Remove N full scans and Clear scan pairing. Each asks first and acts the moment you confirm, even if you then close Roll details without saving. Above it, Scans kept by this app shows how much space the roll's thumbnails and full scans take. To free space, remove the full scans first.

Deleting a roll

Delete roll in Roll details, a left swipe on the list, or the selection bar's Delete. The question counts the logged frames, which the negatives cannot give back, suggests archiving instead, and with iCloud sync on says the roll goes from your other devices too. Deleting several rolls also names those whose log has already gone out. There is no undo in the app.

Mark as: setting a roll's state by hand

⋯ → Mark as sets Unused, Loaded, Exposed, Developed or Scanned, and stamps today's date for that step. Going back clears the later dates, never the log's marks. Part-shot and Developing are not in the menu: they follow from the roll's frames and dates. Picking scans in Scan pairing marks an exposed or developed roll Scanned by itself.

Finish roll, and Undo

⋯ → Finish roll on a loaded roll marks it Exposed with today's date and puts the capture bar away. A Roll finished line with Undo stays while you are on that roll's screen, for the frame you find left on the roll. Later, Mark as → Loaded does the same.

Sent to lab, and Developing

Sent to lab, in the ⋯ menu or a roll's long press, stamps the day an exposed roll went to the lab. Its state then reads Developing until you mark it Developed, and under Shot it sorts between the exposed rolls and the developed ones.

Statistics

Settings → About → Statistics counts what you have shot: rolls, frames, exposures logged, blank frames and frames with a location; your first and latest frame; the films and bodies you used most (rolls each), the lenses (frames each), and frames per year. Archived rolls count, and so does gear you have since deleted. The numbers are worked out when the screen opens, on the device.

Section 2.3 Logging a frame: the capture bar

The capture bar and Log frame N

At the foot of a roll that is in a camera sits the capture bar: a lens chip, a filter chip, a flash bolt, the location status, the Shutter and Aperture dials, and Log frame N. Shoot, set the dials to what the camera was set to, tap. The frame gets the time with its time zone, the place, the dials, the filter, the compensation, the flash and the lens. The dials always show the next frame, and logging never waits for GPS. There is no bar on a roll that is not loaded.

The dials stay where you left them

With Settings → Rolls & frames → Carry settings to the next frame on (the default), the dials, lens, filter and metered ISO stay put after each frame and when you come back to the roll, so a run at one setting is one tap a frame. Off, every frame starts from a clean dial. A route with no dials (§3) never takes a shutter or aperture from the frame before.

"—": an exposure not recorded

Each dial has a "—" stop, which records nothing, and a frame logged there reads No exposure recorded. A quick flick lands on a real stop, never on "—"; place it deliberately. If a body or lens change drops the value a dial was on, that dial goes back to "—" rather than to a wrong stop.

The lens chip

The first chip names the lens on the camera, or No lens. Its menu lists the lenses that fit the body's mount; picking one mounts it, which sets the lens of the next frames and the aperture dial's stops. The lens belongs to the camera, not the roll, so it stays on for the next roll in that body. A frame already logged is changed in the frame editor.

The flash bolt

The bolt beside the filter chip switches between not recorded and Fired for the next frames, and stays on until you tap it off. "Did not fire" is set in the frame editor. Silence is not a value: a frame that says nothing about a flash writes no flash tag.

How many frames are on the roll

The count, 13 / 36, is on the roll's card and its row, orange past the roll's length. When the count reaches the length, a small orange mark appears beside the dials: film usually gives one or two more than the box says, and the log keeps counting. Frame 37 can always be logged.

A body whose counter starts below 1

A Leica M6 loaded fresh sits at −2, so its first exposure is −1. Gear → a camera → Frame counter → Counter starts below 1, with First frame set from −5 to 1, numbers frames the way the camera's counter does, in the app, the shot log and the scans. Frames before 1 count towards the roll decides whether those count towards the 36. Why it matters for the lab's scans: §7.

The location status: why a frame would get no place

Beside the dials the bar shows the position's accuracy, ±5 m, when a usable fix is ready. Otherwise it shows an orange crossed arrow; tap it for the reason: Location off (the setting), no access, Low Power Mode, or still finding the position. In Low Power Mode metalign keeps no position ready, unless a track is recording. Not saved in the same place means the library could not be saved, and Settings says why.

Putting the bar away, and its size

Tap the bar's handle to put it away or bring it back, or drag it: it settles hidden, Standard or Roomy (the default, with more space around the dials). The size is also under Settings → Rolls & frames → On a roll’s screen → Capture bar, and stays on the device. Putting the bar away never changes the dials.

Scene: a picture of what you shot

The round camera button beside Log frame opens Scene: the iPhone's camera, with frame lines for the angle of view of the lens on the body and the roll's format, turnable between landscape and portrait. Log frame N there logs the frame as usual and keeps a small picture of what the camera saw. It shows on the frame's row until the scan replaces it, and it is how Scan pairing can spot a negative the lab skipped (§2.9). The picture stays on this iPhone: it is never synced, exported or uploaded.

Where the Scene button sits

Settings → Rolls & frames → Scene button: On the left (the default), On the right, or Hidden, which gives Log frame the whole width. Holding either button down on a roll does the same.

Section 2.4 The frame list and the frame editor

What a frame's row shows

A roll's frames are listed newest first, under the capture bar. Each row shows the frame's number, its shutter and aperture (or No exposure recorded, or Blank frame), any exposure compensation in orange, the day and time, and by default the frame's title and note. A strip of small marks follows: the blue dot of a frame not confirmed yet, a filter, a flash that fired, the place (hollow when estimated), the light, a kept scan, the flag, the deletion mark and the rating. A frame marked for deletion shows "—" for its number.

Opening a row: everything the frame recorded, in words

The chevron at a row's left unfolds it into lines: date and time, lens and focal length, filter, flash, place (with the words for an estimate), light, flag, deletion mark, rating, note, and how the frame was logged, for example Logged on the capture bar or Logged from the Apple Watch. Tapping the place line looks up its name (§2.6). Blank frames have no chevron.

Which words a row shows

Settings → Rolls & frames → Words on a frame row picks which of title, caption and note a row shows, and in what order. Title and note are on by default. With all three off a row shows the first one the frame has; Show nothing leaves only the exposure and the marks.

Swiping a frame right

A right swipe shows up to two actions you choose under Settings → Rolls & frames → Swiping a frame right (First, Then): Write a note (the default), Copy to the dials, Flag this frame, Mark for deletion, Make it blank or Delete the frame. A frame with a blue dot offers only Confirm until it is confirmed. A full swipe runs a note or a confirm; anything else stops on its button. A one-time hint above the frames names your right-swipe actions.

Swiping a frame left: deleting in two steps

By default the left swipe deletes in two steps, and the first loses nothing. Mark for deletion takes the frame's number away at once: the row reads "—" and every later frame reads one lower, so what deleting would do to the roll is on screen before anything is gone. The same swipe on a marked frame offers Restore, or Delete, which then changes no number. No full swipe deletes. Swiping a frame left in Settings changes the pair.

Holding a frame down

A long press lifts the row, with its scan as a preview if one is kept, and offers what the swipes leave out: a row of Note, Flag and Mark for deletion; Mark unconfirmed, which puts a blue dot back; Copy to the dials; Share photo when a scan is kept (§2.10); Select frames; Make it blank; and always Delete frame. A rating is set in the frame editor.

Copy to the dials: shooting another frame like this one

Copy to the dials (To dials on the swipe) puts a logged frame's shutter, aperture, filter, compensation and a fired flash on the capture bar for the next frame, and mounts that frame's lens. It never changes the frame it copies from. Only on a roll in a camera.

A note on a frame

Note opens a small sheet titled with the frame. A note is written onto that frame's scan, as XMP-metalign:frameNote (§8), and is never carried to the next frame. Saving a changed note also confirms a frame with a blue dot.

Flagging a frame

Flag this frame puts an orange flag on a frame for your own attention: from the swipe, the long press, the editor or a bulk edit. It travels in the shot log and the Mac shows it, but it is never written onto a scan. A flagged frame is written like any other.

Rating a frame

One to five stars, in the frame editor under Description → Rating, in a bulk edit, or from Scan pairing's long press. It is written onto the scan as the standard XMP rating.

The frame editor

Tap a row to edit everything the frame recorded. ‹ Frame 12 › in the top bar steps to the neighbouring frames, and so does a sideways swipe, with dots at the foot for where you are. Stepping away from unsaved changes asks: Save changes, Discard changes or Stay on this frame. A long pull down closes it; a short one springs back, so a scroll cannot close it by accident. Done saves and confirms a blue dot; Cancel discards. A kept scan is shown at the top. Everything recorded stays editable, whenever.

The editor's five sections

  • Exposure. Shutter and aperture as rows; Edit brings up the same dials as the capture bar, kept behind a button so a scroll cannot turn one. Then Metered ISO, Exposure comp. and Flash: Not recorded, Fired or Did not fire, the last only settable here.
  • Lens. The lens (every lens, those that fit the body first), Focal length and the filter. A zoom's focal length is typed in, and the next frames on the same lens carry it; a prime's own length is never written as if it had been measured.
  • Description. Title, Caption, Keywords (separated by commas) and Rating: the fields written onto the scan.
  • Notes. The note, Flag this frame and Mark for deletion.
  • Date, time & place. Recorded time switches the frame's time on or off; on, Captured sets it, with its time zone. A frame that had no time is told which timed frames lie either side. The place rows follow: Use current location, Choose a place…, Move on the map…, Remove location and the place's name (§2.6).

Settings → Rolls & frames → Sections when editing frames reorders the five, for one frame and for a selection alike, so the one you reach for first can come first. Delete frame is always last.

Selecting frames, and editing several at once

The checklist button at the top of a roll opens Select: tick frames, or Select all, then Edit N frames. A long press's Select frames starts with that frame ticked. The bulk editor has a Change … switch per field, and only the fields switched on are written; a summary, What will be written, comes before Apply, which cannot be undone. Keywords can be added or replaced. Several frames' times can run on from a first one, 1 second later or 1 minute later each, in roll order, and one place can be given to all of them. A bulk edit does not confirm blue dots.

Deleting several frames

Delete N frames at the foot of the bulk editor asks the one question for all of them: Leave blank frames or Move the rest up. If any of them is already blank or marked, only moving up is offered.

Rearrange: putting frames in the right order

Rearrange gives each row a handle. Dragging a frame re-deals the numbers the roll already has, so the log matches the strip and no two frames share a number. A missed negative is Add blank frame, which lands at the end, then dragged into place. The red minus in Rearrange deletes the way Settings → Rolls & frames → Deleting frames → In “Rearrange” says: Offer every choice (the default), Confirm only, or Delete at once. A swipe or a long press always asks.

Deleting a frame: leave a blank, or move the rest up

Every delete asks whether the negative is still on the film. Leave a blank frame keeps the number with nothing on it, so the scans still pair in step; Move the rest up removes the number for a frame that was never shot, and every later frame moves up one. If the roll's log has already gone out, the question says that moving up leaves old numbers in the scans until you send it again. From the list, leaving a blank can be undone on the row. Why this matters for scans: §7.

A frame marked after the roll went out

If a frame is marked for deletion after the roll's log was sent or written, a sentence under the frames says so: "A frame was marked after this roll went out, so the frames after it have new numbers. What went out keeps the old ones until you send or write the roll again." It is never a refusal: metalign pairs scans by position, not by number, and sending the roll again puts the two back in step.

Blank frames

A blank frame is a frame number with nothing logged on it: a negative you know exists and know nothing about. Add blank frame, at the top of the list in Select or Rearrange, adds one at the end, to be dragged into place. Make it blank (Blank on the swipe) empties a logged frame entirely, time and place included, and the row then carries an Undo. A blank frame that is given any value in the editor stops being blank.

Add frames…: a run of frames at once

⋯ → Add frames… appends a run of frames to the end of a roll, one for each negative you have, starting at what the roll has left (so 36 on an empty 36-exposure roll). They can share a lens, and with Give them a time they get times 1 second or 1 minute apart from a first one. Without a time a frame carries no date, and metalign then leaves the scan's own date alone. This is the way to log a roll after the fact, then fill in what you remember.

The blue dot: frames to confirm

A frame logged with the app closed arrives with a blue dot (§3.1). Look at it and swipe it right to Confirm, or open it and tap Done. The blue dot in the frames' header narrows the list to those frames and offers Confirm all. The Export screen warns about unconfirmed frames before a roll is sent, so a press logged twice is caught first. Settings → Rolls & frames → Blue dot switches the dot off for Apple Watch, for the Action button, Siri and Shortcuts, for the Lock Screen and Dynamic Island, or for the Home Screen widget.

One press logged twice?

When two unconfirmed frames were logged the same way less than three seconds apart, a line above the frames asks "One press logged twice?". Mark the extra one for deletion, or confirm it if both were real.

Exposures nobody checked, on older rolls

A roll from an early build, or imported from one, may show a box headed N frames logged by Shortcut: frames whose exposure was carried over from the frame before and never checked, drawn with an orange "?". Confirm all keeps them, Clear all empties them. Nothing the app does today creates such a frame.

VoiceOver and Reduce Motion

Every mark on a row has a spoken label, a rating is read as a number of stars, and the capture bar's handle and dials are adjustable. In Select, a row has an action to show its details; in Rearrange, one to delete it. With Reduce Motion on, every movement lands as a cut instead of sliding.

Section 2.5 Exposure, filters and light

Filters: recorded, never applied

The capture bar's middle chip reads No filter or the filter's name. Tap it for Filter & EV: an exposure compensation stepper and a list of filters with their factors: UV / Skylight, Yellow #8, Yellow-Green #11, Orange #21, Red #25, Green #58, Blue #47, a polarizer, and ND 0.3 to 3.0. A filter with a name of your own (a Hoya R72, say) is typed in the frame editor or a bulk edit, and carries no factor. The filter is written onto the scan in metalign's own namespace.

What a filter costs

The sheet says, in stops, what to give over the meter: "Yellow #8 costs 1: give 1 stop more than the meter." Any compensation you dialled is already added in, because both push the same way and you would otherwise be adding them up between metering and setting the ring. The factors are the nominal daylight values printed on filter rings. Nothing ever moves the dials: they record what the camera was set to, not what it should have been.

Exposure compensation

−5 to +5 EV in thirds of a stop, in Filter & EV for the next frame and as Exposure comp. in the frame editor. It shows in orange on the frame's row and is written as EXIF:ExposureCompensation; zero writes nothing.

One frame metered at another speed

The frame editor's Metered ISO says a single frame was metered differently from the roll; it reads Roll default (400) until you change it. The scan gets the frame's metered ISO, or the roll's Metered at when none is set.

The light: golden hour, blue hour, night

A frame with both a time and a place knows its light: Daylight, Golden hour, Blue hour, Twilight or Night, with the sun's altitude and direction, for example Golden hour · 3° · WSW. It is worked out on the phone from the two facts already logged, with no connection, and it follows a corrected time or place. It shows in the frame editor, as a mark on the row, and beside the capture bar's dials for the frame about to be logged. A frame missing either fact has none. It is never written into a scan: it is the app's reading of the log, not something the log claims.

Section 2.6 Places

The place at the shutter

While a loaded roll's screen is open, the phone keeps a position ready, and a frame takes it the instant it is logged; logging never waits for GPS. A fix more than two minutes away from the frame's time is not used. A frame logged away from the screen (§3.1) is saved first and given a place if one arrives within a few seconds. Location needs only the While Using permission, and Low Power Mode stops the ready position unless a track is recording.

Switching place recording off

Settings → Rolls & frames → Log location for each frame off records no place on new frames from any route, the watch included. Frames already logged keep theirs.

A frame's place in the editor

In the frame editor's Date, time & place, a frame with a place shows a small map, its coordinate and accuracy, Move on the map… and Remove location. A frame without one offers Use current location, which records where the phone is now (for a frame logged a moment ago, still at the spot) and Choose a place…. If no fix comes back, the frame keeps no coordinate rather than an invented one.

Choose a place: from another frame, a track, or by hand

A frame that got no place can be given one. Choose a place… offers up to three sources. From another frame: the nearest frame before and after it in time that measured its own place, with how long apart they were and how far apart, so the tolerance is seen rather than asserted; where only one side has a place it says so, because then nothing bounds the guess. From a track: where a recorded track was at the frame's time (§2.13). Place by hand…: move the map under a cross and use where it points. Two rules hold. An estimate is never the source for another estimate, which stops one guess walking down a roll. And an estimate carries no accuracy figure, because the accuracy belonged to the measurement.

Estimated places, and orange pins

A place nobody measured says so where an accuracy would be: Estimated, Placed by hand or From a track, in orange. On maps it is an outlined orange pin; a measured place is a filled pin. It is written onto the scan with EXIF:GPSProcessingMethod set to MANUAL (§8), the standard way to say a person asserted the position, and all three apps say it the same way.

Frame map

⋯ → Frame map puts the roll's frames on a map, frames at one spot sharing a pin. Under it, the frames that recorded no place, then those on the map; tap any of them to choose its place, which is saved at once. The contact sheet's viewer opens it too, on one frame.

Fig. 2.1 The frame map. Blue is a place the phone measured and orange a place somebody worked out; the list says which in words, where there is room to say it.

Fill places from a track

⋯ → Fill places from a track gives every frame that has a time and no place the position of a recorded track at that time, in one go, each marked From a track. Frames that have a place are never touched. It is offered when a track exists and the roll has such frames. A track records on the same phone in the Digital tab, or from Siri; a locked phone in a pocket logs the time, and the track supplies the place.

Place names

Tap the place line on an opened frame row and metalign asks Apple Maps for the place's name; tap again to switch between name and coordinates. ⋯ → Name the places names every place on the roll at once. A name can also be typed in the editor's Place name. Names are looked up only when you tap, the coordinate going to Apple, and are kept with the frame; they are what search finds, and they go into the shot log, the contact sheet and the phone's own scans.

How much of a name to show

Settings → Rolls & frames → A place’s name: Just the place, Place and town (the default) or Everything, down to region and country. Changing it looks nothing up again.

Section 2.7 Gear, the catalogue, and the film box

The Gear tab

Gear holds your cameras, lenses and films. A new library starts empty, and nothing has to be entered first: a roll needs only a film, which can come straight from the catalogue, and a body only to load it.

A camera: make, model, serial, format, mount

Make and Model become the scan's EXIF make and model, and metalign groups scans by model, so name a body the way you want it to appear. Serial number tells two bodies of one model apart and is written onto the scans. A body also records its format, its Mount (blank for a fixed-lens camera; the menu beside it offers mounts you already typed) and its Usual lens. Cameras have no catalogue, on purpose.

The shutter dial's range

Shutter dial: Fastest and Slowest bound the capture bar's dial to the body's range, and Other speed adds a marked speed in between, such as 1/50 (type 1/50; a bare 50 is refused). Left blank, the dial runs from 1/8000 to 60 seconds. B is always there.

The frame counter

Frame counter sets where the body's counter starts: see §2.3.

A lens: make, model, focal length, aperture ring

A lens records make, model, focal length (Shortest and Longest for a zoom), mount and serial, all written as the scan's lens tags. Aperture ring: Widest and Narrowest bound the dial, and Other f-number adds the half and third stops the ring really clicks at. A lens with no mount fits every body; with one, the capture bar offers it only on bodies of that mount.

A film stock

A film records Brand, Name, Box speed, Process (C-41, E-6, ECN-2 or black and white), the formats it is Available in, and notes. Push and pull are set on the roll, not the film (§2.2).

The catalogue: lenses and films

Add from the catalogue, under Lenses and Film stocks, searches a bundled catalogue and adds a row exactly as the catalogue has it; Add it by hand covers anything missing. The film catalogue also filters by process, sorts by name, ISO or brand, and shows Mine, Catalogue or All. On the New roll form, Stock opens one list of your films and the catalogue's, those sold in the roll's format first; picking a catalogue film adds it to Gear.

The catalogue mark, and your own copy

A row that came from the catalogue carries a small mark and still follows it, so an app update can correct it. Editing one of its catalogue fields asks Make this your own copy? first, and the row then stops following. What you added yourself survives the fork: a lens keeps its serial number, a film its notes and barcodes, and Use the catalogue’s version is the way back without losing either.

Suggest for the catalogue

A lens or film you added yourself offers Suggest for the catalogue: a prefilled mail to gear@metalign.org, or Copy message. It carries only the catalogue's own fields, never a serial, note or barcode, and nothing is sent until you send it.

Scanning the film box

The barcode button in the New roll form's top bar opens Scan film. Barcodes are learned rather than shipped: the first scan of a box asks Which film is this? from the films in your gear, and Link and use this film remembers it, so every scan after that is instant and sets Metered at to the box speed. That is slower on day one and right for the reason that matters: a wrong barcode in a bundled table would load Portra onto HP5 and be believed. A film's editor lists its Scanned barcodes, and swiping one away makes the next scan ask again. With camera access off, the scanner offers Open iOS Settings.

Deleting gear

Swipe a camera or lens left, or use Delete camera or Delete lens in its editor; if anything uses it, you are told what is lost first, and a roll in a deleted body goes back on the shelf with its frames. Delete film stock exists only on a film you typed in yourself, and only while no roll uses it. Shot logs already sent keep the gear they named.

Tidy the gear list

Settings → Data → Tidy the gear list… removes catalogue rows that came with an early version of the app and were never used or edited. It is offered only to libraries that were filled with the whole catalogue before August 2026.

Section 2.8 Scan pairing: writing the log onto the scans

A scan is written with the frame it is level with in the table, and nothing else binds them: not the lab's filename, not the frame number. Check the table before you write (§7).

Scan pairing

⋯ → Scan pairing on a roll (or the roll's long press on the list) opens the page where the lab's scans are lined up against the roll's frames, checked, and the log written onto them, all on the phone with no Mac. It is offered on every roll except a loaded one with no frames. The work is saved per roll and is there when you come back.

Picking the scans: From Files or From Photos

From Files is the recommended way in: a delivery kept in Files keeps the lab's filenames, and with them the roll's order. It takes JPEG files and folders, several at once; a folder adds the JPEGs directly inside it. A lab's download link is saved into Files first (and a .zip expanded there). From Photos takes photos from your library. Scans from Files sort by filename the way the Finder does; photos sort by their date. Picking scans marks an exposed or developed roll Scanned, and the page says so. A folder with no JPEGs in it is refused: a TIFF delivery goes to the Mac or the browser.

The pairing table

Each row is a frame, numbered as the roll numbers it, with the scan level with it; the header counts both, 36 scans · 36 frames. Frames never move on this page; only scans do. A row with nothing to write says why: No scan, No frame, a blank frame, or a frame left out because it is marked for deletion. Long-press a scan to see it large. The roll's frames as a scan sees them: No exposure recorded is a frame that logged nothing about its light.

A frame the lab didn't scan: placeholders

Swipe a row right and choose Insert placeholder to open a gap in the scan column there, so every scan below moves down one: for a negative the lab skipped. Swipe left for Take scan out or Remove placeholder, which moves the scans below up one. Taking a scan out never deletes the file.

A negative the log missed: Insert blank frame

The same right swipe offers Insert blank frame, which adds a blank frame to the roll above that row, for a negative nobody logged; every frame below is renumbered. On a roll whose log has already gone out it asks first. A blank frame's scan gets the roll's facts and its number, and no date, exposure or place.

Arrange, Reverse order, and the Scans menu

Arrange shows the scans alone with drag handles: drag one up or down to pair it with another frame. The Scans menu adds more (Add from Files, Add from Photos), Reverse order for a delivery numbered backwards, and Remove all scans to start over; nothing is deleted, and the roll goes back to the state it had before the scans were picked. When every picked photo is named like IMG_1234.JPG, the page asks you to check the order, because Photos has renamed them and no sort can recover the lab's.

What the page warns about

Orange sentences above the write say what a write would get wrong, and none of them blocks it. They name the frames that get no file and suggest a placeholder if the lab skipped one; count scans past the last frame, which get nothing (and say the missing blank frame may belong at the top, for a lab that scanned the wind-on frames); count blank frames that have a scan, which "may be exactly right"; name frames left out because they are marked for deletion; and name scans this device cannot open right now. A roll with no camera, or with no capture times, is told what that costs. The full reasoning behind these: §7.

Worth a look

A folded section, Worth a look · 2, lists what may be wrong without being certain: two frames logged seconds apart at the same place on a roll with more frames than scans (a press logged twice?), and, on a roll with scenes, a run of scenes that looks more like the scan one row up or down (§2.9). Tap a line to open that row.

The pairing card and its map

Tap a row for its card: the scan large (beside its scene, if there is one), the frame in full, and a map with this frame and up to three rows either side that recorded a place. A hollow number on the map is a place worked out rather than measured. Open the full map zooms out, with sliders for Rows either side, Time apart and Distance. The card steps to the next row by a swipe, and offers Insert placeholder above, a note, a rating, marking for deletion, and turning the scan.

Editing a frame from the table

Hold a row down for Edit frame, Write a note, Flag this frame, Rating and turning the scan. A left swipe marks the frame for deletion; it then reads Left out: marked for deletion and the scans below move up one. Edits go to the roll itself.

Turning a scan

Turn left and Turn right turn a scan from Files a quarter at a time. The write sets the JPEG's orientation tag and leaves the pixels alone, so nothing is lost. A photo from your library is turned in Photos instead, and is written as it looks there.

Where the written scans go

For scans picked from Files, Write to offers three places. Photo album (the default) puts written copies into an album of their own in Photos, named after the roll, and leaves your files alone; because the date is on the file before it goes in, they land in your library at the time you shot them. New folder copies them into a folder you pick in Files, or into a folder named for the roll inside it with Create subfolder, and leaves the delivery as the lab sent it. Overwrite files replaces each file you picked by itself with the log written on, where it sits: no copy, and no way back.

Scans from Photos: edited in place, and Revert

A scan picked from Photos is edited in place as a Photos edit, so it keeps its place in your library and Photos keeps the original underneath: open it and tap Revert to undo. Photos still sorts it by the day you imported it, since iOS lets an app change a photo's date only if the app put it there; writing to an album instead files a roll from 1998 under 1998.

Write N scans: JPEG only

Write 36 scans writes the log onto every row that has both a frame and a scan. Each JPEG is copied with new metadata and its pixels untouched, never re-encoded, then read back; if the capture date did not land, the copy is thrown away and your scan is left as it was. A TIFF cannot be written on iOS, which cannot give a TIFF a capture date, so a TIFF delivery goes to metalign on the Mac or in a browser. While it writes, the page cannot be left; afterwards a report says how many were written and where to look, and Write again says what a second write would do. A failed run keeps the pairing, and what was written stays written.

What the phone writes, and what it doesn't

Dates with their time zone, camera, exposure, lens, place, title, caption, keywords, rating, creator and copyright, and the film itself in metalign's own namespace; the full table is §8. Two things it does not write: the EXIF flash tag, and an IPTC block. A place nobody measured is marked in the XMP packet only. Where to write a roll, on the empty page, says the same and names the other two apps (§9).

The pairing is kept, and Update the table

Every change on the table is saved for that roll on the device, and comes back when you reopen it: the order, placeholders, turns and where to write. If the roll changes while the page is open, Update the table re-lines the column so each scan follows its frame; reopened after changes, the page says what moved since the pairing was saved. Roll details → Danger zone → Clear scan pairing starts it over.

A pairing from another device, or from a shot log

With iCloud sync, a pairing made on your iPad is offered on your iPhone, and the other way round, as a card above the table: Use your iPad’s pairing or Keep this pairing. A shot log that carries a pairing offers it the same way. Only names travel, never the files: pick the same delivery here and each row fills by name, with no pairing done twice. A scan this device cannot open yet shows as Missing, with its name, until you pick it.

An old roll from its scans

On a roll with no frames (one created with Already shot, for instance) pick the scans first, then Add 36 frames, one per scan…: one frame per scan in table order, optionally with times and a lens. Fill in what you remember afterwards, then write. This is how a roll shot before metalign gets its metadata.

The wide table, on iPad or an iPhone turned sideways

With enough width the table becomes columns: Scan, Frame, Shutter, Aperture, ISO, Lens, a place pin and Time, with each scan dragged by a handle at its left. Repairs are in the long-press menus of a scan (placeholder, take out) and of a frame (blank frame, mark for deletion). With less width it drops Lens, then Time, then ISO.

Scan pairing settings, and the scans the app keeps

Settings → Rolls & frames holds Scan size (Standard or Large), where a frame's scene sits beside its scan, and where the full map's sliders start. Keep a thumbnail of each scan (on by default) keeps a small copy, about 50 KB, of every frame written, for the roll's pictures, the contact sheet and the share card; Keep the full scans too keeps the whole written file as well. Both are listed with their sizes under Roll details → Scans kept by this app, and cleared there. Your scans stay where you put them.

Section 2.9 Pictures: scenes, contact sheets, the negative preview

A frame's picture: Scene, then Scan

Once a roll has been written on this device, each frame's row shows its scan. Before that, a frame logged from Scene (§2.3) shows what the iPhone saw, marked as the phone's picture, and the frame editor has a Scene or Scan section. A button in the frames' header hides or shows the pictures. Scenes stay on the device that took them and are never synced, shared or written anywhere.

Scenes against scans: a skipped negative, found

On a roll with scenes, Scan pairing compares each scene with the scan on its row and the rows either side, on the device. Where a run of scenes looks more like the scan one row up, Worth a look says so in words (From frame N on, the scenes look like the scan one row up.) and that frame's negative may not have been scanned (a placeholder fixes it); one row down, that the scan may be a frame the log does not have (a blank frame fixes it). It suggests; it never moves anything.

Contact sheet, on the Rolls tab

Once some roll has kept thumbnails, the Rolls tab's toolbar switches between As a list and Contact sheet: every written frame as a grid, grouped by roll, newest first. Pinch to change the number of columns; search narrows it. Tap a picture for a full-screen viewer that swipes through the roll, zooms, shows the frame's details, and offers Share photo and Go to in roll. Long-press a picture to Copy it: the kept scan, or else the thumbnail, unchanged. Rolls written on the Mac have no pictures here.

Make contact sheet: a printable PDF

⋯ → Make contact sheet builds a PDF of one roll, with a live preview: how many frames per row, portrait frames upright or not, and each detail beside the frame's number, under the picture or not shown. The paper is A4, or US Letter where the region measures in inches. Share it to print or save. Offered when this device kept thumbnails of the roll.

Find a frame from a photo

Find a frame from a photo, in the Rolls tab's share menu, takes a scan metalign wrote and finds its frame, by this device's pairing or by the tags on the photo, then opens its share card. A photo metalign did not write is told so, never guessed at. Nothing is written.

Negative preview: the negatives as positives, live

The viewfinder button at the top of the Rolls tab opens Negative preview: hold the phone over a strip with light coming through it (a light table, a window, a second phone showing white) and the film is shown as the print it would make. Tap an unexposed bit of film, the edge or a gap between frames, and the orange mask is measured off it; that is taken fresh every session and never stored. Three colour balances, a contrast and a Black and white switch can be saved as a preset, one of which can be Open with this preset. It is a loupe, not a scanner: nothing is photographed or saved.

Section 2.10 Sharing a frame

Share photo: a frame as a post

Share photo, from a frame's long press, the frame editor or the contact sheet, turns a written frame into a JPEG for posting, in 4:5 or Square, and hands it to the share sheet. With details prints the picture with the details you choose under it and the camera and film along the foot. The image carries no metadata: only what is printed on it.

What the card shows

Each detail sits beside the frame's number, under the picture, or is not shown; drag a field between the lists. A post is public, so the place and your own notes start hidden. Details across the card widens the lines, and Sign it with the metalign mark can be switched off. A shown place prints as coordinates or, with Place name instead of coordinates, as its name, which is looked up only when you tap. The choices are kept for every card.

White border, and Original

White border is the scan alone, centred on a white square, without words or the mark; the Border stepper sets the white beside its short sides. Original shares the full scan as metalign wrote it, under the lab's filename, with everything the log wrote into it, the place included; it needs a kept full scan.

Which picture the card uses

The card's footer says where its picture came from: the scan itself, the full scan kept when the roll was written, or the small thumbnail, which looks soft on a post. When the scan is out of reach, Choose this frame’s scan… picks it for this card only.

Tick frames in Select and tap the share button to share them together, one card each, for a carousel post; Square suits it. A card opened on one frame swipes on to the roll's other written frames.

Section 2.11 Exporting, importing, and corrections from the Mac

Export for metalign: the Export screen

Export for metalign (the share button at the top of a finished roll, ⋯ while it is still loaded, or a roll's long press) opens a screen that shows what the roll's shot log holds (the roll, its frames, camera, film, how many frames have a place and an exposure), any warnings, the ways to hand it over, and the JSON itself under Preview. Every route sends the same bytes. Opening the screen sends nothing.

Read before you send

Four warnings are properties of the document, so they apply whichever route you take: frames marked for deletion (left out, later frames numbered as if they were gone); frames logged with the app closed and not confirmed yet, "Check them for a press logged twice before you send this log"; "This roll has no camera set, so the scans get no Make/Model, and metalign groups by model"; and "No frame has a capture time, so no dates will be written." None of them stops the export.

Export shot log: the file

Export shot log writes <roll> — shot log.json and opens the share sheet: AirDrop, Files, Mail, anything. It needs no network and no Mac in the room, and it opens in metalign on the Mac, in a browser, or on another iPhone or iPad. The roll is marked exported once the share completes.

Open in a browser

Open in a browser opens metalign web at web.metalign.org in your browser with the roll already loaded, ready for your scans (§5). The log travels inside the link, in the part of an address a browser never sends to a server, so it reaches no server; it does go into that browser's history.

Import a shot log

Rolls → Send or import a shot log → Import a shot log takes one or several .json files, and shows what each would add or change before anything is written: the roll, its frame count, the film and body it names. Gear it would create is called out separately and in orange, because finding a camera in your list that you never added is worse than being told first. A shot log carries the whole roll, flags and marks for deletion included, where it is kept, its expiry, its canister number unless one of your rolls already has it, and which route logged each frame. What no file carries is pictures: scenes, thumbnails and full scans stay on the device that holds them. Moving a roll to another iPhone is an export there and an import here, or iCloud sync.

Importing a roll that is already here

A file for a roll the library already holds is read as an update, not a second roll. Its row says Already here and counts what would happen: frames it adds, frames that differ, frames the file does not have, a different order, different roll details; a file that matches exactly says Nothing to change. One question covers all the files you picked: Take the file’s values, or Keep the newer of each, which keeps whichever version of a frame was edited last (a tie goes to the file, because editing a shot log in a text editor does not change the time stamped on a frame). The question counts how many frames each answer changes. Either way a frame only in the file arrives in its place and a frame only on the phone stays, since a file cannot say that a frame was deleted; only Take the file’s values brings back a frame deleted here. The roll's state, camera and dates are never changed.

A shot log with a scan pairing

If the roll's scans were paired on the other device, the imported roll keeps that pairing by the scans' names. Scan pairing then opens with every row where it was, each reading Missing with its scan's name, and fills by name as you pick the scans. On a roll already here, the file's pairing is offered and never replaces one made on the phone.

When an import is refused

A file that is not a shot log, cannot be opened, is a newer version than the app reads (Update metalign.), or carries an impossible value (a frame number no roll has, a rating outside one to five, a latitude no place has) is refused and named by its filename; the other files still import. Two files for the same roll at once are refused by the roll's name. A roll whose camera now holds another roll asks what becomes of that one, as loading does (§2.2).

Opening a shot log from Files, AirDrop or Mail

metalign is offered for any .json file, in Files' Open With and among AirDrop's apps, though never as the default for JSON. Opening one shows the import sheet; a corrections file opens the corrections sheet instead.

Corrections from the Mac, as a file

A frame corrected in metalign on the Mac (§4.8) can come back to the phone. A corrections file opens a Corrections sheet that lists, per roll, every change as field: before → after and any blank frame it inserts, and Apply to … writes them. Corrections overwrite only the fields they list, on the frames they name; a frame edited on the phone since the export is skipped and says why, and the same file twice is refused. Nothing changes until you apply.

Receive corrections from your Mac

Rolls → Send or import a shot log → Receive corrections from your Mac… makes the iPhone visible, while the screen is open, to the Macs it trusts. On the Mac choose File → Send corrections to your iPhone…, search, and send; the corrections arrive in a Received list, encrypted, and Review… opens the same sheet. Closing the screen drops what you did not apply; the Mac can send it again.

Section 2.12 To the Mac, and iCloud

Send to metalign on your Mac

Every send screen has Send to metalign on your Mac. Search for metalign lists the Macs that have metalign's Receive… panel open (§6.2); tap one and the log goes. The search never starts by itself. The first time, a Mac has to be trusted, by comparing a code (below). The exchange is encrypted, goes only to a trusted Mac, and sending twice is harmless. A Mac running an older metalign is greyed out with Update metalign on this Mac. The file is always there as the other way.

The Mac's receipt

After a send, a green line says what the Mac decoded, not what the phone said it sent: "Roll 12 — 36 frames received on Studio-Mac." It is kept with the roll's sent mark and shown again on the roll's card, so you know it arrived while you are still standing there. The file and browser routes have a date and no receipt.

Trusting a Mac: comparing a code

Tap a Mac marked Not trusted yet · tap to trust, or Settings → Trusted Macs → Trust a Mac…. Both screens show the same six-digit code; tap Same on the phone and on the Mac, and each keeps a key for the other in its Keychain. Different, or closing the sheet, keeps nothing. Trusting sends no roll. From then on every exchange with that Mac is encrypted with that key. Keys are never synced, so a new iPhone trusts again.

Trusted Macs

Settings → Trusted Macs lists each Mac with the day it was trusted. Swipe one left to Forget it: nothing more goes to it until you compare a code again. The Mac keeps its own record until it forgets the iPhone too, and a Mac that has forgotten the iPhone says so on the send screen.

Send multiple

Rolls → Send or import a shot log → Send multiple ticks every unarchived roll with frames (change the ticks as you like), then Send N rolls sends them all to one Mac with a status per roll, or Export as files shares one .json per roll.

Handoff: metalign in the Mac's Dock

While a roll is open on the unlocked iPhone, a Mac signed in to the same Apple Account shows metalign at the end of its Dock. Click it and the Mac opens on the roll (§6.3). No code to compare, since Handoff joins only your own devices; Handoff has to be on for both. A locked iPhone withdraws the offer.

Sync with iCloud

Settings → iCloud → Sync with iCloud is off until you switch it on. On, rolls, frames, gear, settings, scan pairings, stopped tracks and kept full scans are the same on every device on your iCloud account, through your own iCloud: metalign has no server of its own. Not synced: scene pictures and thumbnails, a track still recording, per-device settings, trusted Macs. Where two devices logged into one roll, capture time is the physical frame order; a later edit wins whole rather than being stitched together field by field; a roll deleted on one device is deleted on the others. Switching it off keeps the local library.

Status and Last synced

Two rows report sync rather than one: Status (Syncing…, Up to date, Not syncing with the reason, or No iCloud account) and Last synced, because a launch that has not reached iCloud in a week sits at Syncing…, which reads exactly like a device that synced a second ago. Orange counts appear when a newer version of the app on another device saved something this one cannot read (Not read, Not sent back) or when files could not be stored (Not taken); updating metalign fixes the first two.

I already use metalign on another device

On first launch, I already use metalign on another device switches iCloud sync on and skips the setup: Your library is on its way. The library arrives in the background, if the other device syncs too.

Section 2.13 The Digital tab: tracks and the Sync Clock

The Digital tab is for a digital camera shot beside the film one: a GPS track to geotag its photos, and a clock to correct its time. Both are used on the Mac (§4.3, §4.2). The Digital tab never needs the full version.

Recording a track

Digital → Track → Start recording records where you went, a point every 5 seconds or 10 metres, until Stop recording; the row says Recording since meanwhile. Each point is saved as it arrives, so a closed app loses nothing recorded, though recording does not resume by itself. With Location set to While Using a track records only while metalign is on screen; recording with the phone in a pocket needs Always, which starting a track asks for. A track can also be started by Siri (§3.7) and can place film frames too (§2.6).

Tracks, and sending one

Every track is listed with its name or start time, points and duration, a red dot while recording and a green mark once exported. Tap one for its page: rename it (the name goes into the GPX), see its points and times, send it to a Mac with the Mac's receipt, or Share GPX. A GPX 1.1 file with UTC times is what metalign on the Mac reads. Swipe a track left to delete it, after a question; with iCloud sync on, that deletes it everywhere. Clear exported mark un-marks a track whose share never reached a Mac.

Send all tracks

With two or more tracks, Send all tracks sends them as One file (one GPX, each outing its own named track) or Separate files, to a Mac or through the share sheet.

The Sync Clock

Digital → Sync Clock draws a QR code that changes exactly on each second, carrying metalign: and the time to the second in UTC, above the local time. Photograph it with the digital camera whose clock is wrong, and metalign on the Mac reads the true time back out of that shot (§4.2). The photograph is the carrier, so it needs no network and no clock on either machine being right. It is for digital bodies: a film frame's time is stamped at the shutter. Full screen shows the code alone at full brightness and keeps the screen awake; How it works has the three steps.

Fig. 2.2 The Sync Clock. Photograph it with the wrong-clocked camera; the frame you get back is the message.

A manual offset for the clock

Settings → Sync Clock shifts what the clock shows by up to twelve hours, adjusting by seconds, minutes or hours, for an iPhone whose own clock you know to be off; the clock screen then says so in orange. It never changes a frame's time.

Section 2.14 Settings, the first launch, and the full version

Defaults for new rolls: Creator, Copyright, Default body

Settings → Defaults for new rolls holds Creator and Copyright, copied into every roll you create from then on and written onto its scans, and a Default body, preselected on New roll when it takes the roll's format. An existing roll is changed in its Roll details.

Rolls & frames

Settings → Rolls & frames gathers how logging behaves: location for each frame, carrying settings to the next frame, what happens to a roll swapped out of a camera, the capture bar's size and the Scene button, the Rolls list's Log frame button, the blue dot per route, what the swipes do, what a row shows, the editor's section order, deleting in Rearrange, Scan pairing's pictures and map, and how much of a place name to show. Each is described where it acts, above.

Permissions

Settings → Permissions → Location access shows what iOS allows and offers Request access or Open iOS Settings. metalign asks for each permission when it is first needed, never at launch: location (While Using) on the first loaded roll; Always only to record a track in a pocket; the camera for the barcode, Scene and the negative preview; Photos when scans are picked from or written to it; the local network when you first search for or trust a Mac.

The full version

Two rolls can be started without the full version. From the third, New roll offers it: one purchase, not a subscription, for as many rolls as you like. Every roll you already have can still be logged to its end, and importing, editing, exporting, writing scans, sync and the Digital tab never need it. Archived and imported rolls count towards the two. Settings → Full version shows whether it is unlocked and has Restore purchases; the purchase belongs to your Apple Account, so another iPhone or iPad on that account reads it too. Without a connection, or with purchases blocked in Screen Time, the sheet says so.

Data: a copy for a bug report, and resetting

Settings → Data → Save a copy for a bug report puts your rolls, gear and settings, earlier versions of each roll and rolls deleted in the past month into one file for whoever is helping you; tracks and pictures are left out, nothing is sent by itself, and it is not a backup: metalign cannot restore from it. The phone keeps those earlier versions beside the library for that purpose alone. Under Reset: Delete every roll, Delete every track, and Erase all app data, back to a fresh install on this device (the purchase stays with your Apple Account). With sync on, deleting reaches every device; erasing does not.

When the library cannot be saved

If something goes wrong with the library, Settings says so at its top: Previous library (an old file could not be read; save a copy of it), rolls that could not be read, Nothing is being saved (quit and reopen after unlocking) or Changes aren’t being saved (usually a full disk).

About, What's new, How metalign works

Settings → About has Statistics (§2.2), How metalign works (the steps, logging with the iPhone locked, every swipe and long press, and every one-time hint, so a hint dismissed can be read again), What’s new (every build's notes, also shown once after an update), the Shot log format the app reads, and the version.

The first launch

The first launch shows A logbook for film. and the steps, then Set up metalign (a first camera, location, your name on the scans, each skippable), I already use metalign on another device, or Skip for now. Nothing is required before a first roll.

Hints on the screen

One-line hints appear once where they help (swiping a roll, searching, a finished roll not yet handed over, logging while locked, frames with no place), at most one new one per launch, and go for good on ✕ or once you have used what they teach.

Section 3 Logging without the phone's screen

The capture bar is for a phone already in your hand. Most of a roll is not like that, so a frame can also be logged from Apple Watch, a widget, a control, the Lock Screen, Siri, a shortcut or the Action button, without opening the app. Each of these records the time and the camera; none of them ever guesses an exposure.

Section 3.1 Which route records what

A frame logged without dials in front of you records no exposure, and it is never copied from the frame before. An exposure is either set by a person (on the watch's dials, in a shortcut, or spoken to Siri) or it is not recorded.

RouteExposureWhich rollOn a locked iPhone
Capture bar, in the app (§2.3)The dialsThe roll on screenNot available
Log frame on the Rolls list (§2.1)NoneThat row's rollNot available
Apple Watch, roll page and camera grid (§3.2)NoneThe roll shown, or the camera tappedNot involved: the watch logs on its own
Apple Watch, dials pageShutter, aperture, lens and flash as setThe roll shownNot involved
Home Screen widgets (§3.4)NoneThe roll the widget showsIn StandBy, asks for Face ID first
Log Frame control (§3.5)NoneThe body in hand, else the roll loaded lastLogs at once, no prompt
Live Activity and Dynamic Island (§3.6)NoneThe roll on the cardAsks for Face ID first
Log Frame by Siri, Shortcuts or the Action button (§3.7)Only what the shortcut setsThe roll or body named, else the body in hand, else the roll loaded lastRuns locked
Log with Exposure (§3.7)What the shortcut sets, or what you say when askedAs Log FrameRuns locked

The place on a frame logged away from the app

Every route stamps the time, the time zone, the body and the body's mounted lens. The place is added when Settings → Rolls & frames → Log location for each frame is on. On the phone, a frame logged with the iPhone locked gets the place only if the phone already had a position in the last two minutes, while a track is recording, or with Location set to Always in iOS Settings; otherwise it gets the time alone, and a place can be added later (§2.6). Apple Watch is not affected: it takes its own fix (§3.2).

Every one of them arrives with a blue dot

A frame logged with the app closed (from the watch, a widget, the control, the Live Activity, Siri, a shortcut or the Action button) arrives with a blue dot, so you can look at it and confirm it later (§2.4). The capture bar and the list's Log frame button add none. Each group can be switched off under Settings → Rolls & frames → Blue dot.

Every frame says how it was logged

A frame records which route made it, for example Logged from the Live Activity, and the frame editor shows it. That answers "why has this frame no exposure?" months later. It is kept in the shot log, so a roll imported elsewhere still says it, and it never reaches a scan: there is no EXIF tag for how a shutter release was pressed.

Section 3.2 Apple Watch

metalign on Apple Watch logs frames onto the rolls loaded on your iPhone. It comes with the iPhone app (it is not a standalone watch app) and needs watchOS 10 or later. Its pages run sideways: the roll page, a camera grid when two or more rolls are loaded, the dials, Load film when there is film to load, and About.

Logging a frame from the wrist

The roll page shows the camera, the film, the count (13 / 36), the day and time of the last frame, and a large Log frame 14 button. A press logs the next frame with the time, the place and the body's lens, and no exposure. A tap on the wrist confirms each press. The count turns orange once the roll is full and keeps counting past it; on a body whose counter starts below 1 it reads −2, −1, 0 through the leader.

Fig. 3.1 The roll page on the wrist: the count, the last frame's time, and the next frame.

Several cameras: the Digital Crown and the camera grid

With several rolls loaded, turn the Digital Crown on the roll page to step from body to body. It is one page, not a page per camera. Swipe left for the camera grid: one cell per body, two across, each with Log N; tap the camera you just shot to log onto it. The camera in hand is drawn green. A press on the watch also sets the iPhone's body in hand, so the next Action-button press lands on the same camera (§2.1).

The dials page: an exposure from the wrist

The dials page has two wheels, shutter and aperture, built from the body's shutter dial and the lens's aperture ring, a Lens row, and a flash bolt in the corner. Its Log frame N button records what the wheels show. The wheels start from the roll's last exposure and stay where you leave them, so a run at one setting is set once. Each wheel ends in "—", which logs no value; with both on "—" the page says Logs no exposure. In the camera grid, hold a body down to open its dials, as the line under the grid says: Long-press a body for its dials. The bolt records that a flash fired until you tap it off; "did not fire" is set later on the phone.

Fig. 3.2 The dials page: an exposure set on the wrist, recorded as set.

Logging with the iPhone out of range

The watch does not need the iPhone nearby. Every press is saved on the watch before anything is sent, and the count moves at once. Presses the phone has not taken yet show as a yellow line, 2 waiting for iPhone, and they are delivered when the phone is back in range, even after the watch app was closed. A press that waited is placed on the roll by the time it was made, not the time it arrived. Tap the yellow line to undo the newest waiting press (Undo frame N?).

The place, from the watch's own GPS

With Log location for each frame on (an iPhone setting), each press switches on the watch's GPS for up to 15 seconds, stops as soon as it has a fix within 50 metres, and stamps that place on the frame. A fix up to two minutes old is reused, so a burst of frames costs one GPS session. The watch asks for its own location permission. Without a fix, the frame takes the phone's current position only if the phone already had one within two minutes; the phone never switches its GPS on for a wrist press.

Lock page

The padlock in the corner of every page locks the watch on that page, so a stray swipe does nothing. The crown and the grid's long press still work. The watch also reopens on the page you used last.

Loading and finishing a roll from the wrist

Load film lists the rolls ready to shoot; tap one, then the camera. The ✓ on the roll page finishes the roll (Finish roll or Keep shooting), exactly as the phone does. Both need the iPhone in range; out of range the watch buzzes and says iPhone not reachable. With the iPhone's swap rule on Ask every time, loading into an occupied camera is refused and left to the phone. The watch cannot create a roll.

With no roll loaded

The roll page says No roll loaded and to load one on the iPhone; the dials page says No dials. The last page shows the version.

VoiceOver and German on the watch

VoiceOver reads the count as "Frames shot, 13 of 36", each grid cell as one button, and offers Open dials as an action. The watch app speaks German too; refusals that come from the phone are in the phone's language.

Section 3.3 The watch-face complication

The Roll complication

Edit a watch face, choose metalign and then Roll, and the roll in your camera sits on the face. It shows one roll: the body in hand, else the first loaded roll. Four sizes: a ring filled to how far through the roll you are, with the count; a corner gauge labelled with the camera; one line beside the time, Leica M6 · 12/36; and a wide slot with the camera, the film, the count and the time of the last frame.

A tap opens the watch app on the page you used last; it logs nothing by itself. The face is drawn by the watch app, so a frame logged on the iPhone reaches it the next time the watch app hears from the phone. With nothing loaded the face shows a film glyph, and the one-line slot reads No roll.

Section 3.4 Widgets

The Roll widget on the Home Screen

A small or medium widget with the camera, the film, the count, a progress bar and a Log 14 button that logs the next frame without opening the app. The medium size adds the last frame's exposure and time. It shows the body in hand, unless you pin it to a camera: hold it down, Edit Widget, and choose the Camera. A pinned widget waits on its camera even while that camera is empty (No film), so one widget per camera works. A tap outside the button opens the roll.

The Cameras widget

A medium or large widget with one cell per loaded camera (up to four or six), each a button that logs the next frame on that camera's roll. Edit Widget picks which cameras it shows and in what order; left empty, it shows every camera with film in it. What does not fit is counted, 2 more in the app.

Lock Screen widgets

The Roll widget also comes in the three Lock Screen sizes: a ring with the count, a wide one with camera, film, count and time, and one line. None has a button: to log from the Lock Screen, use the control (§3.5).

Widgets in StandBy, and after a restart

On an unlocked Home Screen the button logs at once. In StandBy on a locked, charging iPhone the same button asks for Face ID first; that is iOS's rule, not a setting. After a restart, before the first unlock, every widget shows No roll loaded until the phone is unlocked and something is saved.

Section 3.5 The Log Frame control and the Action button

The Log Frame control

On iOS 18 and later, metalign has one control, Log Frame (Records a frame on the roll in your camera.). Put it in Control Centre, on the Lock Screen, or on the Action button, with no trip through Shortcuts. It logs the next frame on the body in hand, else on the roll loaded last, with no exposure, and its label names the number it will write. It is the one route that logs on a locked iPhone with no Face ID prompt, from the Lock Screen and from the Action button in a pocket. Five quick presses give five frames.

The Action button

iOS Settings → Action Button takes metalign two ways. As a control, choose Log Frame: it logs locked, shows nothing and needs nothing dismissed. As a shortcut, choose Log Frame, Log with Exposure or Record Track (§3.7): these run locked too, and on an unlocked phone show Shortcuts' result card; Log Frame then asks for a note.

Section 3.6 Live Activity and Dynamic Island

Showing a roll on the Lock Screen

A loaded roll goes on the Lock Screen only when you put it there: tap Show as Live Activity at the top of the roll's screen, or hold the roll down on the Rolls list. Hide Live Activity takes it off. Loading a roll does not start one. One roll at a time: showing another ends the first. It ends by itself when the roll leaves its camera (finished, swapped, archived or deleted, from the phone or the watch), and iOS ends it after about eight hours. While it shows, a small glyph on the capture bar says so. The button is not offered when Live Activities are switched off for metalign in iOS Settings.

The Lock Screen card

The card shows the camera, the roll's number, film and name, a progress bar with the count, the last frame's exposure and time, and a Log 14 button. The count follows every frame logged anywhere within about a second.

The card's button on a locked iPhone

On a locked iPhone the card's button asks for Face ID before it logs. That is how iOS treats a button inside a Live Activity, and no app setting changes it. Once unlocked, still on the Lock Screen, each tap logs a frame without opening the app. The Log Frame control on the Lock Screen is the route that logs without asking (§3.5).

Fig. 3.3 The roll on the Lock Screen, put there with Show as Live Activity. On a locked iPhone its button asks for Face ID first.

Dynamic Island

On an iPhone with a Dynamic Island, the island shows the metalign mark and the number of the frame just logged. Hold it for the expanded view: the camera, the count, the roll and a full-width Log frame 14 button, with the same Face ID rule.

Record a track?

While a roll shows as a Live Activity and no track is recording, its screen offers Record a track?. A track can give a place to frames the iPhone could not place, which matters for frames logged locked (§3.1). Not now hides it until you next open the roll. It never starts a track by itself.

Section 3.7 Siri and Shortcuts

Log Frame: a frame by voice or shortcut

Say "Log a frame in metalign", "Log a frame with metalign" or "New frame in metalign", or run Log Frame from Shortcuts or the Action button. It works with the iPhone locked and without bringing the app forward, then asks Anything to note about this frame?; an answer becomes the frame's note, silence leaves none. Siri answers Logged frame 12 on …, and the frame number is handed on to the next action of a shortcut.

In the Shortcuts editor the action takes a Roll, a Body, Shutter, Aperture, Flash (Not recorded, Fired, Did not fire) and a Note. A shortcut that sets a note is not asked for one. Shutter is written as the dial reads it: 1/125, 30 s or B; a bare number from 1 to 60 is refused, because it could mean 1/60 or 60 seconds. With no roll and no body set, the frame goes onto the body in hand, else the roll loaded last. A shortcut pinned to a roll keeps logging onto it after it leaves the camera; one pinned to a body logs onto whatever roll is in it, so one shortcut per camera is the way to log a particular camera.

Log with Exposure: say the exposure

"Log a frame with exposure in metalign", "Log an exposure in metalign" or "New frame with exposure in metalign" logs the frame, then asks What shutter speed?, What aperture? and for a note, each only if the shortcut has not set it, and writes what it understood. A value it could not read is named (I didn’t catch the shutter speed.) and left unrecorded; the frame stays. It has no flash parameter.

When Siri refuses

With nothing loaded Siri says No roll is loaded. Load one into a camera in metalign first.; a body named in the shortcut that holds no roll is refused the same way. If the library cannot be saved at that moment (usually right after a restart, before the first unlock) Siri says the frame may be lost and to open the app.

Record Track

"Record a track in metalign", "Start a track in metalign" and "Stop the track in metalign" start and stop a GPX track for a digital camera's photos (§2.13); the action toggles by default and takes an optional name. Starting a track from a shortcut needs Location set to Always, because a phone in a pocket collects no points otherwise; the app's own Record button works with While Using as long as the app stays on screen.

Get Shot Log

A Shortcuts action, with no Siri phrase, that hands a roll's shot log to your shortcut as the same .json file the Export screen makes (§2.11), for example to save it somewhere. It records nothing and does not mark the roll as exported. It needs the iPhone unlocked, because the file carries the roll's places.

Picking a roll or a camera in Shortcuts

The Roll parameter suggests the loaded rolls and finds any roll, archived ones included, each shown as "film · N frames logged". The Body parameter lists every camera, with the roll in it or Nothing loaded; two bodies of one model are told apart by serial number.

Siri & Shortcuts in Settings, and German

Settings → Siri & Shortcuts shows the phrases for Log Frame and Log with Exposure, links to metalign in the Shortcuts app, and lists every way in that needs no screen. All of it works in German too, with phrases of its own: an iPhone and Siri set to German log a frame on Ein Bild in metalign erfassen.

Section 4 metalign desktop, on the Mac

metalign desktop is where the work goes when a phone is the wrong tool for it: a TIFF delivery, a large batch, and six sections for digital photographs that have nothing to do with film. It runs on macOS 14 or later and calls itself metalign on screen. Its Film section is where a roll from the phone meets its scans (§6.2, §7). Everything it writes, it writes with a bundled ExifTool, so no other software is needed.

Section 4.1 The app around the sections

The sidebar: seven sections under three headings

The window is a sidebar of seven sections with the chosen one on the right. Time & place: Timestamp Correction, Geotag, Coherence. Files: Metadata, Rename, Duplicates. Analog: Film. A small iPhone symbol beside Geotag and Film, explained at the foot as works with metalign on your iPhone, marks the two sections the phone can send to; neither needs it. The metalign wordmark sits in the title bar.

Loading photos: Choose photos… or a drop

Drop files or folders onto a section, or use Choose photos…. Folders are read with everything inside them, and photos loaded in one section are loaded in all of them. While loading, the status line counts the files and looks for Sync-Clock photographs. Pick the folder rather than single files when you mean to write: the app is sandboxed, and the folder is what gives it permission to write beside the photos. If it was given only the files, a write stops before it starts (metalign can read these photos but not write them, because it was given the files rather than the folder holding them) and says to drop the enclosing folder instead. Photos in ~/Pictures and ~/Downloads can be written either way.

Which files it takes

JPEG, HEIC/HEIF, TIFF, PNG, DNG and the camera raw formats of Sony, Canon, Nikon, Fujifilm, Olympus/OM System, Panasonic, Pentax, Samsung, Hasselblad, Phase One, GoPro and Leica. Anything else in a dropped folder, and hidden files, are skipped. Files are grouped by the camera model in their EXIF; a file with none goes under Unknown camera.

Only three cameras are tested

A banner above every section says so: Beta: only three cameras are fully tested, the Leica M10-P, the Leica Q-P and the Sony A7 III. Other cameras are expected to work; reading the Sync-Clock QR and the preview thumbnails are the parts most likely to misbehave. Close it with ✕ and it does not come back.

Photos that Lightroom Classic or Capture One manage

If the loaded photos carry the signature of Lightroom Classic, Lightroom or Capture One, a banner says that app manages them. metalign writes into the files, and that app keeps its own copy of the metadata in its catalog, which can go back over a change without warning. The banner says the order: save that app's pending changes to the files first, then make the change here, then choose Read Metadata from File there. The geotag writes, the timezone move and removing metadata in place repeat the warning in their confirmation.

Clear, the status line and the Log

A bar along the bottom counts the loaded photos and cameras, and Clear unloads them all from every section after a question; files on disk are untouched. Each section's footer shows progress, and Log lists what the last batch did, one line per camera.

Backups, and putting the originals back

Every write that changes a photo can keep an untouched <file>_original beside it, and does by default. When any loaded file has one, the footer of Timestamp Correction and of Geotag shows N backups: Restore originals… puts every such file back as it was before the first backed-up write, whichever section made it, and Delete originals… removes the backups for good. Each asks first. The backups are found on disk, so this also works on a folder dropped again in a later session.

Jumping to a file's metadata

The table icon on a row of the correction preview, and Show metadata in Duplicates, open that file in Metadata. Coherence's Go to Timestamp Correction does what it says.

German

On a Mac set to German the whole app is German, and its Film section is called Scans. The folders it creates (Scrubbed, Duplicates) keep their English names.

About metalign

About metalign in the app menu shows the version and the bundled components: ExifTool, Perl, and the XCharter typeface.

Settings: Geotag and Devices

Settings (⌘,) has two panes. Geotag sets the Default max time gap for new sessions (30 minutes out of the box). Devices lists the Trusted iPhones, each with the day it was trusted and Forget…; a forgotten iPhone has to be trusted again before it can hand anything over.

Menus and the Dock

The File menu has Send corrections to your iPhone… (§6.5). The Sync Clock and About are separate windows, and the app quits when its last window closes. A roll open on the iPhone appears as metalign in the Dock (§6.3). The app opens no files by double-click: they come in by a drop or a picker.

The local network, and trusting an iPhone

macOS asks once for the local network, the first time a receive panel opens or the Mac searches for an iPhone. The Mac is visible on the network only while a Receive… panel is open; otherwise it advertises nothing. A new iPhone asks to be trusted inside that panel, with a six-digit code shown on both screens (§6.2). The app sends no telemetry and checks for no updates. Maps in Geotag and Film load Apple Maps tiles.

Section 4.2 Timestamp Correction: fixing a camera's clock

A correction fixes a clock that was wrong. A timezone move fixes a clock that was right for somewhere else. Correct first, then geotag: geotagging matches each photo's time to a track.

Correct Photo Timestamp, camera by camera

Correct Photo Timestamp groups the loaded photos into one card per camera, by EXIF model, and each card carries its own correction. Set the true time per camera, check the preview, apply.

The Sync Clock window

Sync Clock in the header opens a white window with a QR code and the Mac's time, changing on every second. Photograph it with each digital camera whose clock is off. The code holds metalign: and the time in UTC to the second; the phone's Sync Clock draws the same code (§2.13), so either screen will do.

The Sync-Clock photo, found by itself

On every load, each photo is checked for a Sync-Clock QR. For each camera the most recent such shot becomes the Reference shot (Sync-Clock photo), under it Camera says: with the time the camera stored, and its QR time fills True time (from QR). Only codes starting with metalign: count. A small or blurred code, or a raw file with a small embedded preview, may not be read. If a camera has several QR shots that disagree by a second or more, the card says by how much and uses the latest (N Sync-Clock shots disagree by up to …; using the most recent.); pick another to override it.

Setting the true time by hand

Without a QR shot, pick any shot whose real time you know as the reference and type it in True time (enter manually), to the second, on a 24-hour clock. A QR time is locked; the pencil unlocks it. A typed time is read in the Mac's time zone.

Camera timezone

Camera timezone sets the zone in which the camera's clock is read, the Mac's own by default. It only interprets; it never rewrites a photo into another zone. It feeds the offset, Coherence and geotagging, where daylight saving is handled photo by photo.

The offset: fast or slow

Offset shows how far the camera's clock was off, to the second: camera runs fast, camera runs slow or clock is correct. Every file of that camera is shifted by the opposite amount.

Preview every change before writing

N files — preview changes under each card lists every file's stored time and its new time. Files without a readable date are listed and never written. Combine raw + JPG (on by default) lists a raw and its JPG of the same name as one entry; both are still shifted.

Keep original files as backup

Keep original files as backup (_original), per camera and on by default, keeps an untouched copy beside each file the correction, geotagging or timezone move changes, for example L1000042.DNG_original.

Apply all

Apply all shifts every camera's files by that camera's own offset, in one pass. It rewrites the EXIF capture dates and leaves the files' modification dates alone. It asks no question, and it skips cameras with no offset and files with no date. Undo is Restore originals…. Before the first shift, each file's original capture date is stamped once into metalign's own XMP namespace, and Metadata shows it as Pre-correction original; nothing restores from it automatically.

Removing a camera from the list

The ✕ on a card (Remove this camera) removes that camera's photos from every section, without asking. Files on disk are untouched; drop them again to bring them back.

Timezone…: moving photos into the zone they were taken in

For a body left on home time abroad (shot in Tokyo, clock on Berlin time), Timezone… opens Move to another timezone. Per camera, choose where the photos were taken (Choose a zone…, with a filter, or Leave this camera alone); the sheet shows the shift and two real filenames with their old and new times. Move timestamps asks first, then rewrites the capture dates and records the new zone's offset in each file. A trip across a daylight-saving change is moved by two different amounts, each written separately, and the sheet says so: These photos straddle a daylight-saving change, so they move by two different amounts. Each is written separately. Photos with no readable date are left alone and counted. Correct any clock drift first: a timezone move moves the clock, it does not fix it.

Section 4.3 Geotag: GPS from a track

GPS Geotagging

GPS Geotagging writes GPS tags into the loaded photos by matching each photo's capture time to a location track, reading every camera's times in its own Camera timezone. It works for any camera without GPS. Correct the clocks first (§4.2).

Adding tracks

Add track… takes one or more GPX or KML files. Several are matched as one: each photo takes the position nearest its own capture time, so a trip logged a day per file needs one pass. A file without timestamps is accepted but places nothing. The list lasts for the session.

A track from the iPhone

Receive from your iPhone… makes the Mac visible to metalign on a trusted iPhone while the panel is open; send the track from the phone's Digital tab (§2.13). A received track is checked (readable GPX, with points and times, or the phone is told why not), saved unchanged on the Mac, and used at once if no track is chosen yet; later ones have Use. Sending a second day adds a track rather than replacing the first.

Max time gap and interpolation

Max time gap (1 to 720 minutes, 30 by default) is how far a photo may sit from a track point before it is left untagged; widening it is the first fix for photos that were not placed. Interpolate between points (on by default) places a photo between the two points around it; off, it snaps to the nearest.

Fetch & preview, then write

Fetch & preview works out every position without writing anything and opens Geotag preview: places as clusters with thumbnails, a map with pins, and No location (N) for photos the track did not cover, with the options to widen and Re-fetch. Write these tags writes exactly what the preview showed, after asking whether the clocks were corrected first. Write GPS tags without preview, on the arrow beside the button, writes straight away after the same question. Backups follow each camera's switch.

Section 4.4 Coherence: do the cameras agree?

Cross-camera coherence

Cross-camera coherence groups every dated shot from all cameras into moments, shots within the Event gap of each other (30 seconds by default), and reports how closely the bodies agree on the moments two or more of them shot. It never writes. Before shows the cameras' own clocks, After the corrected times as set on the cards, whether or not they are applied yet, so a correction can be checked before it is written.

The verdict, the timeline and the shared moments

The top card gives the verdict, for example Cameras agree to ≤1 s after correction., against how far apart they were before. The Session timeline has a lane per camera and a dot per shot, with guides at moments several bodies shot together, and Shared moments lists each one with its spread before and after. With no true times set, it says to set them in Timestamp Correction; with no shared moment, it says there is nothing to compare yet.

Section 4.5 Metadata: view, edit, strip before sharing

Viewing a file's metadata

The list on the left holds every loaded photo by camera; files dropped here go under Inspected files, for a one-off look, and join nothing else. The selected file shows summary cards (Camera, Lens, Exposure, Capture, Image & file, Location) and under them All metadata: every tag ExifTool reads, grouped, with a Filter. Viewing never writes.

Editing: Edit, and Apply to

Edit changes a fixed set of fields: Artist / Creator, Copyright, Title, Description / Caption, Keywords, Rating, Label, and for a manual lens the camera cannot identify, Lens model, Focal length and Aperture. Apply to writes to this file, all files of its camera, or everything loaded. Only changed fields are written, an emptied field deletes its tag, keywords replace the list, and an _original is always kept.

Remove…: strip metadata before sharing

Remove… opens Remove metadata, for a photo you are about to share: tick what goes, and everything else stays. Ticked by default: Location, Place names, Owner name, Serial numbers and Software and edit history. Not ticked: Creator and copyright, Maker notes and Capture date and time. Categories the file does not have are marked.

Scrubbed copies, or the files themselves

By default each file is copied into a Scrubbed folder beside it and only the copy is stripped; your files are untouched. These files strips the files themselves, with an _original beside each. The scope is this file, its camera, or everything loaded.

Section 4.6 Rename: filenames and folders from metadata

Rename & Organise, and the pattern

Rename & Organise builds new filenames from each photo's own metadata with a Pattern, by default {date}_{model}_{n:4}; a / makes a subfolder. Every new name is listed before anything moves, and each file keeps its extension. Numbers restart per folder, in order of capture time. Dates are the camera's own clock, so correct it first.

Pattern tokens and presets

The ? button lists the tokens: {date} and {time} (with a format, such as {date:yyyy-MM}), {camera}, {model}, {orig} for the existing name, and {n}, a sequence number ({n:4} pads it to 0001). Presets fills in common patterns, such as a folder per day or a folder per camera and day.

Why a file will not move

A row that will not move says why, in orange: already named that, no capture date, no camera, two files want this name or a file is already there. Nothing is ever overwritten.

Rename, and Undo rename

Rename N files asks, then renames; each file's _original and its .xmp sidecar move with it, and a raw and its JPG share one number. Undo rename puts the last batch back, one level deep and only until you quit.

Renaming film scans by roll and frame

With Film scans loaded, a switch chooses between Loaded photos and Film scans. Scans are named from the roll and the frame they sit beside in the Film table, with {roll}, {frame} ({frame:2} pads to 02; a wind-on frame keeps its sign, -01) and {film}, for example {roll}_{frame:2}. Check the Film table first: a scan renamed from the wrong row is named after somebody else's exposure. Scans stay in the folder the lab delivered them in.

Section 4.7 Duplicates: photos that look alike

Find duplicates

Find duplicates runs only when asked: it opens every loaded picture, takes a fingerprint of what it looks like, and groups the ones that look alike, such as a doubled import, a lab's second scan or the frames of a burst. It is the one place metalign looks at pixels rather than tags.

How alike: Identical, Same photograph, Same scene

Identical finds near-exact copies; Same photograph (the default) one picture through two passes, such as a second scan or a raw and its JPG; Same scene the frames of a burst or a bracket, with false positives to expect. Switching re-groups at once.

Groups, Open all, Set aside

Each group shows its thumbnails in a row, the first marked kept (it is first, not best). Open all opens the group at full size in its default app, the only real way to tell two near-identical frames apart. Tick Set aside on the extras, and Set aside N files moves them into a Duplicates folder beside where each one is, with backups and sidecars. Nothing is deleted, and Undo rename brings them back.

Section 4.8 Film: writing a roll's log onto its scans

A scan carries no metadata of its own. Film writes each frame's date, exposure, lens, place and film onto the scan level with it in the table, and nothing else binds them (§7). Check the table before you write.

Dropping scans and shot logs

Drop your scans and their shot logs: every .json is opened as a shot log, and every image or folder is added as scans, in either order. Choose scans… and Open shot log… do the same by picker. The roll arrives from the phone too: Receive…, Handoff from the Dock, or the file (§6). Each source folder of scans is one roll, so a lab download of several rolls is one drop. Scans in TIFF, JPEG, JPEG XL, PNG, HEIC and raw formats are taken.

Rolls, tabs and which shot log goes with which folder

Each open shot log is a chip above the table; ✕ closes one, scans stay. With more than one roll, each gets a tab; an orange ? means no log is chosen for that folder, an orange ! that frames have no scan or scans are past the end. The menu at the right of the roll bar picks the folder's log, or No shot log; new folders get the next unclaimed log as a guess. A log with no scans yet is a roll of its own, and its frames can be corrected before the scans arrive. A roll the phone marked as at the lab shows Developing.

The pairing table

On the left, the folder's scans in filename order, each with a thumbnail and its name, under Scan (drag to move); on the right the log's frames, with Frame, Shutter, Aperture, ISO, Lens, a pin, a flash bolt, a pencil and Time. The roll bar counts what is paired: All 36 frame(s) of Roll 12 have a scan., or how many have no scan and how many scans are past the end. Fig. 7.2 shows it.

Moving a scan

Drag a scan up or down to another row; the scans in between slide by one, and frames never move. A drag stays within its roll, steps over frames marked for deletion, and is one Undo step (⌘Z, up to 50).

Placeholders: frames the lab didn't return

With fewer scans than frames, the extra rows at the bottom are placeholders: drag one up to the frame the lab never returned, or right-click it for Move to frame. Insert placeholder above, on any row, pushes that scan and the ones below it down a frame; Remove placeholder takes one out.

Inserting a blank frame

Right-click the frame column and choose Insert blank frame above for a negative the log never recorded; it reads Added for a scan. The frames below renumber only as far as the first gap in the numbers, and a blank above the first frame counts down (0, −1) for wind-on frames. The scan beside it gets the roll's details and its number, and no date, exposure or place. Remove this blank frame takes it back. The shot log file is never edited.

What the rows say

blank frame: nothing was logged on it is the phone's blank frame, and the scan beside it is usually right. no exposure recorded is a frame logged without an exposure. Past the end of the log: Nothing will be written marks a scan below the last frame. Frames marked for deletion on the phone are greyed where they sit, with no number and no scan (Left out: marked for deletion). An orange flag is the phone's flag: the frame is written normally, the flag itself never.

Looking at a scan: Show larger, turn, remove

Click a thumbnail, or press Space, for Show larger, with the frame it sits beside and that frame's note. Turn clockwise and Turn counter-clockwise turn a scan; the turn is written as the file's orientation tag, read back to check, and the pixels are never changed. Remove from list (✕ or Delete) forgets a file without touching it; the scans below move up a frame, and this cannot be undone.

Suspected duplicates, and Check the pictures

A scan whose filename suggests a lab re-scan wears an orange !; click it to see both, then Open both, Not a duplicate or Remove. Until you answer, the roll below sits one frame out of step. Check the pictures opens the scans and compares them, to confirm or contradict the filenames and to catch a repeat they did not suggest; it never moves a row.

Pair as on the iPhone

A shot log that carries the phone's pairing lines the folder up the same way by itself, while the folder is still in filename order. If you already arranged it on the Mac, your arrangement is kept and Use the iPhone’s pairing or Pair as on the iPhone is offered; one undo puts it back. A pairing naming files that are not in the folder is not used, and the notice says why. So a roll paired on the phone need not be paired again.

Correct frame N…: correcting a frame on the Mac

Double-click a frame, or right-click and choose Correct frame N…, to edit its time, location, shutter, aperture, ISO, exposure compensation, lens, focal length, filter, title, caption, keywords, rating and note. The correction is laid over the log, the shot log file is never rewritten, and the row gets an orange pencil naming what changed. Revert to the log removes it. A note alone is Write a note…. The flash cannot be corrected. Corrections survive a quit and a re-export (§6.2) and can go back to the phone (§6.5).

A frame's location: the pin, the map, and leaving it out

A pin on a row means the frame has a place; click it for a small map, the coordinate, its accuracy, and whether it was measured or worked out. In the correction sheet, Write this location into the scan off leaves the GPS tags out of the scan while the log keeps the place. A typed coordinate counts as placed by hand.

Write metadata

Write metadata asks first, naming what will be skipped, corrected or turned, then writes every roll that has a log, not just the one on screen, one scan per paired row. Placeholders and scans past the end get nothing. TIFF and JPEG and raw files are written, the files' modification dates are kept, and afterwards the scans load into the other sections as ordinary photos, grouped by camera.

Keep backups

Keeps an untouched *_original copy of every scan: with Keep backups on (at every launch), each written scan keeps its _original beside it. A roll of lab TIFFs doubles its disk use that way.

Also export JPEG, and JPEG only

Also export JPEG writes a JPEG of each scan into a JPEG folder beside it, carrying all the tags, at a Quality you set. Write metadata into then offers Original and JPEG, or JPEG only, which tags only the JPEG and leaves the lab's file byte for byte as it arrived. A lab JPEG is copied, not re-encoded. Open JPEG folder shows the result. Raw files get no JPEG.

Scans without a shot log: JPEG export and stated dates

Scans on their own are fine too: without a log, Export N JPEGs converts them without writing metadata. Date frames from gives the JPEGs a stated capture date, a minute per frame in frame order and each roll an hour after the last, marked in the file as a stated date, not a recorded one, so a library can sort them. Skip N suspected duplicates leaves out the files that look repeated.

The section is kept across a quit, and Clear

Film saves itself: the open logs, which folder has which, the order of the scans, corrections, blank frames, turns and answers come back at the next launch. A scan no longer in its folder leaves its row empty rather than letting the rest move up; a folder that cannot be opened waits and comes back arranged when its scans are added again. The undo history and the footer's settings are not kept. Clear forgets all of it at once, without a question; files on disk are untouched.

A shot log the Mac refuses

A file that is not a metalign shot log, has no frames, or is a newer version than the app reads is refused, with the reason on the empty Film section, for a newer version This shot log is version N; this build of metalign reads version M. Update metalign. With scans already loaded the status line says only Couldn’t read that shot log., and pushed from the phone, the phone is told why. A log exported before September 2026 opens but its corrections cannot go back to the phone, because its frames have no identities; export the roll again from an updated phone.

Section 5 metalign web, in a browser

metalign web is the Mac's Film section in a browser, at web.metalign.org: drop a roll's shot log and its scans, check the pairing, and write the log into JPEG and TIFF scans, entirely on your own machine. Nothing is uploaded, there is no account, and nothing is stored in the browser (§6.6, §9). The page itself says it in one line: The shot log, written onto your scans. Everything runs locally in your browser; no photos are uploaded.

Section 5.1 Getting a roll in

The drop zone

Drop a roll here: the folder of scans, and the .json from metalign on your iPhone. The folder and the shot log can come together or one after the other. Folders are read all the way down, and each folder of scans is its own roll, so three lab jobs stay three rolls. Files dropped again are ignored, and new files added to an open folder join its roll at the end.

Choose files, Choose a folder

Choose files and Choose a folder do the same through the system's picker, without dragging. Both only read: your scans stay exactly as they are, and the finished copies come back as a ZIP. A folder keeps its subfolders apart as rolls; loose files form a roll called No folder.

Open a folder and write into it

Open a folder and write into it asks the browser for permission to write into a folder; then metalign can put the metadata into the scans themselves, keeping a …_original copy of each beside it (§5.5). Only scans opened this way can be written in place; a dropped folder can only be saved as a ZIP.

Which browsers write into the files

Writing into the scans themselves needs Chrome, Edge or Opera. Your browser can only read them and write new files, which is what the ZIP export is for. The page decides by what the browser can do, not by its name: Safari (on the Mac, iPad and iPhone) and Firefox get the ZIP route, and everything else works the same in them.

Files that are left out

Scans are .tif, .tiff, .jpg, .jpeg, .png, .dng, .nef, .cr2 and .arw; a shot log is the .json from the phone. Anything else is named in a notice and left out. Files ending in _original are left out with their own explanation: they are the backups an earlier in-place write kept, and writing them again would lose the record of what was there first.

A file that is not a shot log

A .json that is not a metalign shot log, has no frames, or is a newer version than the page reads (Update metalign., which here means reloading the page) is refused by name. The rest of the drop is still read.

A roll before its scans

A shot log dropped on its own is shown as the roll: its film, format, the speed it was shot at, push or pull, camera, lab and frame count, and a table of its frames. Once scans arrive, the pairing table takes its place.

Open in a browser on the phone's Export screen (§2.11) opens the page with the roll already loaded. The log rides in the part of the address after #, which a browser never sends to a server, and the page clears it from the address bar before reading it, so a reload does not bring the roll back. Add the scans as usual.

Section 5.2 The roll and the pairing table

Rolls, tabs and which shot log goes where

With several folders, each roll gets a tab with its name and scan count; a ? marks a roll with no shot log, a ! one with frames missing a scan or scans past the end. Under the roll's name, Shot log: chooses its log, or No shot log; each folder is given the next free log to start with, and a log belongs to one folder at a time. A roll with no log writes nothing.

What is paired

The line under the roll's name counts it: All 36 frame(s) of Roll 12 have a scan., or how many are paired, how many frames have no scan and how many scans are past the end of the log.

The pairing table

Scans on the left in natural filename order, the log's frames on the right in number order, under Scan (drag to move), Frame, Shutter, Aperture, ISO, Lens and Time. Row N writes frame N, and filenames are never read for frame numbers: Each scan gets the data that sits in its row, and moving a row is the only thing that changes that. A prefix every filename shares is hidden to keep the ends readable. The Time column shows what will be written, with its offset.

Thumbnails, and seeing a scan larger

Each scan has a small picture, read one file at a time as its row comes into view; click it to see the scan as large as the window allows. A TIFF whose pixels are compressed, tiled or otherwise unreadable here gets no picture unless it embeds a preview, and the tooltip says why.

Moving a scan

Drag a scan to another row, or use its ↑ and ↓ buttons (Move this row up one frame); the scans in between shift by one, and frames never move. The arrows work from the keyboard and on an iPad; a drag never crosses into another roll.

Placeholders

+ on a scan inserts a placeholder above it, for a frame the lab never returned, and everything below moves down one. A placeholder row writes nothing; drag it up to the frame it stands for, and ✕ on it takes it out and closes the gap.

Inserting a blank frame

▭ inserts a numbered blank frame in the frame column above that row, for a negative the log has no frame for; it reads Added for a scan. Frames below move down a row, and any that need the room move up a number; above the first frame it counts down (0, −1). The scan beside it gets the roll's details and that number. A blank inserted here cannot be corrected, and a struck ▭ takes it out.

Removing a scan from the list

✕ on a scan takes the file out of the list without touching it. The roll closes up behind it, so the scans below move up one frame, and this cannot be undone; drop the file again to bring it back, at the end of its roll.

Rows with nothing to write, and the marks

Past the end of the log: Nothing will be written, blank frame: nothing was logged on it and no exposure recorded say in words why a row is empty. Frames marked for deletion on the phone are greyed where they sit, with no number and no scan (Left out: marked for deletion). Beside a frame: ⚑ flagged on the iPhone (the flag is never written), ◉ a place, with how it was obtained if it was not measured, ✳ a flash fired (struck: no flash), ✎ corrected here. A key under the table explains every glyph, for screens without tooltips. A roll the phone marked as at the lab shows Developing.

Lined up as paired on the iPhone

A shot log that carries the phone's pairing lines the folder up the same way by itself, while the folder is still in filename order. A folder already arranged here keeps its arrangement and is offered Use the iPhone’s pairing, and Pair as on the iPhone stays in the roll's line while the two differ. A pairing that names files not in the folder is not used, and the page says so.

Turning a scan

↻ adds a quarter turn, and a badge shows the degrees. When the roll is written, the turn goes into the file as its orientation, and the pixels are left as they are. After a ZIP the turn stays pending, because the source is unchanged; only an in-place write that reads back correctly clears it.

Undo

Undo, under the table, steps back through up to 50 moves, placeholders, blank frames, corrections, turns and pairings. It has no keyboard shortcut. Removing a scan, choosing a log and adding files cannot be undone.

Section 5.3 Suspected duplicates

The ! on a scan

Filenames that look like a repeat (a re-scan beside its original, or the same frame number under a second job number) get a !, and the roll's line counts them. Nothing is moved, hidden or merged; but a repeat takes its own row, so the roll below it is one frame out of step until you answer.

Comparing the two, and Not a duplicate

Click the ! to see both scans side by side as large as the page can show them, with a sentence on the evidence. Not a duplicate clears the mark and can be undone; Remove this scan takes it out of the list, and the roll closes up.

Check the pictures

Check the pictures compares every scan's picture with the others in its roll, on your machine, to confirm or contradict what the filenames suggested and to catch a repeat they did not. It runs over every roll and moves nothing.

Section 5.4 Correcting a frame

The frame editor

Double-click a frame, or press Enter on it, to correct its time and zone, location, shutter, aperture, ISO, compensation, lens, focal length, filter, title, caption, keywords, rating and notes. Corrections are kept here and written into the scan. The shot log itself is never changed. The flash cannot be edited. Corrections live in the page: a reload loses them, because nothing is stored on your device.

Write this location into the scan

Off, Write this location into the scan leaves the frame's GPS out of the scan while the log keeps it. A position typed or changed here counts as placed by hand, and is written with GPSProcessingMethod MANUAL.

Differs from the log, and Revert to the log

The editor's footer lists, as you type, the fields that differ from the log (Unchanged from the log. otherwise), and Revert to the log puts the logged frame back. A corrected row shows ✎.

A roll exported again

A newer shot log for the same roll replaces the old one. Corrections made here follow their frames by identity; where the newer log changed a field itself, the newer log wins; corrections for frames that are gone, and blank frames inserted here, are dropped. A notice reports what happened.

Section 5.5 Writing and saving

Write to a ZIP, then save it

Write 36 frame(s) to a ZIP writes every row that has a scan and a frame into copies, one file at a time, and builds an archive that keeps each file's folder; then Save the written roll offers it. Your scans are never opened for writing. This route needs no particular browser. A note under the buttons gives a rough time.

Write into the files

For scans opened with Open a folder and write into it, Write 36 frame(s) into the files asks first, then writes frame by frame: the backup <name>_original first, then the scan itself, in its own folder. The pixels are copied unchanged. A second write into the same folder keeps the first backup, so the lab's original is never replaced by a written copy.

Every roll with a shot log

Both buttons write every roll that has a shot log chosen, whichever tab is showing. To write one roll only, set the others to No shot log.

The result

Progress runs file by file, then one line counts what was written, what failed, what came with warnings and what went the slow way, with every failure and warning listed by file. A frame that failed is not written.

The fast way and the slow way

JPEG and TIFF scans are written by the page's own writer, in milliseconds, without touching the image data. Files it will not vouch for (PNG, camera raw files with maker notes, BigTIFF, unusual IPTC) go to a bundled ExifTool that runs in the page; the first time, about 10 MB of it is fetched from the site, and such frames take seconds each. What gets written is the same either way.

What a scan carries, and IPTC for Lightroom

The same tags the Mac writes (§8), LensInfo included: dates in the frame's zone with offsets, camera, exposure, lens, GPS, title, caption, keywords, rating, creator, copyright, flash, the film in metalign's namespace, and the turn. Title, caption, keywords, creator and copyright also go into IPTC, with the digest recomputed in a JPEG so Lightroom sees no conflict. Keywords replace any already there; every other absent value writes nothing. No place name is written.

Section 5.6 The page around it

Nothing uploaded, by the page's own rules

The page is served under a content security policy that forbids it any connection of its own (connect-src 'none'): it can load its own scripts, fonts and the ExifTool part from its own site, and cannot send anything anywhere. It sets no cookies, stores nothing in the browser and runs no analytics. That is not a promise about our conduct but a property of the page, checkable in the browser's developer tools.

Language and finish

The page opens in German or English, following the browser; the EN / DE chip switches it without losing the roll. Beside it, the finish: System, Light or Dark. Both choices live in the address, not in the browser's storage.

The footer links the privacy notice (Datenschutz), the Impressum on metalign.org, and Licences, which lists the bundled ExifTool, Perl and their WebAssembly parts, and the fonts.

Section 6 Between the apps

What none of the three apps can explain on its own: what passes between them, by which route, and what each side does with it.

Section 6.1 What crosses, and how

What travelsFromToHow
A roll's shot log, one .json Rolls, on the phone Film, on the Mac Over the network to a trusted Mac, encrypted; by Handoff from the Dock; or as a file
The same shot log The Export screen metalign web Inside a link (Open in a browser), or as a file
Corrections made on the Mac Film, on the Mac The roll, on the phone Over the network to a trusted iPhone, encrypted; or as a file
A recorded GPX track Digital → Track Geotag Over the network to a trusted Mac, encrypted; or as a file
The true time Digital → Sync Clock Timestamp Correction Through a photograph

The last one is the odd one: the photograph of the Sync Clock is the carrier, so it needs no network and no clock on either machine being right (§2.13). Everything else is one of two documents. The shot log is metalign's own file: the phone writes it, and the Mac and the browser read it but never write one. A corrections file goes the other way, from the Mac to the phone. Both are plain JSON you can open in a text editor.

Section 6.2 Handing a roll to the Mac

On the Mac: Receive…

In the Film section, click Receive…. The panel says Listening and names this Mac; that name appears on the phone under Send to metalign on your Mac (§2.12). The Mac listens only while this panel is open. It answers with the roll and frame count it decoded, not what the phone said it sent, so the thing you check is the arrival, not the sending. Every roll received is also saved as a file on the Mac, so closing the panel loses nothing. The first roll opens by itself when no shot log is open yet; later ones wait for Load. The two devices need the same network, or to be near each other with Wi-Fi on.

The first time: trusting the iPhone

Only an iPhone the Mac trusts can hand over a roll. A new one shows a card in the panel, "“iPhone” asks to be trusted. Same code on the iPhone?", with a six-digit code the phone shows too. Click Same only if the two match, and tap Same on the phone; nothing is kept until both sides have said so. The phone commits to its key before it sees the Mac's, so a device in the middle cannot make the two codes agree. From then on every roll, track and set of corrections between the two goes over an encrypted connection with the key they agreed. Either side can forget the other: on the phone under Settings → Trusted Macs, on the Mac under Settings → Devices.

Fig. 6.1 The Mac, listening. It names itself as the phone will see it, and answers with the roll, the frame count and the gear it decoded. Behind the panel is the rest of the app: the Film section at the bottom of that sidebar, and the six above it for digital photographs (§4).

A roll sent again

A shot log for a roll the Mac already has open replaces it, however it arrives. The corrections made on the Mac carry over to the new log by each frame's identity, not its number, so they land on the right frame even if the phone renumbered. Where the newer log changed a field itself, the newer log wins that field. Corrections for frames no longer in the log, and blank frames inserted on the Mac, are dropped. A notice at the top of the section says what happened, roll by roll, until you dismiss it.

Section 6.3 Or from the Dock, by Handoff

While a roll is open on the unlocked phone, a Mac signed in to the same Apple Account shows metalign in its Dock. Click it, and the Mac opens on Film with that roll loaded: it asks the phone, and the phone answers over Apple's Handoff with the same bytes a push sends. No panel to open first, and nothing to pair, since Handoff only joins your own devices; it has to be on for both. If nothing has arrived 15 seconds after the click, the Mac opens the Receive… panel so you can send it from the phone instead. It works whether metalign on the Mac was running or not.

Section 6.4 Or as a file

Export shot log writes the same bytes to <roll> — shot log.json. AirDrop it and drop it on the Film section together with the scans; one drop zone takes both. No network, no listener, no Mac in the room. The same file opens in metalign web, and on another iPhone or iPad (§2.11).

Fig. 6.2 The ⋯ menu, and the screen Export for metalign opens. The document is shown before it is sent, JSON included; the bytes are the same whichever route it takes.

Section 6.5 And back again: corrections to the phone

A frame corrected on the Mac (§4.8) is corrected in the Mac's copy; the phone's roll does not know until the corrections go back. File → Send corrections to your iPhone… lists every roll with a correction or an inserted blank frame. Search for your iPhone finds a trusted iPhone that has Receive corrections from your Mac open, and Send hands it every roll, encrypted; or Save as files… writes one <roll> — corrections.json per roll to AirDrop. On the phone they are reviewed and applied (§2.11). The file and the push carry the same corrections. A flash is never carried back.

Section 6.6 To the browser

Open in a browser on the phone's Export screen opens web.metalign.org with the roll already loaded. The shot log rides in the link's fragment, the part after #, which a browser never sends to a server, and the page clears it from the address bar before reading it. The other way in is the file, dropped on the page with the scans. Nothing comes back from the browser to the phone: it writes the scans and nothing else (§5).

Section 7 Pairing is positional

The rule

A scan is written with the frame it is level with in the table. Nothing else binds them: not the number in the lab's filename, not the frame number in the log.

Scans go down the left in order, the log's frames down the right, and the scans are what move. The order is the delivery's: by filename for files (the way the Finder sorts them), by date for photos picked from Photos, and on the Mac and in a browser as they were paired on the phone, when the shot log carries that pairing. It works this way because the alternative fails silently: labs number files however they like, frame numbers skip, and a delivery missing one frame would mis-assign the whole rest of the roll with nothing to say it happened. The frame number is the label you check the pairing against, never the key it is made with. So check it. A row shows the frame the way the roll's own frame list draws it, with the scan under it: the exposure, time and title on the first line, the thumbnail and filename on the second. An off-by-one across a roll is obvious in pictures and invisible in filenames.

Only the scan column is re-ordered: re-arranging frames would be editing the roll from the wrong end. The frame column can change in three ways, each on purpose. It can gain a blank frame, inserted from the row it belongs on, because the pairing table is the one place the missing negative's position is actually known. It can lose a frame marked for deletion there, a press logged twice, which then takes no scan. And a roll with no frames at all gains one per scan (§2.8).

Scans, in filename order
Logged frames
MountRobson-01
MountRobson-02
MountRobson-03
MountRobson-04
Placeholder
Placeholder
1 Berg Lake, first light Right either way Right either way
2 Blank frame Nothing logged to check it against Right if the lab skipped the blanks
3 Blank frame Nothing logged to check it against Right if the lab skipped the blanks
4 Reflection off the lake Right if the lab scanned them Right if the lab skipped them
5 Toboggan Falls No scan Right if the lab skipped them
6 The last of the light No scan Right if the lab skipped them
Fig. 7.1 Four scans against six logged frames, and the same four with a placeholder above each blank frame. Both are complete arrangements of one delivery, and the log cannot say which is right. A blank frame is a negative nobody logged on, not a negative with nothing on it. So the lab may well have scanned it. If it did, the roll is already in step and frames 5 and 6 simply came back short. If it skipped the two blanks, these four files are frames 1, 4, 5 and 6, and every one of them is currently sitting two rows high. Only the left column moves either way, and nothing on disk is touched. The picture settles it, not the table: open the scan level with a blank and see which frame it is.
Fig. 7.2 The ladder above, as the Mac actually draws it: the same four files against the same six frames, scans in filename order on the left, the log on the right, level with each other. Nothing here has been written yet — Write metadata is the last thing you press, and until you do, the table is the only thing that has an opinion about which negative is which.
Fig. 7.3 The same case on the phone — the screen Fig. 7.1 is drawn from — and, beside it, what the app says about that pairing. Neither warning calls the roll wrong. The second one is the whole of Fig. 7.1 in a sentence: that may be exactly right, and the reason to look is that the log cannot tell you. They are a check, not a gate — Write 4 scans is live underneath them — which is why reading them is the step that matters.
Fig. 7.4 One scan more than the roll has frames. The spare shows up at the bottom, as No frame. The sentence under it says out loud that the blank frame to add may belong at the top. That is the wind-on case: the two ends of this table are not the same row. The count underneath is the same claim, checkable: seven scans are loaded and six will be written, because the row past the last frame has no frame to be written onto.

Section 8 What gets written

What you loggedWhat the scan carries
Camera make, model, serial EXIF:Make, EXIF:Model, EXIF:SerialNumber
Time, and the zone it was shot in EXIF:DateTimeOriginal, CreateDate, ModifyDate, plus OffsetTime, OffsetTimeOriginal, OffsetTimeDigitized
Shutter EXIF:ExposureTime — except B, which becomes XMP-metalign:shutterSetting
ApertureEXIF:FNumber
ISO (the roll's rated speed, or what you metered)EXIF:ISO
Exposure compensationEXIF:ExposureCompensation; zero writes nothing
Lens make, model, serial, and its range EXIF:LensMake, LensModel, LensSerialNumber, LensInfo (shortest and longest focal length, widest apertures)
Focal length EXIF:FocalLength: the frame's own; for a prime, the lens's when the frame has none; a zoom with none recorded writes nothing
FlashEXIF:Flash; absent writes nothing
Position EXIF:GPSLatitude, GPSLongitude, GPSAltitude, each with its hemisphere reference
A position nobody measured (estimated, placed by hand, or from a track) EXIF:GPSProcessingMethod as MANUAL; a measured one writes nothing
The place's name, where one was looked up or typed The phone alone: the IPTC Core location fields in XMP (place, city, region, country and its code); the Mac and the browser write no place name
TitleXMP-dc:Title and IPTC:ObjectName
Caption, keywords, rating MWG:Description, MWG:Keywords, XMP:Rating
Creator, copyright (set on the roll)MWG:Creator, MWG:Copyright
Filter on the lens; a note on the frameXMP-metalign:filter, XMP-metalign:frameNote
A scan turned on the pairing table Orientation; the pixels are not touched
Frame number, roll name, stock, format, process, box speed, rated speed, push or pull, lab XMP-metalign:* — the private namespace, because no schema describes a film stock

The shot log itself is never rewritten. A frame corrected on the Mac or in a browser (§4.8, §5.4) keeps its correction beside the log and has it applied when the frame is written, so the file that came off your phone stays the record it was. A roll exported again keeps the Mac's corrections, frame by frame (§6.2).

A position can be worked out rather than measured, and the scan says which it was. A frame that never got a fix can take one from the nearest located frame either side of it, from a recorded track, or from a pin put down by hand: in the phone's Frame map (§2.6), or by correcting the frame on the Mac or in a browser. Any of those writes EXIF:GPSProcessingMethod as MANUAL, which is the standard way of saying a person asserted a position rather than a receiver reporting one. A measured position writes nothing there, on the same rule the flash follows: only the positive claim reaches the file. All three apps write it, and all three call a hand-placed pin the same thing, so a place filled in on one of them makes the same statement on the scan whichever one finishes the roll.

Section 9 Mac, phone, or browser

All three write out of one document, by one pairing rule, into the same tags. What they do not share is which files they will open, where the finished file ends up, and what they leave behind. One of the three is worth a paragraph first.

metalign web runs on no device of its own: it puts the Mac's Film section in a browser, at web.metalign.org, entirely on the machine it is open on, and the phone's Open in a browser opens it with the roll loaded. Nothing is uploaded and there is no account. That is not a promise about our conduct but a property of the page: it is served under a policy that permits it no connections of its own, so there is nowhere for a scan to go.

Propertymetalign desktop, on the Macmetalign, on the phonemetalign web, in a browser
Scans it will write What the bundled ExifTool writes, TIFF included JPEG only — ImageIO will not put a capture date into a TIFF's EXIF JPEG and TIFF, written natively; ExifTool only for the files it will not vouch for
Where the file ends up In place, beside the lab's delivery From Files, copied into an album in Photos or a folder you pick in Files, or overwritten where it sits; from Photos, written back onto the photo itself In place, in the folder it came from, on Chromium; everywhere else a ZIP of the roll
Backups An untouched *_original of every scan, while Keep backups is on (the default) None of its own — Photos keeps the original, and Revert undoes the write; from Files, only Overwrite files touches the delivery An *_original, written before the new bytes, and a second write keeps the first one; the ZIP route reads the scans and touches nothing
Flash Writes EXIF:Flash Never writes it, in either direction Writes EXIF:Flash
A position nobody measured Writes GPSProcessingMethod into the EXIF GPS block Writes the same value, into the XMP packet rather than the EXIF block, where a reader of EXIF alone will not find it Writes it into the EXIF GPS block
Caption, title, keywords MWG composites — EXIF, IPTC and XMP together XMP, mirrored into ImageDescription, Artist and Copyright; no IPTC block MWG composites as well — EXIF, IPTC and XMP, in JPEG and TIFF alike
The place's name Not written Written into the XMP packet's IPTC Core location fields Not written
Fig. 9.1 The phone is the only screen in any of the three that names all three destinations, and it is where the table above comes from.

Section 10 Worth knowing

Section 11 Questions

The questions people ask about metalign, each answered in a sentence or two with a link to the feature that answers it in full. Nothing here is new: every answer is a summary of a section above, and where the two ever differ, the section is right.

Section 11.1 Logging a roll

How do I log a frame?

Open the roll that is in the camera, set the Shutter and Aperture dials to what the camera was set to, and tap Log frame N. The frame gets the time with its time zone, the place, the exposure, the filter, the flash and the lens (§2.3).

Do I have to set the dials for every frame?

No. With Carry settings to the next frame on, the default, the dials, lens, filter and metered ISO stay where you left them, so a run at one setting is one tap a frame (§2.3).

What if I did not note the exposure?

Leave the dial on its "—" stop: the frame reads No exposure recorded and nothing is guessed (§2.3). Frames logged from the watch, a widget or Siri carry no exposure unless you say one.

Can I shoot two cameras at once?

Yes: load a roll into each body. In a camera then gets one heading per camera, so you can see which film is in which body (§2.1).

How do I log a roll I am pushing or pulling?

Pick the film and set Metered at to the speed you meter at, for example HP5 at 1600. That speed is written as the film speed on every scan (§2.2).

Can I add a roll I shot without metalign?

Yes. Already shot at the foot of New roll creates a developed or scanned roll whose frames come from its scans, one per scan (§2.2).

Can metalign read the film box?

It learns barcodes rather than shipping a table: the first scan of a box asks which of your films it is, and every scan after that is instant (§2.7).

Can I record a filter?

Yes, with its factor, and the sheet says how much to open up. The filter is recorded and written onto the scan, never applied to anything (§2.5).

My camera's counter starts below 1. Does that matter?

Set Counter starts below 1 on the camera in Gear, and frames are numbered the way its counter is, in the app, the shot log and the scans (§2.3).

Why did a frame get no place?

The bar's location status says: tap the crossed arrow for the reason, such as location access, Low Power Mode or no position yet (§2.3). A frame logged away from the app on a locked iPhone gets a place only under the conditions in §3. A place can be added later (§2.6).

Can I log without recording where I was?

Yes. Log location for each frame off records no place on new frames from any route, the watch included (§2.6).

How do I delete a frame without breaking the scans?

Every delete asks whether the negative is still on the film: leave a blank frame, and the numbers below stay in step with the scans; move the rest up only for a frame that was never shot (§2.4).

One press logged two frames. What now?

A line above the frames asks "One press logged twice?": mark the extra one for deletion, or confirm it if both were real (§2.4).

Does metalign know if it was golden hour?

Yes, for a frame with a time and a place, worked out on the phone with no connection. It is shown in the app and never written into a scan (§2.5).

Section 11.2 Without the phone's screen

Can I log a frame without unlocking my iPhone?

Yes, with the Log Frame control on the Lock Screen or the Action button (iOS 18 and later), which never asks for Face ID (§3.5). The Live Activity's button asks for Face ID on a locked iPhone (§3.6).

Can I log from my Apple Watch?

Yes: the roll page logs the next frame with the time, the place from the watch's own GPS and the body's lens, and a second page takes the exposure (§3.2, §3.2).

Does the watch need the iPhone nearby?

No. Every press is saved on the watch first and delivered when the phone is back in range, placed on the roll by the time it was made (§3.2).

Can I log a frame with Siri?

Yes: say "Log a frame in metalign", with the iPhone locked if you like, and answer with a note or stay silent (§3.7).

Can the Action button log a frame?

Yes, as the Log Frame control or as a shortcut (§3.5).

Is there a widget?

Yes: a Home Screen widget with the count and a button that logs the next frame without opening the app, a Cameras widget, Lock Screen widgets and a watch-face complication (§3.4, §3.3).

Section 11.3 Scans and metadata

How are scans matched to frames?

By position, never by filename: the first scan in filename order gets the first frame, and you check and move rows before anything is written (§7).

The lab skipped a frame. How do I fix the pairing?

Insert a placeholder at that row, and every scan below moves down one (§2.8, §4.8, §5.2).

There is a scan for a negative I never logged.

Insert a blank frame above that row: the roll gains a frame, and the scan gets the roll's facts and its number (§2.8).

What exactly is written into a scan?

Dates with their time zone, camera, exposure, lens, place, title, caption, keywords, rating, creator and copyright, and the film in metalign's own namespace, as real EXIF and XMP. The full table, per app, is §8.

Does it write IPTC for Lightroom?

The Mac and the browser do, with a JPEG's digest recomputed so Lightroom sees no conflict (§5.5). The phone writes no IPTC block (§2.8).

Are my scans re-encoded?

No. The pixels are copied untouched and the metadata merged onto what the file already carried, then read back (§2.8).

Can the iPhone write TIFF scans?

No: iOS cannot give a TIFF a capture date, so a TIFF delivery goes to metalign on the Mac or in a browser (§2.8).

Are the lab's originals kept?

On the Mac, Keep backups keeps an untouched _original of every scan (§4.8); the browser's ZIP route never opens your scans for writing (§5.5).

What do the scans look like to other apps afterwards?

Like ordinary digital photos: a real make, model and capture date, so they sort by date and group by camera in Photos and Lightroom (§10).

Can I post a frame with its details?

Share photo turns a written frame into a 4:5 or square JPEG with the details you choose printed under it (§2.10).

Can I print a contact sheet?

Yes: Make contact sheet builds a printable PDF of a roll (§2.9).

Section 11.4 Between devices

How do I get a roll onto my Mac?

Three ways: send it over the local network to a trusted Mac, click metalign in the Mac's Dock by Handoff, or export the shot log as a file and AirDrop it (§2.12, §2.12, §2.11).

Why do I compare a code with my Mac?

So the two agree on a key once: both screens show the same six-digit code, and from then on every exchange with that Mac is encrypted with it (§2.12).

Can I finish a roll without a Mac?

Yes. The phone pairs JPEG scans and writes them itself (§2.8), and Open in a browser takes a roll to metalign web on any computer (§2.11).

I corrected frames on the Mac. Can the phone have them?

Yes: send the corrections from the Mac to the iPhone, or save them as a file (§2.11, §6.5).

Does metalign sync through iCloud?

If you switch it on: rolls, frames, gear and settings go through your own iCloud account to your other devices (§2.12).

Does metalign run on iPad?

Yes, with the Rolls list as a sidebar and a wider pairing table (§2.1).

Do the devices need the internet?

No. The network routes need the two devices on the same network or near each other, the file route needs nothing, and Handoff needs the same Apple Account (§10).

Section 11.5 The Mac, the browser, and metalign itself

Should I use the phone, the Mac or the browser?

The phone for JPEG deliveries without a computer, the Mac for TIFF, large batches and digital photos, the browser for TIFF on any machine with nothing installed (§9).

My digital camera's clock is wrong. Can metalign fix the photos?

Yes: photograph the iPhone's Sync Clock with that camera, and the Mac reads the true time out of the shot and corrects every photo from that camera (§2.13, §4.2).

Can I geotag photos from a camera without GPS?

Yes: record a track on the iPhone and the Mac writes GPS into the photos by their capture time (§2.13, §4.3).

Can I remove location and other metadata before sharing?

On the Mac, Remove… strips what you tick, with location, owner name and serial numbers ticked by default (§4.5).

Can I rename photos by date and camera?

Yes: Rename & Organise builds filenames and folders from each photo's metadata and lists every new name before anything moves (§4.6).

Can it find duplicate photos?

Yes: Find duplicates groups pictures that look alike, by their pixels (§4.7).

I manage my photos in Lightroom Classic or Capture One.

metalign writes into the files and warns you when a catalog manages them: save that app's changes first, write here, then read the metadata back there (§4.1).

Which files does the Mac take?

JPEG, HEIC, TIFF, PNG, DNG and the raw formats of the major makers (§4.1).

Which browser does metalign web need?

Any current one writes the finished scans to a ZIP; writing straight into the scan files needs Chrome, Edge or Opera (§5.1).

Does metalign web upload my scans?

No. The page is forbidden any connection of its own and cannot send anything anywhere (§5.6).

Do I need an account? What does metalign send?

No account. metalign has no server and sends nothing to its developer; a roll leaves your devices only by a route you choose (§10).

Which cameras does it work with?

Three are verified end to end: Leica M10-P, Leica Q-P and Sony A7 III. Everything else is expected to work and unverified (§10).

Does it cost anything?

Two rolls can be started without the full version; from the third, one in-app purchase, not a subscription, covers as many rolls as you like. The price is shown in the app (§2.14).

Is metalign available in German?

Yes: all three apps, including the watch, Siri and the Mac, where the Film section is called Scans (§3.7, §4.1, §5.6).