Prevent conflict with lower and upper case for outlier cases
[goodguy/cin-manual-latex.git] / parts / Stuff.tex
index 250284e896b31354ab1bfcfc5e411c42f2863267..bef47f4b1b58456fa2ddb16e7395650d9ffba10f 100644 (file)
@@ -5,6 +5,7 @@ This section describes in detail some areas of \CGG{} to help explain how things
 
 \section{Copy/Paste and Highlight Usage}%
 \label{sec:copy_paste_highlight_usage}
 
 \section{Copy/Paste and Highlight Usage}%
 \label{sec:copy_paste_highlight_usage}
+\index{copy/paste}
 
 There are 3 types of copy/cut and paste methods which exist in X windows, and most modern programs use 2 of them.  The 3 cases are:
 
 
 There are 3 types of copy/cut and paste methods which exist in X windows, and most modern programs use 2 of them.  The 3 cases are:
 
@@ -14,8 +15,8 @@ There are 3 types of copy/cut and paste methods which exist in X windows, and mo
     \item[copy and paste] called secondary (or clipboard) selection. Some more modern programs use Ctrl-C/Ctrl-X and Ctrl-V for this (some use other keys or qualifiers, like Shift).
 \end{description}
 
     \item[copy and paste] called secondary (or clipboard) selection. Some more modern programs use Ctrl-C/Ctrl-X and Ctrl-V for this (some use other keys or qualifiers, like Shift).
 \end{description}
 
-\subsection*{How it works:}%
-\label{sub:how_it_works}
+\subsection*{How Copy/Paste works:}%
+\label{sub:how_copy_paste_works}
 
 All of the methods use window \textit{properties} to attach data, called a selection, to a source window.  The program advertises the selection by using the X server.  The window property used determines which selection type is set/advertised by the new selection.
 
 
 All of the methods use window \textit{properties} to attach data, called a selection, to a source window.  The program advertises the selection by using the X server.  The window property used determines which selection type is set/advertised by the new selection.
 
@@ -52,6 +53,7 @@ When a text selection is set, the selected text is redrawn using selected-highli
 
 \subsection{Playing/Seeking}%
 \label{sub:playing_seeking}
 
 \subsection{Playing/Seeking}%
 \label{sub:playing_seeking}
+\index{seek!playing}
 
 \textit{Seeking} targets and displays the next frame.  The next frame is targeted because frame zero has no previous.  When you seek, you reposition to just before the target frame, and since the play direction has not been established (there is no direction when seeking) it shows you the next frame.  This produces the expected behavior when you seek to frame zero; you see the first frame.  Seeking displays in the compositor what you are getting ready to work with/edit/etc; always showing the next frame in relation to the cursor. Technically, since seeking just resets the position, it would be correct not to update the compositor, but it is best to seek and show the next frame to confirm that it is the frame you expected to see.
 
 
 \textit{Seeking} targets and displays the next frame.  The next frame is targeted because frame zero has no previous.  When you seek, you reposition to just before the target frame, and since the play direction has not been established (there is no direction when seeking) it shows you the next frame.  This produces the expected behavior when you seek to frame zero; you see the first frame.  Seeking displays in the compositor what you are getting ready to work with/edit/etc; always showing the next frame in relation to the cursor. Technically, since seeking just resets the position, it would be correct not to update the compositor, but it is best to seek and show the next frame to confirm that it is the frame you expected to see.
 
@@ -64,7 +66,7 @@ Simple explanation of what you will be seeing in the compositor when playing:
     \item[Play backward] the frame to the left of the cursor in the timeline gets displayed.
 \end{description}
 
     \item[Play backward] the frame to the left of the cursor in the timeline gets displayed.
 \end{description}
 
-The reason behind this \textit{play} methodology is that you want to know what you just played so that you know what matches what you just saw/heard in case that is the desired stuff.   You don't want the compositor to show you what you have not yet played -- you need to see this frame to analyze/check to see if it is what you want.  This behavior applies to any playing operation, such as the \textit{keypad} or \textit{Frame forward / Frame reverse} buttons.  You can still easily see the actual insertion point in the zoombar at the bottom of the timeline -- sixth button over or 3rd button from the right side.   Also note the following:
+The reason behind this \textit{play} methodology is that you want to know what you just played so that you know what matches what you just saw/heard in case that is the desired stuff.   You don't want the compositor to show you what you have not yet played -- you need to see this frame to analyze/check to see if it is what you want.  This behavior applies to any playing operation, such as the \textit{keypad} or \textit{Frame forward / Frame reverse} buttons.  You can still easily see the actual insertion point in the zoombar at the bottom of the timeline -- seventh button over or 3rd button from the right side.   Also note the following:
 
 \begin{description}
     \item[Blinking insertion point on the timeline] seeking/positioning was the last operation.
 
 \begin{description}
     \item[Blinking insertion point on the timeline] seeking/positioning was the last operation.
@@ -90,6 +92,7 @@ To recap, position is usually set in the program as a location that is between a
 
 \subsection{Always Show Next Frame}%
 \label{sub:always_show_next_frame}
 
 \subsection{Always Show Next Frame}%
 \label{sub:always_show_next_frame}
+\index{always show next frame}
 
 Since some users prefer the insertion pointer to reflect the same as the Compositor a choice is available.  For playing forward, there is a preference option which results in what looks like 1 was added to the frame displayed in the Compositor window.  To enable this mode, check the box \texttt{Always show next frame}, and this will be saved to \texttt{.bcast5}.  The option checkbox is in the \texttt{Settings $\rightarrow$ Preferences $\rightarrow$ Appearance} tab and when checked, any forward \textit{plays} in the Compositor window show the same frame as you would with a seek.  Reverse plays and plays using a selection or In/Out pointers (with Ctrl) work the same as without this preference set.  But you will no longer see the odd behavior where if you frame advance forward and then frame advance backward, the displayed frame does not change -- instead it will change and look more natural.
 A color indicator that shows in the main track canvas timeline and the compositor timeline reminds the user which mode is currently active.  The cursor in the compositor turns \textit{red} for default mode and \textit{white} for \textit{Always show next frame} mode.  The top portion of the insertion cursor in the track canvas mirrors this, with red for default and white otherwise.
 
 Since some users prefer the insertion pointer to reflect the same as the Compositor a choice is available.  For playing forward, there is a preference option which results in what looks like 1 was added to the frame displayed in the Compositor window.  To enable this mode, check the box \texttt{Always show next frame}, and this will be saved to \texttt{.bcast5}.  The option checkbox is in the \texttt{Settings $\rightarrow$ Preferences $\rightarrow$ Appearance} tab and when checked, any forward \textit{plays} in the Compositor window show the same frame as you would with a seek.  Reverse plays and plays using a selection or In/Out pointers (with Ctrl) work the same as without this preference set.  But you will no longer see the odd behavior where if you frame advance forward and then frame advance backward, the displayed frame does not change -- instead it will change and look more natural.
 A color indicator that shows in the main track canvas timeline and the compositor timeline reminds the user which mode is currently active.  The cursor in the compositor turns \textit{red} for default mode and \textit{white} for \textit{Always show next frame} mode.  The top portion of the insertion cursor in the track canvas mirrors this, with red for default and white otherwise.
@@ -128,11 +131,14 @@ Figure~\ref{fig:cursor02} using the \textit{Always show next frame} method where
 
 \subsection{Seeking Issues}%
 \label{sub:seeking_issue}
 
 \subsection{Seeking Issues}%
 \label{sub:seeking_issue}
+\index{seek!issue}
 
 If you have an issue playing a video and not seeing it in the Compositor (just see a black screen), it is most likely due to the media not being designed to be \textit{editable}.  It is most likely not damaged.  Generally it just does not have keyframes which are needed for seeking which is what is done when you move around the media and start playing in the middle.  The media plays just fine in the compositor if you always play from the beginning because then you don’t need keyframes to seek.  You can get around this problem if you proxy the media.  A good choice to use for the proxy would be \textit{use scalar}, \textit{ffmpeg/mp4} and size of $\frac{1}{2}$.  The proxied media can then seek and you will see it play in the compositor because keyframes exist.
 
 \section{Color Space and Color Range Affecting Playback}%
 \label{sec:color_space_range_playback}
 
 If you have an issue playing a video and not seeing it in the Compositor (just see a black screen), it is most likely due to the media not being designed to be \textit{editable}.  It is most likely not damaged.  Generally it just does not have keyframes which are needed for seeking which is what is done when you move around the media and start playing in the middle.  The media plays just fine in the compositor if you always play from the beginning because then you don’t need keyframes to seek.  You can get around this problem if you proxy the media.  A good choice to use for the proxy would be \textit{use scalar}, \textit{ffmpeg/mp4} and size of $\frac{1}{2}$.  The proxied media can then seek and you will see it play in the compositor because keyframes exist.
 
 \section{Color Space and Color Range Affecting Playback}%
 \label{sec:color_space_range_playback}
+\index{color!space}
+\index{color!range}
 
 Playback \textit{single step} and \textit{plugins} cause the render to be in the session color model, while continuous playback with no plugins tries to use the file’s best color model for the display (for speed).
 This can create a visible effect of a switch in color in the Compositor, usually shown as grayish versus over-bright.
 
 Playback \textit{single step} and \textit{plugins} cause the render to be in the session color model, while continuous playback with no plugins tries to use the file’s best color model for the display (for speed).
 This can create a visible effect of a switch in color in the Compositor, usually shown as grayish versus over-bright.
@@ -160,8 +166,28 @@ There is now program code to look for RGB versus YUV color model mismatches.  Yo
     \item[YUV color range] default choice is JPEG,   alternate is MPEG
 \end{description}
 
     \item[YUV color range] default choice is JPEG,   alternate is MPEG
 \end{description}
 
+Some general tips (See also \ref{sec:video_attributes} \textit{Color model} and \nameref{sec:overview_color_management}):
+\begin{itemize}
+       \item If your hardware allows it use RGB-Float (in \texttt{Settings $\rightarrow$ Format}); this format does not lead to transfer errors from one model to another, but it uses more cpu.
+       \item Use RGB-8 if the source is RGB and YUV-8 if the source is YUV (most commonly used).
+       \item If you notice alterations in color/brightness representation, try playing with color models in \texttt{Settings $\rightarrow$ Format} and with \textit{YUV color space} and \textit{YUV color range} in \texttt{Settings $\rightarrow$ Preferences $\rightarrow$ Appearance} tab. Another possibility is to check if the display color model conforms to the project color model. A practical case that may arise is as follows\protect\footnote{thanks to DeJay}: YUV source with limited color range (MPEG or TV); \CGG{} set with the color range to extended (JPEG or PC); the colors on the compositor will be flattened. If we set the color range to MPEG the colors will be correct but hard clipping will occur. In this case the best result is presented by setting the color range to JPEG but then doing a conversion of the source to JPEG color range via the \texttt{ColorSpace} plugin. Summary table:
+\end{itemize}
+
+\begin{center}
+       \begin{tabular}{|c|c|c|} 
+               \hline
+               \textbf{Source} & \textbf{YUV Color Range} & \textbf{Colors} \\ 
+               \hline
+               MPEG & JPEG & Flat colors \\ 
+               MPEG & MPEG & Hard clipping \\
+               MPEG + conversion to JPEG & JPEG & Colors OK \\
+               \hline
+       \end{tabular}
+\end{center}
+
 \section{Automatic "Best Model" Media Load}%
 \label{sec:conform_the_project}
 \section{Automatic "Best Model" Media Load}%
 \label{sec:conform_the_project}
+\index{color!model}
 When you load media with the insertion strategy of \textit{replace current project}, the program code will
 automatically use the "best model" for the render based on the media's codec.  The best model is pretty
 much going to be what works well for television.  This automation was added to facilitate easy use of
 When you load media with the insertion strategy of \textit{replace current project}, the program code will
 automatically use the "best model" for the render based on the media's codec.  The best model is pretty
 much going to be what works well for television.  This automation was added to facilitate easy use of
@@ -173,8 +199,8 @@ click on the highlighted media and choosing \textit{Match project size}.
 However, this automatic method leads to the dilemma of where you have a 10-bit media file and it would
 get loaded as RGBA-8 when you would prefer it to be RGBA-Float.  So instead of using \textit{replace current
 project} when loading your media, you would have to make sure the project is first set to your desired
 However, this automatic method leads to the dilemma of where you have a 10-bit media file and it would
 get loaded as RGBA-8 when you would prefer it to be RGBA-Float.  So instead of using \textit{replace current
 project} when loading your media, you would have to make sure the project is first set to your desired
-Format.  This could be done with the File$\rightarrow$New project and then setting your Color
-Model to RGBA-Float and whatever other parameters you want.  Next when doing a File$\rightarrow$Load, use
+Format.  This could be done with the \texttt{File$\rightarrow$New project} and then setting your Color
+Model to RGBA-Float and whatever other parameters you want.  Next when doing a \texttt{File$\rightarrow$Load}, use
 \textit{Append in new tracks} or \textit{Create resources only}. This avoids using the "best model"
 technique and uses instead what you have designated so that if you set the Color Model to RGBA-Float that
 will be in effect.
 \textit{Append in new tracks} or \textit{Create resources only}. This avoids using the "best model"
 technique and uses instead what you have designated so that if you set the Color Model to RGBA-Float that
 will be in effect.
@@ -203,8 +229,11 @@ There are currently 2 actions implemented:
 
 This is \textit{simple} animation so you can expect speech synthesis not to be that good.  And you will have to adjust punctuation and spelling based on the sound.  Since the dialog is rendered on-demand, there is a delay when each character starts to speak but you can split dialog into shorter blocks to reduce the delay.
 
 
 This is \textit{simple} animation so you can expect speech synthesis not to be that good.  And you will have to adjust punctuation and spelling based on the sound.  Since the dialog is rendered on-demand, there is a delay when each character starts to speak but you can split dialog into shorter blocks to reduce the delay.
 
+You can see a step by step example in the website \url{http://www.g-raffa.eu/Cinelerra/HOWTO/animations.html}
+
 \section{Textbox Non-std Character / Unicode Insertion}%
 \label{sec:textbox_non_std_character_unicode}
 \section{Textbox Non-std Character / Unicode Insertion}%
 \label{sec:textbox_non_std_character_unicode}
+\index{unicode insertion}
 
 If you want to enter a special character -- like a bullet, an accent grave character, or a mathematical summation symbol -- you can use the unicode equivalent in a textbox to do so.  In the textbox, keyin Ctrl-Shift-U which puts you into single character unicode mode, then keyin the numerical value for the intended single character followed by the carriage return.  For a voluminous list of possible special characters, you can go to {\small \url{https://unicode-table.com/en/}} on the internet to choose by highlighting a character to get its numerical equivalence.  For example, $U+2022$ is a bullet.  If you make a mistake, you can use the \textit{backspace} key or if you want to exit unicode-insert-mode, use the \textit{ESC} key.  This feature is especially useful with the \textit{Title} plugin and for naming Tracks in the main window.
 
 
 If you want to enter a special character -- like a bullet, an accent grave character, or a mathematical summation symbol -- you can use the unicode equivalent in a textbox to do so.  In the textbox, keyin Ctrl-Shift-U which puts you into single character unicode mode, then keyin the numerical value for the intended single character followed by the carriage return.  For a voluminous list of possible special characters, you can go to {\small \url{https://unicode-table.com/en/}} on the internet to choose by highlighting a character to get its numerical equivalence.  For example, $U+2022$ is a bullet.  If you make a mistake, you can use the \textit{backspace} key or if you want to exit unicode-insert-mode, use the \textit{ESC} key.  This feature is especially useful with the \textit{Title} plugin and for naming Tracks in the main window.