add Android/Termux build notes from Andrew email
[goodguy/cin-manual-latex.git] / parts / Multi5s.tex
1 \chapter{The 5 Multi-s}%
2 \label{cha:multi_5}
3
4 This chapter is simply a conglomeration of multiple usage possibilities.
5
6 \section{Multi-Camera / Mixer}%
7 \label{sec:multicamera_mixer}
8
9 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. 
10
11 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.
12
13 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.
14
15 \begin{figure}[htpb]
16     \centering
17     \includegraphics[width=1.0\linewidth]{multicam01.png}
18     \caption{Using Mixer capability in Cin for multiple cameras}
19     \label{fig:multicam01}
20 \end{figure}
21
22 \subsubsection*{Easiest Method to Getting Started}%
23 \label{ssub:easiest_method_started}
24
25 \begin{enumerate}
26     \item This method assumes all of your media or cameras are aligned the way you want them already.
27     \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).
28     \item \texttt{File $\rightarrow$ Load} the media files you want to work with using \textit{Create new resources only}.
29     \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.
30     \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
31     do them 1 at a time instead.  This also adds the source media tracks to the main window.
32     \item Now use the timeline to play and you will see all viewers/cameras playing.  Stop when you get to the
33     end of the \textit{good} camera playback.
34     \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.
35     \item Repeat steps 6-7.  Start playing again, stop when you want, double click the desired mini-viewer!
36 \end{enumerate}
37
38 \subsubsection*{Some Hints and Caveats}%
39 \label{ssub:hints_caveats}
40
41 \begin{itemize}
42     \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.
43     \item If you edit the output tracks, it only edits output tracks, and the input tracks may no longer be lined up.
44     \item You can add a silent section by selecting past a section and start overwriting that section from then on.
45     \item If you use the cursor hairline to create the selection endpoint, it must be past the end of the destination.
46     \item The compositor shows composed media.  This is the media that will be rendered.
47     \item The program always uses overwrite as the paste operation.
48     \item Use the timeline edit handles to move the start and end points of that section.
49     \item Only middle mouse drag handle operations should be used normally.
50     \item Other drags will displace the media source/destination timeline correspondence.
51     \item To re-tile the mixer windows after you have resized and moved them around, you can use the Window
52     pulldown of \textit{Tile mixers} or the shortcut of Alt-t.
53 \end{itemize}
54
55 \subsubsection*{But, I want to use only the first set of audio tracks\dots}%
56 \label{ssub:but_use_only_first_audio}
57
58 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.  
59
60 Procedure to update the mixer audio source track list:
61
62 \begin{enumerate}
63     \item Single click to highlight the mixer window you want to re-associate to the audio track.
64     \item In that audio track’s patchbay click the expand toggle, the arrow on the right side.
65     \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.
66     \item Now, disassociate any audio that is unwanted by expanding its patchbay and toggling off the mixer.
67 \end{enumerate}
68
69 \subsubsection*{Expert Usage}%
70 \label{ssub:expert_usage}
71
72 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.
73
74 \begin{itemize}[noitemsep]
75     \item \textit{Src tracks} should be not playable and not armed in the main window patchbay gui.
76     \item \textit{Dst tracks} should be playable and armed in the main window patchbay gui.
77 \end{itemize}
78
79 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.
80
81 \begin{itemize}[noitemsep]
82     \item \textit{Turning on} a toggle (pointing up) includes the track in the src track list.
83     \item \textit{Turning off} a toggle (pointing right) removes the track from the src track list.
84 \end{itemize}
85
86 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.
87
88 To create a list of mixer viewers:
89
90 \begin{enumerate}
91     \item Setup the session \texttt{settings $\rightarrow$ format}, width, height, frame rate, color model, aspect ratio.
92     \item Create dst tracks using the a/v track pulldowns (or use shortcuts "t" / "T"),  armed and playable.
93     \item Append src tracks using \texttt{file $\rightarrow$ open $\rightarrow$ append tracks}, or the resource window using pasting.
94     \item Using the track patchbay, disarm editing and disable playback of the audio/video src tracks.
95     \item Using the track patchbay, mark the new tracks as \textit{mixer} source to be added to the viewer.
96     \item Create a mixer viewer using the main menu pulldown, or the shift "M” shortcut.
97     \item Repeat steps $3-6$ for each mixer viewer needed for the session editing.
98 \end{enumerate}
99
100 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.
101
102 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.
103
104 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.
105
106 \subsubsection*{Using Proxy with \textit{Open Mixers}}%
107 \label{ssub:using_proxy_open_mixers}
108
109 The best way to use proxy with your multiple cameras is to follow the steps below:
110
111 \begin{enumerate}
112     \item Load media with insertion strategy of \textit{create resources only}.
113     \item Highlight the media in the Resources window and right click on this to choose \textit{open mixers}.
114     \item Use the \texttt{Settings $\rightarrow$ Proxy settings}\dots to bring up the proxy menu.
115     \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.
116     \item When your editing is complete, use \textit{Settings} pulldown and proxy to \textit{original size}.
117 \end{enumerate}
118 Instead of Open Mixers, you can Insert Mixers with new tracks at the timeline insertion point.
119
120 \begin{figure}[htpb]
121     \centering
122     \includegraphics[width=1.0\linewidth]{mixer-playable.png}
123     \caption{A Mixer window showing available options with the white X designating no playing}
124     \label{fig:mixer-playable}
125 \end{figure}
126
127 \subsubsection*{Options available in the \textit{Mixer Windows}}%
128 \label{ssub:options_available_with_mixers}
129
130 There are several options you will see in each Mixer window that help with using them. These
131 are shown in figure~\ref{fig:mixer-playable}. To use these, RMB in the desired mixer window,
132 and choose one of the options as described here.
133
134 \begin{enumerate}
135     \item Fullscreen / Windowed - will bring up a fullscreen display of that window or revert to the original size.
136     \item Resize Window - allows for resizing the window to a choice of different sizes.
137     \item Tile Mixers - makes it easy to get all of the mixers nicely tiled to a standard size.
138 This is also available in the Window pulldown.
139     \item Playable - enabled by default so that you will see a checkmark next to it in the 
140 popup.  The benefit of making a mixer window not playable is to save cpu time. When a specific
141 mixer window is unchecked, so not Playable, a white cross appears in the upper left hand corner
142 of the mixer.  To switch back to playing again, RMB and choose Playable and this will turn
143 playing back on. The program automatically updates the mixer image when the timeline cursor
144 stops or when it is moved to a different spot even when play is disabled. You can see the
145 white cross designating not playable in figure~\ref{fig:mixer-playable}. Statistics that show
146 the savings are as follows on a 16 cpu laptop:
147 \begin{verbatim}
148   5 Mixers all playing -- cpu usage = 1275
149   1 only playing       -- cpu usage =  405
150   2 only playing       -- cpu usage =  800
151 \end{verbatim}
152 \end{enumerate}
153
154 \subsection{Mixer Align by Audio}%
155 \label{sub:mixer_align_audio}
156
157 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.
158
159 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!)
160
161 \begin{figure}[htpb]
162     \centering
163     \includegraphics[width=0.9\linewidth]{mixer-align01.png}
164     \caption{Align Mixers window}
165     \label{fig:mixer-align01}
166 \end{figure}
167
168 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}.  
169
170 \textit{Match} consists usually of the next set of steps to take advantage of this feature:
171
172 \begin{enumerate}
173     \item Load your camera media with insertion strategy of \textit{resources only}
174     \item Highlight in the Resources window, all of the media you want to mix.
175     \item Right mouse button on one of the media and click on Open Mixers; all mixer windows come up.
176     \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.
177     \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
178     \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. 
179     \item Use the \texttt{Window $\rightarrow$ Mixers$\dots$ $\rightarrow$  Align mixers} to bring up its dialog window.
180     \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.
181     \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.
182     \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.
183     \item Last, click on the OK green checkmark or to cancel click on the red X.  Or just close the gui.
184     \item To disarm the mixer tracks and related audio tracks for the next multi-cam operations.
185 \end{enumerate}
186
187 \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.
188
189 \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.
190
191 \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}.
192
193 \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.
194
195 \paragraph{Apply} button will apply the nudges that were generated during the Match or Match All execution (figure~\ref{fig:mixer-align02}).
196
197 \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}).
198
199 \begin{figure}[htpb]
200     \centering
201     \includegraphics[width=0.9\linewidth]{mixer-align02.png}
202     \caption{Aligned mixer window after "Match". Note the Nudge amounts above.}
203     \label{fig:mixer-align02}
204 \end{figure}
205
206 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:
207
208 \begin{enumerate}
209     \item \textit{Mixers} lists the mixers that are active by highlighting them all initially. You can decide that you do
210     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.
211     \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.
212     \item \textit{Audio Tracks} lists each of the mixer audio tracks.  Again, you can highlight a different set of which
213     mixer audio tracks that you want to use for the waveform correlation.  Any audio tracks that are not
214     highlighted, that is \textit{turned off}, will not be considered in the correlation calculation.
215 \end{enumerate}
216
217 \begin{figure}[htpb]
218     \centering
219     \includegraphics[width=1.0\linewidth]{mixer-align03.png}
220     \caption{Match setup for aligning by audio.  Note that [ ] are set over a sample waveform highlighted selection that includes that.}
221     \label{fig:mixer-align03}
222 \end{figure}
223
224 The corresponding input position is determined by track input correlation.
225
226 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.
227 $Nudge=0.0$ means just that.
228
229 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.
230
231 The Mixer with the master track generally does not move, everything else will be lined up (figure~\ref{fig:mixer-align04}).
232
233 \begin{figure}[htpb]
234     \centering
235     \includegraphics[width=1.0\linewidth]{mixer-align04.png}
236     \caption{An audio Match is complete. Note the waveform is aligned.}
237     \label{fig:mixer-align04}
238 \end{figure}
239
240 \textit{Match All} option basically consists of the following steps:
241
242 \begin{enumerate}
243     \item Highlight the Mixer to use in the Mixer listbox.
244     \item Highlight the Master Track you want to use in the Master Track listbox.
245     \item On the timeline, mark your selection on the Master Track.
246     \item Click on the \textit{Match All} button.
247     \item Note the nudge values to see if they make sense, and if so, press \textit{Apply}.
248 \end{enumerate}
249
250 \textit{Match} option basic steps (just for comparison with Match All):
251
252 \begin{enumerate}
253     \item Set the In/Out points [ ] of the target.
254     \item On the timeline, mark your selection.
255     \item Click on the \texttt{Match} button.
256     \item Note the nudge values to see if they make sense, then press \textit{Apply} (or \textit{Move} when doing a group).
257 \end{enumerate}
258
259 \subsection{Recover Mixer Windows}%
260 \label{sub:recover_mixer_windows}
261
262 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.
263
264 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.
265
266 \begin{enumerate}
267     \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.    
268 \end{enumerate}
269
270 \begin{figure}[htpb]
271         \centering
272         \includegraphics[width=0.35\linewidth]{mixer-patchbay01.png}
273         \caption{Mixer  patchbay}
274         \label{fig:mixer-patchbay01}
275 \end{figure}
276
277 \begin{enumerate}[resume]
278         \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.
279     \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.
280     \item Set your play to the beginning of the video using the \textit{Home} key or \textit{Home} transport button.
281     \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.
282     \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
283     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.
284     \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.
285 \end{enumerate}
286
287 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.
288
289 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.
290
291 \section{Align Timecodes}%
292 \label{sec:align_timecodes}
293
294 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 so that the recordings are timestamped with that synchronized time.  For example, the 3 cameras have embedded metadata as follows:
295
296 \begin{center}
297         \begin{tabular}{l r}
298         camera 1 & 00:00:00:01 \\
299         camera 2 & 00:00:10:07 \\
300         camera 3 & 00:00:17:22 \\
301         \end{tabular}
302 \end{center}
303
304 \begin{figure}[ht]
305         \centering
306         \includegraphics[width=1.0\linewidth]{timecode-01.png}
307         \caption{Before sync}
308         \label{fig:timecode-01}
309 \end{figure}
310
311 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. 
312
313 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.
314
315 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.
316
317 \begin{figure}[ht]
318         \centering
319         \includegraphics[width=1.0\linewidth]{timecode-02.png}
320         \caption{Clapperboard button}
321         \label{fig:timecode-02}
322 \end{figure}
323
324 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}.
325
326 \begin{figure}[ht]
327         \centering
328         \includegraphics[width=1.0\linewidth]{timecode-03.png}
329         \caption{After sync}
330         \label{fig:timecode-03}
331 \end{figure}
332
333 Timecode synchronization in \CGG{} is based on the inclusion of an actual \textit{timecode} saved in
334 the media as can be seen using the \texttt{ffprobe} or \texttt{mediainfo} command line. Examples are shown here:
335
336 \begin{lstlisting}[style=sh]
337 # ffprobe tut1.mov
338                 Metadata:
339                 handler_name:   VideoHandler
340                 timecode:               00:00:20:01
341
342 # mediainfo mtb.mp4
343                 Time code of first frame:       11:05:49:41
344                 Time code, striped:             Yes
345                 Title:                          GoPro AVC
346 \end{lstlisting}
347
348 Many newer cameras and media in a MOV container have valid timecodes often with SMPTE
349 compliant start Timecode in Quicktime format, whereas others do not. Most low end cameras do not.
350 When no timecode is present, various clock time values may be used to synchronize instead.
351
352 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:
353
354 \begin{enumerate}
355         \item if the format context has a timecode use: \texttt{fmt\_ctx $\rightarrow$ timecode - 0}
356         \item if the layer/channel has a timecode use: \texttt{st $\rightarrow$ timecode - (start\_time -nudge)}
357         \item find the first program stream with video stream, and if the video stream has a timecode use:
358         \texttt{st $\rightarrow$ timecode - (start\_time-nudge)}
359         \item find timecode in any stream use: \texttt{st $\rightarrow$ timecode}
360         \item read 100 packets, save \texttt{ofs=pkt.pts*st $\rightarrow$ time\_base - st $\rightarrow$ nudge}:
361         \begin{itemize}
362                 \item decode frame for video stream of the first program
363                 \item if \texttt{frame $\rightarrow$ timecode} has a timecode use:\texttt{ frame $\rightarrow$ timecode - ofs}
364                 \item if side\_data has gop (group of pictures) timecode use: \texttt{gop $\rightarrow$ timecode - ofs}
365                 \item if side\_data has smpte timecode use: \texttt{smpte $\rightarrow$ timecode - ofs}
366         \end{itemize}
367         \item if the \texttt{filename/url} scans \texttt{*date\_time.ext} use: \texttt{date\_time} (yr, month, day, hr, min, sec, nanosecond)
368         \item if stat (display file status) works on the \texttt{filename/url} use: \texttt{mtime} (modification time)
369         \item finally, if none of the above are usable, then return \texttt{failure}
370 \end{enumerate}
371
372 Operation of Align Timecodes includes the following options to help in your setup and review:
373
374 \begin{itemize}
375         \item \textit{Align Timecodes} under the \textit{Tracks} pulldown
376         \item \textit{Clapperboard} icon on the main timeline to set a timecode.
377         \item Timecode option added to timebar choices (in timecode $hh:mm:ss:ff$) with use of the session frame
378         rate as a time standard.
379         \item Time Code Start in the Resources window on the bottom of \textit{Info} for the media if the timecode for that
380         asset has been scanned and is known. You can scan the asset’s Timecode by using the middle mouse
381         button on its track which then displays the timecode for that on the timebar.
382 \end{itemize}
383
384 \begin{figure}[ht]
385         \centering
386         \includegraphics[width=1.0\linewidth]{timecode-04.png}
387         \caption{Timecode via MMB on track and via Resources windows/Info}
388         \label{fig:timecode-04}
389 \end{figure}
390
391 \paragraph*{Notes}
392
393 \begin{itemize}
394         \item \textit{Align Timecodes} is a good first step to quickly sync media up either perfectly or roughly.
395         \item Currently this is not known to function for syncing audio recorded on a separate audio device,
396         because no test material was provided to ensure that this works.
397         \item Disarmed tracks will not be affected by using \textit{Align Timecodes}.
398         \item No edits or sections will get cut off on the left or elsewhere, unless the moved edits overlap.
399         \item You can add a timecode to video using an \texttt{ffmpeg} command if you want to align a particular video
400         which has no timecode to ones that do. For example:
401 \end{itemize}
402
403 \begin{lstlisting}[style=sh]
404 ffmpeg -i originalfile.mp4 -metadata timecode="14:36:08:29" -c copy newfile.mp4
405
406 # where "-i" is followed by the input filename
407 # where "-metadata timecode" is followed by the timecode key
408 # where "-c copy" just copies the video/audio to the following output filename
409 \end{lstlisting}
410
411 \section{Multi-Pane Support}%
412 \label{sec:multipane_support}
413
414 The main \CGG{} edit window holds the Track Canvas which can be divided into 4 panes of track data: 1 or 2 vertical panes and/or 1 or 2 horizontal panes.  To split the track, use the Window pulldown, and then click on \textit{Split X} or \textit{Split Y} depending on how you wish to split the track.  Alternatively, the canvas pane types can be changed using keys \textit{<Ctrl-1>} for toggle split horizontal or \textit{<Ctrl-2>} for toggle split vertical.  Or the track can be split into panes by using the \textit{+ widget} in the lower right hand corner of the track canvas.  Once the track has been divided, you can use the + widget shortcut or the drag bars to change the size of the panes.
415
416 Multi-Pane, or split screen, allows you to look at the first part of a movie at the same time as a part that is a long ways away on the timeline which would have been off the screen.  By having multiple panes, you can see the 2 parts you want to look at simultaneously and drag/drop easily between the 2.  Also, the \textit{X pane split} is extremely convenient for laptop users and computer monitors with small screens since it can be used with horizontal scrolling with the mouse wheel + Ctrl.  The \textit{Y-pane split} makes it easy to see 2 simultaneous drag and drop zones when you have lots of tracks (figure~\ref{fig:multi-pane01}).
417
418 \begin{figure}[htpb]
419     \centering
420     \includegraphics[width=1.0\linewidth]{multi-pane01.png}
421     \caption{Shown are 4 panes that have split in X and Y the main track canvas}
422     \label{fig:multi-pane01}
423 \end{figure}
424
425 \section{Multi-Screen / Playback Configuration}%
426 \label{sec:multiscreen_playback_configuration}
427
428 \CGG{} supports 2 separate preferences for the playback configuration.  \CGG{} can be operated in a single or dual screen configuration, both by using Xinerama or dual screen configuration of X windows.  It will take some setup using Xconfig to make this work.
429
430 The \texttt{Settings $\rightarrow$ Preferences} menu has \textit{Playback A and Playback B} tabs.  The target display and audio device configuration can be separate, to support up to 2 display and/or audio device stations.  The active configuration displays an asterisk (*) in its selection tab and the selected tab will be made active when OK is pressed.  For example: you may have a dual screen monitor system with the left screen showing the \CGG{} main window and the right screen showing the composer.  Another setup might use a monitor for the left screen and an HDTV as the right screen displaying the composer.  When a playback configuration is selected, the audio/video device configuration is switched to the playback selection.  The active playback setup can be changed through use of the menu pulldown of \texttt{Settings $\rightarrow$ Preferences} or via the remote control menu selection (see the section Remote Control for DVB for more detail). 
431
432 \subsubsection*{Yes, you can watch TV on \CGG{} instead of \CGG{} on TV.}%
433 \label{ssub:watch_tv_on_cinelerra}
434
435 Figure~\ref{fig:multi-screen01} shows partial window of \textit{*Playback A} selected and the second tab for \textit{Playback B}.  Note that on the bottom right of the window, \textit{Default B Display:} is set to $:0.1$, representing the setting for Screen 1.  On the unseen \textit{Playback A} window, the \textit{Default A Display:} will be set to $:0.0$ meaning for Screen 0.  Otherwise, the default would be nothing there or just <empty>.
436
437 \begin{figure}[htpb]
438     \centering
439     \includegraphics[width=0.75\linewidth]{multi-screen01.png}
440     \caption{Multi-screen Playback example useful for watching \CGG{} run on the \textit{big screen}}
441     \label{fig:multi-screen01}
442 \end{figure}
443
444 \section{Multi-Session}%
445 \label{sec:multi_session}
446
447 You can run as many sessions of \CGG{} as your computer resources allow.  However, if you are using the same \texttt{\$HOME/.bcast5}, changes you make for one may impact the others. You can always create and rename a new \texttt{.bcast5} from:\\
448 \texttt{Settings $\rightarrow$ Preferences $\rightarrow$ Interface $\rightarrow$ Index files:} and press \textit{Index files go here}
449
450 \section{Multi-Viewer Window Support}%
451 \label{sec:multi_viewer_window_support}
452
453 You can create as many Viewer windows as you want in \CGG{}.  These are handy for users who are adept at working with a lot of different clips simultaneously.  By bringing up multiple Viewer windows, each clip can be edited in its own area, making it easy to see all of the separate pieces.  After you have loaded some media files, to start another Viewer window, right click on one of the pieces of media in the Resources window.  This brings up a menu of several options, one of which is \textit{view in new window}.  Choose this option and that media will come up in a new Viewer window for you to work (figure~\ref{fig:multi-view01}).
454
455 \begin{figure}[htpb]
456     \centering
457     \includegraphics[width=1.0\linewidth]{multi-view01.png}
458     \caption{Shown here are 3 Viewer windows and the \textit{View in new window} popup}
459     \label{fig:multi-view01}
460 \end{figure}
461