RheoclesREE-oh-kleez

Draft. Written against the spec, ahead of the code. The words are the intent; the software is not there yet.

Timecode and sync

Every file carries its own time — a time-of-day timecode track in video, a Broadcast Wave time reference in audio — so an editor lines them up without the manifest, and the manifest agrees with the files.

The cue starts every writer on the same tick, but that is not what makes the files sync. What makes them sync is that each one is stamped, from the host clock, with the time of day of its own first written frame. The files agree with each other because they agree with the clock.

What is in each file

file carries as
.mov (camera, display, window) a tmcd timecode track time-of-day at the first written frame, at the stream’s frame rate
.wav (microphone, system audio) a bext chunk TimeReference: samples since midnight, at 48 kHz

Both are stamped from the same host clock at the same moment for a stream that joins on the cue, and from that clock at the later moment for a stream that joins late. A stream that started at 14:06:17 carries 14:06:17:00 in its timecode track and 2 437 296 000 in its TimeReference (50 777 s × 48 000), and an editor reading either lands it in the same place.

The manifest records the same instant as an absolute UTC started, and the timecode string as stamped, per stream. The manifest is never the only copy of the time; it is the copy that is easiest to read.

Why time-of-day

Take-relative timecode — every file starting at 00:00:00:00 — would sync the cue’s files and nothing else. Time-of-day is the production standard because:

  • A late joiner needs no special case. Its first frame is stamped when it happened, and it lands where it happened.
  • Everything from one day shares a timeline. Take 3’s B-camera sits after take 2’s without anyone doing arithmetic.
  • Two machines line up. Two NTP-synced capture boxes — the camera on one, the prompter on the other — produce files that align to within the clocks’ agreement. That is the remote scenario, solved as a side effect of a decision made for other reasons.

Syncing in an editor

Select the take’s files and sync by timecode. Every NLE has the option; the name varies.

editor the option
DaVinci Resolve Media pool → select → Auto Sync Audio → Based on Timecode; or Create Multicam Clip → Sync by Timecode
Premiere Pro select → Synchronize… → Timecode; or a Multi-Camera Source Sequence with Timecode
Final Cut Pro select → Synchronize Clips (timecode is used when present); or New Multicam Clip → Use timecode

No manifest, no slate, no waveform matching. The files carry their own time, so the editor does the placing.

Drift

Drift is measured, not assumed. For each stream Rheocles compares frames written × frame duration against host elapsed and reports the difference in seconds — in drift events while recording and in the manifest’s drift afterwards, the way OBS reports timecode drift.

A capture device’s clock is not the host’s clock, and a long take can drift by a frame or two. Whether a client does anything with the number is the client’s business; it costs nothing to emit, and an editor that wants to conform a long file has the figure to do it with.

Midnight

Time-of-day wraps at midnight, and every camera and field recorder that uses it shares the consequence.

A take that starts before midnight and runs past it is fine. Every file that started before midnight agrees with every other, and editors handle the wrap on the timeline.

A stream that joins after midnight into a take that started before gets a time-of-day stamp near zero — 00:03:10:00 — and an editor syncing by timecode will place it twenty-four hours before the rest of the take rather than three minutes after. Broadcast Wave’s TimeReference wraps the same way. There is no clean fix inside the files.

The 4 GB ceiling

Broadcast Wave is WAV, and WAV stops at 4 GB. At 48 kHz, 24-bit, that is 144 kB a second per channel: about 8.3 hours mono, about 4.1 hours stereo. What Rheocles does at the limit is the engine’s to decide and this page will say when it is decided; until then, plan an all-day recording as more than one take.