3 title: Timecode Generators and Slaves
8 Ardour supports three common timecode formats:
9 <abbr title="Linear/Longitudinal Time Code"><dfn>LTC</dfn></abbr>,
10 <abbr title="MIDI Time Code"><dfn>MTC</dfn></abbr>, and
11 <dfn>MIDI Clock</dfn>, as well as
12 <dfn>JACK-transport</dfn>, a JACK-specific timecode implementation.
15 Ardour can generate timecode and thus act as timecode <dfn>master</dfn>,
16 providing timecode information to other applications. Ardour can also be
17 <dfn>slaved</dfn> to some external source in which case the playhead
18 follows the incoming timecode.<br />
19 Combining the timecode slave and generator modes, Ardour can also
20 <dfn>translate</dfn> timecode. e.g create LTC timecode from incoming MTC.
24 <h2>Ardour Timecode Configuration</h2>
27 Each Ardour session has a specific timecode frames-per-second setting which
28 is configured in <kbd class="menu">session > properties >
29 timecode</kbd>. The selected timecode affects the timecoderuler in the main
30 window as well as the clock itself.
34 Note that some timecode formats do not support all of Ardour's available
35 fps settings. MTC is limited to 24, 25, 29.97 and 30 fps.
39 The video pull-up modes change the effective samplerate of Ardour to allow
40 for changing a film soundtrack from one frame rate to another. The concept is
41 beyond the scope of this manual, but Wikipedia's entry on
42 <a href="http://en.wikipedia.org/wiki/Telecine">Telecine</a>
46 <h2>Ardour Timecode Generator Configuration</h2>
49 This is pretty straightforward: simply turn it on. The MTC and MIDI-Clock
50 generator do not have any options. The LTC generator has a configurable
51 output level. JACK-transport cannot be <em>generated</em>. Jack itself is
52 always synced to its own cycle and cannot do varispeed — it will
53 always be synced to a hardware clock or another JACK master.
57 The relevant settings for timecode generator can be found in
58 <kbd class="menu">Edit > Preferences > MIDI Preferences</kbd> (for MTC,
60 <kbd class="menu">Edit > Preferences > Transport Preferences</kbd>
65 The timecode is sent to jack-ports <code>ardour:MTC out</code>,
66 <code>ardour:MIDI clock out</code> and <code>ardour:LTC-out</code>. Multiple
67 generators can be active simultaneously.
71 Note that, as of Jan 2014, only the LTC generator supports latency
72 compensation. This is due to the fact the Ardour MIDI ports are not
73 yet latency compensated.
77 In <kbd class="menu">Session > Properties</kbd>, it is possible to
78 define an offset between Ardour's internal time and the timecode sent.
79 Currently only the LTC generator honors this offset.
83 Both LTC and MTC are limited to 30 fps. Using frame rates larger
84 than that will disable the generator. In both cases also only 24, 25,
85 29.97df (drop-frame) and 30 fps are well defined by specifications (such as
86 SMPTE-12M, EU and the MIDI standard).
89 <h3>MTC Generator</h3>
91 The <dfn>MTC generator</dfn> has no options. Ardour sends full MTC
92 frames whenever the transport is relocated or changes state (start/stop).
93 MTC <dfn>quarter frames</dfn> are sent when the transport is rolling and
94 the transport speed is within 93% and 107%.
97 <h3>LTC Generator</h3>
99 The level of the <dfn>LTC generator</dfn> output signal can be configured
100 in in the <kbd class="menu">Preferences > Transport</kbd> dialog. By
101 default it is set to -18 dBFS, which corresponds to 0dBu in an EBU
105 The LTC generator has an additional option to keep sending timecode even
106 when the transport is stopped. This mode is intended to drive analog tape
107 machines which unspool the tape if no LTC timecode is received.
110 LTC is send regardless of Ardour's transport speed. It is accurately
111 generated even for very slow speeds (<5%) and only limited by the
112 soundcard's sampling-rate and filter (see
114 href="http://en.wikipedia.org/wiki/Gibbs_phenomenon#Signal_processing_explanation">Gibbs phenomenon</a>)
119 <h2>Ardour Slave Configuration</h2>
121 The timecode source can be switched with the button just right of
122 Ardour's main clock. By default it is set to <kbd
123 class="menu">Internal</kbd> in which case Ardour will ignore any external
124 timecode. The button allows to toggle between Internal and the configured
125 timecode source which is chosen in <kbd class="menu">Edit > Preferences
126 > Transport</kbd>.
129 When Ardour is <dfn>chasing</dfn> (synchronizing to) an external timecode
130 source, the following cases need to be distinguished:
133 <li>the timecode source shares the clock</li>
134 <li>the timecode source is independent (no wordclock sync)</li>
138 <li>the timecode source uses the same FPS setting as Ardour</li>
139 <li>the timecode source runs at different frames-per-second</li>
142 In both cases the first option is preferred: clock sync + same FPS setting.
145 <h3>Frames-per-second</h3>
147 If the frames-per-second do not match, Ardour can either re-calculate
148 and map the frames, or the configured FPS (<kbd class="menu">Session >
149 Properties</kbd>) can be changed automatically while the slave is active.
150 The behavior is configured with the checkbox <kbd class="option">Edit
151 > Preferences > Transport > Match session video frame rate to
152 external timecode</kbd>.
155 When enabled, the session video frame rate will be changed to match that
156 of the selected external timecode source. When disabled, the session video
157 frame rate will not be changed to match that of the selected external
158 timecode source. Instead the frame rate indication in the main clock will
159 flash red, and Ardour will convert between the external timecode standard
160 and the session standard.
163 29.97 drop-frame timecode is another corner case. While the SMPTE 12M-1999
164 specifies 29.97df as 30000/1001 frames per second, not all hardware devices
165 follow that standard. The checkbox
166 <kbd class="option">Lock to 29.9700 fps instead of 30000/1001</kbd> allows
167 to use a compatibility mode for those devices.<br />
168 When enabled, the external timecode source is assumed to use 29.970000 fps
169 instead of 30000/1001. SMPTE 12M-1999 specifies 29.97df as 30000/1001. The
170 <abbr title="specification">spec</abbr> further mentions that drop-frame
171 timecode has an accumulated error of -86 ms over a 24-hour period.
172 Drop-frame timecode would compensate exactly for a NTSC color frame rate
173 of 30 * 0.9990 (ie 29.970000). That is <em>not</em> the actual rate. However,
174 some vendors use that rate — despite it being against the specs
175 — because the variant of using exactly 29.97 fps yields zero timecode
179 <h3>Clock Sync Lock</h3>
182 <a href="http://manual.ardour.org/synchronization/on-clock-and-time/">On Clock and Time</a>
183 chapter, timecode and clock are independent. If the external timecode
184 source is not in sample-sync with the audio hardware (and JACK), Ardour
185 needs to run at varispeed to adjust for the discrepancy.
188 The checkbox <kbd class="option">External timecode is sync locked</kbd>
189 allows to select the behavior according to your setup. When enabled, it
190 indicates that the selected external timecode source shares sync (Black
191 & Burst, Wordclock, etc) with the audio interface.
194 In other words: if enabled, Ardour will only perform initial
195 synchronization and keep playing at speed 1.0 instead of vari-speed
196 adjusting to compensate for drift.
199 Note that vari-speed is unavailable when recording in Ardour, and all
200 tracking happens at speed 1.0. So if you want to record in sync with
201 external timecode it must be sample-locked or it will drift over time.
206 <dfn>MIDI Clock</dfn> is not a timecode format but tempo-based time. The
207 absolute reference point is expressed as beats-per-minute and Bar, Beat
208 and Tick. There is no concept of sample-locking for MIDI clock signals.
209 Ardour will vari-speed if necessary to chase the incoming signal.
212 Note that the MIDI Clock source must be connected to the
213 <code>ardour:MIDI clock in</code> port.
216 <h3>LTC - Linear Timecode</h3>
218 The <dfn>LTC</dfn> slave decodes an incoming LTC signal on a JACK audio
219 port. It will auto-detect the frame rate and start locking to the signal
220 once two consecutive LTC frames have been received.
223 The incoming timecode signal needs to arrive at the
224 <code>ardour:LTC-in</code> port. Port-connections are restored for each
225 session and the preference dialog offers an option to select it for all
229 Ardour's transport is aligned to LTC-frame start/end positions according
230 to the SMPTE 12M-1999 specification, which means that the first bit of an
231 LTC-Frame is aligned to different Lines of a Video-Frame, depending on the
232 TV standard used. Only for Film (24fps) does the LTC-Frame directly match
233 the video Frame boundaries.
236 <img src="/ardour/manual/html/diagrams/ltc-transport-alignment.png" title="LTC frame alignment" alt="LTC frame alignment"/>
237 <p><em>Figure: LTC frame alignment for the 525/60 TV standard</em></p>
240 Ardour supports vari-speed and backwards playback but will only follow
241 speed changes if the <kbd class="optoff">sync locked</kbd> option is
245 While Ardour is chasing LTC, the main transport clock will display the
246 received Timecode as well as the delta between the incoming signal and
247 Ardour's transport position.
250 A global offset between incoming timecode and Ardour's transport can be
251 configured in <kbd class="menu">Session > Properties</kbd>.
254 The user-bits in the received LTC frame are ignored.
257 <h3>MTC - MIDI Timecode</h3>
259 Ardour's MTC slave parses <dfn>full timecode messages</dfn> as well as
260 MTC <dfn>quarter-frame messages</dfn> arriving on the
261 <code>ardour:MTC in</code> port. The transport will only start rolling
262 once a complete sequence of 8 quarter frames has been received.
265 Ardour supports vari-speed and backwards playback but will only follow
266 MTC speed changes if the <kbd class="optoff">sync locked</kbd> option
270 When Ardour is chasing MTC, the main transport clock will display the
271 received Timecode as well as the delta between the incoming signal and
272 Ardour's transport position.
275 <h3>JACK Transport</h3>
277 When slaved to jack, Ardour's transport will be identical to
278 JACK-transport. As opposed to other slaves, Ardour can be used to control
279 the JACK transport states (stopped/rolling). No port connections need to
280 be made for jack-transport to work.
283 JACK-transport does not support vari-speed, nor offsets. Ardour does not
284 chase the timecode but is always in perfect sample-sync with it.
287 JACK-transport also includes temp-based-time information in Bar:Beats:Ticks
288 and beats-per-minute. However, only one JACK application can provide this
289 information at a given time. The checkbox
290 <kbd class="option">Session > Properties > JACK Time Master</kbd>
291 configures Ardour to act as translator from timecode to BBT information.