Timecode Converter

Timecode Converter

Documentation & User Manual

Introduction

Timecode Converter is a free Mac app that converts timecode between LTC (Linear Timecode, as audio) and MTC (MIDI Timecode). It reads LTC from an audio input or MTC from a MIDI input and sends it on as MTC, LTC or both, or it generates timecode itself. It's made for shows where lighting, video, playback and sound each need timecode in their own format.

System requirements
  • macOS 13 Ventura or later (Apple Silicon & Intel)
  • For LTC: an audio input and/or output (built-in, USB, Thunderbolt, Dante or AVB)
  • For MTC: a MIDI interface, a network MIDI session, or software on the same Mac

Download & Installation

Download the latest version from the product page. The app is signed with a Developer ID and notarized by Apple, also for Macs without internet.

  1. Open the downloaded .dmg file.
  2. Drag Timecode Converter.app to your Applications folder.
  3. Open it and choose a source at the top: LTC in, MTC in or Generator.

The first time you use LTC in, macOS asks for microphone access. The app needs it to read the audio input; it only decodes the timecode and records nothing. All settings are remembered between launches.

LTC In

Choose the Audio input and the Channel the LTC is on. The Level meter shows the signal; anything from a quiet line level to a hot signal is fine. The app reads LTC between 95 and 105 % of normal speed and also backwards (the status line then shows reverse), and shows the speed when it isn't 100 %.

Damaged frames are not passed on: a frame that doesn't fit the running time is ignored unless the next frame confirms it, so a click on the line doesn't make your outputs jump.

MTC In

Choose a MIDI input, or leave it on All inputs. MTC from software on the same Mac can be sent to the virtual port Timecode Converter, which shows up in the list as Virtual port. The app follows quarter-frame messages while timecode runs, and full-frame messages when the sender locates.

Generator

The generator makes LTC and MTC itself, for testing a rig or for running a show from the Mac.

  • Frame rate: any of the six rates.
  • Start time: type a time such as 01:00:00:00 and press Locate (or Return).
  • Play / Stop: the button, or the space bar.
  • Time of day: runs on the Mac's clock instead of from a start time, without play and stop.

Outputs

Both outputs can run at the same time, from any source.

  • MTC out: choose a MIDI output, or the virtual port Timecode Converter for software on the same Mac. Send early sends MTC up to 100 ms earlier (or later, with a negative value) to make up for delay in MIDI interfaces or the receiver.
  • LTC out: choose an audio output and a single output or a stereo pair, and set the Level from −30 to 0 dBFS (−6 dBFS by default). Lower it if the receiver distorts or reads errors; raise it if it doesn't see the signal.
  • Offset: adds or subtracts up to 100 frames on both outputs, for example to line up a device that runs a frame behind.
Don't send back to the source
Converting MTC in to MTC out on the same port, or LTC out to the input it reads, makes a loop. Use different ports for input and output.

Frame Rates

With Frame rate on Auto, the app reads the rate from the input and shows it in the menu, for example Auto (25). Some rates carry the same frame numbers and differ only in speed: 24 and 23.976, and 30 and 29.97 non-drop. Auto tells those apart by measuring the speed. Choose a rate yourself to fix it.

RateUsed forSent as MTC
23.976Film and video at NTSC speedType 24, at 23.976 speed
24FilmType 24
25PAL video, most of EuropeType 25
29.97 DFNTSC video, drop-frameType 29.97 drop-frame
29.97 NDNTSC video, non-dropType 30, at 29.97 speed
30Audio and music productionType 30

MTC has no types for 23.976 and 29.97 non-drop, so they go out as 24 and 30, like on other converters. The status line always shows the real rate and the measured frames per second.

Status & Freewheel

StatusMeaning
NO TIMECODENothing received yet on the chosen input.
ACQUIRING (yellow)Timecode arrives but hasn't run long enough to trust yet, after a start or a jump. It takes a fraction of a second.
LOCKED (green)Timecode runs and the outputs follow it.
FREEWHEEL (orange)The input stopped or dropped out; the outputs keep running on their own.
STOPPEDThe freewheel time ran out, or the source stopped. The last timecode stays on screen.

Freewheel sets how long the outputs keep running after the input drops out: off, 0.5, 1, 2, 5 or 10 seconds. Longer rides out cable trouble; shorter stops the outputs sooner when the source really stops. When timecode comes back, the app relocks and follows it again.

Details & Log

The Details section shows how healthy the incoming timecode is:

  • User bits (LTC) and From (MTC, the input it arrives on).
  • Frames read or Sequences read, and Bit errors for LTC.
  • Timing jitter: how much the frames wander from a steady clock, in milliseconds.
  • Jumps, Dropouts and Damaged frames ignored.

The Log lists locks, jumps, dropouts and stops with the time they happened, so you can see afterwards what went on during a show.

Big Display

Click the button at the right of the status line, or press ⇧⌘D, to open the timecode in its own window. Drag it to any size, or make it full screen on a second monitor. The gear in the window styles it:

  • Presets: Amber, Red or Green LED, White on black, Broadcast, and Black on white.
  • Style: LED segments (with faint unlit segments and a slant, if you like) or a typeface, with weight and colours for the digits and the background.
  • Show frames, Show status and rate, and Colour by state: orange while freewheeling, yellow while acquiring, dimmed when stopped.
  • Always on top, to keep it above other windows.

Troubleshooting

LTC in stays on “NO TIMECODE”

Check the level meter. No level: check the input and channel, and in System Settings → Privacy & Security → Microphone that Timecode Converter is allowed. Level but no lock: the signal may be heavily distorted or not LTC; check the Bit errors count.

The receiver doesn't see MTC

Check that MTC out is on and the right MIDI output is chosen. Many devices need MTC chasing switched on, and the matching frame rate set. Software on the same Mac should listen to the port Timecode Converter.

The receiver reads the wrong rate

Set the frame rate yourself instead of Auto, and check the table under Frame Rates: 23.976 arrives as MTC type 24 and 29.97 non-drop as type 30.

The receiver is a frame or two off

Use Offset for whole frames, and Send early for the MTC timing in milliseconds.

The outputs keep running after the source stopped

That's freewheel. Lower the Freewheel time, or turn it off.