Linear timecode
Linear timecode (LTC), also known as longitudinal timecode, is a standard for encoding time and control information as an analog audio signal, enabling precise synchronization of video, audio, and other media in production and post-production workflows. Defined by the Society of Motion Picture and Television Engineers (SMPTE) in standard ST 12-1, LTC represents time in a binary-coded decimal (BCD) format of hours:minutes:seconds:frames, transmitted at rates matching common frame rates such as 23.98, 24, 25, 29.97, 30, 48, 50, 59.94, or 60 frames per second.[1][2] This signal uses biphase mark phase modulation for reliable reading during linear media playback, requiring the recording medium to move for decoding, and includes 32 user bits per frame for additional metadata like identifiers or event markers.[3] The origins of LTC trace back to 1967, when the Electronics Engineering Company of California (EECO) developed the initial timecode system, inspired by NASA telemetry techniques for tracking spacecraft data, to address the challenges of editing analog videotape.[3][4] In response to incompatible proprietary systems from companies like EECO, Siemens, and others, SMPTE formed a committee in 1969 to standardize the format, culminating in the approval of SMPTE 12M by the American National Standards Institute (ANSI) on April 2, 1975.[4][5] This standardization revolutionized broadcast and film industries by providing a universal method for frame-accurate referencing, replacing manual logging and enabling automated editing systems.[6] LTC is typically recorded on a dedicated audio track alongside video or audio content, allowing it to be "pre-striped" before shooting or added post-production, which offers flexibility not possible with vertical interval timecode (VITC), an alternative embedded in the video signal's blanking interval.[5] The format supports both non-drop-frame and drop-frame modes to compensate for real-time discrepancies in non-integer frame rates like 29.97 fps, where certain frame numbers are skipped to maintain synchronization accuracy within 86.4 milliseconds per day.[3] Each LTC frame consists of 80 bits: 64 for timecode and user data, plus 16 for synchronization, ensuring robust error detection and self-clocking properties.[7] Despite the shift to digital and non-linear workflows, LTC remains widely used for its compatibility with legacy equipment and as a bridge to modern systems like MIDI timecode or network-based synchronization.[1]Overview
Definition and Purpose
Linear timecode (LTC), also known as longitudinal timecode, is an audio-encoded signal that carries SMPTE timecode data in a format suitable for recording on an audio track or transmission via audio lines, as defined in the SMPTE ST 12-1 standard.[1] This signal encodes time information using biphase mark modulation, representing the current position in a sequence as hours:minutes:seconds:frames (HH:MM:SS:FF).[1] The structure consists of 80 bits per frame, including 26 bits dedicated to the time address and synchronization elements, ensuring reliable decoding even at low speeds or during pauses.[8] The primary purpose of LTC is to enable precise, frame-accurate synchronization of multiple audio, video, and auxiliary media devices throughout the production workflow, from recording on set to editing and playback in post-production.[9] By providing a continuous, linear reference timeline, it allows systems to align content without relying on visual cues, facilitating automation in editing suites and broadcast environments.[1] This synchronization is critical for maintaining temporal consistency across disparate equipment, such as cameras, sound recorders, and nonlinear editors. Key components of LTC include the core time-of-day value, which tracks elapsed time from 00:00:00:00 to 23:59:59:29, and 32 user bits organized into binary groups for embedding metadata like reel or tape identifiers, date information, or application-specific data.[8] These user bits enhance traceability and integration with production systems without altering the primary timing function.[1] LTC supports standard frame rates such as 24, 25, and 30 frames per second in non-drop-frame mode for film, PAL, and basic video applications, respectively, while accommodating 29.97 frames per second in drop-frame mode to match NTSC broadcast requirements and prevent time drift over long durations.[9] Originally developed in the context of analog tape recording, LTC remains a foundational technology for media synchronization.[8]Historical Development
The development of linear timecode (LTC) emerged in the late 1960s amid the growing demands for precise synchronization in analog videotape editing for television and film production. In 1967, the California-based company EECO introduced an early timecode system inspired by NASA's Apollo program telemetry techniques to facilitate electronic editing of videotape footage. By 1969, the Society of Motion Picture and Television Engineers (SMPTE) established a committee to standardize this technology, addressing the limitations of manual cueing and mechanical alignment in multi-machine setups. This effort culminated in the formal approval of the initial specification on April 2, 1975, when the American National Standards Institute (ANSI) endorsed SMPTE 12M as the "Time and Control Code for Video and Audio Tape Recordings at 24, 25, or 30 Pictures per Second," defining LTC as an audio-encoded signal for longitudinal recording on tape.[10][6][11] Standardization efforts extended internationally in the early 1970s, with the European Broadcasting Union (EBU) adopting a compatible version of the SMPTE standard in 1972 to harmonize practices across North American and European television systems, despite minor differences in frame rates and drop-frame adjustments. The SMPTE 12M specification underwent revisions through the 1990s to enhance digital compatibility, including updates in 1999 to incorporate absolute time, day, and date elements for better integration with emerging digital recording formats. These changes ensured LTC's adaptability as analog workflows transitioned toward hybrid systems, maintaining its role in audio-based synchronization.[12][13] Key milestones in the 1980s included LTC's integration with professional videotape formats like Sony's Betacam, introduced in 1982, which dedicated an audio track for LTC to support nonlinear editing precursors and improved cueing accuracy in broadcast production. The 1990s and 2000s saw a shift toward digital audio embedding, where LTC was incorporated into standards like AES3 for transmission over digital interfaces, allowing seamless use in digital audio workstations (DAWs) and formats such as Digital Betacam (1993). Post-2010, as file-based workflows dominated, LTC persisted in modern productions either as an embedded audio track in media files or converted to metadata, bridging legacy equipment with IP-based systems while supporting synchronization in cloud and virtual environments.[6][4]Technical Specifications
Data Structure and Encoding
Linear timecode (LTC), as defined in SMPTE ST 12-1:2014, organizes data into an 80-bit frame that repeats for each video frame, providing precise temporal addressing and synchronization in media production. The frame consists of 64 data bits followed by a 16-bit synchronization word, with the data bits encoding the time address in binary-coded decimal (BCD) format using 26 bits for the time address (hours 00-23, minutes 00-59, seconds 00-59, and frames 00-29 for 30 fps systems; with tens digits using fewer bits where appropriate, e.g., 2 bits for frame and hour tens, 3 bits for minute and second tens), along with 6 control flag bits and 32 user bits for user-defined information.[14][15] The bit-level assignment interleaves timecode, user bits, and flags to facilitate robust decoding. For example:| Bit Positions | Content | Description |
|---|---|---|
| 0–3 | Frame units | BCD 0–9 |
| 4–7 | User bits 1 | Custom data |
| 8–9 | Frame tens | BCD 0–2 |
| 10 | Drop-frame flag | 1 for drop-frame mode |
| 11 | Color frame flag | Indicates field sequence |
| 12–15 | User bits 2 | Custom data |
| 16–19 | Seconds units | BCD 0–9 |
| 20–23 | User bits 3 | Custom data |
| 24–26 | Seconds tens | BCD 0–5 |
| 27 | Phase correction bit | Ensures even parity of zeros |
| 28–31 | User bits 4 | Custom data |
| 32–35 | Minutes units | BCD 0–9 |
| 36–39 | User bits 5 | Custom data |
| 40–42 | Minutes tens | BCD 0–5 |
| 43 | Binary group flag 0 | User bit format indicator |
| 44–47 | User bits 6 | Custom data |
| 48–51 | Hours units | BCD 0–9 |
| 52–55 | User bits 7 | Custom data |
| 56–57 | Hours tens | BCD 0–2 |
| 58 | Reserved | Typically 0 |
| 59 | Binary group flag 2 | User bit format indicator |
| 60–63 | User bits 8 | Custom data |
| 64–79 | Sync word | Fixed: 0011111111111101 |