MatN review and Andrea fixes
[goodguy/cin-manual-latex.git] / parts / Advanced.tex
1 \chapter{Advanced Editing}%
2 \label{cha:advanced_editing}
3
4 \section{Proxy}%
5 \label{sec:proxy}
6
7 Working with videos that have large image geometry can greatly impede editing.  Instead you can substitute \textit{proxies} which will create smaller video image files from the original file that can then be edited more quickly.   When you are done working on this smaller scale, you will need to bring up the Proxy settings menu again, and change the Scale factor back to the Original size so that all of your edits/work take affect on that original higher quality video on the timeline.  
8
9 To use this feature, select \texttt{Settings $\rightarrow$ Proxy settings} and change the Scale factor from Original size to your downsized choice.  You can choose ffmpeg as the File Format and a choice of various codecs associated with that.  A good choice is the default of mpeg which can usually be quite fast.  In addition, to modify values for that codec, click on the wrench icon.  When you have completed your choices, just click OK, and then the video tracks will be rendered. This may take some time, but previous proxy renders will be reused.  
10 The proxy videos will be added to your assets in a separate Proxy folder, and the video track edits will use the proxies.
11 The assets in both the Media folder and Proxy folder will look proxied when dragged to the Viewer although the scale may be different.
12 Proxy downsizing renders all loaded tracks, but only work on the $1^{st}$ video layer of any multi-layer media.  Rendered proxy media is saved in the same directory as the original media.
13 However, if you proxy your session, the clips do not get proxied to the Proxy folder, but if you Drag and Drop the clip from the Clip folder to the Viewer or the Timeline, you will see that it too is proxied.  
14 As usual, you can delete proxy files from the project or disk in the Resources window if you no longer want to retain them.
15 And you can save your project either as proxied or not.
16
17 Because Proxy works on the original media in all circumstances, when you resize the
18 media in the Resources window, it does not actually resize the media but puts it in
19 a "buffer" in that format. This might lead to some confusion for the user who
20 expects this resizing to be maintained when disabling Proxy for that media. However,
21 that does not happen because the resize is only in a buffer and not in the original
22 media. This result is different than in the case of media "edits", like cuts or
23 adding plugins because this information is not in a buffer but rather part of the
24 copy "Editing Decision List" (EDL).
25
26 You can also nest clips while in a proxied state, but you can not drag the proxied nested clips
27 to the viewer or the timeline.
28 If you create proxies for Nested clips they will be saved in \texttt{\$HOME/Videos} unless you modify that in
29 \texttt{Settings $\rightarrow$ Preferences, Interface} tab, \textit{Nested Proxy Path}. 
30
31 There are two ways that the proxy files can be used, with or without input scaling. When the proxy is done without rescaling, the Mask, Camera and Projector automations are re-scaled accordingly. In this situation, the entire project will be re-sized so that the session is in the resized geometry.  Not all plugins are useful when the project is rescaled, because the keyframe data must be in the original geometry.  In this case, you can use the rescaler, by enabling \textit{Use scaler (FFMPEG only)}. This has the added advantage that the project size does not change and the proxy media is down-scaled as usual and up-scaled on read-in, which means the project editing is done in full scale.   Since decoding is done on smaller video, there is a time savings, but all rendering is done full scale.  The main reason for using \textit{scaler} is that it does not change the image coordinate data, so that automation and plugin parameters will be in the original project geometry.   This is not as fast as the first option, but is a performance gain, and may be needed if you are using plugins that need coordinate data such as the Title plugin.  As noted, the scaler only works on ffmpeg video formats.
32
33 In the upper right hand corner of the main window, there is a toggle button to easily switch back and forth when you have a proxied file on the timeline.  The icon is to the left of the FF icon.  It will have the letter “P” as the icon for Proxy or if \textit{Using Scaler}, the letter “S”. \quad \includegraphics[height=\baselineskip]{proxy-01.png} \quad This quick switch is especially useful when editing and you need to see a better image temporarily.
34
35 \begin{figure}[htpb]
36         \centering
37         \includegraphics[width=0.5\linewidth]{proxy-02.png}
38         \caption{Proxy settings dialog}
39         \label{fig:proxy-02}
40 \end{figure}
41
42 Screencast in figure~\ref{fig:proxy-02} shows the Use scaler checked so you can still use plugins and the original project size is kept.  The Scale factor pull-down gives you available size options.  Note the new media dimensions shown (partially covered).  If the size is an odd number, 1 is added to make the dimensions both even numbers.
43
44 In the case of the scaler checkbox, it will retain that setting for ease of use.
45
46 There is also a convenient \textit{Beep on done volume} dial included so that you can work on other tasks until there is an audible notify of completion.  The default volume is set to 0 for no audible notify.
47
48 A good choice for proxy settings with 1080p source video is:
49
50 \begin{lstlisting}[numbers=none]
51 Scale Factor:   1/4
52 Use Scaler:     unchecked
53 File Format:    FFMPEG - mpeg
54 Video Preset:
55 Compression:    mpeg.mpeg
56 Bitrate:        1800000
57 Quality:        -1
58 Pixels:         yuv420p
59 \end{lstlisting}
60
61 If you get errors for some videos, such as those with strange variable bit rate or some types of files made on a smartphone, a usually reliable alternative is to change the following parameters:
62
63 \begin{lstlisting}[numbers=none]
64 File Format:    FFMPEG - mov
65 Video Preset:
66 Compression:    mov.mov
67 \end{lstlisting}
68
69 Or if you want small files with high image quality, a File Format of m2ts is optimal.  For example a 1 GB file can be reduced to 50 MB with scale $\frac{1}{2}$. 
70
71 Checking the \textit{Auto proxy/scale media loads} results in any additional media loads to be automatically proxy scaled.  However, single frame media such as PNG or JPEG \textit{stills}, can not be scaled to \textit{stream} media.  If this type of media exists, you should \textit{use scaler}.
72
73 If you get error messages when creating proxies, check the Video wrench settings.  These usually default to values that are expected to work correctly for the \textit{File Format} and codec you selected but they can be changed and may result in errors.  If you get an error message of \textit{check\_frame\_rate failed} followed by \textit{Error making proxy} in the popup Errors window, do just that and check the Frame rate value by going to the Resources window, Media folder, and use the right mouse button for the Info option for that specific media in question.  You can change the frame rate in this window to a more codec acceptable value.  Different codecs may have different legal values.
74
75 More specific information on which plugins need to use scaler is provided here next.  If the keyframe data uses coordinate data that is absolute, then the scaler should be used.  If the data is normalized (like always $0-100\%$) then the proxy can be done without the scaler.  The session geometry format, shown in \texttt{Settings $\rightarrow$ Format} as $width \times height$, is changed if the scaler is not used to cause all of the data to be in the reduced format.  If this affects the plugin operation, then scaler should be used.  Examples of plugins that need the scaler are: Title, AutoScale, Scale, ScaleRatio, and Translate.  Most others are safe to use without scaling.
76
77 \section{Transcode}%
78 \label{sec:transcode}
79
80 Transcode, an option under the \textit{Settings} pulldown right next to the Proxy settings option, is a type of full resolution \textbf{1:1 Proxy}.
81 The process of transcoding works directly from the resource; it is independent of the timeline. 
82 All of the loaded asset media will be converted, that is, rendered in the selected format and loaded onto the timeline. 
83 Menu choices besides the usual File Format and File Type include: \textit{Tag suffix} (to add to media filename), \textit{Remove originals from project}, \textit{Into Nested Proxy directory} (an option to have the file saved here instead of the location of the original media), and \textit{Beep on done} volume.
84
85 The settings of the project have an effect, for example the dimensions are taken into account. The resulting files are also larger than if they were created directly with ffmpeg.
86 Transcode works for videos with or without audio and even single frame files, like png's.
87 If you have a video file that also contains audio, and you convert only the video, the original audio will stay on the timeline if do not check \textit{Remove originals from project}. Or vice versa if audio converted and not video.
88 Multiple stream media will only transcode the first stream (this would be like the TV channel recordings in the United States).
89 You will get an error message if you already have a transcoded file in the selected format with the same suffix name and try to transcode it again with a different selection made -- you will have to delete that file first. An example would be
90 an already converted file that has both video and audio and now you request video only. 
91
92 The BIGGEST gain from using this is if you have media that is not \textit{seekable}, that is, you can play it from the beginning but can not move to another spot and have the audio or video play correctly. A video file with no keyframes makes seeking next to impossible, but then a Transcode generally adds these keyframes. 
93
94
95 \section{OpenEDL}%
96 \label{sec:openedl}
97
98 To edit EDL that is included with your project as Clips, Nested
99 Clips, Referenced File, or Xml you can use the option \textit{Open
100         EDL} in the Resources window for the highlighted media.  Then with
101 a simple button click you can return to your main timeline project.
102 For example, if you have a nested clip that originally had several
103 plugins added to it before it was nested, you can edit those plugin
104 parameter values. Previously to make any changes to these types of
105 EDL you had to remake the whole clip from scratch.
106
107 Here is how this works. In the Clip or Media folder or on a timeline
108 EDL edit, the option \textit{Open EDL} for the highlighted clip or
109 nested clip is available so that when you choose this option, that
110 EDL will be brought up on the timeline superseding the current EDL
111 that exists on the timeline.  Now, once the clip is open on the
112 timeline, you can edit it however you want. The previous timeline
113 EDL is \textit{pushed onto a stack} so it can be recalled by
114 \textit{popping the stack} with a click of the left mouse button in
115 the upper right hand corner of the timeline to the left of the
116 \textit{shell cmds} icon.  Initially this button displays a 0 to
117 indicate your initial timeline/project.  Then this button will read
118 1 if you choose \textit{Open EDL} and then back to 0 and your
119 original timeline with the left mouse click.  You can go several
120 levels deep so instead of 1, it could be 2, 3, $\dots$ but this
121 requires some thought to avoid potential confusion.
122
123 An example of a typical set of steps to follow is:
124 \begin{enumerate}
125         \item Load your media using insertion strategy of \textit{Replace
126                 current project}.  There will be number 0 in the upper right hand corner
127         of the main menu with the tooltip of \textit{Close EDL}.
128         \item Highlight a selection on the timeline and press the
129         \textit{To clip} icon and click the green checkmark OK.
130         \item In the Resources window, open the Clip folder and you will
131         see that Clip 1 is present.
132         \item Highlight Clip1 and right mouse the item to bring up
133         available options and select \textit{Open EDL}.
134         \item Now you will see the timeline change from the original
135         media to just the clip content and the number in the upper right hand
136         corner will change from 0 to 1.
137         \item Add a visible effect, like AgingTV to the timeline.
138         \item Click on the number 1 in the main menu bar to see the timeline
139         restored to the original media.
140         \item Drag the clip from the Resources Clip folder to the
141         timeline and you will see the AgingTV effect.
142 \end{enumerate}
143
144 You can follow the same steps as above by first using the option
145 \textit{Nest to media} in the Clip folder which nests the clip and
146 moves it out of the Clip folder to the Media folder.  Then use
147 \textit{Open EDL} on the Nested EDL in the media folder.  When you
148 Open EDL and edit the changes, those changes will take affect on any
149 and all occurrences of that nested clip on the current and/or
150 original timeline. The option to unnest that clip and put that back
151 into the Clip folder is the option \textit{EDL to clip}.  The nested
152 clip is still in the Media folder.  It will now have a name of the
153 next available Clip number but the comment contains the previous name so
154 you can tell where it came from.
155
156 Instead of using the number on the main menu to close the current
157 EDL, both the Media and Clip folders have \textit{Close EDL} options
158 with the left mouse button. Clicking on the number button is quick and
159 easy but for infrequent usage it is not obvious, whereas if you use
160 \textit{Open EDL} you see \textit{Close EDL} right below that and so
161 it is very obvious.  In addition in the case of where you have
162 opened a EDL, and you no longer see that clip in the folder, the
163 right mouse button where no media is highlighted will also display
164 the Close EDL option.
165
166 %\pagebreak
167 \begin{figure}[h]
168         \centering
169         \includegraphics[width=1\linewidth]{editing-img001.png}
170         \caption{Once you have an Open EDL, the easiest way to close it.}
171         \label{fig:open_edl}
172 \end{figure}
173 \relax
174
175 In addition to the \textit{Open EDL} option in the Resources menu,
176 this option is available on the timeline when the cursor is on an
177 EDL-type edit. To get to this option, click on the middle mouse
178 button on that edit.  If it is not EDL, the option will not be
179 shown.  In summary:
180
181 \begin{center}
182         \begin{tabular}{ll}
183                 \toprule
184                 Media folder of Resources window & Open EDL for Nested or Referenced EDLs\\
185                 Clip folder of Resources window & Open EDL for clips\\
186                 Track timeline & Open EDL for Nested or Referenced EDLs\\
187                 \bottomrule
188         \end{tabular}
189 \end{center}
190
191 An aside -- when nesting and unnesting clips to take advantage of
192 this feature, names of the media can lead to some confusion.  For
193 example, if you nest a clip, the new name in the Media folder is the
194 word \textit{Nested} followed by an underscore with the date and
195 timestamp, another underscore, and then the clip name.  Then when
196 you unnest this Media folder clip via the \textit{EDL to clip}
197 option, the name will be changed in the Clip folder to the next
198 available Clip number.  However the comment field will reflect the
199 nested clip name from which it was derived.  To avoid confusion you
200 can easily change the name for these clips in either the Clip or
201 Media folder because they are not real files at this point. To do
202 so, highlight the clip name in Resources, click on Info and type in
203 a new name.
204
205 For additional safety, the \textit{Open EDL} feature includes
206 additional backup capabilities. Automatically \CGG{} saves a backup
207 when certain changes are made or you can always use the shortcut `b'
208 to do one yourself, although keep in mind it will be overwritten
209 whenever \CGG{} wants to do another backup.  Now there is a shortcut
210 for the backup shortcut `b' so you can keep your hand on the mouse
211 instead of the keyboard.  Just click on the number button in the upper right
212 hand corner of the main window.  If number is at 0, it backs up to
213 backup.xml, if at 1, it backs up to \texttt{backup1.xml} and so on
214 \dots up to \texttt{backup9.xml}.
215
216 When \textit{Open EDL} is invoked, the current EDL and current undo
217 stack are both \textit{pushed}, and the active session EDL is
218 replaced with the target clip/nested edl.  A new undo stack is
219 created, and the active \texttt{backup.xml} file name is decorated
220 with the stack level.  So, \texttt{backup.xml} is
221 \texttt{backup1.xml} when your edits are at stack level 1,
222 \texttt{back\-up2\-.xml} at stack level 2, and so on.  This means
223 that if you \textit{load backup} at stack level 1, the session will
224 reload from history at stack level 1, not the main session.
225
226 See a real-world workflow at appendix \nameref{sec:workflow_openedl_nested_clips}
227
228 \section{File by Reference}%
229 \label{sec:file_by_reference}
230
231 It is sometimes handy to have EDL assets not as a copy, but as a
232 reference that is automatically updated into your project.  Suppose
233 you have several short videos that at the end have the same credits
234 which include the current year such as 2019.  But now it is 2020 and
235 all of the videos would have to be individually updated with the new
236 date.  By including a \textit{Referenced File} as the EDL file type
237 when you create each of the videos, you can just change the one
238 credits xml file and the next time you load one of the videos and
239 render it, it will now automatically have the updated information.
240
241 The purpose of this feature is to be able to rework a smaller
242 section of a global master project at any time, which can be done by
243 an "assistant" (i.e. external software like GIMP or Inkscape, $\dots$) and then this work is automatically reflected in the
244 global master project.  It is for \textbf{advanced usage only}.
245
246 Up until the addition of this feature, \CGG{} has always used copies
247 and no direct reference in order to ensure original data is never
248 compromised.  In the usual case, subprojects as xmls are copied into
249 a master project where subprojects had been inserted, so that if you
250 change something in a subproject or delete a subproject, it would
251 have no affect on the master project.  But now with \textit{File by
252         Reference}, any project that uses a referenced file will
253 automatically include any changes made to the referenced file when
254 loaded.  At the same time, if you use the EDL file NOT as a
255 referenced file in a project since it is then just a copy, it will
256 not be updated.  Because of this difference, the user needs to be
257 very aware of what using this feature could do.
258
259 \textbf{Use with extreme caution}.  However, there are several
260 built-in safety features and a warning that should never be turned
261 off even though it gives you the option to do so.  These include:
262
263 \begin{enumerate}
264         \item When the \texttt{File, Load files} menu is opened, the EDL
265         strategy will always be set to just EDL as default.  Although, if
266         you use Apply and leave the Load Menu open, it will stay changed to
267         what you selected until it is re-opened.
268         \item When an EDL is opened as \textit{Reference}, the color of
269         that file name in the Resources Media folder is different in order
270         to serve as a reminder that it is special.
271         \item A warning message is displayed in a popup window when you
272         load a \textit{File by Reference} that reads \texttt{Other projects can
273         change this project and this can become a broken link}.  Although
274         you can check the warning box to never see this warning again, you
275         would be well advised to not do so.  It is a great reminder of
276         consequences and you will not want to be cavalier about the warning.
277         Instead just use the X to dismiss the warning.
278 \end{enumerate}
279
280 Here is a step by step example of how you can use \textit{File by
281         Reference}:
282 \begin{enumerate}
283         \item Start up \CGG{} and use the Title plugin to create a new
284         credits file.  Save as credits.xml.
285         \item Start a New project and then load an existing master
286         project to the timeline.
287         \item Load the credits file you created in step 1 with a Load
288         Strategy of Create Resources Only and with EDL Strategy as
289         \textit{Reference}.
290         \item Note the color change in the credits.xml filename and the
291         reference comment in the Resources Media folder.
292         \item Drag the credits file to an empty spot on the timeline.
293         Save this new master project and quit.
294         \item Start \CGG{} up again.  Load credits.xml and make a change
295         to the Title and save again.
296         \item Exit \CGG{}; restart \CGG{}; load your master project and
297         now you will automatically see on the timeline the changes you just
298         made in the previous step.
299 \end{enumerate}
300
301 \section{Trimming}%
302 \label{sec:trimming}
303
304 With some edits on the timeline it is possible to do trimming. By
305 trimming you shrink or grow the edit boundaries by dragging them. In
306 drag and drop mode or cut and paste mode, move the cursor over an
307 edit boundary until it changes shape. The drag handle shows as a
308 left or right facing fat arrow when you cursor near the clip start
309 or end.  If the cursor faces left, the dragging operation affects
310 the beginning of the edit. If the cursor faces right, the dragging
311 operation affects the end of the edit.
312
313 The effect of each drag operation not only depends on the behavior
314 button but whether the beginning or end of the edit is being
315 dragged. When you release the mouse button, the trimming operation
316 is performed.
317
318 For all file formats, other than still images, the extent of the
319 trimming operation is limited to the source file length. Attempting
320 to drag the start of the edit beyond the start of the source, limits
321 it to the source start. In all trimming operations, all edits which
322 start on the same position as the cursor when the drag operation
323 begins are affected. You have to disarm tracks in order to prevent
324 edits from being affected.
325
326 You have 6 different choices of which mouse button to use for
327 specific types of editing while using the drag handle.  You change
328 the drag handle mouse effects by using the \texttt{Settings
329         $\rightarrow$ Preferences  $\rightarrow$ Interface} tab and
330 modifying the Editing section as shown in the next
331 figure~\ref{fig:trim}. The drag handle affects not only the clip you
332 are working on but also frequently the entire duration of all clips
333 on the timeline.
334
335 \begin{figure}[htpb]
336         \centering
337         \includegraphics[width=0.5\linewidth]{trim.png}
338         \caption{Default choices for mouse: Ripple for button 1; Roll
339                 for button 2; Slip for button 3}
340         \label{fig:trim}
341 \end{figure}
342
343 A description of the fundamental/common terminology for choices
344 follows.
345
346 \begin{description}
347         \item[All Edits (ripple)] shorten or lengthen the start or end
348         of a single piece of media while moving all media to the right of
349         that clip up or down on the timeline correspondingly.  Timeline
350         duration is modified.  In a drag \textit{All Edits} operation, the
351         beginning of the edit either cuts data from the edit if you move it
352         forward or pastes new data from before the edit if you move it
353         backward. The end of the edit pastes data into the edit if you move
354         it forward or cuts data from the end of the edit if you move it
355         backward. All the following edits shift. If you drag the end of the
356         edit past the start of the edit, the edit is deleted.
357         \item[One Edit (roll)] move the in and out point of a single
358         clip without changing the timeline duration. In a drag \textit{One
359                 Edit} operation, nothing is cut or pasted. If you move the beginning
360         or end of the edit forward, the source reference in the edit shifts
361         forward. If you move the beginning or end of the edit backward, the
362         source reference shifts backward. The edit remains in the same spot
363         in the timeline but the source shifts.
364         \item[Src Only (slip)] move the in and out point of a single
365         clip without changing the timeline duration. In a drag \textit{Src
366                 Only} operation, nothing is cut or pasted. If you move the beginning
367         or end of the edit forward, the source reference in the edit shifts
368         forward. If you move the beginning or end of the edit backward, the
369         source reference shifts backward. The edit remains in the same spot
370         in the timeline but the source shifts.
371         \item[Slide] a single clip is moved but retains its current in
372         and out point; however the out point of the clip to the left changes
373         and the in point of the clip to the right also changes.  Timeline
374         duration remains the same.
375         \item[Edge Left/Right] moves the edge of the clips.
376         \item[No effect] no changes are made.  You might want to use
377         this choice to prevent accidental movements.
378 \end{description}
379
380 The next table displays the options and results
381 with the Key Table here first.
382
383 \begin{lstlisting}[style=sh]
384 s = src media start
385 p = proj position
386 l = length
387 c = cut distance
388 rest == p+=c: for rest of clips
389 01 = flags edits_moved, rest_moved
390 \end{lstlisting}
391
392 \renewcommand{\arraystretch}{1.15}
393 \begin{center}
394         %\caption{}
395         %\label{tab:}
396         % Tell table to adjust font to fix on the page using \resize    
397                 \begin{longtable}{lllll}
398                         \toprule
399                         &  & \textbf{Drag Left} & \textbf{Drag Right} &\\
400                         \midrule
401                         \multicolumn{2}{l}{\textit{curr s += c, l -= c; + rest}} & $\leftarrow$ & $\rightarrow$ & \textit{rest}\\
402                         abc12345xyz & \textbf{Ripple} left edge 11 $\rightarrow$ & abc012345xyz & abc2345xyz &\\
403                         \midrule
404                         \multicolumn{2}{l}{\textit{curr l += c; + rest}} & $\leftarrow$ & $\rightarrow$ & \textit{rest}\\
405                         abc12345xyz & \textbf{Ripple} right edge 01 $\rightarrow$ & abc1234xyz & abc123456xyz &\\
406                         \midrule
407                         \multicolumn{2}{l}{\textit{prev l += c; curr ps+= c, l -= c}} & $\leftarrow$ & $\rightarrow$ &\\
408                         abc12345xyz & \textbf{Roll} left edge 00 $\rightarrow$ & ab012345xyz & abcd2345xyz &\\
409                         \midrule
410                         \multicolumn{2}{l}{\textit{curr l += c; next ps+= c, l -= c}} & $\leftarrow$ & $\rightarrow$ &\\
411                         abc12345xyz & \textbf{Roll} right edge 00 $\rightarrow$ & abc1234wxyz & abc123456yz &\\
412                         \midrule
413                         \multicolumn{2}{l}{\textit{s -= c}} & $\leftarrow$ & $\rightarrow$ &\\
414                         abc12345xyz & \textbf{Slip} left edge 10 $\rightarrow$ & abc23456xyz & abc01234xyz &\\
415                         \midrule
416                         \multicolumn{2}{l}{\textit{s -= c}} & $\leftarrow$ & $\rightarrow$ &\\
417                         abc12345xyz & \textbf{Slip} right edge 10 $\rightarrow$ & abc23456xyz & abc01234xyz &\\
418                         \midrule
419                         \multicolumn{2}{l}{\textit{prev l += c; curr p+= c; next ps += c, l -= c}} & $\leftarrow$ & $\rightarrow$ &\\
420                         abc12345xyz & \textbf{Slide} left edge 10 $\rightarrow$ & ab012345wxyz & abcd12345yz &\\
421                         \midrule
422                         \multicolumn{2}{l}{\textit{prev l += c; curr p+= c; next ps += c, l -= c}} & $\leftarrow$ & $\rightarrow$ &\\
423                         abc12345xyz & \textbf{Slide} right edge 10 $\rightarrow$ & ab12345wxyz & abcd12345yz &\\
424                         \midrule
425                         \multicolumn{2}{l}{\textit{curr s -+= c, l += c; + rest}} & $\leftarrow$ & $\rightarrow$ & \textit{rest}\\
426                         abc12345xyz & \textbf{Edge} left edge 11 $\rightarrow$ & abc2345xyz & abc0123456xyz &\\
427                         \midrule
428                         \multicolumn{2}{l}{\textit{curr l -+= c; + rest}} & $\leftarrow$ & $\rightarrow$ & \textit{rest}\\
429                         abc12345xyz & \textbf{Edge} right edge 01 $\rightarrow$ & abc1234xyz & abc123456xyz &\\
430                         \bottomrule
431                 \end{longtable}
432 \end{center}
433 \renewcommand{\arraystretch}{1}
434
435 Next, a more immediate and colorful view shows these trimming
436 options (figure~\ref{fig:trim-color}).
437
438 \begin{figure}[htpb]
439         \centering
440         \includegraphics[width=0.8\linewidth]{trim-color.png}
441         \caption{The 5 types of Trim: note the different lengths of the results.}
442         \label{fig:trim-color}
443 \end{figure}
444
445 \paragraph{How to do a J-cut or L-cut} A J-cut is a split edit film
446 editing technique in which the audio from a following scene overlaps
447 the picture from the preceding scene, so that the audio portion of
448 the later scene starts playing before its picture as a lead-in to
449 the visual cut.  An L-cut is a different split edit film editing
450 technique in which the audio from preceding scene overlaps the
451 picture from the following scene, so that the audio cuts after the
452 picture, and continues playing over the beginning of the next scene
453 (figure~\ref{fig:j-cut}). To do either a J-cut or an L-cut, you
454 first shorten the first or second video a little.  Then you block
455 the audio tracks from changing by disarming the appropriate tracks.
456 Finally use \textit{One Edit (roll)} the cutting edge off the
457 videos.  Moving to the right creates a J-cut and moving to the left
458 creates an L-cut.
459
460 \begin{figure}[htpb]
461         \centering
462         \includegraphics[width=0.8\linewidth]{j-cut.png}
463         \caption{J-cut to left and L-cut to right}
464         \label{fig:j-cut}
465 \end{figure}
466
467
468 \subsection{Split View in Compositor Using the Drag Handle with Trim}%
469 \label{sub:split_view_compositor_using_drag_trim}
470
471 The Trim Feature using the drag handle provides some good ways to
472 view your video while editing.  The playback position in the
473 compositor is updated live and the view in the compositor can be
474 split so that in the left half of the compositor you can see the
475 last frame of the left clip and in the right half the first frame of
476 the right clip.  Dragging edits can not be extended past the
477 beginning or the end.
478
479 First familiarize yourself with button operation; check your setup
480 by executing the following step.  In the \texttt{Settings
481         $\rightarrow$ Preferences $\rightarrow$ Interface} tab, Editing
482 section, clicking on the edit boundaries can be set for Button 1, 2,
483 3 as one of the following:
484
485 \textit{Ripple}; \textit{Roll}; \textit{Slip}; \textit{Slide};
486 \textit{Edge} or \textit{No effect}
487
488 Now to use this feature, create a track with edits that have trims
489 on the left and/or the right. The edit boundary can be modified
490 using \textit{drag handles} at the boundary between the edits
491 (figure~\ref{fig:trim-display}).
492
493 \begin{figure}[htpb]
494         \centering
495         \includegraphics[width=1\linewidth]{trim-display.png}
496         \caption{Split compositor screen showing the result of the Trim feature}
497         \label{fig:trim-display}
498 \end{figure}
499
500 \begin{description}
501         \item[Left Mouse Button (LMB) usage:] If you grab the edit
502         handle from the right side, you will see a left arrow and dragging
503         the boundary will modify the right edit playback starting time. If
504         you grab the edit handle from the left side, you will see a right
505         arrow and dragging the boundary will modify the left edit playback
506         ending time. In both cases, the composer will show the edit endpoint
507         of the changed edit.
508         \item[Shift LMB usage:] The effect on the edits is the same as
509         described above, but the composer will show a split screen of the
510         left and right edits as they appear at the drag handle
511         boundary. Dragging will only change one of the two images, since
512         only one edit is being changed.
513         \item[Middle Mouse Button (MMB) usage:] Both the left and the
514         right edit ending/starting times are updated.  The image shown in
515         the compositor will be drawn from the side of the drag grab, that is
516         the left if it is grabbed from the left, and the right if it is
517         grabbed from the right.
518         \item[Shift MMB usage:] The effect on the edits is the same as
519         described above, but the composer will show a split screen of the
520         left and right edits as they appear at the drag handle boundary.
521         Dragging will change both of the two images, since both edits are
522         being changed.
523         \item[Right Mouse Button (RMB) usage:] The start/end point of
524         the current edit is moved, but the edit length is unchanged only one
525         image changes since only one edit endpoint is view is updated.
526         \item[Shift RMB usage:] The effect on the edits is the same as
527         described above, but the composer will show a split screen of the
528         left and right edits as they appear at the drag handle boundary.
529         Dragging will only change one of the two images, since only one edit
530         is being changed.
531 \end{description}
532
533
534
535
536 \section{Nesting clips and assets}%
537 \label{sec:nesting_clips_and_assets}
538
539 \subsection{Nested Assets}%
540 \label{sub:nested_assets}
541
542 A nested asset is an EDL session that
543 embeds an existing EDL session, all tracks, all plugins, editing,
544 and effects into a media object that appears as one audio/video
545 media object, no plugins, editing, or effects.  It is as if the
546 existing EDL was rendered, and loaded in its place.  This has
547 several interesting side effects.  First, you don’t have to render
548 the entire media file to see any portion.  Second, it requires no
549 rendering compute time or storage.  Third, it changes the precedence
550 of the composer so that you get more control over the projection and
551 automation, so that the results can be sent into another rendering
552 step, not simply part of the current stack.  It groups the plugin
553 stack in much the same way that an arithmetic expression is grouped
554 by parenthesis.
555
556 The EDL session and the rendered output are visually equivalent.
557 Nested assets allow for complex grouping and stacking of effects,
558 and makes media access much more flexible.  This feature can be used
559 recursively, that is, any number of sessions may be stacked and
560 referenced as an asset, as long as all of the rendering resources
561 are available.  Nested assets are added to the timeline by using the
562 pulldown \texttt{File $\rightarrow$ Load files}\dots on the main
563 menu and selecting the \textit{Insertion strategy} of \textit{Nest
564         asset}. The file will be pasted into the timeline over the current
565 selection or at the insertion point.
566
567 It is somewhat important to note that nested assets and nested clips
568 will have index files automatically created.  These index files can
569 start to clutter up your \texttt{\$HOME/.bcast5} directory with
570 files named \texttt{Nested\_\#\#\#.idx} and you may want to
571 periodically delete any index files which are no longer in use.
572
573 \subsection{Nested Clips}%
574 \label{sub:nested_clips}
575
576  It is also possible to create
577 \textit{clips} and convert them to \textit{nested edl}.  This is
578 done by first creating a clip using the standard cut, clipboard,
579 paste, and/or edit panel buttons.  Now, using the resources
580 \textit{clip} folder, select a clip to be nested, and use the right
581 mouse button to select a clip.  This activates the clip popup menu.
582 Select the \textit{Nest to media} menu item, and the clip will be
583 converted to a \textit{Nested: Clip} and put in Media
584 folder. Conversely, you can select a \textit{Nested: Clip}, use the
585 \textit{EDL to clip} menu item, and the clip will be reverted to a
586 \textit{Clip}.  This works similarly to the group / un-group editing
587 features of many graphic design editing programs, but in this case
588 the groups are rendered compositions (figure~\ref{fig:nesting}).
589
590 Nested clips can be proxied and when they are, the resulting files
591 are placed in the user's \texttt{\$HOME/Videos} directory by default.  This
592 can be modified by changing
593
594 \texttt{Settings $\rightarrow$ Preferences $\rightarrow$ Interface}
595 tab, Nested Proxy Path.
596
597 \begin{figure}[htpb]
598         \centering
599         \includegraphics[width=1.0\linewidth]{nesting.png}
600         \caption{Nested clips in Timeline and Resources window}
601         \label{fig:nesting}
602 \end{figure}
603
604 \paragraph{Notes:} creating nested clips is a complicated internal process for \CGG{}, especially for managing audio tracks. Therefore you need to make sure you have your project set up as you expect before you start nesting with the \texttt{Nest to Media} command.  Below are several things to remember.
605
606 \begin{itemize}
607         \item The creation of the nested clip is based on the settings in \texttt{Settings $\rightarrow$ Format}. Be sure that the number of audio tracks and channels is the same as we want to have in the nested clip. In addition, it is better to make each audio track independent from the others (which could be linked in more than one channel) using the option: \texttt{Audio $\rightarrow$ Map 1:1}
608         \item You can do any editing on the nested clip once it is loaded to the timeline. For example we can start an OpenEDL session to make the changes. Once out of the OpenEDL session it may be that the changes made are not visible in the original nested clip. You can fix this by doing RMB on the nested clip in the \textit{Resources/Media} window and choosing \texttt{Rebuild index}. This process may take some time depending on the size of
609 the media; because of the additional time required to do this, it is not done automatically in order to allow the user to make the decision as to when they are done editing enough and need to see the exact results
610 in order to save time.
611         \item Because of the way the timeline thumbnails are displayed, after editing using OpenEDL of a
612 nested clip, the thumbnails of the video track may be redrawn and may look different and out of sync with the
613 way they did originally with respect to the audio waveforms. This is simply a result of the redrawing of the
614 video track which is independent from the redrawing of the audio tracks. The playback is still synchronized.
615 \end{itemize}
616
617 \paragraph{Usage Examples of Nested Clips}
618
619 \begin{description}
620         \item[Example 1:] You want to make a flashback/rewind at the end
621         of your video that represents a quick summary of the entire video in
622         black and white. On he timeline, you have 60 seconds of edits with
623         clips, cuts, zoom in, zoom out and any other edits. Now you want to
624         get this 60 seconds \textit{compressed} to 10 seconds, play in
625         reverse, and in black and white at the end of your video.  You would
626         copy the 60 seconds in a clip, nest the clip in the Clip folder of
627         the Resources window and drag it to the timeline. You will see only
628         a clean clip without all of the edits that were used to create it
629         because nesting display a clip without having to actually use the
630         Render menu.  Now you can add a Reverse effect, Color3way plugin for
631         black and white, and use the Speed auto to get the 60 seconds down
632         to only 10 seconds.
633         \item[Example 2:] You are working on a complex project with a
634         team in a separate location. You create some sub projects, i.e.\
635         sequences, that you or the team will use in the Master project to
636         merge the sequences in the right order and to make the final color
637         correction steps.
638 \end{description}
639
640 In each of the examples you can see the benefit of nesting to create
641 clean looking timelines because of the automatic rendering
642 capability of nesting.
643
644 \section{Multi-Camera / Mixer}%
645 \label{sec:multicamera_mixer}
646
647 Use the Mixer Viewer to see multiple media playing simultaneously in re-sizable mini-viewers.  This can be used in various ways and is useful to edit videos shot by multiple cameras from different viewpoints that were simultaneously recorded in order to create a single good video.  Everything will have to be initially synced so you can decide which one of the camera angles is best suited at any time. 
648
649 The number of cameras/mixers you can have is generally limited to the available resources on your computer.  Currently, the number of File Descriptors available in the OS limits cameras to about 50.  If you have many \textit{mixer viewers} you will probably want to use proxy mode whenever possible.  Also, in the \texttt{Settings $\rightarrow$ Playback A} tab \textit{Video Out} section, uncheck \textit{play every frame} and choosing a Video Driver of \textit{X11} with \textit{use direct X11 render if possible} checked, will provide better performance.
650
651 Figure~\ref{fig:multicam01} shows 9 media sources in the left corner, the composed video in the right corner, the timeline with the top video track with pieces of the 9 overwrites, and the choice in Resources of Mixed.
652
653 \begin{figure}[htpb]
654         \centering
655         \includegraphics[width=1.0\linewidth]{multicam01.png}
656         \caption{Using Mixer capability in Cin for multiple cameras}
657         \label{fig:multicam01}
658 \end{figure}
659
660 \subsubsection*{Easiest Method to Getting Started}%
661 \label{ssub:easiest_method_started}
662
663 \begin{enumerate}
664         \item This method assumes all of your media or cameras are aligned the way you want them already.
665         \item From the \textit{File} pulldown, create a \textit{New project} with the desired format for Audio and Video output (or you can just use the default).
666         \item \texttt{File $\rightarrow$ Load} the media files you want to work with using \textit{Create new resources only}.
667         \item In the Resources window, with  the Media folder, highlight the list of media you want to \textit{Mix}. This is done using a ctrl or shift mouse button press as you would in a standard listbox selection.
668         \item Right click the mouse on the media selection and choose \textit{open mixers}. This opens multiple mixer viewer windows, one for each media item that was highlighted.  You can
669         do them 1 at a time instead.  This also adds the source media tracks to the main window.
670         \item Now use the timeline to play and you will see all viewers/cameras playing.  Stop when you get to the
671         end of the \textit{good} camera playback.
672         \item Simply double click the \textit{good} mixer viewer and from where you first started playing to the playback insertion pointer is the source section, which will be pasted in the destination video/audio tracks at the top of the new project.
673         \item Repeat steps 6-7.  Start playing again, stop when you want, double click the desired mini-viewer!
674 \end{enumerate}
675
676 \subsubsection*{Some Hints and Caveats}%
677 \label{ssub:hints_caveats}
678
679 \begin{itemize}
680         \item You can easily overwrite a section of the new track by \textit{selecting} a section on the timeline, then double click on one of the mini-viewers to overwrite/replace that section.
681         \item If you edit the output tracks, it only edits output tracks, and the input tracks may no longer be lined up.
682         \item You can add a silent section by selecting past a section and start overwriting that section from then on.
683         \item If you use the cursor hairline to create the selection endpoint, it must be past the end of the destination.
684         \item The compositor shows composed media.  This is the media that will be rendered.
685         \item The program always uses overwrite as the paste operation.
686         \item Use the timeline edit handles to move the start and end points of that section.
687         \item Only middle mouse drag handle operations should be used normally.
688         \item Other drags will displace the media source/destination timeline correspondence.
689         \item To re-tile the mixer windows after you have resized and moved them around, you can use the Window
690         pulldown of \textit{Tile mixers} or the shortcut of Alt-t.
691 \end{itemize}
692
693 \subsubsection*{But, I want to use only the first set of audio tracks\dots}%
694 \label{ssub:but_use_only_first_audio}
695
696 There are many cases where you may want to compose using media from several different tracks while using the the same audio tracks as associated from a specific viewer.  Since mixer source tracks can be updated any time by using a mixer toggle, this makes it possible to do this.  
697
698 Procedure to update the mixer audio source track list:
699
700 \begin{enumerate}
701         \item Single click to highlight the mixer window you want to re-associate to the audio track.
702         \item In that audio track’s patchbay click the expand toggle, the arrow on the right side.
703         \item In the expanded pane that appears, there is another arrow on the left side.  This icon has the tooltip \textit{Mixer}.  Click this and because in step \#1 you highlighted the mixer window, it will now be toggled on.  Once you click the mixer icon it will then point up.
704         \item Now, disassociate any audio that is unwanted by expanding its patchbay and toggling off the mixer.
705 \end{enumerate}
706
707 \subsubsection*{Expert Usage}%
708 \label{ssub:expert_usage}
709
710 When you double click a mixer viewer window, it operates an \textit{overwrite} paste operation.  This moves \textit{src} (source) track edits to \textit{dst} (destination) track edits over the same selected timeline region.
711
712 \begin{itemize}[noitemsep]
713         \item \textit{Src tracks} should be not playable and not armed in the main window patchbay gui.
714         \item \textit{Dst tracks} should be playable and armed in the main window patchbay gui.
715 \end{itemize}
716
717 Each mixer viewer maintains a list of the tracks which will be used as src. This list is made visible selecting the window with the left mouse button.  When the mixer viewer is selected, a highlight is drawn around the media image.  All track patchbay \textit{mixer} toggles are updated to reflect the src tracks included in the selected viewer src track list. The track patchbay toggles can be used to manage the list.
718
719 \begin{itemize}[noitemsep]
720         \item \textit{Turning on} a toggle (pointing up) includes the track in the src track list.
721         \item \textit{Turning off} a toggle (pointing right) removes the track from the src track list.
722 \end{itemize}
723
724 New Mixer viewers can be created using the main menu \texttt{Window $\rightarrow$ Mixer Viewer}, or with a shortcut of \texttt{Shift-M}.  When a new viewer is created, the currently enabled patchbay \textit{mixer} toggles are used to create the viewer source track list.  The toggles are cleared after the window is created.  This is to improve the work flow.  Use the following list of steps to create individual mixer viewers.
725
726 To create a list of mixer viewers:
727
728 \begin{enumerate}
729         \item Setup the session \texttt{settings $\rightarrow$ format}, width, height, frame rate, color model, aspect ratio.
730         \item Create dst tracks using the a/v track pulldowns (or use shortcuts "t" / "T"),  armed and playable.
731         \item Append src tracks using \texttt{file $\rightarrow$ open $\rightarrow$ append tracks}, or the resource window using pasting.
732         \item Using the track patchbay, disarm editing and disable playback of the audio/video src tracks.
733         \item Using the track patchbay, mark the new tracks as \textit{mixer} source to be added to the viewer.
734         \item Create a mixer viewer using the main menu pulldown, or the shift "M” shortcut.
735         \item Repeat steps $3-6$ for each mixer viewer needed for the session editing.
736 \end{enumerate}
737
738 When you single click a mixer window, it becomes selected and highlighted and all of the patchbay mixer toggles are updated to reflect the state of the viewer’s src tracks.  Tracks that will be src are shown as enabled.  If you change a toggle, the src tracks for the selected window will be modified.  This means you can associate or dis-associate any media track to any mixer window.
739
740 When you double click a mixer window, an overwrite paste is invoked.  The mixer viewer’s src tracks are overwritten to the dst tracks.  The timeline region for both the source and destination are the same for the overwrite paste function.  The selection region is used if it is active.  If the selection is empty, that is it is a hairline, the selection region is from the end of the destination playable edits to the selection cursor hairline.  The hairline must be past the end of the playable edits on the destination tracks.
741
742 The mixer viewer configuration is saved with the session data.  When a saved session is loaded in \textit{replace project} or \textit{replace project and concatenate tracks}, the mixer viewer will be reopened.
743
744 \subsubsection*{Using Proxy with \textit{Open Mixers}}%
745 \label{ssub:using_proxy_open_mixers}
746
747 The best way to use proxy with your multiple cameras is to follow the steps below:
748
749 \begin{enumerate}
750         \item Load media with insertion strategy of \textit{create resources only}.
751         \item Highlight the media in the Resources window and right click on this to choose \textit{open mixers}.
752         \item Use the \texttt{Settings $\rightarrow$ Proxy settings}\dots to bring up the proxy menu.
753         \item Choose the size and other options you want and click the checkmark OK. If you choose the option \textit{Beep when done} you will hear a short beep if all media is already proxied or a longer beep when all proxies have been created.
754         \item When your editing is complete, use \textit{Settings} pulldown and proxy to \textit{original size}.
755 \end{enumerate}
756 Instead of Open Mixers, you can Insert Mixers with new tracks at the timeline insertion point.
757
758 \begin{figure}[htpb]
759         \centering
760         \includegraphics[width=1.0\linewidth]{mixer-playable.png}
761         \caption{A Mixer window showing available options with the white X designating no playing}
762         \label{fig:mixer-playable}
763 \end{figure}
764
765 \subsubsection*{Options available in the \textit{Mixer Windows}}%
766 \label{ssub:options_available_with_mixers}
767
768 There are several options you will see in each Mixer window that help with using them. These
769 are shown in figure~\ref{fig:mixer-playable}. To use these, RMB in the desired mixer window,
770 and choose one of the options as described here.
771
772 \begin{enumerate}
773         \item Fullscreen / Windowed - will bring up a fullscreen display of that window or revert to the original size.
774         \item Resize Window - allows for resizing the window to a choice of different sizes.
775         \item Tile Mixers - makes it easy to get all of the mixers nicely tiled to a standard size.
776         This is also available in the Window pulldown.
777         \item Playable - enabled by default so that you will see a checkmark next to it in the 
778         popup.  The benefit of making a mixer window not playable is to save cpu time. When a specific
779         mixer window is unchecked, so not Playable, a white cross appears in the upper left hand corner
780         of the mixer.  To switch back to playing again, RMB and choose Playable and this will turn
781         playing back on. The program automatically updates the mixer image when the timeline cursor
782         stops or when it is moved to a different spot even when play is disabled. You can see the
783         white cross designating not playable in figure~\ref{fig:mixer-playable}. Statistics that show
784         the savings are as follows on a 16 cpu laptop:
785         \begin{verbatim}
786         5 Mixers all playing -- cpu usage = 1275
787         1 only playing       -- cpu usage =  405
788         2 only playing       -- cpu usage =  800
789         \end{verbatim}
790 \end{enumerate}
791
792
793 \subsection{Recover Mixer Windows}%
794 \label{sub:recover_mixer_windows}
795
796 It is a hazard that you might accidentally \textit{undo} (\texttt{z}) too far and lose your mixer windows.  Here are the steps to recover.  It is recommended that you make a backup of your project before performing the recovery steps just in case there are other problems.
797
798 In the patchbay box to the left of the main timeline, there is a right pointing arrow on the right side.  This is called the \textit{Expander} (figure~\ref{fig:mixer-patchbay01}).  When you click on each expander, another line appears below that expander arrow and the timeline track height is slightly increased.  If you Shift-click on a single expander, the patchbay will expand for all of the tracks.
799
800 \begin{figure}[htpb]
801         \centering
802         \includegraphics[width=0.35\linewidth]{mixer-patchbay01.png}
803         \caption{Mixer  patchbay}
804         \label{fig:mixer-patchbay01}
805 \end{figure}
806
807 \begin{enumerate}
808         \item Expand all of the patchbay lines, either one by one, or Shift-click on one to do them all. This is so you can see the \textit{mixer} right pointing arrow on the second expanded line.    
809         \item Use the Window pulldown and choose \textit{Mixer Viewer} to bring up a new mixer window.  Now you will be making an association between the mixer viewer and the track’s video.
810         \item Click on the new mixer window to make sure it is highlighted with a white border. This designates it as the \textit{in use} mixer viewer.
811         \item Set your play to the beginning of the video using the \textit{Home} key or \textit{Home} transport button.
812         \item In the patchbay for a video track click on the \textit{mixer} arrow on the expanded $2^{nd}$ line which is a right facing arrow.  Now the arrow will point up.  If there are audio tracks with that video, click on each of its audio tracks \textit{mixer} arrow until they point up also.
813         \item Next move your insertion pointer on the timeline where there is video.  Some of the time this just helps so that the new mixer viewer window gets redrawn and you can see that the images appear; but the image may not appear until the program does a redraw later.  Now the mixer viewer should be
814         correctly associated.  Note if you have large video, give it some time to update.  You may have to click on the mixer viewer window if the image does not show.  You can always start over with that mixer if you encountered any problems.
815         \item Click the arrows that are pointing up in that video and its audio so they go back to pointing right. That mixer viewer is complete so you need to do this to make sure the \textit{mixer} arrows are off.
816 \end{enumerate}
817
818 Repeat steps 2 through 7 for each of the mixer viewers you need going down the patchbay starting on step 2 first with Mixer 1, then 2 to 7 steps for Mixer 2, then again run 2 to 7 for Mixer 3 and so on.
819
820 Sometimes the association does not stick initially.  If not, highlight the mixer viewer with the problem, change the mixer arrows to point up, and reassociate.
821
822 \section{Audio/Video sync via Waveforms/Timecodes}%
823 \label{sec:audio_video_sync}
824
825 \subsection{Audio/Video sync via Waveform}%
826 \label{sub:audio_video_sync_waveform}
827
828 Multi-camera footage of a single event can have various shots starting and ending at different times. So when the footage start times are different, you can use the mixer audio to synchronize the clips on the timeline. The program algorithm attempts to find and align automatically the waveforms of the media.
829
830 Synchronizing multiple camera videos based on audio tracks can be done with \CGG{} easily enough with the \texttt{Window $\rightarrow$ Mixers$\dots$ $\rightarrow$  Align mixers} option.  Align mixers brings up a window displaying your mixers, the currently selected Master Track, and a list of all of the Audio Tracks (figure~\ref{fig:mixer-align01}).  There is a limit of 32 audio tracks per each mixer (that should be enough!)
831
832 \begin{figure}[htpb]
833         \centering
834         \includegraphics[width=0.9\linewidth]{mixer-align01.png}
835         \caption{Align Mixers window}
836         \label{fig:mixer-align01}
837 \end{figure}
838
839 Two different methods of aligning the audio for mixers are available. They are most easily referred to by the button that is pressed -- \textit{Match} and \textit{Match All}. There are also 2 methods of activating the alignment -- \textit{Apply} and \textit{Move}.  
840
841 \textit{Match} consists usually of the next set of steps to take advantage of this feature:
842
843 \begin{enumerate}
844         \item Load your camera media with insertion strategy of \textit{resources only}
845         \item Highlight in the Resources window, all of the media you want to mix.
846         \item Right mouse button on one of the media and click on Open Mixers; all mixer windows come up.
847         \item To arm the created mixer tracks and related audio tracks. They are automatically placed on the timeline disarmed. This is right for multi-cam but not for audio sync.
848         \item Provide a small target audio pattern on the Master Track for syncing by marking with the In/Out points ([ and ]). NOTE: When choosing between the audio tracks to align the one that will have to work as Master, we must rigorously use the one with the right-most synchronization peak. This is because the Master track will be started at the beginning of the timeline. If during alignment the other tracks should move further to the left than the Master, they will be truncated at 00:00:00:000, finding no more space available, and will be shortened with loss of footage for the next multi-cam
849         \item Make a selection on the timeline in which to look for the pattern. Left mouse click, then drag select and highlight a search time domain. 
850         \item Use the \texttt{Window $\rightarrow$ Mixers$\dots$ $\rightarrow$  Align mixers} to bring up its dialog window.
851         \item Highlight in the first listbox, the Mixer number you want to align. Click on \textit{Match}. This will take a few seconds so watch the rendering time percentage on the lower right hand side zoom panel. The buttons will be ghosted out until finished. Now note the changed values in the Audio Tracks listbox.
852         \item If you are satisfied with the calculated Nudge values -- that is they are very close to $1.0$ -- in the Audio Tracks listbox and the audio track selected as the Master Track in the Master Track listbox, hit the \textit{Apply} button.
853         \item If you plan on performing more alignment tasks, click on Checkpoint so you can go back to a previous step in case you make a mistake.
854         \item Last, click on the OK green checkmark or to cancel click on the red X.  Or just close the gui.
855         \item To disarm the mixer tracks and related audio tracks for the next multi-cam operations.
856 \end{enumerate}
857
858 \paragraph{Reset} is used to start over with the current session data, not an undo.  This means you can use the match repeatedly to refine alignments.  All of the Audio Tracks listbox values will be reset.
859
860 \paragraph{Checkpoint} provides a method to create checkpoints that save the current state.  This is especially helpful while learning or doing more complicated operations where you might make a mistake or do not like the results and need to get back to a previous state.
861
862 \paragraph{Undo} is used to put the media back to a previous state on the timeline.  If you choose \textit{start over} the session will reload with the original, before any changes were applied.  You can also go back to any of your previous checkpoints that you created earlier which are listed there, such as \textit{chkpt 1}.
863
864 \paragraph{Match All}is used when you have several mixers, instead of only picking 1 to match, it picks the best match for EACH of the mixer tracks based on a single master track. So when you hit Apply, each track might move differently. You do not set In/Out points but you have to make a selection within which to match.
865
866 \paragraph{Apply} button will apply the nudges that were generated during the Match or Match All execution (figure~\ref{fig:mixer-align02}).
867
868 \begin{figure}[htpb]
869         \centering
870         \includegraphics[width=0.9\linewidth]{mixer-align02.png}
871         \caption{Aligned mixer window after "Match". Note the Nudge amounts above.}
872         \label{fig:mixer-align02}
873 \end{figure}
874
875 \paragraph{Move} is very handy when you are using mixers, if you have an edit somewhere that you need to fix specifically without moving any of the other track pieces. In this case you have to select a section (like you do a group, but do not make a group), generate a match, and then you can just \textit{Move} that set only -- everything else stays where it is at its current location (figure~\ref{fig:mixer-align03}).
876
877 \begin{figure}[htpb]
878         \centering
879         \includegraphics[width=1.0\linewidth]{mixer-align03.png}
880         \caption{Match setup for aligning by audio.  Note that [ ] are set over a sample waveform highlighted selection that includes that.}
881         \label{fig:mixer-align03}
882 \end{figure}
883
884 More detailed information follows about how this all works and the information in the dialog window.  It is important to know that the result of the calculation is \textit{best match} but you can still override the selections if you decide there is a better one.  The dialog window is split into 3 sections:
885
886 \begin{enumerate}
887         \item \textit{Mixers} lists the mixers that are active by highlighting them all initially. You can decide that you do
888         not want 1 or more mixers to be used in the correlation calculation by un-highlighting the one(s) that should not be used. In some cases you have to have at least 2 in order to align audio.
889         \item \textit{Master Track} lists each of the audio tracks currently loaded for all of the mixers. You can decide to highlight a different audio track to be used as the master for correlation, but only 1 can be used. Remember to use the track with the right-most synchronization peak as the Master.
890         \item \textit{Audio Tracks} lists each of the mixer audio tracks.  Again, you can highlight a different set of which
891         mixer audio tracks that you want to use for the waveform correlation.  Any audio tracks that are not
892         highlighted, that is \textit{turned off}, will not be considered in the correlation calculation.
893 \end{enumerate}
894
895 The corresponding input position is determined by track input correlation.
896
897 The letter "R" in the Audio Tracks listbox represents the correlation value.  $R=1.0$ designates that if both the pattern and the matching section were in the highlighted area, they are completely correlated -- this is a good self-test to check.
898 $Nudge=0.0$ means just that.
899
900 The header \textit{pos} stands for the timeline position. When the \textit{Apply} button is pressed, only the Mixers listbox is relevant at that time.
901
902 The Mixer with the master track generally does not move, everything else will be lined up (figure~\ref{fig:mixer-align04}).
903
904 \begin{figure}[htpb]
905         \centering
906         \includegraphics[width=1.0\linewidth]{mixer-align04.png}
907         \caption{An audio Match is complete. Note the waveform is aligned.}
908         \label{fig:mixer-align04}
909 \end{figure}
910
911 \textit{Match All} option basically consists of the following steps:
912
913 \begin{enumerate}
914         \item Highlight the Mixer to use in the Mixer listbox.
915         \item Highlight the Master Track you want to use in the Master Track listbox.
916         \item On the timeline, mark your selection on the Master Track.
917         \item Click on the \textit{Match All} button.
918         \item Note the nudge values to see if they make sense, and if so, press \textit{Apply}.
919 \end{enumerate}
920
921 \textit{Match} option basic steps (just for comparison with Match All):
922
923 \begin{enumerate}
924         \item Set the In/Out points [ ] of the target.
925         \item On the timeline, mark your selection.
926         \item Click on the \texttt{Match} button.
927         \item Note the nudge values to see if they make sense, then press \textit{Apply} (or \textit{Move} when doing a group).
928 \end{enumerate}
929
930 \subsection{Align Timecodes}%
931 \label{sub:align_timecodes}
932
933 Align Timecodes is especially useful in the case where you create video with multiple cameras capable of recording a timecode in the metadata of each file.  Let’s say we have recorded three videos at the same time at a concert with each camera set up at unique positions and at different angles.   All of the cameras start recording at various times but were synchronized with the same master clock (\textit{Timecode Sync Generator} or \textit{Jam Sync timecode}) so that the recordings are timestamped with that synchronized time.  For example, the 3 cameras have embedded metadata as follows: \quad \textbf{camera 1} = 00:00:00:01 \quad \textbf{camera 2} = 00:00:10:07 \quad \textbf{camera 3} = 00:00:17:22
934
935 \begin{figure}[ht]
936         \centering
937         \includegraphics[width=1.0\linewidth]{timecode-01.png}
938         \caption{Before sync}
939         \label{fig:timecode-01}
940 \end{figure}
941
942 Timecode synchronization is performed by the program when you choose the option \textit{Align Timecodes} and works in 2 steps. The first automatic step is to locate the earliest timecode and the second step is to align the edits on the armed tracks using that time on the timeline. 
943
944 When you load in the three files to different tracks, they'll be placed on a timeline that starts from $00:00:00:00$ as usual. But, by middle mouse clicking (MMB) on any of the video tracks, you can view the timecode embedded at that point in that file.
945
946 To make it easy to align the videos onto the timeline manually, set the \textit{origin point}, that is the leftmost time index, of the timebar to the timecode of the earliest video.  For the 3 aforementioned cameras this would be camera 1 with a timeecode of $00:00:00:01$.  By using the \textit{clapboard} button on the main timeline, you can set $00:00:00:01$ as the start timecode. Then positioning the camera 1 video at the start of the timeline will line its frames up with the times on the timebar.
947
948 \begin{figure}[ht]
949         \centering
950         \includegraphics[width=1.0\linewidth]{timecode-02.png}
951         \caption{Clapperboard button}
952         \label{fig:timecode-02}
953 \end{figure}
954
955 Similarly, using the middle mouse button to view the other 2 camera’s timecodes, you can position them  so their timecodes line up and now all three tracks will be in sync.  You can do this manually or simply do it automatically with the option under: \texttt{Tracks  $\rightarrow$  Align Timecodes}. See figure~\ref{fig:timecode-03}
956
957 \begin{figure}[ht]
958         \centering
959         \includegraphics[width=1.0\linewidth]{timecode-03.png}
960         \caption{After sync}
961         \label{fig:timecode-03}
962 \end{figure}
963
964 Timecode synchronization in \CGG{} is based on the inclusion of an actual \textit{timecode} saved in
965 the media as can be seen using the \texttt{ffprobe} or \texttt{mediainfo} command line. Examples are shown here:
966
967 \begin{lstlisting}[style=sh]
968 # ffprobe tut1.mov
969 Metadata:
970 handler_name:   VideoHandler
971 timecode:               00:00:20:01
972
973 # mediainfo mtb.mp4
974 Time code of first frame:       11:05:49:41
975 Time code, striped:             Yes
976 Title:                          GoPro AVC
977 \end{lstlisting}
978
979 Many newer cameras and media in a MOV container have valid timecodes often with SMPTE
980 compliant start Timecode in Quicktime format, whereas others do not. Most low end cameras do not.
981 When no timecode is present, various clock time values may be used to synchronize instead.
982
983 There are various types of timecodes and they are written in metadata in various ways. Because it is not clear which timecode in the file is the one to use or there is none, the precedence as described next is followed. The contexts, packets, streams, and data refer to the corresponding ffmpeg data or metadata objects:
984
985 \begin{enumerate}
986         \item if the format context has a timecode use: \texttt{fmt\_ctx $\rightarrow$ timecode - 0}
987         \item if the layer/channel has a timecode use: \texttt{st $\rightarrow$ timecode - (start\_time -nudge)}
988         \item find the first program stream with video stream, and if the video stream has a timecode use:
989         \texttt{st $\rightarrow$ timecode - (start\_time-nudge)}
990         \item find timecode in any stream use: \texttt{st $\rightarrow$ timecode}
991         \item read 100 packets, save \texttt{ofs=pkt.pts*st $\rightarrow$ time\_base - st $\rightarrow$ nudge}:
992         \begin{itemize}
993                 \item decode frame for video stream of the first program
994                 \item if \texttt{frame $\rightarrow$ timecode} has a timecode use:\texttt{ frame $\rightarrow$ timecode - ofs}
995                 \item if side\_data has gop (group of pictures) timecode use: \texttt{gop $\rightarrow$ timecode - ofs}
996                 \item if side\_data has smpte timecode use: \texttt{smpte $\rightarrow$ timecode - ofs}
997         \end{itemize}
998         \item if the \texttt{filename/url} scans \texttt{*date\_time.ext} use: \texttt{date\_time} (yr, month, day, hr, min, sec, nanosecond)
999         \item if stat (display file status) works on the \texttt{filename/url} use: \texttt{mtime} (modification time)
1000         \item finally, if none of the above are usable, then return \texttt{failure}
1001 \end{enumerate}
1002
1003 Operation of Align Timecodes includes the following options to help in your setup and review (figure~\ref{fig:timecode-04}):
1004
1005 \begin{figure}[ht]
1006         \centering
1007         \includegraphics[width=1.0\linewidth]{timecode-04.png}
1008         \caption{Timecode via MMB on track and via Resources windows/Info}
1009         \label{fig:timecode-04}
1010 \end{figure}
1011
1012 \begin{itemize}
1013         \item \textit{Align Timecodes} under the \textit{Tracks} pulldown
1014         \item \textit{Clapperboard} icon on the main timeline to set a timecode.
1015         \item Timecode option added to timebar choices (in timecode $hh:mm:ss:ff$) with use of the session frame
1016         rate as a time standard.
1017         \item Time Code Start in the Resources window on the bottom of \textit{Info} for the media if the timecode for that
1018         asset has been scanned and is known. You can scan the asset’s Timecode by using the middle mouse
1019         button on its track which then displays the timecode for that on the timebar.
1020 \end{itemize}
1021
1022 \paragraph*{Notes}
1023
1024 \begin{itemize}
1025         \item \textit{Align Timecodes} is a good first step to quickly sync media up either perfectly or roughly.
1026         \item Currently this is not known to function for syncing audio recorded on a separate audio device,
1027         because no test material was provided to ensure that this works.
1028         \item Disarmed tracks will not be affected by using \textit{Align Timecodes}.
1029         \item No edits or sections will get cut off on the left or elsewhere, unless the moved edits overlap.
1030         \item You can add a timecode to video using an \texttt{ffmpeg} command if you want to align a particular video
1031         which has no timecode to ones that do. For example:
1032 \end{itemize}
1033
1034 \begin{lstlisting}[style=sh]
1035 ffmpeg -i originalfile.mp4 -metadata timecode="14:36:08:29" -c copy newfile.mp4
1036
1037 # where "-i" is followed by the input filename
1038 # where "-metadata timecode" is followed by the timecode key
1039 # where "-c copy" just copies the video/audio to the following output filename
1040 \end{lstlisting}
1041