summaryrefslogtreecommitdiff
path: root/manual/xml/synchronization_concepts.xml
blob: 0947baf3405b86fcdc7c97bb596ec52224ff946c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<?xml version="1.0" standalone="no"?>

<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [

]>

<section id="sn-synchronization_concepts">
  <title>Synchronization Concepts</title>
  <para>
    As soon as you start handling audio on more than one device, it is
    important to understand and to think about
    <emphasis>synchronization</emphasis> : how to get the devices to have
    the same sense of time and speed.
  </para>

  <para>
    However, there are two fundamentally different kinds of synchronization:
  </para>

  <section id="sample-clock">
    <title>Sample Clock</title>
    <para>
      As outlined in the <emphasis>introductory concepts</emphasis> section,
      digital audio is created by taking a "sample" of an analog signal
      level on a periodic basis, say 48000 times per seconds (the "sample
      rate"). A dedicated clock (the "sample clock") ((actually, an
      oscillating crystal, but technology people call such things clocks))
      "ticks" at that rate, and every time it does, a new sample is
      measured. The way the clock is used to convert digital audio back to
      an analog signal (i.e. to be sent to some loudspeakers) is more
      complex, but the clock is still an absolutely fundamental part of the
      mechanism.
    </para>

    <para>
      Whenever you connect two digital audio devices together in order to
      move audio data from one to the other, you <emphasis>must ensure they
      share the same sample clock</emphasis> . Why is this necessary? The
      oscillating crystals used for the sample clock are generally very
      stable (they always tick at the same speed), but there are always
      minute differences in the speed that any two clocks tick at. When used
      by themselves, this makes no difference, but connect two digital audio
      devices together and these minute differences will eventually
      accumulate over time. Eventually, one of the devices will be trying to
      read a sample "in the middle" of the other device's tick, and the
      result is a small click or pop in the audio stream.
    </para>
  </section>

  <section id="timeline-sync">
    <title>Timeline Sync</title>
    <para>
      The concept of a timeline comes up over and over again when working
      with a digital audio workstation, and also with video editing systems.
      By "timeline" we mean nothing more than some way to define a "name"
      for the point where certain sounds (and/or visual images) occur. When
      you work in Ardour's editor window, the rulers near the top provide
      one or more timelines in different units. You can look at the editor
      window and say "this sound starts at 1 minute 32 seconds" or "this
      tracks fades out starting at bar 13 beat 22".
    </para>

    <para>
      But what happens when you want to share a timeline between two
      different devices? For example, you may want to run a hardware video
      editor in conjunction with ardour, and always have the visual and
      audio playback be at the same point "in time". How do they each know
      what "in time" means? How do they know where the other one is? A
      mechanism for answering these questions provides <emphasis>timeline
      synchronization</emphasis> .
    </para>

    <para>
      Timeline synchronization is entirely different from sample clock
      synchronization. Two devices can share a sample clock, but never use
      timeline information. Two devices can be sharing timeline information,
      but run on different sample clocks - they might not even have sample
      clocks if they are analog devices.
    </para>
  </section>

  <section id="word-clock">
    <title>Word Clock</title>
    <para>
      "Word Clock" is the name given to a signal used to distribute the
      "ticks" of a sample clock to multiple devices. Most digital audio
      devices that are intended for professional use have a word clock
      connector and a way to tell the device to use either its internal
      sample clock (for standalone use), or to use the word clock signal as
      the sample clock. Because of the electrical characteristics of the
      signal, it is very important that any length of cable used to
      distribute word clock is "terminated" with a 75 ohm resistor at both
      ends. Unfortunately, some devices include this terminator themselves,
      some contain a switchable resistor and some do not. Worse still, the
      user manuals for many devices do not provide any information on their
      termination configuration. It is often necessary to ask the
      manufacturer in cases where it is not made very obvious from marking
      near the word clock connectors on the device.
    </para>
  </section>

  <section id="timecode">
    <title>Timecode</title>
    <para>
      "Timecode" is a signal that contains positional or "timeline"
      information. There are several different kinds of timecode signal, but
      by far the most important is known as SMPTE. Its name is an acronym
      for the Society for Motion Picture T?? Engineering, and timecode is
      just one of the standards they defined, but its the most well known.
      Because of its origins in the film/video world, SMPTE is very centered
      on the time units that matter to film/video editors. The base unit is
      called a "frame" and corresponds to a single still image in a film or
      video. There are typically on the order of 20-30 frames per second, so
      the actual resolution of SMPTE timecode is not very good compared to
      audio-based units where there are tens of thousands of "frames" per
      second.
    </para>
  </section>

  <section id="SMPTE">
    <title>SMPTE</title>
    <para>
      SMPTE defines time using a combinations of hours, minutes, seconds,
      frames and subframes, combined with the frame rate. In a film/video
      environment, SMPTE is typically stored on the film/video media, and
      sent from the device used to play it. There are different ways of
      storing it on the media - you may come across terms like LTR and VTC -
      but the crucial idea to grasp is that the film/video has a timecode
      signal "stamped" into it, so that it is always possible to determine
      "what time it is" when any given image is visible.
    </para>

    <para>
      SMPTE timecode is sent from one system to another as an analog audio
      signal. You could listen to it if you wanted to, though it sounds like
      a generally screeching and unpleasant noise. What the SMPTE standard
      defines is a way to encode and decode the
      hrs:mins:secs:frames:subframes time into or from this audio signal.
    </para>
  </section>

  <section id="mtc">
    <title>MTC</title>
    <para>
      The other very common form of timecode is known as "MTC" (MIDI Time
      Code). However, MTC is actually nothing more than a different way to
      transmit SMPTE timecode. It uses the exact same units as SMPTE
      timecode, but rather than send the signal as audio MTC defines a
      transmission method that uses a MIDI cabable and a data protocol. MTC
      consumes a measurable, but small, percentage of the available
      bandwidth on a MIDI cable (on the order of 2-3%). Most of the time, it
      is wise to use a single cable for MTC and MMC (MIDI Machine Control)
      and not share it with "musical" MIDI data (the kind that an instrument
      would send while being played).
    </para>
  </section>

  <section id="jack-transport">
    <title>JACK Transport</title>
    <para>
      For Ardour and other programs that use <emphasis>JACK</emphasis>,
      there is another method of doing timeline synchronization that is not
      based on SMPTE or MTC.
    </para>
  </section>
<!--
	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" 
		href="Some_Subsection.xml" />
	-->
</section>