Project 02

What is 24+1?

Broadcast timecode maths, without the mental gymnastics.

Engraving of a pocket watch with a cracked dial

The frame where one second rolls into the next.

01 — The problem

The sums that don’t fit a calculator

Broadcast delivery runs on timecode. Program durations and segment lengths all have to be worked out to the exact frame — and off-the-shelf timecode calculators handle the everyday sums fine. Where they fall short is the delivery-specific rules.

Many delivery systems require each segment to be spaced by a fixed gap — say 5 or 10 seconds — and then rounded to the nearest 0 or 5. That sounds trivial until the numbers roll over: a value like 00:24:48:00 or 00:19:59:00 has to carry across seconds, minutes, and frame boundaries all at once.

In practice, operators end up doing this in their head, under deadline — and it’s exactly the kind of maths that’s easy to get wrong, and costly to catch later.

00:24:48:0000:25:00:00 48 seconds carries into the next minute.
00:19:59:0000:20:10:00 The awkward one, sitting right on :59.

Both worked through 24+1’s rounding routine — a 10-second gap, rounded up to the nearest 5.

02 — The solution

Paste, add, round, copy

24+1 is a focused utility built for that exact gap. Paste a timecode into the box, choose the frame rate, and pick how many seconds to add (5, 10, or whatever the spec calls for).

24+1 adds the gap, rounds the result to the nearest 0 or 5, and handles every second, minute, hour and frame-rate rollover correctly — including the awkward cases that sit right on :59. One click copies the finished timecode straight into the editing software or cue sheet, so there’s no retyping and no carry errors.

rounded_timecode.py Python
def rounded_timecode(tc):    parts = tc.split(':')    if len(parts) != 4:        return "Invalid timecode format"    try:        hh, mm, ss, ff = map(int, parts)    except ValueError:        return "Invalid numbers in timecode"    total_seconds = hh * 3600 + mm * 60 + ss    # Add 10 seconds    total_seconds += 10    # Round UP to nearest 5    remainder = total_seconds % 5    if remainder != 0:        total_seconds += (5 - remainder)    hh = total_seconds // 3600    mm = (total_seconds % 3600) // 60    ss = total_seconds % 60    return f"{hh:02}:{mm:02}:{ss:02}:00"def main():    print("Enter timecode HH:MM:SS:FF (type q to exit)\n")    while True:        timecode = input("timecode: ").strip()        if not timecode:            continue        if timecode.lower() == "q":            print("Exiting program...")            break        print(f'\n{rounded_timecode(timecode)}\n')
The rounding routine: parse, add the gap, round up to the nearest 5, then rebuild the timecode across every second, minute and hour boundary.
03 — The impact

One less thing to get wrong

01

Takes the mental math out of the most error-prone step in delivery prep.

02

Cuts delivery time by turning a stop-and-recalculate moment into a paste-and-copy one.

03

Reduces mistakes on exactly the rollover edge cases where they’re most likely — and most expensive to fix downstream.