r134: Heroine Virtual's release 1.1.8
[cinelerra_cv/mob.git] / hvirtual / doc / cinelerra.html
blob949eca0a3797d150829478655c165b0ce6a1fe39
1 <html lang="en">
2 <head>
3 <title>Secrets of Cinelerra</title>
4 <meta http-equiv="Content-Type" content="text/html">
5 <meta name="description" content="Secrets of Cinelerra">
6 <meta name="generator" content="makeinfo 4.3">
7 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home">
8 </head>
9 <body>
10 <h1 class="settitle">Secrets of Cinelerra</h1>
11 <div class="node">
12 <p><hr>
13 Node:<a name="Top">Top</a>,
14 Next:<a rel="next" accesskey="n" href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>,
15 Up:<a rel="up" accesskey="u" href="#dir">(dir)</a>
16 <br>
17 </div>
19 <h2 class="unnumbered"></h2>
22 <div class="contents">
23 <h2>Table of Contents</h2>
24 <ul>
25 <li><a name="toc_Top" href="#Top"></a>
26 <li><a name="toc_ABOUT%20CINELERRA" href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>
27 <ul>
28 <li><a href="#ABOUT%20THIS%20MANUAL">ABOUT THIS MANUAL</a>
29 </li></ul>
30 <li><a name="toc_INSTALLATION" href="#INSTALLATION">INSTALLATION</a>
31 <ul>
32 <li><a href="#INSTALLING%20AN%20RPM">INSTALLING AN RPM</a>
33 <li><a href="#COMPILING%20FROM%20SCRATCH">COMPILING FROM SCRATCH</a>
34 </li></ul>
35 <li><a name="toc_CONFIGURATION" href="#CONFIGURATION">CONFIGURATION</a>
36 <ul>
37 <li><a href="#ENVIRONMENT%20VARIABLES">ENVIRONMENT VARIABLES</a>
38 <li><a href="#PLAYBACK">PLAYBACK</a>
39 <ul>
40 <li><a href="#AUDIO%20OUT">AUDIO OUT</a>
41 <li><a href="#VIDEO%20OUT">VIDEO OUT</a>
42 </li></ul>
43 <li><a href="#RECORDING">RECORDING</a>
44 <ul>
45 <li><a href="#AUDIO%20IN">AUDIO IN</a>
46 <li><a href="#VIDEO%20IN">VIDEO IN</a>
47 </li></ul>
48 <li><a href="#PERFORMANCE">PERFORMANCE</a>
49 <ul>
50 <li><a href="#BACKGROUND%20RENDERING">BACKGROUND RENDERING</a>
51 <li><a href="#RENDERFARM">RENDERFARM</a>
52 </li></ul>
53 <li><a href="#INTERFACE">INTERFACE</a>
54 <li><a href="#ABOUT">ABOUT</a>
55 </li></ul>
56 <li><a name="toc_THE%20MAIN%20WINDOWS" href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>
57 <li><a name="toc_LOADING%20AND%20SAVING%20FILES" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
58 <ul>
59 <li><a href="#LOADING%20FILES">LOADING FILES</a>
60 <ul>
61 <li><a href="#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS</a>
62 <li><a href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>
63 <li><a href="#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES</a>
64 </li></ul>
65 <li><a href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>
66 <li><a href="#SAVING%20FILES">SAVING FILES</a>
67 <li><a href="#RENDERING%20FILES">RENDERING FILES</a>
68 <ul>
69 <li><a href="#SINGLE%20FILE%20RENDERING">SINGLE FILE RENDERING</a>
70 <li><a href="#BATCH%20RENDERING">BATCH RENDERING</a>
71 <li><a href="#THE%20RENDER%20FARM">THE RENDER FARM</a>
72 </li></ul>
73 </li></ul>
74 <li><a name="toc_NAVIGATING%20THE%20PROJECT" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
75 <ul>
76 <li><a href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
77 <ul>
78 <li><a href="#THE%20INSERTION%20POINT">THE INSERTION POINT</a>
79 <li><a href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>
80 <li><a href="#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW</a>
81 </li></ul>
82 <li><a href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>
83 <li><a href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>
84 <li><a href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>
85 <li><a href="#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING</a>
86 </li></ul>
87 <li><a name="toc_EDITING" href="#EDITING">EDITING</a>
88 <ul>
89 <li><a href="#THE%20PATCHBAY">THE PATCHBAY</a>
90 <li><a href="#NUDGING%20TRACKS">NUDGING TRACKS</a>
91 <li><a href="#MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>
92 <li><a href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>
93 <li><a href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>
94 <li><a href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>
95 <li><a href="#TRIMMING">TRIMMING</a>
96 </li></ul>
97 <li><a name="toc_USING%20EFFECTS" href="#USING%20EFFECTS">USING EFFECTS</a>
98 <ul>
99 <li><a href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>
100 <ul>
101 <li><a href="#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES</a>
102 <li><a href="#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS</a>
103 </li></ul>
104 <li><a href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>
105 <li><a href="#TRANSITIONS">TRANSITIONS</a>
106 <li><a href="#LADSPA%20EFFECTS">LADSPA EFFECTS</a>
107 </li></ul>
108 <li><a name="toc_SETTING%20PROJECT%20ATTRIBUTES" href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>
109 <li><a name="toc_COMPOSITING" href="#COMPOSITING">COMPOSITING</a>
110 <ul>
111 <li><a href="#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR</a>
112 <li><a href="#MASKS">MASKS</a>
113 <li><a href="#CROPPING">CROPPING</a>
114 <li><a href="#SAFE%20REGIONS">SAFE REGIONS</a>
115 <li><a href="#OVERLAY%20MODES">OVERLAY MODES</a>
116 <li><a href="#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES</a>
117 </li></ul>
118 <li><a name="toc_KEYFRAMES" href="#KEYFRAMES">KEYFRAMES</a>
119 <ul>
120 <li><a href="#CURVE%20KEYFRAMES">CURVE KEYFRAMES</a>
121 <li><a href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>
122 <li><a href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>
123 <li><a href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>
124 <li><a href="#EDITING%20KEYFRAMES">EDITING KEYFRAMES</a>
125 </li></ul>
126 <li><a name="toc_CAPTURING%20MEDIA" href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>
127 <ul>
128 <li><a href="#BATCHES">BATCHES</a>
129 <li><a href="#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION</a>
130 </li></ul>
131 <li><a name="toc_IMPROVING%20PERFORMANCE" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
132 <ul>
133 <li><a href="#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE</a>
134 <li><a href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>
135 <li><a href="#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>
136 <li><a href="#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>
137 <li><a href="#DISABLING%20CRON">DISABLING CRON</a>
138 <li><a href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>
139 <li><a href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>
140 <li><a href="#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>
141 <li><a href="#IMPROVING%20ZORAN%20VIDEO">IMPROVING ZORAN VIDEO</a>
142 </li></ul>
143 <li><a name="toc_TROUBLESHOOTING" href="#TROUBLESHOOTING">TROUBLESHOOTING</a>
144 <ul>
145 <li><a href="#BUZ%20DRIVER%20CRASHES">BUZ DRIVER CRASHES</a>
146 <li><a href="#DRAGGING%20IN%20AND%20OUT%20POINTS%20DOESN'T%20WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK</a>
147 <li><a href="#SYNCHRONIZATION%20LOST%20WHILE%20RECORDING">SYNCHRONIZATION LOST WHILE RECORDING</a>
148 </li></ul>
149 <li><a name="toc_SECRETS%20OF%20CINELERRA" href="#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA</a>
150 <ul>
151 <li><a href="#DOLBY%20PRO%20LOGIC%20ENCODING">DOLBY PRO LOGIC ENCODING</a>
152 <li><a href="#ANALOG%20TV%20CLEANING">ANALOG TV CLEANING</a>
153 <li><a href="#DEFEATING%20INTERLACING">DEFEATING INTERLACING</a>
154 <li><a href="#MAKING%20VIDEO%20LOOK%20LIKE%20FILM">MAKING VIDEO LOOK LIKE FILM</a>
155 <li><a href="#CLEARING%20OUT%20HAZE">CLEARING OUT HAZE</a>
156 </li></ul>
157 <li><a name="toc_EFFECT%20DESCRIPTIONS" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
158 <ul>
159 <li><a href="#CHROMA%20KEY">CHROMA KEY</a>
160 <li><a href="#DEINTERLACE">DEINTERLACE</a>
161 <li><a href="#HISTOGRAM">HISTOGRAM</a>
162 <li><a href="#INVERSE%20TELECINE">INVERSE TELECINE</a>
163 <li><a href="#TIME%20AVERAGE">TIME AVERAGE</a>
164 <li><a href="#TITLER">TITLER</a>
165 <ul>
166 <li><a href="#ADDING%20FONTS%20TO%20THE%20TITLER">ADDING FONTS TO THE TITLER</a>
167 <li><a href="#THE%20TITLE-SAFE%20REGION">THE TITLE-SAFE REGION</a>
168 </li></ul>
169 <li><a href="#VIDEO%20SCOPE">VIDEO SCOPE</a>
170 </li></ul>
171 <li><a name="toc_PLUGIN%20AUTHORING" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
172 <ul>
173 <li><a href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
174 <ul>
175 <li><a href="#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT</a>
176 <li><a href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>
177 <li><a href="#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT</a>
178 </li></ul>
179 <li><a href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>
180 <li><a href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>
181 <li><a href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>
182 <li><a href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>
183 <li><a href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>
184 <li><a href="#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>
185 <li><a href="#PLUGIN%20QUERIES">PLUGIN QUERIES</a>
186 </li></ul>
187 <li><a name="toc_RELEASE%20NOTES" href="#RELEASE%20NOTES">RELEASE NOTES</a>
188 </li></ul>
189 </div>
191 <ul class="menu">
192 <li><a accesskey="1" href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>: Cinelerra in brief.
193 <li><a accesskey="2" href="#INSTALLATION">INSTALLATION</a>: Making Cinelerra work on your system.
194 <li><a accesskey="3" href="#CONFIGURATION">CONFIGURATION</a>: Adjusting the behavior of Cinelerra.
195 <li><a accesskey="4" href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>: The most often used user interface.
196 <li><a accesskey="5" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>: Moving media between disk and Cinelerra.
197 <li><a accesskey="6" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>: Moving around the media.
198 <li><a accesskey="7" href="#EDITING">EDITING</a>: Moving the media in time.
199 <li><a accesskey="8" href="#USING%20EFFECTS">USING EFFECTS</a>: Altering the media.
200 <li><a accesskey="9" href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>: Changing the way the media is displayed.
201 <li><a href="#COMPOSITING">COMPOSITING</a>: Overlaying different sources of video.
202 <li><a href="#KEYFRAMES">KEYFRAMES</a>: Making effects change over time.
203 <li><a href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>: Moving media from the real world to disk.
204 <li><a href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>: Making Cinelerra run better on Linux.
205 <li><a href="#TROUBLESHOOTING">TROUBLESHOOTING</a>: Problems with Cinelerra.
206 <li><a href="#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA</a>: Unusual applications of Cinelerra to common problems.
207 <li><a href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>: How to use the more complicated effects.
208 <li><a href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>: How to write new effects.
209 <li><a href="#RELEASE%20NOTES">RELEASE NOTES</a>: Changes in the most recent versions of Cinelerra.
210 </ul>
212 <div class="node">
213 <p><hr>
214 Node:<a name="ABOUT%20CINELERRA">ABOUT CINELERRA</a>,
215 Next:<a rel="next" accesskey="n" href="#INSTALLATION">INSTALLATION</a>,
216 Previous:<a rel="previous" accesskey="p" href="#Top">Top</a>,
217 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
218 <br>
219 </div>
221 <h2 class="chapter">ABOUT CINELERRA</h2>
223 <p>For years some people have wanted a way to edit their audio and video
224 in one place as fluidly as writing text. Cinelerra tries to be a
225 single location for all audio and video editing needs. All the
226 recording, editing, and playback are handled here. It can be used as
227 an audio player. It can be used to record audio or video. It can even
228 be used as a photo retoucher.
230 <p>There are two types of moviegoers: producers who create new content,
231 going back over their content at future points for further refinement,
232 and consumers who want to acquire the content and watch it. Cinelerra
233 is not intended for consumers. Cinelerra has many features for
234 uncompressed content, high resolution processing, and compositing, with
235 very few shortcuts. Producers need these features because of the need
236 to retouch many generations of footage with alterations to the format,
237 which makes Cinelerra very complex. There are many more standard tools
238 for consumers like MainActor, Kino, or Moxy, which you should consider
239 before using Cinelerra.
241 <p>In 1996 our first editor came out: Broadcast 1.0. It was just a window
242 with a waveform in it, it could cut and paste stereo audio waveforms on
243 a UNIX box, except unlike other audio editors it could handle files up
244 to 2 gigabytes with only 64 megs of RAM. That was a feature normally
245 only accessible to the highest end professional audio houses.
247 <p>In 1997 Broadcast 1.0 was replaced by Broadcast 2.0. This time the
248 window had a menubar, patchbay, console, and transport control.
249 Broadcast 2.0 still only handled audio but this time it handled
250 unlimited tracks, and it could perform effects on audio and save the
251 resulting waveform to disk. More notably a few effects could be
252 performed as the audio was playing back, in realtime. A user could mix
253 unlimited numbers of tracks, adjust fade, pan, and EQ, and hear the
254 result instantly. Amazingly this real time tweeking is still
255 unavailable on most audio programs.
257 <p>But Broadcast 2.0 still didn't handle video and it wasn't very graceful
258 at audio either. In 1999 video broke into the story with Broadcast
259 2000. This iteration of the Broadcast series could do wonders with
260 audio and offered a pretty good video feature set. It could edit video
261 files up to 64 terabytes. It could do everything Broadcast 2.1 did
262 with audio except now all effects for video and audio could be chained
263 and performed on the fly, with instant feedback as a user tweeked
264 parameters during playback. Broadcast 2000 made it very easy to do a
265 lot of processing and editing on video and audio that would otherwise
266 involve many hours setting up command line sequences and writing to
267 disk. For a time it seemed as if the original dream of immersive movie
268 making for everyone regardless of income level had arrived.
270 <p>Later on Broadcast 2000 began to come short. Its audio and video was
271 graceful if you knew how to use it efficiently, but quality issues and
272 new user interface techniques were emerging. Broadcast 2000 kept the
273 audio interface from its ancestors, which didn't apply well to video.
274 Users likewise were maturing. No longer would it be sufficient to just
275 edit video on a UNIX box. Most users expected on UNIX the same thing
276 they got in Win or Mac. In mid 2000 designs for a Broadcast 2000
277 replacement were drafted. The Broadcast name was officially retired
278 from the series and the software would now be called Cinelerra.
279 Cinelerra would allow users to configure certain effects in much less
280 time than required with Broadcast 2000. It would begin to emulate some
281 of the features found in Win and Mac software while not attempting to
282 become a clone. It's interface would be designed for video from the
283 ground up, while supplementing that with the Broadcast audio
284 interface. As always, quality improvements would happen.
286 <ul class="menu">
287 <li><a accesskey="1" href="#ABOUT%20THIS%20MANUAL">ABOUT THIS MANUAL</a>:
288 </ul>
290 <div class="node">
291 <p><hr>
292 Node:<a name="ABOUT%20THIS%20MANUAL">ABOUT THIS MANUAL</a>,
293 Up:<a rel="up" accesskey="u" href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>
294 <br>
295 </div>
297 <h3 class="section">ABOUT THIS MANUAL</h3>
299 <p>Like the operating system and compiler for a piece of software, the
300 document writing format is the most important thing in choosing our
301 document format. A piece of software which compiles on GCC and Linux
302 will be usable as long as there are C compilers. Documents written in
303 Texinfo will be readable as long as there's a C compiler.
305 <p>After many years of searching for the perfect documentation format
306 we've arrived at TexInfo. This format can be converted to HTML,
307 printed, automatically indexed, but most importantly is not bound to
308 any commercial word processor.
310 <p>There are no screenshots in this manual. Screenshots become obsolete
311 quickly and as a result confuse the users. What looks one way in a
312 screenshot will always look different in the real program because the
313 real program and the manual are always evolving, never perfectly
314 synchronized. It is true that manuals should have screenshots, but our
315 objective in omitting screenshots is to keep the software costs minimal
316 so you don't have to pay for it. That includes additional labor to
317 synchronize the manual with the software.
319 <p>In addition to telling you the basic editing features of Cinelerra this
320 manual covers tricks that won't be described anywhere else. We're
321 going to try to come up with certain things you can do with Cinelerra
322 that you wouldn't think of on your own.
324 <div class="node">
325 <p><hr>
326 Node:<a name="INSTALLATION">INSTALLATION</a>,
327 Next:<a rel="next" accesskey="n" href="#CONFIGURATION">CONFIGURATION</a>,
328 Previous:<a rel="previous" accesskey="p" href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>,
329 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
330 <br>
331 </div>
333 <h2 class="chapter">INSTALLATION</h2>
335 <p>The Cinelerra package contains Cinelerra and most of the libraries
336 needed to run it. We try to include all the dependancies because of
337 the difficulty in tracking down the right versions. Also included are
338 some utilities for handling files. The following are the general
339 contents of all Cinelerra packages.
341 <ul>
343 <li>
344 <b>Foreign language translations</b> - These go into /usr/share/locale.
346 <li>
347 <b>Cinelerra executable</b> - This goes into /usr/bin
349 <li>
350 <b>Cinelerra plugins</b> - These go into /usr/lib/cinelerra
352 <li>
353 <b>soundtest</b> - Utility for determining sound card buffer size.
355 <li>
356 <b>mplexhi</b> - Multiplexing of MPEG elementary streams with standards conformance.
358 <li>
359 <b>mplexlo</b> - Multiplexing of MPEG elementary streams without standards
360 conformance but more efficiently.
362 <li>
363 <b>mpeg3toc</b> - Utility for indexing and reading MPEG files.
365 </ul>
367 <ul class="menu">
368 <li><a accesskey="1" href="#INSTALLING%20AN%20RPM">INSTALLING AN RPM</a>:
369 <li><a accesskey="2" href="#COMPILING%20FROM%20SCRATCH">COMPILING FROM SCRATCH</a>:
370 </ul>
372 <div class="node">
373 <p><hr>
374 Node:<a name="INSTALLING%20AN%20RPM">INSTALLING AN RPM</a>,
375 Next:<a rel="next" accesskey="n" href="#COMPILING%20FROM%20SCRATCH">COMPILING FROM SCRATCH</a>,
376 Up:<a rel="up" accesskey="u" href="#INSTALLATION">INSTALLATION</a>
377 <br>
378 </div>
380 <h3 class="section">INSTALLING AN RPM</h3>
382 <p>Cinelerra is best installed by downloading an RPM and running
384 <pre class="example"> rpm -U --force --nodeps hvirtual*.rpm
385 </pre>
387 <p>on a RedHat system.
389 <p>On systems which don't support RPM look for a utility called
390 <em>rpm2cpio</em>. Download a Cinelerra RPM and from the /
391 directory run
393 <pre class="example"> rpm2cpio hvirtual*.rpm | cpio -i --make-directories
394 </pre>
396 <div class="node">
397 <p><hr>
398 Node:<a name="COMPILING%20FROM%20SCRATCH">COMPILING FROM SCRATCH</a>,
399 Previous:<a rel="previous" accesskey="p" href="#INSTALLING%20AN%20RPM">INSTALLING AN RPM</a>,
400 Up:<a rel="up" accesskey="u" href="#INSTALLATION">INSTALLATION</a>
401 <br>
402 </div>
404 <h3 class="section">COMPILING FROM SCRATCH</h3>
406 <p>It should be noted that the compiler used in building Cinelerra
407 binaries is the free GNU compiler and very conservative optimization
408 flags. You can try different compilers and optimization flags by
409 compiling the source but this is hard.
411 <p>The compilation is verified on a vanilla RedHat 9.0 installation,
412 workstation mode. RedHat 9.0 doesn't install <b>nasm</b>. This has to be
413 installed manually for compilation to succeed. Compiling the source is
414 hard and there's no warranty if the source code fails to compile, but
415 the method for compiling starts by downloading the source code and
416 decompressing.
418 <pre class="example"> tar jxf cinelerra*.tar.bz2
419 </pre>
421 <p>Enter the hvirtual directory
423 <pre class="example"> cd cinelerra
424 </pre>
426 <p>and set the CFLAGS environment variable. The flags for the GCC
427 compiler are constantly changing. These are our most recent flags.
428 For Pentium II use:
430 <pre class="example"> export CFLAGS='-O3 -march=i686 -fmessage-length=0 -funroll-all-loops -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2'
431 </pre>
433 <p>For Pentium I and old AMD's use:
435 <pre class="example"> export CFLAGS='-O3 -fmessage-length=0 -funroll-all-loops -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2'
436 </pre>
438 <p>For new AMD's use:
440 <pre class="example"> export CFLAGS='-O3 -march=athlon -fmessage-length=0 -funroll-all-loops -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2'
441 </pre>
443 <p>Then run
445 <pre class="example"> ./configure
446 </pre>
448 <p>This checks the build environment for the right tools and should give
449 you an error if a tool is missing. Once that succeeds run
451 <pre class="example"> make
452 </pre>
454 <p>The make procedure should run through all the directories and put
455 binaries in the <em>i686</em> directories. When we originally supported
456 Alpha it was convenient to compile Alpha and i686 binaries
457 simultaneously, in different directories, so all the binaries are put in
458 subdirectories.
460 <p>Once finished run
462 <pre class="example"> make install
463 </pre>
465 <p>to install the binaries. The output is put in the following directories:
467 <ul>
468 <li>Executables -&gt; /usr/bin
469 <li>Plugins -&gt; /usr/lib/cinelerra
470 <li>Translations -&gt; /usr/share/locale/*/LC_MESSAGES/cinelerra.mo
471 </ul>
473 <p>The main binaries are /usr/bin/cinelerra and several utilities for
474 reading MPEG transport streams.
476 <p>Run Cinelerra by running
478 <pre class="example"> /usr/bin/cinelerra
479 </pre>
481 <div class="node">
482 <p><hr>
483 Node:<a name="CONFIGURATION">CONFIGURATION</a>,
484 Next:<a rel="next" accesskey="n" href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>,
485 Previous:<a rel="previous" accesskey="p" href="#INSTALLATION">INSTALLATION</a>,
486 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
487 <br>
488 </div>
490 <h2 class="chapter">CONFIGURATION</h2>
492 <p>Because of the variety of uses, Cinelerra cannot be run optimally
493 without some intimate configuration for your specific needs. Very few
494 parameters are adjustible at compile time. Runtime configuration is
495 the only option for most configuration because of the multitude of
496 parameters.
498 <p>Go to <em>settings-&gt;preferences</em> and run through the options.
500 <ul class="menu">
501 <li><a accesskey="1" href="#ENVIRONMENT%20VARIABLES">ENVIRONMENT VARIABLES</a>: These environment variables are recognized by Cinelerra
502 <li><a accesskey="2" href="#PLAYBACK">PLAYBACK</a>: Configuring parameters related to playback.
503 <li><a accesskey="3" href="#RECORDING">RECORDING</a>: Configuring parameters related to recording.
504 <li><a accesskey="4" href="#PERFORMANCE">PERFORMANCE</a>: Configuring parameters related to how fast things go.
505 <li><a accesskey="5" href="#INTERFACE">INTERFACE</a>: Configuring the user interface.
506 <li><a accesskey="6" href="#ABOUT">ABOUT</a>: Viewing information about the program.
507 </ul>
509 <div class="node">
510 <p><hr>
511 Node:<a name="ENVIRONMENT%20VARIABLES">ENVIRONMENT VARIABLES</a>,
512 Next:<a rel="next" accesskey="n" href="#PLAYBACK">PLAYBACK</a>,
513 Up:<a rel="up" accesskey="u" href="#CONFIGURATION">CONFIGURATION</a>
514 <br>
515 </div>
517 <h3 class="section">ENVIRONMENT VARIABLES</h3>
519 <p>In UNIX derivatives, environment variables are global variables in the
520 shell which all applications can read. They are set with a command
521 like <b>set VARIABLE=value</b>. All the environment variables can be
522 viewed with a command like <b>env</b>. Cinelerra recognizes the following
523 environment variables:
525 <ul>
527 <li><b>LADSPA_PATH</b> - A colon separated list of directories to search
528 for LADSPA plugins. These are not native Cinelerra plugins.
529 See <a href="#LADSPA%20EFFECTS">LADSPA EFFECTS</a>.
531 <li><b>GLOBAL_PLUGIN_DIR</b> - The directory Cinelerra should look for
532 native plugins in. The default is /usr/lib/cinelerra but you may need an
533 alternate directory if you're sharing the same executable directory
534 among many machines via NFS. Plugins of different binary formats need
535 to be in different directories.
537 </ul>
539 <div class="node">
540 <p><hr>
541 Node:<a name="PLAYBACK">PLAYBACK</a>,
542 Next:<a rel="next" accesskey="n" href="#RECORDING">RECORDING</a>,
543 Previous:<a rel="previous" accesskey="p" href="#ENVIRONMENT%20VARIABLES">ENVIRONMENT VARIABLES</a>,
544 Up:<a rel="up" accesskey="u" href="#CONFIGURATION">CONFIGURATION</a>
545 <br>
546 </div>
548 <h3 class="section">PLAYBACK</h3>
550 <ul class="menu">
551 <li><a accesskey="1" href="#AUDIO%20OUT">AUDIO OUT</a>:
552 <li><a accesskey="2" href="#VIDEO%20OUT">VIDEO OUT</a>:
553 </ul>
555 <div class="node">
556 <p><hr>
557 Node:<a name="AUDIO%20OUT">AUDIO OUT</a>,
558 Next:<a rel="next" accesskey="n" href="#VIDEO%20OUT">VIDEO OUT</a>,
559 Up:<a rel="up" accesskey="u" href="#PLAYBACK">PLAYBACK</a>
560 <br>
561 </div>
563 <h4 class="subsection">AUDIO OUT</h4>
565 <p>These determine what happens when you play sound from the timeline.
567 <ul>
569 <li>SAMPLES TO READ FROM DISK
571 <p>Cinelerra uses a pipeline for rendering audio. The first stage is
572 reading large chunks of audio from disk, the samples to read from
573 disk. This is followed by processing small fragments in a virtual
574 console.
576 </p><li>SAMPLES TO SEND TO CONSOLE:
578 <p>The second stage is rendering small fragments through the virtual
579 console to the sound driver. A larger value here causes more latency
580 when you change mixing parameters but gives more reliable playback.
582 <p>Some sound drivers don't allow changing of the console fragment so
583 latency is unchanged no matter what this value is.
585 </p><li>
586 VIEW FOLLOWS PLAYBACK
588 <p>Causes the timeline window to scroll when the playback cursor moves out
589 of view. This can bog down the X Server.
591 </p><li>USE SOFTWARE FOR POSITIONING INFORMATION
593 <p>Most soundcards and sound drivers don't give reliable information on
594 the number of samples the card has played. When playing video you need
595 this information for synchronization. This option causes the sound
596 driver to be ignored and a software timer to be used for
597 synchronization.
599 </p><li>AUDIO PLAYBACK IN REALTIME:
601 <p>Back in the days when 150Mhz was the maximum, this allowed
602 uninterrupted playback on heavy loads. Now you'll probably only need it
603 for playing video and audio when the load is to high for uninterrupted
604 audio.
606 </p><li>AUDIO DRIVER
608 <p>There are many sound drivers for Linux. This allows selecting one and
609 setting parameters specific to it. Some of the common parameters for a
610 sound driver are
612 <ul>
614 <li>DEVICE PATH
616 <p>Usually a file in the <em>/dev/</em> directory which controls the
617 device.
619 </p><li>
620 BITS
622 <p>The number of bits of precision Cinelerra should set the device for.
623 This sometimes has a figuritive meaning. Some sound drivers need to be
624 set to 32 bits to perform 24 bit playback and won't play anything when
625 set to 24 bits. Some sound drivers need to be set to 24 bits for 24
626 bit playback.
628 </p><li>
629 CHANNELS
631 <p>The number of channels Cinelerra should set the device for. Regardless
632 of the number of channels in the project, the number of channels set
633 here will be written to the device. When this is set to 2 and the
634 project has 1 channel you'll hear sound through the left speaker and
635 not centered as expected for a monaural project. When this is set to 1
636 and the project has 2 channels you'll hear the left channel centered
637 and not 2 channels mixed together.
639 </ul>
640 </ul>
642 <div class="node">
643 <p><hr>
644 Node:<a name="VIDEO%20OUT">VIDEO OUT</a>,
645 Previous:<a rel="previous" accesskey="p" href="#AUDIO%20OUT">AUDIO OUT</a>,
646 Up:<a rel="up" accesskey="u" href="#PLAYBACK">PLAYBACK</a>
647 <br>
648 </div>
650 <h4 class="subsection">VIDEO OUT</h4>
652 <p>These determine what happens when you play video from the timeline.
654 <ul>
656 <li>
657 FRAMERATE ACHIEVED
659 <p>The number of frames per second being
660 displayed during playback.
662 </p><li>
663 SCALING EQUATION
665 <p>The algorithm used in all video resizing in
666 the virtual console. This doesn't affect scaling to the size of the
667 compositor window.
669 <ul>
671 <li>NEAREST NEIGHBOR ENLARGE AND REDUCE
673 <p>lowest but fastest
674 quality. Produces jagged edges and uneven motion.
676 </p><li>
677 BICUBIC ENLARGE AND BILINEAR REDUCE
679 <p>highest but slowest
680 quality. For enlarging a bicubic interpolation is used, which blurs
681 slightly but doesn't reveal stair steps. For reduction a bilinear
682 interpolation is used, which produces very sharp images and reduces
683 noise. The bilinear reduced images can be sharpened with a sharpen
684 effect with less noise than a normal sized image.
686 </p><li>
687 BILINEAR ENLARGE AND BILINEAR REDUCE
689 <p>when slight enlargement
690 is needed a bilinear enlargement looks better than a bicubic
691 enlargement.
693 </ul>
695 </p><li>
696 PRELOAD BUFFER FOR QUICKTIME
698 <p>The Quicktime/AVI decoder can
699 handle CDROM sources better when this is around 1000000. This reduces
700 the amount of seeking. For normal use this should be 0.
702 </p><li>
703 MPEG-4 DEBLOCKING
705 <p>For assets which are compressed in OpenDivx and Quicktime, this enables
706 deblocking. This greatly improves the picture quality during decoding
707 while slowing it down.
709 </p><li>
710 VIDEO DRIVER
712 <p>Normally video on the timeline goes to the
713 compositor window during continuous playback and when the insertion
714 point is repositioned. Instead of sending video to the Compositor
715 window the video driver can be set to send video to another output
716 device during continuous playback. This doesn't affect where video
717 goes when the insertion point is repositioned, however.
719 <p>Various parameters are given for Video Driver depending on the driver.
721 <ul>
723 <li>
724 DISPLAY
726 <p>The is intended for dual monitor
727 displays. Depending on the value of Display, the Compositor window
728 will appear on a different monitor from the rest of the windows.
730 </p><li>
731 DEVICE PATH
733 <p>Usually a file in the <em>/dev/</em> directory
734 which controls the device.
736 </p><li>
737 SWAP FIELDS
739 <p>Make the even lines odd and the odd lines even
740 when sending to the device. On an NTSC or 1080i monitor the fields may
741 need to be swapped to prevent jittery motion.
743 </p><li>
744 OUTPUT CHANNEL
746 <p>Devices with multiple outputs may need a
747 specific connector to send video on.
749 </p><li>
750 PORT
752 <p>The IEEE1394 standard specifies something known as the
753 <em>port</em>. This is probably the firewire card number in the system
754 to use.
756 </p><li>
757 CHANNEL
759 <p>The IEEE1394 standard specifies something known as the
760 <em>channel</em>. For DV cameras it's always <em>63</em>.
762 </ul>
764 </ul>
766 <div class="node">
767 <p><hr>
768 Node:<a name="RECORDING">RECORDING</a>,
769 Next:<a rel="next" accesskey="n" href="#PERFORMANCE">PERFORMANCE</a>,
770 Previous:<a rel="previous" accesskey="p" href="#PLAYBACK">PLAYBACK</a>,
771 Up:<a rel="up" accesskey="u" href="#CONFIGURATION">CONFIGURATION</a>
772 <br>
773 </div>
775 <h3 class="section">RECORDING</h3>
777 <ul class="menu">
778 <li><a accesskey="1" href="#AUDIO%20IN">AUDIO IN</a>:
779 <li><a accesskey="2" href="#VIDEO%20IN">VIDEO IN</a>:
780 </ul>
782 <div class="node">
783 <p><hr>
784 Node:<a name="AUDIO%20IN">AUDIO IN</a>,
785 Next:<a rel="next" accesskey="n" href="#VIDEO%20IN">VIDEO IN</a>,
786 Up:<a rel="up" accesskey="u" href="#RECORDING">RECORDING</a>
787 <br>
788 </div>
790 <h4 class="subsection">AUDIO IN</h4>
792 <p>These determine what happens when you record audio.
794 <ul>
795 <li>
796 RECORD DRIVER
798 <p>This is used for recording audio in the Record window. It may be
799 shared with the Record Driver for video if the audio and video are
800 wrapped in the same stream. It takes variable parameters depending on
801 the driver. The parameters have the same meaning as they do for
802 playback.
804 <ul>
805 <li>
806 DEVICE PATH
808 <p>Usually a file in the <em>/dev/</em> directory which controls the
809 device.
811 </p><li>
812 BITS
814 <p>The number of bits of precision Cinelerra should set the device for.
815 This sometimes has a figuritive meaning. Some sound drivers need to be
816 set to 32 bits to perform 24 bit recording and won't record anything
817 when set to 24 bits. Some sound drivers need to be set to 24 bits for
818 24 bit recording.
820 </p><li>CHANNELS
822 <p>The number of channels Cinelerra should set the device for. Regardless
823 of the number of channels in the record operation, the number of
824 channels set here will be read from the device. When this is set to 2
825 and the record operation has 1 channel you'll record the left speaker
826 and not a mix of the left and right speakers as expected for a monaural
827 project. When this is set to 1 and the project has 2 channels you'll
828 record the left and right channels mixed into the left speaker and not
829 1 channel spead across two speakers.
831 </ul>
833 </p><li>
834 SAMPLES TO WRITE AT A TIME
836 <p>Audio is first read in small fragments from the device. Many small
837 fragments are combined into a large fragment before writing to disk.
838 The disk writing process is done in a different thread. The value here
839 determines how large the combination of fragments is for each disk
840 write.
842 </p><li>
843 SAMPLE RATE FOR RECORDING
845 <p>Regardless of what the project settings are. This is the sample rate
846 used for recording. This should be the highest the audio device
847 supports.
849 </ul>
851 <div class="node">
852 <p><hr>
853 Node:<a name="VIDEO%20IN">VIDEO IN</a>,
854 Previous:<a rel="previous" accesskey="p" href="#AUDIO%20IN">AUDIO IN</a>,
855 Up:<a rel="up" accesskey="u" href="#RECORDING">RECORDING</a>
856 <br>
857 </div>
859 <h4 class="subsection">VIDEO IN</h4>
861 <p>These determine what happens when you record video.
863 <ul>
864 <li>
865 RECORD DRIVER
867 <p>This is used for recording video in the Record window. It may be
868 shared with the Record Driver for audio if the audio and video are
869 wrapped in the same stream. It takes variable parameters depending on
870 the driver. The parameters have the same meaning as they do for
871 playback.
873 </p><li>
874 FRAMES TO RECORD TO DISK AT A TIME
876 <p>Frames are recorded in a pipeline. First frames are buffered in the
877 device. Then they're read into a larger buffer for writing to disk.
878 The disk writing is done in a different thread as the device reading.
879 For certain codecs the disk writing uses multiple processors. This
880 value determines how many frames are written to disk at a time.
882 </p><li>
883 FRAMES TO BUFFER IN DEVICE
885 <p>The number of frames to store in the device before reading. This
886 determines how much latency there can be in the system before frames
887 are dropped.
889 </p><li>USE SOFTWARE FOR POSITIONING INFORMATION
891 <p>Video uses audio for
893 <p>synchronization but most soundcards don't give accurate position
894 information. This calculates an estimation of audio position in
895 software instead of the hardware for synchronization.
897 </p><li>
898 SYNC DRIVES AUTOMATICALLY
900 <p>For high bitrate recording the drives may be fast enough to store the
901 data but Linux may wait several minutes and stall as it writes several
902 minutes of data at a time. This forces Linux to flush its buffers
903 every second instead of every few minutes and produce slightly better
904 realtime behavior.
906 </p><li>
907 SIZE OF CAPTURED FRAME
909 <p>This is the size of the frames recorded. It is independant of the
910 project frame size because most video devices only record a fixed frame
911 size. If the frame size given here isn't supported by the device it
912 might crash Cinelerra.
914 </p><li>FRAME RATE FOR RECORDING
916 <p>The frame rate recorded is different from the project settings. This
917 sets the recorded frame rate.
919 </ul>
921 <div class="node">
922 <p><hr>
923 Node:<a name="PERFORMANCE">PERFORMANCE</a>,
924 Next:<a rel="next" accesskey="n" href="#INTERFACE">INTERFACE</a>,
925 Previous:<a rel="previous" accesskey="p" href="#RECORDING">RECORDING</a>,
926 Up:<a rel="up" accesskey="u" href="#CONFIGURATION">CONFIGURATION</a>
927 <br>
928 </div>
930 <h3 class="section">PERFORMANCE</h3>
932 <p>You'll spend most of your time configuring this section. The main
933 focus of performance is rendering parameters not available in the
934 rendering dialog.
936 <ul>
938 <li>CACHE ITEMS
940 <p>To speed up rendering, several assets are kept open simultaneously.
941 This determines how many are kept open. A number too large may exhaust
942 your memory pretty fast and result in a crash. A number too small may
943 result in slow playback as assets need to be reopened more frequently.
945 </p><li>
946 SECONDS TO PREROLL RENDERS
948 <p>Some effects need a certain amount of time to settle in. This sets a
949 number of seconds to render without writing to disk before the selected
950 region is rendered. When using the renderfarm you'll sometimes need to
951 preroll to get seemless transitions between the jobs. Every job in a
952 renderfarm is prerolled by this value. This does not affect background
953 rendering, however. Background rendering uses a different preroll
954 value.
956 </p><li>
957 FORCE SINGLE PROCESSOR USE
959 <p>Cinelerra tries to use all processors on the system by default but
960 sometimes you'll only want to use one processor, like in a renderfarm
961 client. This forces only one processer to be used. The operating
962 system, however, usually uses the second processor anyway for disk
963 access so this option is really a 1.25 processor mode. The value of
964 this parameter is used in renderfarm clients.
966 </ul>
968 <ul class="menu">
969 <li><a accesskey="1" href="#BACKGROUND%20RENDERING">BACKGROUND RENDERING</a>:
970 <li><a accesskey="2" href="#RENDERFARM">RENDERFARM</a>:
971 </ul>
973 <div class="node">
974 <p><hr>
975 Node:<a name="BACKGROUND%20RENDERING">BACKGROUND RENDERING</a>,
976 Next:<a rel="next" accesskey="n" href="#RENDERFARM">RENDERFARM</a>,
977 Up:<a rel="up" accesskey="u" href="#PERFORMANCE">PERFORMANCE</a>
978 <br>
979 </div>
981 <h4 class="subsection">BACKGROUND RENDERING</h4>
983 <p>Background rendering was originally concieved to allow HDTV effects to
984 be displayed in realtime. Background rendering causes temporary output
985 to constantly be rendered while the timeline is being modified. The
986 temporary output is played during playack whenever possible. It's very
987 useful for transitions and previewing effects which are too slow to
988 display in a reasonable amount of time. If renderfarm is enabled, the
989 renderfarm is used for background rendering, giving you the potential
990 for realtime effects if enough network bandwidth and CPU nodes exist.
992 <ul>
994 <li>FRAMES PER BACKGROUND RENDERING JOB
996 <p>This only works if renderfarm is being used, otherwise background
997 rendering creates a single job for the entire timeline. The number of
998 frames specified here is scaled to the relative CPU speed of rendering
999 nodes and used in a single renderfarm job. The optimum number is 10 -
1000 30 since network bandwidth is used to initialize each job.
1002 </p><li>FRAMES TO PREROLL BACKGROUND
1004 <p>This is the number of frames to render ahead of each background
1005 rendering job. Background rendering is degraded when preroll is used
1006 since the jobs are small. When using background rendering, this number
1007 is ideally 0. Some effects may require 3 frames of preroll.
1009 </p><li>OUTPUT FOR BACKGROUND RENDERING
1011 <p>Background rendering generates a sequence of image files in a certain
1012 directory. This parameter determines the filename prefix of the image
1013 files. It should be on a fast disk, accessible to every node in the
1014 renderfarm by the same path. Since hundreds of thousands of image
1015 files are usually created, <em>ls</em> commands won't work in the
1016 background rendering directory. The <img src="magnify.png" alt="magnify.png"> browse button for
1017 this option normally won't work either, but the <img src="wrench.png" alt="wrench.png">
1018 configuration button for this option works.
1020 </p><li>FILE FORMAT
1022 <p>The file format for background rendering has to be a sequence of
1023 images. The format of the image sequence determines the quality and
1024 speed of playback. JPEG is good most of the time.
1026 </ul>
1028 <div class="node">
1029 <p><hr>
1030 Node:<a name="RENDERFARM">RENDERFARM</a>,
1031 Previous:<a rel="previous" accesskey="p" href="#BACKGROUND%20RENDERING">BACKGROUND RENDERING</a>,
1032 Up:<a rel="up" accesskey="u" href="#PERFORMANCE">PERFORMANCE</a>
1033 <br>
1034 </div>
1036 <h4 class="subsection">RENDERFARM</h4>
1038 <p>To use the renderfarm set these options. Ignore them for a standalone
1039 system
1041 <ul>
1043 <li>
1044 USE RENDER FARM FOR RENDERING
1046 <p>When selected, all the
1047 <em>file-&gt;render</em> operations use the renderfarm.
1049 </p><li>
1050 NODES
1052 <p>Displays all the nodes on the renderfarm and which ones are active.
1054 <p>Nodes are added by entering the host name of the node, verifying the
1055 value of <em>port</em> and hitting <em>add node</em>.
1057 <p>Computer freaks may be better off editing the
1058 <em>~/.bcast/.Cinelerra_rc</em> file than this if they have hundreds of
1059 nodes. Remember that .Cinelerra_rc is overwritten whenever a copy of
1060 Cinelerra exits.
1062 <p>Select the <em>ON</em> column to activate and deactivate nodes once they
1063 are created.
1065 <p>Nodes may be edited by highlighting a row and hitting <em>apply changes</em>.
1067 </p><li>
1068 HOSTNAME
1070 <p>Edit the hostname of an existing node or enter the hostname of a new
1071 node here.
1073 </p><li>
1074 PORT
1076 <p>Edit the port of an existing node or enter the port of a new node here.
1078 </p><li>
1079 REPLACE NODE
1081 <p>When editing an existing node, hit this to commit the changes to
1082 <em>HOSTNAME</em> and <em>PORT</em>. The changes won't be committed if you
1083 don't hit this button.
1085 </p><li>
1086 ADD NODE
1088 <p>Create a new node with the <em>HOSTNAME</em> and <em>PORT</em> settings.
1090 </p><li>
1091 DELETE NODE
1093 <p>Deletes whatever node is highlighted in the <em>NODES</em> list.
1095 </p><li>
1096 SORT NODES
1098 <p>Sorts the <em>NODES</em> list based on the hostname.
1100 </p><li>
1101 RESET RATES
1103 <p>This sets the framerate for all the nodes to 0. Frame rates are used
1104 to scale job sizes based on CPU speed of the node. Frame rates are
1105 only calculated when renderfarm is enabled.
1107 </p><li>
1108 USE VIRTUAL FILESYSTEM
1110 <p>Normally the directory on the master node containing the source and
1111 destination assets is mounted on the clients. The assets on the
1112 clients should be visible in the same locations as they are on the
1113 master node. This can be hard to set up and requires root access.
1115 <p>A user level version of NFS was built into Cinelerra and called the
1116 Virtual File System. This transparently redirects all file I/O over
1117 the network without requiring a replication of the master node's
1118 directory structure or root access on the client. The client sees the
1119 exact directory structure on the master node but in reality is sending
1120 network packets to access it.
1122 <p>There is a penalty for doing this though, since Virtual Filesystem
1123 isn't as refined as NFS. Operations that access one byte at a time are
1124 really slow.
1126 <p>Certain file format parsers are extemely slow over the Virtual
1127 Filesystem because they access very small amounts of data at a time.
1128 The PCM audio formats do this. These are best rendered using NFS.
1130 <p>Unless you need to run rendering clients without root access or have a
1131 lot of assets in different directories, use NFS instead.
1133 </p><li>
1134 TOTAL JOBS TO CREATE
1136 <p>Determines the number of jobs to dispatch to the renderfarm. The more
1137 jobs you create, the more finely balanced the renderfarm becomes.
1139 <p>Determine the total jobs to create by multiplying the number of nodes
1140 including the master node by some number. Multiply them by 1 to have
1141 one job dispatched for every node. Multiply them by 3 to have 3 jobs
1142 dispatched for every node. If you have 10 slave nodes and one master
1143 node, specify 33 to have a well balanced renderfarm.
1145 </ul>
1147 <div class="node">
1148 <p><hr>
1149 Node:<a name="INTERFACE">INTERFACE</a>,
1150 Next:<a rel="next" accesskey="n" href="#ABOUT">ABOUT</a>,
1151 Previous:<a rel="previous" accesskey="p" href="#PERFORMANCE">PERFORMANCE</a>,
1152 Up:<a rel="up" accesskey="u" href="#CONFIGURATION">CONFIGURATION</a>
1153 <br>
1154 </div>
1156 <h3 class="section">INTERFACE</h3>
1158 <p>These parameters affect purely how the user interface works.
1160 <ul>
1162 <li>
1163 INDEX FILES GO HERE
1165 <p>Back in the days when 4 MB/sec was unearthly speed for a hard drive,
1166 index files were introduced to speed up drawing the audio tracks. This
1167 option determines where index files are placed on the hard drive.
1169 </p><li>
1170 SIZE OF INDEX FILE
1172 <p>Determines the size of an index file. Larger index sizes allow smaller
1173 files to be drawn faster while slowing down the drawing of large files.
1174 Smaller index sizes allow large files to be drawn faster while slowing
1175 down small files.
1177 </p><li>
1178 NUMBER OF INDEX FILES TO KEEP
1180 <p>To keep the index directory from becoming unruly, old index files are
1181 deleted. This determines the maximum number of index files to keep in
1182 the directory.
1184 </p><li>
1185 DELETE ALL INDEXES
1187 <p>When you change the index size or you want to clean out excessive index
1188 files, this deletes all the index files.
1190 </p><li>USE HOURS:MINUTES:SECONDS.XXX
1192 <p>Various representations of time are given. Select the most convenient
1193 one. The time representation can also be changed by <em>CTRL</em>
1194 clicking on the time ruler.
1196 </p><li>USE THUMBNAILS
1198 <p>The Resource Window displays thumbnails of assets by default. This can
1199 take a long time to set up. This option disables the thumbnails.
1201 </p><li>CLICKING IN/OUT POINTS DOES WHAT
1203 <p>Cinelerra not only allows you to perform editing by dragging in/out
1204 points but also defines three seperate operations which occur when you
1205 drag an in/out point. For each mouse button you select the behavior in
1206 this window. The usage of each editing mode is described in editing.
1208 </p><li>MIN DB FOR METER
1210 <p>Some sound sources have a lower noise threshold than others.
1211 Everything below the noise threshold is meaningless. This option sets
1212 the meters to clip below a certain level. Consumer soundcards usually
1213 bottom out at -65. Professional soundcards bottom out at -90.
1215 </p><li>FORMAT FOR METER
1217 <p>This option allows you to select the format for all the VU meters. If
1218 you're a CS major select percentage and if you're a EE major select DB.
1219 With that, be aware all levels in Cinelerra are input as DB.
1221 </p><li>THEME
1223 <p>Cinelerra supports variable themes. Select one here and restart
1224 Cinelerra to see it.
1226 </ul>
1228 <div class="node">
1229 <p><hr>
1230 Node:<a name="ABOUT">ABOUT</a>,
1231 Previous:<a rel="previous" accesskey="p" href="#INTERFACE">INTERFACE</a>,
1232 Up:<a rel="up" accesskey="u" href="#CONFIGURATION">CONFIGURATION</a>
1233 <br>
1234 </div>
1236 <h3 class="section">ABOUT</h3>
1238 <p>This section gives you information about the copyright, the time of the
1239 current build, the lack of a warranty, and the versions of some of the
1240 libraries. Be sure to agree to the terms of the lack of the warranty.
1242 <div class="node">
1243 <p><hr>
1244 Node:<a name="THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>,
1245 Next:<a rel="next" accesskey="n" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>,
1246 Previous:<a rel="previous" accesskey="p" href="#CONFIGURATION">CONFIGURATION</a>,
1247 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
1248 <br>
1249 </div>
1251 <h2 class="chapter">THE MAIN WINDOWS</h2>
1253 <p>When Cinelerra first starts, you'll get four main windows. Hitting
1254 <em>CTRL-w</em> in any window closes it.
1256 <ul>
1258 <li>Viewer
1260 <p>In here you'll scrub around source media and clips, selecting regions
1261 to paste into the project. Operations done in the viewer affect a
1262 temporary EDL or a clip but not the timeline.
1264 </p><li>Compositor
1266 <p>This window displays the output of the timeline. It's the interface
1267 for most compositing operations or operations that affect the
1268 appearance of the timeline output. Operations done in the Compositor
1269 affect the timeline but don't affect clips.
1271 </p><li>Program
1273 <p>This contains the timeline and the entry point for all menu driven
1274 operations. The timeline consists of a vertical stack of tracks with
1275 horizontal representation of time. This defines the output of
1276 rendering operations and what is saved when you save files.
1278 </p><li>Resources
1280 <p>Effects, transitions, clips, and assets are accessed here. Most of the
1281 resources are inserted into the project by dragging them out of the
1282 resource window. Management of resource allocation is also performed
1283 here.
1285 </ul>
1287 <p>Under the <em>Window</em> menu you'll find options affecting the main
1288 windows. <em>default positions</em> repositions all the windows to a 4
1289 screen editing configuration. On dual headed displays, the
1290 <em>default positions</em> operation fills only one monitor with windows.
1292 <p>An additional window, the <em>levels window</em> can be brought up from
1293 the <em>Window</em> menu. The <em>levels</em> window displays the output
1294 audio levels after all mixing is done.
1296 <div class="node">
1297 <p><hr>
1298 Node:<a name="LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>,
1299 Next:<a rel="next" accesskey="n" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>,
1300 Previous:<a rel="previous" accesskey="p" href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>,
1301 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
1302 <br>
1303 </div>
1305 <h2 class="chapter">LOADING AND SAVING FILES</h2>
1307 <ul class="menu">
1308 <li><a accesskey="1" href="#LOADING%20FILES">LOADING FILES</a>: Loading all types of files
1309 <li><a accesskey="2" href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>: Recovering the session from before a crash
1310 <li><a accesskey="3" href="#SAVING%20FILES">SAVING FILES</a>: Saving edit decision lists
1311 <li><a accesskey="4" href="#RENDERING%20FILES">RENDERING FILES</a>: Saving media files
1312 </ul>
1314 <div class="node">
1315 <p><hr>
1316 Node:<a name="LOADING%20FILES">LOADING FILES</a>,
1317 Next:<a rel="next" accesskey="n" href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>,
1318 Up:<a rel="up" accesskey="u" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
1319 <br>
1320 </div>
1322 <h3 class="section">LOADING FILES</h3>
1324 <p>All data that you work with in Cinelerra is acquired either by
1325 <em>recording from a device</em> or by <em>loading from disk</em>. This
1326 section describes loading.
1328 <p>The loading and playing of files is just as you would expect. Just go
1329 to <em>file-&gt;Load</em>, select a file for loading, and hit <em>ok</em>. Hit
1330 the forward play button and it should start playing, regardless of
1331 whether a progress bar has popped up.
1333 <p>Another way to load files is to pass the filenames as arguments on the
1334 command line. This creates new tracks for every file and starts the
1335 program with all the arguments loaded.
1337 <p>If the file is a still image, the project's attributes are not changed
1338 and the first frame of the track becomes the image. If the file has
1339 audio, Cinelerra may build an index file for it to speed up drawing.
1340 You can edit and play the file while the index file is being built.
1342 <ul class="menu">
1343 <li><a accesskey="1" href="#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS</a>:
1344 <li><a accesskey="2" href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>:
1345 <li><a accesskey="3" href="#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES</a>:
1346 </ul>
1348 <div class="node">
1349 <p><hr>
1350 Node:<a name="SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS</a>,
1351 Next:<a rel="next" accesskey="n" href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>,
1352 Up:<a rel="up" accesskey="u" href="#LOADING%20FILES">LOADING FILES</a>
1353 <br>
1354 </div>
1356 <h4 class="subsection">SUPPORTED FILE FORMATS</h4>
1358 <p>The format of the file affects what Cinelerra does with it. Some
1359 formats replace all the project settings. Some just insert data with
1360 existing project settings. If your project sample rate is 48khz and
1361 you load a sound file with 96khz, you'll still be playing it at
1362 48khz. XML files, however, replace the project settings. If you load
1363 an XML file at 96khz and the current project sample rate is 48khz,
1364 you'll change it to 96khz. Supported file formats are currently:
1366 <ul>
1367 <li>WAV
1368 <li>PCM
1369 <li>AIFF
1370 <li>Uncompresed Quicktime
1372 <p>Quicktime is not the standard for UNIX but we use it because it's well
1373 documented. All of the Quicktime movies on the internet are
1374 compressed. Cinelerra doesn't support compressed Quicktime movies.
1375 Most of the Quicktime footage dealt with in Cinelerra is generated by
1376 Cinelerra either recording from a device or rendering. The best
1377 Quicktime settings to use are JPEG video and twos audio.
1379 </p><li>JPEG, PNG, TIFF, TGA sequences
1381 <p>Cinelerra generates a special table of contents file when you render an
1382 image sequence. You can either select every image file to load or
1383 select the table of contents when the rendering is done. Selecting the
1384 table of contents is faster and doesn't fill up the resource window
1385 with thousands of images.
1387 </p><li>JPEG, PNG, TIFF, TGA still images
1389 <p>When loaded, the image takes up one frame in length and doesn't change
1390 the project attributes.
1392 </p><li>AVI with mp3 audio and MPEG-4 video
1394 <li>MPEG 1, 2 video
1396 <p>You need to run <em>mpeg3toc</em> to generate a table of contents for
1397 these, then load the table of contents. Mpeg3toc needs the absolute
1398 path of the MPEG file. If you want to edit a DVD, find the
1399 corresponding <em>ifo</em> file for the program of interest and run
1401 <pre class="example"> mpeg3toc /cdrom/video_ts/vts_01_0.ifo dvd.toc
1402 </pre>
1404 <p>or something similar. Then load <em>dvd.toc</em>. This allows frame
1405 accurate editing where none would be possible otherwise.
1407 </p><li>MPEG program streams and transport streams
1409 <p>You need to run <em>mpeg3toc</em> on these just like MPEG 1,2 video.
1410 Program and transport streams are structured into multiple tracks.
1411 Each track can be video or audio. Each audio track can have 1-6
1412 channels. Cinelerra converts each channel of audio into a track, so
1413 for MPEG streams with multiple tracks, the tracks will be flattened.
1415 </p><li>MPEG audio layer II, III
1417 <p>These can be loaded directly with no table of contents. Variable
1418 bitrate streams may need a table of contents but are playable without
1421 </p><li>AC3 audio
1423 <li>XML
1425 <p>These are generated by Cinelerra for storing edit lists. They change
1426 project attributes when loaded.
1428 </ul>
1430 <div class="node">
1431 <p><hr>
1432 Node:<a name="INSERTION%20STRATEGY">INSERTION STRATEGY</a>,
1433 Next:<a rel="next" accesskey="n" href="#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES</a>,
1434 Previous:<a rel="previous" accesskey="p" href="#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS</a>,
1435 Up:<a rel="up" accesskey="u" href="#LOADING%20FILES">LOADING FILES</a>
1436 <br>
1437 </div>
1439 <h4 class="subsection">INSERTION STRATEGY</h4>
1441 <p>Usually three things happen when you load a file. First the existing
1442 project is cleared from the screen, second the project's attributes are
1443 changed to match the file's, and finally the new file's tracks are
1444 created in the timeline.
1446 <p>But Cinelerra lets you change what happens when you load a file.
1448 <p>In the file selection box go to the <em>Insertion strategy</em> box and
1449 select it. Each of these options loads the file a different way.
1451 <ul>
1453 <li>Replace current project
1455 <p>All tracks in the current project are deleted and new tracks are
1456 created to match the source. Project attributes are only changed when
1457 loading XML. If multiple files are selected it adds new tracks for
1458 every file.
1460 </p><li>Replace current project and concatenate tracks
1462 <p>Same as replace current project except if multiple files are selected
1463 it concatenates the tracks of every file after the first.
1465 </p><li>Append in new tracks
1467 <p>The current project is not deleted and new tracks are created for the
1468 source.
1470 </p><li>Concatenate to existing tracks
1472 <p>The current project is not deleted and new files are concatenated to
1473 the existing tracks.
1475 </p><li>Paste at insertion point
1477 <p>The file is pasted in like a normal paste operation.
1479 </p><li>Create new resources only
1481 <p>The timeline is unchanged and new resources are created in the Resource
1482 Window.
1484 </ul>
1486 <p>The insertion strategy is a recurring option in many of Cinelerra's
1487 functions. In each place the options do the same thing. With these
1488 options you can almost do all your editing by loading files.
1490 <p>If you load files by passing command line arguments to Cinelerra, the
1491 files are loaded with <em>Replace current project</em> rules.
1493 <div class="node">
1494 <p><hr>
1495 Node:<a name="LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES</a>,
1496 Previous:<a rel="previous" accesskey="p" href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>,
1497 Up:<a rel="up" accesskey="u" href="#LOADING%20FILES">LOADING FILES</a>
1498 <br>
1499 </div>
1501 <h4 class="subsection">LOADING MULTIPLE FILES</h4>
1503 <p>In the file selection box go to the list of files. Select a file. Go
1504 to another file and select it while holding down <em>CTRL</em>. This
1505 selects one additional file. Go to another file and select it while
1506 holding down <em>SHIFT</em>. This selects every intervening file. This
1507 behavior is available in most every list box.
1509 <p>Select a bunch of mp3 files and <em>Replace current project and
1510 concatenate tracks</em> in the insertion strategy to create a song
1511 playlist.
1513 <div class="node">
1514 <p><hr>
1515 Node:<a name="LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>,
1516 Next:<a rel="next" accesskey="n" href="#SAVING%20FILES">SAVING FILES</a>,
1517 Previous:<a rel="previous" accesskey="p" href="#LOADING%20FILES">LOADING FILES</a>,
1518 Up:<a rel="up" accesskey="u" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
1519 <br>
1520 </div>
1522 <h3 class="section">LOADING THE BACKUP</h3>
1524 <p>There is one special XML file on disk at all times. After every
1525 editing operation Cinelerra saves the current project to a backup in
1526 <em>$HOME/.bcast/backup.xml</em>. In the event of a crash go to
1527 <em>file-&gt;load backup</em> to load the backup. It is important after a
1528 crash to reboot Cinelerra without performing any editing operations.
1529 Loading the backup should be the first operation or you'll overwrite
1530 the backup.
1532 <div class="node">
1533 <p><hr>
1534 Node:<a name="SAVING%20FILES">SAVING FILES</a>,
1535 Next:<a rel="next" accesskey="n" href="#RENDERING%20FILES">RENDERING FILES</a>,
1536 Previous:<a rel="previous" accesskey="p" href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>,
1537 Up:<a rel="up" accesskey="u" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
1538 <br>
1539 </div>
1541 <h3 class="section">SAVING FILES</h3>
1543 <p>When Cinelerra saves a file it saves an edit decision list of the
1544 current project but doesn't save any media. Go to <em>File-&gt;save
1545 as...</em>. Select a file to overwrite or enter a new file. Cinelerra
1546 automatically concatenates <em>.xml</em> to the filename if no
1547 <em>.xml</em> extension is given.
1549 <p>The saved file contains all the project settings and locations of every
1550 edit but instead of media it contains pointers to the original media
1551 files on disk.
1553 <p>For each media file the XML file stores either an absolute path or just
1554 the relative path. If the media is in the same directory as the XML
1555 file a relative path is saved. If it's in a different directory an
1556 absolute path is saved.
1558 <p>In order to move XML files around without breaking the media linkages
1559 you either need to keep the media in the same directory as XML file
1560 forever or save the XML file in a different directory than the media
1561 and not move the media ever again.
1563 <p>If you want to create an audio playlist and burn it on CD-ROM, save the
1564 XML file in the same directory as the audio files and burn the entire
1565 directory. This keeps the media paths relative.
1567 <p>XML files are useful for saving the current state before going to sleep
1568 and saving audio playlists but they're limited in that they're specific
1569 to Cinelerra. You can't play XML files in a dedicated movie player.
1570 Realtime effects in an XML file have to be resynthesized every time you
1571 play it back. The XML file also requires you to maintain copies of all
1572 the source assets on hard drives, which can take up space and cost a
1573 lot of electricity to spin. For a more persistent storage of the
1574 output there's rendering.
1576 <div class="node">
1577 <p><hr>
1578 Node:<a name="RENDERING%20FILES">RENDERING FILES</a>,
1579 Previous:<a rel="previous" accesskey="p" href="#SAVING%20FILES">SAVING FILES</a>,
1580 Up:<a rel="up" accesskey="u" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
1581 <br>
1582 </div>
1584 <h3 class="section">RENDERING FILES</h3>
1586 <p>Rendering takes a section of the timeline, performs all the editing,
1587 effects and compositing, and stores it in a pure movie file. You can
1588 then delete all the source assets, play the rendered file in a movie
1589 player, or bring it back into Cinelerra for more editing. It's very
1590 difficult to retouch any editing decisions in the pure movie file,
1591 however, so keep the original assets and XML file around several days
1592 after you render it.
1594 <p>All rendering operations are based on a region of the timeling to be
1595 rendered. You need to define this region of the timeline. The
1596 navigation section describes methods of defining regions.
1597 See <a href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>. The rendering functions define the
1598 region based on a set of rules. When a region is highlighted or in/out
1599 points are set, the affected region is rendered. When no region is
1600 highlighted, everything after the insertion point is rendered. Merely
1601 by positioning the insertion point at the beginning of a track and
1602 unsetting all in/out points, the entire track is rendered.
1604 <ul class="menu">
1605 <li><a accesskey="1" href="#SINGLE%20FILE%20RENDERING">SINGLE FILE RENDERING</a>: Rendering a single file
1606 <li><a accesskey="2" href="#BATCH%20RENDERING">BATCH RENDERING</a>: Rendering several files unattended
1607 <li><a accesskey="3" href="#THE%20RENDER%20FARM">THE RENDER FARM</a>: Rendering using many computers
1608 </ul>
1610 <div class="node">
1611 <p><hr>
1612 Node:<a name="SINGLE%20FILE%20RENDERING">SINGLE FILE RENDERING</a>,
1613 Next:<a rel="next" accesskey="n" href="#BATCH%20RENDERING">BATCH RENDERING</a>,
1614 Up:<a rel="up" accesskey="u" href="#RENDERING%20FILES">RENDERING FILES</a>
1615 <br>
1616 </div>
1618 <h4 class="subsection">SINGLE FILE RENDERING</h4>
1620 <p>The fastest way to get media to disk is to use the single file
1621 rendering function.
1623 <p>Go to <b>File-&gt;render</b> to bring up the render dialog. Select the
1624 magnifying glass <img src="magnify.png" alt="magnify.png"> to bring up a file selection dialog. This determines
1625 the filename to write the rendered file to and the encoding parameters.
1627 <p>In the render dialog select a format from the <b>File Format</b> menu.
1628 The format of the file determines whether you can render audio or video
1629 or both. Select the <b>Render audio tracks</b> toggle to generate
1630 audio tracks and <b>Render video tracks</b> to generate video tracks.
1632 <p>Select the wrench <img src="wrench.png" alt="wrench.png"> next to each toggle to set compression
1633 parameters. If the file format can't store audio or video the
1634 compression parameters will be blank. If <b>Render audio tracks</b> or
1635 <b>Render video tracks</b> is selected and the file format doesn't
1636 support it, trying to render will pop up an error.
1638 <p>The <b>Create new file at each label</b> option causes a new file to be
1639 created when every label in the timeline is encountered. This is
1640 useful for dividing long audio recordings into individual tracks. When
1641 using the renderfarm, <b>Create new file at each label</b> causes one
1642 renderfarm job to be created at every label instead of using the
1643 internal load balancing algorithm to space jobs.
1645 <p>When <b>Create new file at each label</b> is selected, a new filename
1646 is created for every output file. If the filename given in the render
1647 dialog has a 2 digit number in it, the 2 digit number is overwritten
1648 with a different incremental number for every output file. If no 2
1649 digit number is given, Cinelerra automatically concatenates a number to
1650 the end of the given filename for every output file.
1652 <p>In the filename <b>/hmov/track01.wav</b> the <b>01</b> would be
1653 overwritten for every output file. The filename
1654 <b>/hmov/track.wav</b>; however, would become <b>/hmov/track.wav001</b>
1655 and so on and so forth. Filename regeneration is only used when either
1656 renderfarm mode is active or creating new files for every label is
1657 active.
1659 <p>Finally the render dialog lets you select an insertion mode. The
1660 insertion modes are the same as with loading files. In this case if
1661 you select <b>insert nothing</b> the file will be written out to disk
1662 without changing the current project. For other insertion strategies
1663 be sure to prepare the timeline to have the output inserted at the
1664 right position before the rendering operation is finished.
1665 See <a href="#EDITING">EDITING</a>. Editing describes how to cause output to be inserted
1666 at the right position.
1668 <p>It should be noted that even if you only have audio or only have video
1669 rendered, a <b>paste</b> insertion strategy will behave like a normal
1670 paste operation, erasing any selected region of the timeline and
1671 pasting just the data that was rendered. If you render only audio and
1672 have some video tracks armed, the video tracks will get truncated while
1673 the audio output is pasted into the audio tracks.
1675 <div class="node">
1676 <p><hr>
1677 Node:<a name="BATCH%20RENDERING">BATCH RENDERING</a>,
1678 Next:<a rel="next" accesskey="n" href="#THE%20RENDER%20FARM">THE RENDER FARM</a>,
1679 Previous:<a rel="previous" accesskey="p" href="#SINGLE%20FILE%20RENDERING">SINGLE FILE RENDERING</a>,
1680 Up:<a rel="up" accesskey="u" href="#RENDERING%20FILES">RENDERING FILES</a>
1681 <br>
1682 </div>
1684 <h4 class="subsection">BATCH RENDERING</h4>
1686 <p>If you want to render many projects to media files without having to
1687 repeatedly attend to the <b>Render</b> dialog, <b>batch rendering</b> is the
1688 function to use. In this function, you specify many EDL files to
1689 render and the unique output files for each. Then Cinelerra loads each
1690 EDL file and renders it automatically, without any user intervention.
1691 Each EDL file and its output to be rendered is called a <b>batch</b>.
1692 This allows a huge amount of media to be processed and greatly
1693 increases the value of an expensive computer.
1695 <p>The first thing to do when preparing to do batch rendering is define
1696 projects to be rendered. The batch renderer requires a separate EDL
1697 file for every batch to be rendered. Set up a project and define the
1698 region to be rendered either by highlighting it, setting in/out points
1699 around it, or positioning the insertion point before it. Then save the
1700 project as an EDL. Define as many projects as needed this way. The
1701 batch renderer takes the active region from the EDL file for rendering.
1703 <p>With all the EDL files prepared with active regions, go to
1704 <b>File-&gt;batch render</b>. This brings up the batch rendering dialog.
1705 The interface for batch rendering is a bit more complex than for single
1706 file rendering.
1708 <p>A list of batches must be defined before starting a batch rendering
1709 operation. The table of batches appears on the bottom of the batch
1710 render dialog and is called <b>batches to render</b>. Above this are
1711 the configuration parameters for a single batch.
1713 <p>Set the <b>output path</b>, <b>file format</b>, <b>Audio</b>, <b>Video</b>, and
1714 <b>Create new file at each label</b> parameters as if it was a single
1715 file. These parameters apply to only one batch. In addition to the
1716 standard rendering parameters, you must select the source EDL to use in
1717 the batch. Do this by setting the <b>EDL path</b>.
1719 <p>If the <b>batches to render</b> list is empty or nothing is highlighted,
1720 click <b>New</b> to create a new batch. The new batch will contain all
1721 the parameters you just set.
1723 <p>Repeatedly press the <b>New</b> button to create more batches with the
1724 same parameters. Highlight any batch and edit the configuration on the
1725 top of the batch render window. The highlighted batch is always
1726 synchronized to the information displayed.
1728 <p>Click and drag batches to change the order in which they're rendered.
1729 Hit <b>delete</b> to permanently remove the highlighted batch.
1731 <p>In the list box is a column which enables or disables the batch. This
1732 way batches can be skipped without being deleted. Click on the
1733 <b>Enabled</b> column in the list box to enable or disable a batch. If it
1734 is checked, the batch is rendered. If it is blank, the batch is
1735 skipped.
1737 <p>The other columns in the batch list are informative.
1739 <ul>
1741 <li><b>Output</b> The output path of the batch.
1742 <li><b>EDL</b> The source EDL of the batch.
1743 <li><b>Elapsed</b> The amount of time taken to render the batch if it is finished.
1745 </ul>
1747 <p>To start rendering from the first enabled batch, hit <b>Start</b>.
1749 <p>Once rendering, the main window shows the progress of the batch. Once
1750 the batch finishes, the elapsed column in the batch list is updated and
1751 the next batch is rendered until all the enabled batches are finished.
1752 The currently rendering batch is always highlighted red.
1754 <p>To stop rendering before the batches are finished without closing the
1755 batch render dialog, hit <b>Stop</b>.
1757 <p>To stop rendering before the batches are finished and close the batch
1758 render dialog, hit <b>Cancel</b>.
1760 <p>To exit the batch render dialog whether or not anything is being
1761 rendered, hit <b>Cancel</b>.
1763 <div class="node">
1764 <p><hr>
1765 Node:<a name="THE%20RENDER%20FARM">THE RENDER FARM</a>,
1766 Previous:<a rel="previous" accesskey="p" href="#BATCH%20RENDERING">BATCH RENDERING</a>,
1767 Up:<a rel="up" accesskey="u" href="#RENDERING%20FILES">RENDERING FILES</a>
1768 <br>
1769 </div>
1771 <h4 class="subsection">THE RENDER FARM</h4>
1773 <p>When bicubic interpolation and HDTV was first done on Cinelerra, the
1774 time needed to produce the simplest output became unbearable even on
1775 the fastest dual 1.7Ghz Xeon of the time. Renderfarm support even in
1776 the simplest form brings HDTV times back in line with SD while making
1777 SD faster than realtime.
1779 <p>While the renderfarm interface isn't spectacular, it's simple enough to
1780 use inside an editing suite with less than a dozen nodes without going
1781 through the same amount of hassle you would with a several hundred node
1782 farm. Renderfarm is invoked transparently for all file-&gt;render
1783 operations when it is enabled in the preferences.
1785 <p>It should be noted that <b>Create new file at each label</b> causes a
1786 new renderfarm job to be created at each label instead of the default
1787 load balancing. If this option is selected when no labels exist, only
1788 one job will be created.
1790 <p>A Cinelerra renderfarm is organized into a master node and any number
1791 of slave nodes. The master node is the computer which is running the
1792 GUI. The slave nodes are anywhere else on the network and are run from
1793 the command line.
1795 <p>Cinelerra divides the selected region of the timeline into a certain
1796 number of jobs which are then dispatched to the different nodes
1797 depending on the load balance. The nodes process the jobs and write
1798 their output to individual files on the filesystem. The output files
1799 are not concatenated. It's important for all the nodes and the master
1800 node to use the same filesystem for assets, mounted over the network.
1802 <p>Since most of the time you'll want to bring in the rendered output and
1803 fine tune it on the timeline, the jobs are left in individual files.
1804 You can load these using <b>concatenate mode</b> and render them again
1805 with renderfarm disabled. If the track and output dimensions equal the
1806 asset dimensions, Cinelerra will do a direct copy of all the jobs into
1807 a single file. Note that direct copying doesn't work for MPEG Video.
1808 MPEG has the distinction that you can concatenate the subfiles with the
1809 UNIX cat utility.
1811 <p>Configuration of the renderfarm is described in the configuration
1812 chapter See <a href="#RENDERFARM">RENDERFARM</a>. The slave nodes traditionally read and
1813 write data to a common filesystem over a network, thus they don't need
1814 hard drives.
1816 <p>Ideally all the nodes on the renderfarm have similar CPU performance.
1817 Cinelerra load balances on a first come first serve basis. If the last
1818 segment is dispatched to the slowest node, all the fastest nodes may
1819 end up waiting for the slowest node to finish while they themselves
1820 could have rendered it faster.
1822 <div class="node">
1823 <p><hr>
1824 Node:<a name="NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>,
1825 Next:<a rel="next" accesskey="n" href="#EDITING">EDITING</a>,
1826 Previous:<a rel="previous" accesskey="p" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>,
1827 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
1828 <br>
1829 </div>
1831 <h2 class="chapter">NAVIGATING THE PROJECT</h2>
1833 <p>The thing you want to do most of the time is get to a certain time and
1834 place in the media. Internally the media is organized into tracks.
1835 Each track extends across time. Navigation involves both getting to a
1836 track and getting to a certain time in the track.
1838 <ul class="menu">
1839 <li><a accesskey="1" href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>:
1840 <li><a accesskey="2" href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>:
1841 <li><a accesskey="3" href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>:
1842 <li><a accesskey="4" href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>:
1843 <li><a accesskey="5" href="#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING</a>:
1844 </ul>
1846 <div class="node">
1847 <p><hr>
1848 Node:<a name="NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>,
1849 Next:<a rel="next" accesskey="n" href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>,
1850 Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
1851 <br>
1852 </div>
1854 <h3 class="section">NAVIGATING THE PROGRAM WINDOW</h3>
1856 <p>The program window contains many features for navigation and displays
1857 the timeline as it is structured in memory: tracks stacked vertically
1858 and extending across time. The horizontal scroll bar allows you to
1859 scan across time. The vertical scroll bar allows you to scan across
1860 tracks.
1862 <p>Below the timeline you'll find the zoom panel. The zoom panel contains
1863 values for <em>sample zoom</em>, <em>amplitude</em>, and <em>track
1864 zoom</em>. These values in addition to the scrollbars are all that's
1865 needed to position the timeline, but at the heart of the batch
1866 rendering dialog are the same parameters you found in single file
1867 rendering.
1869 <br><p>
1870 <img src="zoompanel.png" alt="zoompanel.png">
1872 <p>Changing the <em>sample zoom</em> causes the amount of time visible to
1873 change. <em>If your mouse has a wheel and it works in X11 go over
1874 the tumblers and use the wheel to zoom in and out.</em>
1876 <p>The <em>amplitude</em> only affects audio. It determines how big the
1877 waveform is if the waveform is drawn.
1879 <p>The <em>track zoom</em> affects all tracks. It determines the height of
1880 each track. If you change the track zoom the amplitude zoom
1881 compensates so audio waveforms look proportional.
1883 <p>In addition to the graphical tools, you'll probably more often use the
1884 keyboard to navigate. Use <em>PAGE UP</em> and <em>PAGE DOWN</em> to
1885 scroll up and down the tracks.
1887 <p>Use the <em>LEFT</em> and <em>RIGHT</em> arrows to move across time in
1888 small increments. You'll often need to scroll beyond the end of the
1889 timeline but scrollbars won't let you do it. Instead use the
1890 <em>RIGHT</em> arrow to scroll past the end of timeline.
1892 <p>Use the <em>HOME</em> and <em>END</em> keys to instantly go to the
1893 beginning or end of the timeline. In <em>I-beam</em> mode, hold down
1894 shift while pressing <em>HOME</em> or <em>END</em> to select the region of
1895 the timeline between the insertion point and the key pressed.
1897 <p>Use the <em>UP</em> and <em>DOWN</em> arrows to change the sample zoom by a
1898 power of 2.
1900 <p><em>CTRL-UP</em> and <em>CTRL-DOWN</em> cause the amplitude zoom to change.
1902 <p><em>CTRL-PGUP</em> and <em>CTRL-PGDOWN</em> cause the track zoom to change.
1904 <ul class="menu">
1905 <li><a accesskey="1" href="#THE%20INSERTION%20POINT">THE INSERTION POINT</a>:
1906 <li><a accesskey="2" href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>:
1907 <li><a accesskey="3" href="#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW</a>:
1908 </ul>
1910 <div class="node">
1911 <p><hr>
1912 Node:<a name="THE%20INSERTION%20POINT">THE INSERTION POINT</a>,
1913 Next:<a rel="next" accesskey="n" href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>,
1914 Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
1915 <br>
1916 </div>
1918 <h4 class="subsection">THE INSERTION POINT</h4>
1920 <p>By default you'll see a flashing insertion point in the program window
1921 the first time you boot it up. This is where new media is pasted onto
1922 the timeline. It's also the starting point of all playback
1923 operations. When rendering it defines the region of the timeline to be
1924 rendered.
1926 <p>The insertion point is normally moved by clicking inside the timebar.
1927 Any region of the timebar not obscured by labels and in/out points is a
1928 hotspot for repositioning the insertion point.
1930 <br><p>
1931 <img src="main_timebar.png" alt="main_timebar.png">
1932 <em>The main timebar</em>
1934 <p>The insertion point also can be moved by clicking in the timeline
1935 itself, but not always. The insertion point has two modes of
1936 operation:
1938 <ul>
1939 <li>drag and drop mode
1941 <li>cut and paste mode
1943 </ul>
1945 <p>The mode of operation is determined by selecting the arrow or the
1946 i-beam in the buttonbar.
1948 <br><p>
1949 <img src="editing_mode.png" alt="editing_mode.png">
1950 <em>The editing mode buttons</em>
1952 <p>If the arrow is highlighted it enables <em>drag and drop</em> mode. In
1953 drag and drop mode, clicking in the timeline doesn't reposition the
1954 insertion point. Instead it selects an entire edit. Dragging in the
1955 timeline repositions the edit, snapping it to other edit boundaries.
1956 This is normally useful for reordering audio playlists and moving
1957 effects around.
1959 <p>If the i-beam is highlighted it enables <em>cut and paste mode</em>. In
1960 cut and paste mode clicking in the timeline repositions the insertion
1961 point. Dragging in the timeline highlights a region. The highlighted
1962 region becomes the playback range during the next playback operation,
1963 the rendered range during the next render operation, and the region
1964 affected by cut and paste operations.
1966 <p><em>Shift-clicking</em> in the timeline extends the highlighted region.
1968 <p><em>Double-clicking</em> in the timeline selects the entire edit the
1969 cursor is over.
1971 <p>It should be noted that when moving the insertion point and selecting
1972 regions, the positions are either aligned to frames or aligned to
1973 samples. When editing video you'll want to align to frames. When
1974 editing audio you'll want to align to samples. This is set in
1975 <em>settings-&gt;align cursor on frames</em>.
1977 <p>If the highlighted region is the region affected by cut and paste
1978 operations, how do I cut and paste in <em>drag and drop</em> mode? In
1979 this case you need to set <em>in/out points</em> to define an affected region.
1981 <div class="node">
1982 <p><hr>
1983 Node:<a name="THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>,
1984 Next:<a rel="next" accesskey="n" href="#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW</a>,
1985 Previous:<a rel="previous" accesskey="p" href="#THE%20INSERTION%20POINT">THE INSERTION POINT</a>,
1986 Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
1987 <br>
1988 </div>
1990 <h4 class="subsection">THE IN/OUT POINTS</h4>
1992 <p>In both editing modes you can set in/out points. The in/out points
1993 define the affected region. In drag and drop mode they are the only
1994 way to define an affected region. In both cut and paste mode and drag
1995 and drop mode they override the highlighted area. If a highlighted
1996 area and in/out points are set, the highlighted area affects playback
1997 while the in/out points affect editing operations. To avoid confusion
1998 it's best to use either highlighting or in/out points but not both
1999 simultaneously.
2001 <p>To set in/out points go to the timebar and position the insertion point
2002 somewhere. Hit the <img src="in_point_button.png" alt="in_point_button.png"> <em>in point button</em>. Go
2003 to a position after the in point and hit the <img src="out_point_button.png" alt="out_point_button.png">
2004 <em>out point button</em>.
2006 <br><p>
2007 <img src="inout_points.png" alt="inout_points.png"> <em>Timebar with in/out points set</em>.
2009 <p>Select either the in point or the out point and the insertion point
2010 jumps to that location. After selecting an in point, if you hit the
2011 <em>in point button</em> the in point will be deleted. After selecting
2012 an out point, if you hit the <em>out point button</em> the out point will
2013 be deleted.
2015 <p>If you select a region somewhere else while in/out points already
2016 exist, the existing points will be repositioned when you hit the in/out
2017 buttons.
2019 <p><em>Shift-clicking</em> on an in/out point extends the highlighted region
2020 to that point.
2022 <p>Instead of using the button bar you can use the <em>[</em> and <em>]</em>
2023 keys to toggle in/out points.
2025 <p>The insertion point and the in/out points allow you to define an
2026 affected region but they don't let you jump to exact points on the
2027 timeline very easily. For this purpose there are labels.
2029 <div class="node">
2030 <p><hr>
2031 Node:<a name="USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW</a>,
2032 Previous:<a rel="previous" accesskey="p" href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>,
2033 Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
2034 <br>
2035 </div>
2037 <h4 class="subsection">USING LABELS IN THE PROGRAM WINDOW</h4>
2039 <p>Labels are an easy way to set exact locations on the timeline you want
2040 to jump to. When you position the insertion point somewhere and hit
2041 the <img src="label_button.png" alt="label_button.png"> <em>label button</em> a new label appears on the
2042 timeline.
2044 <br><p>
2045 <img src="timebar_label.png" alt="timebar_label.png"> <em>Timebar with a label on it</em>
2047 <p>No matter what the zoom settings are, clicking on the label positions
2048 the insertion point exactly where you set it. Hitting the label button
2049 again when a label is selected deletes it.
2051 <p><em>Shift-clicking</em> on a label extends the highlighted region.
2053 <p><em>Double-clicking</em> between two labels highlights the region between
2054 the labels.
2056 <p>Hitting the <em>l</em> key has the same effect as the label button.
2058 <p>If you hit the label button when a region is highlighted, two labels
2059 are toggled at each end of the highlighted region. If one end already
2060 has a label, then the existing label is deleted and a label is created
2061 at the opposite end.
2063 <p>Labels can reposition the insertion point when they are selected but
2064 they can also be traversed with the <img src="label_traversal.png" alt="label_traversal.png"> <em>label
2065 traversal</em> buttons. When a label is out of view, the label traversal
2066 buttons reposition the timeline so the label is visible. There are
2067 keyboard shortcuts for label traversal, too.
2069 <p><em>CTRL-LEFT</em> repositions the insertion point on the previous label.
2071 <p><em>CTRL-RIGHT</em> repositions the insertion point on the next label.
2073 <p>With label traversal you can quickly seek back and forth on the
2074 timeline but you can also select regions.
2076 <p><em>SHIFT-CTRL-LEFT</em> extends the highlighted region to the previous
2077 label.
2079 <p><em>SHIFT-CTRL-RIGHT</em> extends the highlighted region to the next label.
2081 <p>Manually hitting the label button or <em>l</em> key over and over again
2082 to delete a series of labels can get tedious. For deleting a set of
2083 labels, first highlight a region and second use the <em>Edit-&gt;Clear
2084 labels</em> function. If in/out points exist, the labels between the
2085 in/out points are cleared and the highlighted region ignored.
2087 <div class="node">
2088 <p><hr>
2089 Node:<a name="NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>,
2090 Next:<a rel="next" accesskey="n" href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>,
2091 Previous:<a rel="previous" accesskey="p" href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>,
2092 Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
2093 <br>
2094 </div>
2096 <h3 class="section">NAVIGATING THE VIEWER AND COMPOSITOR</h3>
2098 <p>The navigation features of the Viewer and Compositor behave very
2099 similarly. Each has a timebar and slider below the video output. The
2100 timebar and slider are critical for navigation.
2102 <br><p>
2103 <img src="timebarslider.png" alt="timebarslider.png">
2105 <p>The timebar represents the entire time covered by the program. When
2106 you define labels and in/out points it defines those, too. Finally the
2107 timebar defines a region known as the <em>preview region</em>.
2109 <p>The <em>preview region</em> is the region of the timeline which the
2110 slider effects. The slider only covers the time covered by the preview
2111 region. By using a preview region inside the entire program and using
2112 the slider inside the preview region you can quickly and precisely seek
2113 in the compositor and viewer.
2115 <p>When you replace the current project with a file the preview region
2116 automatically resizes to cover the entire file. When you append data
2117 or change the size of the current project, the preview region stays the
2118 same size and shrinks. Therefore, you need to resize the preview
2119 region.
2121 <p>Load a file and then slide around it using the compositor slider. The
2122 insertion point in the main window follows the compositor. Move the
2123 pointer over the compositor's timebar until it turns into a left resize
2124 pointer. The click and drag right. The preview region should have
2125 changed and the slider resized proportionally.
2127 <p>Go to the right of the timebar until a right resize pointer appears.
2128 Drag left so the preview region shrinks.
2130 <p>Go to the center of the preview region in the timebar and drag it
2131 around to convince yourself if can be moved.
2133 <br><p>
2134 <img src="previewregion.png" alt="previewregion.png">
2136 <p><em>Preview region in compositor</em>
2138 <p>If you go to the slider and slide it around with the preview region
2139 shrunk, you'll see the slider only affects the preview region. The
2140 timebar and slider in the viewer window work exactly the same.
2142 <p>Labels and in/out points are fully supported in the viewer and
2143 compositor. The only difference between the viewer and compositor is
2144 the compositor reflects the state of the program while the viewer
2145 reflects the state of a clip but not the program.
2147 <p>When you hit the <em>label button</em> in the compositor, the label
2148 appears both in the compositor timebar and the program timebar.
2150 <p>When you select a label or in/out point in the compositor, the program
2151 window jumps to that position.
2153 <br><p>
2154 <img src="viewer_labels.png" alt="viewer_labels.png"> <em>Labels and in/out points in the viewer</em>.
2156 <p>In the viewer and compositor, labels and in/out points are displayed in
2157 the timebar. Instead of displaying just a region of the program, the
2158 timebar displays the entire program here.
2160 <p>Like the Program window, the Compositor has a zoom capability. First,
2161 the pulldown menu on the bottom of the compositor window has a number
2162 of zoom options. When set to <em>Auto</em> the video is zoomed to match
2163 the compositor window size as closely as possible. When set to any
2164 other percentage, the video is zoomed a power of 2 and scrollbars can
2165 be used to scroll around the output. When the video is zoomed bigger
2166 than the window size, not only do scrollbars scan around it but
2167 <em>middle mouse button</em> dragging in the video output scans around
2168 it. This is exactly when The Gimp does.
2170 <p>Furthermore, the zoom <img src="magnify.png" alt="magnify.png"> toggle causes the Compositor
2171 window to enter zoom mode. In zoom mode, clicking in the video output
2172 zooms in while <em>ctrl-clicking</em> in the video output zooms out. If
2173 you have a wheel mouse, rotating the wheel zooms in or out too.
2175 <p>Zooming in or out with the zoom tool does not change the rendered
2176 output, mind you. It's merely for scrutinizing video or fitting it in
2177 the desktop.
2179 <div class="node">
2180 <p><hr>
2181 Node:<a name="NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>,
2182 Next:<a rel="next" accesskey="n" href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>,
2183 Previous:<a rel="previous" accesskey="p" href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>,
2184 Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
2185 <br>
2186 </div>
2188 <h3 class="section">NAVIGATING THE RESOURCES</h3>
2190 <p>The resource window is divided into two areas. One area lists folders
2191 and another area lists folder contents. Going into the folder list and
2192 clicking on a folder updates the contents area with the contents of
2193 that folder.
2195 <p>The folder and contents can be displayed as icons or text.
2197 <p><em>Right clicking</em> in the folder or contents area brings up a menu
2198 containing formatting options. Select <em>Display text</em> to display a
2199 text listing. Select <em>Sort items</em> to sort the contents of the
2200 folder alphabetically.
2202 <div class="node">
2203 <p><hr>
2204 Node:<a name="USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>,
2205 Next:<a rel="next" accesskey="n" href="#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING</a>,
2206 Previous:<a rel="previous" accesskey="p" href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>,
2207 Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
2208 <br>
2209 </div>
2211 <h3 class="section">USING THE TRANSPORT CONTROLS</h3>
2213 <p>Transport controls are just as useful in navigation as they are in
2214 playing back footage, hence they are described here. Each of the
2215 Viewer, Compositor, and Program windows has a transport panel.
2217 <br><p>
2218 <img src="transport_panel.png" alt="transport_panel.png"> <em>The transport panel</em>.
2220 <p>The transport panel is controlled by the keyboard as well as the
2221 graphical interface. For each of the operations it performs, the
2222 starting position is the position of the insertion point or slider.
2223 The ending position is either the end or start of the timeline or the
2224 end or start of the selected region if there is one.
2226 <p>The orientation of the end or start depends on the direction of
2227 playback. If it's forward the end position is the end of the selected
2228 region. If it's backward the end position is the start of the selected
2229 region.
2231 <p>The insertion point moves to track playback. When playback stops it
2232 leaves the insertion point where it stopped. Thus, by playing back you
2233 change the position of the insertion point.
2235 <p>The keyboard interface is usually the fastest and has more speeds. The
2236 transport keys are arranged in a <em>T</em> on the number pad.
2238 <ul>
2240 <li><em>+</em> Fast reverse
2241 <li><em>6</em> Normal reverse
2242 <li><em>5</em> Slow reverse
2243 <li><em>4</em> Frame reverse
2244 <li><em>1</em> Frame forward
2245 <li><em>2</em> Slow forward
2246 <li><em>3</em> Normal forward
2247 <li><em>Enter</em> Fast forward
2248 <li><em>0</em> Stop
2249 <li><em>Spacebar</em> Normal forward
2250 </ul>
2252 <p>Hitting any key on the keyboard twice pauses it.
2254 <p>When using frame advance functions the behavior may seem odd. If you
2255 frame advance forward and then frame advance backward, the displayed
2256 frame doesn't change. This is because the playback position isn't the
2257 frame but the time between two frames. The rendered frame is the area
2258 that the playback position crosses. When you increment the time
2259 between two frames by one and decrement it by one, you cross the same
2260 frame both times and so the same frame is displayed.
2262 <div class="node">
2263 <p><hr>
2264 Node:<a name="USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING</a>,
2265 Previous:<a rel="previous" accesskey="p" href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>,
2266 Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
2267 <br>
2268 </div>
2270 <h3 class="section">USING BACKGROUND RENDERING</h3>
2272 <p>Background rendering allows impossibly slow effects to play back in
2273 realtime shortly after the effect is pasted in the timeline. It
2274 continuously renders temporary output. When renderfarm is enabled,
2275 background rendering uses the renderfarm continuously. This way, any
2276 size video can be seen in realtime merely by creating a fast enough
2277 network with enough nodes.
2279 <p>Background rendering is enabled in settings-&gt;preferences-&gt;performance.
2280 It has one interactive function: <em>settings-&gt;set background render</em>. This
2281 sets the point where background rendering begins to where the in point
2282 is. If any video exists, a red bar appears in the time bar showing
2283 what has been background rendered.
2285 <p>It's often useful to insert an effect or a transition and then select
2286 settings-&gt;set background render right before the effect to preview it
2287 in full framerates.
2289 <div class="node">
2290 <p><hr>
2291 Node:<a name="EDITING">EDITING</a>,
2292 Next:<a rel="next" accesskey="n" href="#USING%20EFFECTS">USING EFFECTS</a>,
2293 Previous:<a rel="previous" accesskey="p" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>,
2294 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
2295 <br>
2296 </div>
2298 <h2 class="chapter">EDITING</h2>
2300 <p>Editing comprises both the time domain and the track domain. Since the
2301 timeline consists of a stack of tracks, you need to worry about how to
2302 sort and create tracks in addition to what time certain media appears
2303 on a track.
2305 <p>In the time domain, Cinelerra offers many ways to approach the editing
2306 process. The three main methods are two screen editing, drag and drop
2307 editing, and cut and paste editing.
2309 <p>There are several concepts Cinelerra uses when editing which apply to
2310 all the methods. The <b>timeline</b> is where all editing decisions are
2311 represented. This is a stack of tracks in the center of the main
2312 window. It can be scrolled up, down, left and right with the
2313 scrollbars on the right and bottom of it. It can also be scrolled up
2314 and down with a mouse wheel.
2316 <p>The <b>active region</b> is the range of time which is affected by editing
2317 commands on the timeline. The active region is determined first by the
2318 presence of in/out points in the timeline. If those don't exist the
2319 highlighted region is used. If no highlighted region exists the
2320 insertion point is used as the start of the active region. Some
2321 commands treat all the space to the right of the insertion point as
2322 active, like <b>Render</b>, while others treat the active length as 0 if no
2323 end point for the active region is defined.
2325 <p>Finally, editing decisions never affect source material. This is
2326 <b>non destructive editing</b> and it became popular with audio because it
2327 was much faster than if you had to copy all the media affected by an
2328 edit. Editing only affects pointers to source material, so if you want
2329 to have a media file at the end of your editing session which
2330 represents the editing decisions, you need to <em>render</em> it.
2331 See <a href="#RENDERING%20FILES">RENDERING FILES</a>.
2333 <p>Every track on the timeline has a set of attributes on
2334 the left, the most important of which is the <em>arm track</em>
2335 attribute.
2337 <ul class="menu">
2338 <li><a accesskey="1" href="#THE%20PATCHBAY">THE PATCHBAY</a>: Enabling different features on different tracks
2339 <li><a accesskey="2" href="#NUDGING%20TRACKS">NUDGING TRACKS</a>: Moving entire tracks horizontally
2340 <li><a accesskey="3" href="#MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>: Moving whole tracks around
2341 <li><a accesskey="4" href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>: Using two video windows to edit
2342 <li><a accesskey="5" href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>: Dragging objects to edit
2343 <li><a accesskey="6" href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>: Editing media like text
2344 <li><a accesskey="7" href="#TRIMMING">TRIMMING</a>: Changing in and out points
2345 </ul>
2347 <div class="node">
2348 <p><hr>
2349 Node:<a name="THE%20PATCHBAY">THE PATCHBAY</a>,
2350 Next:<a rel="next" accesskey="n" href="#NUDGING%20TRACKS">NUDGING TRACKS</a>,
2351 Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
2352 <br>
2353 </div>
2355 <h3 class="section">THE PATCHBAY</h3>
2357 <p>On the left of the timeline is a region affectionately known as the
2358 patchbay. The patchbay enables features specific to each track. All
2359 tracks have a text area for naming the track.
2361 <p>All tracks have an <b>expander</b> <img src="expandpatch_checked.png" alt="expandpatch_checked.png"> for viewing
2362 more options and for viewing the effects on the track. Click on the
2363 expander to expand or collapse the track. If it's pointing sideways,
2364 the track is collapsed. If it's pointing down, the track is expanded.
2365 The effects appear below the media for the track if they exist.
2367 <p>All tracks have the following row of toggles for several features.
2369 <br><p>
2370 <img src="track_attributes.png" alt="track_attributes.png">
2371 <em>Track attributes</em>
2373 <p>If the toggle is colored, it is enabled. If the toggle is the
2374 background color of most of the windows, it is disabled. Click on the
2375 toggle to enable or disable the feature. Several mouse operations
2376 speed up the configuration of several tracks at a time.
2378 <p>Click on an attribute and drag across adjacent tracks to toggle the
2379 same attribute in those tracks.
2381 <p>Hold down <b>shift</b> while clicking a track's attribute to toggle the
2382 attribute in all the tracks.
2384 <p>Hold down <b>shift</b> while clicking an attribute. Click until all the
2385 tracks except the selected one are disabled. Then drag the cursor over
2386 the adjacent track to enable the attribute in the adjacent track.
2388 <p>The other attributes affect the output of the track.
2390 <ul>
2392 <li>
2393 <b>Play track</b> determines whether the track is rendered or not. If
2394 it's off, the track is not rendered. However, if the track is chained
2395 to any other tracks, the other tracks perform all the effects in the
2396 chained track, regardless of play status.
2397 <br><p>
2398 <li>
2399 <b>Arm track</b> determines whether the track is armed or not. Only the
2400 <em>armed tracks</em> are affected by editing operations. Make sure you
2401 have enough armed destination tracks when you paste or splice material
2402 or some tracks in the material will get left out.
2404 <p>In addition to restricting editing operations, the armed tracks in
2405 combination with the active region determine where material is inserted
2406 when loading files. If the files are loaded with one of the insertion
2407 strategies which doesn't delete the existing project, the armed tracks
2408 will be used as destination tracks.
2410 </p><li>
2411 <b>Gang fader</b> causes the fader to track the movement of whatever other
2412 fader you're adjusting. A fader is only ganged if the <b>arm track</b> is
2413 also on. This is normally used to adjust audio levels on all the
2414 tracks simultaneously.
2415 <br><p>
2416 <li>
2417 <b>Draw media</b> determines if picons or waveforms are drawn on the
2418 track. By default, some file formats load with this off while other
2419 file formats load with it on. This depends on whether the file format
2420 takes a long time to draw on the timeline. Merely set it to on if you
2421 want to see picons for any file format.
2422 <br><p>
2423 <li>
2424 <b>Mute track</b> causes the output to be thrown away once the track is
2425 completely rendered. This happens whether or not <b>play track</b> is
2426 on. If the track is part of an effect chain, the output of the effect
2427 chain track is overlayed on the final output even though it's routed
2428 back to another track. Mute track is used to keep the effect chain
2429 track from overlapping the output of the source track.
2430 <br><p>
2431 <li>
2432 <b>Fader</b> All tracks have a fader, but the units of each fader depend
2433 on whether it's audio or video. Click and drag the fader to fade the
2434 track in and out. If it is ganged to other tracks of the same media
2435 type, with the <b>arm</b> option enabled, the other faders should follow.
2437 <p>Hold down <b>shift</b> and drag a fader to center it on 0.
2439 </ul>
2441 <div class="node">
2442 <p><hr>
2443 Node:<a name="NUDGING%20TRACKS">NUDGING TRACKS</a>,
2444 Next:<a rel="next" accesskey="n" href="#MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>,
2445 Previous:<a rel="previous" accesskey="p" href="#THE%20PATCHBAY">THE PATCHBAY</a>,
2446 Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
2447 <br>
2448 </div>
2450 <h3 class="section">NUDGING TRACKS</h3>
2452 <p>Each track has a nudge textbox in the patchbay under the fader and on
2453 the right. You may have to expand the track to see it. The nudge is
2454 the amount the track is shifted left or right during playback. The
2455 track is not displayed shifted on the timeline, but it is shifted when
2456 it's played back. This is useful for synchronizing audio with video,
2457 creating fake stereo, or compensating for an effect which shifts time,
2458 all without tampering with any edits.
2460 <p>Merely enter in the amount of time to shift by to instantly shift the
2461 track. Negative numbers make the track play later. Positive numbers
2462 make the track play sooner. The nudge units are either <b>seconds</b> or
2463 the native units for the track. Select the units by <b>right clicking</b>
2464 on the nudge textbox and using the context sensitive menu.
2466 <div class="node">
2467 <p><hr>
2468 Node:<a name="MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>,
2469 Next:<a rel="next" accesskey="n" href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>,
2470 Previous:<a rel="previous" accesskey="p" href="#NUDGING%20TRACKS">NUDGING TRACKS</a>,
2471 Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
2472 <br>
2473 </div>
2475 <h3 class="section">MANIPULATING TRACKS</h3>
2477 <p>Tracks in Cinelerra either contain audio or video. There is no special
2478 designation for tracks other than the type of media they contain. When
2479 you create a new project, it contains a certain mumber of default
2480 tracks. You can still add or delete tracks from a number of menus.
2481 The <em>Tracks</em> menu contains a number of options for dealing with
2482 multiple tracks simultaneously. Each track itself has a popup menu
2483 which affects one track.
2485 <p>Bring up the popup menu by moving over a track and right clicking. The
2486 popup menu affects the track whether it's armed or not.
2488 <p><em>Move up</em> and <em>move down</em> moves the one track up or down in
2489 the stack. <em>Delete track</em> deletes the track.
2491 <p>Operations in the <em>Tracks</em> menu affect only tracks which are
2492 armed.
2494 <p><em>Move tracks up</em> and <em>Move tracks down</em> shift all the armed
2495 tracks up or down the stack.
2497 <p><em>Delete tracks</em> deletes the armed tracks.
2499 <p><em>Delete last track</em> deletes the last track, whether it's armed or
2500 not. Holding down the <em>d</em> key quickly deletes all the tracks.
2502 <p><em>Concatenate tracks</em> is more complicated. It takes every
2503 <em>playable</em> track and concatenates it to the end of the first
2504 <em>armed tracks</em>. If there are two armed tracks followed by two
2505 playable tracks, the concatenate operation puts the two playable tracks
2506 after the two armed tracks. If there are three playable tracks
2507 instead, two tracks are put after the armed tracks and a third track is
2508 put on the end of the first armed track. The destination track wraps
2509 around until all the playable tracks are concatenated.
2511 <p>Finally, you'll want to create new tracks. The <em>Audio</em> and
2512 <em>Video</em> menus each contain an option to add a track of their
2513 specific type. In the case of audio, the new track is put on the
2514 bottom of the timeline and the output channel of the audio track is
2515 incremented by one. In the case of video, the new track is put on the
2516 top of the timeline. This way, video has a natural compositing order.
2517 New video tracks are overlayed on top of old tracks.
2519 <div class="node">
2520 <p><hr>
2521 Node:<a name="TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>,
2522 Next:<a rel="next" accesskey="n" href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>,
2523 Previous:<a rel="previous" accesskey="p" href="#MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>,
2524 Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
2525 <br>
2526 </div>
2528 <h3 class="section">TWO SCREEN EDITING</h3>
2530 <p>This is the fastest way to construct a program out of movie files. The
2531 idea consists of viewing a movie file in one window and viewing the
2532 program in another window. Sections of the movie file are defined in
2533 one window and transferred to the end of the program in the other
2534 window.
2536 <p>The way to begin a two screen editing session is to load some
2537 resources. In <em>file-&gt;load</em> load some movies with the insertion
2538 mode <em>create new resources</em>. You want the timeline to stay
2539 unchanged while new resources are brought in. Go to the Resource
2540 Window and select the <em>media</em> folder. The newly loaded resources
2541 should appear. Drag a resource from the media side of the window over
2542 the Viewer window.
2544 <p>There should be enough armed tracks on the timeline to put the sections
2545 of source material that you want. If there aren't, create new tracks
2546 or arm more tracks.
2548 <p>In the viewer window seek to the starting point of a clip you want to
2549 use. Use either the <em>slider</em> or the <em>transport controls</em>.
2550 Use the <em>preview region</em> to narrow down the search. Set the
2551 starting point with the <img src="in_point_button.png" alt="in_point_button.png"> <em>in point button</em>.
2553 <p>Seek to the ending point of the clip you want to use. Set the ending
2554 point with the <img src="out_point_button.png" alt="out_point_button.png"> <em>out point button</em>. The
2555 two points should now appear on the timebar and define a clip.
2557 <p>There are several things you can do with the clip now.
2559 <ul>
2561 <li>
2562 Splice <img src="splice_button.png" alt="splice_button.png"> inserts the clip in the timeline, pushing
2563 everything back. If an <em>in point</em> or <em>out point</em> exists on
2564 the timeline it's inserted there, otherwise it's inserted after the
2565 insertion point. After that, the insertion point moves to the end of
2566 the clip. If there is no in/out point, the insertion point will be
2567 used as the next splice location. This way you can continuously build
2568 up the program by splicing.
2570 <li>
2571 Overwrite <img src="overwrite_button.png" alt="overwrite_button.png"> overwrites the region of the
2572 timeline with the clip. If an <em>in point</em> or <em>out point</em>
2573 exists on the timeline it's overwritten there, otherwise it's
2574 overwritten after the insertion point. If a region is highlighted or
2575 both in and out points exist the difference between the active region
2576 and the clip length is deleted.
2578 <li>
2579 Create a clip <img src="toclip_button.png" alt="toclip_button.png"> generates a new clip for the
2580 resource window containing the affected region but doesn't change the
2581 timeline. Every clip has a title and a description. These are
2582 optional.
2584 <li>
2585 Copy behaves the same as in cut and paste editing.
2587 </ul>
2589 <p>Two screen editing can be done purely by keybard shortcuts. When you
2590 move the pointer over any button a tooltip should appear, showing what
2591 key is bound to that button. In the Viewer window, the number pad keys
2592 control the transport and the <em>[ ] v</em> keys perform in/out points
2593 and splicing.
2595 <div class="node">
2596 <p><hr>
2597 Node:<a name="DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>,
2598 Next:<a rel="next" accesskey="n" href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>,
2599 Previous:<a rel="previous" accesskey="p" href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>,
2600 Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
2601 <br>
2602 </div>
2604 <h3 class="section">DRAG AND DROP EDITING</h3>
2606 <p>The answer is yes, you can you create a bunch of clips and drag them on
2607 the timeline. You can also drag edits around the timeline.
2609 <p>Load some files using <em>file-&gt;load</em>. Set the insertion mode to
2610 <em>Create new resources</em>. This loads the files into the Resource
2611 Window. Create some audio and video tracks on the timeline using the
2612 video and audio menus.
2614 <p>Open the <em>Media</em> folder in the resource window. Drag a media file
2615 from the resource window to the timeline. If the media has video, drag
2616 it onto a video track. If the media is pure audio, drag it onto an
2617 audio track.
2619 <p>Cinelerra fills out the audio and video tracks below the dragging
2620 cursor with data from the file. This affects what tracks you should
2621 create initially and which track to drag the media onto. If the media
2622 has one video track and two audio tracks, you'll need one video track
2623 and two audio tracks on the timeline and the media should be dragged
2624 over the first video track. If the media has audio only you'll need
2625 one audio track on the timeline for every audio track in the media and
2626 the media should be dragged over the first audio track.
2628 <p>When dragging, the media snaps to the start of track if the track is
2629 empty. If there are edits on the track, the media snaps to the nearest
2630 edit boundary.
2632 <p>You can also drag multiple files from the resource window. Either draw
2633 a box around the files, use SHIFT, or use CTRL when selecting files.
2634 When you drop the files in the timeline, they are concatenated. The
2635 behavior of SHIFT and CTRL changes depending on if the resources are in
2636 text or icons.
2638 <p>To display the resources as text or icons, right click inside the media
2639 list. Select either <em>display icons</em> or <em>display text</em> to
2640 change the list format.
2642 <p>When displaying text in the resource window <em>SHIFT-clicking</em> on
2643 media files extends the number of highlighted selections.
2644 <em>CTRL-clicking</em> on media files in text mode selects additional
2645 files one at a time.
2647 <p>When displaying icons in the resource window <em>SHIFT-clicking</em> or
2648 <em>CTRL-clicking</em> selects media files one at a time.
2650 <p>In addition to dragging media files, if you create clips and open the
2651 <em>clip</em> folder you can drag clips on the timeline.
2653 <p>In the timeline there is further dragging functionality. To enable the
2654 dragging functionality of the timeline, select the arrow toggle
2655 <img src="arrow.png" alt="arrow.png">. Move over an edit and drag it. If more than one
2656 track is armed, Cinelerra will drag any edits which start on the same
2657 position as the edit the cursur is currently over. During a dragging
2658 operation the edit snaps to the nearest boundary.
2660 <p>Dragging edits around the timeline allows you to sort music playlists,
2661 sort movie scenes, and give better NAB demos but not much else.
2663 <div class="node">
2664 <p><hr>
2665 Node:<a name="CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>,
2666 Next:<a rel="next" accesskey="n" href="#TRIMMING">TRIMMING</a>,
2667 Previous:<a rel="previous" accesskey="p" href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>,
2668 Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
2669 <br>
2670 </div>
2672 <h3 class="section">CUT AND PASTE EDITING</h3>
2674 <p>This is the traditional method of editing in audio editors. In the
2675 case of Cinelerra, you either need to start a second copy of Cinelerra
2676 and copy from one copy to the other, copy from different tracks in the
2677 same copy, or load a media file into the Viewer and copy from there.
2679 <p>Load some files onto the timeline. To perform cut and paste editing
2680 select the <img src="ibeam.png" alt="ibeam.png"> i-beam toggle. Select a region of the
2681 timeline and select the <img src="cut.png" alt="cut.png"> cut button to cut it. Move the
2682 insertion point to another point in the timeline and select the
2683 <img src="paste.png" alt="paste.png"> paste button. Assuming no in/out points are defined on
2684 the timeline this performs a cut and paste operation.
2686 <p>If in/out points are defined, the insertion point and highlighted
2687 region are overridden by the in/out points for clipboard operations.
2688 Thus, with in/out points you can perform cut and paste in drag and drop
2689 mode as well as cut and paste mode.
2691 <p>When editing audio, it is customary to cut from one part of a waveform
2692 into the same part of another waveform. The start and stop points of
2693 the cut are identical in each waveform and might be offset slightly,
2694 while the wave data is different. It would be very hard to highlight
2695 one waveform to cut it and highlight the second waveform to paste it
2696 without changing the relative start and stop positions.
2698 <p>One option for simplifying this is to open a second copy of Cinelerra,
2699 cutting and pasting to transport media between the two copies. This
2700 way two highlighed regions can exist simultanously.
2702 <p>Another option is to set in/out points for the source region of the
2703 source waveform and set labels for the destination region of the
2704 destination waveform. Perform a cut, clear the in/out points, select
2705 the region between the labels, and perform a paste.
2707 <p>A final operation in cut and paste editing is the <em>edit-&gt;clear</em>
2708 operation. If a region is highlighted or in/out points exist, the
2709 affected region is cleared by <em>edit-&gt;clear</em>. But if the insertion
2710 point is over an edit boundary and the edits on each side of the edit
2711 boundary are the same resource, the edits are combined into one edit
2712 comprised by the resource. The start of this one edit is the start of
2713 the first edit and the end of this one edit is the end of the second
2714 edit. This either results in the edit expanding or shrinking.
2716 <div class="node">
2717 <p><hr>
2718 Node:<a name="TRIMMING">TRIMMING</a>,
2719 Previous:<a rel="previous" accesskey="p" href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>,
2720 Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
2721 <br>
2722 </div>
2724 <h3 class="section">TRIMMING</h3>
2726 <p>With some edits on the timeline it's possible to do trimming. By
2727 trimming you shrink or grow the edit boundaries by dragging them. In
2728 either drag and drop mode or cut and paste mode, move the cursor over
2729 an edit boundary until it changes shape. The cursor will either be an
2730 expand left or an expand right. If the cursor is an expand left, the
2731 dragging operation affects the beginning of the edit. If the cursor is
2732 an expand right, the dragging operation affects the end of the edit.
2734 <p>When you click on an edit boundary to start dragging, the mouse button
2735 number determines which dragging behavior is going to be followed. 3
2736 possible behaviors are bound to mouse buttons in the interface
2737 preferences. See <a href="#INTERFACE">INTERFACE</a>.
2739 <p>The effect of each drag operation not only depends on the behavior
2740 button but whether the beginning or end of the edit is being dragged.
2741 When you release the mouse button, the trimming operation is performed.
2743 <p>In a <em>Drag all following edits</em> operation, the beginning of the
2744 edit either cuts data from the edit if you move it forward or pastes
2745 new data from before the edit if you move it backward. The end of the
2746 edit pastes data into the edit if you move it forward or cuts data from
2747 the end of the edit if you move it backward. All the edits thereafter
2748 shift. Finally, if you drag the end of the edit past the start of the
2749 edit, the edit is deleted.
2751 <p>In a <em>Drag only one edit</em> operation, the behavior is the same when
2752 you drag the beginning or end of an edit. The only difference is none
2753 of the other edits in the track shift. Instead, anything adjacent to
2754 the current edit expands or shrinks to fill gaps left by the drag
2755 operation.
2757 <p>In a <em>Drag source only</em> operation, nothing is cut or pasted. If
2758 you move the beginning or end of the edit forward, the source reference
2759 in the edit shifts forward. If you move the beginning or end of the
2760 edit backward, the source reference shifts backward. Where the edit
2761 appears in the timeline remains the same but the source shifts.
2763 <p>For all file formats besides still images, the extent of the trimming
2764 operation is clamped to the source file length. Attempting to drag the
2765 start of the edit beyond the start of the source clamps it to the
2766 source start.
2768 <p>In all trimming operations, all edits which start on the same position
2769 as the cursor when the drag operation begins are affected. Unarm
2770 tracks to prevent edits from getting affected.
2772 <div class="node">
2773 <p><hr>
2774 Node:<a name="USING%20EFFECTS">USING EFFECTS</a>,
2775 Next:<a rel="next" accesskey="n" href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>,
2776 Previous:<a rel="previous" accesskey="p" href="#EDITING">EDITING</a>,
2777 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
2778 <br>
2779 </div>
2781 <h2 class="chapter">USING EFFECTS</h2>
2783 <p>It would be sufficient to perform all changes to the timeline using
2784 editing operations, but this isn't very extensible. Certain timeline
2785 changes should produce a different effect in the output without
2786 involving a unique procedure to apply each change. This is why we have
2787 effects.
2789 <p>Effects fall into three categories, and each effect in a category is
2790 applied using the same procedure.
2792 <ul class="menu">
2793 <li><a accesskey="1" href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>:
2794 <li><a accesskey="2" href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>:
2795 <li><a accesskey="3" href="#TRANSITIONS">TRANSITIONS</a>:
2796 <li><a accesskey="4" href="#LADSPA%20EFFECTS">LADSPA EFFECTS</a>:
2797 </ul>
2799 <div class="node">
2800 <p><hr>
2801 Node:<a name="REALTIME%20EFFECTS">REALTIME EFFECTS</a>,
2802 Next:<a rel="next" accesskey="n" href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>,
2803 Up:<a rel="up" accesskey="u" href="#USING%20EFFECTS">USING EFFECTS</a>
2804 <br>
2805 </div>
2807 <h3 class="section">REALTIME EFFECTS</h3>
2809 <p>These are layered under the track they apply to. They process the
2810 track when the track is played back, with no permanent storage of the
2811 output except when the project is rendered.
2813 <p>All the realtime effects are listed in the resource window, divided
2814 into two groups: audio effects and video effects. Audio effects should
2815 be dragged from the resource window onto audio tracks. Video effects
2816 should be dragged onto video tracks.
2818 <p>If there is data on the destination track, the effect is applied to the
2819 entire track. If there is no data on the track the effect is deleted.
2820 Finally, if a region of the track is selected the effect is pasted into
2821 the region, regardless of whether there is data.
2823 <p>Some of the effects don't process data but synthesize data. In the
2824 case of a synthesis effect, you'll want to select a region of the
2825 track so the dragging operation pastes it without deleting it.
2827 <p>When dragging more than one effect onto a track, you'll see the effects
2828 layering from top to bottom, on the bottom of the track. When the
2829 track is played back, effects are processed from top to bottom. The
2830 output of the top effect becomes the input of the bottom effect and so
2831 on and so forth.
2833 <p>In addition to dragging from the resource window, effects may be
2834 applied to a track by a popup menu. Right click on a track and select
2835 <em>Attach effect</em> from the popup. The attach effect dialog gives
2836 you more control than pure dragging and dropping. For one thing, the
2837 attach effect dialog lets you attach two more types of effects: shared
2838 effects and shared tracks. Select a plugin from the <em>Plugins</em>
2839 column and hit <em>Attach</em> under the plugins column to attach it.
2840 The effect is the same as if the effect was dragged from the resource
2841 window.
2843 <p>When an effect exists under a track, it most often needs to be
2844 configured. Go to the effect and right click on it to bring up the
2845 effect popup. In the effect popup is a <em>show</em> option. The show
2846 option causes the GUI for the effect to appear under the cursor. Most
2847 effects have GUI's but some don't. If the effect doesn't have a GUI,
2848 nothing pops up when the <em>show</em> option is selected. When you
2849 tweek parameters in the effect GUI, the parameters normally effect the
2850 entire duration of the effect.
2852 <ul class="menu">
2853 <li><a accesskey="1" href="#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES</a>:
2854 <li><a accesskey="2" href="#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS</a>:
2855 </ul>
2857 <div class="node">
2858 <p><hr>
2859 Node:<a name="REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES</a>,
2860 Next:<a rel="next" accesskey="n" href="#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS</a>,
2861 Up:<a rel="up" accesskey="u" href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>
2862 <br>
2863 </div>
2865 <h4 class="subsection">REALTIME EFFECT TYPES</h4>
2867 <p>The two other effect types supported by the Attach Effect dialog are
2868 recycled effects. In order to use a recycled effect, three requiremenets
2869 must be met:
2871 <ul>
2873 <li>There must be other effects in the timeline.
2875 <li>
2876 The other effects must be of the same type as the track you're
2877 attaching an effect to. If the track is an audio track, the effects
2878 must be audio effects. If the track is a video track, the effects must
2879 be video effects.
2881 <li>
2882 The insertion point or selected region must start inside the other effects.
2884 </ul>
2886 <p>In the case of a shared effect, these conditions must be true. In the
2887 case of a shared track, there merely must be another track on the
2888 timeline of the same type as the track you're applying an effect to.
2889 If you right clicked on a video track to attach an effect, there won't
2890 be anything in the <em>shared tracks</em> column if no other video track
2891 exists. If you right clicked on an audio track there won't be anything
2892 in the shared track column if no other audio track exists.
2894 <p>If shared effects or shared tracks are available, they appear in the
2895 <em>shared effects</em> and <em>shared tracks</em> columns. The
2896 <em>attach</em> button under each column causes anything highlighted in
2897 the column to be attached under the current track.
2899 <p>Shared effects and shared tracks allow very unique things to be done.
2900 In the case of a shared effect, the shared effect is treated like a
2901 copy of the original effect except in the shared effect the GUI can't
2902 be brought up. All configuration of the shared effect is determined by
2903 the GUI of the original effect and only the GUI of the original effect
2904 can be brought up.
2906 <p>When a shared effect is played back, it's processed just like a normal
2907 effect except the configuration is copied from the original effect.
2908 Some effects detect when they are being shared, like the reverb effects
2909 and the compressor. These effects determine what tracks are sharing
2910 them and either mix the two tracks together or use one track to stage
2911 some value. The reverb mixes tracks together to simulate ambience.
2912 The compressor uses one of the sharing tracks as the trigger.
2914 <p>When an original track has a <em>shared track</em> as one of its effects,
2915 the shared track itself is used as a realtime effect. This is more
2916 commonly known as <em>bouncing tracks</em> but Cinelerra achieves the
2917 same operation by attaching shared tracks. The fade and any effects in
2918 the shared track are applied to the original track. Once the shared
2919 track has processed the data, the original track performs any effects
2920 which come below the shared track and then composites it on the output.
2922 <p>In addition, once the shared track has processed the output of the
2923 original track like a realtime effect, the shared track mixes itself
2924 into the output with it's settings for pan, mode, and projector. Thus,
2925 two tracks are mixing the same data on the output. Most of the time
2926 you don't want the shared track to mix the same data as the original
2927 track on the output. You want it to stop right before the mixing stage
2928 and give the data back to the original track. Do this by enabling the
2929 <img src="mutepatch_up.png" alt="mutepatch_up.png"> mute toggle next to each track for whom you don't
2930 want to mix on the output.
2932 <p>Suppose you were making video and you did want the shared track to
2933 composite the original track's data on the output a second time. In
2934 the case of video, the video from the shared track would always appear
2935 under the video from the original track, regardless of whether it was
2936 on top of the original track. This is because shared tracks are
2937 composited in order of their attachment. Since it's part of the original
2938 track it has to be composited before the original track is composited.
2940 <div class="node">
2941 <p><hr>
2942 Node:<a name="EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS</a>,
2943 Previous:<a rel="previous" accesskey="p" href="#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES</a>,
2944 Up:<a rel="up" accesskey="u" href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>
2945 <br>
2946 </div>
2948 <h4 class="subsection">EDITING REALTIME EFFECTS</h4>
2950 <p>Many operations exist for manipulating effects once they are in the
2951 timeline. Because mixing effects and media is such complex business,
2952 the methods used in editing effects aren't as concise as cutting and
2953 pasting. Some of the editing happens by dragging in/out points, some
2954 of the editing happens through popup menus, and some of it happens by
2955 dragging effects.
2957 <p>Normally when you edit tracks, the effects follow the editing
2958 decisions. If you cut from a track, the effect shrinks. If you drag
2959 edit in/out points, the effect changes length. This behavior can be
2960 disabled by selecting <em>Settings-&gt;edit effects</em> in the project
2961 window. This decouples effects from editing operations, but what if
2962 you just want to edit the effects?
2964 <p>Move the timeline cursor over the effect borders until it changes to a
2965 resize left or resize right icon. In this state, if you drag the end
2966 of the effect, it performs an edit just like dragging the end of a
2967 track does.
2969 <p>The three editing behaviors of track trimming apply to effect trimming
2970 and they are bound to the mouse buttons that you set in <em>interface
2971 preferences</em>. See <a href="#INTERFACE">INTERFACE</a>. When you perform a trim edit on an
2972 effect, the effect boundary is moved by dragging on it. Unlike track
2973 editing, the effect has no source length. You can extend the end of an
2974 effect as much as desired without being limited.
2976 <p>Also unlike track editing, the starting position of the drag operation
2977 doesn't bind the edit decision to media. The media the effect is bound
2978 to doesn't follow effect edits. Other effects; however, do follow
2979 editing decisions made on an effect. If you drag the end of an effect
2980 which is lined up to effects on other tracks, the effects on the other
2981 tracks will be edited while the media stays the same.
2983 <p>What happens if you trim the end of an effect in, leaving a lot of
2984 unaffected time near the end of the track? When you drag an effect in
2985 from the Resource Window you can insert the effect in the portion of
2986 the row unoccupied by the trimming operation. Realtime effects are
2987 organized into rows under the track. Each row can have multiple
2988 effects.
2990 <p>In addition to trimming, you can move effects up or down. Every track
2991 can have a stack of effects under it. By moving an effect up or down
2992 you change the order in which effects are processed in the stack. Go
2993 to an effect and right click to bring up the effect menu. The
2994 <em>Move up</em> and <em>Move down</em> options move the effect up or down.
2996 <p>When you're moving effects up or down, be aware that if they're shared
2997 as <em>shared effects</em>, any references will be pointing to a
2998 different effect after the move operation.
3000 <p>Finally, there's dragging of effects. Dragging effects works just like
3001 dragging edits. You must select the <img src="arrow.png" alt="arrow.png"> arrow to enter drag and
3002 drop mode before dragging effects. The effects snap to media
3003 boundaries, effect boundaries, and tracks. Be aware if you drag a
3004 reference to a shared effect, the reference will usually point to the
3005 wrong effect afterwards.
3007 <p>Right click on an effect to bring up a menu for the effect. Select
3008 <em>attach...</em> to change the effect or change the reference if it is
3009 a shared effect.
3011 <div class="node">
3012 <p><hr>
3013 Node:<a name="RENDERED%20EFFECTS">RENDERED EFFECTS</a>,
3014 Next:<a rel="next" accesskey="n" href="#TRANSITIONS">TRANSITIONS</a>,
3015 Previous:<a rel="previous" accesskey="p" href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>,
3016 Up:<a rel="up" accesskey="u" href="#USING%20EFFECTS">USING EFFECTS</a>
3017 <br>
3018 </div>
3020 <h3 class="section">RENDERED EFFECTS</h3>
3022 <p>Another type of effect is performed on a section of the track and the
3023 result stored somewhere before it is played back. The result is
3024 usually pasted into the track to replace the original data.
3026 <p>The rendered effects are not listed in the resource window but instead
3027 are accessed through the <em>Audio-&gt;Render effect</em> and
3028 <em>Video-&gt;Render effect</em> menu options. Each of these menu options
3029 brings up a dialog for the rendered effect. Rendered effects apply to
3030 only one type of track, either audio or video. If no tracks of the
3031 type exist, an error pops up.
3033 <p>A region of the timeline to apply the effect to must be defined before
3034 selecting <em>Render effect...</em>. If no in/out points and no
3035 highlighted region exists, the entire region after the insertion point
3036 is treated as the affected region. Otherwise, the region between the
3037 in/out points or the highlighted region is the affected region.
3039 <p>In the render effect dialog is a list of all the realtime and all the
3040 rendered effects. The difference here is that the realtime effects are
3041 rendered to disk and not applied under the track. Highlight an effect
3042 in the list to designate it as the one being performed.
3044 <p>Define a file to render the effect to in the <em>Select a file to
3045 render to</em> box. The <img src="magnify.png" alt="magnify.png"> magnifying glass allows file
3046 selection from a list.
3048 <p>Select a file format which can handle the track type. The
3049 <img src="wrench.png" alt="wrench.png"> wrench allows configuration specific to the file format.
3051 <p>There is also an option for creating a new file at each label. If you
3052 have a CD rip on the timeline which you want to divide into different
3053 files, the labels would become dividing points between the files if
3054 this option were selected. When the timeline is divided by labels, the
3055 effect is re-initialized at every label. Normalize operations take the
3056 peak in the current file and not in the entire timeline.
3058 <p>Finally there is an insertion strategy just like in the render dialog.
3059 It should be noted that even though the effect applies only to audio or
3060 video, the insertion strategy applies to all tracks just like a
3061 clipboard operation.
3063 <p>When you click <em>OK</em> in the effect dialog, it calls the GUI of the
3064 effect. If the effect is also a realtime effect, a second GUI appears
3065 to prompt for acceptance or rejection of the current settings. After
3066 accepting the settings, the effect is processed.
3068 <div class="node">
3069 <p><hr>
3070 Node:<a name="TRANSITIONS">TRANSITIONS</a>,
3071 Next:<a rel="next" accesskey="n" href="#LADSPA%20EFFECTS">LADSPA EFFECTS</a>,
3072 Previous:<a rel="previous" accesskey="p" href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>,
3073 Up:<a rel="up" accesskey="u" href="#USING%20EFFECTS">USING EFFECTS</a>
3074 <br>
3075 </div>
3077 <h3 class="section">TRANSITIONS</h3>
3079 <p>When one edit ends and another edit begins, the default behaviour is to
3080 have the first edit's output immediately become the output of the
3081 second edit when played back. Transitions are a way for the first
3082 edit's output to become the second edit's output with different
3083 variations.
3085 <p>Cinelerra supports audio and video transitions, all of which are listed
3086 in the resource window. Transitions may only apply to the matching
3087 track type. Transitions under <em>audio transitions</em> can only apply
3088 to audio tracks. Transitions under <em>video transitions</em> can only
3089 apply to video tracks.
3091 <p>Load a video file and cut a section from the center so the edit point
3092 is visible on the timeline. Go the resource window and click on the
3093 <em>Video transitions</em> folder. Drag a transition from the transition
3094 list onto the second video edit on the timeline. A box highlights over
3095 where the transition will appear. Releasing it over the second edit
3096 applies the transition between the first and second edit.
3098 <p>You can now scrub over the transition with the transport controls and
3099 watch the output in the <em>Compositor window</em>. Scrubbing with the
3100 insertion point doesn't normally show transitions because the
3101 transition durations are usually too short. The exact point in time
3102 when the transition takes effect isn't straightforward. It starts when
3103 the second edit begins and lasts a certain amount of time into the
3104 second edit. Therefore, the first asset needs to have enough data
3105 after the edit point to fill the transition into the second edit.
3107 <p>Once the transition is in place, it can be edited similarly to an
3108 effect. Move the pointer over the transition and right click to bring
3109 up the transition menu. The <em>show</em> option brings up specific
3110 parameters for the transition in question if there are any. The
3111 <em>length</em> option adjusts the length of the transition in seconds.
3112 Once these two parameters are set, they are applied to future
3113 transitions until they are changed again. Finally, the <em>detach</em>
3114 option removes the transition from the timeline.
3116 <p>Dragging and dropping transitions from the Resource window to the
3117 Program window can be really slow and tiring. Fortunately, once you
3118 drag a transition from the Resource window, the <em>U</em> and <em>u</em>
3119 keys will paste the same transition. The <em>U</em> key pastes the last
3120 video transition and the <em>u</em> key pastes the last audio transition
3121 on all the recordable tracks. If the insertion point or in point is
3122 over an edit, the beginning of the edit is covered by the transition.
3124 <p>It should be noted that when playing transitions from the timeline to a
3125 hardware accelerated video device, the hardware acceleration will
3126 usually be turned off momentarily during the transition and on after
3127 the transition in order to render the transition. Using an
3128 unaccelerated video device for the entire timeline normally removes the
3129 disturbance.
3131 <div class="node">
3132 <p><hr>
3133 Node:<a name="LADSPA%20EFFECTS">LADSPA EFFECTS</a>,
3134 Previous:<a rel="previous" accesskey="p" href="#TRANSITIONS">TRANSITIONS</a>,
3135 Up:<a rel="up" accesskey="u" href="#USING%20EFFECTS">USING EFFECTS</a>
3136 <br>
3137 </div>
3139 <h3 class="section">LADSPA EFFECTS</h3>
3141 <p>LADSPA effects are supported in realtime and rendered mode for audio.
3142 The LADSPA plugins you get from the internet vary in quality. Most
3143 can't be tweeked in realtime very easily and work better when
3144 rendered. Some crash and some can only be applied to one track due to
3145 a lack of reentrancy. Although Cinelerra implements the LADSPA
3146 interface as accurately as possible, multiple tracks of realtime,
3147 simultaneous processing go beyond the majority of LADSPA users. LADSPA
3148 effects appear in the audio folder as the hammer and screwdriver, to
3149 signify that they are Plugins for Linux Audio Developers.
3151 <p>LADSPA Effects are enabled merely by setting the <em>LADSPA_PATH</em>
3152 environment variable to the location of your LADSPA plugins or putting
3153 them in the <em>/usr/lib/cinelerra</em> directory.
3155 <div class="node">
3156 <p><hr>
3157 Node:<a name="SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>,
3158 Next:<a rel="next" accesskey="n" href="#COMPOSITING">COMPOSITING</a>,
3159 Previous:<a rel="previous" accesskey="p" href="#USING%20EFFECTS">USING EFFECTS</a>,
3160 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
3161 <br>
3162 </div>
3164 <h2 class="chapter">SETTING PROJECT ATTRIBUTES</h2>
3166 <p>When you play media files in Cinelerra, the media files have a certain
3167 number of tracks, a certain frame size, a certain sample size, and so
3168 on and so forth. No matter what the media file has; however, it is
3169 still played back according to the project attributes. If an audio
3170 file's samplerate is different than the project attributes, it is
3171 resampled. If a video file's frame size is different than the project
3172 attributes, it is composited on a black frame, either cropped or
3173 bordered with black.
3175 <p>The project attributes are adjusted in <em>settings-&gt;format</em> and in
3176 to a more limited extent in <em>file-&gt;new</em>. When you adjust project
3177 settings in <em>file-&gt;new</em> a new timeline is created with no data.
3178 Every timeline created from this point uses the same settings. When
3179 you adjust settings in <em>settings-&gt;format</em>, the timeline is not
3180 recreated with no data but every timeline created from this point uses
3181 the same settings.
3183 <p>In addition to the traditional settings for sample rate, frame rate,
3184 frame size, Cinelerra uses some unusual settings like <em>channel
3185 positions, color model, and aspect ratio.</em>
3187 <ul>
3189 <li>
3190 Channel positions is the only setting which doesn't affect the output
3191 necessarily. Click on a speaker icon and drag to change the position
3192 of a channel. It is merely a convenience so when more than 2 channels
3193 are used, the pan controls on the timeline are effective. Channels 3,
3194 4, and 5 wouldn't be very adjustible if they occupied the same
3195 locations as channels 1 and 2 on a pan control. Normally a 6 channel
3196 configuration would look like this:
3198 <br><p>
3199 <br><p>
3200 <img src="channelpositions.png" alt="channelpositions.png">
3201 <br><p>
3202 <br><p>
3203 <p>But different channels can be positioned very close together to make
3204 them have the same output.
3206 </p><li>
3207 Color model is very important for video playback. The video is stored
3208 on disk in one colormodel, normally compressed using a YUV derivative.
3209 When played back, Cinelerra decompresses it from the file format
3210 directly into the format of the output device. If effects are
3211 processed, the decompression is into an internal colormodel first and
3212 the internal colormodel is then converted to the format of the output
3213 device. The selection of internal colormodel determines how accurate
3214 and fast the effects are.
3216 <p>Cinelerra colormodels are described using a certain packing order of
3217 components and a certain number of bits for each component. The
3218 packing order is printed on the left and the bit allocation is printed
3219 on the right.
3221 <p><em>RGBA8888</em> uses red, green, blue, and alpha with 8 bits per
3222 channel.
3224 <p>In order to do effects which involve alpha channels, a colormodel with
3225 an alpha channel must be selected. These are RGBA8888, YUVA8888,
3226 RGBA16161616, YUVA16161616. The 4 channel colormodels are notoriously
3227 slower than 3 channel colormodels, with the slowest being
3228 RGBA16161616. Some effects, like fade, work around the need for alpha
3229 channels while other effects, like chromakey, require an alpha channel
3230 to do anything, so it's a good idea to try the effect without alpha
3231 channels.
3233 <p>The YUV colormodels are usually faster than RGB colormodels when using
3234 compressed footage. They also destroy fewer colors than RGB
3235 colormodels. If footage stored as JPEG or MPEG is processed many times
3236 in RGB, the colors will fade while they won't if processed in YUV.
3238 </p><li>
3239 Aspect ratio determines the shape of the video output when using the
3240 X11 video output. The numbers in each direction can be any floating
3241 point number. When drawn on the screen, video pixels are stretched to
3242 match the aspect ratio.
3244 </ul>
3246 <div class="node">
3247 <p><hr>
3248 Node:<a name="COMPOSITING">COMPOSITING</a>,
3249 Next:<a rel="next" accesskey="n" href="#KEYFRAMES">KEYFRAMES</a>,
3250 Previous:<a rel="previous" accesskey="p" href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>,
3251 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
3252 <br>
3253 </div>
3255 <h2 class="chapter">COMPOSITING</h2>
3257 <p>A large amount of Cinelerra's binary size is directed towards
3258 compositing. When you remove the letterboxing from a widescreen show,
3259 you're compositing. Changing the resolution of a show, making a split
3260 screen, and fading in and out among other things are all compositing
3261 operations in Cinelerra. Cinelerra detects when it's in a compositing
3262 operation and plays back through the compositing engine only then.
3263 Otherwise, it uses the fastest decoder available in the hardware.
3265 <p>Compositing operations are done on the timeline and in the Compositor
3266 window. Shortcuts exist in the Resource window for changing project
3267 attributes. Once some video files are on the timeline, the compositor
3268 window is a good place to try compositing.
3270 <ul class="menu">
3271 <li><a accesskey="1" href="#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR</a>:
3272 <li><a accesskey="2" href="#MASKS">MASKS</a>:
3273 <li><a accesskey="3" href="#CROPPING">CROPPING</a>:
3274 <li><a accesskey="4" href="#SAFE%20REGIONS">SAFE REGIONS</a>:
3275 <li><a accesskey="5" href="#OVERLAY%20MODES">OVERLAY MODES</a>:
3276 <li><a accesskey="6" href="#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES</a>:
3277 </ul>
3279 <div class="node">
3280 <p><hr>
3281 Node:<a name="THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR</a>,
3282 Next:<a rel="next" accesskey="n" href="#MASKS">MASKS</a>,
3283 Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
3284 <br>
3285 </div>
3287 <h3 class="section">THE CAMERA AND PROJECTOR</h3>
3289 <p>In the compositor window, the most important functions are the
3290 <img src="camera.png" alt="camera.png"> camera button and the <img src="projector.png" alt="projector.png"> projector
3291 button. These control operation of the camera and projector. Inside
3292 Cinelerra's compositing pipeline, the camera determines where in the
3293 source video the temporary is copied from. The projector determines
3294 where in the output the temporary is copied to. The temporary is a
3295 frame of video in Cinelerra's memory where all graphics processing is
3296 done. Each track has a different temporary which is defined by the
3297 track size. By resizing the tracks you can create splitscreens, pans,
3298 and zooms.
3300 <br><p>
3301 <br><p>
3302 <img src="compositing_pipeline.png" alt="compositing_pipeline.png">
3303 <br><p>
3304 <br><p>
3305 <p><em>Visual representation of the compositing pipeline</em>.
3307 <p>When editing the camera and projector in the compositing window, the
3308 first track with <em>record</em> enabled is the track affected. Even if
3309 the track is completely transparent, it's still the affected track. If
3310 multiple video tracks exist, the easiest way to select one track for
3311 editing is to <em>shift-click</em> on the record icon of the track. This
3312 solos the track.
3314 <p>When the <em>projector</em> button is enabled in the compositor window,
3315 you're in projector editing mode. A guide box appears in the video
3316 window. Dragging anywhere in the video window causes the guide box to
3317 move, hopefully along with the video. <em>shift-dragging</em> anywhere
3318 in the video window causes the guide box to shrink and grow along with
3319 the video. Once you've positioned the video with the projector, you're
3320 ready to master the camera.
3322 <p>Select the <img src="camera.png" alt="camera.png"> camera button to enable camera editing mode.
3323 In this mode, the guide box shows where the camera position is in
3324 relation to past and future camera positions but not where it is in
3325 relation to the source video. Dragging the camera box in the
3326 compositor window doesn't move the box but instead moves the location
3327 of the video inside the box.
3329 <p>For example, when you drag the camera left, the video moves right.
3330 When you drag the camera up, the video moves down. When you shift-drag
3331 the camera, the effect is the same as if you zoomed in or out of the
3332 source. The intention of the camera is to produce still photo panning,
3333 while the intention of the projector is to composite several sources in
3334 the same scene.
3336 <p>In the compositing window, there is a popup menu of options for the
3337 camera and projector. Right click over the video portion of the
3338 compositing window to bring up the menu.
3340 <ul>
3342 <li>Reset Camera causes the camera to return to the center position.
3344 <li>Reset Projector causes the projector to return to the center.
3346 </ul>
3348 <p>The camera and projector have shortcut operations neither in the popup
3349 menu or represented in video overlays. These are accessed in the
3350 <em>Tool window</em>. Most operations in the Compositor window have a
3351 tool window which is enabled by activating the <img src="toolwindow.png" alt="toolwindow.png">
3352 question mark.
3354 <p>In the case of the camera and projector, the tool window shows x, y,
3355 and z coordinates. By either tumbling or entering text directly, the
3356 camera and projector can be precisely positioned. 9 justification
3357 types are also defined for easy access. A popular justification
3358 operation is upper left projection after image reduction. This is used
3359 when reducing the size of video with aspect ratio adjustment.
3361 <p>The translation effect allows simultaneous aspect ratio conversion and
3362 reduction but is easier to use if the reduced video is put in the upper
3363 left of the temporary instead of in the center. The track size is set
3364 to the original size of the video and the camera is centered. The
3365 output size is set to the reduced size of the video. Without any
3366 effects, this produces just the cropped center portion of the video in
3367 the output.
3369 <p>The translation effect is dropped onto the video track. The input
3370 dimensions of the translation effect are set to the original size and
3371 the output dimensions are set to the reduced size. To put the reduced
3372 video in the center section that the projector shows would require
3373 offsetting <em>out x and out y</em> by a complicated calculation.
3374 Instead, we leave <em>out x and out y</em> at 0 and use the projector's
3375 tool window.
3377 <p>Merely by selecting <img src="left_justify.png" alt="left_justify.png"> left justify and
3378 <img src="top_justify.png" alt="top_justify.png"> top justify, the projector displays the reduced
3379 image from the top left corner of the temporary in the center of the
3380 output.
3382 <div class="node">
3383 <p><hr>
3384 Node:<a name="MASKS">MASKS</a>,
3385 Next:<a rel="next" accesskey="n" href="#CROPPING">CROPPING</a>,
3386 Previous:<a rel="previous" accesskey="p" href="#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR</a>,
3387 Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
3388 <br>
3389 </div>
3391 <h3 class="section">MASKS</h3>
3393 <p>Masks select a region of the video for either displaying or hiding.
3394 Masks are also used in conjunction with another effect to isolate the
3395 effect to a certain region of the frame. A copy of one video track may
3396 be delayed slightly and unmasked in locations where the one copy has
3397 interference but the other copy doesn't. Color correction may be
3398 needed in one section of a frame but not another. A mask can be
3399 applied to just a section of the color corrected track while the
3400 vanilla track shows through. Removal of boom microphones, airplanes,
3401 and housewives are other mask uses.
3403 <p>The order of the compositing pipeline affects what can be done with
3404 masks. Mainly, masks are performed on the temporary after effects and
3405 before the projector. This means multiple tracks can be bounced to a
3406 masked track and projected with the same mask.
3408 <p>Our compositing pipeline graph now has a masking stage. There are 8
3409 possible masks per track. Each mask is defined separately, although
3410 they each perform the same operation, whether it's addition or
3411 subtraction.
3413 <br><p>
3414 <br><p>
3415 <img src="compositing_pipeline2.png" alt="compositing_pipeline2.png">
3416 <br><p>
3417 <br><p>
3418 <p><em>Compositing pipeline with masks</em>
3420 <p>To define a mask, go into the Compositor window and enable the
3421 <img src="mask.png" alt="mask.png"> <em>mask</em> toggle. Now go over the video and
3422 click-drag. Click-drag again in another part of the image to create
3423 each new point of the mask. While it isn't the conventional bezier
3424 curve behavior, this masking interface performs in realtime what the
3425 effect of the mask is going to be. Creating each point of the mask
3426 expands a rubber band curve.
3428 <p>Once points are defined, they can be moved by <em>ctrl-dragging</em> in
3429 the vicinity of the corner. This; however, doesn't smooth out the
3430 curve. The in-out points of the bezier curve are accessed by
3431 <em>shift-dragging</em> in the vicinity of the corner. Then
3432 <em>shift-dragging</em> near the in or out point causes the point to
3433 move.
3435 <p>Finally, once you have a mask, the mask can be translated in one piece
3436 by <em>alt-dragging</em> the mask. Mask editing in Cinelerra is
3437 identical to how The Gimp edits masks except in this case the effect of
3438 the mask is always on.
3440 <p>The masks have many more parameters which couldn't be represented with
3441 video overlays. These are represented in the tool window for masks.
3442 Selecting the <img src="toolwindow.png" alt="toolwindow.png"> question mark when the <img src="mask.png" alt="mask.png">
3443 mask toggle is highlighted brings up the mask options.
3445 <p>The <em>mode</em> of the mask determines if the mask removes data or
3446 makes data visible. If the mode is subtractive, the mask causes video
3447 to disappear. If the mode is additive, the mask causes video to appear
3448 and everything outside the mask to disappear.
3450 <p>The <em>value</em> of the mask determines how extreme the addition or
3451 subtraction is. In the subtractive mode, higher values subtract more
3452 alpha. In the additive mode, higher values make the region in the mask
3453 brighter while the region outside the mask is always hidden.
3455 <p>The mask number determines which one of the 8 possible masks we're
3456 editing. Each track has 8 possible masks. When you click-drag in the
3457 compositor window, you're only editing one of the masks. Change the
3458 value of <em>mask number</em> to cause another mask to be edited. The
3459 previous mask is still active but only the curve overlay for the
3460 currently selected mask is visible.
3462 <p>When multiple masks are used, their effects are ORed together. Every
3463 mask in a single track uses the same value and mode.
3465 <p>The edges of a mask are hard by default but this rarely is desired.
3466 The <em>feather</em> parameter determines how many pixels to feather the
3467 mask. This creates softer edges but takes longer to render.
3469 <p>Finally, there are parameters which affect one point on the current
3470 mask instead of the whole mask. These are <em>Delete, x, y</em>. The
3471 active point is defined as the last point dragged in the compositor
3472 window. Any point can be activated merely by <em>ctrl-clicking</em> near
3473 it without moving the pointer. Once a point is activated,
3474 <em>Delete</em> deletes it and <em>x, y</em> allow repositioning by numeric
3475 entry.
3477 <div class="node">
3478 <p><hr>
3479 Node:<a name="CROPPING">CROPPING</a>,
3480 Next:<a rel="next" accesskey="n" href="#SAFE%20REGIONS">SAFE REGIONS</a>,
3481 Previous:<a rel="previous" accesskey="p" href="#MASKS">MASKS</a>,
3482 Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
3483 <br>
3484 </div>
3486 <h3 class="section">CROPPING</h3>
3488 <p>Cropping changes the value of the output dimensions and the projector
3489 to reduce the visible picture area. Enable the <img src="crop.png" alt="crop.png"> crop
3490 toggle and the <img src="toolwindow.png" alt="toolwindow.png"> tool window to perform cropping in
3491 the compositing window. This draws a rectangle over the video.
3492 Click-drag anywhere in the video to create a new rectangle. Click-drag
3493 over any corner of the rectangle to reposition the corner. The tool
3494 window allows text entry of the coordinates. When the rectangle is
3495 positioned, hit the <em>do it</em> button in the tool window.
3497 <div class="node">
3498 <p><hr>
3499 Node:<a name="SAFE%20REGIONS">SAFE REGIONS</a>,
3500 Next:<a rel="next" accesskey="n" href="#OVERLAY%20MODES">OVERLAY MODES</a>,
3501 Previous:<a rel="previous" accesskey="p" href="#CROPPING">CROPPING</a>,
3502 Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
3503 <br>
3504 </div>
3506 <h3 class="section">SAFE REGIONS</h3>
3508 <p>On consumer displays the borders of the image are cut off and within
3509 the cutoff point is a region which isn't always square like it is in
3510 the compositor window. The borders are intended for scratch room and
3511 vertical blanking data. You can show where these borders are by
3512 enabling the <img src="titlesafe.png" alt="titlesafe.png"> safe regions toggle. Keep titles inside
3513 the inner rectangle and keep action inside the outer rectangle.
3515 <div class="node">
3516 <p><hr>
3517 Node:<a name="OVERLAY%20MODES">OVERLAY MODES</a>,
3518 Next:<a rel="next" accesskey="n" href="#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES</a>,
3519 Previous:<a rel="previous" accesskey="p" href="#SAFE%20REGIONS">SAFE REGIONS</a>,
3520 Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
3521 <br>
3522 </div>
3524 <h3 class="section">OVERLAY MODES</h3>
3526 <p>Every video track has an overlay mode, accessible by expanding the
3527 track. The overlay mode is a pulldown menu on the left under the
3528 fader. When collapsed, it displays an icon representing the current
3529 overlay mode.
3531 <p>Select the <img src="expandpatch_checked.png" alt="expandpatch_checked.png"> expand track toggle to view all
3532 the options for a video track if you can't see the overlay mode. The
3533 overlay mode of video tracks is <em>normal</em> by default. Select other
3534 modes by clicking the overlay button and selecting an item from the
3535 popup menu.
3537 <p>Overlay modes are processed inside the projector stage of compositing.
3538 The different modes are summarized below.
3540 <ul>
3542 <li>
3543 <b>Normal</b> uses a traditional Porter-Diff equation to blend tracks with
3544 alpha. When no alpha exists in the project color model, the new track
3545 always replaces the output.
3547 <li>
3548 <b>Addition</b> In this mode, whatever is in the output is added to the
3549 current track. The result is blended based on the current track's
3550 alpha onto the output.
3552 <li>
3553 <b>Subtraction</b> In this mode, the current track is subtracted from the
3554 output and the result is alpha blended onto the output.
3556 <li>
3557 <b>Multiply</b> is the most useful operation. The current track is multiplied
3558 by the output and the result blended onto the output. Usually a black
3559 and white image with no alpha channel or a white title on a black image
3560 is used as the current track. With the multiply operation, only the
3561 output portions under the white area show.
3563 <li>
3564 <b>Divide</b> divides the current track by the output and the result is
3565 blended into the output. It usually results in overloaded levels.
3567 <li>
3568 <b>Replace</b> does no blending and overwrites the output with the current
3569 track.
3571 </ul>
3573 <div class="node">
3574 <p><hr>
3575 Node:<a name="TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES</a>,
3576 Previous:<a rel="previous" accesskey="p" href="#OVERLAY%20MODES">OVERLAY MODES</a>,
3577 Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
3578 <br>
3579 </div>
3581 <h3 class="section">TRACK AND OUTPUT SIZES</h3>
3583 <p>The size of the temporary and the size of the output in our compositing
3584 pipeline are independant and variable. This fits into everything
3585 covered so far. The camera's viewport is the temporary size. Effects
3586 are processed in the temporary and are affected by the temporary size.
3587 Projectors are rendered to the output and are affected by the output
3588 size. If the temporary is smaller than the output, the temporary is
3589 bordered by blank regions in the output. If the temporary is bigger
3590 than the output, the temporary is cropped.
3592 <p>The temporary size is defined as the track size. Each track has a
3593 different size. Right click on a track to bring up the track's menu.
3594 Select <em>Resize Track</em> to resize the track to any arbitrary size.
3595 Alternatively you can select <em>Match output size</em> to make the track
3596 the same size as the output.
3598 <p>The output size is set in either <em>New</em> when creating a new project
3599 or <em>Settings-&gt;Format</em>. In the Resource window there is another
3600 way to change the output size. Right click on a video asset and select
3601 <em>Match project size</em> to conform the output to the asset. When new
3602 tracks are created, the track size always conforms to the output size
3603 specified by these methods.
3605 <div class="node">
3606 <p><hr>
3607 Node:<a name="KEYFRAMES">KEYFRAMES</a>,
3608 Next:<a rel="next" accesskey="n" href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>,
3609 Previous:<a rel="previous" accesskey="p" href="#COMPOSITING">COMPOSITING</a>,
3610 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
3611 <br>
3612 </div>
3614 <h2 class="chapter">KEYFRAMES</h2>
3616 <p>Setting static compositing parameters isn't very useful most of the
3617 time. Normally you need to move the camera around over time or change
3618 mask positions. Masks need to follow objects. We create dymanic
3619 changes by defining keyframes. A keyframe is a certain point in time
3620 when the settings for one operation change. In Cinelerra, there are
3621 keyframes for almost every compositing parameter and effect parameter.
3623 <p>Whenever you adjust any parameter, the value is stored in a keyframe.
3624 If the value is stored in a keyframe, why doesn't it always change?
3625 The keyframe it is stored in is known as the <em>default keyframe</em>.
3626 The default keyframe applies to the entire duration if no other
3627 keyframes are present. The default keyframe is not drawn anywhere
3628 because it always exists. The only way change occurs over time is if
3629 non-default keyframes are created.
3631 <p>Display keyframes for any parameter by using the <em>view</em> menu.
3632 When keyframes are selected, they are drawn on the timeline over the
3633 tracks they apply to.
3635 <ul class="menu">
3636 <li><a accesskey="1" href="#CURVE%20KEYFRAMES">CURVE KEYFRAMES</a>:
3637 <li><a accesskey="2" href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>:
3638 <li><a accesskey="3" href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>:
3639 <li><a accesskey="4" href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>:
3640 <li><a accesskey="5" href="#EDITING%20KEYFRAMES">EDITING KEYFRAMES</a>:
3641 </ul>
3643 <div class="node">
3644 <p><hr>
3645 Node:<a name="CURVE%20KEYFRAMES">CURVE KEYFRAMES</a>,
3646 Next:<a rel="next" accesskey="n" href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>,
3647 Up:<a rel="up" accesskey="u" href="#KEYFRAMES">KEYFRAMES</a>
3648 <br>
3649 </div>
3651 <h3 class="section">CURVE KEYFRAMES</h3>
3653 <p>Fade and zoom settings are stored in bezier curves. Go to
3654 <em>view-&gt;fade keyframes</em> or <em>view-&gt;...zoom</em> to show curves on
3655 the timeline. It's sometimes easier to pull down the <em>view</em> menu
3656 and then use the keyboard shortcuts listed in the menu to enable or
3657 disable keyframes while the menu is visible. In either arrow editing
3658 mode or i-beam editing mode, move the cursor over the curves in the
3659 timeline until it changes shape. Then merely by clicking and dragging
3660 on the curve you can create a keyframe at the position.
3662 <p>After the keyframe is created, click drag on it again to reposition
3663 it. When you click-drag a second keyframe on the curve, it creates a
3664 smooth ramp. <em>ctrl-dragging</em> on a keyframe changes the value of
3665 either the input control or the output control. This affects the
3666 sharpness of the curve. While the input control and the output control
3667 can be moved horizontally as well as vertically, the horizontal
3668 movement is purely for legibility and isn't used in the curve value.
3670 <p>You may remember that The Gimp and the Compositing masks all use
3671 <em>shift</em> to select control points so why does the timeline use
3672 <em>ctrl</em>? When you <em>shift-drag</em> on a timeline curve, the
3673 keyframe jumps to the value of either the next or previous keyframe,
3674 depending on which exists. This lets you set a constant curve value
3675 without having to copy the next or previous keyframe.
3677 <div class="node">
3678 <p><hr>
3679 Node:<a name="TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>,
3680 Next:<a rel="next" accesskey="n" href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>,
3681 Previous:<a rel="previous" accesskey="p" href="#CURVE%20KEYFRAMES">CURVE KEYFRAMES</a>,
3682 Up:<a rel="up" accesskey="u" href="#KEYFRAMES">KEYFRAMES</a>
3683 <br>
3684 </div>
3686 <h3 class="section">TOGGLE KEYFRAMES</h3>
3688 <p>Mute is the only toggle keyframe. Mute keyframes determine where the
3689 track is processed but not rendered to the output. Click-drag on these
3690 curves to create a keyframe. Unlike curves, the toggle keyframe has
3691 only two values: on or off. Ctrl and shift do nothing on toggle
3692 keyframes.
3694 <div class="node">
3695 <p><hr>
3696 Node:<a name="AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>,
3697 Next:<a rel="next" accesskey="n" href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>,
3698 Previous:<a rel="previous" accesskey="p" href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>,
3699 Up:<a rel="up" accesskey="u" href="#KEYFRAMES">KEYFRAMES</a>
3700 <br>
3701 </div>
3703 <h3 class="section">AUTOMATIC KEYFRAMES</h3>
3705 <p>You may have noticed when a few fade curves are set up, moving the
3706 insertion point around the curves causes the faders to reflect the
3707 curve value under the insertion point. This isn't just to look cool.
3708 The faders themselves can set keyframes in automatic keyframe mode.
3709 Automatic keyframe mode is usually more useful than dragging curves.
3711 <p>Enable automatic keyframe mode by enabling the automatic keyframe
3712 toggle <img src="autokeyframe.png" alt="autokeyframe.png">. In automatic keyframe mode, every time
3713 you tweek a keyframeable parameter it creates a keyframe on the
3714 timeline. Since automatic keyframes affect many parameters, it's best
3715 enabled just before you need a keyframe and disabled immediately
3716 thereafter.
3718 <p>It's useful to go into the <em>View</em> menu and make the desired
3719 parameter visible before performing a change. The location where the
3720 automatic keyframe is generated is under the insertion point. If the
3721 timeline is playing back during a tweek, several automatic keyframes
3722 will be generated as you change the parameter.
3724 <p>When automatic keyframe mode is disabled, a similarly strange thing
3725 happens. Adjusting a parameter adjusts the keyframe immediately
3726 preceeding the insertion point. If two fade keyframes exist and the
3727 insertion point is between them, changing the fader changes the first
3728 keyframe.
3730 <p>There are many parameters which can only be keyframed in automatic
3731 keyframe mode. These are parameters for which curves would take up too
3732 much space on the track or which can't be represented easily by a
3733 curve.
3735 <p>Effects are only keyframable in automatic mode because of the number of
3736 parameters in each individual effect.
3738 <p>Camera and projector translation can only be keyframed in automatic
3739 keyframe mode while camera and projector zoom can be keyframed with
3740 curves. It is here that we conclude the discussion of compositing,
3741 since compositing is highly dependant on the ability to change over
3742 time.
3744 <div class="node">
3745 <p><hr>
3746 Node:<a name="COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>,
3747 Next:<a rel="next" accesskey="n" href="#EDITING%20KEYFRAMES">EDITING KEYFRAMES</a>,
3748 Previous:<a rel="previous" accesskey="p" href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>,
3749 Up:<a rel="up" accesskey="u" href="#KEYFRAMES">KEYFRAMES</a>
3750 <br>
3751 </div>
3753 <h3 class="section">COMPOSITOR KEYFRAMES</h3>
3755 <p>Camera and projector translation is represented by two parameters: x
3756 and y. Therefore it is cumbersome to adjust with curves. Cinelerra
3757 solves this problem by relying on automatic keyframes. With a video
3758 track loaded, move the insertion point to the beginning of the track
3759 and enable automatic keyframe mode.
3761 <p>Move the projector slightly in the compositor window to create a
3762 keyframe. Then go forward several seconds. Move the projector a long
3763 distance to create another keyframe and emphasize motion. This creates
3764 a second projector box in the compositor, with a line joining the two
3765 boxes. The joining line is the motion path. If you create more
3766 keyframes, more boxes are created. Once all the desired keyframes are
3767 created, disable automatic keyframe mode.
3769 <p>Now when scrubbing around with the compositor window's slider, the
3770 video projection moves over time. At any point between two keyframes,
3771 the motion path is read for all time before the insertion point and
3772 green for all time after the insertion point. It's debatable if this
3773 is a very useful feature but it makes you feel good to know what
3774 keyframe is going to be affected by the next projector tweek.
3776 <p>Click-drag when automatic keyframes are off to adjust the preceeding
3777 keyframe. If you're halfway between two keyframes, the first projector
3778 box is adjusted while the second one stays the same. Furthermore, the
3779 video doesn't appear to move in step with the first keyframe. This is
3780 because, halfway between two keyframes the projector translation is
3781 interpolated. In order to set the second keyframe you'll need to scrub
3782 after the second keyframe.
3784 <p>By default the motion path is a straight line, but it can be curved
3785 with control points. <em>Ctrl-drag</em> to set either the in or out
3786 control point of the preceeding keyframe. Once again, we depart from
3787 The Gimp because <em>shift</em> is already used for zoom. After the in
3788 or out control points are extrapolated from the keyframe,
3789 <em>Ctrl-dragging</em> anywhere in the video adjusts the nearest control
3790 point. A control point can be out of view entirely yet still
3791 controllable.
3793 <p>When editing the camera translation, the behavior of the camera boxes
3794 is slightly different. Camera automation is normally used for still
3795 photo panning. The current camera box doesn't move during a drag, but
3796 if multiple keyframes are set, every camera box except the current
3797 keyframe appears to move. This is because the camera display shows
3798 every other camera position relative to the current one.
3800 <p>The situation becomes more intuitive if you bend the motion path
3801 between two keyframes and scrub between the two keyframes. The
3802 division between red and green, the current position between the
3803 keyframes, is always centered while the camera boxes move.
3805 <div class="node">
3806 <p><hr>
3807 Node:<a name="EDITING%20KEYFRAMES">EDITING KEYFRAMES</a>,
3808 Previous:<a rel="previous" accesskey="p" href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>,
3809 Up:<a rel="up" accesskey="u" href="#KEYFRAMES">KEYFRAMES</a>
3810 <br>
3811 </div>
3813 <h3 class="section">EDITING KEYFRAMES</h3>
3815 <p>Keyframes can be shifted around and moved between tracks on the
3816 timeline using similar cut and paste operations to editing media. Only
3817 the keyframes selected in the <em>view</em> menu are affected by keyframe
3818 editing operations, however.
3820 <p>The most popular keyframe editing operation is replication of some
3821 curve from one track to the other, to make a stereo pair. The first
3822 step is to solo the source track's record <img src="recordpatch_up.png" alt="recordpatch_up.png"> patch
3823 by <em>shift-clicking</em> on it. Then either set in/out points or
3824 highlight the desired region of keyframes. Go to <em>keyframes-&gt;copy
3825 keyframes</em> to copy them to the clipboard. Solo the destination track's
3826 record <img src="recordpatch_up.png" alt="recordpatch_up.png"> patch by <em>shift-clicking</em> on it and
3827 go to <em>keyframes-&gt;paste keyframes</em> to paste the clipboard.
3829 <p>The media editing commands are mapped to the keyframe editing commands
3830 by using the <em>shift</em> key instead of just the keyboard shortcut.
3832 <p>This leads to the most complicated part of keyframe editing, the
3833 default keyframe. Remember that when no keyframes are set at all,
3834 there is still a default keyframe which stores a global parameter for
3835 the entire duration. The default keyframe isn't drawn because it
3836 always exists. What if the default keyframe is a good value which you
3837 want to transpose between other non-default keyframes? The
3838 <em>keyframes-&gt;copy default keyframe</em> and <em>keyframes-&gt;paste
3839 default keyframe</em> allow conversion of the default keyframe to a
3840 non-default keyframe.
3842 <p><em>Keyframes-&gt;copy default keyframe</em> copies the default keyframe to
3843 the clipboard, no matter what region of the timeline is selected. The
3844 <em>keyframes-&gt;paste keyframes</em> function may then be used to paste
3845 the clipboard as a non-default keyframe.
3847 <p>If you've copied a non-default keyframe, it can be stored as the
3848 default keyframe by calling <em>keyframes-&gt;paste default keyframe</em>.
3849 After using paste default keyframe to convert a non-default keyframe
3850 into a default keyframe, you won't see the value of the default
3851 keyframe reflected until all the non-default keyframes are removed.
3853 <p>Finally, there is a convenient way to delete keyframes besides
3854 selecting a region and calling <em>keyframes-&gt;clear keyframes</em>.
3855 Merely click-drag a keyframe before its preceeding keyframe or after
3856 its following keyframe on the track.
3858 <div class="node">
3859 <p><hr>
3860 Node:<a name="CAPTURING%20MEDIA">CAPTURING MEDIA</a>,
3861 Next:<a rel="next" accesskey="n" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>,
3862 Previous:<a rel="previous" accesskey="p" href="#KEYFRAMES">KEYFRAMES</a>,
3863 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
3864 <br>
3865 </div>
3867 <h2 class="chapter">CAPTURING MEDIA</h2>
3869 <p>Ideally, all media would be stored on hard drives, CD-ROM, flash, or
3870 DVD and loading it into Cinelerra would be a matter of loading a file.
3871 In reality, very few sources of media can be accessed like a filesystem
3872 but instead rely on tape transport mechanisms and dumb I/O mechanisms
3873 to transfer the data to computers. These media types are imported into
3874 Cinelerra through the Record dialog.
3876 <p>The first step in recording is to configure the input device. In
3877 <em>Settings-&gt;preferences</em> are a number of recording parameters
3878 described in configuration See <a href="#RECORDING">RECORDING</a>. These parameters apply to
3879 recording no matter what the project settings are, because the
3880 recording parameters are usually the maximum capability of the
3881 recording hardware while project settings come and go.
3883 <p>Go to <em>File-&gt;record</em> to record a dumb I/O source. This prompts
3884 for an output format much like rendering does. Once that's done, the
3885 record window and the record monitor pop up.
3887 <p>The record window has discrete sections. While many parameters change
3888 depending on if the file has audio or video, the discrete sections are
3889 always the same.
3891 <ul>
3893 <li>
3894 The output format area describes the format of the output file and the
3895 current position within it.
3897 <li>
3898 The edit batch area lets you change parameters in the current batch.
3900 <li>
3901 The transport controls start and stop recording different ways.
3903 <li>
3904 The batch list displays all the defined batches.
3906 <li>
3907 The confirmation area lets you determine how the output files are
3908 imported into the timeline and quit.
3910 </ul>
3912 <img src="recording.png" alt="recording.png">
3913 <br><p>
3914 <br><p>
3915 <p><em>Recording window areas</em>
3917 <p>Recording in Cinelerra is organized around batches. A batch
3918 essentially defines a distinct output file for the recording. For now
3919 you can ignore the batch concept entirely and record merely by hitting
3920 the record button <img src="record.png" alt="record.png">.
3922 <p>The record button opens the current output file if it isn't opened and
3923 writes captured data to it. Use the stop button to stop the
3924 recording. Recording can be resumed with the record button without
3925 erasing the file at this point. In the case of a video file, there is
3926 a single frame record button <img src="singleframe.png" alt="singleframe.png"> which records a single
3927 frame.
3929 <p>When enough media is recorded, choose an insertion method from the
3930 <em>Insertion Strategy</em> menu and hit <em>close</em>.
3932 <ul class="menu">
3933 <li><a accesskey="1" href="#BATCHES">BATCHES</a>:
3934 <li><a accesskey="2" href="#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION</a>:
3935 </ul>
3937 <div class="node">
3938 <p><hr>
3939 Node:<a name="BATCHES">BATCHES</a>,
3940 Next:<a rel="next" accesskey="n" href="#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION</a>,
3941 Up:<a rel="up" accesskey="u" href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>
3942 <br>
3943 </div>
3945 <h3 class="section">BATCHES</h3>
3947 <p>Now we come to the concept of batches. Batches try to make the dumb
3948 I/O look more like a filesystem. Batches are traditionally used to
3949 divide tape into different programs and save the different programs as
3950 different files instead of recording straight through an entire tape.
3951 Because of the high cost of developing frame-accurate deck control
3952 mechanisms, the only use of batches now is recording different programs
3953 during different times of day. This is still useful for recording TV
3954 shows or time lapse movies as anyone who can't afford proper appliances
3955 knows.
3957 <p>The record window supports a list of batches and two recording modes:
3958 interactive and batch recording. Interactive recording happens when
3959 the record button is pressed. Interactive recording starts immediately
3960 and uses the current batch to determine everything except start time.
3961 By default, the current batch is configured to behave like tape.
3963 <p>Batch recording happens when the <em>start</em> button is pressed. In
3964 batch recording, the <em>start time</em> is the time the batch starts
3965 recording.
3967 <p>First, you'll want to create some batches. Each batch has certain
3968 parameters and methods of adjustment.
3970 <ul>
3972 <li>
3973 <em>On</em> determines whether the batch is included in batch recording
3974 operations. Click the list row under <em>On</em> to enable or disable
3975 batches.
3977 <li>
3978 <em>Path</em> is the file the batch is going to be recorded to. The
3979 filename specified in the record dialog is the name of the first batch,
3980 to simplify interactive recording, but the filename may be changed in
3981 the record window for any batch in the <em>edit batch</em> area.
3983 <li>
3984 <em>News</em> shows whether the file exists or not. This is a very
3985 important attribute since there is no confirmation dialog if the file
3986 exists. The first time you hit record, the file is opened. If the
3987 file exists at this point it's erased. News says <em>File exists</em> if
3988 it exists and <em>OK</em> if it doesn't. Every time you resume recording
3989 in the same batch, the news should say <em>Open</em>, indicating the file
3990 is already opened and won't be erased in the next record button press.
3992 <p>If you change out of the current batch after recording, the file is
3993 closed. Next time you change into the batch, the file will be erased.
3995 </p><li>
3996 <em>Start time</em> is the 24 hour time of day the batch will start
3997 recording if in batch mode. The start time may become a time of tape
3998 and reel number if deck control is implemented but for now it's a time
3999 of day.
4001 <li>
4002 <em>Duration</em> is the length of the batch. It only has meaning if the
4003 <em>Mode</em> of the batch is <em>Timed</em>. Once the recording length
4004 reaches <em>duration</em> the recording stops, whether in interactive or
4005 batch mode.
4007 <li>
4008 <em>Source</em> has meaning only when the capturing hardware has multiple
4009 sources. Usually the source is a tuner channel or input. When the
4010 current batch finishes and the next batch begins recording, the source
4011 is changed to what the next batch is set to. This way multiple TV
4012 stations can be recorded at different times.
4014 </ul>
4016 <p>The record window has a notion of the <em>current batch</em>. The
4017 current batch is not the same as the batch which is highlighted in the
4018 batch list. The current batch text is colored red in the batch list.
4019 The highlighted batch is merely displayed in the edit batch section for
4020 editing.
4022 <p>By coloring the current batch red, any batch can be edited by
4023 highlighting it, without changing the batch to be recorded.
4025 <p>All recording operations take place in the current batch. If there
4026 are multiple batches, highlight the desired batch and hit
4027 <em>activate</em> to make it the current batch. If the <em>start</em>
4028 button is pressed, the current batch flashes to indicate it's waiting
4029 for the start time in batch mode. If the <em>record</em> button is
4030 pressed, the current batch is recorded immediately in interactive mode.
4032 <p>In batch and interactive recording modes, when the current batch
4033 finishes recording the next batch is activated and performed. All
4034 future recording is done in batch mode. When the first batch finishes,
4035 the next batch flashes until its start time is reached.
4037 <p>Interrupt either the batch or the interactive operation by hitting the
4038 stop button.
4040 <p>Finally there is the <img src="rewind.png" alt="rewind.png"> rewind button. In either
4041 interactive or batch recording, the rewind button causes the current
4042 batch to close its file. The next recording operation in the current
4043 batch deletes the file.
4045 <div class="node">
4046 <p><hr>
4047 Node:<a name="EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION</a>,
4048 Previous:<a rel="previous" accesskey="p" href="#BATCHES">BATCHES</a>,
4049 Up:<a rel="up" accesskey="u" href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>
4050 <br>
4051 </div>
4053 <h3 class="section">EDITING TUNER INFORMATION</h3>
4055 <p>Sometimes in the recording process and the configuration process,
4056 you'll need to define and select tuner channels to either record or
4057 play back to. In the case of the Video4Linux and Buz recording
4058 drivers, tuner channels define the source. When the Buz driver is also
4059 used for playback, tuner channels define the destination.
4061 <p>Defining tuner channels is accomplished by pushing the <img src="channel.png" alt="channel.png">
4062 channel button. This brings up the channel editing window. In this
4063 window you add, edit, and sort channels. Also, for certain video
4064 drivers, you can adjust the picture quality.
4066 <p>The <em>add</em> operation brings up a channel editing box. The title of
4067 the channel appears in the channel list. The source of the channel is
4068 the entry in the physical tuner's frequency table corresponding to the
4069 title.
4071 <p>Fine tuning in the channel edit dialog adjusts the physical frequency
4072 slightly if the driver supports it. The norm and frequency table
4073 together define which frequency table is selected for defining
4074 sources. If the device supports multiple inputs, the input menu
4075 selects these.
4077 <p>To sort channels, highlight the channel in the list and push <em>move
4078 up</em> or <em>move down</em> to move it.
4080 <p>Once channels are defined, the <em>source</em> item in the record window
4081 can be used to select channels for recording. The same channel
4082 selecting ability also exists in the record monitor window. Be aware
4083 channel selections in the record monitor window and the record window
4084 are stored in the current batch.
4086 <p>For some drivers an option to <b>swap fields</b> may be visible. These
4087 drivers don't get the field order right every time without human
4088 intervention. Toggle this to get the odd and even lines to record in
4089 the right order.
4091 <div class="node">
4092 <p><hr>
4093 Node:<a name="IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>,
4094 Next:<a rel="next" accesskey="n" href="#TROUBLESHOOTING">TROUBLESHOOTING</a>,
4095 Previous:<a rel="previous" accesskey="p" href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>,
4096 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
4097 <br>
4098 </div>
4100 <h2 class="chapter">IMPROVING PERFORMANCE</h2>
4102 <p>Let's get one thing perfectly clear. Linux is not a very good
4103 desktop. It's a server. Most of what you'll find on modern Linux
4104 distributions are faceless, network-only programs strategicly designed
4105 to counteract one Microsoft server feature or another and not to
4106 perform very well at user interaction. There are a number of
4107 parameters on Linux, which ordinary people can adjust to make it behave
4108 more like a thoroughbred in desktop usage.
4110 <ul class="menu">
4111 <li><a accesskey="1" href="#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE</a>:
4112 <li><a accesskey="2" href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>:
4113 <li><a accesskey="3" href="#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>:
4114 <li><a accesskey="4" href="#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>:
4115 <li><a accesskey="5" href="#DISABLING%20CRON">DISABLING CRON</a>:
4116 <li><a accesskey="6" href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>:
4117 <li><a accesskey="7" href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>:
4118 <li><a accesskey="8" href="#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>:
4119 <li><a accesskey="9" href="#IMPROVING%20ZORAN%20VIDEO">IMPROVING ZORAN VIDEO</a>:
4120 </ul>
4122 <div class="node">
4123 <p><hr>
4124 Node:<a name="DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE</a>,
4125 Next:<a rel="next" accesskey="n" href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>,
4126 Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
4127 <br>
4128 </div>
4130 <h3 class="section">DISABLING SWAP SPACE</h3>
4132 <p>On systems with lots of memory, Cinelerra sometimes runs better without
4133 a swap space. If you have 4 GB of RAM, you're probably better off
4134 without a swap space. If you have 512MB of RAM, you should keep the
4135 swap. If you want to do recording, you should probably disable swap
4136 space in any case. There's a reason for this. Linux only allows half
4137 the available memory to be used. Beyond that, it starts searching for
4138 free pages to swap, in order to cache more disk access. In a 4 GB
4139 system, you start waiting for page swaps after using only 2 GB.
4141 <p>The question then is how to make Linux run without a swap space.
4142 Theoretically it should be a matter of running
4144 <pre class="example"> swapoff -a
4145 </pre>
4147 <p>Unfortunately, without a swap space the <b>kswapd</b> tasklet normally
4148 spins at 100%. To eliminate this problem, edit <b>linux/mm/vmscan.c</b>.
4149 In this file, put a line saying <b>return 0;</b> before it says
4151 <pre class="example"> /*
4152 * Kswapd main loop.
4154 </pre>
4156 <p>Then recompile the kernel.
4158 <div class="node">
4159 <p><hr>
4160 Node:<a name="ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>,
4161 Next:<a rel="next" accesskey="n" href="#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>,
4162 Previous:<a rel="previous" accesskey="p" href="#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE</a>,
4163 Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
4164 <br>
4165 </div>
4167 <h3 class="section">ENLARGING SOUND BUFFERS</h3>
4169 <p>In order to improve realtime performance, the audio buffers for all the
4170 Linux sound drivers were limited from 128k to 64k. For recording audio
4171 and video simultaneously and for most audio recording this causes
4172 dropouts. Application of low latency and preemtible kernel patches
4173 make it possible to record more audio recordings but it doesn't improve
4174 recording video with audio. This is where you need to hack the kernel.
4176 <p>To see if your sound buffers are suitable, run the included
4177 <b>soundtest</b> program with nothing playing or recording. This
4178 allocates the largest possible buffers and displays them. If the
4179 <b>TOTAL BYTES AVAILABLE</b> is under 131072, you need to see about
4180 getting the buffers enlarged in the driver. While many drivers differ,
4181 we have a hack for at least one driver.
4183 <p>This only applies to the OSS version of the Soundblaster Live driver.
4184 Since every sound card and every sound driver derivative has a
4185 different implementation you'll need to do some searching for other
4186 sound cards. Edit <b>linux/drivers/sound/emu10k1/audio.c</b>
4188 <p>Where is says
4190 <pre class="example"> if (bufsize &gt;= 0x10000)
4191 </pre>
4193 <p>change it to say
4195 <pre class="example"> if (bufsize &gt; 0x40000)
4196 </pre>
4198 <p>Where is says
4200 <pre class="example"> for (i = 0; i &lt; 8; i++)
4201 for (j = 0; j &lt; 4; j++)
4202 </pre>
4204 <p>change it to say
4206 <pre class="example"> for (i = 0; i &lt; 16; i++)
4207 for (j = 0; j &lt; 4; j++)
4208 </pre>
4210 <p>In <b>linux/drivers/sound/emu10k1/hwaccess.h</b>
4212 <p>Change
4214 <p><b>#define MAXBUFSIZE 65536</b>
4216 <p>to
4218 <p><b>#define MAXBUFSIZE 262144</b>
4220 <p>Finally, in <b>linux/drivers/sound/emu10k1/cardwi.h</b>
4222 <p><b>#define WAVEIN_MAXBUFSIZE 65536</b>
4224 <p>to
4226 <p><b>#define WAVEIN_MAXBUFSIZE 262144</b>
4228 <p>Then recompile the kernel modules.
4230 <div class="node">
4231 <p><hr>
4232 Node:<a name="FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>,
4233 Next:<a rel="next" accesskey="n" href="#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>,
4234 Previous:<a rel="previous" accesskey="p" href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>,
4235 Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
4236 <br>
4237 </div>
4239 <h3 class="section">FREEING MORE SHARED MEMORY</h3>
4241 <p>The Linux kernel only allows 32MB of shared memory to be allocated by
4242 default. This needs to be increased to do anything useful. Run the
4243 following command:
4245 <p><b>echo "0x7fffffff" &gt; /proc/sys/kernel/shmmax</b>
4247 <div class="node">
4248 <p><hr>
4249 Node:<a name="SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>,
4250 Next:<a rel="next" accesskey="n" href="#DISABLING%20CRON">DISABLING CRON</a>,
4251 Previous:<a rel="previous" accesskey="p" href="#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>,
4252 Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
4253 <br>
4254 </div>
4256 <h3 class="section">SPEEDING UP THE HARD DRIVE</h3>
4258 <p>This is a very popular command sequence among Linux gurus, which is not
4259 done by default on Linux distributions.
4261 <p><b>hdparm -c3 -d1 -u1 -k1 /dev/hda</b>
4263 <p><b>-c3</b> puts the hard drive into 32 bit I/O with sync. This normally
4264 doesn't work due to inept kernel support for most IDE controllers. If
4265 you get lost interrupt or SeekComplete errors, quickly use <b>-c0</b>
4266 instead of <b>-c3</b> in your command.
4268 <p><b>-d1</b> enables DMA of course. This frees up the CPU partially during
4269 data transfers.
4271 <p><b>-u1</b> allows multiple interrupts to be handled during hard drive
4272 transactions. This frees up even more CPU time.
4274 <p><b>-k1</b> prevents Linux from resetting your settings in case of a
4275 glitch.
4277 <div class="node">
4278 <p><hr>
4279 Node:<a name="DISABLING%20CRON">DISABLING CRON</a>,
4280 Next:<a rel="next" accesskey="n" href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>,
4281 Previous:<a rel="previous" accesskey="p" href="#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>,
4282 Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
4283 <br>
4284 </div>
4286 <h3 class="section">DISABLING CRON</h3>
4288 <p>Linux runs some daily operations like compressing man pages. These may
4289 be acceptable background tasks while compiling or word processing but
4290 not while playing video. Disable these operations by editing
4291 <b>/etc/rc.d/init.d/anacron</b>.
4293 <p>Put <b>exit</b> before the first line not beginning in <b>#</b>.
4295 <p>In <b>/etc/rc.d/init.d/crond</b> put <b>exit</b> before the first line not
4296 beginning in <b>#</b>. Then make like Win 2000 and reboot.
4298 <p>You can't use the <b>at</b> command anymore, but who uses that command
4299 anyways?
4301 <div class="node">
4302 <p><hr>
4303 Node:<a name="REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>,
4304 Next:<a rel="next" accesskey="n" href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>,
4305 Previous:<a rel="previous" accesskey="p" href="#DISABLING%20CRON">DISABLING CRON</a>,
4306 Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
4307 <br>
4308 </div>
4310 <h3 class="section">REDUCING USB MOUSE SENSITIVITY</h3>
4312 <p>Gamers like high resolution mice, but this can be painful for precisely
4313 positioning the mouse on a timeline or video screen. XFree86 once
4314 allowed you to reduce PS/2 mouse sensitivity using commands like
4315 <b>xset m 1 1</b> but you're out of luck with USB mice or KVM's.
4317 <p>We have a way to reduce USB mouse sensitivity. Edit
4318 <b>/usr/src/linux/drivers/input/mousedev.c</b>.
4320 <p>After the line saying
4322 <pre class="example"> struct mousedev_list {
4323 </pre>
4325 <p>put
4327 <pre class="example"> #define DOWNSAMPLE_N 100
4328 #define DOWNSAMPLE_D 350
4329 int x_accum, y_accum;
4330 </pre>
4332 <p>Next, the section which says something like:
4334 <pre class="example"> case EV_REL:
4335 switch (code) {
4336 case REL_X: list-&gt;dx += value; break;
4337 case REL_Y: list-&gt;dy -= value; break;
4338 case REL_WHEEL: if (list-&gt;mode) list-&gt;dz -= value; break;
4340 break;
4341 </pre>
4343 <p>must be replaced by
4345 <pre class="example">
4346 case EV_REL:
4347 switch (code) {
4348 case REL_X:
4349 list-&gt;x_accum += value * DOWNSAMPLE_N;
4350 list-&gt;dx += (int)list-&gt;x_accum / (int)DOWNSAMPLE_D;
4351 list-&gt;x_accum -= ((int)list-&gt;x_accum / (int)DOWNSAMPLE_D) * (int)DOWNSAMPLE_D;
4352 break;
4353 case REL_Y:
4354 list-&gt;y_accum += value * DOWNSAMPLE_N;
4355 list-&gt;dy -= (int)list-&gt;y_accum / (int)DOWNSAMPLE_D;
4356 list-&gt;y_accum -= ((int)list-&gt;y_accum / (int)DOWNSAMPLE_D) * (int)DOWNSAMPLE_D;
4357 break;
4358 case REL_WHEEL: if (list-&gt;mode) list-&gt;dz -= value; break;
4360 break;
4364 </pre>
4366 <p>Change the value of <b>DOWNSAMPLE_N</b> to change the mouse sensitivity.
4368 <div class="node">
4369 <p><hr>
4370 Node:<a name="ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>,
4371 Next:<a rel="next" accesskey="n" href="#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>,
4372 Previous:<a rel="previous" accesskey="p" href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>,
4373 Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
4374 <br>
4375 </div>
4377 <h3 class="section">ASSORTED X TWEEKS</h3>
4379 <p>XFree86 by default can't display Cinelerra's advanced pixmap rendering
4380 very fast. The X server stalls during list box drawing. Fix this by
4381 adding a line to your XF86Config* files.
4383 <p>In the <b>Section "Device"</b> area, add a line saying:
4385 <p><b>Option "XaaNoOffscreenPixmaps"</b>
4387 <p>and restart the X server.
4389 <p>Screen blanking is really annoying, unless you're fabulously rich and
4390 can afford to leave your monitor on 24 hours a day without power saving
4391 mode. In <b>/etc/X11/xinit/xinitrc</b> put
4393 <pre class="example"> xset s off
4394 xset s noblank
4395 </pre>
4397 <p>before the first <b>if</b> statement.
4399 <p>How about those windows keys which no Linux distribution even thinks to
4400 use. You can make the window keys provide ALT functionality by editing
4401 <b>/etc/X11/Xmodmap</b>. Append the following to it.
4403 <pre class="example"> keycode 115 = Hyper_L
4404 keycode 116 = Hyper_R
4405 add mod4 = Hyper_L
4406 add mod5 = Hyper_R
4407 </pre>
4409 <p>The actual changes to a window manager to make it recognize window keys
4410 for ALT are complex. In <b>FVWM</b> at least, you can edit
4411 <b>/etc/X11/fvwm/system.fvwm2rc</b> and put
4413 <pre class="example"> Mouse 0 T A move-and-raise-or-raiselower
4414 #Mouse 0 W M move
4415 Mouse 0 W 4 move
4416 Mouse 0 W 5 move
4417 Mouse 0 F A resize-or-raiselower
4418 Mouse 0 S A resize-or-raiselower
4419 </pre>
4421 <p>in place of the default section for moving and resizing. Your best
4422 performance is going to be on FVWM. Other window managers seem to slow
4423 down video with extra event trapping and aren't as efficient in layout.
4425 <div class="node">
4426 <p><hr>
4427 Node:<a name="SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>,
4428 Next:<a rel="next" accesskey="n" href="#IMPROVING%20ZORAN%20VIDEO">IMPROVING ZORAN VIDEO</a>,
4429 Previous:<a rel="previous" accesskey="p" href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>,
4430 Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
4431 <br>
4432 </div>
4434 <h3 class="section">SPEEDING UP THE FILE SYSTEM</h3>
4436 <p>You'll often store video on an expensive, gigantic disk array separate
4437 from your boot disk. You'll thus have to manually install an EXT
4438 filesystem on this disk array, using the <b>mke2fs</b> command. By far
4439 the fastest file system is
4441 <pre class="example">
4442 mke2fs -i 65536 -b 4096 my_device
4443 tune2fs -r0 -c10000 my_device
4445 </pre>
4447 <p>This has no journaling, reserves as few blocks as possible for
4448 filenames, and accesses the largest amount of data per block possible.
4449 A slightly slower file system, which is easier to recover after power
4450 failures is
4452 <pre class="example">
4453 mke2fs -j -i 65536 -b 4096 my_device
4454 tune2fs -r0 -c10000 my_device
4456 </pre>
4458 <p>This adds a journal which slows down the writes but makes us immune to
4459 power failures.
4461 <div class="node">
4462 <p><hr>
4463 Node:<a name="IMPROVING%20ZORAN%20VIDEO">IMPROVING ZORAN VIDEO</a>,
4464 Previous:<a rel="previous" accesskey="p" href="#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>,
4465 Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
4466 <br>
4467 </div>
4469 <h3 class="section">IMPROVING ZORAN VIDEO</h3>
4471 <p>Video recorded from the ZORAN inputs is normally unaligned or not
4472 completely encoded on the right. This can be slightly compensated by
4473 adjusting parameters in the driver sourcecode.
4475 <p>In <b>/usr/src/linux/drivers/media/video/zr36067.h</b> the structures
4476 defined near line 623 affect alignment. At least for NTSC, the 2.4.20
4477 version of the driver could be improved by changing
4479 <pre class="example"> static struct tvnorm f60ccir601 = { 858, 720, 57, 788, 525, 480, 16 };
4480 </pre>
4482 <p>to
4484 <pre class="example"> static struct tvnorm f60ccir601 = { 858, 720, 57, 788, 525, 480, 17 };
4485 </pre>
4487 <p>In <b>/usr/src/linux/drivers/media/video/bt819.c</b> more structures near
4488 line 76 affect alignment and encoding.
4490 <p>For NTSC
4492 <pre class="example"> {858 - 24, 2, 523, 1, 0x00f8, 0x0000},
4493 </pre>
4495 <p>could be changed to
4496 <pre class="example"> {868 - 24, 2, 523, 1, 0x00f8, 0x0000},
4497 </pre>
4499 <p>Adjusting these parameters may or may not improve your picture. More
4500 of the time, they'll cause the driver to lock up before capturing
4501 the first frame.
4503 <div class="node">
4504 <p><hr>
4505 Node:<a name="TROUBLESHOOTING">TROUBLESHOOTING</a>,
4506 Next:<a rel="next" accesskey="n" href="#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA</a>,
4507 Previous:<a rel="previous" accesskey="p" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>,
4508 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
4509 <br>
4510 </div>
4512 <h2 class="chapter">TROUBLESHOOTING</h2>
4514 <ul class="menu">
4515 <li><a accesskey="1" href="#BUZ%20DRIVER%20CRASHES">BUZ DRIVER CRASHES</a>:
4516 <li><a accesskey="2" href="#DRAGGING%20IN%20AND%20OUT%20POINTS%20DOESN'T%20WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK</a>:
4517 <li><a accesskey="3" href="#SYNCHRONIZATION%20LOST%20WHILE%20RECORDING">SYNCHRONIZATION LOST WHILE RECORDING</a>:
4518 </ul>
4520 <div class="node">
4521 <p><hr>
4522 Node:<a name="BUZ%20DRIVER%20CRASHES">BUZ DRIVER CRASHES</a>,
4523 Next:<a rel="next" accesskey="n" href="#DRAGGING%20IN%20AND%20OUT%20POINTS%20DOESN'T%20WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK</a>,
4524 Up:<a rel="up" accesskey="u" href="#TROUBLESHOOTING">TROUBLESHOOTING</a>
4525 <br>
4526 </div>
4528 <h3 class="section">BUZ DRIVER CRASHES</h3>
4530 <p>First, Zoran capture boards must be accessed using the <b>Buz</b> video
4531 driver in <b>Preferences-&gt;Recording</b> and <b>Preferences-&gt;Playback</b>.
4532 Some performance tweeks are available in another section.
4533 See <a href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>.
4535 <p>Once tweeked, the Buz driver seems to crash if the number of recording
4536 buffers is too high. Make sure <b>Preferences-&gt;Recording-&gt;Frames to
4537 buffer in device</b> is below 10.
4539 <div class="node">
4540 <p><hr>
4541 Node:<a name="DRAGGING%20IN%20AND%20OUT%20POINTS%20DOESN'T%20WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK</a>,
4542 Next:<a rel="next" accesskey="n" href="#SYNCHRONIZATION%20LOST%20WHILE%20RECORDING">SYNCHRONIZATION LOST WHILE RECORDING</a>,
4543 Previous:<a rel="previous" accesskey="p" href="#BUZ%20DRIVER%20CRASHES">BUZ DRIVER CRASHES</a>,
4544 Up:<a rel="up" accesskey="u" href="#TROUBLESHOOTING">TROUBLESHOOTING</a>
4545 <br>
4546 </div>
4548 <h3 class="section">DRAGGING IN AND OUT POINTS DOESN'T WORK</h3>
4550 <p>Sometimes there will be two edits really close together. The point
4551 selected for dragging may be next to the indended edit on an edit too
4552 small to see at the current zoom level. Zoom in horizontally.
4554 <div class="node">
4555 <p><hr>
4556 Node:<a name="SYNCHRONIZATION%20LOST%20WHILE%20RECORDING">SYNCHRONIZATION LOST WHILE RECORDING</a>,
4557 Previous:<a rel="previous" accesskey="p" href="#DRAGGING%20IN%20AND%20OUT%20POINTS%20DOESN'T%20WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK</a>,
4558 Up:<a rel="up" accesskey="u" href="#TROUBLESHOOTING">TROUBLESHOOTING</a>
4559 <br>
4560 </div>
4562 <h3 class="section">SYNCHRONIZATION LOST WHILE RECORDING</h3>
4564 <p>If the framerate of the recording is much lower than the framerate of
4565 the source, the video will accumulate in the recording buffers over
4566 time while the audio and video are well out of sync. Decrease the
4567 <b>number of frames to buffer in the device</b> in
4568 <b>preferences-&gt;recording</b> so the excess frames are dropped instead of
4569 buffered.
4571 <div class="node">
4572 <p><hr>
4573 Node:<a name="SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA</a>,
4574 Next:<a rel="next" accesskey="n" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>,
4575 Previous:<a rel="previous" accesskey="p" href="#TROUBLESHOOTING">TROUBLESHOOTING</a>,
4576 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
4577 <br>
4578 </div>
4580 <h2 class="chapter">SECRETS OF CINELERRA</h2>
4582 <ul class="menu">
4583 <li><a accesskey="1" href="#DOLBY%20PRO%20LOGIC%20ENCODING">DOLBY PRO LOGIC ENCODING</a>:
4584 <li><a accesskey="2" href="#ANALOG%20TV%20CLEANING">ANALOG TV CLEANING</a>:
4585 <li><a accesskey="3" href="#DEFEATING%20INTERLACING">DEFEATING INTERLACING</a>:
4586 <li><a accesskey="4" href="#MAKING%20VIDEO%20LOOK%20LIKE%20FILM">MAKING VIDEO LOOK LIKE FILM</a>:
4587 <li><a accesskey="5" href="#CLEARING%20OUT%20HAZE">CLEARING OUT HAZE</a>:
4588 </ul>
4590 <div class="node">
4591 <p><hr>
4592 Node:<a name="DOLBY%20PRO%20LOGIC%20ENCODING">DOLBY PRO LOGIC ENCODING</a>,
4593 Next:<a rel="next" accesskey="n" href="#ANALOG%20TV%20CLEANING">ANALOG TV CLEANING</a>,
4594 Up:<a rel="up" accesskey="u" href="#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA</a>
4595 <br>
4596 </div>
4598 <h3 class="section">DOLBY PRO LOGIC ENCODING</h3>
4600 <p>Dolby pro logic is an easy way to output 6 channel audio from a 2
4601 channel soundcard with degraded but useful results. Rudimentary Dolby
4602 pro logic encoding can be achieved with clever usage of the effects.
4604 <p>Create 2 audio tracks with the same audio. Apply <b>invert audio</b> to
4605 one track. The signal comes out of the back speakers.
4607 <p>Create a single audio track with monaural audio of a different source.
4608 Center it in the <b>pan</b> control. The signal comes out of the center
4609 speaker.
4611 <p>Create other tracks with different signals and pan them left or right
4612 to put signals in the front left or right speaker.
4614 <p>Finally, if a copy of the signal in the back speakers is desired in any
4615 single front speaker, the signal in the back speakers must be delayed
4616 by at least 0.05 seconds and a single new track should be created. Pan
4617 the new track to orient the signal in the front speakers.
4619 <p>If the same signal is desired in all the speakers except the center
4620 speaker, delay the back speakers by 0.5 seconds and delay either the
4621 front left or front right by 0.2 seconds.
4623 <p>If you want to hear something from the subwoofer, create a new track,
4624 select a range, drop a synthesizer effect, and set the frequency below
4625 60 Hz. The subwoofer merely plays anything below around 60Hz.
4627 <p>Other tricks you can perform to separate the speakers are parametric
4628 equalization to play only selected ranges of frequencies through
4629 different speakers and lowpass filtering to play signals through the
4630 subwoofer.
4632 <div class="node">
4633 <p><hr>
4634 Node:<a name="ANALOG%20TV%20CLEANING">ANALOG TV CLEANING</a>,
4635 Next:<a rel="next" accesskey="n" href="#DEFEATING%20INTERLACING">DEFEATING INTERLACING</a>,
4636 Previous:<a rel="previous" accesskey="p" href="#DOLBY%20PRO%20LOGIC%20ENCODING">DOLBY PRO LOGIC ENCODING</a>,
4637 Up:<a rel="up" accesskey="u" href="#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA</a>
4638 <br>
4639 </div>
4641 <h3 class="section">ANALOG TV CLEANING</h3>
4643 <p>Unless you live in a rich nation like China or are a terrorist, you
4644 probably record analog TV more than you record digital TV. The picture
4645 quality on analog TV is horrible but you can do things in Cinelerra to
4646 make it look more like it did in the studio.
4648 <p>First, when capturing the video, capture it in the highest resolution
4649 possible. For Europeans it's 720x576 and for Americans it's 720x480.
4650 Don't bother adjusting the brightness or contrast in the recording
4651 monitor, although maxing out the color is useful. Capture it using
4652 MJPEG or uncompressed Component Video if possible. If those are too
4653 demanding, then capture it using JPEG. RGB should be a last resort.
4655 <p>Now on the timeline use <b>Settings-&gt;Format</b> to set a YUV colorspace.
4656 Drop a <b>Downsample</b> effect on the footage. Set it for
4658 <pre class="example"> Horizontal: 2
4659 Horizontal offset: 0
4660 Vertical: 2
4661 Vertical offset: 0
4664 x green
4665 x blue
4666 alpha
4667 </pre>
4669 <p>Use the camera tool to shift the picture up or down a line to remove
4670 the most color interference from the image. This is the difference
4671 we're looking for:
4673 <br><p>
4674 <img src="cleaning1.png" alt="cleaning1.png">
4676 <p>If you have vertical blanking information or crawls which constantly
4677 change in each frame, block them out with the <b>Mask</b> tool. This
4678 improves compression ratios.
4680 <p>This is about all you can do without destroying more data than you
4681 would naturally lose in compression. The more invasive cleaning
4682 techniques involve deinterlacing.
4684 <div class="node">
4685 <p><hr>
4686 Node:<a name="DEFEATING%20INTERLACING">DEFEATING INTERLACING</a>,
4687 Next:<a rel="next" accesskey="n" href="#MAKING%20VIDEO%20LOOK%20LIKE%20FILM">MAKING VIDEO LOOK LIKE FILM</a>,
4688 Previous:<a rel="previous" accesskey="p" href="#ANALOG%20TV%20CLEANING">ANALOG TV CLEANING</a>,
4689 Up:<a rel="up" accesskey="u" href="#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA</a>
4690 <br>
4691 </div>
4693 <h3 class="section">DEFEATING INTERLACING</h3>
4695 <p>Interlacing is done on most video sources because it costs too much to
4696 build progressive scanning cameras and progressive scanning CRT's.
4697 Many a consumer has been dissapointed to spend 5 paychecks on a
4698 camcorder and discover what horrible jagged images it produces on a
4699 computer monitor.
4701 <p>As for progressive scanning camcorders, forget it. Cost factors are
4702 probably going to keep progressive scanning cameras from ever equalling
4703 the spatial resolution of interlaced cameras. Interlacing is here to
4704 stay. That's why they made deinterlacing effects in Cinelerra.
4706 <p>We don't believe there has ever been a perfect deinterlacing effect.
4707 They're either irreversible or don't work. Cinelerra cuts down the
4708 middle by providing deinterlacing tools that are irreversible sometimes
4709 and don't work sometimes but are neither one or the other.
4711 <p><b>Line Doubling</b>
4713 <p>This one is done by the <b>Deinterlace</b> effect when set to <b>Odd
4714 lines</b> or <b>Even lines</b>. When applied to a track it reduces the
4715 vertical resolution by 1/2 and gives you progressive frames with
4716 stairstepping. This is only useful when followed by a scale effect
4717 which reduces the image to half its size.
4719 <p><b>Line averaging</b>
4721 <p>The <b>Deinterlace</b> effect when set to <b>Average even lines</b> or
4722 <b>Average odd lines</b> does exactly what line doubling does except
4723 instead of making straight copies of the lines it makes averages of the
4724 lines. This is actually useful for all scaling.
4726 <p>There's an option for adaptive line averaging which selects which lines
4727 to line average and which lines to leave interlaced based on the
4728 difference between the lines. It doesn't work.
4730 <p><b>Inverse Telecine</b>
4732 <p>This is the most effective deinterlacing tool when the footage is an
4733 NTSC TV broadcast of a film. See <a href="#INVERSE%20TELECINE">INVERSE TELECINE</a>.
4735 <p><b>Time base correction</b>
4737 <p>The first three tools either destroy footage irreversibly or don't work
4738 sometimes. <b>Time base correction</b> is last because it's the perfect
4739 deinterlacing tool. It leaves the footage intact. It doesn't reduce
4740 resolution, perceptually at least. It doesn't cause jittery timing.
4742 <p>The <b>Frames to Fields</b> effect converts each frame to two frames, so
4743 it must be used on a timeline whose project frame rate is twice the
4744 footage's frame rate. In the first frame it puts a line averaged copy
4745 of the even lines. In the second frame it puts a line averaged copy of
4746 the odd lines. When played back at full framerates it gives the
4747 illusion of progressive video with no loss of detail.
4749 <p>Best of all, this effect can be reversed with the <b>Fields to frames</b>
4750 nonrealtime effect. That one combines two frames of footage back into
4751 the one original interlaced frame of half the framerate.
4753 <p>Unfortunately, the output of <b>Frames to Fields</b> can't be compressed
4754 as efficiently as the original because it introduces vertical twitter
4755 and a super high framerate.
4757 <p>Interlaced 29.97fps footage can be made to look like film by applying
4758 <b>Frames to Fields</b> and then reducing the project frame rate of the
4759 resulting 59.94fps footage to 23.97fps. This produces no timing jitter
4760 and the occasional odd field gives the illusion of more detail than
4761 there would be if you just line averaged the original.
4763 <div class="node">
4764 <p><hr>
4765 Node:<a name="MAKING%20VIDEO%20LOOK%20LIKE%20FILM">MAKING VIDEO LOOK LIKE FILM</a>,
4766 Next:<a rel="next" accesskey="n" href="#CLEARING%20OUT%20HAZE">CLEARING OUT HAZE</a>,
4767 Previous:<a rel="previous" accesskey="p" href="#DEFEATING%20INTERLACING">DEFEATING INTERLACING</a>,
4768 Up:<a rel="up" accesskey="u" href="#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA</a>
4769 <br>
4770 </div>
4772 <h3 class="section">MAKING VIDEO LOOK LIKE FILM</h3>
4774 <p>Video sweetening is constantly getting better. Lately the best thing
4775 you can do for dirt cheap consumer camcorder video is to turn it into
4776 progressive 24fps output. While you can't really do that, you can get
4777 pretty close for the money. Mind you, this procedure can degrade high
4778 quality video just as easily as it improves low quality video. It
4779 should only be used for low quality video.
4781 <ul>
4783 <li>
4784 Step 1 - Set project framerate to twice the video framerate.
4786 <li>
4787 Step 2 - Apply a <b>Sharpen</b> effect. Set it to sharpness: 25, no
4788 interlacing, and horizontal only.
4790 <li>
4791 Step 3 - Drop a <b>Frame to Fields</b> effect on the same track. Set
4792 Average Empty Rows on and play through the video a few times to figure
4793 out which field is first. If the wrong field is first, the motion is
4794 shaky. Secondly, any editing in the doubled frame rate may now screw
4795 up the field order. We're still figuring out the easiest way to
4796 support warnings for field glitches but for now you need to go back to
4797 the normal framerate to do editing or play test to make sure the fields
4798 are right.
4800 <li>
4801 Step 4 - Render just the video to the highest quality file possible.
4803 <li>
4804 Step 5 - Import the video back to a new track. Set the project
4805 framerate to 24. The new track should now display more filmish and
4806 sharper images than the original footage.
4808 </ul>
4810 <p>This entire procedure could be implemented in one nonrealtime effect,
4811 but the biggest problem with that is you'll most often want to keep the
4812 field based output and the 24fps output for posterity. A nonrealtime
4813 effect would require all that processing just for the 24fps copy.
4814 Still debating that one.
4816 <div class="node">
4817 <p><hr>
4818 Node:<a name="CLEARING%20OUT%20HAZE">CLEARING OUT HAZE</a>,
4819 Previous:<a rel="previous" accesskey="p" href="#MAKING%20VIDEO%20LOOK%20LIKE%20FILM">MAKING VIDEO LOOK LIKE FILM</a>,
4820 Up:<a rel="up" accesskey="u" href="#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA</a>
4821 <br>
4822 </div>
4824 <h3 class="section">CLEARING OUT HAZE</h3>
4826 <p>Let's face it, if you're employed you live in Silicon Valley. As such
4827 you probably photograph a lot of haze and never see blue sky ever.
4828 Even if you can afford to briefly go somewhere where there is blue sky,
4829 horizon shots usually can stand for more depth. This is what the
4830 <b>gradient effect</b> is for.
4832 <p>Drop the gradient effect on hazy tracks. Set the following parameters:
4834 <pre class="example"> Angle: 0
4835 Inner radius: 0
4836 Outer radius: 40
4837 Inner color: blue 100% alpha
4838 Outer color: blue 0% alpha
4839 </pre>
4841 <p>It's important to set the 0% alpha color to blue even though it's 0%
4842 alpha. This is a generally applicable setting for the gradient. Some
4843 scenes may work better with orange or brown for an evening feel.
4845 <div class="node">
4846 <p><hr>
4847 Node:<a name="EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>,
4848 Next:<a rel="next" accesskey="n" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>,
4849 Previous:<a rel="previous" accesskey="p" href="#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA</a>,
4850 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
4851 <br>
4852 </div>
4854 <h2 class="chapter">EFFECT DESCRIPTIONS</h2>
4856 <p>Most effects in Cinelerra can be figured out just by using them and
4857 tweeking. Here are brief descriptions of effects which you might not
4858 utilize fully by mere experimentation.
4860 <ul class="menu">
4861 <li><a accesskey="1" href="#CHROMA%20KEY">CHROMA KEY</a>: How to make areas transparent based on color.
4862 <li><a accesskey="2" href="#DEINTERLACE">DEINTERLACE</a>: How to convert interlaced video to progressive video.
4863 <li><a accesskey="3" href="#HISTOGRAM">HISTOGRAM</a>: How to change the mapping of different brightness values.
4864 <li><a accesskey="4" href="#INVERSE%20TELECINE">INVERSE TELECINE</a>: How to convert pulled down frames to progressive frames.
4865 <li><a accesskey="5" href="#TIME%20AVERAGE">TIME AVERAGE</a>: How to add trail patterns or increase still image quality.
4866 <li><a accesskey="6" href="#TITLER">TITLER</a>: How to add text to a track from inside Cinelerra.
4867 <li><a accesskey="7" href="#VIDEO%20SCOPE">VIDEO SCOPE</a>: How to view the dynamic range of intensity and hue.
4868 </ul>
4870 <div class="node">
4871 <p><hr>
4872 Node:<a name="CHROMA%20KEY">CHROMA KEY</a>,
4873 Next:<a rel="next" accesskey="n" href="#DEINTERLACE">DEINTERLACE</a>,
4874 Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
4875 <br>
4876 </div>
4878 <h3 class="section">CHROMA KEY</h3>
4880 <p>This effect replaces the selected color or intensity with black if
4881 there is no alpha channel and replaces it with transparency if there is
4882 an alpha channel. The selection of color model is important.
4884 <p>Chroma key uses either the value or the hue to determine what is
4885 erased. If this parameter is within a certain threshold it's erased.
4886 It's not a simple on/off switch, however. As the selected parameter
4887 approaches the edge of the threshold, it gradually gets erased if the
4888 slope is low or is completely erased if the slope is high.
4890 <p>The slope tries to soften the edges of the chroma key but it doesn't
4891 work well for compressed sources. A popular softening technique is to
4892 use a maximum slope and chain a blur effect below the chroma key effect
4893 to blur just the alpha.
4895 <div class="node">
4896 <p><hr>
4897 Node:<a name="DEINTERLACE">DEINTERLACE</a>,
4898 Next:<a rel="next" accesskey="n" href="#HISTOGRAM">HISTOGRAM</a>,
4899 Previous:<a rel="previous" accesskey="p" href="#CHROMA%20KEY">CHROMA KEY</a>,
4900 Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
4901 <br>
4902 </div>
4904 <h3 class="section">DEINTERLACE</h3>
4906 <p>The deinterlace effect has evolved over the years to deinterlacing and
4907 a whole lot more. In fact two of the deinterlacing methods, <b>Inverse
4908 Telecine</b> and <b>Frames to Fields</b>, are separate effects. The
4909 deinterlace effect offers several variations of line replication to
4910 eliminate comb artifacts in interlaced video. It also has some line
4911 swapping tools to fix improperly captured video or make the result of a
4912 reverse effect display fields in the right order.
4914 <div class="node">
4915 <p><hr>
4916 Node:<a name="HISTOGRAM">HISTOGRAM</a>,
4917 Next:<a rel="next" accesskey="n" href="#INVERSE%20TELECINE">INVERSE TELECINE</a>,
4918 Previous:<a rel="previous" accesskey="p" href="#DEINTERLACE">DEINTERLACE</a>,
4919 Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
4920 <br>
4921 </div>
4923 <h3 class="section">HISTOGRAM</h3>
4925 <p>This shows the number of occurances of each value of a certain color
4926 channel. It is always performed in 16 bit RGB regardless of the
4927 project colorspace. Use the upper gradient to determine the range of
4928 input intensities to be expanded to the output. Use the lower gradient
4929 to determine the range of output intensities to target the expansion
4930 to. Enable <em>automatic</em> mode to have the histogram calculate
4931 automatic input values for every frame. The threshold is only used in
4932 automatic mode and determines how sensitive to the upper and lower
4933 boundaries of the histogram the automatic gain should be.
4935 <div class="node">
4936 <p><hr>
4937 Node:<a name="INVERSE%20TELECINE">INVERSE TELECINE</a>,
4938 Next:<a rel="next" accesskey="n" href="#TIME%20AVERAGE">TIME AVERAGE</a>,
4939 Previous:<a rel="previous" accesskey="p" href="#HISTOGRAM">HISTOGRAM</a>,
4940 Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
4941 <br>
4942 </div>
4944 <h3 class="section">INVERSE TELECINE</h3>
4946 <p>This is the most effective deinterlacing tool when the footage is a
4947 video transfer of a film. Here the film was converted from 24fps to
4948 60fps. Then the 60fps was downsampled to 30fps by extracting odd and
4949 even lines and interlacing the lines. The IVTC effect is primarily a
4950 way to convert interlaced video to progressive video. It undoes three
4951 patterns of interlacing.
4953 <pre class="example"> A AB BC CD D
4954 AB CD CD DE EF
4955 Automatic
4956 </pre>
4958 <p>The first two options are fixed patterns and affected by the <b>pattern
4959 offset</b> and <b>odd field first</b> parameters. The last option creates
4960 several combinations of lines for each frame and picks the most
4961 progressive combination. It's a brute force algorithm.
4963 <p>This technique doesn't rely on a pattern like other techniques and is
4964 less destructive but the timing is going to be jittery because of the
4965 lack of a frame rate reduction.
4967 <div class="node">
4968 <p><hr>
4969 Node:<a name="TIME%20AVERAGE">TIME AVERAGE</a>,
4970 Next:<a rel="next" accesskey="n" href="#TITLER">TITLER</a>,
4971 Previous:<a rel="previous" accesskey="p" href="#INVERSE%20TELECINE">INVERSE TELECINE</a>,
4972 Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
4973 <br>
4974 </div>
4976 <h3 class="section">TIME AVERAGE</h3>
4978 <p>Time average is one effect which has many uses besides creating nifty
4979 trail patterns of moving objects. It's main use is reducing noise in
4980 still images. Merely point a video camera at a stationary subject for
4981 30 frames, capture the frames, and average them using TIME AVERAGE and
4982 you'll have a super high quality print. In 16 bit colormodels, time
4983 average can increase the dynamic range of lousy cameras.
4985 <div class="node">
4986 <p><hr>
4987 Node:<a name="TITLER">TITLER</a>,
4988 Next:<a rel="next" accesskey="n" href="#VIDEO%20SCOPE">VIDEO SCOPE</a>,
4989 Previous:<a rel="previous" accesskey="p" href="#TIME%20AVERAGE">TIME AVERAGE</a>,
4990 Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
4991 <br>
4992 </div>
4994 <h3 class="section">TITLER</h3>
4996 <p>While it is possible to add text to movies by importing still images
4997 from The Gimp and compositing them, the Titler allows you to add text
4998 from within Cinelerra.
5000 <p>The titler has standard options for <b>font, size, and style</b>. The
5001 best font is a generic, normal font like Arial in a large size.
5003 <p>The titler also has options you'll only find in moving pictures. The
5004 <b>Justify</b> operation justifies the text relative to the entire frame.
5005 Once justified, the <b>X and Y</b> offset is applied. This allows text to
5006 be justified while at the same time letting you push it within the
5007 title safe region.
5009 <p>The <b>motion type</b> scrolls the text in any of the four directions.
5010 When using this, the text may dissappear. Move the insertion point
5011 along the timeline until the text is far enough along the animation to
5012 reappear. The text scrolls on and scrolls off.
5014 <p>Setting <b>loop</b> causes the text to scroll completely off and repeat.
5015 Without <b>loop</b> the text scrolls off and never reappears.
5017 <p>The speed of the animation is determined by <b>speed</b> Set it higher to
5018 speed up the animation.
5020 <p><b>Drop shadow</b> draws a black copy of the text to the bottom right of
5021 the original text. Useful when drawing text over changing video to
5022 keep the border always visible.
5024 <p>In addition to the scrolling, <b>Fade in/Fade out</b> are a second type of
5025 animation. If the fade seconds are 0, no fading is done.
5027 <p><b>Color</b> picks the color to draw the text in. Usually white is the
5028 only practical color.
5030 <p><b>Stamp timecode</b> replaces the text with the current position on the
5031 timeline in seconds and frames.
5033 <ul class="menu">
5034 <li><a accesskey="1" href="#ADDING%20FONTS%20TO%20THE%20TITLER">ADDING FONTS TO THE TITLER</a>: How to add fonts to the titler
5035 <li><a accesskey="2" href="#THE%20TITLE-SAFE%20REGION">THE TITLE-SAFE REGION</a>: How to keep text visible on output
5036 </ul>
5038 <div class="node">
5039 <p><hr>
5040 Node:<a name="ADDING%20FONTS%20TO%20THE%20TITLER">ADDING FONTS TO THE TITLER</a>,
5041 Next:<a rel="next" accesskey="n" href="#THE%20TITLE-SAFE%20REGION">THE TITLE-SAFE REGION</a>,
5042 Up:<a rel="up" accesskey="u" href="#TITLER">TITLER</a>
5043 <br>
5044 </div>
5046 <h4 class="subsection">ADDING FONTS TO THE TITLER</h4>
5048 <p>The X Window system originally didn't have a suitable font renderer for
5049 video. It also is restricted to the current bit depth. It doesn't
5050 have a convenient way to know which fonts work with the suitable font
5051 renderer in the desired bit depth. The easiest way we've found to
5052 support fonts in the titler is to have a directory for them at
5053 <b>/usr/lib/cinelerra/fonts</b>.
5055 <p>The titler supports mainly <b>TTF</b>, true type fonts. It supports
5056 others but TTF are the most reliable. To add true type fonts, copy the
5057 <b>.TTF</b> files to the <b>/usr/lib/cinelerra/fonts</b> directory. In that
5058 directory run <b>ttmkfdir &gt; fonts.dir</b> and restart Cinelerra. The new
5059 fonts should appear.
5061 <div class="node">
5062 <p><hr>
5063 Node:<a name="THE%20TITLE-SAFE%20REGION">THE TITLE-SAFE REGION</a>,
5064 Previous:<a rel="previous" accesskey="p" href="#ADDING%20FONTS%20TO%20THE%20TITLER">ADDING FONTS TO THE TITLER</a>,
5065 Up:<a rel="up" accesskey="u" href="#TITLER">TITLER</a>
5066 <br>
5067 </div>
5069 <h4 class="subsection">THE TITLE-SAFE REGION</h4>
5071 <p>If the video is displayed on a consumer TV, the outer border is going
5072 to be cropped by 5% on each side. Moreover, text which is too close to
5073 the edge looks sloppy. Make sure when added titles to have the
5074 <b>title-safe</b> <img src="titlesafe.png" alt="titlesafe.png"> tool active in the <b>compositor</b> window.
5075 The text shouldn't cross the inner rectangle.
5077 <div class="node">
5078 <p><hr>
5079 Node:<a name="VIDEO%20SCOPE">VIDEO SCOPE</a>,
5080 Previous:<a rel="previous" accesskey="p" href="#TITLER">TITLER</a>,
5081 Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
5082 <br>
5083 </div>
5085 <h3 class="section">VIDEO SCOPE</h3>
5087 <p>The video scope plots two views of the image. One view plots the
5088 intensity of each pixel against horizontal position. They call this
5089 the WAVEFORM. Another view translates hue to angle and saturation to
5090 radius for each pixel. They call this the VECTORSCOPE.
5092 <p>The vectorscope is actually very useful for determining if an image is
5093 saturated. When adjusting saturation, it's important to watch the
5094 vectorscope to make sure pixels don't extend past the 100 radius.
5096 <p>The waveform allows you to make sure image data extends from complete
5097 black to complete white while adjusting the brightness/contrast.
5099 <p>Some thought is being given to having a video scope for recording.
5100 Unfortunately, this would require a lot of variations of the video
5101 scope for all the different video drivers.
5103 <div class="node">
5104 <p><hr>
5105 Node:<a name="PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>,
5106 Next:<a rel="next" accesskey="n" href="#RELEASE%20NOTES">RELEASE NOTES</a>,
5107 Previous:<a rel="previous" accesskey="p" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>,
5108 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
5109 <br>
5110 </div>
5112 <h2 class="chapter">PLUGIN AUTHORING</h2>
5114 <p>The plugin API in Cinelerra dates back to 1997, before the LADSPA and
5115 before VST became popular. It's fundamentally the same as it was in
5116 1997, with minor modifications to handle keyframes and GUI feedback.
5117 Unfortunately, the GUI is not abstracted from the programmer. This
5118 allows the programmer to use whatever toolkit they want and allows more
5119 flexibility in appearance but it costs more.
5121 <p>There are several types of plugins, each with a common procedure of
5122 implementation and specific changes for that particular type. The
5123 easiest way to implement a plugin is to take the simplest existing one
5124 out of the group and rename the symbols.
5126 <ul class="menu">
5127 <li><a accesskey="1" href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>:
5128 <li><a accesskey="2" href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>:
5129 <li><a accesskey="3" href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>:
5130 <li><a accesskey="4" href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>:
5131 <li><a accesskey="5" href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>:
5132 <li><a accesskey="6" href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>:
5133 <li><a accesskey="7" href="#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>:
5134 <li><a accesskey="8" href="#PLUGIN%20QUERIES">PLUGIN QUERIES</a>:
5135 </ul>
5137 <div class="node">
5138 <p><hr>
5139 Node:<a name="COMMON%20PROCEDURES">COMMON PROCEDURES</a>,
5140 Next:<a rel="next" accesskey="n" href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>,
5141 Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
5142 <br>
5143 </div>
5145 <h3 class="section">COMMON PROCEDURES</h3>
5147 <p>All plugins inherit from a derivative of PluginClient. This derivative
5148 implements most of the required methods in PluginClient, but users must
5149 still define methods for PluginClient. The most commonly used methods
5150 are already implemented in macros.
5152 <p>The files they include depend on the plugin type. Audio plugins
5153 include <b>pluginaclient.h</b> and video plugins include
5154 <b>pluginvclient.h</b>. They inherit <b>PluginAClient</b> and
5155 <b>PluginVClient</b> respectively.
5157 <p>Another thing all plugins do is define at least three objects:
5159 <ul>
5161 <li>
5162 Processing object - Contains pointers to all the other objects and
5163 performs the signal processing. This object contains a number of
5164 queries to identify itself and is the object you register to register
5165 the plugin.
5167 <li>
5168 User interface object - This is defined according to the programmer's
5169 discretion. It can either use Cinelerra's toolkit or another toolkit.
5170 It shows data on the screen and collects parameters from the user.
5172 <p>Using Cinelerra's toolkit, the only user interface object a developer
5173 needs to worry about is the Window. The window has pointers to a
5174 number of widgets, a few initialization methods, and a back pointer to
5175 the plugin's processing object. The documentation refers to usage of
5176 Cinelerra's toolkit.
5178 <p>Depending on the user interface toolkit, a user interface thread may be
5179 created to run the user interface asynchronous of everything else.
5180 Synchronizing the user interface to changes in keyframes is the most
5181 complicated aspect of the plugin, so the user interface thread and
5182 object are heavily supported by macros if you use Cinelerra's toolkit.
5184 </p><li>
5185 Configuration object - This stores the user parameters and always needs
5186 interpolation, copying, and comparison functions. The plugin client
5187 automatically calls configuration methods to interpolate keyframes.
5189 </ul>
5191 <ul class="menu">
5192 <li><a accesskey="1" href="#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT</a>:
5193 <li><a accesskey="2" href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>:
5194 <li><a accesskey="3" href="#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT</a>:
5195 </ul>
5197 <div class="node">
5198 <p><hr>
5199 Node:<a name="THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT</a>,
5200 Next:<a rel="next" accesskey="n" href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>,
5201 Up:<a rel="up" accesskey="u" href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
5202 <br>
5203 </div>
5205 <h4 class="subsection">THE PROCESSING OBJECT</h4>
5207 <p>The processing object should inherit from the intended PluginClient
5208 derivative. Its constructor should take a PluginServer argument.
5210 <pre class="example"> MyPlugin(PluginServer *server);
5211 </pre>
5213 <p>In the implementation, the plugin must contain a registration line with
5214 the name of the processing object like
5216 <pre class="example"> REGISTER_PLUGIN(MyPlugin)
5217 </pre>
5219 <p>The constructor should contain
5221 <pre class="example"> PLUGIN_CONSTRUCTOR_MACRO
5222 </pre>
5224 <p>to initialize the most common variables.
5226 <p>The processing object should have a destructor containing
5228 <pre class="example"> PLUGIN_DESTRUCTOR_MACRO
5229 </pre>
5231 <p>to delete the most common variables.
5233 <p>Another function which is useful but not mandatory is
5235 <pre class="example"> int is_multichannel();
5236 </pre>
5238 <p>It should return 1 if one instance of the plugin handles multiple
5239 channels simultaneously or 0 if one instance of the plugin only handles
5240 one channel. The default is 0 if it is omitted. Multichannel plugins
5241 should refer to the value of <b>PluginClient::total_in_buffers</b> to
5242 determine the number of channels.
5244 <p>To simplify the implementation of realtime plugins, a macro for
5245 commonly used members should be put in the class header, taking the
5246 configuration object and user interface thread object as arguments.
5247 This is only useful for realtime plugins. Fortunately, nonrealtime
5248 plugins are simpler.
5250 <pre class="example"> PLUGIN_CLASS_MEMBERS(config_name, thread_name)
5251 </pre>
5253 <p>Many other members may be defined in the processing object, depending
5254 on the plugin type. The commonly used members in PLUGIN_CLASS_MEMBERS
5255 are described below. Not all these members are used in nonrealtime
5256 plugins.
5258 <ul>
5260 <li>int load_configuration();
5262 <p>Loads the configuration based on surrounding keyframes and current
5263 position. The class definition should contain
5265 <pre class="example"> LOAD_CONFIGURATION_MACRO(plugin_class, config_class)
5266 </pre>
5268 <p>to implement load_configuration. This stores whatever the current
5269 configuration is inside the plugin's configuration object. The
5270 plugin's configuration object is always called <b>config</b> when using
5271 PLUGIN_CLASS_MEMBERS.
5273 </p><li>VFrame* new_picon();
5275 <p>Creates a picon for display in the resource window. Use
5277 <pre class="example"> #include "picon_png.h"
5278 NEW_PICON_MACRO(plugin_class)
5279 </pre>
5281 <p>to implement new_picon. In addition, the user should create a
5282 <em>picon_png.h</em> header file from a PNG image using <em>pngtoh</em>.
5283 <em>pngtoh</em> is compiled in the <em>guicast/ARCH</em> directory.
5285 <p>The source PNG image should be called picon.png and can be any format
5286 supported by PNG.
5288 </p><li>char* plugin_title();
5290 <p>Returns a text string identifying the plugin in the resource window.
5291 The string has to be unique.
5293 </p><li>void update_gui();
5295 <p>Should first load the configuration and then redraw the GUI with the
5296 new parameters. All the plugins using GuiCast have a format like
5298 <pre class="example"> void MyPlugin::update_gui()
5300 if(thread)
5302 load_configuration();
5303 thread-&gt;window-&gt;lock_window();
5304 // update widgets here
5305 thread-&gt;window-&gt;unlock_window();
5308 </pre>
5310 <p>to handle concurrency and conditions of no GUI.
5312 </p><li>int show_gui();
5314 <p>Instantiate the GUI and switch the plugin to GUI mode. This is implemented with
5316 <pre class="example"> SHOW_GUI_MACRO(plugin_class, thread_class)
5317 </pre>
5319 </p><li>int set_string();
5321 <p>Changes the title of the GUI window to a certain string. This is implemented with
5323 <pre class="example"> SET_STRING_MACRO(plugin_class)
5324 </pre>
5326 </p><li>void raise_window();
5328 <p>Raises the GUI window to the top of the stack. This is implemented with
5330 <pre class="example"> RAISE_WINDOW_MACRO(plugin_class)
5331 </pre>
5333 </ul>
5335 <div class="node">
5336 <p><hr>
5337 Node:<a name="THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>,
5338 Next:<a rel="next" accesskey="n" href="#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT</a>,
5339 Previous:<a rel="previous" accesskey="p" href="#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT</a>,
5340 Up:<a rel="up" accesskey="u" href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
5341 <br>
5342 </div>
5344 <h4 class="subsection">THE CONFIGURATION OBJECT</h4>
5346 <p>The configuration object is critical for GUI updates, signal
5347 processing, and default settings in realtime plugins. Be aware it is
5348 not used in nonrealtime plugins. The configuration object inherits
5349 from nothing and has no dependancies. It's merely a class containing
5350 three functions and variables specific to the plugin's parameters.
5352 <p>Usually the configuration object starts with the name of the plugin
5353 followed by Config.
5355 <pre class="example"> class MyPluginConfig
5357 public:
5358 MyPluginConfig();
5359 </pre>
5361 <p>Following the name of the configuration class, we put the three
5362 required functions and the configuration variables.
5364 <pre class="example"> int equivalent(MyPluginConfig &amp;that);
5365 void copy_from(MyPluginConfig &amp;that);
5366 void interpolate(MyPluginConfig &amp;prev,
5367 MyPluginConfig &amp;next,
5368 int64_t prev_position,
5369 int64_t next_position,
5370 int64_t current_position);
5374 float parameter1;
5375 float parameter2;
5376 int parameter3;
5379 </pre>
5381 <p>Now you must define the three functions. <b>Equivalent</b> is called by
5382 LOAD_CONFIGURATION_MACRO to get the return value. That is all it's
5383 used for and if you don't care about load_configuration's return value,
5384 you can leave this function empty. It normally returns 1 if the
5385 argument's variables have the same values as the local variables.
5387 <p>Then there's <b>copy_from</b> which transfers the configuration values
5388 from the argument to the local variables. This is once again used in
5389 LOAD_CONFIGURATION_MACRO to store configurations in temporaries. Once
5390 LOAD_CONFIGURATION_MACRO has replicated the configuration, it loads a
5391 second configuration. Then it interpolates the two configurations to
5392 get the current configuration. The interpolation function performs the
5393 interpolation and stores the result in the local variables.
5395 <p>Normally the interpolate function calculates a previous and next
5396 fraction, using the arguments.
5398 <pre class="example"> void MyPluginConfig::interpolate(MyPluginConfig &amp;prev,
5399 MyPluginConfig &amp;next,
5400 int64_t prev_position,
5401 int64_t next_position,
5402 int64_t current_position)
5404 double next_scale = (double)(current_position - prev_position) / (next_position - prev_position);
5405 double prev_scale = (double)(next_position - current_position) / (next_position - prev_position);
5406 </pre>
5408 <p>Then the scales are applied to the previous and next configuration
5409 object to yield the current values.
5411 <pre class="example">
5412 this-&gt;parameter1 = (float)(prev.parameter1 * prev_scale + next.parameter1 * next_scale);
5413 this-&gt;parameter2 = (float)(prev.parameter2 * prev_scale + next.parameter2 * next_scale);
5414 this-&gt;parameter3 = (int)(prev.parameter3 * prev_scale + next.parameter3 * next_scale);
5417 </pre>
5419 <p>Alternatively you can copy the values from the previous configuration
5420 argument for no interpolation.
5422 <p>This usage is the same in audio and video plugins. In video playback,
5423 the interpolation function is called for every frame, yielding smooth
5424 interpolation. In audio playback, the interpolation function is called
5425 only once for every console fragment and once every time the insertion
5426 point moves. This is good enough for updating the GUI while selecting
5427 regions on the timeline but it may not be accurate enough for really
5428 smooth rendering of the effect.
5430 <p>For really smooth rendering of audio, you can still use
5431 load_configuration when updating the GUI. For process_realtime;
5432 however, ignore load_configuration and write your own interpolation
5433 routine which loads all the keyframes in a console fragment and
5434 interpolates every sample. This would be really slow and hard to
5435 debug, yielding improvement which may not be audible. Then of course,
5436 every century has its set of wierdos.
5438 <p>An easier way to get smoother interpolation is to reduce the console
5439 fragment to 1 sample. This would have to be rendered and played back
5440 in a separate program of course. The Linux sound driver can't play
5441 fragments of 1 sample.
5443 <div class="node">
5444 <p><hr>
5445 Node:<a name="THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT</a>,
5446 Previous:<a rel="previous" accesskey="p" href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>,
5447 Up:<a rel="up" accesskey="u" href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
5448 <br>
5449 </div>
5451 <h4 class="subsection">THE USER INTERFACE OBJECT</h4>
5453 <p>The user interface object at the very least consists of a pointer to a
5454 window and pointers to a set of widgets. Using Cinelerra's toolkit, it
5455 consists of a <b>BCWindow</b> derivative and a <b>Thread</b> derivative. The
5456 Thread derivative is declared in the plugin header using
5458 <pre class="example"> PLUGIN_THREAD_HEADER(plugin_class, thread_class, window_class)
5459 </pre>
5461 <p>Then it is defined using
5463 <pre class="example"> PLUGIN_THREAD_OBJECT(plugin_class, thread_class, window_class)
5464 </pre>
5466 <p>This in combination with the SHOW_GUI macro does all the work in
5467 instantiating the Window class. This is used in realtime plugins but
5468 not in nonrealtime plugins. Nonrealtime plugins create and destroy
5469 their GUI in <b>get_parameters</b> and there's no thread.
5471 <p>Now the window class must be declared in the plugin header. It's
5472 easiest to implement the window by copying an existing plugin and
5473 renaming the symbols. The following is an outline of what happens.
5474 The plugin header must declare the window's constructor using the
5475 appropriate arguments.
5477 <pre class="example">
5478 #include "guicast.h"
5480 class MyPluginWindow : public BC_Window
5482 public:
5483 MyPluginWindow(MyPluginMain *plugin, int x, int y);
5485 </pre>
5487 <p>This becomes a window on the screen, positioned at x and y.
5489 <p>It needs two methods
5491 <pre class="example"> int create_objects();
5492 int close_event();
5493 </pre>
5495 <p>and a back pointer to the plugin
5497 <pre class="example"> MyPlugin *plugin;
5498 </pre>
5500 <p>The constructor's definition should contain extents and flags causing
5501 the window to be hidden when first created. The create_objects member
5502 puts widgets in the window according to GuiCast's syntax. A pointer to
5503 each widget which is to be synchronized to a keyframe is stored in the
5504 window class. These are updated in the <b>update_gui</b> function you
5505 earlier defined for the plugin. The widgets are usually derivatives of
5506 a GuiCast widget and they override functions in GuiCast to handle
5507 events. Finally create_objects calls
5509 <pre class="example"> show_window();
5510 flush();
5511 </pre>
5513 <p>to make the window appear all at once.
5515 <p>The close_event member should be implemented using
5517 <pre class="example"> WINDOW_CLOSE_EVENT(window_class)
5518 </pre>
5520 <p>Every widget in the GUI needs to detect when its value changes. In
5521 GuiCast the <b>handle_event</b> method is called whenever the value
5522 changes. In <b>handle_event</b>, the widget then needs to call
5523 <b>plugin-&gt;send_configure_change()</b> to propogate the change to rendering.
5525 <div class="node">
5526 <p><hr>
5527 Node:<a name="REALTIME%20PLUGINS">REALTIME PLUGINS</a>,
5528 Next:<a rel="next" accesskey="n" href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>,
5529 Previous:<a rel="previous" accesskey="p" href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>,
5530 Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
5531 <br>
5532 </div>
5534 <h3 class="section">REALTIME PLUGINS</h3>
5536 <p>Realtime plugins should use PLUGIN_CLASS_MEMBERS to define the basic
5537 set of members in their headers. All realtime plugins must define an
5539 <pre class="example"> int is_realtime()
5540 </pre>
5542 <p>member returning 1. This causes a number of realtime methods to be
5543 called during playback and the plugin to be droppable on the timeline.
5545 <p>Realtime plugins must define a member called
5547 <pre class="example"> process_realtime
5548 </pre>
5550 <p>to be called during every audio fragment and video frame. It has an
5551 input and an output argument and for audio, a size argument. The
5552 process_realtime function should start by calling
5553 <b>load_configuration</b>. The LOAD_CONFIGURATION_MACRO returns 1 if the
5554 configuration changed. Then process_realtime should move the data from
5555 the input to the output with processing.
5557 <p>Additional members are implemented to maintain configuration in
5558 realtime plugins. Some of these are also needed in nonrealtime
5559 plugins.
5561 <ul>
5562 <li>void read_data(KeyFrame *keyframe);
5564 <p>Loads data from a keyframe into the plugin's configuration. Inside the
5565 keyframe is an XML string. It's most easily parsed by creating a
5566 <em>FileXML</em> object. See an existing plugin to see how the read_data
5567 function is implemented.
5569 <p>Read data loads data out of the XML object and stores values in the
5570 plugin's configuration object.
5572 </p><li>void save_data(KeyFrame *keyframe);
5574 <p>Saves data from the plugin's configuration to a keyframe. Inside the
5575 keyframe you'll put an XML string which is normally created by a
5576 FileXML object. See an existing plugin to see how the save_data
5577 function is implemented.
5579 <p>Save data saves data from the plugin's configuration object into the
5580 XML object.
5582 </p><li>int load_defaults();
5584 <p>Another way the plugin gets parameters is from a defaults file. The
5585 load and save defaults routines use a Defaults object to parse the
5586 defaults file. The defaults object is created in <b>load_defaults</b> and
5587 destroyed in the plugin's destructor. See an existing plugin to see
5588 how the Defaults object is used.
5590 </p><li>int save_defaults();
5592 <p>Saves the configuration in the defaults object.
5594 </ul>
5596 <div class="node">
5597 <p><hr>
5598 Node:<a name="NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>,
5599 Next:<a rel="next" accesskey="n" href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>,
5600 Previous:<a rel="previous" accesskey="p" href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>,
5601 Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
5602 <br>
5603 </div>
5605 <h3 class="section">NONREALTIME PLUGINS</h3>
5607 <p>Like realtime plugins, <b>load_defaults</b> and <b>save_defaults</b> must be
5608 implemented. In nonrealtime plugins, these are not just used for
5609 default parameters but to transfer values from the user interface to
5610 the signal processor. There doesn't need to be a configuration class
5611 in nonrealtime plugins.
5613 <p>Unlike realtime plugins, the LOAD_CONFIGURATION_MACRO can't be used in
5614 the plugin header. Instead, the following methods must be defined.
5616 <p>The nonrealtime plugin should contain a pointer to a defaults object.
5618 <pre class="example">
5619 Defaults *defaults;
5621 </pre>
5623 <p>It should also have a pointer to a MainProgressBar.
5625 <pre class="example">
5626 MainProgressBar *progress;
5627 </pre>
5629 <p>The progress pointer allows nonrealtime plugins to display their
5630 progress in Cinelerra's main window.
5632 <p>The constructor for a nonrealtime plugin can't use
5633 PLUGIN_CONSTRUCTOR_MACRO but must call <b>load_defaults</b> directly.
5635 <p>The destructor, likewise, must call <b>save_defaults</b> and <b>delete
5636 defaults</b> directly instead of PLUGIN_DESTRUCTOR_MACRO.
5638 <ul>
5640 <li>VFrame* new_picon();
5642 <p>char* plugin_title();
5644 <p>The usage of these is the same as realtime plugins.
5646 </p><li>int is_realtime();
5648 <p>This function must return 0 to indicate a nonrealtime plugin.
5650 </p><li>
5651 int get_parameters();
5653 <p>Here, the user should create a GUI, wait for the user to hit an OK
5654 button or a cancel button, and store the parameters in plugin
5655 variables. This routine must return 0 for success and 1 for failure.
5656 This way the user can cancel the effect from the GUI.
5658 <p>Unlike the realtime plugin, this GUI need not run asynchronously of the
5659 plugin. It should block the get_parameters function until the user
5660 selects OK or Cancel.
5662 </p><li>int load_defaults();
5664 <p>This should create a defaults object and load parameters from the
5665 defaults object into plugin variables.
5667 </p><li>int save_defaults();
5669 <p>This should save plugin variables to the defaults object.
5671 </p><li>int start_loop();
5673 <p>If <b>get_parameters</b> returned 0 for success, this is called once to
5674 give the plugin a chance to initialize processing. The plugin should
5675 instantiate the progress object with a line like
5677 <pre class="example">
5678 progress = start_progress("MyPlugin progress...",
5679 PluginClient::end - PluginClient::start);
5681 </pre>
5683 <p>The usage of <b>start_progress</b> depends on whether the plugin is
5684 multichannel or single channel. If it's multichannel you always call
5685 start_progress. If it's single channel, you first need to know whether
5686 the progress bar has already started in another instance of the plugin.
5688 <p>If <b>PluginClient::interactive</b> is 1, you need to start the progress
5689 bar. If it's 0, the progress bar has already been started.
5691 <p>The PluginClient defines <b>end</b> and <b>start</b> for the timeline range
5692 to be processed. The units are either samples or frames.
5694 </p><li>int process_loop
5696 <p>This is called repeatedly until the timeline range is processed. It
5697 takes either a samples or frames buffer and a reference to
5698 write_length. The arguments are a location and length for the output
5699 if it's audio.
5701 <p>The plugin must use <b>read_samples</b> or <b>read_frame</b> to read the
5702 input. These functions take a buffer and a position relative to the
5703 start of the timeline. Then it must process it and put the output in
5704 the arguments to process_loop. write_length should contain the number
5705 of samples generated if it's audio.
5707 <p>Finally, process_loop must test <b>PluginClient::interactive</b> and
5708 update the progress bar if it's 1.
5710 <pre class="example"> progress-&gt;update(total_written);
5711 </pre>
5713 <p>returns 1 or 0 if the progress bar was cancelled. If it's 1,
5714 process_loop should return 1 to indicate a cancellation. In addition
5715 to progress bar cancellation, <b>process_loop</b> should return 1 when the
5716 entire timeline range is processed.
5718 </p><li>int stop_loop();
5720 <p>This is called after process_loop processes its last buffer.
5722 <p>If PluginClient::is_interactive is 1, this should call
5723 <b>stop_progress</b> in the progress bar pointer and delete the pointer.
5724 Then it should delete any objects it created for processing in
5725 <b>start_loop</b>.
5727 </ul>
5729 <div class="node">
5730 <p><hr>
5731 Node:<a name="AUDIO%20PLUGINS">AUDIO PLUGINS</a>,
5732 Next:<a rel="next" accesskey="n" href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>,
5733 Previous:<a rel="previous" accesskey="p" href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>,
5734 Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
5735 <br>
5736 </div>
5738 <h3 class="section">AUDIO PLUGINS</h3>
5740 <p>The simplest audio plugin is Gain. The processing object should
5741 include <b>pluginaclient.h</b> and inherit from <b>PluginAClient</b>. Realtime audio plugins need to
5742 define
5744 <pre class="example"> int process_realtime(int64_t size,
5745 double **input_ptr,
5746 double **output_ptr);
5747 </pre>
5749 <p>if it's multichannel or
5751 <pre class="example"> int process_realtime(int64_t size,
5752 double *input_ptr,
5753 double *output_ptr);
5754 </pre>
5756 <p>if it's single channel. These should return the number of samples
5757 generated. In the future, the number of samples return value will
5758 synchronize plugins which delay audio.
5760 <p>Nonrealtime audio plugins need to define
5762 <pre class="example"> int process_loop(double *buffer, int64_t &amp;write_length);
5763 </pre>
5765 <p>for single channel or
5767 <pre class="example"> int process_loop(double **buffers, int64_t &amp;write_length);
5768 </pre>
5770 <p>for multi channel.
5772 <div class="node">
5773 <p><hr>
5774 Node:<a name="VIDEO%20PLUGINS">VIDEO PLUGINS</a>,
5775 Next:<a rel="next" accesskey="n" href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>,
5776 Previous:<a rel="previous" accesskey="p" href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>,
5777 Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
5778 <br>
5779 </div>
5781 <h3 class="section">VIDEO PLUGINS</h3>
5783 <p>The simplest video plugin is Flip. The processing object should
5784 include <b>pluginvclient.h</b> and inherit from <b>PluginVClient</b>.
5785 Realtime video plugins need to define
5787 <pre class="example"> int process_realtime(VFrame **input,
5788 VFrame **output);
5789 </pre>
5791 <p>if it's multichannel or
5793 <pre class="example"> int process_realtime(VFrame *input,
5794 VFrame *output);
5795 </pre>
5797 <p>if it's single channel. They only get one frame per call but should
5798 return the number of frames generated anyway. In the future, the
5799 number of frames return value will synchronize plugins which delay
5800 video.
5802 <p>The nonrealtime video plugins need to define
5804 <pre class="example"> int process_loop(VFrame *buffer);
5805 </pre>
5807 <p>for single channel or
5809 <pre class="example"> int process_loop(VFrame **buffers);
5810 </pre>
5812 <p>for multi channel. They're always assumed to have a write length of 1
5813 when they return 0.
5815 <div class="node">
5816 <p><hr>
5817 Node:<a name="TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>,
5818 Next:<a rel="next" accesskey="n" href="#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>,
5819 Previous:<a rel="previous" accesskey="p" href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>,
5820 Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
5821 <br>
5822 </div>
5824 <h3 class="section">TRANSITION PLUGINS</h3>
5826 <p>The simplest video transition is <b>dissolve</b> and the simplest audio
5827 transition is <b>crossfade</b>. These work identical to the single
5828 channel, realtime audio and video plugins. The only difference is the
5829 addition of an <b>is_transition</b> method to the processing object.
5830 <b>is_transition</b> should return 1.
5832 <p>Routines exist for determining where you are relative to the
5833 transition's start and end.
5835 <ul>
5837 <li><b>PluginClient::get_source_position()</b> - returns an integer
5838 position since the start of the transition
5840 <li><b>PluginClient::get_total_len()</b> - returns the integer length of
5841 the transition. The units are either samples or frames.
5843 </ul>
5845 <p>Users should divide source position by total length to get the fraction
5846 of the transition the current <b>process_realtime</b> function starts
5849 <p>Secondly, the meaning of the input and output arguments to
5850 <b>process_realtime</b> is different for transitions than for realtime
5851 plugins.
5853 <p>The first argument to process_realtime is the data for the next edit.
5854 The second argument to process_realtime is the data for the previous
5855 edit. Eventually the second argument becomes the output.
5857 <div class="node">
5858 <p><hr>
5859 Node:<a name="PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>,
5860 Next:<a rel="next" accesskey="n" href="#PLUGIN%20QUERIES">PLUGIN QUERIES</a>,
5861 Previous:<a rel="previous" accesskey="p" href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>,
5862 Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
5863 <br>
5864 </div>
5866 <h3 class="section">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</h3>
5868 <p>Effects like <b>Histogram</b> and <b>VideoScope</b> need to update the GUI
5869 during playback to display information about the signal. This is
5870 achieved with the <b>send_render_gui</b> and <b>render_gui</b> methods.
5871 Normally in process_realtime, when the processing object wants to
5872 update the GUI it should call <b>send_render_gui</b>. This should only be
5873 called in process_realtime. Send_render_gui goes through a search and
5874 eventually calls <b>render_gui</b> in the GUI instance of the plugin.
5876 <p>Render_gui should have a sequence like
5878 <pre class="example"> void MyPlugin::render_gui(void *data)
5880 if(thread)
5882 thread-&gt;window-&gt;lock_window();
5884 // update GUI here
5886 thread-&gt;window-&gt;unlock_window();
5890 </pre>
5892 <p>The sequence uses one argument, a void pointer to transfer information
5893 from the renderer to the GUI. The user should typecast this pointer
5894 into something useful.
5896 <div class="node">
5897 <p><hr>
5898 Node:<a name="PLUGIN%20QUERIES">PLUGIN QUERIES</a>,
5899 Previous:<a rel="previous" accesskey="p" href="#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>,
5900 Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
5901 <br>
5902 </div>
5904 <h3 class="section">PLUGIN QUERIES</h3>
5906 <p>There are several useful queries in PluginClient which can be accessed
5907 from the processing object. Some of them have different meaning in
5908 realtime and non-realtime mode. They all give information about the
5909 operating system or the project.
5911 <ul>
5913 <li>
5914 <b>int PluginClient::get_project_smp()</b> Gives the number of CPU's on
5915 the system minus 1. If it's a uniprocessor it's 0. If it's a dual
5916 processor, it's 1. This number should be used to gain any parallelism.
5918 <li>
5919 <b>double PluginClient::get_project_framerate()</b> Gives the frames per
5920 second of the video.
5922 <li>
5923 <b>int PluginClient::get_project_samplerate()</b> Gives the samples per
5924 second of the audio.
5926 </ul>
5928 <div class="node">
5929 <p><hr>
5930 Node:<a name="RELEASE%20NOTES">RELEASE NOTES</a>,
5931 Previous:<a rel="previous" accesskey="p" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>,
5932 Up:<a rel="up" accesskey="u" href="#Top">Top</a>
5933 <br>
5934 </div>
5936 <h2 class="chapter">RELEASE NOTES</h2>
5938 <ul>
5940 <p><b>1.0.0</b>
5942 <pre class="example">
5943 First release since Broadcast 2000 migration.
5945 </pre>
5947 <p><b>1.1.0</b>
5949 <pre class="example">
5950 Titler fonts installed by rpm.
5951 XMovie decodes ac3 according to redesigned liba52 channel mappings.
5952 Quicktime MPEG4 parameters debugged.
5953 Background rendering over a renderfarm.
5954 Renderfarm clients automatically reduced to idle priority.
5955 Better MJPA decoding on single processors.
5956 Better title functionality in 16 bit colormodels.
5957 Undo for effect keyframes.
5958 Effect GUI's cleared during undo for effect attachment.
5959 Fewer lockups on startup.
5960 Proper keyframe interpolation in scale effect.
5961 Stamp timecode in titler.
5962 Memory leaks in rendering stages removed.
5963 Removed legacy plugin server code.
5964 Option to generate sequence header in every GOP for MPEG2.
5965 LADSPA support.
5966 Listbox doesn't enter drag_icon state when dragging column division.
5967 Effect rendering bug fixed.
5968 64 bit mpeg transport stream seeking beyond 2 gigs.
5969 More accurate mask drawing when projector is zoomed.
5970 Clear labels updates CWindow
5971 More accurate YUV/RGB conversions.
5972 Import partial tgas
5973 Copy keyframes doesn't copy default keyframe.
5974 Track highlighting offset by vertical scroll.
5975 Multiple video scope, spectrogram, and histogram displays may be opened.
5976 HutSaturation in YUV colorspaces.
5977 Undo for masks.
5978 Shared synthesis effects cause the sharing tracks to
5979 play back instead of just the owning track.
5980 Quicktime recovery utility improved.
5981 Single frame recording with multiple batches doesn't crash.
5982 DV encoding.
5983 New video effects:
5984 gradient, downsample video, radial blur, linear blur, zoom blur,
5985 histogram, perspective.
5987 New audio effect:
5988 Sound level
5992 </pre>
5994 <p><b>1.1.5</b>
5996 <pre class="example">
5997 More options for the ffmpeg/MPEG-4 codecs.
5998 Histogram works on SMP.
5999 Better 16 bit alpha blending.
6000 BRender path updates from preferences.
6001 Separate preroll for background rendering and rendering.
6002 Deinterlace by averaging lines 0 and 2 or 1 and 3 to get intervening lines.
6003 Adaptive deinterlace.
6004 Frame per second statistics in renderfarm are more reliable.
6005 Select and slide in the patchbay.
6006 Video scope can be resized.
6007 Effect keyframes pasted in right positions more often.
6008 Selective denoising of video based on color channel.
6009 More mouse wheel bindings in MainWindow and ListBox.
6010 Ctrl-w closes effect windows.
6011 Perspective doesn't crash when switching from stretch to sheer.
6012 Better text list searching and keyboard navigation.
6013 Better Vorbis decoding after a pause.
6014 Close recording without recording anything doesn't crash.
6015 Save backup now option.
6016 OpenGL not required anymore.
6017 Time format changes update the selection textboxes more often.
6018 MPEG-4 deblocking option in XMovie and Cinelerra.
6019 Resize in Record GUI doesn't screw it up.
6020 Better export of YUVA16161616 to Component Y'CbCr 10-bit 4:4:4.
6021 Better import of Component Y'CbCr 10-bit 4:4:4 to RGB colorspaces.
6023 </pre>
6025 <p><b>1.1.6</b>
6027 <pre class="example">
6028 Create fade keyframe inadverdently drags bezier handle less often.
6029 Float autos don't draw on right edge of timeline when keyframes are beyond right edge.
6030 Better float auto creation.
6031 Add track anywhere in timeline through track popup.
6032 Shared track references are automatically reconfigured after deleting or adding tracks.
6033 Libmpeg3: Better decoding of field-based MPEG video.
6034 Channels can be moved up or down in the Channel picker properly.
6035 Better handling of the long delay in deleting files without overflowing the recording buffers.
6036 Deinterlace really swaps fields instead of just saying it.
6037 Two line swapping combinations in deinterlace.
6038 Better listbox row sizing.
6039 Downsample offset.
6040 Faster window creation.
6041 Splash screen while you wait for it to start up.
6042 File deletion occurs before opening the driver instead of
6043 after opening the driver for recording.
6044 Changing sample rate of WAV file in Asset window works.
6045 JPEG stills get saved with proper dimensions.
6046 Migrated to RedHat 8.0.
6047 - e2fsprogs-devel is needed to compile the background render object.
6048 Fewer crashes due to OpenDivx global variables getting overwritten.
6049 Paste silence and clipboards also shifts effect keyframes properly.
6050 More checks for circular references in shared effects and shared tracks.
6051 Tracking during audio playback without video doesn't run past edge of loop boundaries.
6052 Better keyframing in Titler.
6053 Multiple language encodings in Titler.
6054 Undo of replace project after an effect works.
6055 Frame -&gt; field conversion does line averaging and pixel shifting.
6056 Field -&gt; frame conversion uses pixel shifting.
6057 Negative cursor selection is frame aligned.
6058 Documentation on video cleaning and deinterlacing tools.
6059 Buttons repositioned properly when filebox is resized vertically.
6060 Fade automation is more accurate.
6061 CWindow and VWindow slider position is less erratic after the window is resized.
6062 Timebars with regions track the playback position.
6063 More workarounds for buz driver lockups.
6064 Dragging the cursor on the timebar off the edges scrolls the timeline.
6065 IVTC uses luminance only in YUV colorspaces to improve accuracy.
6066 Quicktime: Tighter audio synchronization when encoding Quicktime with Vorbis audio.
6067 Start of audio effects is more accurate.
6068 Better IEEE1394 playback of video only.
6069 More IEEE1394 playback options.
6071 </pre>
6073 </ul>
6075 </body></html>