Andrea updated Plugins due to updated code for 14 of them
[goodguy/cin-manual-latex.git] / parts / Plugins.tex
index a52a8ef715bd0c80a88432f07527fd0864f71688..3d907cdef1b3d6dc7c31c6fb8e1eca0fc6a28ef1 100644 (file)
@@ -1,5 +1,6 @@
 \chapter{Plugins}%
 \label{cha:plugins}
+\index{plugins}
 
 There are realtime effects -- these are the most useful and probably all you will ever need -- and rendered effects.
 The rendered effects are discussed separately in the \nameref{sec:rendered_effects}  section.
@@ -12,7 +13,7 @@ Effect plugins modify the track when played, according to how they are set, with
     \label{fig:video-plugins}
 \end{figure}
 
-There is a choice of plugin icons which can be displayed.
+There is a choice of plugin icons \index{plugins!icons} which can be displayed.
 
 In \texttt{Settings$\rightarrow$ Preferences$\rightarrow$ Appearance} tab, there is a pulldown for \textit{Plugin icons} where the user can choose between the \textit{original} icons, \textit{regular} or \textit{smoother}, \textit{cinfinity}\protect\footnote{Cinfinity /2 icon set is credited to Sam - Creative Common By -- \url{https://creativhecommons.org/licenses/by/3.0/}} -- the default modernized set, or \textit{cinfinity2} (figure~\ref{fig:audio-plugins}).
 
@@ -31,10 +32,10 @@ Note that when you change the plugin icons, your session will automatically save
     \node (img1) [yshift=0cm, xshift=0cm, rotate=0] {\includegraphics[width=0.5\linewidth]{plugin-icons.png}};
     \node [yshift=-6mm, xshift=-1cm,anchor=east] at (img1.north west) (Preferences) {Preferences Window};
     \node [yshift=-14mm, xshift=-1cm,anchor=east] at (img1.north west) (Tab) {Tab section};
-    \node [yshift=-35mm, xshift=-1cm,anchor=east] at (img1.north west) (Icon) {Plugin icon choices};
+    \node [yshift=-34mm, xshift=-1cm,anchor=east] at (img1.north west) (Icon) {Plugin icon choices};
     \draw [->, line width=1mm] (Preferences) edge  ([yshift=-6mm] img1.north west);
     \draw [->, line width=1mm] (Tab) edge  ([yshift=-14mm] img1.north west);
-    \draw [->, line width=1mm] (Icon) edge    ([yshift=-35mm] img1.north west);
+    \draw [->, line width=1mm] (Icon) edge    ([yshift=-34mm] img1.north west);
     \end{tikzpicture}
     \caption{Screencast showing the screen to change your plugin icons set}
     \label{fig:plugin-icons}
@@ -43,13 +44,15 @@ Note that when you change the plugin icons, your session will automatically save
 \section{How to Use Plugins}%
 \label{sec:how_use_plugins}
 
-\textit{Realtime} effect plugins are listed in the Resources window as \textit{Audio} Effects and \textit{Video} Effects. Effect plugins are used by dragging them from the Resources window onto an audio track if it is an audio effect or video track if it is a video effect. You will see a colored bar appear beneath the track with the plugin name on it. If there is data on the destination track, the effect is applied to the entire track, unless a region of the track is selected in which case the effect is pasted into that region only. If there is no data on the track the effect is not added.
+\textit{Realtime} effect plugins are listed in the Resources window as \textit{Audio} Effects and \textit{Video} Effects. Effect plugins are used by dragging them from the Resources window onto an audio track if it is an audio effect or video track if it is a video effect. You will see a colored bar \index{plugins!toolbar} appear beneath the track with the plugin name on it. If there is data on the destination track, the effect is applied to the entire track, unless a edit or a region of the track is selected (wipe selection or In/Out points) in which case the effect is pasted into that region only. If there is no data on the track or no selected region set, the effect is not added.
 
-Plugins are layered under the track they apply to. When dragging more than one effect onto a track, you will see the effects layering from \textit{top to bottom}, on the bottom of that track. When the track is played back, effects are processed from \textit{top to bottom}. The output of the top effect becomes the input of the bottom effect and so on.
+Plugins are layered under the track they apply to. When dragging more than one effect onto an armed track, you will see the effects layering from \textit{top to bottom}, on the bottom of that track. When the track is played back, effects are processed from \textit{top to bottom}. The output of the top effect becomes the input of the bottom effect and so on. "The pipeline in Cinelerra's\protect\footnote{credit to Original Creator} plugin design is the \textit{pull} method. The rendering pipeline starts at the final output and the final steps in the rendering pipeline are reading the data from disk. Every step in the rendering chain involves requesting data from the previous step. When the rendering pipeline eventually requests data from a plugin chain, each plugin requests data from the plugin before it. This is less intuitive than the push method but is much more powerful. Realtime plugins written using the pull method can change the rate data is presented to the viewer and the direction of playback. The pull method allows plugins to take in data at a higher rate than they send it out."  Side note: if you want to avoid the automatic \textit{top to bottom} application of plugins, you can take advantage of \textit{nested assets} to manipulate the order the plugins are applied (see  \ref{sec:nesting_clips_and_assets}).
 
-Instead of dragging from the Resources window, effects may be applied to a track via a popup menu. Right click on a track and select \textit{Attach effect} from the popup. The attach effect dialog gives you more capability than just dragging and dropping. For example, the attach effect dialog lets you attach two more types of effects: \textit{shared effects} and \textit{shared tracks} which are explained in a later section. Select a plugin from the Plugins column and hit the green colored checkmark under the plugins column to attach it. The result is the same as if the effect was dragged from the Resources window.
+Instead of dragging from the Resources window, effects may be applied to a single armed track or a region via a popup menu. On the entire track or on a region determined by a selection wipe or by the In/Out points, right click and select \textit{Attach effect} \index{plugins!attch effect} from the popup. The attach effect dialog gives you more capability than just dragging and dropping. For example, the attach effect dialog lets you attach two more types of effects: \textit{shared effects} and \textit{shared tracks} which are explained in a later section. Select a plugin from the Plugins column and hit the green colored checkmark under the plugins column to attach it. The result is the same as if the effect was dragged from the Resources window.
+One more method to apply an effect on all armed tracks of the same type (video or audio) is to use the \textit{Video} or \textit{Audio} pulldown \textit{Attach Effect} option. This brings up a menu which has a useful checkbox to \textit{Attach single standalone and share others} (see \ref{sec:shared_effect_tracks}). The default setting is checked on.
 
-After attaching an effect to a track, it often needs to be configured. There are two ways to get to the configuration controls. Click on the magnifying glass symbol on the right side of the effect bar -- this is the middle symbol on the bar as you can see in the picture below. Alternatively, you can right click on the effect bar to bring up the effect popup which has a \textit{Show} option. Either method causes the GUI for the effect to appear in a separate window. There will not be a popup if the plugin has no GUI.
+After attaching an effect to a track, it often needs to be configured. There are two ways to get to the configuration controls. Click on the magnifying glass \index{plugins!show controls} symbol on the right side of the effect bar -- this is the middle symbol on the bar as you can see in the picture below. Alternatively, you can right click on the effect bar to bring up the effect popup which has a \textit{Show} option. Either method causes the GUI for the effect to appear in a separate window. There will not be a popup if the plugin has no GUI.
 
 
 Besides the magnifying glass, for Show Controls, on the effect colored bar beneath the track, there are two more symbols.
@@ -60,31 +63,32 @@ Besides the magnifying glass, for Show Controls, on the effect colored bar benea
     \includegraphics[width=0.7\linewidth]{button-options.png}
 \end{wrapfigure}
 
-The rightmost knob is used to Turn Off/Turn On the effect where the default is On. This is useful to easily see that the plugin is doing what you expect. The leftmost symbol that looks like a gear is for \textit{Preset Edit} and its usage is described in the section \nameref{sec:saved_plugin_preset}.
+The rightmost knob is used to Turn Off/Turn \index{plugins!turn on/off} On the effect where the default is On. This is useful to easily see that the plugin is doing what you expect. The leftmost symbol that looks like a gear is for \textit{Preset Edit} \index{plugins!preset edit} and its usage is described in the section \nameref{sec:saved_plugin_preset}.
 
 \section{Editing Effects}%
 \label{sec:editing_effects}
+\index{plugins!editing}
 
 Many operations exist for manipulating effects once they are on the timeline. Because mixing effects and media is quite complex, the methods used in editing effects are not as concise as cutting and pasting. Some of the editing happens by dragging in/out points, some of the editing happens through popup menus, and some of it happens by dragging effects.
 
-When enabled, which is the default, and you edit tracks, the effects follow the editing decisions. If you cut from a track, the effect shrinks. If you drag edit in/out points, the effect changes length. This behavior can be disabled by selecting \texttt{Settings$\rightarrow$ Preferences$\rightarrow$ Interface tab$\rightarrow$ Editing section}, see figure~\ref{fig:editing-effects}.
+When enabled, which is the default, and you edit tracks, the effects follow the editing decisions. If you cut from a track, the effect shrinks. If you drag edit in/out points, the effect changes length. This behavior can be disabled by selecting \texttt{Settings$\rightarrow$ Preferences$\rightarrow$ Interface tab$\rightarrow$ Editing section}, see figure~\ref{fig:editing-effects} \index{keyframes reticle}.
 
 \begin{figure}[htpb]
     \centering
     \includegraphics[width=0.9\linewidth]{editing-effects.png}
-    \caption{Screencast of the native Video plugins in the default Cinfinity icon set.}
+    \caption{Screencast showing the menu where Editing Effects behavior is changed.}
     \label{fig:editing-effects}
 \end{figure}
 
-To edit effects, you can move the timeline cursor over the effect borders until it changes to a resize left or resize right icon. In this state, if you drag the end of the effect, it performs an edit just like dragging an edit edge. The five editing behaviors of track trimming apply to effect trimming and they are bound to the mouse buttons that you set in interface preferences as shown in the previous screencast. \textit{Trimming} simply means changes the duration dragging the edges.
+To edit effects, you can move the timeline cursor over the effect borders until it changes to a resize left or resize right icon. In this state, if you drag the end of the effect, it performs an edit just like dragging an edit edge. The five editing behaviors of track trimming \index{trim} apply to effect trimming and they are bound to the mouse buttons that you set in interface preferences as shown in the previous screencast. \textit{Trimming} simply means changes the duration dragging the edges.
 
-When you perform a trim edit on an effect, the effect boundary is moved by dragging it. Unlike track editing, the effect has no source length. You can extend the end of an effect as much as you want. Also unlike track editing, the starting position of the drag operation does not bind the edit decision to media. The media the effect is bound to does not follow effect edits. Other effects, however, do follow editing decisions made on an effect. You can disable effects from being subject to the edit decisions by using the pulldown Settings and toggling off Edit effects. If you drag the end of an effect which is lined up to effects on other tracks, the effects on the other tracks will be edited while the media stays the same. When you drag an effect in from the Resources window you can insert the effect in the portion of the row unoccupied by the trimming operation. In some cases you will want a trimming operation to change only one row of effects. This can be achieved by first positioning the insertion point on the start or end of the effect. Then press the shift key while beginning the trimming operation. This causes the operation to change only one row of effects.
+When you perform a trim edit on an effect, the effect boundary is moved by dragging it. Unlike track editing, the effect has no source length. You can extend the end of an effect as much as you want. Also unlike track editing, the starting position of the drag operation does not bind the edit decision to media. The media the effect is bound to does not follow effect edits. Other effects, however, do follow editing decisions made on an effect. You can disable effects from being subject to the edit decisions by using the pulldown \textit{Settings} and toggling off Edit effects. If you drag the end of an effect which is lined up to effects on other tracks, the effects on the other tracks will be edited while the media stays the same. When you drag an effect in from the Resources window you can insert the effect in the portion of the row unoccupied by the trimming operation. In some cases you will want a trimming operation to change only one row of effects. This can be achieved by first positioning the insertion point on the start or end of the effect. Then press the shift key while beginning the trimming operation. This causes the operation to change only one row of effects.
 
-You can move effects up or down. Every track can have a stack of effects under it. By moving an effect up or down you change the order in which effects are processed in the stack. Go to an effect and right click to bring up the effect menu. The \textit{Move up} and \textit{Move down} options move the effect up or down. When you are moving effects up or down, be aware that if they are shared as shared effects, any references will be pointing to a different effect after the move operation.
+You can move effects up or down. Every track can have a stack of effects under it. By moving an effect up or down you change the order in which effects are processed in the stack. Go to an effect and right click \index{plugins!RMB on toolbar} to bring up the effect menu. The \textit{Move up} and \textit{Move down} options move the effect up or down. When you are moving effects up or down, be aware that if they are shared as shared effects, any references will be pointing to a different effect after the move operation.
 
-Finally, there is dragging of effects. Dragging effects works just like dragging edits. You must select the arrow in the main window transport buttons line to enter drag and drop mode before dragging effects. Dragging a plugin causes a highlight outline to be drawn over a targetable timeline region, and the plugin can be re-positioned into any plugin track.  The effects snap to media boundaries, effect boundaries, and tracks. If you drag a reference to a shared effect, the reference may point to the wrong effect afterwards.  It is recommended that you re-construct shared effect track references.
+Finally, there is dragging of effects \index{plugins!dragging}. Dragging effects works just like dragging edits. You must select the arrow in the main window transport buttons line to enter drag and drop mode before dragging effects. Dragging a plugin causes a highlight outline to be drawn over a targetable timeline region, and the plugin can be re-positioned into any plugin track.  The effects snap to media boundaries, effect boundaries, and tracks. If you drag a reference to a shared effect, the reference may point to the wrong effect afterwards.  It is recommended that you re-construct shared effect track references.
 
-Figure~\ref{fig:drag-effect} showing 5 plugins, two still plugin, two have already been dragged and the \textit{Color 3 Way} in the process of being dragged. Note the gold-colored arrow which enables allow \textit{drag and drop} editing mode.
+Figure~\ref{fig:drag-effect} showing 3 plugins, two still plugin, two have already been dragged and the \textit{Color 3 Way} in the process of being dragged. Note the gold-colored frame which enables allow \textit{drag and drop} editing mode.
 
 \begin{figure}[htpb]
     \centering
@@ -93,8 +97,25 @@ Figure~\ref{fig:drag-effect} showing 5 plugins, two still plugin, two have alrea
     \label{fig:drag-effect}
 \end{figure}
 
+\section{Copy/Paste Effects}%
+\label{sec:copy_paste_effects}
+\index{plugins!copy paste effects}
+
+In \textit{Drag and Drop} mode we can copy and paste edits containing plugins (see also \nameref{sub:copy_paste_behavior}). Start by selecting an edit (that contains plugins) with LMB and open the context menu with MMB. The possibilities offered are:
+
+\begin{description}
+       \item[Ctrl - c]: copy edits and plugins to buffer.
+       \item[Ctrl - v]: paste edits and plugins into the timeline (splice) at the Insertion point.
+       \item[Ctrl - b]: paste edits and plugins into the timeline (overwrite) at the Insertion point.
+       \item[Ctrl - Shift - p]: paste only the plugins into the timeline, at the Insertion point, keeping the original length (overwrite).
+       \item[Collect Effects]: copy only plugins into buffer.
+       \item[Paste Effects]: pastes the plugins into a selected target edit. The length of the plugins adapts to the length of the edit.
+\end{description}
+
 \section{Shared Effects and Shared Tracks}%
 \label{sec:shared_effect_tracks}
+\index{plugins!shared effect}
+\index{plugins!shared tracks}
 
 Two other effect types available in the Attach Effect dialog are \textit{Shared effects} and \textit{Shared tracks}. In the case of a shared effect, the following conditions must be true:
 
@@ -104,6 +125,15 @@ Two other effect types available in the Attach Effect dialog are \textit{Shared
     \item The insertion point or selected region must start inside the other effects.
 \end{itemize}
 
+Before going into further detail about how to use \textit{Shared effects}, an easier
+alternative method of application which is especially useful for Audio tracks is
+available.  In this method, all you have to do is use the \textit{Audio} pulldown and
+choose \textit{Attach effect} \index{plugins!attach effect}, highlight the effect you would like and make sure the
+default of \textit{Attach single standalone and share others} is checked on.  It will
+automatically be a "Shared Effect" on all audio tracks (be sure to disarm any audio
+tracks that you do not want to have the effect shared on).  This method also works for
+Video tracks using the \textit{Video} pulldown choice of \textit{Attach effect}.
+
 In the case of a shared track, there must be another track on the timeline of the same type as the track you are applying an effect to. If you right clicked on a video track to attach an effect, there will not be anything in the shared tracks column if no other video track exists. The same applies equally to audio tracks in that another audio track must exist. Shared tracks are often used as layers for titles, curves and keyframes.
 
 If shared effects or shared tracks are available, they appear in the shared effects and shared tracks columns when you used the \textit{Attach effect} option (RMB on a track). When the green colored checkmark is clicked OK, anything highlighted in the column is attached under the current track.
@@ -114,10 +144,11 @@ When a shared effect is played back, it is processed just like a normal effect e
 
 When an original track has a shared track as one of its effects, the shared track itself is used as a \textit{realtime} effect. This is more commonly known as \textit{bouncing tracks} but \CGG{} achieves the same operation by attaching shared tracks. The fade and any effects in the shared track are applied to the original track. Once the shared track has processed the data, the original track performs any effects which come below the shared track and then composites it on the output.
 
-In order to prevent the shared track from mixing the same data as the original track on the output, enable the output \texttt{mute} toggle in the patchbay next to each track for which you do not want to mix on the output. If you are making a video and you do want the shared track to composite the original track's data on the output a second time, the video from the shared track would always appear under the video from the original track, regardless of whether it was on top of the original track. This is because shared tracks are composited in order of their attachment. Since it is part of the original track it has to be composited before the original track is.
+In order to prevent the shared track from mixing the same data as the original track on the output, enable the output \texttt{mute} \index{mute} toggle in the patchbay next to each track for which you do not want to mix on the output. If you are making a video and you do want the shared track to composite the original track's data on the output a second time, the video from the shared track would always appear under the video from the original track, regardless of whether it was on top of the original track. This is because shared tracks are composited in order of their attachment. Since it is part of the original track it has to be composited before the original track is.
 
 \section{Saved Plugin Presets}%
 \label{sec:saved_plugin_preset}
+\index{plugins!preset edit}
 
 \textit{Presets} and \textit{Factory Presets} for Plugin settings are now combined with the Preset Keyframe Parameters allowing you to choose, apply, delete, and edit your own Presets which can then be easily saved in the file \texttt{\$HOME/.bcast5/Cinelerra\_presets}. In addition to your own saved presets, there are automatically available Factory presets for some plugins, for example the Lens video plugin. The Factory presets are preceded by an asterisk (*) and can not be modified permanently.
 
@@ -135,11 +166,11 @@ A Presets button on the plugin bar to the left of the Controls and On/Off button
     \begin{tikzpicture}[scale=1, transform shape]
     \node (img1) [yshift=0cm, xshift=0cm, rotate=0] {\includegraphics[width=0.6\linewidth]{preset02.png}};
     \node [yshift=-20mm, xshift=-1cm,anchor=east] at (img1.north west) (Green) {A user preset Green};
-    \node [yshift=-68mm, xshift=-1cm,anchor=south east,text width=10em, inner ysep=-3mm] at (img1.north west) (Textbox) {Textbox to type in the title for the chosen preset or name for a new preset.};
-    \node [yshift=-80mm, xshift=-1cm,anchor=north east,text width=10em,inner ysep=-3mm] at (img1.north west) (Save) {Use the Delete, Save or Apply button for operation.};
+    \node [yshift=-67mm, xshift=-1cm,anchor=south east,text width=10em, inner ysep=-3mm] at (img1.north west) (Textbox) {Textbox to type in the title for the chosen preset or name for a new preset.};
+    \node [yshift=-79mm, xshift=-1cm,anchor=north east,text width=10em,inner ysep=-3mm] at (img1.north west) (Save) {Use the Delete, Save or Apply button for operation.};
     \draw [->, line width=1mm] (Green) edge  ([yshift=-20mm] img1.north west);
-    \draw [->, line width=1mm] (Textbox.south east) --  ([yshift=-68mm] img1.north west);
-    \draw [->, line width=1mm] (Save.north east) --    ([yshift=-80mm] img1.north west);
+    \draw [->, line width=1mm] (Textbox.south east) --  ([yshift=-67mm] img1.north west);
+    \draw [->, line width=1mm] (Save.north east) --    ([yshift=-79mm] img1.north west);
     \end{tikzpicture}
     \caption{Screencast shows 4 Factory presets as preceded by an *.}
     \label{fig:preset02}
@@ -152,6 +183,7 @@ These next few sections explain some details about the plugins that are not dire
 
 \subsection{How to see short Description of a Plugin}%
 \label{sub:short_description_plugin}
+\index{plugins!short description}
 
 To get a short one or a few lines description of a plugin, mouse over that plugin in the Resources window and a popup appears. You can disable the popup by right-clicking and choosing \textit{Info Off} (shortcut "i"). And again enable it with \textit{Info On}. Some of the plugins may not have any description included. An example screenshot is next (figure~\ref{fig:info-effect}).
 
@@ -162,6 +194,15 @@ To get a short one or a few lines description of a plugin, mouse over that plugi
     \label{fig:info-effect}
 \end{figure}
 
+\textit{Context Help} provides more detailed information about the plugin in 4 possible
+ways using the Alt/h hotkey combination. 
+\begin{enumerate}
+        \item Pressing \texttt{Alt/h} with the mouse in the dialog window of that plugin's settings menu.
+        \item Pressing \texttt{Alt/h} while pointing with the mouse on the plugin bar in a track, transition bar, or transition icon.
+        \item Pressing \texttt{Alt/h} while pointing on the plugin name (icon) in the Resources window. If plugin tooltips are on, help for the highlighted plugin under the mouse is shown. If plugin tooltips are off, help for the selected plugin is shown.
+        \item Pressing \texttt{Alt/h} while pointing on the plugin name in the \textit{Attach Effect} dialog menu.
+\end{enumerate}
+
 \subsection{Delete Plugins to save Resources Space or make them Unavailable}%
 \label{sub:delete_plugin_resouces_unavaible}
 
@@ -176,6 +217,7 @@ Maybe you just don't ever use certain plugins or would prefer to only find the o
 
 \subsection{Updatable Icon Image Support}%
 \label{sub:updatable_icon_image_support}
+\index{plugins!change icons}
 
 When running \CGG{} Infinity builtin icons are loaded before the
 program starts. Png files in the path:\\
@@ -271,6 +313,7 @@ Restart cin by changing \texttt{Settings$\rightarrow$ Preferences$\rightarrow$ A
 
 \subsection{Plugins/Effects Visibility}%
 \label{sub:plugins_effects_visibility}
+\index{plugins!visibility}
 
 \CGG{} contains many plugins, especially with the addition of ffmpeg, and it is somewhat difficult to find the one you are looking for in the Resources window. In \CGG{} Infinity, the plugins have been categorized into the following subsets in the \textit{Visibility} section of the Resources window to make it easier to locate a particular one:
 
@@ -285,16 +328,16 @@ Restart cin by changing \texttt{Settings$\rightarrow$ Preferences$\rightarrow$ A
 
 The \textit{Visibility} tool in the Resources window (figure~\ref{fig:visibility01}) gives you the ability to turn off or on any of several sets of plugins. If you left-click the Visibility box, you will see the various categories of plugins, such as \textit{ladspa}, \textit{ffmpeg}, \textit{audio}, \textit{lv2}, and \textit{video} (figure~\ref{fig:visibility02}).
 
-Highlight the set you want to turn on and a check mark appears to show it is active. Highlight again to toggle it off. See the next screenshot which illustrates that all of the plugins are turned off (not visible) except for audio. There is also the ability to add your own personal directory of plugins which will show up here. All you have to do to have these plugins become visible is to create a directory, with some name that is meaningful to you, and put your .png files in your: \\
-\texttt{cinelerra\_path bin/plugins/<your\_directory\_name>}.
-
 \begin{figure}[htpb]
-    \centering
-    \includegraphics[width=0.6\linewidth]{visibility02.png}
-    \caption{Screenshot showing the Visibility categories of plugins with all toggled on and audio highlighted.}
-    \label{fig:visibility02}
+       \centering
+       \includegraphics[width=0.6\linewidth]{visibility02.png}
+       \caption{Screenshot showing the Visibility categories of plugins with all toggled on and audio highlighted.}
+       \label{fig:visibility02}
 \end{figure}
 
+Highlight the set you want to turn on and a check mark appears to show it is active. Highlight again to toggle it off. See the next screenshot which illustrates that all of the plugins are turned off (not visible) except for audio. There is also the ability to add your own personal directory of plugins which will show up here. All you have to do to have these plugins become visible is to create a directory, with some name that is meaningful to you, and put your .png files in your: \\
+\texttt{cinelerra\_path bin/plugins/<your\_directory\_name>}.
+
 \subsection{Expanders for Plugin Subtrees in the Resources Window}%
 \label{sub:expanders_plugin_subtrees}
 
@@ -304,11 +347,20 @@ If there are recommendations for other relevant categories, they can be added. T
 
 The \texttt{expanders.txt} file has very specific requirements. The most specific is that there are no blanks -- you must use tabs only. A \# (pound sign) can be used in column 1 to indicate a comment. Here is a short example:
 
+\begin{figure}[htpb]
+       \centering
+       \includegraphics[width=0.8\linewidth]{expander.png}
+        \caption{Down facing triangle, Right facing triangle = expander; "-" = options}
+%       the next line causes problems for the HTML version so do not use
+%      \caption{$\triangledown$,$\triangleright$ = expander; "-" = options}
+       \label{fig:expander}
+\end{figure}
+
 \begin{lstlisting}[style=sh]
 Video Effects
     - Color_Correction
         Blue Banana
-#\qquad \qquad Color 3 Way
+                         Color 3 Way
         Color Balance
 Audio Effects
     - Calf
@@ -318,15 +370,9 @@ Audio Effects
         L2_Calf Fluidsynth
 \end{lstlisting}
 
-\begin{figure}[htpb]
-    \centering
-    \includegraphics[width=0.8\linewidth]{expander.png}
-    \caption{$\triangledown$,$\triangleright$ = expander; "-" = options}
-    \label{fig:expander}
-\end{figure}
-
 \subsection{Speed-up of Ffmpeg plugin usage with OPTS files}%
 \label{sub:speedup_ffmpeg_plugin_opts}
+\index{plugins!speed-up via options}
 
 You can speed up some ffmpeg plugins that are quite time-consuming and use a lot of CPU\@. For a specific color-based example, \CGG{} uses 6 primary rendering color models. All of them have 3 components at full scale. Direct usage of a particular ffmpeg plugin from the ffmpeg command line might handle the planar at less than full scale chroma (yuv420), which means there is less data to manipulate. But when cinelerra loads a video it uses full scale color models. In other words:
 
@@ -356,9 +402,11 @@ This converts the input to rgb before xxxxxx runs, and so it too is slower (beca
 \section{Audio Effects - Native}%
 \label{sec:audio_effects_native}
 \settocdepth{subsection}
+\index{audio!plugins}
 
 \subsection{AudioScope}%
 \label{sub:audioscope}
+\index{audioscope}
 
 Effect rewritten and improved. Convert input audio to video output representing the audio power spectrum. Shows
 % Yes
@@ -367,6 +415,7 @@ you the sound wave.
 
 \subsection{Chorus}%
 \label{sub:chorus}
+\index{chorus}
 
 It is a multitrack effect, where each track is a channel. For example if you have 4 voices per channel and 2 channels, you will have a total of 8 tracks.
 It is an effect that modulates the signal, varies the pitch up and down (instead of modulating the phases as for example in the \textit{Flanger} plugin) and creates voices from the original signal and adds them to the Output. You then get a chorus effect, with multiple voices \textit{singing} the same song but with slightly different modulations. Voices not only modulate the original signal but also start with a certain delay. There are two components of delay, \textit{constant delay} and \textit{oscillating delay} (figure~\ref{fig:chorus}).
@@ -388,6 +437,7 @@ It is an effect that modulates the signal, varies the pitch up and down (instead
 
 \subsection{Compressor (Single Band)}%
 \label{sub:compressor}
+\index{compressor}
 
 The audio compressor reduces the dynamic range of the audio, not the amount of data required to store the audio. In \CGG{} the compressor actually performs the function of an expander and compressor of the signal's dynamic range. A third and more sophisticated use serves to highlight the voice with respect to the sound background. It is a multitrack effect and can also be applied as a Shared Effect. (figure~\ref{fig:compressor}).
 
@@ -419,6 +469,7 @@ The volume (in Db) of the input signal is shown in the \textit{In meter} on the
 
 \subsection{Compressor Multi (Multi Band)}%
 \label{sub:compressor_multi}
+\index{compressor multi band}
 
 Refer to Compressor (Single Band) for common theory and options.
 The normal compressor acts over the entire frequency spectrum. The multi-band allows us to distinguish three frequency ranges (low, med and high) on which to intervene separately and in a more sophisticated way. In other plugins there are four bands instead of three, but we can make very precise adjustments so the three present are enough because they are not fixed. Finally the value of the three corrections are added together in the Output.
@@ -446,26 +497,44 @@ In figure~\ref{fig:compressorM} we can see the three bands; the one currently ac
 
 \subsection{DC Offset}%
 \label{sub:dc_offset}
+\index{dc offset}
 
 Use this to remove \textit{DC Offset}, which is usually an undesirable characteristic of a recording normally caused by defective equipment. This effect works like a \textit{high pass filter} and has no controls. DC stands for \textit{Direct Current} which is the average amplitude of the waveform. It sounds best when it is absent, represented by zero, so that there is no imbalance in the audio.
 
 \subsection{Delay Audio}%
 \label{sub:delay_audio}
+\index{delay audio}
 
 In the Delay Audio effect you can specify the number of seconds you want to delay the video track.
 
 \subsection{DeNoise}%
 \label{sub:denoise}
+\index{denoise}
 
 Reduce audio background noise. There is only 1 parameter which is used to regulate the level dial with a range of 0 to 1.
 
 \subsection{DenoiseFFT}%
 \label{sub:denoisefft}
+\index{denoisefft}
+
+Audio sampling (time data) is converted to a frequency spectrum using FFT (\textit{Fast Fourier Transform}). Since the \textit{reference} contains only the background noise while the rest of the clip contains noise + audio to clean up, you get separate frequencies so you can subtract them to get the clean audio only. Set the Denoise Power dial in dB and choose the number of reference samples.
 
-Noise removal from audio using FFT editing. Set the Denoise Power dial in dB and choose the number of reference samples.
+For example, if you record a voice with a microphone\protect\footnote{credit fary54}:
+\begin{enumerate}
+        \item You record 15 seconds of background (without talking). This is represent the background noise that the filter uses as a reference.
+        \item After 15 seconds, start the voice. This is represents the recording whose filter should remove the background noise.
+        \item You stop recording.
+        \item You place the FFT effect on the whole length of the recording (including the 15 seconds of background noise).
+        \item Then place your cursor at the beginning of the 15 seconds. Enter the number of samples in the effect presets, e.g. 65536.
+\end{enumerate}
+
+This has the effect of creating a keyframe that marks the beginning of the reference range, mentioned in point 1, which in our example ends at 65536 samples later.
+
+During playback, the background noise is then automatically removed along the entire length of the effect.
 
 \subsection{Despike}%
 \label{sub:despike}
+\index{despike}
 
 Detect and eliminate out of range impulse values.
 
@@ -476,6 +545,7 @@ Detect and eliminate out of range impulse values.
 
 \subsection{EQ Graphic}%
 \label{sub:eq_graphic}
+\index{EQ graphic}
 
 Graphic equalizer sets the output levels for specified frequency bands. This effect works by setting control points when you click the left mouse button and drag to the desired value. In the textboxes at the bottom can be seen the frequency of the active control point, the level of the signal to be set by entering the numerical value or by dragging the control point, and the number of samples to act on (figure~\ref{fig:equalizer}).
 
@@ -488,6 +558,7 @@ Graphic equalizer sets the output levels for specified frequency bands. This eff
 
 \subsection{EQ Parametric}%
 \label{sub:eq_parametric}
+\index{EQ parametric}
 
 Parametric equalizer shows and outputs levels for \textit{frequency}, \textit{quality}, \textit{level}, \textit{mode}, and \textit{wetness} (figure~\ref{fig:eq_param}).
 
@@ -500,6 +571,7 @@ Parametric equalizer shows and outputs levels for \textit{frequency}, \textit{qu
 
 \subsection{Echo}%
 \label{sub:echo}
+\index{echo}
 
 Echo is reflection of sound. This plugin could be used to add echoing to video of your canyon hike (figure~\ref{fig:echo}).
 
@@ -518,6 +590,7 @@ Echo is reflection of sound. This plugin could be used to add echoing to video o
 
 \subsection{EchoCancel}%
 \label{sub:echocancel}
+\index{echo cancel}
 
 EchoCancel is the process of removing echos from audio in order to improve the quality. Echo cancel may be needed because an audio recording was done in a room that led to echo generation or there was some kind of unwanted feedback. There are many controls for the EchoCancel plugin which are defined here. However, the first thing you will see when you bring up the plugin, is the top portion that is black which will show a + in the middle when you mouse over it. Once you start playing audio, you will see the cepstrum spectral data inside the window. A cepstrum results from taking the inverse Fourier transform (IFT) of the logarithm of the estimated spectrum of a signal. It is used to identify the period of the echo in the audio. It is recommended to just set the \textit{Mode} to On but the below defined parameters can be utilized by professionals (figure~\ref{fig:echo-cancel}).
 
@@ -545,6 +618,7 @@ EchoCancel is the process of removing echos from audio in order to improve the q
 
 \subsection{Flanger}%
 \label{sub:flanger}
+\index{flanger}
 
 It's a single-track effect. If you apply it to multiple tracks each will work on its own track independently of the others.
 It consists of making a copy of the original sound wave and then playing it over the original one with a certain delay. The resulting signal (Output) will then be the sum of the two waves and will have peaks where the two values add up and gaps where the two values compensate each other. The result is a more \textit{evanescent} and \textit{metallic} sound. Much, however, depends on the intensity of the effect.
@@ -567,26 +641,31 @@ The delay introduced consists of two distinct components: the \textit{constant d
 
 \subsection{Freeverb}%
 \label{sub:freeverb}
+\index{freeverb}
 
 Adds effect of multiple decaying echoes to audio signals based on a specific algorithm. Common use of reverb is to simulate music played in a closed room.
 
 \subsection{Gain}%
 \label{sub:gain}
+\index{gain}
 
 Add gain, input level, to increase/decrease loudness.
 
 \subsection{Interpolate}%
 \label{sub:interpolate}
+\index{interpolate}
 
 Generate a smooth curve based on sound creating a certain softness. There are no controls.
 
 \subsection{Invert Audio}%
 \label{sub:invert_audio}
+\index{invert audio}
 
 Reverses the numerical sign of the digital audio. There are no controls.
 
 \subsection{Live Audio}%
 \label{sub:live_audio}
+\index{live audio}
 
 The Live Audio effect reads audio directly from the sound card input. It replaces any audio on the track so it is normally applied to an empty track. To use Live Audio, highlight a horizontal region of an audio track or define In and Out points. Then drop the Live Audio effect into it. Create extra tracks and attach shared copies of the first Live Audio effect to the other tracks to have extra channels recorded. Live Audio uses the sound driver selected in \texttt{Settings $\rightarrow$ Preferences $\rightarrow$ Playback A $\rightarrow$ Audio Out for recording}, but unlike recording it uses the playback buffer size as the recording buffer size and it uses the project sample rate as the sampling rate. These settings are critical since some sound drivers can not record in the same sized buffer they play back in.
 
@@ -594,26 +673,31 @@ Live audio has been most reliable when ALSA is the recording driver and the play
 
 \subsection{Loop Audio}%
 \label{sub:loop_audio}
+\index{loop audio}
 
 Loop some number of samples of audio over and over.
 
-\subsection{Overlay}%
-\label{sub:overlay}
+\subsection{Overlay (Audio)}%
+\label{sub: overlay}
+\index{overlay audio}
 
 Overlay has parameter settings of top or bottom for the track and add or multiply for the operation.
 
 \subsection{Pitch Shift}%
 \label{sub:pitch_shift}
+\index{pitch shift}
 
 Like the time stretching methods, there are three pitch shifting methods: \textit{Pitch shift}, \textit{Resample}, and \textit{Asset info} dialog. Pitch shift is a realtime effect which can be dragged and dropped onto recordable audio tracks. Pitch shift uses a fast Fourier transform (FFT) to try to change the pitch without changing the duration, but this introduces windowing artifacts. Because the windowing artifacts are less obtrusive in audio which is obviously pitch shifted, Pitch Shift is mainly useful for extreme pitch changes. For mild pitch changes, use Resample instead. Another way to change pitch slightly is to go to the Resources window, highlight the media folder, right click on an audio file, click on \textit{Info}, then adjust the sample rate in the Info dialog to adjust the pitch. This method also requires left clicking on the right boundary of the audio tracks and dragging left or right to correspond to the length changes.
 
 \subsection{Remove Gaps}%
 \label{sub:remove_gaps}
+\index{remove gaps}
 
 Remove silent gap (below $DB$ threshold) which persist for more than the time limit.
 
 \subsection{ResampleRT}%
 \label{sub:resamplert}
+\index{resampleRT}
 
 Allows you to convert an audio file from one sample rate to another. This effect works similarly to ReframeRT in videos.
 
@@ -628,6 +712,7 @@ Allows you to convert an audio file from one sample rate to another. This effect
 
 \subsection{Reverb}%
 \label{sub:reverb}
+\index{reverb}
 
 Reverb uses reflections of sound to add depth and fullness; the sound will seem to come from a space that can go from a small bare room to large natural valleys, cathedrals, etc. The reverb is made up of a group of echoes that occur at the same time making it feel like a single effect.
 Basically simulates creation of a large number of reflections, like lots of walls, which build up and then decay. You can use the reverb plugin to mix tracks together to simulate ambiance because it is a multitrack effect.
@@ -654,21 +739,25 @@ The configuration window (figure~\ref{fig:reverb}) shows a graph of the full ban
 
 \subsection{Reverse Audio}%
 \label{sub:reverse_audio}
+\index{reverse audio}
 
 Apply reverse audio to an audio track and play it backwards. The sound plays forward. Be aware when reversing audio that the waveform on the timeline does not reflect the actual reversed output.
 
 \subsection{SoundLevel}%
 \label{sub:soundlevel}
+\index{sound level}
 
 Effect rewritten and improved to handle fragments. Displays the Max/RMS sound level in decibels.
 
 \subsection{Spectrogram}%
 \label{sub:Spectrogram}
+\index{spectrogram}
 
 Effect rewritten and improved. Visual representation of the sound levels at specified frequencies as they vary with time.
 
 \subsection{Synthesizer}%
 \label{sub:Synthesizer}
+\index{synthesizer}
 
 Generate synthesizer sounds; to set key data, turn on Generate keyframes while tweaking (figure~\ref{fig:synthesizer}).
 
@@ -681,11 +770,13 @@ Generate synthesizer sounds; to set key data, turn on Generate keyframes while t
 
 \subsection{Time Stretch RT}%
 \label{sub:time_stretch_rt}
+\index{time stretch RT}
 
 Change the speed of an audio signal without affecting its pitch.
 
 \subsection{Tremolo}%
 \label{sub:tremolo}
+\index{tremolo}
 
 It serves to give various vibes and vitality to the sound by modulating the amplitude of the sound signal and the delay (figure~\ref{fig:tremolo}).
 
@@ -709,6 +800,7 @@ Currently available waveforms are: \textit{Sine}; \textit{Sawtooth}; \textit{Rev
 \section{Audio Ladspa Effects}%
 \label{sec:audio_ladspa_effects}
 \settocdepth{section}
+\index{ladspa}
 
 Ladspa effects are supported in realtime and rendered mode for audio. These audio effects are supported since \CGG{} implements the LADSPA interface as accurately as possible. Besides the supplied LADSPA effects\protect\footnote{credit Steve Harris}, additional LADSPA effects can be enabled by setting the \texttt{LADSPA\_PATH} environment variable to the location of your LADSPA plugins:
 
@@ -716,12 +808,14 @@ Ladspa effects are supported in realtime and rendered mode for audio. These audi
 export LADSPA_PATH=/usr/lib/ladspa
 \end{lstlisting}
 
-\section[Audio LV2 / Calf Plugins]{Audio LV2 / Calf Plugins\protect\footnote{Optional Feature - OS dependent}}%
+\section[Audio LV2 / Calf Plugins]{Audio LV2 / Calf Plugins}%
 \label{sec:audio_lv2_calf_plugins}
+\index{LV2 - Calf}
 
-LV2 is an open standard for audio plugins using a simple interface with extensions which add functionality to support audio software. These plugins were written by external developers and provide additional audio effects to \CGG{} audio without having to change \CGG{} every time. Because the LV2 plugins are separate from \CGG{} Infinity, if one fails or does not perform as expected, \CGG{} should stay running and you will have to contact the programmers responsible for that plugin for a fix.
+LV2\protect\footnote{Optional Feature - OS dependent} is an open standard for audio plugins using a simple interface with extensions which add functionality to support audio software. These plugins were written by external developers and provide additional audio effects to \CGG{} audio without having to change \CGG{} every time. Because the LV2 plugins are separate from \CGG{} Infinity, if one fails or does not perform as expected, \CGG{} should stay running and you will have to contact the programmers responsible for that plugin for a fix.
 
-Typically, a user OS has specialized package groups installed. It is difficult to create one build of \CGG{} to accommodate all potential LV2 plugins. Specifically for the \textit{Calf-Studio LV2 plugins}, you should install the \textit{Calf Plugins} package. The user’s computer must have \textit{gtk-2-runtime} installed, which seems to be automatically done already for most distros. For users doing their own builds, you can build \CGG{} without LV2 support by including \texttt{-{}-without-lv2} in the configure step. The default build is \texttt{-{}-with-lv2=yes} and requires that \textit{GTK-2-devel} must be installed or the build will fail and notify you.
+Typically, a user OS has specialized package groups installed. It is difficult to create one build of \CGG{} to accommodate all potential LV2 plugins. Specifically for the \textit{Calf-Studio LV2 plugins}, you should install the \textit{Calf Plugins} package. The user’s computer must have \textit{gtk-2-runtime} installed, which seems to be automatically done already for most distros. For users doing their own builds, you can build \CGG{} without LV2 support by including \texttt{-{}-without-lv2} in the configure step. The default build is \texttt{-{}-with-lv2=yes} and requires that \textit{GTK-2-devel} must be installed or the build will fail and notify you. In addition for some newer distros, you will need to install
+\textit{lv2-calf-plugins-gui}; for example Fedora version 32.
 
 LV2 plugins have their own category in the \textit{Audio Plugins Visibility} as lv2. There is a simple text interface which is available via the usual \textit{Show controls} button when the plugin is attached to the audio track. This window has a Reset button to get back to the default settings. To change a value of one of the parameters, highlight that parameter and type in the new value in the topmost text box and then hit Apply to take effect -- the reason for requiring hitting apply is so that the audio is not moving all over the place while you are still typing a value. More easily, you can just move the \textit{pot dial} or the \textit{slider} bar which take effect automatically.
 
@@ -732,7 +826,7 @@ To set the buffer size:
 \texttt{Settings $\rightarrow$ Preferences $\rightarrow$ tab Playback A $\rightarrow$ section Audio Out $\rightarrow$ variable Playback buffer samples}
 
 However, be forewarned that due to variability in the lv2 plugin programming code, some of the plugins only work with the minimum buffer size of $1024$. In these cases, what you will see is the main track canvas cursor just bounces back and forth over a very small area in the timeline. This does not crash \CGG{} but you will have to remove the plugin to continue working.
-You can specify a certain set of LV2 plugins to use by setting \texttt{LV2\_PATH} as shown below before starting \CGG{} -- include a colon ($:$) separator for multiple paths. The default path for most operating systems is \texttt{/usr/lib64/lv2}. To list the system installed lv2 plugins key in: \texttt{lv2ls}.
+You can specify a certain set of LV2 plugins to use by setting \texttt{LV2\_PATH} \index{LV2 path} as shown below before starting \CGG{} -- include a colon ($:$) separator for multiple paths. The default path for most operating systems is \texttt{/usr/lib64/lv2}. To list the system installed lv2 plugins key in: \texttt{lv2ls}.
 
 \begin{lstlisting}[numbers=none]
 export LV2_PATH=/tmp/j/balance.lv2/usr/local/lib/lv2/:/usr/local/lv2
@@ -745,7 +839,7 @@ If there is no default \texttt{LV2\_PATH} set automatically, the value will be \
 
 When you change this field, cin will automatically restart and load the newly specified lv2 plugins. If when switching \texttt{LV2\_PATH} or if the lv2 audio plugins are not displayed/usable in the Resources window, you can execute a reload via:
 
-\texttt{Settings $\rightarrow$  Preferences $\rightarrow$ Interface tab $\rightarrow$ Reload plugin in\-dex}
+\texttt{Settings $\rightarrow$  Preferences $\rightarrow$ Interface tab $\rightarrow$ Reload plugin index} \index{plugins!reload index}
 or else before you bring up \CGG{}, delete \texttt{\$HOME/.bcast5/\CGG{}\_\\plugins} so that the plugins get properly reloaded.
 
 There are some lv2 plugins that display a \textit{glitzy} UI (User Interface); for example the \textit{Calf plugins}. For these LV2 plugins, if you want that to automatically come up without having to click on the UI button on the simplified UI interface, there is a flag to enable that. It is at:
@@ -776,6 +870,13 @@ Note the UI button in the upper right hand corner above the Reset button (figure
 
 When the glitzy ui is up, the simple text window remains up also since it is the \CGG{} side and keeps track of the value changes so they remain in effect for further usage of the plugin. Changes to one or the other will occur in both with the exception of certain features in the glitzy window which are not communicated correctly back to \CGG{}; for example a reset button -- the simple interface Reset button must be used instead. To change values in the glitzy window you use the mouse and move up or down unlike a knob that turns! (Figure~\ref{fig:calf02})
 
+\begin{figure}[htpb]
+       \centering
+       \includegraphics[width=0.8\linewidth]{calf02.png}
+       \caption{Screencast with a Calf plugin glitzy window that appears when clicking the simple interface UI button.}
+       \label{fig:calf02}
+\end{figure}
+
 In order to test a particular plugin without bringing up \CGG{}, especially for ones that do not operate, it is possible to manually display an lv2ui gui with: \\
 \texttt{/cin-path/lv2ui <lv2-uri>} \\
 For example:
@@ -784,19 +885,15 @@ For example:
 /tmp/cinelerra-5.1/bin/lv2ui http://calf.sourceforge.net/plugins/Flanger
 \end{lstlisting}
 
-\begin{figure}[htpb]
-    \centering
-    \includegraphics[width=0.8\linewidth]{calf02.png}
-    \caption{Screencast with a Calf plugin glitzy window that appears when clicking the simple interface UI button.}
-    \label{fig:calf02}
-\end{figure}
 
 \section[Video Effects --- Native]{Video Effects -- Native}%
 \label{sec:video_effects_native}
 \settocdepth{subsection}
+\index{video!plugins}
 
 \subsection{1080 to 480}%
 \label{sub:1080_to_480}
+\index{1080 to 480}
 
 Most TV broadcasts are received with a $1920\times1080$ resolution but originate from a $720\times480$ source at the studio. It is a waste of space to compress the entire $1920\times1080$ if the only resolvable details are $720\times480$. Unfortunately resizing $1920\times1080$ video to $720\times480$ is not as simple as shrinking it.
 
@@ -810,28 +907,33 @@ Finally, once you have $720\times480$ interlaced video you can either apply \tex
 
 \subsection{1080 to 540}%
 \label{sub:1080_to_540}
+\index{1080 to 540}
 
 Extracts two $1920\times540$ fields from $1920\times1080$ image, resizes them separately, and combines them to $1920\times540$ interlaced image.
 
 \subsection{Aging TV}%
 \label{sub:aging_tv}
+\index{Aging TV}
 
 This effect is the one to use if you want to achieve an old movie or TV show look. It will put moving lines up and down the movie as well as putting snow on the video. Use it along with \textit{Brightness/Contrast} and \textit{Color Balance} to make your movie look like a really old black and white movie. This came from \url{https://effectv.com}.
 
 \subsection{Alpha}%
 \label{sub:alpha}
+\index{Alpha}
 
-Allows you to apply an alpha value (transparency) to one or more tracks or one or more edits. Being also keyframable, it allows an excellent variety and possibility of use in the most disparate occasions.
+Allows you to apply an alpha value (transparency) to one or more tracks or one or more edits. You can use the slider or have maximum precision by entering numbers in the input box. You can use the \textit{Clear} button to reset to the default value. Being also keyframable, it allows an excellent variety and possibility of use in the most disparate ways.
 
 \subsection{Auto Scale}%
 \label{sub:auto_scale}
+\index{auto scale}
 
 Automatically scale to a specified size.
 
 \subsection{Blue Banana}%
 \label{sub:blue_banana}
+\index{blue banana}
 
-Blue Banana\protect\footnote{credit to Monty Montgomery programmer} is an \textit{HSL Qualifier} (HSL= hue, saturation, lightness), one of the basic tools of any grading software that are based on circumscribing a zone of the frame by extracting a chromatic key and producing a \textit{matte} in the alpha channel (Secondary Color Correction). Blue Banana differs not by creating a real matte, but by creating a \textit{selection mask} exclusively for use within the plugin. The BlueBanana plugin has a couple of useful purposes. It can be used for color transformation or remapping -- by isolating a specific color and then performing color change/correction on only that color (or color ranges). Another useful purpose is for chroma-key filtering, using multiple BlueBanana plugins on the same track. Also, it can be used in conjunction with the mask operation of the Compositor. Usage of BlueBanana may seem complicated at first, but it is necessarily so in order to get enough control to produce the desired effect simply and quickly. Just changing a single color is actually quite easy. BlueBanana is keyframable (figure~\ref{fig:bluebanana}).
+Blue Banana\protect\footnote{credit to Monty Montgomery programmer} is an \textit{HSL Qualifier} \index{HSL Qualifier} (HSL= hue, saturation, lightness), one of the basic tools of any grading software that are based on circumscribing a zone of the frame by extracting a chromatic key and producing a \textit{matte} in the alpha channel (Secondary Color Correction). Blue Banana differs not by creating a real matte, but by creating a \textit{selection mask} exclusively for use within the plugin. The BlueBanana plugin has a couple of useful purposes. It can be used for color transformation or remapping -- by isolating a specific color and then performing color change/correction on only that color (or color ranges). Another useful purpose is for chroma-key filtering, using multiple BlueBanana plugins on the same track. Also, it can be used in conjunction with the mask operation of the Compositor. Usage of BlueBanana may seem complicated at first, but it is necessarily so in order to get enough control to produce the desired effect simply and quickly. Just changing a single color is actually quite easy. BlueBanana is keyframable (figure~\ref{fig:bluebanana}).
 
 The basic strategy for BlueBanana is to:
 
@@ -1021,6 +1123,7 @@ If you are building an alpha selection mask by first intersection and then union
 
 \subsection{Blur}%
 \label{sub:blur}
+\index{blur}
 
 This is a Gaussian type blur. Other blur plugins -- \textit{Linear}, \textit{Motion}, \textit{Radial}, and \textit{Zoom} --are described later. This plugin is keyframable. Blur is used to blur a video track via the following parameters:
 \begin{description}
@@ -1030,30 +1133,65 @@ This is a Gaussian type blur. Other blur plugins -- \textit{Linear}, \textit{Mot
     \item[Blur alpha, red, green, blue] specifies which color channels is to be blurred.
 \end{description}
 
+\subsection{BoxBlur}%
+\label{sub:boxblur}
+\index{boxblur}
+
+Based on ffmpeg’s boxblur, this is a very fast algorithm which can be used to blur horizontal,
+vertical, and at a power level.  Simplest usage is to just blur the entire image but with
+the following parameters, you can create a specific rectangular section to blur instead.  
+
+\begin{description}
+    \item[X/Y:] point coordinates of a rectangular box to be blurred. X and Y of 0 are in the
+upper left hand corner.  Default to be blurred is the entire image.
+    \item[Drag:] is used when you want to create just a rectangular area to be blurred rather
+than the enire image. If you used keyframes to cover a moving area and had left the Drag box
+enabled, you can remove the drag box with \textit{Allow keyframe spanning} whose use is
+described in \nameref{sec:allow_keyframes_spanning}.
+    \item[W/H] the values in these 2 boxes specify the width and height of the drag area box
+measured in pixels as shown in the compositor window. You can set these manually and if you
+can not see the location of your box, set them to zero because $0$ sets it to the same as the
+width/height of the project.
+    \item[Horiz:] slider goes from $0\, to\, 100$. Increasing this \textit{horizontal} number,
+increases the blurriness in the horizontal direction. The default value is 2. You can also use
+the mouse wheel to scroll the slider.  There is a clear button on the right to set the value to 0.
+    \item[Vert:] slider goes from $0\, to\, 100$. Increasing this \textit{vertical} number,
+increases the blurriness in the vertical direction.  The default value is 2. You can also use
+the mouse wheel to scroll the slider. There is a clear button on the right to set the value to 0.
+    \item[Power:] the way \textit{Power} works is like stacking up the blur multiple times.
+For example, a power of 3 would be like blurring once, then blurring that again, and finally
+blurring that a third time. The slider varies from 1 to 10 with 2 being the default value. There
+is a clear button on the right to set the value to 1.
+    \item[Reset:] button to revert to the default values and turn off Drag if it is on.
+\end{description}
+
 \subsection{Brightness/Contrast}%
 \label{sub:brightness_contrast}
+\index{brightness contrast}
+
+\begin{figure}[htpb]
+       \centering
+       \includegraphics[width=0.6\linewidth]{brightness.png}
+       \caption{How it works Brightness and Contrast}
+       \label{fig:brightness}
+\end{figure}
 
 To brighten a dark shot, or add light, use this plugin. Do not overuse the effect or you risk degrading your video quality.
 The \textit{Brightness} slider moves up or down the values of the entire channel and corresponds to the \textit{Master Offset} of the various grading programs.
-The \textit{Contrast} slider expands or narrows the brightness values of the entire channel; corresponds to the use of the \textit{cursors} (small triangles) in the \textit{Histogram} plugin. Clear icons are present to reset its slider to default without affecting others.
+The \textit{Contrast} slider expands or narrows the brightness values of the entire channel; corresponds to the use of the \textit{cursors} (small triangles) in the \textit{Histogram} plugin. For maximum precision you can use the input box. \textit{Clear} icons are present to reset its slider to default without affecting others.
 Use the effect along with keyframing to brighten a long shot that is dark at the beginning but bright at the end. Generally you will want to change the brightness and contrast about the same amount (for example -- brightness $28$, contrast $26$) so that your original colors are kept intact. This effect is also keyframable (figure~\ref{fig:brightness}).
 
-\begin{figure}[htpb]
-    \centering
-    \includegraphics[width=0.6\linewidth]{brightness.png}
-    \caption{How it works Brightness and Contrast}
-    \label{fig:brightness}
-\end{figure}
-
 \subsection{BurningTV}%
 \label{sub:burningtv}
+\index{burning TV}
 
 Makes your video burn where there are small light colored patches of video. This came from \url{https://effectv.com}.
 
-\subsection[C41]{C41\protect\footnote{credit Florent Delannoy, original program code author, and Edouard Chalaron}}%
+\subsection[C41]{C41}%
 \label{sub:c41}
+\index{C41}
 
-The C41 plugin takes a $16\,bit C41$ digital intermediate negative film as input and outputs a positive image. It became necessary because $C-41$ negatives can fade or color-shift over time which was a problem early on. It is still important today because there is a large amount of documentaries, video clips, and other media out there that was shot on super $16$ film. This works for RGB-float, RGB, and also YUV variations.
+The C41\protect\footnote{credit Florent Delannoy, original program code author, and Edouard Chalaron} plugin takes a $16\,bit C41$ digital intermediate negative film as input and outputs a positive image. It became necessary because $C-41$ negatives can fade or color-shift over time which was a problem early on. It is still important today because there is a large amount of documentaries, video clips, and other media out there that was shot on super $16$ film. This works for RGB-float, RGB, and also YUV variations.
 
 There are two sets of data -- the scanned input values and your corrected values. Simple functionality of the plugin is to compute the data, transform to get corrected values, then apply that.
 
@@ -1111,6 +1249,7 @@ Figure~\ref{fig:c41} shows the C41 controls on the left and part of the Composit
 
 \subsection{Chroma Key}%
 \label{sub:chroma_key}
+\index{chroma key}
 
 This effect erases pixels which match the selected color. They are replaced with black if there is no alpha channel and transparency if there is an alpha channel. In this case, you create a matte in the alpha channel, which is not visible to us. The selection of color model is important to determine the behavior (figure~\ref{fig:chroma-key}).
 
@@ -1130,10 +1269,11 @@ If the lightness or hue is within a certain \textit{threshold} it is erased. Inc
 
 Normally threshold is very low when using a high slope. The two parameters tend to be exclusive because slope fills in extra threshold. The slope tries to soften the edges of the chroma key but it does not work well for compressed sources. A popular softening technique is to use a maximum slope and chain a blur effect below the chroma key effect to blur just the alpha.
 
-\subsection[Chroma Key (HSV)]{Chroma Key (HSV)\protect\footnote{Credit for Plugin by Jerome Cornet \url{http://jcornet.free.fr/linux/chromakey.html}}}%
+\subsection[Chroma Key (HSV)]{Chroma Key (HSV)}%
 \label{sub:chroma_key_hsv}
+\index{chroma key HSV}
 
-Chroma Key (HSV) (figure~\ref{fig:chroma-key-hsv}) replaces a color with another color or transparency using HSV variables; it is frequently used to remove a color from a video to composite with another image. This process is generally referred to as green screen or blue screen process (because of the color that is keyed out). More information: {\small \url{http://en.wikipedia.org/wiki/Chromakey}}
+Chroma Key (HSV)\protect\footnote{Credit for Plugin by Jerome Cornet \url{http://jcornet.free.fr/linux/chromakey.html}} (figure~\ref{fig:chroma-key-hsv}) replaces a color with another color or transparency using HSV variables; it is frequently used to remove a color from a video to composite with another image. This process is generally referred to as green screen or blue screen process (because of the color that is keyed out). More information: {\small \url{http://en.wikipedia.org/wiki/Chromakey}}
 
 \begin{figure}[htpb]
     \centering
@@ -1179,6 +1319,7 @@ Now the mask is probably still very harsh, so just below the Chromakey (HSV) plu
 
 \subsection{Color 3 Way}%
 \label{sub:color_3_way}
+\index{color 3 way}
 
 Together with \textit{Histogram Bezier / Curves} Color 3 Way is the main tool of Color Grading because you can modify the colors of \textit{Shadows}, \textit{Midtones}, and \textit{Highlights} as desired. Color 3 Way is keyframable (figure~\ref{fig:color3way}).
 
@@ -1213,6 +1354,7 @@ The most common use cases (but can be adapted to virtually any situation) of the
 
 \subsection{Color Balance}%
 \label{sub:color_balance}
+\index{color balance}
 
 Video Color Balance is a great effect to use along with Brightness/Contrast and Hue/saturation to try to compensate for possible errors in filming (low lighting, for example). It can do so much without greatly lowering the quality of the video. With it you can change the colors being sent to output \textit{CMY} (Cyan, Magenta, Yellow) or \textit{RGB} (Red, Green, Blue). Color Balance is also keyframable.
 
@@ -1227,6 +1369,7 @@ Since \textit{complementary colors} are neutralized, to eliminate a \textit{colo
 
 \subsection{ColorSpace}%
 \label{sub:color_space}
+\index{color space}
 
 This plugin is a tool that can be used to convert your input media, such as a recording from your camera,
 from one color space/range to another.  It works for both RGB and YUV as set by your project format.
@@ -1254,6 +1397,7 @@ color space  or range so that you can fix it.
 
 \subsection{CriKey}%
 \label{sub:crikey}
+\index{CriKey}
 
 The Chroma Interpolation Key plugin, CriKey, is a regionally based chroma key with interpolation (figure~\ref{fig:crikey}). This is useful when you only want 1 or some specific zones to be defined by the chroma key as opposed to the entire image. Its most significant feature is that you can select several regions of interests and of different colors as opposed to only $1$.
 
@@ -1271,7 +1415,7 @@ To start, if not already checked, turn on drag. In the composer window select an
     \item[X, Y:] points coordinate.
     \item[Buttons:] \textit{New} to create a new point, \textit{Up/Dn} to move highlighted point up or down \textit{Del} to delete the highlighted point.
     \item[Threshold:] slider goes from $0\, to\, 1$. Increasing the threshold, increases the area to be filled or masked. You can also use the mouse wheel to scroll the slider.
-    \item[Drag:] for ease of use.
+    \item[Drag:] for ease of use. If you need to clear the Drag enabled, you can easily do this with \textit{Allow keyframe spanning} whose use is described in \nameref{sec:allow_keyframes_spanning}.
     \item[Reset:] button to revert to only the default middle point with all others being deleted.
     \item[ListBox:] "E" for Enabled with $*$ marking that; "X" is the point’s $x$ coordinate; "Y" is the point’s $y$ coordinate; "T" is the threshold value of $X,Y$ point; \textit{Tag} represents the \# of the selected
     point.
@@ -1319,6 +1463,7 @@ Figure~\ref{fig:crikey01} and figure~\ref{fig:crikey02} shows how moving the Thr
 
 \subsection{Crop \& Position}%
 \label{sub:crop_position}
+\index{crop \& position}
 
 It allows you to obtain a rectangle from the frame, whose dimensions are fully adjustable by four sliders for the four sides of the frame. You can also place this rectangle in the canvas using two other sliders for right/left and up/down scrolling. With the Clear buttons we can bring the slider to default values without affecting the other parameters. Unlike the \textit{Crop} tool, the original frame size is not altered and being keyframable allows a wide variety of uses. In figure~\ref{fig:crop_position} the Crop \& Position plugin is compared with the \textit{Crop} tool.
 
@@ -1331,6 +1476,7 @@ It allows you to obtain a rectangle from the frame, whose dimensions are fully a
 
 \subsection{DeScratch}%
 \label{sub:descratch}
+\index{descratch}
 
 The descratch video plugin can be used to remove vertical scratches
 from film. It can also be used, after image rotation, to remove
@@ -1388,6 +1534,7 @@ Figure~\ref{fig:descratch} shows a before and after DeScratch scenario. With \te
 
 \subsection{Decimate}%
 \label{sub:decimate}
+\index{decimate}
 
 This is used to decrease the frame rate of a video. Changing the frame rate means eliminating a frame for any given number of frames ($1 in N$); but if frames that are important for visual continuity are deleted, temporal artifacts arise: flickering, slowdowns, accelerations, etc. The Decimate filter maintains a higher quality because it first eliminates duplicate frames or frames that are most similar, thus limiting the appearance of artifacts. It is often used after the \textit{Invert Telecine} plugin to make the video more smooth.
 
@@ -1397,11 +1544,13 @@ Keep in mind that every effect layered before decimate, processes video at the d
 
 \subsection{Deinterlace}%
 \label{sub:deinterlace}
+\index{deinterlace}
 
 The deinterlace effect has evolved over the years to deinterlacing and a whole lot more. In fact two of the deinterlacing methods, \textit{Inverse Telecine} and \textit{Frames to Fields}, are separate effects. The deinterlace effect offers several variations of line replication to eliminate comb artifacts in interlaced video. It also has some line swapping tools to fix improperly captured video or make the result of a reverse effect display fields in the right order.
 
 \subsection{Deinterlace-CV}%
 \label{sub:deinterlace_cv}
+\index{deinterlace-cv}
 
 Selection of deinterlacing mode for your video to eliminate comb artifacts (figure~\ref{fig:deinterlace}).
 
@@ -1414,11 +1563,13 @@ Selection of deinterlacing mode for your video to eliminate comb artifacts (figu
 
 \subsection{Delay Video}%
 \label{sub:delay_video}
+\index{delay video}
 
 Delay the video by some number of seconds.
 
 \subsection{Denoise Video}%
 \label{sub:denoise_video}
+\index{denoise video}
 
 Denoise video (figure~\ref{fig:denoise}).
 
@@ -1431,6 +1582,7 @@ Denoise video (figure~\ref{fig:denoise}).
 
 \subsection{Difference key}%
 \label{sub:difference_key}
+\index{difference key}
 
 The difference key creates transparency in areas which are similar between two frames. The Difference key effect must be applied to two tracks. One track contains the action in front of a constant background and another track contains the background with nothing in front of it. Apply the difference key to the track with the action and apply a \textit{shared effect} of it to the track with the background. The track with the background should be muted and underneath the track with the action and the color model should have an alpha channel. It’s hard to get good results.
 
@@ -1446,21 +1598,25 @@ Pixels which are different between the background and action track are treated a
 
 \subsection{DotTV}%
 \label{sub:dottv}
+\index{dotTV}
 
 Puts various size dots over the picture to simulate TV effect. This came from: {\small \url{https://effectv.com}}.
 
 \subsection{Downsample}%
 \label{sub:downsample}
+\index{downsample}
 
 Downsampling is the process of reducing the size of an image by throwing out data, reducing sampling rate.
 
 \subsection{Edge}%
 \label{sub:edge}
+\index{edge}
 
 Display only the edges of the video throughout the image.
 
 \subsection{Fields to frames}%
 \label{sub:fields_to_frames}
+\index{fields to frame}
 
 See the theory description in the \textit{Frames to Fields} plugin. This effect reads frames at twice the project framerate, combining two input frames into a single interlaced output frame. Effects preceding fields to frames process frames at twice the project frame rate. Each input frame is called a field.
 
@@ -1468,16 +1624,20 @@ Fields to frames needs to know what field corresponds to what lines in the outpu
 
 \subsection{Flip}%
 \label{sub:flip}
+\index{flip}
 
 This effect flips a video track either vertically or horizontally.
 
 \subsection{Foreground}%
 \label{sub:foreground}
+\index{foreground}
 
-Whatever the visual content of the frame, the Foreground plugin application applies a uniform color that can be chosen by color picker; color wheel; color presets; the various HSV, RGB, YUV sliders or by entering the hexadecimal value. The alpha slider is not missing either.
+Whatever the visual content of the frame, the Foreground plugin application applies a uniform color that can be chosen by color picker, color wheel, color presets, or by entering the hexadecimal value.
+In addition there are HSV, RGB, YUV, and alpha sliders to vary the color accordingly.
 
 \subsection{Frames to fields}%
 \label{sub:frames_to_fields}
+\index{frames to fields}
 
 \subsubsection*{Theory behind the Frames to Fields and Fields to Frames plugins}
 \label{ssub:theory_frames_fields}
@@ -1528,6 +1688,7 @@ This plugin is only useful if its output is pulled with doubled framerate with r
 
 \subsection{Freeze Frame}%
 \label{sub:freeze_frame}
+\index{freeze frame}
 
 In its simplest form, highlight a region of the track to freeze, drop the \texttt{freeze frame} effect on the highlighted region, and the lowest numbered frame in the affected area will play throughout the entire region. Freeze Frame has an enabled option which can be keyframed. Regions of a freeze frame effect which are enabled, repeat the lowest numbered frame since the last keyframe. This has unique possibilities.
 
@@ -1539,6 +1700,7 @@ In its simplest form, highlight a region of the track to freeze, drop the \textt
 
 \subsection{Gamma}%
 \label{sub:gamma}
+\index{gamma}
 
 \textit{Log} camera images store colors in a $logarithmic$ scale. The blacks in these images are nearly $0$ and the whites are supposed to be infinity. The graphics card and most video codecs store colors in a $linear$ scale but \CGG{} keeps log camera images in their original logarithmic scale when it renders them. This is necessary because the raw image parser can not always decode the proper gamma ($\gamma$) values for the images. It also does its processing in $16\,bit$ integers, which takes away a lot of information.
 
@@ -1589,6 +1751,7 @@ Care must be taken when using gamma correction: if the image carries a specific
 
 \subsection{Gradient}%
 \label{sub:gradient}
+\index{gradient}
 
 The \textit{gradient} effect overlays a smooth color gradient on top of every video frame. It is useful for all sorts of background fills, for partially filtering, adding depth to the image, or for adding moving highlights. The Gradient effect can generate linear or circular color fills / shape. For linear fills, you can choose the \textit{angle}, for circular fills the \textit{center $(X,Y)$} of the created gradient pattern. You can control the \textit{slope} of the color transition by selecting a transition function ($linear$, $logarithmic$, $squared$) and by changing the start (\textit{inner}) and stop (\textit{outer}) radius. Note that both colors used in this color transition can contain an arbitrary \textit{Alpha} value (transparency). All parameters can be keyed and will be interpolated between keyframes.
 
@@ -1611,8 +1774,9 @@ The first time you use the plugin it may seem complicated, but if you understand
 
 \textit{Note:} The inner and outer colors are visibly mixed in the gradient area. If you want to make a vignetting of only black, you must set the two colors to black and then make the inner one transparent so that it does not cover the figure.
 
-\subsection{HistEq}%
+\subsection{HistEQ}%
 \label{sub:histeq}
+\index{histEQ}
 
 Remap colors using blended histogram weights. Figure~\ref{fig:histeq} shows the GUI and the results in a split screen.
 
@@ -1634,6 +1798,7 @@ Histeq equalizes the colorspace through use of a \textit{histogram equalization
 
 \subsection{Histogram}%
 \label{sub:histogram}
+\index{histogram}
 
 The histogram allows an immediate view of the contrast amplitude of an image with its distribution of \textit{luma} and \textit{colors} values. If the columns of values occupy the whole range $0-100\%$ then we have maximum contrast; if the range is smaller the contrast is smaller. If most of the values are on the right of the histogram you have an image with highlights at the limit with values clamped to $1.0$. This is called \textit{overexposure}. However, if most of the values are moved to the left, with the limit of the values clamped to $0$, we have a lowlight image and we talk about \textit{underexposure}. Histogram is keyframble (figure~\ref{fig:histogram}).
 
@@ -1657,8 +1822,83 @@ Enable the \textit{Automatic} toggle to have the histogram calculate an automati
 \textit{Split output} is a checkbox that enables a diagonal split showing in the compositor.
 \textit{Reset} returns the four curves to their initial state (neutral) as well as the Value/RGB histogram buttons.
 
+The histogram plugin ordinarily applies a value for a single frame.  A
+new feature modifies histogram to show values for a selection of frames.
+You use several frames in a video that you want to use the \textit{average}
+color to determine the color you want the rest of the video to be.  When
+there is a large light or color variation within a range of a few frames,
+you spend a lot of time correcting each frame when it would be better to
+just get an average value to use.  If you want, then you can make a LUT for
+that set of frames instead of each frame.
+
+It works by selecting the area on the timeline for
+which you would like to see the Histogram averaged and then click on the
+\textit{Frames} button in the Histogram plugin.
+The parameters are:
+\textit{Linear to Log} slider: frequency in Linear range to Log range; default is 50\%, but if you want it to be the same as the Videoscope or Histogram Bezier, set the slider all the way to Log.  The variation is by 10\% steps.  Linear generally represents what the eye sees in the real world.  Log is an exponential look where the small numbers are represented more - that is, the leading digit.
+\textit{Frames} button: if a Selection is set on the timeline, the number of frames
+will be calculated and shown in the box next to it.
+\textit{Frame Count box}: type in the number of frames you want to be looked at
+starting at the insert marker or use the up/down counter.
+\textit{Clear Frames} icon: reset the frame count to the default value of 0.
+
+A side note: by using a number of frames, you can get a \textit{dissolve-like
+transition effect}.
+
+\paragraph{Theory:} 
+
+A histogram is a bunch of \textit{bins} (accumulators) that count the number of times a particular pixel channel intensity occurs in an image. Dim are on the left, bright on the right.
+
+The number of bins used depends on the color model bit depth:
+
+\begin{description}
+       \item[Histogram:] 256 for rgb8 and 65536 for all others.
+       \item[Bezier:] 256 for rgb8/yuv8 and 65536 for all others.
+       \item[Scopes:] always uses 65536
+\end{description}
+
+All of the bins are scanned when the graph is plotted.  What is shown
+depends on which plugin is used:
+
+\begin{description}
+       \item[Histogram:] was max of the bins in the pixel range, now is the sum
+       \item[Bezier:] is the max of the bins in the pixel range
+       \item[Scopes:] is the max of the bins in the pixel range
+\end{description}
+
+When the color space and the bin size are the same, all of the values
+increment the indexed bins.  When the color is the result of yuv $\rightarrow$ rgb conversion, the results \textit{spread} if there are more bins than colors.  This is the same effect you see when you turn on \textit{smoothing} in the vectorscope histogram.
+
+The \textit{total} pixels for each value is approximately the same, but the \textit{max} value depends on the color quantization.  More colors increment more bins.  Fewer colors increment fewer bins.  In both cases, the image size has the same
+number of pixels.  The fewer color case increments the used bins, and skips the
+unused bins.  This sums all of the pixels into fewer bins, and the bins have
+higher values. That is the \textit{rgb} vs \textit{yuv} case, fewer vs more bins are used.
+
+To report something more consistent, has been changed the reported value to
+the \textit{sum} of the accumulated counts for the bins reporting a pixel bar on the
+graph. The effect of this is to do this:
+
+\begin{center}
+       \begin{tabular}{ l l c r r }
+               \hline
+               1 &  & & & \\
+               1 &  & & 1 & \\
+               000100 & 3 pixels & vs & 001000& 3 pixels \\
+               \hline
+       \end{tabular}
+\end{center}
+
+On the left, the course color model piles all 3 pixels into one bin.  max
+value 3
+
+On the right, the fine color model puts the counts into 2 bins, max 2, sum 3
+
+So, by reporting the sum the shape of the results are more similar.
+
+
 \subsection{Histogram Bezier / Curves}%
 \label{sub:histogram_bezier_curves}
+\index{histogram Bezier}
 
 Histogram BĂ©zier allows an immediate view of the contrast amplitude of an image with its distribution of luma and colors values using a piecewise linear method. In addition it uses a BĂ©zier curve (parametric) on the histogram plot. When mapping color spaces, it has a variety of presentations to get smoother transitions and more pleasing output. It uses more general remapping, not just straight lines but more contour lines. Curves are perhaps the most powerful and sophisticated tool for color correction. For some repetitive details, see the previous description of the Histogram plugin. Histogram BĂ©zier is keyframable.
 
@@ -1699,20 +1939,19 @@ the beginning, to fix their values and prevent clipping.
 
 Curves are generally adjusted by introducing several control points, some to be kept fixed (as anchors) to prevent curve modification beyond them, and others to be dragged to make the desired correction. The power of the curves lies in being able to circumscribe a small interval at will and intervene only on this without involving the remaining parts of the frame. The precision with which you can work is such that you can almost arrive at a secondary color correction.
 
-\begin{figure}[htpb]
-    \centering
-    \includegraphics[width=0.8\linewidth]{ex-bezier.png}
-    \caption{Gain Up/Down; clamp; S-Shaped curve and Luma Key}
-    \label{fig:ex-bezier}
-\end{figure}
-
-
 The most used type of modification is to create a \textit{S curve}. There can be a lot of shapes that use the S curve; the simplest is to create a control point in the shadows, one in the midtones (anchors) and one in the highlights. Moving the highlight point upwards and the shadow point downwards increases the contrast, making the image sharper and improving the color rendering. With the type of \textit{linear} curve you can make hard adjustments, similar to the result of the use of \textit{Color 3 Way}, even if this acts on the color wheel (Hue) while the curves act on individual RGB channels.
 
-The \textit{Polynomial} and \textit{BĂ©zier} types introduce \textit{control handles} that allow for more sophisticated and smoother adjustments. The quality of the result is much better, but they require more experience for their optimal use. Extending the handles away from the control point increases the \textit{radius} of the curve at that point. By varying the angle of the handles we change the \textit{tangent} and thus the curvature of the curve below. The difference between Polynomial and BĂ©zier lies in the underlying mathematics, but for practical purposes the use is similar.
+The \textit{Polynomial} and \textit{BĂ©zier} types introduce \textit{control handles} that allow for more sophisticated and smoother adjustments. The quality of the result is much better, but they require more experience for their optimal use. By varying the angle of the handles we change the \textit{tangent} and thus the slope of the curve below. Unlike true Bezier curves, there is no effect in extending the handles: there is no change in the radius of the curve. The difference between Polynomial and BĂ©zier lies in the underlying mathematics, but for practical purposes the use is similar. By default BĂ©zier starts with a slight S-curve, as opposed to Polynomial.
 
 Some examples of the use of curves to demonstrate the variety of possible interventions (figure~\ref{fig:ex-bezier}):
 
+\begin{figure}[htpb]
+       \centering
+       \includegraphics[width=0.8\linewidth]{ex-bezier.png}
+       \caption{Gain Up/Down; clamp; S-Shaped curve and Luma Key}
+       \label{fig:ex-bezier}
+\end{figure}
+
 \begin{itemize}
     \item Scale the image values by increasing the white point or decreasing the white point (gain up and gain down).
         You can decide the scaling value with the formula: $(Input \div Output) = Scale Factor$
@@ -1723,6 +1962,7 @@ Some examples of the use of curves to demonstrate the variety of possible interv
 
 \subsection{HolographicTV}%
 \label{sub:holographictv}
+\index{holographicTV}
 
 Incoming objects are projected like holovision seen in the movie Stars Wars as in R2-D2's video message projector of the Princess Leia. You need a movie or background image and above it a track containing the figure on which to apply the effect. This must have a transparent background. There are no configuration parameters; it only has to be applied to the upper track (figure~\ref{fig:holographictv}).
 
@@ -1737,21 +1977,24 @@ This effect originated from {\small \url{https://effectv.com}}.
 
 \subsection{Hue saturation}%
 \label{sub:hue_saturation}
+\index{hue saturation}
 
-With this effect you can change hue, saturation and value. The parameters are modified using 3 simple sliders. The \textit{hue} control shifts the colors circularly in the color plane, normally resulting in false colors. The \textit{saturation} control can be used to reduce color footage to black and white. The \textit{value} control makes any given colors more bright or more subdued. Clear buttons are present to reset its slider to default without affecting others.
+With this effect you can change hue, saturation and value. The parameters are modified using 3 simple sliders. For maximum precision you can use the input box. The \textit{hue} control shifts the colors circularly in the color plane, normally resulting in false colors. The \textit{saturation} control can be used to reduce color footage to black and white. The \textit{value} control makes any given colors more bright or more subdued. \textit{Clear} buttons are present to reset its slider to default without affecting others.
 
 \subsection{Interpolate Bayer}%
 \label{sub:interpolate_bayer}
+\index{interpolate bayer}
 
 Uses a Bayer filter algorithm to interpolate (estimate) missing color information. This is needed for some cameras where each pixel location only has an R or G or B value instead of all R, G, and B values for each location. The algorithm creates values for each of the three colors at every location by smearing (interpolating) each set of partial R, G and B values to create values at every pixel location.
 
 \subsection{Interpolate Video}%
 \label{sub:interpolate_video}
+\index{interpolate video}
 
 \subsubsection*{Theory}
 \label{ssub:theory}
 
-Each video has its own framerate. If we want to change it (for \textit{timelapse} or \textit{slowmotion}) the best thing is to shoot the scene with suitable framerate. But even in post production we can do something. The simplest method is to remove some frames to speed up the movie or add some to slow it down (from now on, for simplicity we will consider only the timelapse). Needless to say, the result is not smooth and the viewer will notice it immediately. A better method is to use the interpolation, mediating the pairs of frames that alternate. For example, if we have a sequence of frames $1, 2, 3, 4, 5, 6, 7, 8\dots$ we can make a timelapse mixing frames $1$ and $2$, $3$ and $4$, $5$ and $6$, $7$ and $8$ and so on. So we will have a new sequence of $4$ frames instead of the initial $8$: $\underline{12, 34, 56, 78}\dots$ We will get $50\%$ acceleration but it will always be of bad quality because of the too rough blending between the pairs of frames. Blending can be improved by weighing it differently by $50\% frame 1 + 50\% frame 2$, but the result is still unsatisfactory. Further improvements can be achieved by using $logarithmic$ or $exponential$ interpolation instead of $linear$ interpolation. But the most sophisticated methods that lead to better results are based on \textit{optical flow analysis}. These analyses the movement of circumscribed areas over a given period of time. With this method the intermediate frames do not derive from an approximate blending, but from the calculation of the \textit{vector} of the motion between two frames that determines the displacement (\textit{warping}) of the moving figure in the new intermediate frame. \textit{Interpolate Video} works this way.
+Each video has its own framerate. If we want to change it (for \textit{timelapse} or \textit{slow motion}) the best thing is to shoot the scene with suitable framerate. But even in post production we can do something. The simplest method is to remove some frames to speed up the movie or add some to slow it down (from now on, for simplicity we will consider only the timelapse). Needless to say, the result is not smooth and the viewer will notice it immediately. A better method is to use the interpolation, mediating the pairs of frames that alternate. For example, if we have a sequence of frames $1, 2, 3, 4, 5, 6, 7, 8\dots$ we can make a timelapse mixing frames $1$ and $2$, $3$ and $4$, $5$ and $6$, $7$ and $8$ and so on. So we will have a new sequence of $4$ frames instead of the initial $8$: $\underline{12, 34, 56, 78}\dots$ We will get $50\%$ acceleration but it will always be of bad quality because of the too rough blending between the pairs of frames. Blending can be improved by weighing it differently by $50\% frame 1 + 50\% frame 2$, but the result is still unsatisfactory. Further improvements can be achieved by using $logarithmic$ or $exponential$ interpolation instead of $linear$ interpolation. But the most sophisticated methods that lead to better results are based on \textit{optical flow analysis}. These analyses the movement of circumscribed areas over a given period of time. With this method the intermediate frames do not derive from an approximate blending, but from the calculation of the \textit{vector} of the motion between two frames that determines the displacement (\textit{warping}) of the moving figure in the new intermediate frame. \textit{Interpolate Video} works this way.
 
 \subsubsection*{Practice}
 \label{ssub:practice}
@@ -1760,6 +2003,7 @@ The practical use of \textit{Interpolate Video} is a little different than the t
 
 \subsection{Inverse Telecine}%
 \label{sub:inverse_telecine}
+\index{inverse telecine}
 
 This is the most effective deinterlacing tool when the footage is a video transfer of a film. This can be used to solve the problem, i.e., undo the damage caused by making film into a TV broadcast.
 That process came about because film is at 24\,\emph{fps} while TV is at 29.97\,\emph{fps} and fields are at 60.
@@ -1781,11 +2025,13 @@ The first two options are fixed patterns and affected by the pattern \textit{off
 
 \subsection{Invert Video}%
 \label{sub:invert_video}
+\index{invert video}
 
 Invert video is a method of reversing the colors of a video track. The four parameters refer to channels -- \textit{Red}, \textit{Blue}, \textit{Green}, \textit{Alpha}. A very common use is to invert the alpha channel to change transparency.
 
 \subsection{Lens}%
 \label{sub:lens}
+\index{lens}
 
 Create the effect of looking through a lens.
 
@@ -1800,6 +2046,7 @@ Create the effect of looking through a lens.
 
 \subsection{Linear Blur}%
 \label{sub:linear_blur}
+\index{linear blur}
 
 This effect acts only in one direction which can vary up to an angle of $180\degree$ with these parameters:
 
@@ -1811,17 +2058,19 @@ This effect acts only in one direction which can vary up to an angle of $180\deg
 \end{figure}
 
 \begin{description}
-    \item[Lenght:] distance between original image and final blur step; corresponds to the distance of the fields.
+    \item[Length:] distance between original image and final blur step; corresponds to the distance of the fields.
     \item[Angle:] angle of motion in one direction for linear blur
     \item[Steps:] number of blur steps to be used in the calculation. Increasing the number takes more CPU.
     \item[Channels:] R,G,B,A.
     \item[Clear] With the Clear buttons we can bring the slider to default values without affecting the other parameters.
 \end{description}
 
+For maximum precision you can use the input box.
 Figure~\ref{fig:linear} shown here has the parameters: $Length=19$, $Angle=25$, and $Steps=2$.
 
 \subsection{Live Video}%
 \label{sub:live_video}
+\index{live video}
 
 This effect reads video directly from the capture card input. It replaces any video on the track so it is normally applied to an empty track. Only one \textit{Live Video} effect can exist at any time on the timeline. It can not be shared by more than one track. The configuration for the capture card is taken from the recording preferences. Go to \texttt{Settings $\rightarrow$ Preferences $\rightarrow$ Recording} to set up the capture card.
 
@@ -1833,6 +2082,7 @@ With the video recording configured, highlight a horizontal region of a video tr
 
 \subsection{Loop video}%
 \label{sub:loop_video}
+\index{loop video}
 
 Sections of video can be looped by dropping a loop effect on them. Contrary to the \texttt{settings $\rightarrow$ loop playback} option, the loop effects can be rendered where the \texttt{settings $\rightarrow$ loop playback} option can not be. The loop effects are also convenient for short regions.
 
@@ -1842,8 +2092,10 @@ Every time a keyframe is set in a loop effect, the keyframe becomes the beginnin
 
 \subsection{Motion51}%
 \label{sub:motion51}
+\index{Motion51}
 
-This plugin compensates for unwanted motion and stabilizes the picture. The \textit{Motion51} Plugin simplifies motion stabilization so that without a lot of tweaking you can easily achieve reasonable results, either by using the defaults or varying a single parameter. Since the motion in every clip is specific, there are some additional parameters useful to adjust the settings accordingly. Alternatively, the \textit{MotionCV} and \textit{MotionHV} plugins can still be used as the originals, if more control over specific parameters is needed. The Motion51 plugin uses different methods for tracking than the other motion plugins. Motion Stabilization is very useful if you have jittery video, for example when taken from a car window, or while walking.
+This plugin compensates for unwanted motion and stabilizes the picture. The \textit{Motion51} Plugin simplifies motion stabilization so that without a lot of tweaking you can easily achieve reasonable results, either by using the defaults or varying a single parameter. Since the motion in every clip is specific, there are some additional parameters useful to adjust the settings accordingly. 
+The Motion51 plugin uses different methods for tracking than the other motion plugins. Motion Stabilization is very useful if you have jittery video, for example when taken from a car window, or while walking.
 
 The better results require more samples. Setting the \textit{sample set size} is probably the most important setup change. Also, when computing motion compensation, the entire history of the image motion is important, and so it is desirable to enable the playback setting \textit{play every frame} in order to get good results. When every frame has to be processed, it can be time-consuming. Reasonable results are possible with small sample sets. After setup, the sample size can be increased to produce a high quality rendered result.
 
@@ -1888,54 +2140,236 @@ The Samples box at the top is most often the only parameter that you may want to
 
 \subsection{Motion}%
 \label{sub:motion}
+\index{Motion}
 
 The \textit{motion tracker} is almost a complete application in itself. The motion tracker tracks two types of motion: \textit{translation} and \textit{rotation}. It can track both simultaneously or one only. It can do $\frac{1}{4}$ pixel tracking or single pixel tracking. It can stabilize motion or cause one track to follow the motion of another track. Although the motion tracker is applied as a realtime effect, it usually must be rendered to see useful results. The effect takes a long time to precisely detect motion so it is very slow.
 
 Motion tracker works by using one region of the frame as the region to track (Match Box). It compares this region between $2$ frames to calculate the motion. This region can be defined anywhere on the screen. Once the motion between $2$ frames has been calculated, a number of things can be done with that \textit{motion vector}. It can be scaled by a user value and clamped to a maximum range. It can be thrown away or accumulated with all the motion vectors leading up to the current position.
 
-To save time the motion result can be saved in a file for later reuse, recalled from a previous calculation, or discarded. The motion tracker has a notion of $2$ tracks, the \textit{master} layer and the \textit{target} layer. The master layer is where the comparison between $2$ frames takes place. The target layer is where motion is applied either to track or compensate for the motion in the master layer.
+To save time the motion result can be saved in a file for later reuse, recalled from a previous calculation, or discarded. The motion tracker has a notion of $2$ tracks, the \textit{master} layer and the \textit{target} layer. The \textit{master} layer is where the comparison between $2$ frames takes place. The \textit{target} layer is where motion is applied either to track or compensate for the motion in the \textit{master} layer (figure~\ref{fig:motion}).
+
+\begin{figure}[ht]
+       \centering
+       \includegraphics[width=0.9\linewidth]{motion.png}
+       \caption{Motion plugin GUI}
+       \label{fig:motion}
+\end{figure}
 
-Motion tracking parameters:
+Motion tracking parameters\protect\footnote{credit Georgy (sge)}:
 
 \begin{description}
-    \item[Track translation] Enables translation operations. The motion tracker tracks $X$ and $Y$ motion in the master layer and adjusts $X$ and $Y$ motion in the target layer.
+    \item[Track translation] Enables translation operations. The motion tracker tracks $X$ and $Y$ motion in the \textit{master} layer and adjusts $X$ and $Y$ motion in the \textit{target} layer.
 
     \item[Translation block size] For the translation operations, a block is compared to a number of neighboring blocks to find the one with the least difference. The size of the Match Box to search for is given by this parameter.
     \item[Translation search radius] The size of the area to scan for the translation block.
-    \item[Translation search steps] Ideally the search operation would compare the translation block with every other pixel in the translation search radius. To speed this operation up, a subset of the total positions is searched. Then the search area is narrowed and re-scanned by the same number of search steps until the motion is known to $\frac{1}{4}$ pixel accuracy.
+    \item[Translation search steps] Ideally the search operation would compare the translation block with every other pixel in the \textit{Translation search radius}. To speed this operation up, a subset of the total positions is searched. Then the search area is narrowed and re-scanned by the same number of search steps until the motion is known to $\frac{1}{4}$ pixel accuracy.
+    \item[Translation direction] Tracking translation is possible in any direction, or in horizontal or vertical direction only, depending on this selection.
     \item[Block X, Y] These coordinates determine the center of the translation block based on percentages of the width and height of the image. The center of the block should be part of the image which is visible at all times.
     \item[Maximum absolute offset] The amount of motion detected by the motion tracker is unlimited if this is $100$. If it is under $100$ the amount of motion is limited by that percentage of the image size.
-    \item[Settling speed] The motion detected between every frame can be accumulated to form an absolute motion vector. If the settling speed is $100$ the absolute vector is added to the next frame. If the settling speed is less than $100$ the absolute vector is downscaled by the settling amount before being added to the next frame.
-    \item[Track rotation] Enables rotation operations. The motion tracker tracks rotation in the master layer and adjusts rotation in the target layer.
-    \item[Rotation block size] For rotation operations a single block is compared to equally sized blocks, each rotated by a different amount. This is the size of the rotation block.
-    \item[Rotation search radius] This is the maximum angle of rotation from the starting frame the rotation scanner can detect. The rotation scan is from this angle counterclockwise to this angle clockwise. Thus the rotation search radius is half the total range scanned.
-    \item[Rotation search steps] Ideally every possible angle would be tested to get the rotation. To speed up the rotation search, the rotation search radius is divided into a finite number of angles and only those angles compared to the starting frame. Then the search radius is narrowed and an equal number of angles is compared in the smaller radius until the highest possible accuracy is achieved. Normally you need one search step for every degree scanned. Since the rotation scanner scans the rotation search radius in two directions, you need two steps for every degree in the search radius to search the complete range.
-    \item[Draw vectors] When translation is enabled, $2$ boxes are drawn on the frame. One box represents the translation block. Another box outside the translation block represents the extent of the translation search radius. In the center of these boxes is an arrow showing the translation between the $2$ master frames. When rotation is enabled, a single box the size of the rotation block is drawn rotated by the amount of rotation detected.
-    \item[Track single frame] When this option is used the motion between a single starting frame and the frame currently under the insertion point is calculated. The starting frame is specified in the Frame number box. The motion calculated this way is taken as the absolute motion vector. The absolute motion vector for each frame replaces the absolute motion vector for the previous frame. Settling speed has no effect on it since it does not contain any previous motion vectors. Playback can start anywhere on the timeline since there is no dependence on previous results. We talk about \textit{Keep shape} and it is the most precise way to calculate the motion vector; but it only works well when the object to be traced does not change along the clip, remaining identical in shape, size and without rotation.
-    \item[Track previous frame] Causes only the motion between the previous frame and the current frame to be calculated (\textit{Follow shape}). This is added to an absolute motion vector to get the new motion from the start of the sequence to the current position. After every frame processed this way, the block position is shifted to always cover the same region of the image. Playback must be started from the start of the motion effect in order to accumulate all the necessary motion vectors. This method is less precise because you have error propagation between frames. However, it is essential when the object changes shape or size or rotates.
-    \item[Previous frame same block] This is useful for stabilizing jerky camcorder footage. In this mode the motion between the previous frame and the current frame is calculated. Instead of adjusting the block position to reflect the new location of the image, like Track Previous Frame does, the block position is unchanged between each frame. Thus a new region is compared for each frame.
-    \item[Master layer] This determines the track which supplies the starting frame and ending frame for the motion calculation. If it is Bottom the bottom track of all the tracks sharing this effect is the master layer. The top track of all the tracks is the target layer.
-    \item[Calculation] This determines whether to calculate the motion at all and whether to save it to disk. If it is \textit{Don't Calculate} the motion calculation is skipped. If it is \textit{Recalculate} the motion calculation is performed every time each frame is rendered. If it is \textit{Save} the motion calculation is always performed but a copy is also saved. If it is \textit{Load}, the motion calculation is loaded from a previous save calculation. If there is no previous save calculation on disk, a new motion calculation is performed.
-    \item[Action] Once the motion vector is known this determines whether to move the target layer opposing the motion vector or following the motion vector. If it is \textit{Do Nothing} the target layer is untouched. If it is \textit{Track\dots} the target layer is moved by the same amount as the master layer. This is useful for matching titles to objects in the frame. If it is \textit{Stabilize\dots} the target layer is moved opposite to the motion vector. This is useful for stabilizing an object in the frame. The motion operations can be accurate to single pixels or subpixels by changing the action setting.
+    \item[Motion settling speed] The motion detected between every frame can be accumulated to form an absolute motion vector. Settling speed determines how fast the accumulated translation fades away, and the image resettles to its actual appearance. If the settling speed is 0\% the total absolute vector is added to the next frame. So every frame that is processed accumulates the whole motion of the past. If the settling speed is 100\% the absolute vector is cancelled completely, adding no past translation to the next frame. If the settling speed is intermediate between 0\% and 100\% the absolute vector is downscaled by (100 $-$ settling amount) before being added to the next frame.
+    \item[Track rotation] Enables rotation operations. The motion tracker tracks rotation in the \textit{master} layer and adjusts rotation in the \textit{target} layer.    
+    \item[Rotation search radius] This is the maximum angle of rotation from the starting frame the rotation scanner can detect. The rotation scan is from this angle counterclockwise to this angle clockwise. Thus the \textit{Rotation search radius} is half the total range scanned.
+    \item[Rotation search steps] Ideally every possible angle would be tested to get the rotation. To speed up the rotation search, the \textit{Rotation search radius} is divided into a finite number of angles and only those angles compared to the starting frame. Then the search radius is narrowed and an equal number of angles is compared in the smaller radius until the highest possible accuracy is achieved. Normally you need one search step for every degree scanned. Since the rotation scanner scans the \textit{Rotation search radius} in two directions, you need two steps for every degree in the search radius to search the complete range.
+    \item[Rotation center] Usually this parameter is zero, and the rotation search
+    range is $+/-$ \textit{Rotation search radius}.  Otherwise, it shifts the rotation search range to the area of angles between (\textit{Rotation center} $-$ \textit{Rotation search radius}) and (\textit{Rotation center} $+$ \textit{Rotation search radius}).
+    \item[Maximum angle offset] The total accumulated amount of rotation is unlimited
+    if this is 90 degrees.  If it is under 90, the total amount of rotation is
+    limited by the given maximum angle.
+    \item[Rotation settling speed] This parameter determines how fast the accumulated
+    rotation fades away.  Analogously to the \textit{Motion settling speed}, if it is 0\%,
+    the total accumulated rotation is added to the next frame, and every frame
+    accumulates the whole rotation of the past.  If the settling speed is 100\%,
+    no past rotation is added to the next frame.  If the settling speed is
+    intermediate between 0\% and 100\%, the amount of accumulated rotation is
+    downscaled by (100 $-$ settling amount) before being added to the next frame.
+    \item[Motion noise level] This parameter allows to compensate such undesirable
+    behavior when motion tracker wildly springs away because some outlying area
+    of a noisy picture becomes accidentally more "similar" to the reference
+    picture than the right one.  If noise level is set to 0\% (its normal value),
+    then it is not taken into account at all.  When it is set to 100\%, then
+    similarity of the match block contents is totally ignored, and the current
+    motion vector will be zero.  An intermediate value between 0\% and 100\%
+    defines the proportional noise level between minimum and maximum difference
+    of all examined match block positions.  From all such positions whose
+    difference is found below noise level, that one is chosen which has the
+    shortest translation relative to the reference frame.
+    \item[Rotation noise level] This parameter has similar meaning to the \textit{Motion noise level}.  It influences rotation tracking.  If set to 0\% (its normal value),
+    it is not taken into account.  The 100\% setting completely suppresses
+    rotation detection.  An intermediate value between 0\% and 100\% defines the
+    proportional noise level between minimum and maximum difference of all
+    examined rotated match blocks from that of the reference picture.  From all
+    rotation angles whose match block differences are found below noise level,
+    that one is chosen which has the minimum rotation angle relative to the
+    reference frame.    
+    \item[Draw vectors] When translation is enabled, $2$ boxes are drawn on the frame. One box represents the translation block. Another box outside the translation block represents the extent of the \textit{Translation search radius}. In the center of these boxes is an arrow showing the translation between the $2$ master frames. When rotation is enabled, a single box the size of the rotation block is drawn rotated by the amount of rotation detected.
+    \item[Two pass tracking] Although this parameter can be enabled at any time, it is useful only while simultaneous tracking both translation and rotation, when
+    the rotation amount is large.  The normal tracking algorithm firstly
+    examines translation, then rotation.  However, comparison of a strongly
+    tilted picture with the reference one can lead to rather inaccurate
+    determination of the translation vector.  The subsequent determination of
+    rotation will be also inexact because of the preceding translation error.  The
+    second tracking pass, if enabled, refines translation and rotation.
+    
+    If motion and/or rotation noise level is set above 0\% and \textit{Two pass tracking}
+    is enabled, then both noise levels affect the first tracking pass only.
+    During the second tracking pass of two pass tracking both noise levels are
+    ignored.
+    
+    It should be noted that two pass tracking is not twice slower than the usual
+    single pass tracking.  Actually it is only about 40\% slower.  As the second
+    pass serves only for motion refinement, it starts from the reduced search
+    range for block positions and rotation angles.  And, as the first pass only
+    yields an approximate position, which will be later refined during the
+    second pass, it skips subpixel position search and examines rotation angles
+    with the accuracy reduced to 1 degree.
+    \item[Track single frame] When this option is used the motion between a single
+    starting frame and the frame currently under the insertion point is
+    calculated.  The starting frame is specified in the \textit{Frame number} box.  The
+    motion calculated this way is taken as the absolute motion vector.  The
+    absolute motion vector for each frame replaces the absolute motion vector
+    for the previous frame.  \textit{Settling speed} has no effect on it since it does
+    not contain any previous motion vectors.  Playback can start anywhere on the
+    timeline since there is no dependence on previous results.  We talk about
+    \textit{Keep shape} and it is the most precise way to calculate the motion vector;
+    but it only works well when the object to be traced does not change along
+    the clip, remaining identical in shape, size and luminance.
+    
+    Strong rotation of the picture can also have a bad impact on the tracking
+    accuracy.  If it is the case, accuracy can be significantly improved by
+    enabling \textit{Two pass tracking}.
+    
+    \item[Frame number] The number of the reference frame used for motion tracking in
+    the \textit{Track single frame} mode is specified in this input field.  Frame
+    number is set as the 0-based absolute number starting from the very
+    beginning of the whole timeline.  Instead of manual calculating, it is
+    possible to get \textit{Frame number} directly from the current cursor position by
+    pressing the \textit{Get current} button.
+    
+    \item[Get current] Pressing this handy button provides a convenient way to set the
+    \textit{Frame number} parameter to the value of the current cursor position.
+    
+    \item[Add (loaded) offset from tracked frame] This toggle can help when the tracked
+    object changes shape, leaves the screen area or becomes obscured by other
+    objects somewhere in the middle of the \textit{Motion} effect.  Sometimes it can help
+    also if a strong rotation causes the motion tracker to miss the right
+    tracked object and wildly spring away.
+    
+    To overcome this problem, one has to define two keyframes: the first one at
+    the start of the \textit{Motion} effect, the second shortly before the problematic
+    location in the clip.  At the first keyframe one defines the \textit{Motion} effect
+    parameters as usual, the \textit{Add offset} toggle being switched off.  At the
+    second keyframe the match block can be redefined to cover another region of
+    the picture which remains visible during the following part of the effect.
+    The \textit{Frame number} parameter should be set several frames before position of this second keyframe, and the \textit{Add offset} toggle switched on.
+    
+    After defining the two keyframes (even more can be added in the similar way)
+    one switches at all the defined keyframes \textit{Calculation} mode to \textit{Save coords
+    to tracking file}, \textit{Action} mode to \textit{Do Nothing}, rewinds the timeline cursor
+    to the beginning of the \textit{Motion} effect, and starts playback.  The determined
+    motion vectors will be written to the tracking file, the \textit{Add offset}
+    parameter having no effect during the \textit{save} stage.
+    
+    After playback finishes and all the relevant motion vectors are saved in the
+    tracking file, one switches at all the defined keyframes \textit{Calculation} mode to
+    \textit{Load coords from tracking file}, \textit{Action} mode to whatever one needs, rewinds again to the beginning of the \textit{Motion} effect and starts playback or
+    rendering.  After reaching the second keyframe, where \textit{Add offset} was
+    switched on, the program continues to follow the second object adding the
+    total motion and rotation, accumulated so far.
+    
+    Of course, the \textit{Add offset} toggle can be used in the \textit{Track single frame} mode only.  In the other tracking modi such a technics is unnecessary.
+    \item[Track previous frame] Causes only the motion between the previous frame and
+    the current frame to be calculated (\textit{Follow shape}).  This is added to an
+    absolute motion vector to get the new motion from the start of the sequence
+    to the current position.  After every frame processed this way, the block
+    position is shifted to always cover the same region of the image.  Playback
+    must be started from the start of the \textit{Motion} effect in order to accumulate
+    all the necessary motion vectors.  This method is less precise because you
+    have error propagation between frames.  However, it is essential when the
+    object changes shape, size or luminance.  Possible inaccuracies caused by
+    rotation of the picture can partly be reduced by enabling \textit{Two pass tracking}
+    \item[Previous frame same block] This is useful for stabilizing jerky camcorder footage. In this mode the motion between the previous frame and the current frame is calculated. Instead of adjusting the block position to reflect the new location of the image, like \textit{Track Previous Frame} does, the block position is unchanged between each frame. Thus a new region is compared for each frame.
+    \item[Master layer] This determines the track which supplies the frames for the
+    motion calculation.  If it is \textit{Bottom} the bottom track of all the tracks
+    sharing this effect is the \textit{master} layer.  Then the top track of all the
+    tracks is the \textit{target} layer.  And vice versa, if the \textit{master} layer is \textit{Top},
+    then the \textit{target} layer is bottom.
+    \item[Calculation] This determines whether to calculate the motion at all and
+    whether to save it to disk.  If it is \textit{Don't Calculate} the motion calculation is skipped.  If it is \textit{Recalculate} the motion calculation is performed every  time each frame is rendered.  If it is \textit{Load coords from tracking file}, the motion vectors are loaded  from a previous \textit{save} calculation.  If the previous \textit{save} calculation does not provide the data for the currently processed frames, a new motion  calculation is performed for that frames.  If \textit{Calculation} mode is \textit{Save coords to tracking file} the motion vectors can be still loaded from disk if the previously
+    calculated data exist.  Otherwise, a new motion calculation is performed,
+    and the calculated motion vectors are saved.
+    \item[Tracking file] This parameter determines the name of the file where the
+    motion data are saved and/or loaded from.  By default it is \texttt{/tmp/motion}
+    but it can have any name and reside anywhere on the disk.  \textit{Tracking file} is
+    a text file where each line contains four numbers: the absolute frame number
+    (0-based integer), the X and Y translation displacements of subpixel
+    precision (a subpixel is $\frac{1}{4}$ pixel in size, and to give integer values of X and Y these subpixel coords are multiplied by 4), and the rotation angle in
+    degrees (as a floating point value).  The user may have different tracking
+    files for different timeline regions, it is possible to do any manipulations
+    on them if necessary and even manually edit in a text editor.
+    \item[Generate tracking file name] This handy pushbutton suggests a tracking file
+    name based on the name of the current asset.  It helps to maintain more
+    different tracking files with unique but predictable names used in the same
+    project.  When tracking file name is changed (either via the pushbutton or
+    after entering it in the corresponding input field), the contents of that
+    files (both the old and the new ones) remains unchanged.
+    \item[Clear tracking file contents] The values and meaning of the saved motion data depend on such a bunch of parameters, they can be even edited manually, so
+    one can hardly predict whether the outdated motion vectors are to be reset
+    or left untouched.  Therefore the existing motion data are never altered
+    implicitly (only newly calculated data may be added).  And, should the user
+    need to reset them here and right now, it is possible to clear the given
+    tracking file contents explicitly by pressing this pushbutton.
+    
+    As protection against accident clearing tracking file contents, right before
+    clearing the program ensures closing the current tracking file and renames
+    it to the same name with the suffix \texttt{.old}.  This way, the user can undo an erroneous clearing action by manual restoring the saved file.
+    \item[Action] Once the motion vector is known this determines whether to move the \textit{target} layer opposing the motion vector or following the motion vector. If it is \textit{Do Nothing} the \textit{target} layer is untouched. If it is \textit{Track\dots} the \textit{target} layer is moved by the same amount as the \textit{master} layer. This is useful for matching titles to objects in the frame. If it is \textit{Stabilize\dots} the \textit{target} layer is moved opposite to the motion vector. This is useful for stabilizing an object in the frame. The \textit{Motion} operations can be accurate to single pixels or subpixels by changing the \textit{Action} setting.
 \end{description}
 
+As motion tracking works consistently only in the \textit{Play every frame} mode,
+the corresponding info on the current playback mode is shown in the bottom
+right edge of the effect dialog.  The needed playback mode is defined in the
+Preferences dialog of \CGG{} main window.
+
 \subsubsection*{Secrets of motion tracking}
 \label{ssub:secrets_motion_tracking}
 
-Since it is a very slow effect, there is a method to applying the motion tracker to get the most out of it. First disable playback for the track to do motion tracking on. Then drop the effect on a region of video with some motion to track. Then rewind the insertion point to the start of the region. \textit{Set Action $\rightarrow$ Do Nothing}; \textit{Set Calculation $\rightarrow$ Don't calculate}; Enable \textit{Draw vectors}. Then enable playback of the track to see the motion tracking areas.
+Since it is a very slow effect, there is a method to applying the motion tracker to get the most out of it. First disable playback for the track to do motion tracking on. Then drop the effect on a region of video with some motion to track. Then rewind the insertion point to the start of the region. Set \textit{Action $\rightarrow$ Do Nothing}; set \textit{Calculation $\rightarrow$ Don't calculate}; enable \textit{Draw vectors}. Then enable playback of the track to see the motion tracking areas.
+
+Enable which of translation motion or rotation motion vectors you want to track. By watching the compositor window and adjusting the \textit{Block X, Y} settings, center the block on the part of the image you want to track. It is advisable to choose elements that have evident edges in the $x$ and $y$ directions because the calculations are made on these coordinates. Then set \textit{search radius}, \textit{block size} and \textit{block coordinates} for translation and rotation.
 
-Enable which of translation motion or rotation motion vectors you want to track. By watching the compositor window and adjusting the \textit{Block x,y} settings, center the block on the part of the image you want to track. It is advisable to choose elements that have evident edges in the $x$ and $y$ directions because the calculations are made on these coordinates. Then set \textit{search radius}, \textit{block size} and \textit{block coordinates} for translation and rotation.
+Once this is configured, set \textit{Calculation} to \textit{Save coords} and do test runs through the sequence to see if the motion tracker works and to save the motion vectors. Next, disable \textit{Draw vectors}, set the motion \textit{Action} to perform on the \textit{target} layer and change \textit{Calculation} to \textit{Load coords}.
 
-Once this is configured, set the calculation to \textit{Save coords} and do test runs through the sequence to see if the motion tracker works and to save the motion vectors. Next, disable playback for the track, disable \textit{Draw vectors}, set the motion action to perform on the target layer and change the calculation to \textit{Load coords}. Finally enable playback for the track.
+When using a single starting frame to calculate the motion of a sequence (\textit{Keep Shape}), the starting frame should be a single frame with the least motion to any of the other frames. This is rarely frame $0$. Usually it is a frame near the middle of the sequence. This way the search radius need only reach halfway to the full extent of the motion in the sequence. The suitable reference frame number can be defined conveniently via the \textit{Get current} pushbutton.
 
-When using a single starting frame to calculate the motion of a sequence (Keep Shape), the starting frame should be a single frame with the least motion to any of the other frames. This is rarely frame $0$. Usually it is a frame near the middle of the sequence. This way the search radius need only reach halfway to the full extent of the motion in the sequence.
+Summarizing:
 
-If the motion tracker is used on a render farm, Save coords and previous frame mode will not work. The results of the save coords operation are saved to the hard drives on the render nodes, not the master node. Future rendering operations on these nodes will process different frames and read the wrong coordinates from the node filesystems. The fact that render nodes only visualize a portion of the timeline also prevents previous frame from working since it depends on calculating an absolute motion vector starting on frame $0$.
+\begin{enumerate}
+       \item In the Master Layer create and save the tracking file:
+       \begin{itemize}
+               \item \textit{Draw vectors}: checked
+               \item \textit{Action}: Do Nothing
+               \item \textit{Calculation}: Save coords to Tracking File
+       \end{itemize}
+       \item Clone the track, which becomes the Target Layer. The \textit{Motion} plugin will also be copied.
+               \begin{itemize}
+                       \item \textit{Draw vectors}: unchecked
+                       \item \textit{Action}: Do Nothing
+                       \item \textit{Calculation}: Load coords from Tracking File
+               \end{itemize}
+       \item Add a third track to place the video of the object to be superimposed. Add the shared effects of the \textit{Motion} plugin taken from the Master Layer.
+               \begin{itemize}
+                       \item \textit{Draw vectors}: unchecked
+                       \item \textit{Action}: Track Subpixel
+                       \item \textit{Calculation}: Load coords from Tracking File
+               \end{itemize}
+\end{enumerate}
 
-\subsubsection*{2 pass motion tracking}
-\label{ssub:2_pass_motion_tracking}
+If the motion tracker is used on a render farm, \textit{Save coords} and \textit{Previous frame} mode will not work. The results of the \textit{Save coords} operation are saved to the hard drives on the render nodes, not the master node. Future rendering operations on these nodes will process different frames and read the wrong coordinates from the node filesystems. The fact that render nodes only visualize a portion of the timeline also prevents \textit{Previous frame} from working since it depends on calculating an absolute motion vector starting on frame $0$.
 
-The method described above is \textit{two-pass motion tracking}. One pass is used just to calculate the motion vectors. A second pass is used to apply the motion vectors to the footage. This is faster than a single pass because errors in the motion vector calculation can be discovered quickly. This also allows the motion tracking to use a less demanding colormodel like \textit{RGB888} in the scanning step and a more demanding colormodel like \textit{RGB Float} in the action step. The scanning step takes much longer than action. This has the disadvantage of not being practical for extremely long sequences where some error is acceptable and the picture quality is low to begin with, like stabilizing camcorder footage.
+\subsubsection*{2 step motion tracking}
+\label{ssub:2_step_motion_tracking}
+
+The method described above is \textit{two-step motion tracking}. One step is used just to calculate the motion vectors. A second step is used to apply the motion vectors to the footage. This is faster than a single pass because errors in the motion vector calculation can be discovered quickly. This also allows the motion tracking to use a less demanding colormodel like \textit{RGB888} in the scanning step and a more demanding colormodel like \textit{RGB Float} in the action step. The scanning step takes much longer than action. This has the disadvantage of not being practical for extremely long sequences where some error is acceptable and the picture quality is low to begin with, like stabilizing camcorder footage.
 
 The slower method is to calculate the motion vectors and apply them simultaneously. This method can use one track as the motion vector calculation track and another track as the target track for motion vector actions. This is useful for long sequences where some error is acceptable.
 
@@ -1943,20 +2377,47 @@ The slower method is to calculate the motion vectors and apply them simultaneous
 \label{ssub:pre_processing_shot}
 
 \begin{enumerate}
-    \item The motion plugin uses \textit{luminance} to do its own calculations, so we can edit the clip to enhance contrast and make it easier to calculate motion vectors. You can even create a copy of the monochrome clip and optimize it for the plugin. It lengthens the time but minimizes errors. The saved file can then be used for the original clip.
+    \item The \textit{Motion} plugin uses \textit{luminance} to do its own calculations, so we can edit the clip to enhance contrast and make it easier to calculate motion vectors. You can even create a copy of the monochrome clip and optimize it for the plugin. It lengthens the time but minimizes errors. The saved file can then be used for the original clip.
     \item  Correct lens distortion, especially if the object to be tracked moves to the edges of the frame.
-    \item Study the entire shot well: if necessary, divide it into many edits, each with its own Motion plugin. For example, if the object to be tracked leaves the frame or is covered by some other element or changes in shape, size or rotation. You can try to use the \textit{Offset Tracking} technique described below.
+    \item Study the entire shot well: if necessary, divide it into many edits, each with its own \textit{Motion} plugin. For example, if the object to be tracked leaves the frame or is covered by some other element or changes in shape, size or rotation. You can try to use the \textit{Offset Tracking} technique described below.
 \end{enumerate}
 
 \subsubsection*{Using blur to improve motion tracking}
 \label{ssub:blur_improve_motion_tracking}
 
-With extremely noisy or interlaced footage, applying a blur effect before the motion tracking can improve accuracy. Either save the motion vectors in a tracking pass and disable the blur for the action pass or apply the blur just to the master layer. You can even use a copy of the track formed only by the channels of Red + Green, because the channel of Blue is the noisiest. Another trick is to enlarge the Match Box to minimize the effect of noise.
+With extremely noisy or interlaced footage, applying a blur effect before the motion tracking can improve accuracy. Either save the motion vectors in a tracking pass and disable the blur for the action pass or apply the blur just to the \textit{master} layer. You can even use a copy of the track formed only by the channels of Red + Green, because the channel of Blue is the noisiest. Another trick is to enlarge the Match Box to minimize the effect of noise.
 
 \subsubsection*{Using histogram to improve motion tracking}
 \label{ssub:histogram_improve_motion_tracking}
 
-A histogram is almost always applied before motion tracking to clamp out noise in the darker pixels. Either save the motion vectors in a tracking pass and disable the histogram for the action pass or apply the histogram just to the master layer. Finally, you can use the histogram to increase contrast.
+A histogram is almost always applied before motion tracking to clamp out noise in the darker pixels. Either save the motion vectors in a tracking pass and disable the histogram for the action pass or apply the histogram just to the \textit{master} layer. Finally, you can use the histogram to increase contrast.
+
+\subsubsection*{Using two pass tracking to improve accuracy and stability}
+\label{ssub:two_pass_improve_accuracy}
+
+A common source of inaccuracy when tracking single frame is rotation of the
+picture.  Ideally, the motion vectors should be determined by checking all
+possible rotation angles at every possible match block location.  But such
+an algorithm would be unacceptably slow.  Therefore the program finds for
+each frame the translation vector first, and then the rotation angle.  A
+strong rotation can prevent motion tracker from finding accurate translation
+displacements.  Then the subsequent rotation search will be also inaccurate
+because translation has been estimated not sufficiently well.  In the \textit{Two
+pass tracking} algorithm the first, coarse estimation of translation and
+rotation is followed by the second, refinement pass yielding more exact
+motion vectors.
+
+Sometimes, particularly if the amount of rotation is large, the translation
+tracker can lose its right object and wildly spring away.  Then the
+following strategy may help.
+
+Firstly switch \textit{Two pass tracking} off, \textit{Track rotation} off, set \textit{Motion noise level} to zero.  Switch \textit{Draw vectors} on, \textit{Action: Do Nothing}, \textit{Calculation: Save coords to tracking file}.  Start playback and watch if the motion tracker has problems finding the right displacements (you can also examine the tracking file afterwards on the existence of discontinuities in coordinates).  If there are such, try to increase \textit{Motion noise level}, let's say, to 10\% or 20\%, \textit{clear tracking file contents}, repeat playback and look if tracker does not spring away any more.  A single pass translation tracking can be relatively fast, while tracking rotation is expensive.
+
+When a sufficient motion noise level is found, switch \textit{Track rotation} on, \textit{Two
+pass tracking} on, \textit{clear tracking file contents} and perform the complete
+translation + rotation tracking pass.  As the refinement pass uses
+restricted search area and ignores the noise level parameters, the result
+should be more stable and accurate.
 
 \subsubsection*{Possible sources of errors}
 \label{ssub:possible_sources_errors}
@@ -1976,15 +2437,15 @@ A histogram is almost always applied before motion tracking to clamp out noise i
 
 This is an explanation of how to stabilize a video as in the case of a video taken from a vehicle.
 
-First select on the timeline the part of the footage you want to stabilize, using the in and out points. Then apply the motion effect on that part of the video. Select the \textit{Previous frame same block} option. That option is recommended for stabilizing jerky camcorder footage. Its goal is not to \textit{follow} an object. The block stays exactly at the same place during all the effect length.
+First select on the timeline the part of the footage you want to stabilize, using the in and out points. Then apply the \textit{Motion} effect on that part of the video. Select the \textit{Previous frame same block} option. That option is recommended for stabilizing jerky camcorder footage. Its goal is not to \textit{follow} an object. The block stays exactly at the same place during all the effect length.
 
-Enlarge the block and select almost half the size of the video. Select the \textit{Stabilize subpixel} option as it will give a finer stabilization. Reduce the \textit{Maximum absolute offset} value to limit the stabilization amplitude. You probably prefer to get a non-perfect stabilization on some places on the video rather than having a very large black border on one side of the picture during big shakes. Set the \textit{Translation search steps} value to $128$. Increasing that value will not give a better result and only considerably increases the rendering time. Make sure the \textit{Draw vectors} option is selected, and render the part of the video where the motion effect is applied.
+Enlarge the block and select almost half the size of the video. Select the \textit{Stabilize subpixel} option as it will give a finer stabilization. Reduce the \textit{Maximum absolute offset} value to limit the stabilization amplitude. You probably prefer to get a non-perfect stabilization on some places on the video rather than having a very large black border on one side of the picture during big shakes. Set the \textit{Translation search steps} value to $128$. Increasing that value will not give a better result and only considerably increases the rendering time. Make sure the \textit{Draw vectors} option is selected, and render the part of the video where the \textit{Motion} effect is applied.
 
 If the result is good, deselect the \textit{Draw vectors} option so that the block and vectors are not drawn anymore on the video. Then, render your video to a \texttt{.dv} file, and import it into your project. You will notice the video is stabilized but there are black borders which appear on sides of the frame. You have to \textit{zoom in} and define projector keyframes to move the projector around the screen, in order to remove those black borders. The more your footage is jerky, the more you have to zoom in to discard the black borders. That is why the result is better with HDV footage than with DV footage.
 
-An interesting side note about \textit{add offset} usage is explained next\protect\footnote{credit Pierre Marc Dumuid}
+An interesting side note about \textit{Add offset} usage is explained next\protect\footnote{credit Pierre Marc Dumuid}
 
-To stabilize video, the motion plugin uses a \textit{tracking frame} to which to track to and a region within that frame to track (generally an object in the background) in the current frame.  When the region is obscured, often by something in the foreground or by leaving the screen, then the motion compensation would fail, and the video jumps all over the place.
+To stabilize video, the \textit{Motion} plugin uses a \textit{tracking frame} to which to track to and a region within that frame to track (generally an object in the background) in the current frame.  When the region is obscured, often by something in the foreground or by leaving the screen, then the motion compensation would fail, and the video jumps all over the place.
 
 You set a second region to track, and then \textit{add offset}.
 
@@ -2016,11 +2477,13 @@ C - has only object2 visible
 
 \subsection{Motion 2 Point}%
 \label{sub:motion_2_point}
+\index{Motion 2 Point}
 
-Motion stabilization using 2 pass tracking. For theory and explanations refer to the \hyperref[sub:motion]{Motion} plugin.
+Motion plugin using 2 \textit{Match box} for tracking. For theory and explanations refer to the \hyperref[sub:motion]{Motion} plugin.
 
 \subsection{Motion Blur}%
 \label{sub:motion_blur}
+\index{Motion Blur}
 
 Uses X/Y camera automation vectors to apply a linear blur trailing camera direction due to movement.
 \begin{description}
@@ -2028,23 +2491,16 @@ Uses X/Y camera automation vectors to apply a linear blur trailing camera direct
     \item[Steps] number of blur steps to be used in the calculation. Increasing the number takes more CPU.
 \end{description}
 
-\subsection{MotionCV}%
-\label{sub:motioncv}
-
-Motion tracking/stabilization from the community version of \CGG{}. For theory and explanations refer to the \hyperref[sub:motion]{Motion} plugin.
-
-\subsection{MotionHV}%
-\label{sub:motionhv}
-
-Updated motion tracking/stabilization of 2017 from the original author of \CGG{}. For theory and explanations refer to the \hyperref[sub:motion]{Motion} plugin.
-
 \subsection{Oil painting}%
 \label{sub:oil_painting}
+\index{oil painting}
 
 This effect makes video tracks appears as a painting. It can be controlled by \textit{Radius} slider and \textit{intensity of colors} can be chosen as an option.
 
-\subsection{Overlay}%
+% Leave the Video and Audio parenthesis due to latex2html dual conflict
+\subsection{Overlay (Video)}%
 \label{sub:overlay}
+\index{overlay video}
 
 This effect can combine several tracks by using the so called Overlayer. This is a basic internal device normally used by \CGGI{} to create the dissolve transitions and for compositing the final output of every track onto the output bitmap. The Overlayer has the ability to combine one or several image layers on top of a bottom layer. It can do this combining of images in several different (and switchable) output modes such as \textit{Normal}, \textit{Additive}, \textit{Subtractive}, \textit{Multiply} (Filter), \textit{Divide}, \textit{Max} and \textit{Replace}. For a detailed list refer to the on \hyperref[cha:overlays]{Overlays} chapter  -- PorterDuff.
 
@@ -2059,6 +2515,7 @@ The \textit{overlay} plugin enables the use of this Overlayer device in the midd
 
 \subsection{Perspective}%
 \label{sub:perspective}
+\index{perspective}
 
 The \textit{perspective} plugin (aka Corner Pinning) allows you to change the perspective of an object and is used to make objects appear as if they are fading into the distance. Basically, you can get a different view. A transformation is used which preserves points, lines, and planes as well as ratios of distances between points lying on a straight line.
 
@@ -2092,7 +2549,9 @@ Key Presses for using the Perspective plugin:
 
 Note that the red color lines in the box show the composer boundary.
 
-In order to see endpoints that go off the screen, you can use the zoom slider which changes only the zoom view and does nothing else. The slider uses a logarithmic scale ranging from $\frac{1}{100} to 100$.
+In order to see endpoints that go off the screen, you can use the zoom slider which changes only the zoom view and does nothing else. The slider uses a logarithmic scale ranging from $\frac{1}{100} to 100$.  Although not shown in the 
+image here, each endpoint is labeled in yellow with 1-4 and the Current X
+endpoint is shown in the menu to make it easier to tell which point is in play.
 
 Figure~\ref{fig:perspective01} show the results of the 4 different smoothing options.
 
@@ -2103,13 +2562,30 @@ Figure~\ref{fig:perspective01} show the results of the 4 different smoothing opt
     \label{fig:perspective01}
 \end{figure}
 
+Just a side note about the possibility of ending up with a divide by 0 case when manipulating
+the endpoints.  Sometimes this results in a single frame anomaly but you can workaround this
+by setting the X value for the middle keyframe of a series to just a little more than 0,
+such as .01 so that dividing by 0 is avoided. The actual cause of the problem is that the
+interpolated X1..X4 auto coordinates used by perspective eventually have x1==x2, x3==x4, so
+that all points x are scaled by zero. Another solution is to tweak the frame count to an even
+number, so that the center is not over the point where x1==x2, x3==x4, or perturb the midpoint
+position a little so that the answers are not exactly zero.
+
 \subsection{Polar}%
 \label{sub:polar}
+\index{polar}
+
+The \textit{Polar} effect bends and warps your video in weird ways. Mathematically, it converts your video from either \textit{polar} coordinates to \textit{rectangular} coordinates, or the reverse. For maximum precision you can use the input box. With the \textit{Clear} buttons we can bring the slider to default values without affecting the other parameters.
 
-The \textit{Polar} effect bends and warps your video in weird ways. Mathematically, it converts your video from either \textit{polar} coordinates to \textit{rectangular} coordinates, or the reverse. With the Clear buttons we can bring the slider to default values without affecting the other parameters.
+\subsection{Posterize}%
+\label{sub:posterize}
+\index{posterize}
+
+Reduces the color depth so as to decrease the displayed color gradients, up to the bands typical of posterization. It is used by setting the number of \textit{steps} from 0 to 255.
 
 \subsection{RGB-601}%
 \label{sub:rgb-601}
+\index{rgb-601}
 
 For analog video or MPEG (including DVD) output, the maximum range for R,G,B is $[16,235]$ ($8\,bit$). For YUV, the maximum range for intensity (\textit{Y}) is $[16, 235]$ ($8\,bit$). This range corresponds to gray levels from $6\%$ to $92\%$. When rendering, values outside of these ranges will be clipped to these limits.
 
@@ -2117,21 +2593,33 @@ To render to MPEG, add the \textit{RGB-601} effect to all video tracks where mat
 
 \subsection{RGBShift}%
 \label{sub:rgb-shift}
+\index{rgb shift}
 
-Most cameras take the light coming into the lens, and convert that into $3$ sets of numbers, one for Red (R), one for Green (G), and one for Blue (B). Some of the older cameras were composed of $3$ sensors and originally the RGB sensors were on $3$ separate planes and had to be aligned. If they were misaligned in the video, you can use \textit{RGBShift} to get them realigned. To move a specific color up/down, modify the \textit{dy} value using the slider bar in the RGBShift window. To move a color left/right, modify the corresponding \textit{dx} value. Clear buttons are present to reset its slider to default without affecting others. Note that the current values of the RGBShift are maintained in the \texttt{.bcast5} defaults file and will be retained across sessions. If using the YUV color space, you will want to use \textit{YUVShift} instead. Figure~\ref{fig:rgbshift} showing RGB shift before and after.
+Most cameras take the light coming into the lens, and convert that into $3$ sets of numbers, one for Red (R), one for Green (G), and one for Blue (B). Figure~\ref{fig:rgbshift} showing RGB shift before and after.
 
 \begin{figure}[hbtp]
-    \centering
-    \includegraphics[width=0.8\linewidth]{rgbshift.png}
-    \caption{Bad Misaligned color and after color aligned}
-    \label{fig:rgbshift}
+       \centering
+       \includegraphics[width=0.8\linewidth]{rgbshift.png}
+       \caption{Bad Misaligned color and after color aligned}
+       \label{fig:rgbshift}
 \end{figure}
 
+Some of the older cameras were composed of $3$ sensors and originally the RGB sensors were on $3$ separate planes and had to be aligned. If they were misaligned in the video, you can use \textit{RGBShift} to get them realigned. To move a specific color up/down, modify the \textit{dy} value using the slider bar in the RGBShift window. To move a color left/right, modify the corresponding \textit{dx} value. For maximum precision you can use the input box. \textit{Clear} buttons are present to reset its slider to default without affecting others. Note that the current values of the RGBShift are maintained in the \texttt{.bcast5} defaults file and will be retained across sessions. If using the YUV color space, you will want to use \textit{YUVShift} instead.
+
+
 \subsection{Radial Blur}%
 \label{sub:radial_blur}
+\index{radial blur}
 
 Radial blur is a \textit{Bokeh} effect that creates a whirlpool which simulates a swirling camera. You can vary the location, type, and quality of the blur.
 
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=0.8\linewidth]{radial.png}
+       \caption{For clarity of presentation only 2 fields are shown}
+       \label{fig:radial}
+\end{figure}
+
 \begin{description}
     \item[X,Y] center of the circle of movement.
     \item[Angle] angle of motion in one direction.
@@ -2139,17 +2627,13 @@ Radial blur is a \textit{Bokeh} effect that creates a whirlpool which simulates
     \item[Clear] to reset its slider to default without affecting others.
 \end{description}
 
+For maximum precision you can use the input box.
 Figure~\ref{fig:radial} has the parameters: $Angle=-35$ and $Steps=2$.
 
-\begin{figure}[hbtp]
-    \centering
-    \includegraphics[width=0.8\linewidth]{radial.png}
-    \caption{For clarity of presentation only 2 fields are shown}
-    \label{fig:radial}
-\end{figure}
 
 \subsection{ReframeRT}%
 \label{sub:reframert}
+\index{reframeRT}
 
 ReframeRT changes the number of frames in a sequence of video
 directly from the timeline. The faster method for getting the same
@@ -2163,18 +2647,19 @@ the sequence, and therefore its length, but not the framerate. The
 varying the framerate.  It is important to understand that the
 plugin works by varying the frames, the possible change of
 \textit{fps} is only a side effect of the creation of new frames due
-to interpolation.
+to interpolation. The interpolation algorithm is simply the slope of a linear curve. This plugin is keyframable and the \textit{Interpolate} option works between keyframes. A simpler and more handy version is the \textit{Speed PerCent} plugin.
 
 \subsubsection*{Stretch}%
 \label{ssub:stretch}
+\index{stretch}
 
 Stretch mode multiplies the current frame number of its output by the \textit{scale factor} to arrive at the frame to read from its input. The scaling factor is not entered directly but using a number of \textit{input} frames to be divided by the number of \textit{output} frames.
 
-\vspace{1ex} \texttt{Scale factor = Input frames / Output frames}
+\vspace{1ex} \texttt{Scale factor (SF) = Input frames / Output frames}
 
-\[\frac{1}{8} \Rightarrow scale\, factor = 0.125 \qquad (slowmotion)\]
+\[\frac{1}{8} \Rightarrow scale\, factor = 0.125 \qquad (slow\, motion)\]
 
-That is, one input frame of the original movie corresponds to $8$ new output frames originated by interpolation. It is the opposite with regard to \textit{fast play}.
+For slow motion we leave 1 for the frames of the input and we increase the number of frames of the output (for example putting 8 for the output we have slow motion $8\times$, with $SF=\frac{1}{8}=0.125$). For fast motion we leave 1 for the output and we increase the number for the input (for example 8 to have $8\times$, with $SF=\frac{8}{1}=8$). Another possibility is to put the frame rate of the media (e.g 120 fps) in the input and the project frame rate in the output (e.g 30 fps) or the opposite.
 
 The stretch mode has the effect of changing the length of output video by the inverse of the scale factor. If the scale factor is greater than $1$, the output will end before the end of the sequence on the timeline. If it is less than $1$, the output will end after the end of the sequence on the timeline. The ReframeRT effect must be lengthened to the necessary length to accommodate the scale factor. Change the length of the effect by clicking on the endpoint of the effect and dragging.
 
@@ -2187,8 +2672,11 @@ in stretch mode with a value less than $1$.
 
 \textit{Example:} you have a clip that you want to put in slow motion. The clip starts at $33.792\, seconds$ and ends at $39.765$. The clip is $5.973\, seconds$ long. You want to play it at $\frac{4}{10}^{ths}$ normal speed. You divide the clip length by the playback speed ($5.973\div0.4$) to get a final clip length of $14.9325\,seconds$. You create an in point at the start of your clip: $33.792\,seconds$. You put an out point $14.9325\,seconds$ later, at $48.7245\,seconds$ ($33.792 + 14.9325$). You attach a \texttt{ReframeRT} effect, set it to $0.4$ and stretch. You change the out point at $48.7245$ to an in point. You start your next clip after the slow motion effect at the $48.7245$ out point. You can do this without making any calculations by first applying the effect and then lengthening or shortening the bar to where the stretched movie ends.
 
+Now in the timeline we have the affected part of the plugin where we see the slow/fast effect, and the continuation of the timeline from where the plugin ends. We then have to select the interval on which the plugin acts and render it or transform it into a nested clip or nested asset. In this way we can replace or overlap it with the part of the timeline that originally included all of the part we wanted to slow down/speed up. See also the \textit{Reframe} render effect for direct rendering.
+
 \subsubsection*{Downsample}%
 \label{ssub:downsample}
+\index{downsample}
 
 Downsample mode does not change the length of the output sequence. It multiplies the frame rate of the output by the scale factor to arrive at a frame rate to read the input. This has the effect of replicating the input frames so that they only change at the scaled frame rate when sent to the output. It does not change the length of the sequence. If the scale factor is $0.5$ and the output frame rate is $30 \,fps$, only $15$ frames will be shown per second and the input will be read at $15 \,fps$. Downsample is only useful for scalefactors below $1$, hence the name downsample.
 
@@ -2198,19 +2686,22 @@ Downsample mode changes the frame rate of the input as well as the number of the
 \label{ssub:other_important_points}
 
 \begin{itemize}
-    \item ReframeRT uses the fps indicated in \texttt{Settings$\rightarrow$ Format$\rightarrow$ fps} project and not the \texttt{fps} of the assets.
+    \item ReframeRT uses the fps indicated in \texttt{Settings $\rightarrow$ Format $\rightarrow$ fps} project and not the \texttt{fps} of the assets.
     \item It can be associated with Nested Clips.
-    \item As an alternative to ReframeRT you can use the \textit{speed curve}, or change the framerate in \texttt{Resources$\rightarrow$ info} and in the \texttt{Project}.
+    \item As an alternative to ReframeRT you can use the \textit{speed curve}, or change the framerate in \texttt{Resources $\rightarrow$ info} and in the \texttt{Project}; or using \textit{Reframe} render effect, or using \textit{Speed PerCent} plugin.
     \item It is keyframmable.
+    \item ResampleRT with the same settings is used to act on audio tracks.
 \end{itemize}
 
 \subsection{Reroute}%
 \label{sub:reroute}
+\index{reroute}
 
 The \textit{Reroute} plugin enables you to selectively transfer the Alpha channel or the Components (RGB or YUV) or both from a \textit{source} track to a \textit{target} track, partially overwriting the target's contents. It works as a \textit{shared plugin}. The typical usage scenario is to build up a possibly animated Mask in one track and then to transfer the Alpha channel to another content track.
 
 \subsection{Reverse video}%
 \label{sub:reverse_video}
+\index{reverse video}
 
 Media can be reversed on the timeline in realtime. This is not to be confused with using the reverse playback on the transport panel. The \texttt{reverse} effects reverse the region covered by the effect regardless of the transport direction. The region to be reversed is first determined by what part of the track the effect is under and second by the locations of keyframes in the effect. The reverse effects have an enabled option which allows you to set keyframes. This allows many possibilities.
 
@@ -2218,11 +2709,13 @@ Every enabled keyframe is treated as the start of a new reversed region and the
 
 \subsection{Rotate}%
 \label{sub:rotate}
+\index{rotate}
 
 The \textit{Rotate} filter can rotate the video in $90$ degree increments or by any number of degrees through use of the \textit{wheel} and about any \textit{pivot point}. It can also reverse and flip the video.
 
 \subsection{Rumbler}%
 \label{sub:rumbler}
+\index{rumbler}
 
 The \textit{Rumbler} plugin can be used to create dream-like or earthquake-like noise in the video. It creates noise by jiggling the corners through use of perspective transformation at the corners. The algorithm used is:
 
@@ -2255,6 +2748,7 @@ Plugin variables:
 
 \subsection{SVG via Inkscape}%
 \label{sub:svg_via_inkscape}
+\index{SVG via Inkscape}
 
 This plugin allows the user to manipulate an SVG (scalable vector graphics) image with \textit{Inkscape} without having to leave the program. The associated \CGG{} window provides the ability to change the DPI, the Out $x/y$ coordinates, and the Out w/h values. For more information on use of inkscape, refer to: {\small \url{https://inkscape.org/develop/about-svg/}}
 
@@ -2275,6 +2769,7 @@ Figure~\ref{fig:svg} shows the menu options plugin window and the SVG image in t
 
 \subsection{Scale}%
 \label{sub:scale}
+\index{scale}
 
 Reduce or expand the image size depending on the ratio.
 
@@ -2286,6 +2781,7 @@ Reduce or expand the image size depending on the ratio.
 
 \subsection{Scale Ratio}%
 \label{sub:scale_ratio}
+\index{acale ratio}
 
 With the Scale Ratio plugin you can manipulate your video to maintain the pixel aspect ratio (proportional geometry), possibly for a different output Display device (figure~\ref{fig:scaleratio}).
 
@@ -2300,6 +2796,7 @@ With the Scale Ratio plugin you can manipulate your video to maintain the pixel
 
 \subsection{Selective Temporal Averaging}%
 \label{sub:selective_temporal_averaging}
+\index{selective temporal averaging}
 
 This plugin is designed to smooth out non-moving areas of a video clip (figure~\ref{fig:staveraging}).
 \vspace{2ex}
@@ -2331,16 +2828,19 @@ An example of common usage is to select the number of frames you wish to average
 
 \subsection{Sharpen}%
 \label{sub:Sharpen}
+\index{sharpen}
 
-Sharpen the video, either the \textit{luminance}, \textit{horizontal}, or \textit{interlace}. With the Clear buttons we can bring the slider to default values without affecting the other parameters.
+Sharpen the video, either the \textit{luminance}, \textit{horizontal}, or \textit{interlace}. You can use sliders or, for maximum precision, you can use the input box. With the \textit{Clear} buttons we can bring the slider to default values without affecting the other parameters.
 
 \subsection{Shift Interlace}%
 \label{sub:shift_interlace}
+\index{shift interlace}
 
 Shift the interlace lines using \textit{odd} or \textit{even}. With the Clear buttons we can bring the slider to default values without affecting the other parameters.
 
 \subsection{Sketcher}%
 \label{sub:Sketcher}
+\index{sketcher}
 
 Now you can sketch \textit{lines}, \textit{curves} or \textit{shapes}, on your video in different colors using various pen widths and pen type with the \texttt{sketcher} plugin. You can even fill them. You can do rotations and scaling and apply two anti-aliasing modes; single and double. Getting started is fairly easy -- simply hold down the \textit{shift key} while using the \textit{left mouse button} to create a bunch of points in the compositor window. However, to do more than that you will need to understand the buttons and options or you may end up with unexpected results.
 
@@ -2386,7 +2886,7 @@ There is no \textit{undo} recorded between gui updates. It is recommended that y
 
 \begin{center}
        \small
-       \begin{longtable}{{m{15em}m{13em}m{12em}}}
+       \begin{longtable}{{m{12em}m{13em}m{12em}}}
                \caption{Sketcher controls}
                \label{tabular:sketcher_controls} \\ % note that double backslash is mandatory here
                \toprule
@@ -2442,7 +2942,7 @@ There is no \textit{undo} recorded between gui updates. It is recommended that y
 \begin{description}
        \item[Anti-Aliasing] You can set Off; On or Double. Default is On.
     \item[Color] refers to the current curve pen color. Click on the \textit{Color rectangle} to bring up the Color window to change any of the color values, including alpha.
-    \item[Drag] check to create curves and to be able to see any Off type curves. Uncheck for render/viewing.
+    \item[Drag] check to create curves and to be able to see any Off type curves. Uncheck for render/viewing.  If you need to clear the Drag enabled, you can easily do this with \textit{Allow keyframe spanning} whose use is described in \nameref{sec:allow_keyframes_spanning}.
     \item[Reset] -- in the \textit{Curve section}, all of the curve lines will be deleted except for an empty default curve;
     -- in the \textit{Point section}, all points for the highlighted curve in the Curve section will be deleted.
     \item[Width] integer width of line; width of $1$ is the default; width of $0$ is the smallest size of $1$ pixel.
@@ -2466,13 +2966,21 @@ Points and curves are identified by numeric ids, and not the table position. Thi
 
 The \textit{fill} point is a marker point, and not really part of the curve. That point identifies the inside of the loop. It can also be used to identify the outside of the loop in order to fill that. The loop is created by drawing a line from the last point to the first point in the curve. The line of this last segment is from the last point of the curve. If there are isolated loops in the curve (it is self intersecting) then you will be able to use multiple fill points to fill these regions.
 
+\subsection{Speed PerCent}%
+\label{sub:speed_per_cent}
+\index{speed percent}
+
+It works like the \texttt{ReframeRT} plugin in \textit{Stretch} mode. The interpolation algorithm is simply the slope of a linear curve. It allows you to change the speed of the video track, or an edit, or a region of the track quickly and intuitively. There are presets to set the speed to 100\% (default) or 25\%; 50\%; 200\% and 400\%. Or we can enter the value directly in the text box or use the slider until the desired value is reached. \textit{Interpolate} option works between keyframes. It requires setting the right limits for applying the effect and then rendering that region, or turning it into a nested clip, which will replace the original one.
+
 \subsection{Sphere Cam}%
 \label{sub:sphere_cam}
+\index{sphere cam}
 
 Converts multiple fisheye images into a panoramic projection.
 
 \subsection{Swap Frames}%
 \label{sub:swap_frames}
+\index{swap frames}
 
 Swap the position of two consecutive frames. There are two modes of exchange:
 
@@ -2480,11 +2988,13 @@ Swap the position of two consecutive frames. There are two modes of exchange:
 
 \subsection{Swap channels}%
 \label{sub:swap_channels}
+\index{swap channels}
 
 Swap R G, B, Alpha with another color channel.
 
 \subsection{Threshold}%
 \label{sub:threshold}
+\index{thresold}
 
 \textit{Threshold} converts the image to pure luminance, and replaces pixels with one of three colors based on the luminance. Pixels with luminance values in the low range are replaced with black, pixels in the middle range are replaced with white, and pixels in the high range are replaced with black. \textit{Color} and \textit{alpha} (transparency) for each range are configurable with the buttons and interpolate according to keyframes.
 
@@ -2494,19 +3004,20 @@ This effect is basically a primitive \textit{luminance key} to produce a \textit
 
 \subsection{Time average}%
 \label{sub:time_average}
-
-\begin{wrapfigure}[18]{O}{0.35\linewidth}
-       \vspace{-2ex}
-       \includegraphics[width=0.9\linewidth]{timeaverage.png}
-       \caption{GUI for Time Average}
-       \label{fig:timeaverage}
-\end{wrapfigure}
+\index{time average}
 
 Time average is one effect which has many uses besides creating trail patterns of moving objects (figure~\ref{fig:timeaverage}).
 The main use is reducing noise in still images (or in the motionless parts of a video). Merely point a video camera at a stationary subject for $30$ frames, capture the frames, and average them using time average and you will have a high quality print. In floating point color models, time average can increase the dynamic range of low quality cameras.
 
 Inside the time average effect is an accumulation buffer and a divisor. A number of frames are accumulated in the \textit{accumulation} buffer and divided by the divisor to get the average (for $10$ accumulated frames the divisor is $10$). Because the time average can consume large amounts of memory, it is best applied by first disabling playback for the track, dropping the time average in it, configuring time average for the desired number of frames, and re-enabling playback for the track.
 
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=0.3\linewidth]{timeaverage.png}
+       \caption{GUI for Time Average}
+       \label{fig:timeaverage}
+\end{figure}
+
 \begin{description}
     \item[Frames count] this determines the number of frames to be accumulated in the accumulation buffer. Ranges from $1 to 1024$ frames.
     \item[Accumulate] this outputs the accumulation buffer without dividing it.
@@ -2516,8 +3027,15 @@ Inside the time average effect is an accumulation buffer and a divisor. A number
     \item[Don’t buffer frames] in order to represent the accumulation of only the specified number of frames, the time average retains all the previous frames in memory and subtracts them out as it plays forward. It would run out of memory if it had to accumulate thousands of frames. By disabling subtraction the previous frames are not stored in memory and only the average function is affected by the frame count.
 \end{description}
 
+\subsection{TimeBlur}%
+\label{sub:timeblur}
+\index{timeblur}
+
+The TimeBlur plugin provides a way to blur a number of \textit{Frames}.
+
 \subsection{Timefront}%
 \label{sub:timefront}
+\index{timefront}
 
 Space-temporal warping enables time to flow differently at different locations in the video (figure~\ref{fig:timefront}).
 \begin{wrapfigure}[13]{O}{0.3\linewidth}
@@ -2536,10 +3054,27 @@ With \textit{Time Range} we decide the size (and therefore the number) of the ba
 
 \textit{Rate} allows you to choose the type of algorithm to use when switching between the start and end bands. You can reverse the direction with the \textit{Invers} button. The three modes are: \textit{Linear}, \textit{Log} or \textit{Quadratic} (exponential). This is a warping framework plugin based on this article: {\small \url{http://www.vision.huji.ac.il/videowarping/HUJI-CSE-LTR-2005-10_etf-tr.pdf}}
 
+\subsection{Timelapse Helper}%
+\label{sub:timelapse_helper}
+\index{timelapse helper}
+
+It is used to get a timelapse quickly and easily. It sets the number of frames to be skipped during playback. The default value of \textit{Number of Frames x block} is 10; playback (and rendering) displays frames 1 - 10 - 20 - ... and not the intermediate ones.
+
 \subsection{Title}%
 \label{sub:title}
+\index{title}
+
+The \textit{Titler} allows you to add text from within \CGG{}. It has many configuration capabilities. Often it is convenient to apply the plugin on a separate track (shared or not), in order to make it independent from the video track and have more freedom in editing and configuration. For example, you can apply the \textit{Rotation} plugin to rotate the title without rotating the underlying video. Another thing to keep in mind when using the Titler plugin is that it works on the \textit{temporary} and therefore it is not affected by Camera movements (curves), but only by Projector movements.
+
+The titler has standard options for font, size, and style plus many options as described next (figure~\ref{fig:title01})
+
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=1.0\linewidth]{title01.png}
+       \caption{GUI of the Title plugin}
+       \label{fig:title01}
+\end{figure}
 
-The \textit{Titler} allows you to add text from within \CGG{}. The titler has standard options for font, size, and style plus many options as described next (figure~\ref{fig:title01}).
 
 \begin{description}
     \item[Justify] justifies the text relative to the entire frame. Once justified, the $X$ and $Y\, offset$ is applied. This allows text to be justified while at the same time letting you push it within the title safe region.
@@ -2551,13 +3086,6 @@ The \textit{Titler} allows you to add text from within \CGG{}. The titler has st
     \item[Stamp timecode] replaces text with the current position on the timeline in seconds, frames or samples.
 \end{description}
 
-\begin{figure}[hbtp]
-    \centering
-    \includegraphics[width=0.9\linewidth]{title01.png}
-    \caption{GUI of the Title plugin}
-    \label{fig:title01}
-\end{figure}
-
 To create special effects for your title you can place it on a dedicated track and insert other realtime video effects just under the title effect and/or use camera and projector. With keyframing you can animate your title and make it change position, size, color, transparency, texture, or shape over time.
 
 For improving playback performances of titles with effects, you can reduce the size of the dedicated track. Right click on the track and select \textit{Resize track\dots} Enter the smallest resolution that still keeps the title visible.
@@ -2575,7 +3103,9 @@ The titler supports mainly \textit{TTF}, true type fonts. It supports others but
     # /usr/lib/cinelerra/fonts
     ttmkfdir && mv fonts.scale fonts.dir
 \end{lstlisting}
-and restart \CGG{}. The new fonts should appear. The usage of ttmkfdir changes frequently so this technique might not work.
+and restart \CGG{}. The new fonts should appear. The usage of ttmkfdir changes frequently so this technique might not work.  It is
+important to note that because there are checkboxes for both Bold and Italic, the pulldown will not include these specific fonts
+as an addition to a Regular font.  They will be used via the checkboxes but not viewed in the pulldown.
 
 If the video is displayed on a consumer TV, the outer border is going to be cropped by $5\%$ on each side. To avoid text which is too close to the edge looking bad, you may want to enable the \textit{title-safe} tool in the compositor window. The text should not cross the inner rectangle.
 
@@ -2583,22 +3113,24 @@ If the video is displayed on a consumer TV, the outer border is going to be crop
 \label{ssub:some_recently_added_options}
 
 \begin{description}
-    \item[Drag] initial default checkbox is \textit{off} so that the Title plugin will work as it always has.
+    \item[Drag] initial default checkbox is \textit{off} so that the Title plugin will work as it always has. With Drag active, we can create a box that works as a region to the title; we can resize and translate it as we wish, and we can add a background image (or video) to it. See later how to use the background image.
     \begin{description}
-        \item[Anchors] When you turn on the Drag feature, nine different anchors/handles will appear on compositor window. The \textit{middle anchor} allows you to drag your title wherever you want in the compositor window ($X, Y$ coordinates). The other 8 handles, drawn as arrows in each corner and in the middle of each side, let you change the size of the drag area box so that your title is within that area if it fits and as it is directed.
+        \item[Anchors] When you turn on the Drag feature, nine different anchors/handles will appear on compositor window. The \textit{middle anchor} allows you to drag your title wherever you want in the compositor window ($X, Y$ coordinates). The other 8 handles, drawn as arrows in each corner and in the middle of each side, let you change the size of the drag area box so that your title is within that area if it fits and as it is directed.  If you need to clear the Drag enabled, you can easily do this with \textit{Allow keyframe spanning} whose use is described in \nameref{sec:allow_keyframes_spanning}. Another way to reset the box to default, i.e. the entire frame, is to set X and Y to 0 and W and H to the frame resolution (e.g. 1920x1080 for FullHD).
         \item[W/H] the values in these 2 boxes specify the size of the drag area box measured in pixels as shown in the compositor window. You can set these manually and if you can't see the location of your box or find your handles, set them to zero because $0$ sets it to the same as the width/height of the media.
         The Drag effect ignores all boundaries, including the \textit{Title Safe Region} of the Compositor so that if you drag your titles off the screen, it will look like they disappeared completely. Reset X and Y to reasonable values to have it reappear. The Title \textit{text}, \textit{background}, and \textit{pngs} are applied on a single layer so that they will drag together as an entity. All of the Title capabilities work in conjunction with dragging so if you want to justify the title, you can still use the \textit{Left/Center/Right/Top/Mid/Bottom} within the drag area. Be sure to turn off Drag when rendering or the box will show in the video; keep in mind that drag bars do not appear until there is some text in the text box and you can not actually drag until the Title window controls are available.
     \end{description}
+    
+    
+    \begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=0.3\linewidth]{title02.png}
+       \caption{Pulldown Attributes}
+       \label{fig:title02}
+    \end{figure}
+        
     \item[Attributes] in the Text box where you type your Title information, you can now change several attributes to give you plenty of flexibility (figure~\ref{fig:title02}). Each of these special attributes begin with an open angle bracket < and ends with a closing angle bracket >. Until the closing angle bracket is keyed in, the actual characters you type, will be seen in the compositor window. In addition, if you do not use the exact syntax or you keyin a filename that is not available, all of the characters will continue to show up. This helps to see what needs to be fixed or is missing. The attributes usage is described in the table below.
 \end{description}
 
-\begin{figure}[hbtp]
-    \centering
-    \includegraphics[width=0.3\linewidth]{title02.png}
-    \caption{Pulldown Attributes}
-    \label{fig:title02}
-\end{figure}
-
 \begin{center}
     \small
     \begin{longtable}{{m{6em}m{14em}m{14em}}}
@@ -2674,7 +3206,7 @@ Figure~\ref{fig:title03}.
 \paragraph{Special Characters (< > / \textbackslash \#)} Besides the previously described <, >, and / characters, there are two special characters: backslash â€ś\textbackslash”, and the pound sign â€ś\#”. The backslash character is used for two things. With the advent of the attribute name and value, your line may become quite long so you can use â€ś\textbackslash” followed by the carriage return to continue on the next line as if it is just a single line. It also can be used to designate that the following character does not represent the beginning of an attribute. For example, if you want to use the opening angle character â€ś<“ as a title character, precede it with the backslash character. The pound sign, â€ś\#”, designates the whole line as a comment or if in the middle of the line, then the rest of the line is a comment (this includes the carriage return).
 
 \begin{description}
-    \item[Background] in this box you can keyin the name of a file of the type that \CGG{} accepts and use that file as a background for your Title characters. This will be seen in the compositor window on top of the video that is loaded in the main track canvas. Besides typing in the filename, you must also check the checkbox. This makes it easy to turn it \textit{On} and \textit{Off} to see what it looks like. Next to the background box is a \textit{Loop} checkbox. If the background file takes less time than the main track canvas video to run, you can turn on the loop checkbox so that it runs over and over again to match the time size of your video.
+    \item[Background] in this box you can keyin the name of a file of the type that \CGG{} accepts and use that file as a background for your Title characters (media video or image). This will be seen in the compositor window on top of the video that is loaded in the main track canvas. Besides typing in the filename, you must also check the checkbox. This makes it easy to turn it \textit{On} and \textit{Off} to see what it looks like. Next to the background box is a \textit{Loop} checkbox. If the background file takes less time than the main track canvas video to run, you can turn on the loop checkbox so that it runs over and over again to match the time size of your video. By default the background image will occupy the whole frame, but if we activate \textit{drag} mode and create a box of the desired size, the image will occupy only the box leaving the rest of the frame visible.
     \item[Stroker] to add \textit{pen strokes} to the text letters, adjust the stroke width numerically. This looks particularly nice on certain fonts and with a negative adjustment of the \textit{Drop shadow}.
     \item[Unicode Insertion] if you want to enter a special character like the mathematical \textit{summation} symbol, you can use the unicode equivalent to do so. Press Ctrl-Shift-U followed by $2022$ and a carriage return is an example of the bullet. Refer to section \hyperref[sec:textbox_non_std_character_unicode]{17.5} for details.
     \item[Popup Helper] put your cursor where you want to add an attribute, then right mouse will bring up a list of the available attributes for you to choose, along with a submenu to choose from. The program will insert that attribute for you and all you have to add is a value when required! (see figure~\ref{fig:title02}).
@@ -2685,21 +3217,22 @@ Figure~\ref{fig:title03}.
 
 The Text Color window has several enhanced features as listed here and seen in figure~\ref{fig:title04}.
 
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=0.7\linewidth]{title04.png}
+       \caption{Screencast showing the Color Picker menu.}
+       \label{fig:title04}
+\end{figure}
+
+
 \begin{enumerate}
     \item The hex value of the color you choose shows in the textbox and you can also keyin a value there.
-    \item A small square next to the hex text box, is a green \textit{eyedropper} color picker. Use the left mouse button to click on the square to enable picking and you will see it turn red to designate that it is enabled. Your cursor will switch to a two-colored reticle. You can now move the mouse around to choose a color anywhere on the screen and then click there to have it picked. If you hold down the right or left mouse button while moving, you can see the color changing in the vertical bar in the color palette area as you move to give you a bigger view of the actual color. The eyedropper square is seen in figure~\ref{fig:title04}.
+    \item A small square next to the hex text box, is a green \textit{eyedropper} color picker. Use the left mouse button to click on the square to enable picking and you will see it turn red to designate that it is enabled. Your cursor will switch to a two-colored reticle. You can now move the mouse around to choose a color anywhere on the screen and then click there to have it picked. If you hold down the right or left mouse button while moving, you can see the color changing in the vertical bar in the color palette area as you move to give you a bigger view of the actual color.
     \item A history of $16$ of your last chosen colors is available to easily use again. Any time you choose a new color in any methodology, it will become the latest choice in the history either immediately or after checking OK/and leaving. History shows latest color starting left to right.
     \item Besides HSV, RGB, there is also a YUV color model to choose from.
     \item Several of these items may have associated \textit{Tool Tips}.
 \end{enumerate}
 
-\begin{figure}[hbtp]
-    \centering
-    \includegraphics[width=0.7\linewidth]{title04.png}
-    \caption{Screencast showing the Color Picker menu.}
-    \label{fig:title04}
-\end{figure}
-
 \subsubsection*{Font Choice}%
 \label{ssub:font_choice}
 
@@ -2735,7 +3268,10 @@ export BC_FONT_DEBUG=1   (default is 0 for no debug)
 unset BC_FONT_DEBUG            (to remove debug messages)
 \end{lstlisting}
 
-Then start \CGG{} from a terminal window to see the fonts being loaded and previewed in the Titler. This should point out any issues. Another debug methodology is to remove all fonts from being used and subsequently add in the ones that you want. For example:
+Then start \CGG{} from a terminal window to see the fonts being loaded and previewed in the Titler. This should point out any issues. Another debug methodology is to remove all fonts from being used and subsequently add in the ones that you want.
+This not only speeds the load up, it ensures that the fonts you actually are using are the ones you expect because the order that
+\CGG{} finds various fonts makes a difference in which one of potential duplicates shows up in the
+pulldown.  So you might not see the one you expect if it was written over by a system font.
 
 \vspace{1ex}
 \begin{lstlisting}[style=sh]
@@ -2746,6 +3282,11 @@ export BC_FONT_PATH=:/usr/share/fonts #(remove all fonts and then add /usr/shar/
 One last item of information about fonts that may lead to some confusion. The checkbox for Bold and Italic will occasionally be ghosted out if no bold or italic version of the selected font is available. This is no guarantee, but currently as good as it can get due to inconsistency in the creation of fonts. It is mostly just a hint. If boxes are checkmarked, but ghosted, you can not uncheck until you change to a font that does not ghost out the boxes. If you use the popup helper with the boxes checked, and attempt to keyin a font that does not have the bold/italic attribute as checked, the font will be considered illegal.
 Text: chars is output and updated to indicate the number of characters already used. The only limit to the number of characters based on a count of single $8\, bit$ characters is the available resources on the user computer available for \CGG{} use. Keep in mind that unicode or other special characters may consist of $2$ to $4$ $8\,bit$ bytes. Also, newlines are a character and any of the attributes you use count in the total. There is now a horizontal scroll bar as well as the vertical one in the textbox and they only appear when there are more lines or characters that can fit in the original sized textbox.
 
+\subsubsection*{Kerning}%
+\label{ssub:kerning}
+
+When using the Titler, kerning is applied in order to allow parts of a letter to go outside the standard sized letter box.  Kerning is the process of adjusting the space between individual letters.  It is not the same as proportional spacing.  In kerning, a bounding box is allowed to overlay another bounding box.  The philosophy here is to aim at the ability to have boxes overlap in order to make the letters look more visually appealing.  Bounding box and escapement are tracked separately.  In addition to adjusting individual letter spacing, the program will also expand the render box in order to have any parts of the letter extend outside the standard letter box.  Kerning is applied to any and all fonts (figure~\ref{fig:title05}).
+
 \begin{figure}[hbtp]
        \centering
        \includegraphics[width=0.4\linewidth]{title05.png}
@@ -2753,13 +3294,9 @@ Text: chars is output and updated to indicate the number of characters already u
        \label{fig:title05}
 \end{figure}
 
-\subsubsection*{Kerning}%
-\label{ssub:kerning}
-
-When using the Titler, kerning is applied in order to allow parts of a letter to go outside the standard sized letter box.  Kerning is the process of adjusting the space between individual letters.  It is not the same as proportional spacing.  In kerning, a bounding box is allowed to overlay another bounding box.  The philosophy here is to aim at the ability to have boxes overlap in order to make the letters look more visually appealing.  Bounding box and escapement are tracked separately.  In addition to adjusting individual letter spacing, the program will also expand the render box in order to have any parts of the letter extend outside the standard letter box.  Kerning is applied to any and all fonts (figure~\ref{fig:title05}).
-
 \subsection{Tracer}%
 \label{sub:tracer}
+\index{tracer}
 
 Tracer creates an outline around an object after a few points are designated, so it traces the object. Its operates in a similar manner to that of Gimp's \textit{magic wand}. You can then Fill the alpha channel with a mask, like with a gradient or another object on another track or Invert that fill. Although it works best for still images or objects that stay in the same place on a video like a logo, you can also add keyframes. To limit the mis-tracking that occurs when working on a moving object, we can increase the number of points so that the tracking is more accurate and relies on a solid foundation. Rather than \textit{points} as in a mask, tracer is based on \textit{edges} to form an outline (figure~\ref{fig:tracer-01}). Frequently it will be desirable to use either RGB or YUV as the color model without the -A for Alpha.
 
@@ -2785,7 +3322,7 @@ Tracer creates an outline around an object after a few points are designated, so
        \item[Invert] to change the mask to outside.
        \item[Feather] to sort of blur the edges (inward and outward). Feather influences the softness of the edge. The higher the number Feather is set to, the softer the edges become.
        \item[Radius] for varying the size a little. Radius extends the area further in or out to cover more or less area.
-       \item[Drag] to enable or disable moving.
+       \item[Drag] to enable or disable moving.  If you need to clear the Drag enabled, you can easily do this with \textit{Allow keyframe spanning} whose use is described in \nameref{sec:allow_keyframes_spanning}.
        \item[Draw] to draw the outline for visual.
        \item[Fill] to black out the object (no alpha); figure~\ref{fig:tracer-02}.
        \item[Mouse wheel] rotate the outline, centered on cursor. Note that this rotates the outline around the nearest point. The slower you scroll, the more precise the the result. If you scroll faster, an accelerator kicks in that allows you to make complete rotations more quickly.
@@ -2798,6 +3335,7 @@ Be sure to uncheck \textit{Draw} and \textit{Drag} before rendering so that the
 
 \subsection{Translate}%
 \label{sub:translate}
+\index{translate}
 
 This effect allows displacing, cropping, and/or scaling the source video horizontally and/or vertically. The \textit{In} and \textit{Out} parameters operate similar to the \textit{camera} and \textit{projector} functions in the Compositor:
 
@@ -2814,8 +3352,9 @@ This effect supports keyframes so these parameters can change smoothly over time
 
 \subsection{Unsharp}%
 \label{sub:Unsharp}
+\index{unsharp}
 
-This effect applies a traditional \textit{darkroom} technique, the so called \textit{unsharp mask} to every video frame. With different parameter values, this can be used to soften or to sharpen the image. Its parameters are:
+This effect applies a traditional \textit{darkroom} technique, the so called \textit{unsharp mask} to every video frame. With different parameter values, this can be used to soften or to sharpen the image. You can use sliders or, for maximum precision, you can use the input box. Its parameters are:
 
 \begin{description}
     \item[Amount] moving the slider to the right makes dark areas get darker and light areas get lighter.
@@ -2826,36 +3365,98 @@ This effect applies a traditional \textit{darkroom} technique, the so called \te
 
 \subsection{Videoscope}%
 \label{sub:videoscope}
+\index{videoscope}
+
+Videoscope summarizes intensity and color on a calibrated display. The Videoscope can be used in conjunction with other \CGG{} plugins such as \textit{Color 3 Way}, \textit{YUV}, \textit{Brightness}, \textit{Color Balance} or \textit{Histogram} to accurately correct video for contrast, clarity, conformance (to normalize various videos shot under different light settings), or for cinematic purposes. The human eye is not specialized to match precise level of light and color, but Videoscope is. Videoscope contains three displays: the waveform scope and the vectorscope, plus the histograms (figure~\ref{fig:videoscope01}). Instead of applying the plugin to the tracks/edits we want to examine, we can use the Videoscope buttons in the Composer and Viewer windows. \includegraphics[height=\baselineskip]{scope.png} In this way the monitors act on the frame indicated by the insertion point, without taking into account the stack of tracks or on which edits to apply the plugin.
+
+The Videoscope menu window has many options.
+
+\paragraph*{Scopes:} we can choose between two histograms:
 
-Videoscope summarizes intensity and color on a calibrated display. The Videoscope can be used in conjunction with other \CGG{} plugins such as \textit{Color 3 Way}, \textit{YUV}, \textit{Brightness}, \textit{Color Balance} or \textit{Histogram} to accurately correct video for contrast, clarity, conformance (to normalize various videos shot under different light settings), or for cinematic purposes. The human eye is not specialized to match precise level of light and color, but Videoscope is. Videoscope contains three displays: the waveform scope and the vectorscope, plus the histograms (figure~\ref{fig:videoscope01}).
+\begin{itemize}[noitemsep]
+       \item \textit{Histogram}
+       \item \textit{Histogram RGB}
+\end{itemize}
+three waveforms: 
+\begin{itemize}[noitemsep]
+       \item \textit{Waveform}
+       \item \textit{Waveform RGB} (aka RGB Parade)
+       \item \textit{Waveform Ply} (which superimposes the three Waveform RGB graphs in a single view.)
+\end{itemize}
+and two vectorscopes: 
+\begin{itemize}[noitemsep]
+       \item \textit{Vectorscope}
+       \item \textit{VectorWheel}
+\end{itemize}
 
 \begin{figure}[hbtp]
-    \centering
-    \includegraphics[width=0.8\linewidth]{videoscope01.png}
-    \caption{GUI of the Videoscope. You see Histogram, RGB Parade and Vectorscope}
-    \label{fig:videoscope01}
+       \centering
+       \includegraphics[width=1.0\linewidth]{videoscope01.png}
+       \caption{GUI of the Videoscope. You see Histogram, RGB Parade and Vectorscope}
+       \label{fig:videoscope01}
 \end{figure}
 
-\subsubsection*{Waveform/RGB Parade}%
-\label{ssub:waveform_rgb_parade}
+\paragraph*{Settings:} It is divided into two sections. The upper section contains two items:
 
-The \textit{Waveform Scope} displays image intensity (luminance) versus image $X$ position. The \textit{RGB Parade Scope} displays image RGB intensity versus image $X$ position (one graph per channel). The Waveform Scope appears on the left side or in the middle of the Videoscope window. The display is calibrated vertically from $0\%$ intensity (black) at the bottom up to $100\%$ intensity (white) at the top. Each column of pixels in the image corresponds to one column of pixels in the Waveform Scope (figure~\ref{fig:videoscope02}). Note that the height of the values of a waveform/RGB Parade corresponds exactly to the values on the $x\, axis$ in the \textit{histogram}. A vertical/horizontal correspondence is therefore obtained.
+\begin{description}
+       \item[Smooth:] serves to make the graph more homogeneous, improving its visualization.
+       \item[Refresh on Stop ON:] [checked -- only for Transport buttons] scopes are updated when you stop playback at a given location. Instead, they are locked at the start position while you playback. This saves system resources and makes playback smoother. By dragging the cursor the scopes are updated in realtime.
+       \item[Refresh on Stop OFF:] [unchecked -- for Transport buttons and dragging cursor] the display of the scopes is synchronized with the playback. Every variation of the graphs is in realtime. There may be some decrease in fps during playback.
+       \item[Refresh on Release:] This works for the Viewer and Compositor windows. Scopes are not updated during playback. The update occurs only when you stop playback, that is at the final position (either by dragging the cursor or using the Transport buttons). When in the timeline, if you drag on the TimeBar or reposition in the TimeBar in either Drag and Drop or Cut and Paste mode, the release of the button also will update the Scopes.  This saves system resources and makes playback smoother.  Because there is no update when playing in the main window, you can still easily get a videoscope update simply by moving the mouse to the Compositor and a single click there will update the scopes without changing the frame (as long as Click to Play is not enabled).
+\end{description}
+
+ The lower section, called \textit{VectorWheel Grids}, it is only active when VectorWheel is set up in Scopes pull-down and contains four entries (figure~\ref{fig:videoscope06}):
+
+ \begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=1.0\linewidth]{videoscope06.png}
+       \caption{Pull-down Settings}
+       \label{fig:videoscope06}
+ \end{figure}
+ \begin{description}
+       \item[None:] It only shows the colour wheel, without any superimposed graticula.
+       \item[All:] Shows the most complete grid that allows precise and useful measurements. It also shows the skintones area.
+       \item[Hue:] Show a more minimal grid.  It also shows the I-Line.
+       \item[IQ:] Show shows only I-Line and Q-Line.
+ \end{description}
+
+
+You can create custom grids. These are raster .png images of adequate resolution and must be put in:
+
+\begin{lstlisting}[style=sh]
+[your cinelerra path]/bin/plugins/scopes/custom_grid.png
+\end{lstlisting}
+
+More information in the later section on Vectorscope.
+
+\paragraph*{Sliders:} allow for varying the \textit{solidity} of the dots shown in Waveforms and Vectorscope. You can get to the subpixel level for precision. They are accompanied by Reset buttons that restore them to default values.
+
+
+
+\subsubsection*{Waveform/RGB Parade/Waveform Ply}%
+\label{ssub:waveform_rgb_parade_ply}
+\index{videoscope!waveforms}
+
+The \textit{Waveform Scope} displays image intensity (luminance) versus image $X$ position. The \textit{Waveform RGB} displays image RGB intensity versus image $X$ position (one graph per channel). The \textit{Waveform Ply} shows the three channels in a single graph. The Waveform Scope appears on the left side or in the middle of the Videoscope window. The display is calibrated vertically from $0\%$ intensity (black) at the bottom up to $100\%$ intensity (white) at the top. Each column of pixels in the image corresponds to one column of pixels in the Waveform Scope (figure~\ref{fig:videoscope02}). Note that the height of the values of a waveform/waveform RGB corresponds exactly to the values on the $x\, axis$ in the \textit{histogram}. A vertical/horizontal correspondence is therefore obtained.
 
 \begin{figure}[hbtp]
     \centering
-    \includegraphics[width=0.9\linewidth]{videoscope02.png}
-    \caption{Colortest 75\% with RGB Parade (left) and Waveform (right)}
+    \includegraphics[width=1.0\linewidth]{videoscope02.png}
+    \caption{Colortest 75\% with Waveform RGB (left) and Waveform (right)}
     \label{fig:videoscope02}
 \end{figure}
 
-On the left is shown RGB Parade: instead of the color shadows as in figure~\ref{fig:videoscope01}, we have lines representing the color bar test at $75\%$. They are pure colors, so all pixels have the same value. In fact, they are all at the level of $75\%$ except for the $100\%$ white band and the $0\%$ black band. In the waveform on the right, we have the same behavior with regard to luminance: the white band is $100\%$; the black band is $0\%$ and all the others $75\%$.
+On the left is shown waveform RGB: instead of the color shadows as in figure~\ref{fig:videoscope01}, we have lines representing the color bar test at $75\%$. They are pure colors, so all pixels have the same value. In fact, they are all at the level of $75\%$ except for the $100\%$ white band and the $0\%$ black band. In the waveform on the right, we have the same behavior with regard to luminance: the white band is $100\%$; the black band is $0\%$ and all the others $75\%$.
+
+If we left-click on the graph with the mouse, we will see a crosshair that we can place exactly where we want to measure. We can read the precise values of X and Luminance (Value) in the pop-up box that appears at the bottom right (figure~\ref{fig:videoscope03}).
 
-The Waveform scope helps correct image light levels for contrast range or for conforming light levels on various scenes originally shot on different light settings (figure~\ref{fig:videoscope03}).
+The Waveform scope helps correct image light levels for contrast range or for conforming light levels on various scenes originally shot on different light settings. The same can be done with Waveform RGB or the convenient overlapping representation (Waveform Ply).
 
 \begin{figure}[hbtp]
     \centering
-    \includegraphics[width=0.7\linewidth]{videoscope03.png}
-    \caption{Example of waveform}
+    \includegraphics[width=1.0\linewidth]{videoscope03.png}
+    \caption{Examples of waveform (with crosshair and the coordinates' box), waveform RGB and waveform Ply}
     \label{fig:videoscope03}
 \end{figure}
 
@@ -2864,13 +3465,13 @@ The Waveform scope helps correct image light levels for contrast range or for co
 
 \begin{enumerate}
     \item Add the \textit{Brightness/Contrast}, \textit{Histogram}, \textit{Color 3 Way} or another video adjustment effect on your track/edit.
-    \item Add the Videoscope effect on the track below. Make sure that it is placed below so it can see the adjustment effect's results. If it is not, right-click and move it down.
+    \item Add the Videoscope effect on the track. Make sure that it is placed below in the stack of effects, so it can see the adjustment effect's results. If it is not, right-click and move it down. Or do not use the plugin but activate the Videoscope button in the Compositor window.
     \item Show both the effect and Videoscope.
     \item Adjust the contrast while observing the waveform to match the desired light level.
-    \item Precise adjustments can be made by measuring the values on the waveform with the crosshair (by click with LMB, and reading numeric values on top left of the window) and reporting these numbers in the effects window (\textit{Histogram BĂ©zier}, for example).
+    \item Precise adjustments can be made by measuring the values on the waveform with the crosshair (by clicking LMB, and reading numeric values on the pop-up box) and reporting these numbers in the effects window (\textit{Histogram BĂ©zier}, for example).
 \end{enumerate}
 
-For instance, if you are looking for maximum contrast range, adjust the \textit{Brightness/Contrast} levels to align the darkest point on the scope with the $0\%$ level and the brightest portion with $100\%$. Anything above $100\%$ is over saturated. Limits which may be highlighted with checkbox controls.
+For example, if you are looking for maximum contrast range, adjust the \textit{Brightness/Contrast} levels to align the darkest point on the scope with the $0\%$ level and the brightest portion with $100\%$. Anything above $100\%$ is over saturated. Limits may be highlighted with checkbox controls.
 
 \subsubsection*{HDTV or sRGB (ITU-R BT.709)}%
 \label{ssub:hdtv_srgb_bt709}
@@ -2889,15 +3490,35 @@ If you are producing a video for NTSC television broadcast, keep the intensity b
 
 \subsubsection*{Vectorscope}%
 \label{ssub:Vectorscope}
+\index{videoscope!vectorscope}
+
+The Vectorscope displays \textit{hue} (angle on the color wheel) and \textit{saturation} (radius). Each pixel in the source image is drawn as a point on the color wheel. The distance from the center is the color saturation. Gray values are close to the center, and high saturation values are near the perimeter ($100\%$). In the center there is pure white ($0\%$). By clicking with the mouse on the color wheel a radius and circle will appear whose values of hue and saturation are shown in the  pop-up box at the bottom right of the window, similar to the values of $X$ and luminance of the Waveform and RGB Parade (figure~\ref{fig:videoscope05}).
+
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=0.8\linewidth]{videoscope05.png}
+       \caption{Vectorscope (with H/S pop-up box) and VectorWheel (with 3 default grids)}
+       \label{fig:videoscope05}
+\end{figure}
+
+Note that when you choose \textit{VectorWheel} from \textit{Scopes} pulldown, you can choose between different grids in the \textit{Settings} pulldown. In addition, any number of user-supplied grid patterns can be added in the form of a square image of type png.  The user can design and maintain individual grid overlays for various purposes.  The user would keep their overlays in a safe spot on their disk and make a copy of them in the \texttt{\{cinelerra\_pathname\}/bin/plugins/scopes} every time a new version of \CGG{} is installed.
 
-The Vectorscope displays \textit{hue} (angle on the color wheel) and \textit{saturation} (radius). Each pixel in the source image is drawn as a point on the color wheel. The distance from the center is the color saturation. Gray values are close to the center, and high saturation values are near the perimeter ($100\%$). In the center there is pure white ($0\%$). By clicking with the mouse on the color wheel appear radius and circle whose values of hue and saturation are shown at the top left of the window, similar to the values of $X$ and luminance of the Waveform and RGB Parade (figure~\ref{fig:videoscope04}).
+Generally the Vectorscope has the following uses:
 
-Vectorscope is used as monitor with other plugins to correct color, adjust image tint, and apply other effects for cinematic effects, image correction, or to conform images to look the same. For example, skin tones are found along an axis (\textit{+ I-line}) between yellow and red, and between $0$ and $50\%$ saturation values. The blue of the sky is more or less along the opposite axis to that of the skin (\textit{- I-line}), with a much wider saturation range.
+\begin{enumerate}
+       \item Compare saturation levels (radius) between Edits.
+       \item Compare the hues (angle) between Edits.
+       \item Compare skin tones, sky and vegetation.
+       \item Display the color balance or color cast.
+       \item Check the legal limits of the video signal.
+\end{enumerate}
+
+ For example, skin tones are found along an axis (\textit{+ I-line}) between yellow and red, and between $0$ and $50\%$ saturation values. The blue of the sky is more or less along the opposite axis to that of the skin (\textit{- I-line}), with a much wider saturation range.
 
 \begin{figure}[hbtp]
     \centering
     \includegraphics[width=0.9\linewidth]{videoscope04.png}
-    \caption{Balancing a yellow dominace tint}
+    \caption{Balancing a yellow color cast}
     \label{fig:videoscope04}
 \end{figure}
 
@@ -2906,75 +3527,94 @@ The Vectorscope can also be used to verify that the video output will display pr
 
 \subsubsection*{Histogram}%
 \label{ssub:histogram}
+\index{videoscope!histogram}
 
 You can also display the 4 histograms (master or RGB) on the left of the window. (see figure~\ref{fig:videoscope01}).
 
 \subsection{Wave}%
 \label{sub:wave}
+\index{wave}
 
-The \textit{wave} effect adds waves on the image. \textit{Amplitude}, \textit{Phase}, and \textit{Wavelength} parameters can be adjusted. With the Clear buttons we can bring the slider to default values without affecting the other parameters.
+The \textit{wave} effect adds waves on the image. \textit{Amplitude}, \textit{Phase}, and \textit{Wavelength} parameters can be adjusted. You can use sliders or, for maximum precision, you can use the input box. With the \textit{Clear} buttons we can bring the slider to default values without affecting the other parameters.
 
 \subsection{Whirl}%
 \label{sub:whirl}
+\index{whirl}
 
-Creates a whirl (spiral) of the video around the center. With the Clear buttons we can bring the slider to default values without affecting the other parameters.
+Creates a whirl (spiral) of the video around the center. You can use sliders or, for maximum precision, you can use the input box. With the \textit{Clear} buttons we can bring the slider to default values without affecting the other parameters.
 
 \subsection{YUV}%
 \label{sub:yuv}
+\index{yuv}
 
-Modify the Y, U, V settings. With the Clear buttons we can bring the slider to default values without affecting the other parameters.
+Modify the Y, U, V settings. You can use sliders or, for maximum precision, you can use the input box. With the \textit{Clear} buttons we can bring the slider to default values without affecting the other parameters.
 
 \subsection{YUV411}%
 \label{sub:yuv411}
+\index{yuv411}
 
 Modify the 411 yuv to look like 420 color space instead. If the edit to which the effect is applied is not YUV type, a red warning message will appear.
 
 \subsection{YUVShift}%
 \label{sub:yuvshift}
-
-This effect is used for YUV input video from older cameras using $3$ sensors. It is possible to have misalignment of the $3$ sets of numbers: \textit{Y}, which represents the luminance or brightness component, and for \textit{U} and \textit{V} representing the chrominance (color) components. If they were misaligned in the video, you can use \textit{YUVShift} to realign. To move a specific component up/down, modify the \textit{dy} value using the slider bar in the RGBShift window. To move a component left/right, modify the corresponding \textit{dx} value. With the Clear buttons we can bring the slider to default values without affecting the other parameters. If you are using an RGB color space, you will want to use the \textit{RGBShift} effect instead.
-
-Figure~\ref{fig:yuvshift} (top) shows the blue \textit{U} component aligned too far to the left. And the red \textit{V} component is misaligned too far to the right. Note the \textit{U\_dx} current slider bar set to $0$ as shown by the yellow box value in the YUVShift plugin window. All components are currently at zero.
-A corrected video image is shown in the bottom. Now the red and blue colors are correctly aligned. Note how \textit{U\_dx} is now at $+20$ and \textit{V\_dx} is now negative to realign the image.
+\index{yuv shift}
 
 \begin{figure}[hbtp]
-    \centering
-    \includegraphics[width=0.8\linewidth]{yuvshift.png}
-    \caption{Before and after YUVShift adjusting}
-    \label{fig:yuvshift}
+       \centering
+       \includegraphics[width=0.8\linewidth]{yuvshift.png}
+       \caption{Before and after YUVShift adjusting}
+       \label{fig:yuvshift}
 \end{figure}
 
+This effect is used for YUV input video from older cameras using $3$ sensors. It is possible to have misalignment of the $3$ sets of numbers: \textit{Y}, which represents the luminance or brightness component, and for \textit{U} and \textit{V} representing the chrominance (color) components. If they were misaligned in the video, you can use \textit{YUVShift} to realign. To move a specific component up/down, modify the \textit{dy} value using the slider bar in the RGBShift window. To move a component left/right, modify the corresponding \textit{dx} value. For maximum precision you can use the input box. With the \textit{Clear} buttons we can bring the slider to default values without affecting the other parameters. If you are using an RGB color space, you will want to use the \textit{RGBShift} effect instead.
+
+Figure~\ref{fig:yuvshift} (top) shows the blue \textit{U} component aligned too far to the right/down. And the red \textit{V} component is misaligned too far to the right/down. Note the \textit{U\_dx} current slider bar set to $0$ as shown by the input box value in the YUVShift plugin window. All components are currently at zero.
+A corrected video image is shown in the bottom. Now the red and blue colors are correctly aligned. Note how \textit{U\_dx} is now at $+26$ and \textit{V\_dx} is now $+41$ to realign the image.
+
 \subsection{Zoom Blur}%
 \label{sub:zoom_blur}
+\index{zoom blur}
 
 Blurs the video from the center outwards, like the sun’s rays, and uses a zoom effect.
 
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=0.8\linewidth]{zoom.png}
+       \caption{For clarity of presentation only 3 fields are shown}
+       \label{fig:zoom}
+\end{figure}
+
 \begin{description}
     \item[X,Y] center of the origin field.
     \item[Radius] Zoom on the fields.
     \item[Steps] number of blur steps to be used in the calculation. Increasing the number takes more CPU.
     \item[Clear] With the Clear buttons we can bring the slider to default values without affecting the other parameters.
+    \item[Reset] To reset all parameters to default at the same time.
 \end{description}
 
+You can use sliders or, for maximum precision, you can use the input box.
 Figure~\ref{fig:zoom} shows the parameters: Radius=21 and Steps=3.
 
-\begin{figure}[hbtp]
-    \centering
-    \includegraphics[width=0.8\linewidth]{zoom.png}
-    \caption{For clarity of presentation only 3 fields are shown}
-    \label{fig:zoom}
-\end{figure}
-
 \section{CUDA plugins}%
 \label{sec:cuda_plugins}
 \settocdepth{section}
+\index{CUDA!plugin}
 
 Only for Nvidia GPU and Cuda SDK
 
 \subsection{Mandelbrot}%
 \label{sub:mandelbrot}
+\index{CUDA!mandelbrot}
 
 Produce fractal figures (figure~\ref{fig:mandelbrot}). Use case:
+
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=0.8\linewidth]{mandelbrot.png}
+       \caption{Mandelbrot Cuda plugin}
+       \label{fig:mandelbrot}
+\end{figure}
+
 \begin{enumerate}
        \item add the Mandelbrot Cuda video effect to the timeline
        \item you must enable Drag in the plugin popup menu
@@ -2983,15 +3623,9 @@ Produce fractal figures (figure~\ref{fig:mandelbrot}). Use case:
        \item so now when you play the video from the beginning because you have keyframes, the fractal will be animated between keyframes.
 \end{enumerate}
 
-\begin{figure}[hbtp]
-       \centering
-       \includegraphics[width=0.9\linewidth]{mandelbrot.png}
-       \caption{Mandelbrot Cuda plugin}
-       \label{fig:mandelbrot}
-\end{figure}
-
 \subsection{N\_Body}%
 \label{sub:n_body}
+\index{CUDA!n\_body}
 
 Produce animated particles (figure~\ref{fig:n_body}).
 
@@ -3005,6 +3639,7 @@ Produce animated particles (figure~\ref{fig:n_body}).
 \section{OpenCV plugins}%
 \label{sec:opencv_plugins}
 \settocdepth{section}
+\index{openCV}
 
 There are currently 6 OpenCV plugins hooked into Cinelerra static and dynamic tars with the most
 widely known being FindObj.  The \textit{Find Object} plugin searches a Scene for an Object and
@@ -3032,8 +3667,8 @@ time is significant. For these reasons, \textit{findobject} and the other 5 plug
 included in System build packages.  We recommend using the static library build which has the OpenCV
 plugins included for consistency and to avoid problems.
 
-\subsection{Using OpenCV Plugins from the Automatic Builds}%
-\label{sub:using_opencv_automatic_builds}
+\subsection{Adding OpenCV Plugins to the System Package Builds}%
+\label{sub:adding_opencv_to_system_builds}
 
 The OpenCV plugins are built only in the 64-bit tarball builds, both static and dynamic, but due
 to size these plugins are not included with pkgs, i.e. the System builds. However it is relatively
@@ -3051,7 +3686,7 @@ cin/plugins/opencv/stylizeobj.plugin
 
 \begin{enumerate}
     \item do your package install of the current build for your distro as usual
-    \item look in {\small \url{https://cinelerra-gg.org/download/tars}} to see your distro name's static tar;
+    \item look in {\small \url{https://cinelerra-gg.org/download/tars}} to see your distro name's static tar
     \item download the corresponding distro static tarball;
     for example for arch:
 \end{enumerate}
@@ -3059,25 +3694,25 @@ cin/plugins/opencv/stylizeobj.plugin
     {\small \url{https://cinelerra-gg.org/download/tars/cinelerra-5.1-arch-{date}-x86_64-static.txz}}
 
 \begin{enumerate}[resume]
-    \item create a temporary directory on your computer;
-    \item \texttt{cd} that-directory;
-    \item \texttt{tar -xf} location-of-the-tarball-you-downloaded;
-    \item \texttt{cp plugins/*obj.plugin <see below for your location>/.} (note the period on the end!)
-    \item Start \CGG{} and look for the six plugins in Video Effects;
+    \item create a temporary directory on your computer
+    \item \texttt{cd} that-directory
+    \item \texttt{tar -xf} location-of-the-tarball-you-downloaded
+    \item \texttt{cp plugins/opencv/*obj.plugin <see below for your location>/.} (note the period on the end)
+    \item Start \CGG{} and look for the six plugins in Video Effects
     \item To reverse this, simply delete the six plugin files (for example:
 
     \texttt{rm /usr/lib*/cin*/*obj.plugin}).
 \end{enumerate}
 
-location for most User installs, this is:
+The location for most User installs is:
 
-\texttt{<cinlib\_path>/plugins/}
+\hspace{4em}\texttt{<cinlib\_path>/plugins/video}
 
-Location for some System installs, this is:
+Location for some System installs is:
 
-\texttt{/usr/lib/cin/plugins/} (most ubuntu distros)
+\hspace{4em}\texttt{/usr/lib/cin/plugins/video} (most ubuntu distros)
 
-\texttt{/usr/lib64/cin/plugins/} (Leap distro)
+\hspace{4em}\texttt{/usr/lib64/cin/plugins/video} (Leap distro)
 
 \subsection{How to Build OpenCV Plugins}%
 \label{sub:how_build_opencv_plugins}
@@ -3088,6 +3723,32 @@ and build OpenCV into the thirdparty library build area if needed (it does not r
 previously).  Network access is required to obtain the OpenCV source, at least once. You will
 need a minimum of $4\, GB$ in the thirdparty build directory and more time to compile.
 
+\subsubsection*{Build using stable tarballs}%
+\label{ssub:stable_tars}
+
+Instead of using the latest git version, there is a custom archive source tarball on the
+website already created to build and test OpenCV versions.  The reason for this is that OpenCV
+is quite volatile, and may or may not work on any given day so this is an already tested version
+that is considered to be more stable.  A build using the tarball requires that your
+system have \textit{wget} already installed to initially download the prepared source tar. 
+There are currently 2 tarballs of stable versions on the website used for user builds.
+The 20180401 version:\newline
+{\small \url{ https://cinelerra-gg.org/download/opencv/opencv-20180401.tgz}}\newline
+works with older version of cmake, and 20200308 is the current 4.2 release:\newline
+{\small \url{https://cinelerra-gg.org/download/opencv/opencv-20200306.tgz}}
+
+To build using the tarballs on the website, use this bld.sh procedure (you may want to run "make
+clean" first):
+\begin{lstlisting}[style=sh]
+#!/bin/bash
+( ./autogen.sh
+  ./configure --with-single-user --with-booby \
+    --with-opencv=sta,tar=http://cinelerra-gg.org/download/opencv/opencv-20200306.tgz
+  make && make install ) 2>&1 | tee log
+mv Makefile Makefile.cfg
+cp Makefile.devel Makefile
+\end{lstlisting}
+
 \subsubsection*{Build using current git version}%
 \label{ssub:current_git}
 
@@ -3161,34 +3822,9 @@ running locally on the build system.  for example:\newline
      \item systemctl start httpd
 \end{enumerate}
 
-\subsubsection*{Build using stable tarballs}%
-\label{ssub:stable_tars}
-
-Instead of using the latest git version, there is a custom archive source tarball on the
-website already created to build and test OpenCV versions.  The reason for this is that OpenCV
-is quite volatile, and may or may not work on any given day so this is an already tested version
-that is considered to be more stable.  A build using the tarball requires that your
-system have \textit{wget} already installed to initially download the prepared source tar. 
-There are currently 2 tarballs of stable versions on the website used for user builds.
-The 20180401 version:\newline
-{\small \url{ https://cinelerra-gg.org/download/opencv/opencv-20180401.tgz}}\newline
-works with older version of cmake, and 20200308 is the current 4.2 release:\newline
-{\small \url{https://cinelerra-gg.org/download/opencv/opencv-20200306.tgz}}
-
-To build using the tarballs on the website, use this bld.sh procedure (you may want to run "make
-clean" first):
-\begin{lstlisting}[style=sh]
-#!/bin/bash
-( ./autogen.sh
-  ./configure --with-single-user --with-booby \
-    --with-opencv=sta,tar=http://cinelerra-gg.org/download/opencv/opencv-20200306.tgz
-  make && make install ) 2>&1 | tee log
-mv Makefile Makefile.cfg
-cp Makefile.devel Makefile
-\end{lstlisting}
-
 \subsection{Description of Find Object Plugin}%
 \label{sub:description_findobj_plugin}
+\index{openCV!find object}
 
 As in the standard OpenCV FindObj program, there are $5$ \textit{detector} methods and $2$ \textit{matcher} methods which can be selected. They detect features and match them as a rectangular projection. The matched region will be overlayed with a replacement image if replace object is enabled. This is done using a variety of feature detectors and region matches. The match works by creating sets of Feature points. These points are generated for both the source and reference object frames. Then the two sets are matched for \textit{Homography} (a regional similarity).
 
@@ -3318,7 +3954,7 @@ The following steps were used to set up the example in figure~\ref{fig:findobj}.
     \label{fig:opencv}
 \end{figure}
 
-The \textit{StylizeObj} plugin can be used to create some interesting edge effects using various options (figure~\ref{fig:stylizeobj01}).
+The \textit{StylizeObj} \index{openCV!stylizeobj} plugin can be used to create some interesting edge effects using various options (figure~\ref{fig:stylizeobj01}).
 
 We can apply 6 different styles:
 
@@ -3360,6 +3996,7 @@ Figure~\ref{fig:stylize} show the images after adding the 6 various styles.
 
 \section[FFmpeg Audio and Video Plugins]{FFmpeg Audio and Video Plugins}%
 \label{sec:ffmpeg_audio_video_plugins}
+\index{ffmpeg!plugins}
 
 \CGGI{} currently comes with more than $140$ of the video plugins and $55$ of the audio plugins developed by the FFmpeg project {\small \url{www.ffmpeg.org}}. These plugins do not have a GUI with buttons like the rest of plugins, therefore to change settings it is necessary to change the variables by hand by highlighting the \textit{option}, typing a value in the \textit{Range} box, and then hitting the \textit{Apply} button. Many of these plugins provide tooltips at the bottom right corner of the window when the option is highlighted. A \textit{slider} bar and a \textit{dial} for numerical values can be used to easily vary the values which take effect immediately.
 
@@ -3392,10 +4029,11 @@ Some of the ffmpeg plugins are not usable with \CGGI{} due to input/output requi
 FFmpeg’s plugin guide is at the link:
 \href{https://ffmpeg.org/ffmpeg-filters.html}{ffmpeg-filters}.
 
-\subsection{FFmpeg Audio Plugins\protect\footnote{credit to WPfilmmaker}}%
+\subsection{FFmpeg Audio Plugins}%
 \label{sub:ffmpeg_audio_plugins}
+\index{ffmpeg!audio plugin}
 
-The following is a list of the integrated audio plug-ins.
+The following is a list of the integrated audio plug-ins\protect\footnote{credit to WPfilmmaker} .
 \begin{description}
 \item [F\_abench]~\\Benchmark part of a filtergraph.
 \item [F\_acompressor]~\\Audio compressor.
@@ -3404,14 +4042,18 @@ The following is a list of the integrated audio plug-ins.
 \item [F\_acrusher]~\\Reduces audio bit resolution.
 \item [F\_acue]~\\Delay filtering to match a cue.
 \item [F\_adelay]~\\Delays one or more audio channels.
+\item [F\_adenorm]~\\Remedy denormals by adding extremely
+  low-level noise.
 \item [F\_aderivative]~\\Compute derivative of input audio.
 \item [F\_aecho]~\\Adds echoing to the audio.
 \item [F\_aemphasis]~\\Audio emphasis.
 \item [F\_aeval]~\\Filters audio signal according to a
   specific expression.
+\item [F\_aeexciter]~\\Enhance high frequency part of audio.
 \item [F\_afade]~\\Fades in/out input audio.
 \item [F\_aformat]~\\Convert the input audio to one of he
   specified formats.
+\item [F\_afreqshift]~\\Apply frequency shifting to input audio.
 \item [F\_agate]~\\Audio gate.
 \item [F\_aintegral]~\\Compute integral of input audio.
 \item [F\_allpass]~\\Applies a two-pole all-pass filter.
@@ -3420,13 +4062,22 @@ The following is a list of the integrated audio plug-ins.
 \item [F\_aperms]~\\Set permissions for the output audio
   frame.
 \item [F\_aphaser]~\\Adds a phasing effect to the audio.
+\item [F\_aphaseshift]~\\Apply phase shifting to input audio.
 \item [F\_arealtime]~\\Slows down filtering to match realtime.
 \item [F\_aresample]~\\Resamples audio data.
 \item [F\_asetrate]~\\Change the sample rate without altering
   the data.
 \item [F\_astats]~\\Shows time domain statistics about audio
   frames.
-\item [F\_atempo]~\\Adjusts audio tempo.
+\item [F\_asubboost]~\\Boost subwoofer frequencies.
+\item [F\_asubcut]~\\Cut subwoofer frequencies.
+\item [F\_asupercut]~\\Cut super frequencies.
+\item [F\_asuperpass]~\\Apply high order Butterworth band-pass filter.
+\item [F\_asuperstop]~\\Apply high order Butterworth band-stop filter.
+\item [F\_atempo]~\\Adjusts audio tempo so that when you speed up audio, it will
+adjust the pitch accordingly to make audio sounds more normal, but faster without
+being badly distorted. Its behavior is similar to what can be seen when you watch
+a youtube video, click the gear icon, and select a speed greater or less than 1.
 \item [F\_atrim]~\\Pick one continuous section from the input,
   drop the rest.
 \item [F\_bandpass]~\\Applies a two-pole Butterworth band-pass
@@ -3505,11 +4156,13 @@ The following is a list of the integrated audio plug-ins.
 \item [F\_volumedetect]~\\Detect audio volume.
 \end{description}
 
-\subsection{FFmpeg Video Plugins\protect\footnote{credit to WPfilmmaker}}%
+\subsection{FFmpeg Video Plugins}%
 \label{sub:ffmpeg_video_plugins}
+\index{ffmpeg!video plugins}
 
-The following is a list of the integrated video plug-ins.
+The following is a list of the integrated video plug-ins \protect\footnote{credit to WPfilmmaker} .
 \begin{description}
+\item [F\_addroi]~\\Mark a region of interest in a video frame.
 \item [F\_amplify]~\\Amplify changes between successive video
   frames.
 \item [F\_atadenoise]~\\Apply an Adaptive Temporal Averaging
@@ -3517,6 +4170,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_avgblur]~\\Apply average blur filter.
 \item [F\_bbox]~\\Compute bounding box for each frame.
 \item [F\_bench]~\\Benchmarks part of a filtergraph.
+\item [F\_bilateral]~\\Apply bilateral filter, spatial smoothing while preserving edges.
 \item [F\_bitplaneoise]~\\Measure bit plane noise.
 \item [F\_blackdetect]~\\Detect video intervals that are
   (almost) black.
@@ -3525,24 +4179,33 @@ The following is a list of the integrated video plug-ins.
   settings you are able to change the power and the radius of the
   boxblur applied to luma, chroma and alpha.
 \item [F\_bwdif]~\\Deinterlaces the input image.
+\item [F\_cas]~\\Apply Contrast Adaptive Sharpen filter to video.
 \item [F\_chromakey]~\\Turns a certain color into
   transparency. Operates on YUV colors.
+\item [F\_chromanr]~\\Reduce chrominance noise.
 \item [F\_ciescope]~\\Video CIE scope.
 \item [F\_color]~\\Provide an uniformly colored input.
 \item [F\_colorbalance]~\\Adjusts the color balance.
 \item [F\_colorchannelmixer]~\\Adjusts colors by mixing color
   channels.
+\item [F\_colorcontrast]~\\Adjust color contrast between RGB
+  components.
+\item [F\_colorcorrect]~\\Adjust color white balance selectivity
+  for blacks and whites.
 \item [F\_colorkey]~\\Turns a certain color into
   transparency. Operates on RGB colors.
 \item [F\_colorlevels]~\\Adjusts the color levels.
 \item [F\_colormatrix]~\\Converts color matrix.
+\item [F\_colorize]~\\Overlay a solid color on the video stream.
 \item [F\_colorspace]~\\Converts color space.
+\item [F\_colortemperature]~\\Adjust color temperature of video.
 \item [F\_cover\_rect]~\\Find and cover a user specified
   object.
 \item [F\_crop]~\\Crops the input video.
 \item [F\_cropdetect]~\\Auto-detect crop size.
 \item [F\_curves]~\\Adjust components curves.
 \item [F\_datascope]~\\Video data analysis.
+\item [F\_dblur]~\\Apply Directional blur filter.
 \item [F\_dctdnoiz]~\\Denoise frames using $2D DCT$.
 \item [F\_deband]~\\Debands video.
 \item [F\_deblock]~\\Deblocks video.
@@ -3576,14 +4239,23 @@ The following is a list of the integrated video plug-ins.
   on top of an image which is commonly used in filmmaking. The concept
   is that you align the key elements in the image using this grid at
   the intersection of the lines or along and within the
-  vertical/horizontal lines.
+  vertical/horizontal lines.  In general the bottom and right sides of
+  the video will not be bordered by the grid.  So for example, if you
+  only add the effect to the video, there will be a frame around the
+  video with the size of the \textit{thickness}
+  but the frame is only visible on the top and left and not on the bottom
+  or left side.  You can get a line to show by using a larger thickness
+  and specifying a negative value for x and y of -2, -3, or more. 
 \item [F\_edgedetect]~\\Detects and draws edge.
 \item [F\_elbg]~\\Apply posterize effect, using the ELBG
   algorithm.
 \item [F\_entropy]~\\Measure video frames entropy.
+\item [F\_epx]~\\Scale the input using EPX algorithm.
 \item [F\_eq]~\\Adjusts brightness, contrast, gamma and
   saturation.
 \item [F\_erosion]~\\Applies erosion effect.
+\item [F\_estdif]~\\Apply Edge Slope Tracing deinterlace.
+\item [F\_exposure]~\\Adjust exposure of the video stream.
 \item [F\_fade]~\\Fade in/out input video.
 \item [F\_fftdnoiz]~\\Denoise frames using $3D FFT$.
 \item [F\_fftfilt]~\\Apply arbitrary expressions to pixels in
@@ -3601,6 +4273,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_fspp]~\\Applies Fast Simple Post-processing filter.
 \item [F\_gblur]~\\Apply Gaussian Blur filter.
 \item [F\_gradfun]~\\Debands video quickly using gradients.
+\item [F\_gradients]~\\Draws a transparent gradient.
 \item [F\_graphmonitor]~\\Show various filtergraph stats.
 \item [F\_greyedge]~\\Estimates scene illumination by grey
   edge assumption.
@@ -3621,6 +4294,7 @@ The following is a list of the integrated video plug-ins.
   interlaced.
 \item [F\_kerndeint]~\\Applies kernel deinterlacing to the
   input.
+\item [F\_kirsch]~\\Apply kirsch operator.
 \item [F\_lenscorrection]~\\Rectifies the image by correcting
   for lens distortion.
 \item [F\_life]~\\Generate a life pattern.
@@ -3642,7 +4316,9 @@ The following is a list of the integrated video plug-ins.
 \item [F\_mandelbrot]~\\Render a Mandelbrot fractal.
 \item [F\_mcdeint]~\\Applies motion compensating
   deinterlacing.
+\item [F\_median]~\\Pick median pixel from rectangle defined by radius.
 \item [F\_mestimate]~\\Generate motion vectors.
+\item [F\_monochrome]~\\Convert video to gray using custom color filter.
 \item [F\_mpdecimate]~\\Remove near-duplicate frames.
 \item [F\_mptestsrc]~\\Generate various test pattern.
 \item [F\_negate]~\\Negates input video.
@@ -3662,6 +4338,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_perms]~\\Set permissions for the output video frame.
 \item [F\_perspective]~\\Corrects the perspective of video.
 \item [F\_phase]~\\Phases shift fields.
+\item [F\_photosensitivity]~\\Filter out photosensitive epilepsy seizure-inducing flashes.
 \item [F\_pixscope]~\\Pixel data analysis for checking color
   and levels. It will display sample values of color channels.
 \item [F\_pp]~\\Filters video using libpostproc.
@@ -3685,20 +4362,34 @@ The following is a list of the integrated video plug-ins.
 \item [F\_sab]~\\Applies shape adaptive blur.
 \item [F\_scale]~\\Scale the input video size and/or convert
   the image format.
+\item [F\_scdet]~\\Detect video scene change.
+\item [F\_scroll]~\\Scroll input video horizontally and/or vertically by constant speed.
 \item [F\_separatefields]~\\Split input video frames into
   fields.
 \item [F\_setparams]~\\Force field, or color property for the
   output video frame.
 \item [F\_setrange]~\\Force color range for the output video
   frame.
+\item [F\_shear]~\\Shear transform the input image.
 \item [F\_showpalette]~\\Display frame palette.
 \item [F\_shuffleframes]~\\Shuffles video frames.
+\item [F\_shufflepixels]~\\Shuffles video pixels.
 \item [F\_shuffleplanes]~\\Shuffles video planes.
+\item [F\_sierpinski]~\\Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
 \item [F\_signalstats]~\\Separates statistics from video
   analysis.
+\index{over sharpened footage}
 \item [F\_smartblur]~\\Blurs the input video without impacting
   the outlines. Through the settings you can select the radius, the
-  strength and the threshold of luma and chroma.
+  strength and the threshold of luma and chroma. This plugin can be used to correct 
+  over sharpened footage.  For example, on a DJI 3840x2160 D-cinelike footage using
+  these settings:
+\begin{itemize}
+       \item luma radius: 3.247993
+       \item luma strength: 0.360153
+       \item luma threshold: -2
+\end{itemize}
+  the over-sharpened edges will be smoothed. All other settings are at default values.
 \item [F\_smptebars]~\\Generate SMPTE color bars.
 \item [F\_smptehdbars]~\\Generate SMPTE HD color bars.
 \item [F\_sobel]~\\Applies sobel operator.
@@ -3711,15 +4402,20 @@ The following is a list of the integrated video plug-ins.
 \item [F\_tblend]~\\Blend successive frames.
 \item [F\_testsrc]~\\Generate test pattern.
 \item [F\_testsrc2]~\\Generate another test pattern.
+\item [F\_thistogram]~\\Compute and draw a color distribution histogram for the input video across time.
 \item [F\_tile]~\\Tile several successive frames together.
 \item [F\_tinterlace]~\\Performs temporal field interlacing.
 \item [F\_tlut2]~\\Compute and apply a lookup table from 2
   successive frames.
+\item [F\_tmedian]~\\Pick median pixels from successive frames.
+\item [F\_tmidequalizer]~\\Apply Temporal Midway Equalization.
 \item [F\_tmix]~\\Mix successive video frames.
 \item [F\_transpose]~\\Transposes input video.
 \item [F\_unsharp]~\\Sharpen or blur the input videlo.
+\item [F\_untile]~\\Untile a frame into a sequence of frames.
 \item [F\_uspp]~\\Applies Ultra Simple/Slow Post-processing
   filter.
+\item [F\_v360]~\\Convert 360 videos between various formats.
 \item [F\_vaguedenoiser]~\\Applies a Wavelet based Denoiser.
 \item [F\_vectorscope]~\\Video vectorscope.
 \item [F\_vflip]~\\Flips the input video vertically.
@@ -3735,6 +4431,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_weave]~\\Weaves input video fields into frames.
 \item [F\_xbr]~\\Scales the input using $xBR$ algorithm.
 \item [F\_yadif]~\\Deinterlaces the input image.
+\item [F\_yaepblur]~\\Yet another edge preserving blur filter.
 \item [F\_yuvtestsrc]~\\Generate YUV test pattern.
 \item [F\_zoompan]~\\Applies Zoom \& Pan effect.
 \end{description}
@@ -3742,6 +4439,7 @@ The following is a list of the integrated video plug-ins.
 
 \section[Rendered Effects]{Rendered Effects}%
 \label{sec:rendered_effects}
+\index{plugins!rendered effects}
 
 Besides the \textit{Realtime} effects, as has been described in the previous sections, another type of effect is performed on a section of the track and the result stored somewhere before it is played back. The result is usually pasted into the track to replace the original data. The rendered effects are not listed in the resources window but instead are accessed through the \texttt{Audio $\rightarrow$ Render effect and Video $\rightarrow$ Render effect} menu options. Each of these menu options brings up a dialog for the rendered effect. In the Select an effect dialog is a list of all the realtime and all the rendered effects. The difference here is that the realtime effects are rendered to disk and not applied under the track. Rendered effects apply to only one type of track, either audio or video. If no tracks of the type exist, an error pops up.
 
@@ -3776,6 +4474,10 @@ If the scale factor is $2$, every $2$ input samples will be reduced to $1$ outpu
 \subsubsection*{Time Stretch}%
 \label{ssub:time_stretch}
 
+\subsubsection*{CD Ripper}%
+\label{ssub:cd_ripper}
+
+
 \subsection{Rendered Video Effects}%
 \label{sub:renederd_video_effets}
 
@@ -3796,9 +4498,6 @@ To create a slow-motion of fast moving video:
     \item At the popup menu, enter the \textit{scale factor} $2$ to run twice as fast, and $0.5$ to run at half speed.
 \end{itemize}
 
-\subsubsection*{CD Ripper}%
-\label{ssub:cd_ripper}
-
 \subsubsection*{720 to 480}%
 \label{ssub:720_to_480}