]> Shamusworld >> Repos - ardour-manual-diverged/blob - _manual/22_synchronization/03_timecode-generators-and-slaves.html
e68a22a2541bee21261b51f7e8f57eb1ba6290ee
[ardour-manual-diverged] / _manual / 22_synchronization / 03_timecode-generators-and-slaves.html
1 ---
2 layout: default
3 title: Timecode Generators and Slaves
4 ---
5
6
7 <p>
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.
13 </p>
14 <p>
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.
21 </p>
22
23
24 <h2>Ardour Timecode Configuration</h2>
25
26 <p>
27   Each Ardour session has a specific timecode frames-per-second setting which 
28   is configured in <kbd class="menu">session &gt; properties &gt;
29   timecode</kbd>. The selected timecode affects the timecoderuler in the main 
30   window as well as the clock itself.
31 </p>
32
33 <p>
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.
36 </p>
37
38 <p>
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> 
43   may get you started.
44 </p>
45
46 <h2>Ardour Timecode Generator Configuration</h2>
47
48 <p>
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 &mdash; it will
53   always be synced to a hardware clock or another JACK master.
54 </p>
55
56 <p>
57   The relevant settings for timecode generator can be found in 
58   <kbd class="menu">Edit &gt; Preferences &gt; MIDI Preferences</kbd> (for MTC,
59   MC) and
60   <kbd class="menu">Edit &gt; Preferences &gt; Transport Preferences</kbd>
61   (for LTC).
62 </p>
63
64 <p>
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.
68 </p>
69
70 <p class="note">
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.
74 </p>
75
76 <p>
77   In <kbd class="menu">Session &gt; 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.
80 </p>
81
82 <p>
83   Both LTC and MTC are limited to 30&nbsp;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&nbsp;fps are well defined by specifications (such as 
86   SMPTE-12M, EU and the MIDI standard).
87 </p>
88
89 <h3>MTC Generator</h3>
90 <p>
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%.
95 </p>
96
97 <h3>LTC Generator</h3>
98 <p>
99   The level of the <dfn>LTC generator</dfn> output signal can be configured 
100   in in the <kbd class="menu">Preferences &gt; Transport</kbd> dialog. By 
101   default it is set to -18&nbsp;dBFS, which corresponds to 0dBu in an EBU 
102   calibrated system.
103 </p>
104 <p>
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.
108 </p>
109 <p>
110   LTC is send regardless of Ardour's transport speed. It is accurately 
111   generated even for very slow speeds (&lt;5%) and only limited by the 
112   soundcard's sampling-rate and filter (see 
113   <a
114   href="http://en.wikipedia.org/wiki/Gibbs_phenomenon#Signal_processing_explanation">Gibbs phenomenon</a>) 
115   for high speeds.
116 </p>
117
118
119 <h2>Ardour Slave Configuration</h2>
120 <p> 
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 &gt; Preferences 
126   &gt; Transport</kbd>.
127 </p>
128 <p>
129   When Ardour is <dfn>chasing</dfn> (synchronizing to) an external timecode 
130   source, the following cases need to be distinguished:
131 </p>
132 <ol>
133   <li>the timecode source shares the clock</li>
134   <li>the timecode source is independent (no wordclock sync)</li>
135 </ol>
136 <p>and</p>
137 <ol>
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>
140 </ol>
141 <p>
142   In both cases the first option is preferred: clock sync + same FPS setting.
143 </p>
144
145 <h3>Frames-per-second</h3>
146 <p>
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 &gt;
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   &gt; Preferences &gt; Transport &gt; Match session video frame rate to 
152   external timecode</kbd>.
153 </p>
154 <p>
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.
161 </p>
162 <p class="warning">
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&nbsp;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 &mdash;  despite it being against the specs
175   &mdash;  because the variant of using exactly 29.97 fps yields zero timecode 
176   drift.
177 </p>
178
179 <h3>Clock Sync Lock</h3>
180 <p>
181   As described in the 
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.
186 </p>
187 <p>
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   &amp; Burst, Wordclock, etc) with the audio interface.
192 </p>
193 <p>
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.
197 </p>
198 <p class="note">
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.
202 </p>
203
204 <h3>MIDI Clock</h3>
205 <p>
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.
210 </p>
211 <p>
212   Note that the MIDI Clock source must be connected to the 
213   <code>ardour:MIDI clock in</code> port.
214 </p>
215
216 <h3>LTC - Linear Timecode</h3>
217 <p>
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.
221 </p>
222 <p>
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 
226   sessions.
227 </p>
228 <p>
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.
234 </p>
235
236 <img src="/images/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>
238
239 <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 
242   disabled.
243 </p>
244 <p>
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.
248 </p>
249 <p>
250   A global offset between incoming timecode and Ardour's transport can be 
251   configured in <kbd class="menu">Session &gt; Properties</kbd>.
252 </p>
253 <p>
254   The user-bits in the received LTC frame are ignored.
255 </p>
256
257 <h3>MTC - MIDI Timecode</h3>
258 <p>
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.
263 </p>
264 <p>
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 
267   is disabled.
268 </p>
269 <p>
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.
273 </p>
274
275 <h3>JACK Transport</h3>
276 <p>
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.
281 </p>
282 <p>
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.
285 </p>
286 <p>
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 &gt; Properties &gt; JACK Time Master</kbd>
291   configures Ardour to act as translator from timecode to BBT information.
292 </p>
293