LTC reader
Linear timecode from an audio track
Drop a master or a recording and find the audio track that carries LTC. The reader gives its start and end timecode, frame rate and drop-frame flag, and every point where the timecode jumps. It also says how the LTC lines up with the file’s own timecode track, to the frame. The file is read in your browser, and nothing is uploaded.
Drop a master or a recording with LTC on its audio
MXF (OP1a, OP-Atom), MOV, MP4, WAV and AIFF. Every audio track is read, the whole length of the file. Read in your browser; nothing is uploaded.
What LTC is
Linear timecode (SMPTE ST 12-1) is timecode recorded as sound: an 80-bit word per frame, biphase-mark coded, on an audio track. It sounds like a harsh buzz. Cameras and recorders lay it down so separate picture and sound can be synced later, and some masters carry it on a spare track alongside the timecode track. Biphase-mark coding carries its information in transitions, so LTC reads the same inverted, at a low level, or with a DC offset, and that’s how it’s read here.
Frame rates
LTC carries the frame number and a drop-frame flag, not the frame rate. The rate is measured from the signal itself, from the time between frames. That’s how 23.976 is told from 24 and 29.97 non-drop from 30: the pairs differ by 0.1%. 29.97 drop-frame skips frame numbers 00 and 01 at the start of every minute except every tenth. Those skipped numbers aren’t counted as jumps.
Against the file’s timecode
Where the file has a timecode track (a MOV tmcd track, or an MXF material package’s timecode), the LTC’s first frame is compared with what that track reads at the same point in the file. A difference of a whole number of frames usually means one was set or offset differently from the other. A fraction of a frame means the LTC wasn’t laid to the picture. Both readings are given; which one a delivery must follow is up to its spec.
Not read
- VITC, or timecode in the picture: only the audio is read.
- LTC played backwards, as when a tape is shuttled in reverse.
- User bits, and the BWF time reference in a WAV’s
bextchunk. - Compressed audio is read where the browser can decode it, but LTC rarely survives lossy coding intact.
The decoder
The LTC is decoded by our own decoder, compiled to WebAssembly. It’s checked against libltc, an independent LTC encoder, at 23.976, 24, 25, 29.97 drop-frame and 30 fps, at 44.1 and 48 kHz, inverted, at −30 dBFS, beside programme sound, and with jumps.
Related: timecode calculator · track layout verifier · line-up checker · file header reader.