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.
Both worked through 24+1’s rounding routine — a 10-second gap, rounded up to the nearest 5.
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.
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')
One less thing to get wrong
Takes the mental math out of the most error-prone step in delivery prep.
Cuts delivery time by turning a stop-and-recalculate moment into a paste-and-copy one.
Reduces mistakes on exactly the rollover edge cases where they’re most likely — and most expensive to fix downstream.