How an 80-bit audio signal encodes time

LTC timecode is an FM signal recorded on tape. Decoding it while the tape shuttles backwards at 30x speed is a different problem than parsing a number.

Most people think of timecode as a number. 01:04:23:12. Hours, minutes, seconds, frames. Parse the string, do some arithmetic, move on.

But LTC (Linear Timecode) is not a string. It is an audio signal, a square wave recorded on tape or transmitted over a cable, encoding 80 bits of data per frame using a modulation scheme borrowed from telecommunications. Decoding it while a tape machine shuttles backwards at 30x play speed is a fundamentally different problem than parsing four numbers separated by colons.

Biphase mark encoding

LTC uses biphase mark coding to turn binary data into an analogue audio signal. The scheme has two rules:

  1. Every bit period starts with a transition. High goes low, or low goes high. This transition is the clock edge.
  2. A binary 1 gets a second transition at the midpoint of the bit period. A binary 0 does not.

A stream of all 1s produces the highest frequency: transitions at every half-bit period. A stream of all 0s produces the lowest frequency: transitions only at bit boundaries, half the rate.

At 30 fps with 80 bits per frame, the bit rate is 2,400 bits per second. All-ones gives a 2,400 Hz signal. All-zeros gives 1,200 Hz. Real timecode data produces a mix of frequencies between these two. For 25 fps (PAL/EBU), the range is 1,000 to 2,000 Hz. For 24 fps, 960 to 1,920 Hz.

These frequencies sit comfortably in the middle of the audio band. This was deliberate. It means LTC can be recorded on any audio track, transmitted over any audio cable, and processed by any audio amplifier without modification. No special hardware, just sound.

Two properties make biphase mark coding the right choice for this job. First, it is self-clocking. The receiver extracts the bit clock directly from the signal transitions, so tape speed variations do not require a separate clock reference. Second, it is direction-independent. The encoding can be decoded regardless of whether the tape is moving forwards or backwards.

Biphase Mark Encoding
HILO
| = clock edge (every bit)1 = extra mid-bit transition0 = no mid-bit transition

The 80-bit frame

Each LTC frame is exactly 80 bits long. The bits are transmitted least significant bit first and are organized into four categories: time data, user bits, flag bits, and a sync word.

Time data (26 bits). The time of day is stored in BCD (binary-coded decimal), split across the frame in four fields: frame number (0 to 29), seconds (0 to 59), minutes (0 to 59), hours (0 to 23). Each field is broken into a units nibble and a tens portion, interleaved with other data throughout the frame.

BitsField
0-3Frame units (BCD, 0-9)
8-9Frame tens (BCD, 0-2)
16-19Seconds units (BCD, 0-9)
24-26Seconds tens (BCD, 0-5)
32-35Minutes units (BCD, 0-9)
40-42Minutes tens (BCD, 0-5)
48-51Hours units (BCD, 0-9)
56-57Hours tens (BCD, 0-2)

User bits (32 bits). Eight groups of four bits each, interleaved between the time fields (bits 4-7, 12-15, 20-23, 28-31, 36-39, 44-47, 52-55, 60-63). These carry arbitrary data. Common uses include reel number, date, and scene/take identification. Two binary group flag bits (43 and 58) tell the receiver how to interpret them.

Flag bits. Bit 10 is the drop-frame flag: set to 1 when using 29.97 fps with frame-number skipping. Bit 11 is the colour frame flag, used to identify the relationship between timecode and the NTSC or PAL colour frame sequence. Bit 27 is the biphase correction bit, a parity bit set so that each complete frame contains an even number of transitions. This guarantees that every frame starts with the same polarity, which simplifies decoder design.

Sync word (bits 64-79). The fixed 16-bit pattern 0011 1111 1111 1101. This pattern serves three purposes. It marks frame boundaries, allowing the decoder to find the start of each frame in a continuous stream. It is unique, meaning no valid combination of timecode data can accidentally produce the same bit sequence. And it is asymmetric: read forwards, the pattern is 0011111111111101; read backwards, it becomes 1011111111111100. This asymmetry tells the decoder which direction the tape is moving.

80-Bit LTC Frame
Time data
User bits
Flags
Sync word
0-3
4-7
12-15
16-19
20-23
24-26
28-31
32-35
36-39
40-42
44-47
48-51
52-55
60-63
Sync word
01632486479
Hover over a field to inspect it

Recording on tape

LTC is recorded as audio, typically on the highest-numbered track of a multitrack tape machine. The recommended level is roughly -10 dBu, about 10 dB below nominal operating level.

This level is a compromise. Too hot and harmonic distortion adds spurious transitions that corrupt the biphase encoding. Hot timecode also bleeds into adjacent audio tracks through crosstalk. Too quiet and noise and tape dropouts cause decode errors. The -10 dBu sweet spot provides enough signal-to-noise ratio for reliable decoding while keeping crosstalk manageable.

An empty guard track is kept between the timecode track and the nearest audio track. On a 24-track machine, timecode goes on track 24, track 23 stays empty. This was not optional. LTC sits between 1,200 and 2,400 Hz, a frequency range where crosstalk into dialogue or music is extremely audible and effectively impossible to remove in post.

Professional videotape recorders solved this differently. They had a dedicated longitudinal address track, physically separate from the audio heads, with its own level and alignment optimized for timecode.

Crystal drift

Every timecode generator runs on a crystal oscillator, and every crystal drifts. The amount of drift determines how long two devices will stay in sync after being jam-synced at the start of a shoot.

Crystal accuracy is measured in parts per million. Converting ppm to real-world timing at 30 fps:

OscillatorAccuracyDaily driftFrames per 24 hours
Standard quartz (XO)±20-50 ppm±1.7-4.3 s±51-130
Temp-compensated (TCXO)±0.5-5 ppm±0.04-0.43 s±1.3-13
Oven-controlled (OCXO)±0.01 ppm±0.0009 s~0.03

A standard quartz oscillator at 20 ppm accumulates about 1.7 seconds of drift per day. That is 51 frames at 30 fps. A single frame of drift (33 ms) is enough to create visible lip-sync error.

Professional timecode generators from Ambient and Denecke use TCXOs, achieving less than one frame of drift per 24-hour shooting day. Cheap cameras use standard quartz, where several frames of drift per hour is common.

Crystal frequency is also temperature-dependent. Quartz follows a characteristic frequency-temperature curve (an inverted parabola for AT-cut crystals) that can shift by 10 to 20 ppm across the operating temperature range. Moving equipment between air-conditioned interiors and a hot exterior can produce step changes in drift rate. TCXO designs measure the crystal temperature and apply a correction factor, which is why professional generators specify their accuracy across a temperature range like ±0.5 ppm from -20 C to +60 C.

What happens at speed

Because LTC is a frequency-modulated signal, changes in tape speed directly change the signal frequency. A 2x shuttle doubles all frequencies. A 30x rewind shifts a 1,200-2,400 Hz signal to 36,000-72,000 Hz.

Biphase mark encoding tolerates this well because the decoder does not look for a fixed frequency. It looks for transitions. But extreme speeds push the signal outside the passband of the decoder’s input electronics. At very high forward speeds, the transitions come too fast for the comparators to track. In reverse, the same problem applies, compounded by the mechanical challenge of reading a tape moving in the wrong direction past a playback head.

Most professional LTC decoders track speeds from about 1/30x to 60x nominal play speed. Within that range, the self-clocking property of biphase mark encoding handles speed variations automatically. The decoder extracts timing from the transitions themselves, not from an assumed clock rate.

Reverse playback works because of the asymmetric sync word. The decoder recognizes the backwards pattern, knows the tape direction, and reverses its bit ordering. The time data still reads correctly. The biphase correction bit (bit 27) was calculated for forward playback, so some decoder implementations handle it differently in reverse, but the time values remain valid.

Dropouts and flywheel

Tape-based LTC is vulnerable to physical damage. A scratch or coating defect spanning a few millimetres of tape can destroy enough signal to make one or more frames undecodable.

Professional decoders handle this with flywheel algorithms. When the decoder loses the signal, it continues counting frames based on the last known good timecode value, extrapolating forward (or backward) at the detected play speed. If the dropout is short (a frame or two), the flywheel bridges the gap invisibly. If the dropout is longer, the flywheel accumulates error and the decoder must wait for a valid sync word to re-establish position.

Electrical interference is the other common failure mode. LTC occupies the same frequency range as audio content, so it picks up mains hum harmonics, RF interference, and cable crosstalk. Professional practice routes timecode cables separately from audio cables and uses balanced connections for common-mode rejection.

Jam-sync

Jam-sync is how timecode generators on different devices get aligned. A master generator provides a reference signal. Slave devices read the incoming LTC, set their internal counters to match, and then disconnect and free-run on their own crystal oscillators.

This is the critical detail that non-specialists miss. Jam-sync sets a starting value. It does not create an ongoing lock. From the moment the cable is unplugged, each device’s accuracy depends entirely on its own crystal. Two cameras jammed at call time will start in perfect agreement and diverge from there, frame by frame, at a rate determined by the quality of their oscillators.

Professional practice for re-jamming:

  • Start of each shooting day. Non-negotiable.
  • After any power cycle. Turning a camera off typically resets its counter.
  • At lunch or major breaks. Every 4 to 6 hours compensates for drift on cameras with standard oscillators.
  • After frame rate changes. Switching between 23.976 and 29.97 for slow-motion work disrupts the timecode relationship.

The most common jam-sync failure is staleness. Cameras jammed at 7 AM are still shooting at 3 PM without a re-jam. Eight hours at 20 ppm produces about 0.6 seconds of drift: 17 or more frames. That is not a nuisance. It is a multi-camera sync failure.

Some devices offer continuous jam (or jam-lock), where the slave constantly follows the incoming timecode. This eliminates drift but introduces a different risk: if the incoming signal has dropouts or glitches, the slave’s counter glitches too. Most production sound mixers prefer one-shot jam with periodic re-jamming for this reason.

Why it matters

LTC was designed in the 1960s for a world of analogue tape machines, and it works the way analogue signals work. It is not a data format that happens to be carried on audio. It is an audio signal that happens to encode data. The encoding, the signal level, the guard tracks, the crystal tolerances, the flywheel algorithms: these are all properties of the signal, not the number. Understanding LTC means understanding the signal.


References