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.
- 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.
- Open the downloaded
.dmgfile. - Drag Timecode Converter.app to your Applications folder.
- 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:00and 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.
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.
| Rate | Used for | Sent as MTC |
|---|---|---|
| 23.976 | Film and video at NTSC speed | Type 24, at 23.976 speed |
| 24 | Film | Type 24 |
| 25 | PAL video, most of Europe | Type 25 |
| 29.97 DF | NTSC video, drop-frame | Type 29.97 drop-frame |
| 29.97 ND | NTSC video, non-drop | Type 30, at 29.97 speed |
| 30 | Audio and music production | Type 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
| Status | Meaning |
|---|---|
| NO TIMECODE | Nothing 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. |
| STOPPED | The 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.