Andrea added Speed PerCent plugin
[goodguy/cin-manual-latex.git] / parts / Plugins.tex
index c86f1edc1deb4839d8f438a7e5bb86b8465720c7..19c57f5786694692631f326cc8f82ae5ad465dc6 100644 (file)
@@ -44,11 +44,13 @@ 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 \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 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} \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.
+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 \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.
 
@@ -192,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}
 
@@ -510,7 +521,7 @@ Audio sampling (time data) is converted to a frequency spectrum using FFT (\text
 
 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 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).
@@ -1930,7 +1941,7 @@ Curves are generally adjusted by introducing several control points, some to be
 
 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}):
 
@@ -2143,7 +2154,7 @@ To save time the motion result can be saved in a file for later reuse, recalled
        \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 \textit{master} layer and adjusts $X$ and $Y$ motion in the \textit{target} layer.
@@ -2565,6 +2576,12 @@ position a little so that the answers are not exactly zero.
 
 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}
@@ -2625,7 +2642,7 @@ 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}
@@ -2650,7 +2667,7 @@ 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.
+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}
@@ -2666,7 +2683,7 @@ Downsample mode changes the frame rate of the input as well as the number of the
 \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 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}
@@ -2944,6 +2961,12 @@ 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}
@@ -3026,6 +3049,12 @@ 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}
@@ -3670,13 +3699,13 @@ cin/plugins/opencv/stylizeobj.plugin
 
 The location for most User installs is:
 
-\hspace{4em}\texttt{<cinlib\_path>/plugins/}
+\hspace{4em}\texttt{<cinlib\_path>/plugins/video}
 
 Location for some System installs is:
 
-\hspace{4em}\texttt{/usr/lib/cin/plugins/} (most ubuntu distros)
+\hspace{4em}\texttt{/usr/lib/cin/plugins/video} (most ubuntu distros)
 
-\hspace{4em}\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}
@@ -4006,14 +4035,18 @@ The following is a list of the integrated audio plug-ins\protect\footnote{credit
 \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.
@@ -4022,6 +4055,7 @@ The following is a list of the integrated audio plug-ins\protect\footnote{credit
 \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
@@ -4029,7 +4063,14 @@ The following is a list of the integrated audio plug-ins\protect\footnote{credit
 \item [F\_astats]~\\Shows time domain statistics about audio
   frames.
 \item [F\_asubboost]~\\Boost subwoofer frequencies.
-\item [F\_atempo]~\\Adjusts audio tempo.
+\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
@@ -4134,16 +4175,23 @@ The following is a list of the integrated video plug-ins \protect\footnote{credi
 \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.
@@ -4195,9 +4243,12 @@ The following is a list of the integrated video plug-ins \protect\footnote{credi
 \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
@@ -4236,6 +4287,7 @@ The following is a list of the integrated video plug-ins \protect\footnote{credi
   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.
@@ -4259,6 +4311,7 @@ The following is a list of the integrated video plug-ins \protect\footnote{credi
   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.
@@ -4310,8 +4363,10 @@ The following is a list of the integrated video plug-ins \protect\footnote{credi
   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
@@ -4346,6 +4401,7 @@ The following is a list of the integrated video plug-ins \protect\footnote{credi
 \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.
@@ -4411,6 +4467,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}
 
@@ -4431,9 +4491,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}