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.2">
7 <link href=
"http://www.gnu.org/software/texinfo/" rel=generator-home
>
10 <h1>Secrets of Cinelerra
</h1>
12 Node:
<a name=
"Top">Top
</a>,
13 Next:
<a rel=next accesskey=n
href=
"#ABOUT%20CINELERRA">ABOUT CINELERRA
</a>,
14 Up:
<a rel=up accesskey=u
href=
"#dir">(dir)
</a>
17 <h2>BRIEF CONTENTS
</h2>
20 <li><a accesskey=
1 href=
"#ABOUT%20CINELERRA">ABOUT CINELERRA
</a>:
21 <li><a accesskey=
2 href=
"#INSTALLATION">INSTALLATION
</a>:
22 <li><a accesskey=
3 href=
"#CONFIGURATION">CONFIGURATION
</a>:
23 <li><a accesskey=
4 href=
"#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS
</a>:
24 <li><a accesskey=
5 href=
"#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES
</a>:
25 <li><a accesskey=
6 href=
"#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>:
26 <li><a accesskey=
7 href=
"#EDITING">EDITING
</a>:
27 <li><a accesskey=
8 href=
"#USING%20EFFECTS">USING EFFECTS
</a>:
28 <li><a accesskey=
9 href=
"#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES
</a>:
29 <li><a href=
"#COMPOSITING">COMPOSITING
</a>:
30 <li><a href=
"#KEYFRAMES">KEYFRAMES
</a>:
31 <li><a href=
"#CAPTURING%20MEDIA">CAPTURING MEDIA
</a>:
32 <li><a href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>:
33 <li><a href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>:
34 <li><a href=
"#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA
</a>:
35 <li><a href=
"#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS
</a>:
36 <li><a href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>:
37 <li><a href=
"#RELEASE%20NOTES">RELEASE NOTES
</a>:
41 <h2>Table of Contents
</h2>
43 <li><a name=
"toc_Top"></a>
44 <a href=
"#Top">BRIEF CONTENTS
</a>
45 <li><a name=
"toc_ABOUT%20CINELERRA"></a>
46 <a href=
"#ABOUT%20CINELERRA">ABOUT CINELERRA
</a>
48 <li><a href=
"#ABOUT%20THIS%20MANUAL">ABOUT THIS MANUAL
</a>
50 <li><a name=
"toc_INSTALLATION"></a>
51 <a href=
"#INSTALLATION">INSTALLATION
</a>
53 <li><a href=
"#INSTALLING%20AN%20RPM">INSTALLING AN RPM
</a>
54 <li><a href=
"#COMPILING%20FROM%20SCRATCH">COMPILING FROM SCRATCH
</a>
56 <li><a name=
"toc_CONFIGURATION"></a>
57 <a href=
"#CONFIGURATION">CONFIGURATION
</a>
59 <li><a href=
"#PLAYBACK">PLAYBACK
</a>
61 <li><a href=
"#AUDIO%20OUT">AUDIO OUT
</a>
62 <li><a href=
"#VIDEO%20OUT">VIDEO OUT
</a>
64 <li><a href=
"#RECORDING">RECORDING
</a>
66 <li><a href=
"#AUDIO%20IN">AUDIO IN
</a>
67 <li><a href=
"#VIDEO%20IN">VIDEO IN
</a>
69 <li><a href=
"#PERFORMANCE">PERFORMANCE
</a>
71 <li><a href=
"#BACKGROUND%20RENDERING">BACKGROUND RENDERING
</a>
72 <li><a href=
"#RENDERFARM">RENDERFARM
</a>
74 <li><a href=
"#INTERFACE">INTERFACE
</a>
76 <li><a name=
"toc_THE%20MAIN%20WINDOWS"></a>
77 <a href=
"#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS
</a>
78 <li><a name=
"toc_LOADING%20AND%20SAVING%20FILES"></a>
79 <a href=
"#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES
</a>
81 <li><a href=
"#LOADING%20FILES">LOADING FILES
</a>
83 <li><a href=
"#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS
</a>
84 <li><a href=
"#INSERTION%20STRATEGY">INSERTION STRATEGY
</a>
85 <li><a href=
"#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES
</a>
87 <li><a href=
"#LOADING%20THE%20BACKUP">LOADING THE BACKUP
</a>
88 <li><a href=
"#SAVING%20FILES">SAVING FILES
</a>
89 <li><a href=
"#RENDERING%20FILES">RENDERING FILES
</a>
90 <li><a href=
"#THE%20RENDER%20FARM">THE RENDER FARM
</a>
92 <li><a name=
"toc_NAVIGATING%20THE%20PROJECT"></a>
93 <a href=
"#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>
95 <li><a href=
"#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>
97 <li><a href=
"#THE%20INSERTION%20POINT">THE INSERTION POINT
</a>
98 <li><a href=
"#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS
</a>
99 <li><a href=
"#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW
</a>
101 <li><a href=
"#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR
</a>
102 <li><a href=
"#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES
</a>
103 <li><a href=
"#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS
</a>
104 <li><a href=
"#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING
</a>
106 <li><a name=
"toc_EDITING"></a>
107 <a href=
"#EDITING">EDITING
</a>
109 <li><a href=
"#MANIPULATING%20TRACKS">MANIPULATING TRACKS
</a>
110 <li><a href=
"#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING
</a>
111 <li><a href=
"#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING
</a>
112 <li><a href=
"#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING
</a>
113 <li><a href=
"#TRIMMING">TRIMMING
</a>
115 <li><a name=
"toc_USING%20EFFECTS"></a>
116 <a href=
"#USING%20EFFECTS">USING EFFECTS
</a>
118 <li><a href=
"#REALTIME%20EFFECTS">REALTIME EFFECTS
</a>
120 <li><a href=
"#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES
</a>
121 <li><a href=
"#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS
</a>
123 <li><a href=
"#RENDERED%20EFFECTS">RENDERED EFFECTS
</a>
124 <li><a href=
"#TRANSITIONS">TRANSITIONS
</a>
125 <li><a href=
"#LADSPA%20EFFECTS">LADSPA EFFECTS
</a>
127 <li><a name=
"toc_SETTING%20PROJECT%20ATTRIBUTES"></a>
128 <a href=
"#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES
</a>
129 <li><a name=
"toc_COMPOSITING"></a>
130 <a href=
"#COMPOSITING">COMPOSITING
</a>
132 <li><a href=
"#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR
</a>
133 <li><a href=
"#MASKS">MASKS
</a>
134 <li><a href=
"#CROPPING">CROPPING
</a>
135 <li><a href=
"#SAFE%20REGIONS">SAFE REGIONS
</a>
136 <li><a href=
"#OVERLAY%20MODES">OVERLAY MODES
</a>
137 <li><a href=
"#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES
</a>
139 <li><a name=
"toc_KEYFRAMES"></a>
140 <a href=
"#KEYFRAMES">KEYFRAMES
</a>
142 <li><a href=
"#CURVE%20KEYFRAMES">CURVE KEYFRAMES
</a>
143 <li><a href=
"#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES
</a>
144 <li><a href=
"#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES
</a>
145 <li><a href=
"#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES
</a>
146 <li><a href=
"#EDITING%20KEYFRAMES">EDITING KEYFRAMES
</a>
148 <li><a name=
"toc_CAPTURING%20MEDIA"></a>
149 <a href=
"#CAPTURING%20MEDIA">CAPTURING MEDIA
</a>
151 <li><a href=
"#BATCHES">BATCHES
</a>
152 <li><a href=
"#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION
</a>
154 <li><a name=
"toc_IMPROVING%20PERFORMANCE"></a>
155 <a href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
157 <li><a href=
"#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE
</a>
158 <li><a href=
"#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS
</a>
159 <li><a href=
"#MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER
</a>
160 <li><a href=
"#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY
</a>
161 <li><a href=
"#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE
</a>
162 <li><a href=
"#DISABLING%20CRON">DISABLING CRON
</a>
163 <li><a href=
"#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY
</a>
164 <li><a href=
"#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS
</a>
165 <li><a href=
"#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM
</a>
166 <li><a href=
"#IMPROVING%20ZORAN%20VIDEO">IMPROVING ZORAN VIDEO
</a>
168 <li><a name=
"toc_TROUBLESHOOTING"></a>
169 <a href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>
171 <li><a href=
"#BUZ%20DRIVER%20CRASHES">BUZ DRIVER CRASHES
</a>
172 <li><a href=
"#DRAGGING%20IN%20AND%20OUT%20POINTS%20DOESN'T%20WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK
</a>
174 <li><a name=
"toc_SECRETS%20OF%20CINELERRA"></a>
175 <a href=
"#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA
</a>
177 <li><a href=
"#DOLBY%20PRO%20LOGIC%20ENCODING">DOLBY PRO LOGIC ENCODING
</a>
178 <li><a href=
"#ANALOG%20TV%20CLEANING">ANALOG TV CLEANING
</a>
179 <li><a href=
"#DEFEATING%20INTERLACING">DEFEATING INTERLACING
</a>
180 <li><a href=
"#MAKING%20VIDEO%20LOOK%20LIKE%20FILM">MAKING VIDEO LOOK LIKE FILM
</a>
181 <li><a href=
"#CLEARING%20OUT%20HAZE">CLEARING OUT HAZE
</a>
183 <li><a name=
"toc_EFFECT%20DESCRIPTIONS"></a>
184 <a href=
"#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS
</a>
186 <li><a href=
"#CHROMA%20KEY">CHROMA KEY
</a>
187 <li><a href=
"#HISTOGRAM">HISTOGRAM
</a>
188 <li><a href=
"#TIME%20AVERAGE">TIME AVERAGE
</a>
189 <li><a href=
"#VIDEO%20SCOPE">VIDEO SCOPE
</a>
190 <li><a href=
"#DEINTERLACE">DEINTERLACE
</a>
192 <li><a name=
"toc_PLUGIN%20AUTHORING"></a>
193 <a href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>
195 <li><a href=
"#COMMON%20PROCEDURES">COMMON PROCEDURES
</a>
197 <li><a href=
"#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT
</a>
198 <li><a href=
"#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT
</a>
199 <li><a href=
"#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT
</a>
201 <li><a href=
"#REALTIME%20PLUGINS">REALTIME PLUGINS
</a>
202 <li><a href=
"#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS
</a>
203 <li><a href=
"#AUDIO%20PLUGINS">AUDIO PLUGINS
</a>
204 <li><a href=
"#VIDEO%20PLUGINS">VIDEO PLUGINS
</a>
205 <li><a href=
"#TRANSITION%20PLUGINS">TRANSITION PLUGINS
</a>
206 <li><a href=
"#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</a>
207 <li><a href=
"#PLUGIN%20QUERIES">PLUGIN QUERIES
</a>
209 <li><a name=
"toc_RELEASE%20NOTES"></a>
210 <a href=
"#RELEASE%20NOTES">RELEASE NOTES
</a>
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>
220 <h2>ABOUT CINELERRA
</h2>
222 <p>There are two types of moviegoers: producers who create new content,
223 going back over their content at future points for further refinement,
224 and consumers who want to acquire the content and watch it. Cinelerra
225 is not intended for consumers. Cinelerra has many features for
226 uncompressed content, high resolution processing, and compositing, with
227 very few shortcuts. Producers need these features because of the need
228 to retouch many generations of footage with alterations to the format,
229 which makes Cinelerra very complex. There are many more standard tools
230 for consumers like MainActor, Kino, or Moxy, which you should consider
231 before using Cinelerra.
233 <p>In
1996 our first editor came out: Broadcast
1.0. It was just a window
234 with a waveform in it, it could cut and paste stereo audio waveforms on
235 a UNIX box, except unlike other audio editors it could handle files up
236 to
2 gigabytes with only
64 megs of RAM. That was a feature normally
237 only accessible to the highest end professional audio houses.
239 <p>In
1997 Broadcast
1.0 was replaced by Broadcast
2.0. This time the
240 window had a menubar, patchbay, console, and transport control.
241 Broadcast
2.0 still only handled audio but this time it handled
242 unlimited tracks, and it could perform effects on audio and save the
243 resulting waveform to disk. More notably a few effects could be
244 performed as the audio was playing back, in realtime. A user could mix
245 unlimited numbers of tracks, adjust fade, pan, and EQ, and hear the
246 result instantly. Amazingly this real time tweeking is still
247 unavailable on most audio programs.
249 <p>But Broadcast
2.0 still didn't handle video and it wasn't very graceful
250 at audio either. In
1999 video broke into the story with Broadcast
251 2000. This iteration of the Broadcast series could do wonders with
252 audio and offered a pretty good video feature set. It could edit video
253 files up to
64 terabytes. It could do everything Broadcast
2.1 did
254 with audio except now all effects for video and audio could be chained
255 and performed on the fly, with instant feedback as a user tweeked
256 parameters during playback. Broadcast
2000 made it very easy to do a
257 lot of processing and editing on video and audio that would otherwise
258 involve many hours setting up command line sequences and writing to
259 disk. For a time it seemed as if the original dream of immersive movie
260 making for everyone regardless of income level had arrived.
262 <p>Later on Broadcast
2000 began to come short. Its audio and video was
263 graceful if you knew how to use it efficiently, but quality issues and
264 new user interface techniques were emerging. Broadcast
2000 kept the
265 audio interface from its ancestors, which didn't apply well to video.
266 Users likewise were maturing. No longer would it be sufficient to just
267 edit video on a UNIX box. Most users expected on UNIX the same thing
268 they got in Win or Mac. In mid
2000 designs for a Broadcast
2000
269 replacement were drafted. The Broadcast name was officially retired
270 from the series and the software would now be called Cinelerra.
271 Cinelerra would allow users to configure certain effects in much less
272 time than required with Broadcast
2000. It would begin to emulate some
273 of the features found in Win and Mac software while not attempting to
274 become a clone. It's interface would be designed for video from the
275 ground up, while supplementing that with the Broadcast audio
276 interface. As always, quality improvements would happen.
279 <li><a accesskey=
1 href=
"#ABOUT%20THIS%20MANUAL">ABOUT THIS MANUAL
</a>:
283 Node:
<a name=
"ABOUT%20THIS%20MANUAL">ABOUT THIS MANUAL
</a>,
284 Up:
<a rel=up accesskey=u
href=
"#ABOUT%20CINELERRA">ABOUT CINELERRA
</a>
287 <h3>ABOUT THIS MANUAL
</h3>
289 <p>After many years of searching for the perfect documentation format
290 we've arrived at TexInfo. This format can be converted to HTML,
291 printed, automatically indexed, but most importantly is not bound to
292 any commercial word processor. Documents written in Texinfo will be
293 readable as long as there's a C compiler.
295 <p>There are no screenshots in this manual. Screenshots become obsolete
296 quickly and as a result confuse the users. What looks one way in a
297 screenshot will always look different in the real program because the
298 real program and the manual are always evolving, never perfectly
299 synchronized. It is true that manuals should have screenshots, but our
300 objective in omitting screenshots is to keep the software costs minimal
301 so you don't have to pay for it. That includes additional labor to
302 synchronize the manual with the software.
304 <p>In addition to telling you the basic editing features of Cinelerra this
305 manual covers tricks that won't be described anywhere else. We're
306 going to try to come up with certain things you can do with Cinelerra
307 that you wouldn't think of on your own.
310 Node:
<a name=
"INSTALLATION">INSTALLATION
</a>,
311 Next:
<a rel=next accesskey=n
href=
"#CONFIGURATION">CONFIGURATION
</a>,
312 Previous:
<a rel=previous accesskey=p
href=
"#ABOUT%20CINELERRA">ABOUT CINELERRA
</a>,
313 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
316 <h2>INSTALLATION
</h2>
318 <p>The Cinelerra package contains Cinelerra and most of the libraries
319 needed to run it. We try to include all the dependancies because of
320 the difficulty in tracking down the right versions. Also included are
321 some utilities for handling files.
326 MPlex - Multiplexing of MPEG elementary streams.
329 mpeg3toc - Utility for indexing and reading MPEG files.
334 <li><a accesskey=
1 href=
"#INSTALLING%20AN%20RPM">INSTALLING AN RPM
</a>:
335 <li><a accesskey=
2 href=
"#COMPILING%20FROM%20SCRATCH">COMPILING FROM SCRATCH
</a>:
339 Node:
<a name=
"INSTALLING%20AN%20RPM">INSTALLING AN RPM
</a>,
340 Next:
<a rel=next accesskey=n
href=
"#COMPILING%20FROM%20SCRATCH">COMPILING FROM SCRATCH
</a>,
341 Up:
<a rel=up accesskey=u
href=
"#INSTALLATION">INSTALLATION
</a>
344 <h3>INSTALLING AN RPM
</h3>
346 <p>Cinelerra is best installed by downloading an RPM and running
348 <br><pre>rpm -U --force --nodeps hvirtual*.rpm
351 <p>on a RedHat system.
353 <p>On systems which don't support RPM look for a utility called
354 <em>rpm2cpio
</em>. Download a Cinelerra RPM and from the /
357 <br><pre>rpm2cpio hvirtual*.rpm | cpio -i --make-directories
361 Node:
<a name=
"COMPILING%20FROM%20SCRATCH">COMPILING FROM SCRATCH
</a>,
362 Previous:
<a rel=previous accesskey=p
href=
"#INSTALLING%20AN%20RPM">INSTALLING AN RPM
</a>,
363 Up:
<a rel=up accesskey=u
href=
"#INSTALLATION">INSTALLATION
</a>
366 <h3>COMPILING FROM SCRATCH
</h3>
368 <p>It should be noted that the compiler used in building Cinelerra
369 binaries is the free GNU compiler and although it can reorder
370 instructions for Pentium I and use some the of Pentium II branch
371 instructions it's
12 years behind most modern CPUs. You can try
372 different compilers and optimization flags by compiling the source.
374 <p>Compiling the source is hard and there's no warranty if the source code
375 fails to compile, but the method for compiling starts by downloading
376 the source code and decompressing.
378 <br><pre>tar jxf hvirtual*.tar.bz2
381 <p>Enter the hvirtual directory
386 <p>and set the CFLAGS environment variable. The flags for the GCC
387 compiler are constantly changing. These are our most recent flags.
390 <br><pre>export CFLAGS='-O3 -march=i686 -fmessage-length=
0 -funroll-all-loops -fomit-frame-pointer -falign-loops=
2 -falign-jumps=
2 -falign-functions=
2'
393 <p>For Pentium I and old AMD's use:
395 <br><pre>export CFLAGS='-O3 -fmessage-length=
0 -funroll-all-loops -fomit-frame-pointer -falign-loops=
2 -falign-jumps=
2 -falign-functions=
2'
398 <p>For new AMD's use:
400 <br><pre>export CFLAGS='-O3 -march=athlon -fmessage-length=
0 -funroll-all-loops -fomit-frame-pointer -falign-loops=
2 -falign-jumps=
2 -falign-functions=
2'
408 <p>The make procedure should run through all the directories and put
409 binaries in the
<em>i686
</em> directories. When we originally supported
410 Alpha it was convenient to compile Alpha and i686 binaries
411 simultaneously, in different directories so all the binaries are put in
416 <br><pre>make install
419 <p>to install the binaries. The output is put in the following directories:
422 <li>Executables -
> /usr/bin
423 <li>Plugins -
> /usr/lib/cinelerra
426 <p>The main binaries are /usr/bin/cinelerra and several utilities for
427 reading MPEG transport streams.
429 <p>Run Cinelerra by running
431 <br><pre>/usr/bin/cinelerra
435 Node:
<a name=
"CONFIGURATION">CONFIGURATION
</a>,
436 Next:
<a rel=next accesskey=n
href=
"#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS
</a>,
437 Previous:
<a rel=previous accesskey=p
href=
"#INSTALLATION">INSTALLATION
</a>,
438 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
441 <h2>CONFIGURATION
</h2>
443 <p>Because of the variety of uses, Cinelerra cannot be run optimally
444 without some intimate configuration for your specific needs. Very few
445 parameters are adjustible at compile time. Runtime configuration is
446 the only option for most configuration because of the multitude of
449 <p>Go to
<em>settings-
>preferences
</em> and run through the options.
452 <li><a accesskey=
1 href=
"#PLAYBACK">PLAYBACK
</a>:
453 <li><a accesskey=
2 href=
"#RECORDING">RECORDING
</a>:
454 <li><a accesskey=
3 href=
"#PERFORMANCE">PERFORMANCE
</a>:
455 <li><a accesskey=
4 href=
"#INTERFACE">INTERFACE
</a>:
459 Node:
<a name=
"PLAYBACK">PLAYBACK
</a>,
460 Next:
<a rel=next accesskey=n
href=
"#RECORDING">RECORDING
</a>,
461 Up:
<a rel=up accesskey=u
href=
"#CONFIGURATION">CONFIGURATION
</a>
467 <li><a accesskey=
1 href=
"#AUDIO%20OUT">AUDIO OUT
</a>:
468 <li><a accesskey=
2 href=
"#VIDEO%20OUT">VIDEO OUT
</a>:
472 Node:
<a name=
"AUDIO%20OUT">AUDIO OUT
</a>,
473 Next:
<a rel=next accesskey=n
href=
"#VIDEO%20OUT">VIDEO OUT
</a>,
474 Up:
<a rel=up accesskey=u
href=
"#PLAYBACK">PLAYBACK
</a>
479 <p>These determine what happens when you play sound from the timeline.
483 <li>SAMPLES TO READ FROM DISK
485 <p>Cinelerra uses a pipeline for rendering audio. The first stage is
486 reading large chunks of audio from disk, the samples to read from
487 disk. This is followed by processing small fragments in a virtual
490 </p><li>SAMPLES TO SEND TO CONSOLE:
492 <p>The second stage is rendering small fragments through the virtual
493 console to the sound driver. A larger value here causes more latency
494 when you change mixing parameters but gives more reliable playback.
496 <p>Some sound drivers don't allow changing of the console fragment so
497 latency is unchanged no matter what this value is.
500 VIEW FOLLOWS PLAYBACK
502 <p>Causes the timeline window to scroll when the playback cursor moves out
503 of view. This can bog down the X Server.
505 </p><li>USE SOFTWARE FOR POSITIONING INFORMATION
507 <p>Most soundcards and sound drivers don't give reliable information on
508 the number of samples the card has played. When playing video you need
509 this information for synchronization. This option causes the sound
510 driver to be ignored and a software timer to be used for
513 </p><li>AUDIO PLAYBACK IN REALTIME:
515 <p>Back in the days when
150Mhz was the maximum, this allowed
516 uninterrupted playback on heavy loads. Now you'll probably only need it
517 for playing video and audio when the load is to high for uninterrupted
522 <p>There are many sound drivers for Linux. This allows selecting one and
523 setting parameters specific to it. Some of the common parameters for a
530 <p>Usually a file in the
<em>/dev/
</em> directory which controls the
536 <p>The number of bits of precision Cinelerra should set the device for.
537 This sometimes has a figuritive meaning. Some sound drivers need to be
538 set to
32 bits to perform
24 bit playback and won't play anything when
539 set to
24 bits. Some sound drivers need to be set to
24 bits for
24
545 <p>The number of channels Cinelerra should set the device for. Regardless
546 of the number of channels in the project, the number of channels set
547 here will be written to the device. When this is set to
2 and the
548 project has
1 channel you'll hear sound through the left speaker and
549 not centered as expected for a monaural project. When this is set to
1
550 and the project has
2 channels you'll hear the left channel centered
551 and not
2 channels mixed together.
557 Node:
<a name=
"VIDEO%20OUT">VIDEO OUT
</a>,
558 Previous:
<a rel=previous accesskey=p
href=
"#AUDIO%20OUT">AUDIO OUT
</a>,
559 Up:
<a rel=up accesskey=u
href=
"#PLAYBACK">PLAYBACK
</a>
564 <p>These determine what happens when you play video from the timeline.
571 <p>The number of frames per second being
572 displayed during playback.
577 <p>The algorithm used in all video resizing in
578 the virtual console. This doesn't affect scaling to the size of the
583 <li>NEAREST NEIGHBOR ENLARGE AND REDUCE
585 <p>lowest but fastest
586 quality. Produces jagged edges and uneven motion.
589 BICUBIC ENLARGE AND BILINEAR REDUCE
591 <p>highest but slowest
592 quality. For enlarging a bicubic interpolation is used, which blurs
593 slightly but doesn't reveal stair steps. For reduction a bilinear
594 interpolation is used, which produces very sharp images and reduces
595 noise. The bilinear reduced images can be sharpened with a sharpen
596 effect with less noise than a normal sized image.
599 BILINEAR ENLARGE AND BILINEAR REDUCE
601 <p>when slight enlargement
602 is needed a bilinear enlargement looks better than a bicubic
608 PRELOAD BUFFER FOR QUICKTIME
610 <p>The Quicktime/AVI decoder can
611 handle CDROM sources better when this is around
1000000. This reduces
612 the amount of seeking. For normal use this should be
0.
617 <p>For assets which are compressed in OpenDivx and Quicktime, this enables
618 deblocking. This greatly improves the picture quality during decoding
619 while slowing it down.
624 <p>Normally video on the timeline goes to the
625 compositor window during continuous playback and when the insertion
626 point is repositioned. Instead of sending video to the Compositor
627 window the video driver can be set to send video to another output
628 device during continuous playback. This doesn't affect where video
629 goes when the insertion point is repositioned, however.
631 <p>Various parameters are given for Video Driver depending on the driver.
638 <p>The is intended for dual monitor
639 displays. Depending on the value of Display, the Compositor window
640 will appear on a different monitor from the rest of the windows.
645 <p>Usually a file in the
<em>/dev/
</em> directory
646 which controls the device.
651 <p>Make the even lines odd and the odd lines even
652 when sending to the device. On an NTSC or
1080i monitor the fields may
653 need to be swapped to prevent jittery motion.
658 <p>Devices with multiple outputs may need a
659 specific connector to send video on.
664 <p>The IEEE1394 standard specifies something known as the
665 <em>port
</em>. This is probably the firewire card number in the system
671 <p>The IEEE1394 standard specifies something known as the
672 <em>channel
</em>. For DV cameras it's always
<em>63</em>.
679 Node:
<a name=
"RECORDING">RECORDING
</a>,
680 Next:
<a rel=next accesskey=n
href=
"#PERFORMANCE">PERFORMANCE
</a>,
681 Previous:
<a rel=previous accesskey=p
href=
"#PLAYBACK">PLAYBACK
</a>,
682 Up:
<a rel=up accesskey=u
href=
"#CONFIGURATION">CONFIGURATION
</a>
688 <li><a accesskey=
1 href=
"#AUDIO%20IN">AUDIO IN
</a>:
689 <li><a accesskey=
2 href=
"#VIDEO%20IN">VIDEO IN
</a>:
693 Node:
<a name=
"AUDIO%20IN">AUDIO IN
</a>,
694 Next:
<a rel=next accesskey=n
href=
"#VIDEO%20IN">VIDEO IN
</a>,
695 Up:
<a rel=up accesskey=u
href=
"#RECORDING">RECORDING
</a>
700 <p>These determine what happens when you record audio.
706 <p>This is used for recording audio in the Record window. It may be
707 shared with the Record Driver for video if the audio and video are
708 wrapped in the same stream. It takes variable parameters depending on
709 the driver. The parameters have the same meaning as they do for
716 <p>Usually a file in the
<em>/dev/
</em> directory which controls the
722 <p>The number of bits of precision Cinelerra should set the device for.
723 This sometimes has a figuritive meaning. Some sound drivers need to be
724 set to
32 bits to perform
24 bit recording and won't record anything
725 when set to
24 bits. Some sound drivers need to be set to
24 bits for
730 <p>The number of channels Cinelerra should set the device for. Regardless
731 of the number of channels in the record operation, the number of
732 channels set here will be read from the device. When this is set to
2
733 and the record operation has
1 channel you'll record the left speaker
734 and not a mix of the left and right speakers as expected for a monaural
735 project. When this is set to
1 and the project has
2 channels you'll
736 record the left and right channels mixed into the left speaker and not
737 1 channel spead across two speakers.
742 SAMPLES TO WRITE AT A TIME
744 <p>Audio is first read in small fragments from the device. Many small
745 fragments are combined into a large fragment before writing to disk.
746 The disk writing process is done in a different thread. The value here
747 determines how large the combination of fragments is for each disk
751 SAMPLE RATE FOR RECORDING
753 <p>Regardless of what the project settings are. This is the sample rate
754 used for recording. This should be the highest the audio device
760 Node:
<a name=
"VIDEO%20IN">VIDEO IN
</a>,
761 Previous:
<a rel=previous accesskey=p
href=
"#AUDIO%20IN">AUDIO IN
</a>,
762 Up:
<a rel=up accesskey=u
href=
"#RECORDING">RECORDING
</a>
767 <p>These determine what happens when you record video.
773 <p>This is used for recording video in the Record window. It may be
774 shared with the Record Driver for audio if the audio and video are
775 wrapped in the same stream. It takes variable parameters depending on
776 the driver. The parameters have the same meaning as they do for
780 FRAMES TO RECORD TO DISK AT A TIME
782 <p>Frames are recorded in a pipeline. First frames are buffered in the
783 device. Then they're read into a larger buffer for writing to disk.
784 The disk writing is done in a different thread as the device reading.
785 For certain codecs the disk writing uses multiple processors. This
786 value determines how many frames are written to disk at a time.
789 FRAMES TO BUFFER IN DEVICE
791 <p>The number of frames to store in the device before reading. This
792 determines how much latency there can be in the system before frames
795 </p><li>USE SOFTWARE FOR POSITIONING INFORMATION
797 <p>Video uses audio for
799 <p>synchronization but most soundcards don't give accurate position
800 information. This calculates an estimation of audio position in
801 software instead of the hardware for synchronization.
804 SYNC DRIVES AUTOMATICALLY
806 <p>For high bitrate recording the drives may be fast enough to store the
807 data but Linux may wait several minutes and stall as it writes several
808 minutes of data at a time. This forces Linux to flush its buffers
809 every second instead of every few minutes and produce slightly better
813 SIZE OF CAPTURED FRAME
815 <p>This is the size of the frames recorded. It is independant of the
816 project frame size because most video devices only record a fixed frame
817 size. If the frame size given here isn't supported by the device it
818 might crash Cinelerra.
820 </p><li>FRAME RATE FOR RECORDING
822 <p>The frame rate recorded is different from the project settings. This
823 sets the recorded frame rate.
828 Node:
<a name=
"PERFORMANCE">PERFORMANCE
</a>,
829 Next:
<a rel=next accesskey=n
href=
"#INTERFACE">INTERFACE
</a>,
830 Previous:
<a rel=previous accesskey=p
href=
"#RECORDING">RECORDING
</a>,
831 Up:
<a rel=up accesskey=u
href=
"#CONFIGURATION">CONFIGURATION
</a>
836 <p>You'll spend most of your time configuring this section. The main
837 focus of performance is rendering parameters not available in the
844 <p>To speed up rendering, several assets are kept open simultaneously.
845 This determines how many are kept open. A number too large may exhaust
846 your memory pretty fast and result in a crash. A number too small may
847 result in slow playback as assets need to be reopened more frequently.
850 SECONDS TO PREROLL RENDERS
852 <p>Some effects need a certain amount of time to settle in. This sets a
853 number of seconds to render without writing to disk before the selected
854 region is rendered. When using the renderfarm you'll sometimes need to
855 preroll to get seemless transitions between the jobs. Every job in a
856 renderfarm is prerolled by this value. This does not affect background
857 rendering, however. Background rendering uses a different preroll
861 FORCE SINGLE PROCESSOR USE
863 <p>Cinelerra tries to use all processors on the system by default but
864 sometimes you'll only want to use one processor, like in a renderfarm
865 client. This forces only one processer to be used. The operating
866 system, however, usually uses the second processor anyway for disk
867 access so this option is really a
1.25 processor mode. The value of
868 this parameter is used in renderfarm clients.
873 <li><a accesskey=
1 href=
"#BACKGROUND%20RENDERING">BACKGROUND RENDERING
</a>:
874 <li><a accesskey=
2 href=
"#RENDERFARM">RENDERFARM
</a>:
878 Node:
<a name=
"BACKGROUND%20RENDERING">BACKGROUND RENDERING
</a>,
879 Next:
<a rel=next accesskey=n
href=
"#RENDERFARM">RENDERFARM
</a>,
880 Up:
<a rel=up accesskey=u
href=
"#PERFORMANCE">PERFORMANCE
</a>
883 <h4>BACKGROUND RENDERING
</h4>
885 <p>Background rendering was originally concieved to allow HDTV effects to
886 be displayed in realtime. Background rendering causes temporary output
887 to constantly be rendered while the timeline is being modified. The
888 temporary output is played during playack whenever possible. It's very
889 useful for transitions and previewing effects which are too slow to
890 display in a reasonable amount of time. If renderfarm is enabled, the
891 renderfarm is used for background rendering, giving you the potential
892 for realtime effects if enough network bandwidth and CPU nodes exist.
896 <li>FRAMES PER BACKGROUND RENDERING JOB
898 <p>This only works if renderfarm is being used, otherwise background
899 rendering creates a single job for the entire timeline. The number of
900 frames specified here is scaled to the relative CPU speed of rendering
901 nodes and used in a single renderfarm job. The optimum number is
10 -
902 30 since network bandwidth is used to initialize each job.
904 </p><li>FRAMES TO PREROLL BACKGROUND
906 <p>This is the number of frames to render ahead of each background
907 rendering job. Background rendering is degraded when preroll is used
908 since the jobs are small. When using background rendering, this number
909 is ideally
0. Some effects may require
3 frames of preroll.
911 </p><li>OUTPUT FOR BACKGROUND RENDERING
913 <p>Background rendering generates a sequence of image files in a certain
914 directory. This parameter determines the filename prefix of the image
915 files. It should be on a fast disk, accessible to every node in the
916 renderfarm by the same path. Since hundreds of thousands of image
917 files are usually created,
<em>ls
</em> commands won't work in the
918 background rendering directory. The
<img src=
"magnify.png" alt=
"magnify.png"> browse button for
919 this option normally won't work either, but the
<img src=
"wrench.png" alt=
"wrench.png">
920 configuration button for this option works.
924 <p>The file format for background rendering has to be a sequence of
925 images. The format of the image sequence determines the quality and
926 speed of playback. JPEG is good most of the time.
931 Node:
<a name=
"RENDERFARM">RENDERFARM
</a>,
932 Previous:
<a rel=previous accesskey=p
href=
"#BACKGROUND%20RENDERING">BACKGROUND RENDERING
</a>,
933 Up:
<a rel=up accesskey=u
href=
"#PERFORMANCE">PERFORMANCE
</a>
938 <p>To use the renderfarm set these options. Ignore them for a standalone
944 USE RENDER FARM FOR RENDERING
946 <p>When selected, all the
947 <em>file-
>render
</em> operations use the renderfarm.
952 <p>Displays all the nodes on the renderfarm and which ones are active.
954 <p>Nodes are added by entering the host name of the node, verifying the
955 value of
<em>port
</em> and hitting
<em>add node
</em>.
957 <p>Computer freaks may be better off editing the
958 <em>~/.bcast/.Cinelerra_rc
</em> file than this if they have hundreds of
959 nodes. Remember that .Cinelerra_rc is overwritten whenever a copy of
962 <p>Select the
<em>ON
</em> column to activate and deactivate nodes once they
965 <p>Nodes may be edited by highlighting a row and hitting
<em>replace
971 <p>Edit the hostname of an existing node or enter the hostname of a new
977 <p>Edit the port of an existing node or enter the port of a new node here.
982 <p>When editing an existing node, hit this to commit the changes to
983 <em>HOSTNAME
</em> and
<em>PORT
</em>. The changes won't be committed if you
984 don't hit this button.
989 <p>Create a new node with the
<em>HOSTNAME
</em> and
<em>PORT
</em> settings.
994 <p>Deletes whatever node is highlighted in the
<em>NODES
</em> list.
999 <p>Sorts the
<em>NODES
</em> list based on the hostname.
1004 <p>This sets the framerate for all the nodes to
0. Frame rates are used
1005 to scale job sizes based on CPU speed of the node. Frame rates are
1006 only calculated when renderfarm is enabled.
1009 USE VIRTUAL FILESYSTEM
1011 <p>Normally the directory on the master node containing the source and
1012 destination assets is mounted on the clients. The assets on the
1013 clients should be visible in the same locations as they are on the
1014 master node. This can be hard to set up and requires root access.
1016 <p>A user level version of NFS was built into Cinelerra and called the
1017 Virtual File System. This transparently redirects all file I/O over
1018 the network without requiring a replication of the master node's
1019 directory structure or root access on the client. The client sees the
1020 exact directory structure on the master node but in reality is sending
1021 network packets to access it.
1023 <p>There is a penalty for doing this though, since Virtual Filesystem
1024 isn't as refined as NFS. Operations that access one byte at a time are
1025 really slow. Unless you need to run rendering clients without root
1026 access or have a lot of assets in different directories, use NFS
1030 TOTAL JOBS TO CREATE
1032 <p>Determines the number of jobs to dispatch to the renderfarm. The more
1033 jobs you create, the more finely balanced the renderfarm becomes.
1035 <p>Determine the total jobs to create by multiplying the number of nodes
1036 including the master node by some number. Multiply them by
1 to have
1037 one job dispatched for every node. Multiply them by
3 to have
3 jobs
1038 dispatched for every node. If you have
10 slave nodes and one master
1039 node, specify
33 to have a well balanced renderfarm.
1044 Node:
<a name=
"INTERFACE">INTERFACE
</a>,
1045 Previous:
<a rel=previous accesskey=p
href=
"#PERFORMANCE">PERFORMANCE
</a>,
1046 Up:
<a rel=up accesskey=u
href=
"#CONFIGURATION">CONFIGURATION
</a>
1051 <p>These parameters affect purely how the user interface works.
1058 <p>Back in the days when
4 MB/sec was unearthly speed for a hard drive,
1059 index files were introduced to speed up drawing the audio tracks. This
1060 option determines where index files are placed on the hard drive.
1065 <p>Determines the size of an index file. Larger index sizes allow smaller
1066 files to be drawn faster while slowing down the drawing of large files.
1067 Smaller index sizes allow large files to be drawn faster while slowing
1071 NUMBER OF INDEX FILES TO KEEP
1073 <p>To keep the index directory from becoming unruly, old index files are
1074 deleted. This determines the maximum number of index files to keep in
1080 <p>When you change the index size or you want to clean out excessive index
1081 files, this deletes all the index files.
1083 </p><li>USE HOURS:MINUTES:SECONDS.XXX
1085 <p>Various representations of time are given. Select the most convenient
1086 one. The time representation can also be changed by
<em>CTRL
</em>
1087 clicking on the time ruler.
1089 </p><li>USE THUMBNAILS
1091 <p>The Resource Window displays thumbnails of assets by default. This can
1092 take a long time to set up. This option disables the thumbnails.
1094 </p><li>CLICKING IN/OUT POINTS DOES WHAT
1096 <p>Cinelerra not only allows you to perform editing by dragging in/out
1097 points but also defines three seperate operations which occur when you
1098 drag an in/out point. For each mouse button you select the behavior in
1099 this window. The usage of each editing mode is described in editing.
1101 </p><li>MIN DB FOR METER
1103 <p>Some sound sources have a lower noise threshold than others.
1104 Everything below the noise threshold is meaningless. This option sets
1105 the meters to clip below a certain level. Consumer soundcards usually
1106 bottom out at -
65. Professional soundcards bottom out at -
90.
1108 </p><li>FORMAT FOR METER
1110 <p>This option allows you to select the format for all the VU meters. If
1111 you're a CS major select percentage and if you're a EE major select DB.
1112 With that, be aware all levels in Cinelerra are input as DB.
1116 <p>Cinelerra supports variable themes. Select one here and restart
1117 Cinelerra to see it.
1122 Node:
<a name=
"THE%20MAIN%20WINDOWS">THE MAIN WINDOWS
</a>,
1123 Next:
<a rel=next accesskey=n
href=
"#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES
</a>,
1124 Previous:
<a rel=previous accesskey=p
href=
"#CONFIGURATION">CONFIGURATION
</a>,
1125 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
1128 <h2>THE MAIN WINDOWS
</h2>
1130 <p>When Cinelerra first starts, you'll get four main windows. Hitting
1131 <em>CTRL-w
</em> in any window closes it.
1137 <p>In here you'll scrub around source media and clips, selecting regions
1138 to paste into the project. Operations done in the viewer affect a
1139 temporary EDL or a clip but not the timeline.
1143 <p>This window displays the output of the timeline. It's the interface
1144 for most compositing operations or operations that affect the
1145 appearance of the timeline output. Operations done in the Compositor
1146 affect the timeline but don't affect clips.
1150 <p>This contains the timeline and the entry point for all menu driven
1151 operations. The timeline consists of a vertical stack of tracks with
1152 horizontal representation of time. This defines the output of
1153 rendering operations and what is saved when you save files.
1157 <p>Effects, transitions, clips, and assets are accessed here. Most of the
1158 resources are inserted into the project by dragging them out of the
1159 resource window. Management of resource allocation is also performed
1164 <p>Under the
<em>Window
</em> menu you'll find options affecting the main
1165 windows.
<em>default positions
</em> repositions all the windows to a
4
1166 screen editing configuration. On dual headed displays, the
1167 <em>default positions
</em> operation fills only one monitor with windows.
1169 <p>An additional window, the
<em>levels window
</em> can be brought up from
1170 the
<em>Window
</em> menu. The
<em>levels
</em> window displays the output
1171 audio levels after all mixing is done.
1174 Node:
<a name=
"LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES
</a>,
1175 Next:
<a rel=next accesskey=n
href=
"#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>,
1176 Previous:
<a rel=previous accesskey=p
href=
"#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS
</a>,
1177 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
1180 <h2>LOADING AND SAVING FILES
</h2>
1183 <li><a accesskey=
1 href=
"#LOADING%20FILES">LOADING FILES
</a>:
1184 <li><a accesskey=
2 href=
"#LOADING%20THE%20BACKUP">LOADING THE BACKUP
</a>:
1185 <li><a accesskey=
3 href=
"#SAVING%20FILES">SAVING FILES
</a>:
1186 <li><a accesskey=
4 href=
"#RENDERING%20FILES">RENDERING FILES
</a>:
1187 <li><a accesskey=
5 href=
"#THE%20RENDER%20FARM">THE RENDER FARM
</a>:
1191 Node:
<a name=
"LOADING%20FILES">LOADING FILES
</a>,
1192 Next:
<a rel=next accesskey=n
href=
"#LOADING%20THE%20BACKUP">LOADING THE BACKUP
</a>,
1193 Up:
<a rel=up accesskey=u
href=
"#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES
</a>
1196 <h3>LOADING FILES
</h3>
1198 <p>All data that you work with in Cinelerra is acquired either by
1199 <em>recording from a device
</em> or by
<em>loading from disk
</em>. This
1200 section describes loading.
1202 <p>The loading and playing of files is just as you would expect. Just go
1203 to
<em>file-
>Load
</em>, select a file for loading, and hit
<em>ok
</em>. Hit
1204 the forward play button and it should start playing, regardless of
1205 whether a progress bar has popped up.
1207 <p>Another way to load files is to pass the filenames as arguments on the
1208 command line. This creates new tracks for every file and starts the
1209 program with all the arguments loaded.
1211 <p>If the file is a still image, the project's attributes are not changed
1212 and the first frame of the track becomes the image. If the file has
1213 audio, Cinelerra may build an index file for it to speed up drawing.
1214 You can edit and play the file while the index file is being built.
1217 <li><a accesskey=
1 href=
"#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS
</a>:
1218 <li><a accesskey=
2 href=
"#INSERTION%20STRATEGY">INSERTION STRATEGY
</a>:
1219 <li><a accesskey=
3 href=
"#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES
</a>:
1223 Node:
<a name=
"SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS
</a>,
1224 Next:
<a rel=next accesskey=n
href=
"#INSERTION%20STRATEGY">INSERTION STRATEGY
</a>,
1225 Up:
<a rel=up accesskey=u
href=
"#LOADING%20FILES">LOADING FILES
</a>
1228 <h4>SUPPORTED FILE FORMATS
</h4>
1230 <p>The format of the file affects what Cinelerra does with it. Some
1231 formats replace all the project settings. Some just insert data with
1232 existing project settings. If your project sample rate is
48khz and
1233 you load a sound file with
96khz, you'll still be playing it at
1234 48khz. XML files, however, replace the project settings. If you load
1235 an XML file at
96khz and the current project sample rate is
48khz,
1236 you'll change it to
96khz. Supported file formats are currently:
1242 <li>Uncompresed Quicktime
1244 <p>Quicktime is not the standard for UNIX but we use it because it's well
1245 documented. All of the Quicktime movies on the internet are
1246 compressed. Cinelerra doesn't support compressed Quicktime movies.
1247 Most of the Quicktime footage dealt with in Cinelerra is generated by
1248 Cinelerra either recording from a device or rendering. The best
1249 Quicktime settings to use are JPEG video and twos audio.
1251 </p><li>JPEG, PNG, TIFF, TGA sequences
1253 <p>Cinelerra generates a special table of contents file when you render an
1254 image sequence. You can either select every image file to load or
1255 select the table of contents when the rendering is done. Selecting the
1256 table of contents is faster and doesn't fill up the resource window
1257 with thousands of images.
1259 </p><li>JPEG, PNG, TIFF, TGA still images
1261 <p>When loaded, the image takes up one frame in length and doesn't change
1262 the project attributes.
1264 </p><li>AVI with mp3 audio and MPEG-
4 video
1268 <p>You need to run
<em>mpeg3toc
</em> to generate a table of contents for
1269 these, then load the table of contents. Mpeg3toc needs the absolute
1270 path of the MPEG file. If you want to edit a DVD, find the
1271 corresponding
<em>ifo
</em> file for the program of interest and run
1273 <br><pre>mpeg3toc /cdrom/video_ts/vts_01_0.ifo dvd.toc
1276 <p>or something similar. Then load
<em>dvd.toc
</em>. This allows frame
1277 accurate editing where none would be possible otherwise.
1279 </p><li>MPEG program streams and transport streams
1281 <p>You need to run
<em>mpeg3toc
</em> on these just like MPEG
1,
2 video.
1282 Program and transport streams are structured into multiple tracks.
1283 Each track can be video or audio. Each audio track can have
1-
6
1284 channels. Cinelerra converts each channel of audio into a track, so
1285 for MPEG streams with multiple tracks, the tracks will be flattened.
1287 </p><li>MPEG audio layer II, III
1289 <p>These can be loaded directly with no table of contents. Variable
1290 bitrate streams may need a table of contents but are playable without
1297 <p>These are generated by Cinelerra for storing edit lists. They change
1298 project attributes when loaded.
1303 Node:
<a name=
"INSERTION%20STRATEGY">INSERTION STRATEGY
</a>,
1304 Next:
<a rel=next accesskey=n
href=
"#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES
</a>,
1305 Previous:
<a rel=previous accesskey=p
href=
"#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS
</a>,
1306 Up:
<a rel=up accesskey=u
href=
"#LOADING%20FILES">LOADING FILES
</a>
1309 <h4>INSERTION STRATEGY
</h4>
1311 <p>Usually three things happen when you load a file. First the existing
1312 project is cleared from the screen, second the project's attributes are
1313 changed to match the file's, and finally the new file's tracks are
1314 created in the timeline.
1316 <p>But Cinelerra lets you change what happens when you load a file.
1318 <p>In the file selection box go to the
<em>Insertion strategy
</em> box and
1319 select it. Each of these options loads the file a different way.
1323 <li>Replace current project
1325 <p>All tracks in the current project are deleted and new tracks are
1326 created to match the source. Project attributes are only changed when
1327 loading XML. If multiple files are selected it adds new tracks for
1330 </p><li>Replace current project and concatenate tracks
1332 <p>Same as replace current project except if multiple files are selected
1333 it concatenates the tracks of every file after the first.
1335 </p><li>Append in new tracks
1337 <p>The current project is not deleted and new tracks are created for the
1340 </p><li>Concatenate to existing tracks
1342 <p>The current project is not deleted and new files are concatenated to
1343 the existing tracks.
1345 </p><li>Paste at insertion point
1347 <p>The file is pasted in like a normal paste operation.
1349 </p><li>Create new resources only
1351 <p>The timeline is unchanged and new resources are created in the Resource
1356 <p>The insertion strategy is a recurring option in many of Cinelerra's
1357 functions. In each place the options do the same thing. With these
1358 options you can almost do all your editing by loading files.
1360 <p>If you load files by passing command line arguments to Cinelerra, the
1361 files are loaded with
<em>Replace current project
</em> rules.
1364 Node:
<a name=
"LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES
</a>,
1365 Previous:
<a rel=previous accesskey=p
href=
"#INSERTION%20STRATEGY">INSERTION STRATEGY
</a>,
1366 Up:
<a rel=up accesskey=u
href=
"#LOADING%20FILES">LOADING FILES
</a>
1369 <h4>LOADING MULTIPLE FILES
</h4>
1371 <p>In the file selection box go to the list of files. Select a file. Go
1372 to another file and select it while holding down
<em>CTRL
</em>. This
1373 selects one additional file. Go to another file and select it while
1374 holding down
<em>SHIFT
</em>. This selects every intervening file. This
1375 behavior is available in most every list box.
1377 <p>Select a bunch of mp3 files and
<em>Replace current project and
1378 concatenate tracks
</em> in the insertion strategy to create a song
1382 Node:
<a name=
"LOADING%20THE%20BACKUP">LOADING THE BACKUP
</a>,
1383 Next:
<a rel=next accesskey=n
href=
"#SAVING%20FILES">SAVING FILES
</a>,
1384 Previous:
<a rel=previous accesskey=p
href=
"#LOADING%20FILES">LOADING FILES
</a>,
1385 Up:
<a rel=up accesskey=u
href=
"#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES
</a>
1388 <h3>LOADING THE BACKUP
</h3>
1390 <p>There is one special XML file on disk at all times. After every
1391 editing operation Cinelerra saves the current project to a backup in
1392 <em>$HOME/.bcast/backup.xml
</em>. In the event of a crash go to
1393 <em>file-
>load backup
</em> to load the backup. It is important after a
1394 crash to reboot Cinelerra without performing any editing operations.
1395 Loading the backup should be the first operation or you'll overwrite
1399 Node:
<a name=
"SAVING%20FILES">SAVING FILES
</a>,
1400 Next:
<a rel=next accesskey=n
href=
"#RENDERING%20FILES">RENDERING FILES
</a>,
1401 Previous:
<a rel=previous accesskey=p
href=
"#LOADING%20THE%20BACKUP">LOADING THE BACKUP
</a>,
1402 Up:
<a rel=up accesskey=u
href=
"#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES
</a>
1405 <h3>SAVING FILES
</h3>
1407 <p>When Cinelerra saves a file it saves an edit decision list of the
1408 current project but doesn't save any media. Go to
<em>File-
>save
1409 as...
</em>. Select a file to overwrite or enter a new file. Cinelerra
1410 automatically concatenates
<em>.xml
</em> to the filename if no
1411 <em>.xml
</em> extension is given.
1413 <p>The saved file contains all the project settings and locations of every
1414 edit but instead of media it contains pointers to the original media
1417 <p>For each media file the XML file stores either an absolute path or just
1418 the relative path. If the media is in the same directory as the XML
1419 file a relative path is saved. If it's in a different directory an
1420 absolute path is saved.
1422 <p>In order to move XML files around without breaking the media linkages
1423 you either need to keep the media in the same directory as XML file
1424 forever or save the XML file in a different directory than the media
1425 and not move the media ever again.
1427 <p>If you want to create an audio playlist and burn it on CD-ROM, save the
1428 XML file in the same directory as the audio files and burn the entire
1429 directory. This keeps the media paths relative.
1431 <p>XML files are useful for saving the current state before going to sleep
1432 and saving audio playlists but they're limited in that they're specific
1433 to Cinelerra. You can't play XML files in a dedicated movie player.
1434 Realtime effects in an XML file have to be resynthesized every time you
1435 play it back. The XML file also requires you to maintain copies of all
1436 the source assets on hard drives, which can take up space and cost a
1437 lot of electricity to spin. For a more persistent storage of the
1438 output there's rendering.
1441 Node:
<a name=
"RENDERING%20FILES">RENDERING FILES
</a>,
1442 Next:
<a rel=next accesskey=n
href=
"#THE%20RENDER%20FARM">THE RENDER FARM
</a>,
1443 Previous:
<a rel=previous accesskey=p
href=
"#SAVING%20FILES">SAVING FILES
</a>,
1444 Up:
<a rel=up accesskey=u
href=
"#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES
</a>
1447 <h3>RENDERING FILES
</h3>
1449 <p>Rendering takes a section of the timeline, performs all the editing,
1450 effects and compositing, and stores it in a pure movie file. You can
1451 then delete all the source assets, play the rendered file in a movie
1452 player, or bring it back into Cinelerra for more editing. It's very
1453 difficult to retouch any editing decisions in the pure movie file,
1454 however, so keep the original assets and XML file around several days
1455 after you render it.
1457 <p>To begin a render operation you need to define a region of the timeline
1458 to render. The navigation section describes methods of defining
1459 regions. See
<a href=
"#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>. When a region is highlighted
1460 or in/out points are set, the affected region is rendered. When no
1461 region is highlighted, everything after the insertion point is
1464 <p>Go to
<em>File-
>render
</em> to bring up the render dialog. Select the
1465 magnifying glass to bring up a file selection dialog. This determines
1466 the filename to write the rendered file to.
1468 <p>In the render dialog select a format from the
<em>File Format
</em> menu.
1469 The format of the file determines whether you can render audio or video
1470 or both. Select
<em>Render audio tracks
</em> to generate audio tracks
1471 and
<em>Render video tracks
</em> to generate video tracks. Select the
1472 wrench next to each toggle to set compression parameters. If the file
1473 format can't store audio or video the compression parameters will be
1474 blank. If
<em>Render audio tracks
</em> or
<em>Render video tracks
</em> is
1475 selected and the file format doesn't support it, trying to render will
1478 <p>The
<em>Create new file at each label
</em> option causes a new file to be
1479 created when every label in the timeline is encountered. This is
1480 useful for dividing long audio recordings into individual tracks. When
1481 using the renderfarm,
<em>Create new file at each label
</em> causes one
1482 renderfarm job to be created at every label instead of using the
1483 internal load balancing algorithm to space jobs.
1485 <p>When
<em>Create new file at each label
</em> is selected, a new filename
1486 is created for every output file. If the filename given in the render
1487 dialog has a
2 digit number in it, the
2 digit number is overwritten
1488 with a different incremental number for every output file. If no
2
1489 digit number is given, Cinelerra automatically concatenates a number to
1490 the end of the given filename for every output file.
1492 <p>In the filename
<em>/hmov/track01.wav
</em> the
<em>01</em> would be
1493 overwritten for every output file. The filename
1494 <em>/hmov/track.wav
</em>; however, would become
<em>/hmov/track.wav001
</em>
1495 and so on and so forth. Filename regeneration is only used when either
1496 renderfarm mode is active or creating new files for every label is
1499 <p>Finally the render dialog lets you select an insertion mode. The
1500 insertion modes are the same as with loading files. In this case if
1501 you select
<em>insert nothing
</em> the file will be written out to disk
1502 without changing the current project. For other insertion strategies
1503 be sure to prepare the timeline to have the output inserted at the
1504 right position before the rendering operation is finished.
1505 See
<a href=
"#EDITING">EDITING
</a>. Editing describes how to cause output to be inserted
1506 at the right position.
1508 <p>It should be noted that even if you only have audio or only have video
1509 rendered, a
<em>paste
</em> insertion strategy will behave like a normal
1510 paste operation, erasing any selected region of the timeline and
1511 pasting just the data that was rendered. If you render only audio and
1512 have some video tracks armed, the video tracks will get truncated while
1513 the audio output is pasted into the audio tracks.
1516 Node:
<a name=
"THE%20RENDER%20FARM">THE RENDER FARM
</a>,
1517 Previous:
<a rel=previous accesskey=p
href=
"#RENDERING%20FILES">RENDERING FILES
</a>,
1518 Up:
<a rel=up accesskey=u
href=
"#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES
</a>
1521 <h3>THE RENDER FARM
</h3>
1523 <p>When bicubic interpolation and HDTV was first done on Cinelerra, the
1524 time needed to produce the simplest output became unbearable even on
1525 the fastest dual
1.7Ghz Xeon of the time. Renderfarm support even in
1526 the simplest form brings HDTV times back in line with SD while making
1527 SD faster than realtime.
1529 <p>While the renderfarm interface isn't spectacular, it's simple enough to
1530 use inside an editing suite with less than a dozen nodes without going
1531 through the same amount of hassle you would with a several hundred node
1532 farm. Renderfarm is invoked transparently for all file-
>render
1533 operations when it is enabled in the preferences.
1535 <p>It should be noted that
<em>Create new file at each label
</em> causes a
1536 new renderfarm job to be created at each label instead of the default
1537 load balancing. If this option is selected when no labels exist, only
1538 one job will be created.
1540 <p>A Cinelerra renderfarm is organized into a master node and any number
1541 of slave nodes. The master node is the computer which is running the
1542 GUI. The slave nodes are anywhere else on the network and are run from
1545 <p>Cinelerra divides the selected region of the timeline into a certain
1546 number of jobs which are then dispatched to the different nodes
1547 depending on the load balance. The nodes process the jobs and write
1548 their output to individual files on the filesystem. The output files
1549 are not concatenated. It's important for all the nodes and the master
1550 node to use the same filesystem for assets, mounted over the network.
1552 <p>Since most of the time you'll want to bring in the rendered output and
1553 fine tune it on the timeline, the jobs are left in individual files.
1554 You can load these using
<em>concatenate mode
</em> and render them again
1555 with renderfarm disabled. If the track and output dimensions equal the
1556 asset dimensions, Cinelerra will do a direct copy of all the jobs into
1557 a single file. Note that direct copying doesn't work for MPEG Video.
1558 MPEG has the distinction that you can concatenate the subfiles with the
1561 <p>Configuration of the renderfarm is described in the configuration
1562 chapter See
<a href=
"#RENDERFARM">RENDERFARM
</a>. The slave nodes traditionally read and
1563 write data to a common filesystem over a network, thus they don't need
1566 <p>Ideally all the nodes on the renderfarm have similar CPU performance.
1567 Cinelerra load balances on a first come first serve basis. If the last
1568 segment is dispatched to the slowest node, all the fastest nodes may
1569 end up waiting for the slowest node to finish while they themselves
1570 could have rendered it faster.
1573 Node:
<a name=
"NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>,
1574 Next:
<a rel=next accesskey=n
href=
"#EDITING">EDITING
</a>,
1575 Previous:
<a rel=previous accesskey=p
href=
"#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES
</a>,
1576 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
1579 <h2>NAVIGATING THE PROJECT
</h2>
1581 <p>The thing you want to do most of the time is get to a certain time and
1582 place in the media. Internally the media is organized into tracks.
1583 Each track extends across time. Navigation involves both getting to a
1584 track and getting to a certain time in the track.
1587 <li><a accesskey=
1 href=
"#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>:
1588 <li><a accesskey=
2 href=
"#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR
</a>:
1589 <li><a accesskey=
3 href=
"#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES
</a>:
1590 <li><a accesskey=
4 href=
"#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS
</a>:
1591 <li><a accesskey=
5 href=
"#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING
</a>:
1595 Node:
<a name=
"NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>,
1596 Next:
<a rel=next accesskey=n
href=
"#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR
</a>,
1597 Up:
<a rel=up accesskey=u
href=
"#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>
1600 <h3>NAVIGATING THE PROGRAM WINDOW
</h3>
1602 <p>The program window contains many features for navigation and displays
1603 the timeline as it is structured in memory: tracks stacked vertically
1604 and extending across time. The horizontal scroll bar allows you to
1605 scan across time. The vertical scroll bar allows you to scan across
1608 <p>Below the timeline you'll find the zoom panel. The zoom panel contains
1609 values for
<em>sample zoom
</em>,
<em>amplitude
</em>, and
<em>track
1610 zoom
</em>. These values in addition to the scrollbars are all that's
1611 needed to position the timeline.
1614 <img src=
"zoompanel.png" alt=
"zoompanel.png">
1616 <p>Changing the
<em>sample zoom
</em> causes the amount of time visible to
1617 change.
<em>If your mouse has a wheel and it works in X11 go over
1618 the tumblers and use the wheel to zoom in and out.
</em>
1620 <p>The
<em>amplitude
</em> only affects audio. It determines how big the
1621 waveform is if the waveform is drawn.
1623 <p>The
<em>track zoom
</em> affects all tracks. It determines the height of
1624 each track. If you change the track zoom the amplitude zoom
1625 compensates so audio waveforms look proportional.
1627 <p>In addition to the graphical tools, you'll probably more often use the
1628 keyboard to navigate. Use
<em>PAGE UP
</em> and
<em>PAGE DOWN
</em> to
1629 scroll up and down the tracks.
1631 <p>Use the
<em>LEFT
</em> and
<em>RIGHT
</em> arrows to move across time.
1632 You'll often need to scroll beyond the end of the timeline but
1633 scrollbars won't let you do it. Instead use the
<em>RIGHT
</em> arrow to
1634 scroll past the end of timeline.
1636 <p>Use the
<em>UP
</em> and
<em>DOWN
</em> arrows to change the sample zoom by a
1639 <p><em>CTRL-UP
</em> and
<em>CTRL-DOWN
</em> cause the amplitude zoom to change.
1641 <p><em>CTRL-PGUP
</em> and
<em>CTRL-PGDOWN
</em> cause the track zoom to change.
1644 <li><a accesskey=
1 href=
"#THE%20INSERTION%20POINT">THE INSERTION POINT
</a>:
1645 <li><a accesskey=
2 href=
"#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS
</a>:
1646 <li><a accesskey=
3 href=
"#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW
</a>:
1650 Node:
<a name=
"THE%20INSERTION%20POINT">THE INSERTION POINT
</a>,
1651 Next:
<a rel=next accesskey=n
href=
"#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS
</a>,
1652 Up:
<a rel=up accesskey=u
href=
"#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>
1655 <h4>THE INSERTION POINT
</h4>
1657 <p>By default you'll see a flashing insertion point in the program window
1658 the first time you boot it up. This is where new media is pasted onto
1659 the timeline. It's also the starting point of all playback
1660 operations. When rendering it defines the region of the timeline to be
1663 <p>The insertion point is normally moved by clicking inside the timebar.
1664 Any region of the timebar not obscured by labels and in/out points is a
1665 hotspot for repositioning the insertion point.
1668 <img src=
"main_timebar.png" alt=
"main_timebar.png">
1669 <em>The main timebar
</em>
1671 <p>The insertion point also can be moved by clicking in the timeline
1672 itself, but not always. The insertion point has two modes of
1676 <li>drag and drop mode
1678 <li>cut and paste mode
1682 <p>The mode of operation is determined by selecting the arrow or the
1683 i-beam in the buttonbar.
1686 <img src=
"editing_mode.png" alt=
"editing_mode.png">
1687 <em>The editing mode buttons
</em>
1689 <p>If the arrow is highlighted it enables
<em>drag and drop
</em> mode. In
1690 drag and drop mode, clicking in the timeline doesn't reposition the
1691 insertion point. Instead it selects an entire edit. Dragging in the
1692 timeline repositions the edit, snapping it to other edit boundaries.
1693 This is normally useful for reordering audio playlists and moving
1696 <p>If the i-beam is highlighted it enables
<em>cut and paste mode
</em>. In
1697 cut and paste mode clicking in the timeline repositions the insertion
1698 point. Dragging in the timeline highlights a region. The highlighted
1699 region becomes the playback range during the next playback operation,
1700 the rendered range during the next render operation, and the region
1701 affected by cut and paste operations.
1703 <p><em>Shift-clicking
</em> in the timeline extends the highlighted region.
1705 <p><em>Double-clicking
</em> in the timeline selects the entire edit the
1708 <p>It should be noted that when moving the insertion point and selecting
1709 regions, the positions are either aligned to frames or aligned to
1710 samples. When editing video you'll want to align to frames. When
1711 editing audio you'll want to align to samples. This is set in
1712 <em>settings-
>align cursor on frames
</em>.
1714 <p>If the highlighted region is the region affected by cut and paste
1715 operations, how do I cut and paste in
<em>drag and drop
</em> mode? In
1716 this case you need to set
<em>in/out points
</em> to define an affected region.
1719 Node:
<a name=
"THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS
</a>,
1720 Next:
<a rel=next accesskey=n
href=
"#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW
</a>,
1721 Previous:
<a rel=previous accesskey=p
href=
"#THE%20INSERTION%20POINT">THE INSERTION POINT
</a>,
1722 Up:
<a rel=up accesskey=u
href=
"#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>
1725 <h4>THE IN/OUT POINTS
</h4>
1727 <p>In both editing modes you can set in/out points. The in/out points
1728 define the affected region. In drag and drop mode they are the only
1729 way to define an affected region. In both cut and paste mode and drag
1730 and drop mode they override the highlighted area. If a highlighted
1731 area and in/out points are set, the highlighted area affects playback
1732 while the in/out points affect editing operations. To avoid confusion
1733 it's best to use either highlighting or in/out points but not both
1736 <p>To set in/out points go to the timebar and position the insertion point
1737 somewhere. Hit the
<img src=
"in_point_button.png" alt=
"in_point_button.png"> <em>in point button
</em>. Go
1738 to a position after the in point and hit the
<img src=
"out_point_button.png" alt=
"out_point_button.png">
1739 <em>out point button
</em>.
1742 <img src=
"inout_points.png" alt=
"inout_points.png"> <em>Timebar with in/out points set
</em>.
1744 <p>Select either the in point or the out point and the insertion point
1745 jumps to that location. After selecting an in point, if you hit the
1746 <em>in point button
</em> the in point will be deleted. After selecting
1747 an out point, if you hit the
<em>out point button
</em> the out point will
1750 <p>If you select a region somewhere else while in/out points already
1751 exist, the existing points will be repositioned when you hit the in/out
1754 <p><em>Shift-clicking
</em> on an in/out point extends the highlighted region
1757 <p>Instead of using the button bar you can use the
<em>[
</em> and
<em>]
</em>
1758 keys to toggle in/out points.
1760 <p>The insertion point and the in/out points allow you to define an
1761 affected region but they don't let you jump to exact points on the
1762 timeline very easily. For this purpose there are labels.
1765 Node:
<a name=
"USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW
</a>,
1766 Previous:
<a rel=previous accesskey=p
href=
"#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS
</a>,
1767 Up:
<a rel=up accesskey=u
href=
"#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>
1770 <h4>USING LABELS IN THE PROGRAM WINDOW
</h4>
1772 <p>Labels are an easy way to set exact locations on the timeline you want
1773 to jump to. When you position the insertion point somewhere and hit
1774 the
<img src=
"label_button.png" alt=
"label_button.png"> <em>label button
</em> a new label appears on the
1778 <img src=
"timebar_label.png" alt=
"timebar_label.png"> <em>Timebar with a label on it
</em>
1780 <p>No matter what the zoom settings are, clicking on the label positions
1781 the insertion point exactly where you set it. Hitting the label button
1782 again when a label is selected deletes it.
1784 <p><em>Shift-clicking
</em> on a label extends the highlighted region.
1786 <p><em>Double-clicking
</em> between two labels highlights the region between
1789 <p>Hitting the
<em>l
</em> key has the same effect as the label button.
1791 <p>If you hit the label button when a region is highlighted, two labels
1792 are toggled at each end of the highlighted region. If one end already
1793 has a label, then the existing label is deleted and a label is created
1794 at the opposite end.
1796 <p>Labels can reposition the insertion point when they are selected but
1797 they can also be traversed with the
<img src=
"label_traversal.png" alt=
"label_traversal.png"> <em>label
1798 traversal
</em> buttons. When a label is out of view, the label traversal
1799 buttons reposition the timeline so the label is visible. There are
1800 keyboard shortcuts for label traversal, too.
1802 <p><em>CTRL-LEFT
</em> repositions the insertion point on the previous label.
1804 <p><em>CTRL-RIGHT
</em> repositions the insertion point on the next label.
1806 <p>With label traversal you can quickly seek back and forth on the
1807 timeline but you can also select regions.
1809 <p><em>SHIFT-CTRL-LEFT
</em> extends the highlighted region to the previous
1812 <p><em>SHIFT-CTRL-RIGHT
</em> extends the highlighted region to the next label.
1814 <p>Manually hitting the label button or
<em>l
</em> key over and over again
1815 to delete a series of labels can get tedious. For deleting a set of
1816 labels, first highlight a region and second use the
<em>Edit-
>Clear
1817 labels
</em> function. If in/out points exist, the labels between the
1818 in/out points are cleared and the highlighted region ignored.
1821 Node:
<a name=
"NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR
</a>,
1822 Next:
<a rel=next accesskey=n
href=
"#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES
</a>,
1823 Previous:
<a rel=previous accesskey=p
href=
"#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>,
1824 Up:
<a rel=up accesskey=u
href=
"#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>
1827 <h3>NAVIGATING THE VIEWER AND COMPOSITOR
</h3>
1829 <p>The navigation features of the Viewer and Compositor behave very
1830 similarly. Each has a timebar and slider below the video output. The
1831 timebar and slider are critical for navigation.
1834 <img src=
"timebarslider.png" alt=
"timebarslider.png">
1836 <p>The timebar represents the entire time covered by the program. When
1837 you define labels and in/out points it defines those, too. Finally the
1838 timebar defines a region known as the
<em>preview region
</em>.
1840 <p>The
<em>preview region
</em> is the region of the timeline which the
1841 slider effects. The slider only covers the time covered by the preview
1842 region. By using a preview region inside the entire program and using
1843 the slider inside the preview region you can quickly and precisely seek
1844 in the compositor and viewer.
1846 <p>When you replace the current project with a file the preview region
1847 automatically resizes to cover the entire file. When you append data
1848 or change the size of the current project, the preview region stays the
1849 same size and shrinks. Therefore, you need to resize the preview
1852 <p>Load a file and then slide around it using the compositor slider. The
1853 insertion point in the main window follows the compositor. Move the
1854 pointer over the compositor's timebar until it turns into a left resize
1855 pointer. The click and drag right. The preview region should have
1856 changed and the slider resized proportionally.
1858 <p>Go to the right of the timebar until a right resize pointer appears.
1859 Drag left so the preview region shrinks.
1861 <p>Go to the center of the preview region in the timebar and drag it
1862 around to convince yourself if can be moved.
1865 <img src=
"previewregion.png" alt=
"previewregion.png">
1867 <p><em>Preview region in compositor
</em>
1869 <p>If you go to the slider and slide it around with the preview region
1870 shrunk, you'll see the slider only affects the preview region. The
1871 timebar and slider in the viewer window work exactly the same.
1873 <p>Labels and in/out points are fully supported in the viewer and
1874 compositor. The only difference between the viewer and compositor is
1875 the compositor reflects the state of the program while the viewer
1876 reflects the state of a clip but not the program.
1878 <p>When you hit the
<em>label button
</em> in the compositor, the label
1879 appears both in the compositor timebar and the program timebar.
1881 <p>When you select a label or in/out point in the compositor, the program
1882 window jumps to that position.
1885 <img src=
"viewer_labels.png" alt=
"viewer_labels.png"> <em>Labels and in/out points in the viewer
</em>.
1887 <p>In the viewer and compositor, labels and in/out points are displayed in
1888 the timebar. Instead of displaying just a region of the program, the
1889 timebar displays the entire program here.
1891 <p>Like the Program window, the Compositor has a zoom capability. First,
1892 the pulldown menu on the bottom of the compositor window has a number
1893 of zoom options. When set to
<em>Auto
</em> the video is zoomed to match
1894 the compositor window size as closely as possible. When set to any
1895 other percentage, the video is zoomed a power of
2 and scrollbars can
1896 be used to scroll around the output. When the video is zoomed bigger
1897 than the window size, not only do scrollbars scan around it but
1898 <em>middle mouse button
</em> dragging in the video output scans around
1899 it. This is exactly when The Gimp does.
1901 <p>Furthermore, the zoom
<img src=
"magnify.png" alt=
"magnify.png"> toggle causes the Compositor
1902 window to enter zoom mode. In zoom mode, clicking in the video output
1903 zooms in while
<em>ctrl-clicking
</em> in the video output zooms out. If
1904 you have a wheel mouse, rotating the wheel zooms in or out too.
1906 <p>Zooming in or out with the zoom tool does not change the rendered
1907 output, mind you. It's merely for scrutinizing video or fitting it in
1911 Node:
<a name=
"NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES
</a>,
1912 Next:
<a rel=next accesskey=n
href=
"#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS
</a>,
1913 Previous:
<a rel=previous accesskey=p
href=
"#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR
</a>,
1914 Up:
<a rel=up accesskey=u
href=
"#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>
1917 <h3>NAVIGATING THE RESOURCES
</h3>
1919 <p>The resource window is divided into two areas. One area lists folders
1920 and another area lists folder contents. Going into the folder list and
1921 clicking on a folder updates the contents area with the contents of
1924 <p>The folder and contents can be displayed as icons or text.
1926 <p><em>Right clicking
</em> in the folder or contents area brings up a menu
1927 containing formatting options. Select
<em>Display text
</em> to display a
1928 text listing. Select
<em>Sort items
</em> to sort the contents of the
1929 folder alphabetically.
1932 Node:
<a name=
"USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS
</a>,
1933 Next:
<a rel=next accesskey=n
href=
"#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING
</a>,
1934 Previous:
<a rel=previous accesskey=p
href=
"#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES
</a>,
1935 Up:
<a rel=up accesskey=u
href=
"#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>
1938 <h3>USING THE TRANSPORT CONTROLS
</h3>
1940 <p>Transport controls are just as useful in navigation as they are in
1941 playing back footage, hence they are described here. Each of the
1942 Viewer, Compositor, and Program windows has a transport panel.
1945 <img src=
"transport_panel.png" alt=
"transport_panel.png"> <em>The transport panel
</em>.
1947 <p>The transport panel is controlled by the keyboard as well as the
1948 graphical interface. For each of the operations it performs, the
1949 starting position is the position of the insertion point or slider.
1950 The ending position is either the end or start of the timeline or the
1951 end or start of the selected region if there is one.
1953 <p>The orientation of the end or start depends on the direction of
1954 playback. If it's forward the end position is the end of the selected
1955 region. If it's backward the end position is the start of the selected
1958 <p>The insertion point moves to track playback. When playback stops it
1959 leaves the insertion point where it stopped. Thus, by playing back you
1960 change the position of the insertion point.
1962 <p>The keyboard interface is usually the fastest and has more speeds. The
1963 transport keys are arranged in a
<em>T
</em> on the number pad.
1967 <li><em>+
</em> Fast reverse
1968 <li><em>6</em> Normal reverse
1969 <li><em>5</em> Slow reverse
1970 <li><em>4</em> Frame reverse
1971 <li><em>1</em> Frame forward
1972 <li><em>2</em> Slow forward
1973 <li><em>3</em> Normal forward
1974 <li><em>Enter
</em> Fast forward
1976 <li><em>Spacebar
</em> Normal forward
1979 <p>Hitting any key on the keyboard twice pauses it.
1981 <p>When using frame advance functions the behavior may seem odd. If you
1982 frame advance forward and then frame advance backward, the displayed
1983 frame doesn't change. This is because the playback position isn't the
1984 frame but the time between two frames. The rendered frame is the area
1985 that the playback position crosses. When you increment the time
1986 between two frames by one and decrement it by one, you cross the same
1987 frame both times and so the same frame is displayed.
1990 Node:
<a name=
"USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING
</a>,
1991 Previous:
<a rel=previous accesskey=p
href=
"#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS
</a>,
1992 Up:
<a rel=up accesskey=u
href=
"#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>
1995 <h3>USING BACKGROUND RENDERING
</h3>
1997 <p>Background rendering allows impossibly slow effects to play back in
1998 realtime shortly after the effect is pasted in the timeline. It
1999 continuously renders temporary output. When renderfarm is enabled,
2000 background rendering uses the renderfarm continuously. This way, any
2001 size video can be seen in realtime merely by creating a fast enough
2002 network with enough nodes.
2004 <p>Background rendering is enabled in settings-
>preferences-
>performance.
2005 It has one interactive function:
<em>settings-
>set background render
</em>. This
2006 sets the point where background rendering begins to where the in point
2007 is. If any video exists, a red bar appears in the time bar showing
2008 what has been background rendered.
2010 <p>It's often useful to insert an effect or a transition and then select
2011 settings-
>set background render right before the effect to preview it
2015 Node:
<a name=
"EDITING">EDITING
</a>,
2016 Next:
<a rel=next accesskey=n
href=
"#USING%20EFFECTS">USING EFFECTS
</a>,
2017 Previous:
<a rel=previous accesskey=p
href=
"#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT
</a>,
2018 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
2023 <p>Editing comprises both the time domain and the track domain. Since the
2024 timeline consists of a stack of tracks, you need to worry about how to
2025 sort and create tracks in addition to what time certain media appears
2028 <p>In the time domain, Cinelerra offers many ways to approach the editing
2029 process. The three main methods are two screen editing, drag and drop
2030 editing, and cut and paste editing.
2032 <p>There are several concepts Cinelerra uses when editing which apply to
2033 all the methods. The timeline is where all editing decisions are
2034 represented. Every track on the timeline has a set of attributes on
2035 the left, the most important of which is the
<em>arm track
</em>
2039 <img src=
"track_attributes.png" alt=
"track_attributes.png">
2040 <em>Track attributes
</em>
2042 <p>Only the
<em>armed tracks
</em> are affected by editing operations. Make
2043 sure you have enough armed destination tracks when you paste or splice
2044 material or some tracks in the material will get left out.
2046 <p>The other attributes affect the output of the track.
2051 <b>Play track
</b> determines whether the track is rendered or not. If
2052 it's off, the track is not rendered. However, if the track is chained
2053 to any other tracks, the other tracks perform all the effects in the
2054 chained track, regardless of play status.
2057 <b>Gang fader
</b> causes the fader to track the movement of whatever other
2058 fader you're adjusting. A fader is only ganged if the
<b>arm track
</b> is
2059 also on. This is normally used to adjust audio levels on all the
2060 tracks simultaneously.
2063 <b>Draw data
</b> determines if picons or waveforms are drawn on the
2064 track. By default, some file formats load with this off while other
2065 file formats load with it on. This depends on whether the file format
2066 takes a long time to draw on the timeline. Merely set it to on if you
2067 want to see picons for any file format.
2070 <b>Mute track
</b> causes the output to be thrown away once the track is
2071 completely rendered. This happens whether or not
<b>play track
</b> is
2072 on. If the track is part of an effect chain, the output of the effect
2073 chain track is overlayed on the final output even though it's routed
2074 back to another track. Mute track is used to keep the effect chain
2075 track from overlapping the output of the source track.
2079 <p>There are two ways to set the same attribute on multiple tracks very
2080 quickly. Hold down
<b>shift
</b> while clicking a track's attribute to
2081 match the same attribute in all the other tracks. If you don't want to
2082 affect all the other tracks, click on an attribute and drag across
2083 other tracks to have the same attribute set in them.
2085 <p>In addition to restricting editing operations, the armed tracks in
2086 combination with the active region determine where material is inserted
2087 when loading files. If the files are loaded with one of the insertion
2088 strategies which doesn't delete the existing project, the armed tracks
2089 will be used as destination tracks.
2091 <p>The active region is the range of time in the edit decision on the
2092 timeline. The active region is determined first by the presence of
2093 in/out points in the timeline. If those don't exist the highlighted
2094 region is used. If no highlighted region exists the insertion point is
2095 used as the active region and the active length is
0.
2097 <p>Finally, editing decisions never affect source material. Editing only affects
2098 pointers to source material, so if you want to have a media file at the
2099 end of your editing session which represents the editing decisions, you
2100 need to
<em>render
</em> it. See
<a href=
"#RENDERING%20FILES">RENDERING FILES
</a>.
2103 <li><a accesskey=
1 href=
"#MANIPULATING%20TRACKS">MANIPULATING TRACKS
</a>:
2104 <li><a accesskey=
2 href=
"#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING
</a>:
2105 <li><a accesskey=
3 href=
"#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING
</a>:
2106 <li><a accesskey=
4 href=
"#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING
</a>:
2107 <li><a accesskey=
5 href=
"#TRIMMING">TRIMMING
</a>:
2111 Node:
<a name=
"MANIPULATING%20TRACKS">MANIPULATING TRACKS
</a>,
2112 Next:
<a rel=next accesskey=n
href=
"#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING
</a>,
2113 Up:
<a rel=up accesskey=u
href=
"#EDITING">EDITING
</a>
2116 <h3>MANIPULATING TRACKS
</h3>
2118 <p>Tracks in Cinelerra either contain audio or video. There is no special
2119 designation for tracks other than the type of media they contain. When
2120 you create a new project, it contains a certain mumber of default
2121 tracks. You can still add or delete tracks from a number of menus.
2122 The
<em>Tracks
</em> menu contains a number of options for dealing with
2123 multiple tracks simultaneously. Each track itself has a popup menu
2124 which affects one track.
2126 <p>Bring up the popup menu by moving over a track and right clicking. The
2127 popup menu affects the track whether it's armed or not.
2129 <p><em>Move up
</em> and
<em>move down
</em> moves the one track up or down in
2130 the stack.
<em>Delete track
</em> deletes the track.
2132 <p>Operations in the
<em>Tracks
</em> menu affect only tracks which are
2135 <p><em>Move tracks up
</em> and
<em>Move tracks down
</em> shift all the armed
2136 tracks up or down the stack.
2138 <p><em>Delete tracks
</em> deletes the armed tracks.
2140 <p><em>Delete last track
</em> deletes the last track, whether it's armed or
2141 not. Holding down the
<em>d
</em> key quickly deletes all the tracks.
2143 <p><em>Concatenate tracks
</em> is more complicated. It takes every
2144 <em>playable
</em> track and concatenates it to the end of the first
2145 <em>armed tracks
</em>. If there are two armed tracks followed by two
2146 playable tracks, the concatenate operation puts the two playable tracks
2147 after the two armed tracks. If there are three playable tracks
2148 instead, two tracks are put after the armed tracks and a third track is
2149 put on the end of the first armed track. The destination track wraps
2150 around until all the playable tracks are concatenated.
2152 <p>Finally, you'll want to create new tracks. The
<em>Audio
</em> and
2153 <em>Video
</em> menus each contain an option to add a track of their
2154 specific type. In the case of audio, the new track is put on the
2155 bottom of the timeline and the output channel of the audio track is
2156 incremented by one. In the case of video, the new track is put on the
2157 top of the timeline. This way, video has a natural compositing order.
2158 New video tracks are overlayed on top of old tracks.
2161 Node:
<a name=
"TWO%20SCREEN%20EDITING">TWO SCREEN EDITING
</a>,
2162 Next:
<a rel=next accesskey=n
href=
"#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING
</a>,
2163 Previous:
<a rel=previous accesskey=p
href=
"#MANIPULATING%20TRACKS">MANIPULATING TRACKS
</a>,
2164 Up:
<a rel=up accesskey=u
href=
"#EDITING">EDITING
</a>
2167 <h3>TWO SCREEN EDITING
</h3>
2169 <p>This is the fastest way to construct a program out of movie files. The
2170 idea consists of viewing a movie file in one window and viewing the
2171 program in another window. Sections of the movie file are defined in
2172 one window and transferred to the end of the program in the other
2175 <p>The way to begin a two screen editing session is to load some
2176 resources. In
<em>file-
>load
</em> load some movies with the insertion
2177 mode
<em>create new resources
</em>. You want the timeline to stay
2178 unchanged while new resources are brought in. Go to the Resource
2179 Window and select the
<em>media
</em> folder. The newly loaded resources
2180 should appear. Drag a resource from the media side of the window over
2183 <p>There should be enough armed tracks on the timeline to put the sections
2184 of source material that you want. If there aren't, create new tracks
2187 <p>In the viewer window seek to the starting point of a clip you want to
2188 use. Use either the
<em>slider
</em> or the
<em>transport controls
</em>.
2189 Use the
<em>preview region
</em> to narrow down the search. Set the
2190 starting point with the
<img src=
"in_point_button.png" alt=
"in_point_button.png"> <em>in point button
</em>.
2192 <p>Seek to the ending point of the clip you want to use. Set the ending
2193 point with the
<img src=
"out_point_button.png" alt=
"out_point_button.png"> <em>out point button
</em>. The
2194 two points should now appear on the timebar and define a clip.
2196 <p>There are several things you can do with the clip now.
2201 Splice
<img src=
"splice_button.png" alt=
"splice_button.png"> inserts the clip in the timeline, pushing
2202 everything back. If an
<em>in point
</em> or
<em>out point
</em> exists on
2203 the timeline it's inserted there, otherwise it's inserted after the
2204 insertion point. After that, the insertion point moves to the end of
2205 the clip. If there is no in/out point, the insertion point will be
2206 used as the next splice location. This way you can continuously build
2207 up the program by splicing.
2210 Overwrite
<img src=
"overwrite_button.png" alt=
"overwrite_button.png"> overwrites the region of the
2211 timeline with the clip. If an
<em>in point
</em> or
<em>out point
</em>
2212 exists on the timeline it's overwritten there, otherwise it's
2213 overwritten after the insertion point. If a region is highlighted or
2214 both in and out points exist the difference between the active region
2215 and the clip length is deleted.
2218 Create a clip
<img src=
"toclip_button.png" alt=
"toclip_button.png"> generates a new clip for the
2219 resource window containing the affected region but doesn't change the
2220 timeline. Every clip has a title and a description. These are
2224 Copy behaves the same as in cut and paste editing.
2228 <p>Two screen editing can be done purely by keybard shortcuts. When you
2229 move the pointer over any button a tooltip should appear, showing what
2230 key is bound to that button. In the Viewer window, the number pad keys
2231 control the transport and the
<em>[ ] v
</em> keys perform in/out points
2235 Node:
<a name=
"DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING
</a>,
2236 Next:
<a rel=next accesskey=n
href=
"#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING
</a>,
2237 Previous:
<a rel=previous accesskey=p
href=
"#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING
</a>,
2238 Up:
<a rel=up accesskey=u
href=
"#EDITING">EDITING
</a>
2241 <h3>DRAG AND DROP EDITING
</h3>
2243 <p>The answer is yes, you can you create a bunch of clips and drag them on
2244 the timeline. You can also drag edits around the timeline.
2246 <p>Load some files using
<em>file-
>load
</em>. Set the insertion mode to
2247 <em>Create new resources
</em>. This loads the files into the Resource
2248 Window. Create some audio and video tracks on the timeline using the
2249 video and audio menus.
2251 <p>Open the
<em>Media
</em> folder in the resource window. Drag a media file
2252 from the resource window to the timeline. If the media has video, drag
2253 it onto a video track. If the media is pure audio, drag it onto an
2256 <p>Cinelerra fills out the audio and video tracks below the dragging
2257 cursor with data from the file. This affects what tracks you should
2258 create initially and which track to drag the media onto. If the media
2259 has one video track and two audio tracks, you'll need one video track
2260 and two audio tracks on the timeline and the media should be dragged
2261 over the first video track. If the media has audio only you'll need
2262 one audio track on the timeline for every audio track in the media and
2263 the media should be dragged over the first audio track.
2265 <p>When dragging, the media snaps to the start of track if the track is
2266 empty. If there are edits on the track, the media snaps to the nearest
2269 <p>You can also drag multiple files from the resource window. Either draw
2270 a box around the files, use SHIFT, or use CTRL when selecting files.
2271 When you drop the files in the timeline, they are concatenated. The
2272 behavior of SHIFT and CTRL changes depending on if the resources are in
2275 <p>To display the resources as text or icons, right click inside the media
2276 list. Select either
<em>display icons
</em> or
<em>display text
</em> to
2277 change the list format.
2279 <p>When displaying text in the resource window
<em>SHIFT-clicking
</em> on
2280 media files extends the number of highlighted selections.
2281 <em>CTRL-clicking
</em> on media files in text mode selects additional
2282 files one at a time.
2284 <p>When displaying icons in the resource window
<em>SHIFT-clicking
</em> or
2285 <em>CTRL-clicking
</em> selects media files one at a time.
2287 <p>In addition to dragging media files, if you create clips and open the
2288 <em>clip
</em> folder you can drag clips on the timeline.
2290 <p>In the timeline there is further dragging functionality. To enable the
2291 dragging functionality of the timeline, select the arrow toggle
2292 <img src=
"arrow.png" alt=
"arrow.png">. Move over an edit and drag it. If more than one
2293 track is armed, Cinelerra will drag any edits which start on the same
2294 position as the edit the cursur is currently over. During a dragging
2295 operation the edit snaps to the nearest boundary.
2297 <p>Dragging edits around the timeline allows you to sort music playlists,
2298 sort movie scenes, and give better NAB demos but not much else.
2301 Node:
<a name=
"CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING
</a>,
2302 Next:
<a rel=next accesskey=n
href=
"#TRIMMING">TRIMMING
</a>,
2303 Previous:
<a rel=previous accesskey=p
href=
"#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING
</a>,
2304 Up:
<a rel=up accesskey=u
href=
"#EDITING">EDITING
</a>
2307 <h3>CUT AND PASTE EDITING
</h3>
2309 <p>This is the traditional method of editing in audio editors. In the
2310 case of Cinelerra, you either need to start a second copy of Cinelerra
2311 and copy from one copy to the other, copy from different tracks in the
2312 same copy, or load a media file into the Viewer and copy from there.
2314 <p>Load some files onto the timeline. To perform cut and paste editing
2315 select the
<img src=
"ibeam.png" alt=
"ibeam.png"> i-beam toggle. Select a region of the
2316 timeline and select the
<img src=
"cut.png" alt=
"cut.png"> cut button to cut it. Move the
2317 insertion point to another point in the timeline and select the
2318 <img src=
"paste.png" alt=
"paste.png"> paste button. Assuming no in/out points are defined on
2319 the timeline this performs a cut and paste operation.
2321 <p>If in/out points are defined, the insertion point and highlighted
2322 region are overridden by the in/out points for clipboard operations.
2323 Thus, with in/out points you can perform cut and paste in drag and drop
2324 mode as well as cut and paste mode.
2326 <p>When editing audio, it is customary to cut from one part of a waveform
2327 into the same part of another waveform. The start and stop points of
2328 the cut are identical in each waveform and might be offset slightly,
2329 while the wave data is different. It would be very hard to highlight
2330 one waveform to cut it and highlight the second waveform to paste it
2331 without changing the relative start and stop positions.
2333 <p>One option for simplifying this is to open a second copy of Cinelerra,
2334 cutting and pasting to transport media between the two copies. This
2335 way two highlighed regions can exist simultanously.
2337 <p>Another option is to set in/out points for the source region of the
2338 source waveform and set labels for the destination region of the
2339 destination waveform. Perform a cut, clear the in/out points, select
2340 the region between the labels, and perform a paste.
2342 <p>A final operation in cut and paste editing is the
<em>edit-
>clear
</em>
2343 operation. If a region is highlighted or in/out points exist, the
2344 affected region is cleared by
<em>edit-
>clear
</em>. But if the insertion
2345 point is over an edit boundary and the edits on each side of the edit
2346 boundary are the same resource, the edits are combined into one edit
2347 comprised by the resource. The start of this one edit is the start of
2348 the first edit and the end of this one edit is the end of the second
2349 edit. This either results in the edit expanding or shrinking.
2352 Node:
<a name=
"TRIMMING">TRIMMING
</a>,
2353 Previous:
<a rel=previous accesskey=p
href=
"#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING
</a>,
2354 Up:
<a rel=up accesskey=u
href=
"#EDITING">EDITING
</a>
2359 <p>With some edits on the timeline it's possible to do trimming. By
2360 trimming you shrink or grow the edit boundaries by dragging them. In
2361 either drag and drop mode or cut and paste mode, move the cursor over
2362 an edit boundary until it changes shape. The cursor will either be an
2363 expand left or an expand right. If the cursor is an expand left, the
2364 dragging operation affects the beginning of the edit. If the cursor is
2365 an expand right, the dragging operation affects the end of the edit.
2367 <p>When you click on an edit boundary to start dragging, the mouse button
2368 number determines which dragging behavior is going to be followed.
3
2369 possible behaviors are bound to mouse buttons in the interface
2370 preferences. See
<a href=
"#INTERFACE">INTERFACE
</a>.
2372 <p>The effect of each drag operation not only depends on the behavior
2373 button but whether the beginning or end of the edit is being dragged.
2374 When you release the mouse button, the trimming operation is performed.
2376 <p>In a
<em>Drag all following edits
</em> operation, the beginning of the
2377 edit either cuts data from the edit if you move it forward or pastes
2378 new data from before the edit if you move it backward. The end of the
2379 edit pastes data into the edit if you move it forward or cuts data from
2380 the end of the edit if you move it backward. All the edits thereafter
2381 shift. Finally, if you drag the end of the edit past the start of the
2382 edit, the edit is deleted.
2384 <p>In a
<em>Drag only one edit
</em> operation, the behavior is the same when
2385 you drag the beginning or end of an edit. The only difference is none
2386 of the other edits in the track shift. Instead, anything adjacent to
2387 the current edit expands or shrinks to fill gaps left by the drag
2390 <p>In a
<em>Drag source only
</em> operation, nothing is cut or pasted. If
2391 you move the beginning or end of the edit forward, the source reference
2392 in the edit shifts forward. If you move the beginning or end of the
2393 edit backward, the source reference shifts backward. Where the edit
2394 appears in the timeline remains the same but the source shifts.
2396 <p>For all file formats besides still images, the extent of the trimming
2397 operation is clamped to the source file length. Attempting to drag the
2398 start of the edit beyond the start of the source clamps it to the
2401 <p>In all trimming operations, all edits which start on the same position
2402 as the cursor when the drag operation begins are affected. Unarm
2403 tracks to prevent edits from getting affected.
2406 Node:
<a name=
"USING%20EFFECTS">USING EFFECTS
</a>,
2407 Next:
<a rel=next accesskey=n
href=
"#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES
</a>,
2408 Previous:
<a rel=previous accesskey=p
href=
"#EDITING">EDITING
</a>,
2409 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
2412 <h2>USING EFFECTS
</h2>
2414 <p>It would be sufficient to perform all changes to the timeline using
2415 editing operations, but this isn't very extensible. Certain timeline
2416 changes should produce a different effect in the output without
2417 involving a unique procedure to apply each change. This is why we have
2420 <p>Effects fall into three categories, and each effect in a category is
2421 applied using the same procedure.
2424 <li><a accesskey=
1 href=
"#REALTIME%20EFFECTS">REALTIME EFFECTS
</a>:
2425 <li><a accesskey=
2 href=
"#RENDERED%20EFFECTS">RENDERED EFFECTS
</a>:
2426 <li><a accesskey=
3 href=
"#TRANSITIONS">TRANSITIONS
</a>:
2427 <li><a accesskey=
4 href=
"#LADSPA%20EFFECTS">LADSPA EFFECTS
</a>:
2431 Node:
<a name=
"REALTIME%20EFFECTS">REALTIME EFFECTS
</a>,
2432 Next:
<a rel=next accesskey=n
href=
"#RENDERED%20EFFECTS">RENDERED EFFECTS
</a>,
2433 Up:
<a rel=up accesskey=u
href=
"#USING%20EFFECTS">USING EFFECTS
</a>
2436 <h3>REALTIME EFFECTS
</h3>
2438 <p>These are layered under the track they apply to. They process the
2439 track when the track is played back, with no permanent storage of the
2440 output except when the project is rendered.
2442 <p>All the realtime effects are listed in the resource window, divided
2443 into two groups: audio effects and video effects. Audio effects should
2444 be dragged from the resource window onto audio tracks. Video effects
2445 should be dragged onto video tracks.
2447 <p>If there is data on the destination track, the effect is applied to the
2448 entire track. If there is no data on the track the effect is deleted.
2449 Finally, if a region of the track is selected the effect is pasted into
2450 the region, regardless of whether there is data.
2452 <p>Some of the effects don't process data but synthesize data. In the
2453 case of a synthesis effect, you'll want to select a region of the
2454 track so the dragging operation pastes it without deleting it.
2456 <p>When dragging more than one effect onto a track, you'll see the effects
2457 layering from top to bottom, on the bottom of the track. When the
2458 track is played back, effects are processed from top to bottom. The
2459 output of the top effect becomes the input of the bottom effect and so
2462 <p>In addition to dragging from the resource window, effects may be
2463 applied to a track by a popup menu. Right click on a track and select
2464 <em>Attach effect
</em> from the popup. The attach effect dialog gives
2465 you more control than pure dragging and dropping. For one thing, the
2466 attach effect dialog lets you attach two more types of effects: shared
2467 effects and shared tracks. Select a plugin from the
<em>Plugins
</em>
2468 column and hit
<em>Attach
</em> under the plugins column to attach it.
2469 The effect is the same as if the effect was dragged from the resource
2472 <p>When an effect exists under a track, it most often needs to be
2473 configured. Go to the effect and right click on it to bring up the
2474 effect popup. In the effect popup is a
<em>show
</em> option. The show
2475 option causes the GUI for the effect to appear under the cursor. Most
2476 effects have GUI's but some don't. If the effect doesn't have a GUI,
2477 nothing pops up when the
<em>show
</em> option is selected. When you
2478 tweek parameters in the effect GUI, the parameters normally effect the
2479 entire duration of the effect.
2482 <li><a accesskey=
1 href=
"#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES
</a>:
2483 <li><a accesskey=
2 href=
"#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS
</a>:
2487 Node:
<a name=
"REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES
</a>,
2488 Next:
<a rel=next accesskey=n
href=
"#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS
</a>,
2489 Up:
<a rel=up accesskey=u
href=
"#REALTIME%20EFFECTS">REALTIME EFFECTS
</a>
2492 <h4>REALTIME EFFECT TYPES
</h4>
2494 <p>The two other effect types supported by the Attach Effect dialog are
2495 recycled effects. In order to use a recycled effect, three requiremenets
2500 <li>There must be other effects in the timeline.
2503 The other effects must be of the same type as the track you're
2504 attaching an effect to. If the track is an audio track, the effects
2505 must be audio effects. If the track is a video track, the effects must
2509 The insertion point or selected region must start inside the other effects.
2513 <p>In the case of a shared effect, these conditions must be true. In the
2514 case of a shared track, there merely must be another track on the
2515 timeline of the same type as the track you're applying an effect to.
2516 If you right clicked on a video track to attach an effect, there won't
2517 be anything in the
<em>shared tracks
</em> column if no other video track
2518 exists. If you right clicked on an audio track there won't be anything
2519 in the shared track column if no other audio track exists.
2521 <p>If shared effects or shared tracks are available, they appear in the
2522 <em>shared effects
</em> and
<em>shared tracks
</em> columns. The
2523 <em>attach
</em> button under each column causes anything highlighted in
2524 the column to be attached under the current track.
2526 <p>Shared effects and shared tracks allow very unique things to be done.
2527 In the case of a shared effect, the shared effect is treated like a
2528 copy of the original effect except in the shared effect the GUI can't
2529 be brought up. All configuration of the shared effect is determined by
2530 the GUI of the original effect and only the GUI of the original effect
2533 <p>When a shared effect is played back, it's processed just like a normal
2534 effect except the configuration is copied from the original effect.
2535 Some effects detect when they are being shared, like the reverb effects
2536 and the compressor. These effects determine what tracks are sharing
2537 them and either mix the two tracks together or use one track to stage
2538 some value. The reverb mixes tracks together to simulate ambience.
2539 The compressor uses one of the sharing tracks as the trigger.
2541 <p>When an original track has a
<em>shared track
</em> as one of its effects,
2542 the shared track itself is used as a realtime effect. This is more
2543 commonly known as
<em>bouncing tracks
</em> but Cinelerra achieves the
2544 same operation by attaching shared tracks. The fade and any effects in
2545 the shared track are applied to the original track. Once the shared
2546 track has processed the data, the original track performs any effects
2547 which come below the shared track and then composites it on the output.
2549 <p>In addition, once the shared track has processed the output of the
2550 original track like a realtime effect, the shared track mixes itself
2551 into the output with it's settings for pan, mode, and projector. Thus,
2552 two tracks are mixing the same data on the output. Most of the time
2553 you don't want the shared track to mix the same data as the original
2554 track on the output. You want it to stop right before the mixing stage
2555 and give the data back to the original track. Do this by enabling the
2556 <img src=
"mutepatch_up.png" alt=
"mutepatch_up.png"> mute toggle next to each track for whom you don't
2557 want to mix on the output.
2559 <p>Suppose you were making video and you did want the shared track to
2560 composite the original track's data on the output a second time. In
2561 the case of video, the video from the shared track would always appear
2562 under the video from the original track, regardless of whether it was
2563 on top of the original track. This is because shared tracks are
2564 composited in order of their attachment. Since it's part of the original
2565 track it has to be composited before the original track is composited.
2568 Node:
<a name=
"EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS
</a>,
2569 Previous:
<a rel=previous accesskey=p
href=
"#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES
</a>,
2570 Up:
<a rel=up accesskey=u
href=
"#REALTIME%20EFFECTS">REALTIME EFFECTS
</a>
2573 <h4>EDITING REALTIME EFFECTS
</h4>
2575 <p>Many operations exist for manipulating effects once they are in the
2576 timeline. Because mixing effects and media is such complex business,
2577 the methods used in editing effects aren't as concise as cutting and
2578 pasting. Some of the editing happens by dragging in/out points, some
2579 of the editing happens through popup menus, and some of it happens by
2582 <p>Normally when you edit tracks, the effects follow the editing
2583 decisions. If you cut from a track, the effect shrinks. If you drag
2584 edit in/out points, the effect changes length. This behavior can be
2585 disabled by selecting
<em>Settings-
>edit effects
</em> in the project
2586 window. This decouples effects from editing operations, but what if
2587 you just want to edit the effects?
2589 <p>Move the timeline cursor over the effect borders until it changes to a
2590 resize left or resize right icon. In this state, if you drag the end
2591 of the effect, it performs an edit just like dragging the end of a
2594 <p>The three editing behaviors of track trimming apply to effect trimming
2595 and they are bound to the mouse buttons that you set in
<em>interface
2596 preferences
</em>. See
<a href=
"#INTERFACE">INTERFACE
</a>. When you perform a trim edit on an
2597 effect, the effect boundary is moved by dragging on it. Unlike track
2598 editing, the effect has no source length. You can extend the end of an
2599 effect as much as desired without being limited.
2601 <p>Also unlike track editing, the starting position of the drag operation
2602 doesn't bind the edit decision to media. The media the effect is bound
2603 to doesn't follow effect edits. Other effects; however, do follow
2604 editing decisions made on an effect. If you drag the end of an effect
2605 which is lined up to effects on other tracks, the effects on the other
2606 tracks will be edited while the media stays the same.
2608 <p>What happens if you trim the end of an effect in, leaving a lot of
2609 unaffected time near the end of the track? When you drag an effect in
2610 from the Resource Window you can insert the effect in the portion of
2611 the row unoccupied by the trimming operation. Realtime effects are
2612 organized into rows under the track. Each row can have multiple
2615 <p>In addition to trimming, you can move effects up or down. Every track
2616 can have a stack of effects under it. By moving an effect up or down
2617 you change the order in which effects are processed in the stack. Go
2618 to an effect and right click to bring up the effect menu. The
2619 <em>Move up
</em> and
<em>Move down
</em> options move the effect up or down.
2621 <p>When you're moving effects up or down, be aware that if they're shared
2622 as
<em>shared effects
</em>, any references will be pointing to a
2623 different effect after the move operation.
2625 <p>Finally, there's dragging of effects. Dragging effects works just like
2626 dragging edits. You must select the
<img src=
"arrow.png" alt=
"arrow.png"> arrow to enter drag and
2627 drop mode before dragging effects. The effects snap to media
2628 boundaries, effect boundaries, and tracks. Be aware if you drag a
2629 reference to a shared effect, the reference will usually point to the
2630 wrong effect afterwards.
2632 <p>Right click on an effect to bring up a menu for the effect. Select
2633 <em>attach...
</em> to change the effect or change the reference if it is
2637 Node:
<a name=
"RENDERED%20EFFECTS">RENDERED EFFECTS
</a>,
2638 Next:
<a rel=next accesskey=n
href=
"#TRANSITIONS">TRANSITIONS
</a>,
2639 Previous:
<a rel=previous accesskey=p
href=
"#REALTIME%20EFFECTS">REALTIME EFFECTS
</a>,
2640 Up:
<a rel=up accesskey=u
href=
"#USING%20EFFECTS">USING EFFECTS
</a>
2643 <h3>RENDERED EFFECTS
</h3>
2645 <p>Another type of effect is performed on a section of the track and the
2646 result stored somewhere before it is played back. The result is
2647 usually pasted into the track to replace the original data.
2649 <p>The rendered effects are not listed in the resource window but instead
2650 are accessed through the
<em>Audio-
>Render effect
</em> and
2651 <em>Video-
>Render effect
</em> menu options. Each of these menu options
2652 brings up a dialog for the rendered effect. Rendered effects apply to
2653 only one type of track, either audio or video. If no tracks of the
2654 type exist, an error pops up.
2656 <p>A region of the timeline to apply the effect to must be defined before
2657 selecting
<em>Render effect...
</em>. If no in/out points and no
2658 highlighted region exists, the entire region after the insertion point
2659 is treated as the affected region. Otherwise, the region between the
2660 in/out points or the highlighted region is the affected region.
2662 <p>In the render effect dialog is a list of all the realtime and all the
2663 rendered effects. The difference here is that the realtime effects are
2664 rendered to disk and not applied under the track. Highlight an effect
2665 in the list to designate it as the one being performed.
2667 <p>Define a file to render the effect to in the
<em>Select a file to
2668 render to
</em> box. The
<img src=
"magnify.png" alt=
"magnify.png"> magnifying glass allows file
2669 selection from a list.
2671 <p>Select a file format which can handle the track type. The
2672 <img src=
"wrench.png" alt=
"wrench.png"> wrench allows configuration specific to the file format.
2674 <p>There is also an option for creating a new file at each label. If you
2675 have a CD rip on the timeline which you want to divide into different
2676 files, the labels would become dividing points between the files if
2677 this option were selected. When the timeline is divided by labels, the
2678 effect is re-initialized at every label. Normalize operations take the
2679 peak in the current file and not in the entire timeline.
2681 <p>Finally there is an insertion strategy just like in the render dialog.
2682 It should be noted that even though the effect applies only to audio or
2683 video, the insertion strategy applies to all tracks just like a
2684 clipboard operation.
2686 <p>When you click
<em>OK
</em> in the effect dialog, it calls the GUI of the
2687 effect. If the effect is also a realtime effect, a second GUI appears
2688 to prompt for acceptance or rejection of the current settings. After
2689 accepting the settings, the effect is processed.
2692 Node:
<a name=
"TRANSITIONS">TRANSITIONS
</a>,
2693 Next:
<a rel=next accesskey=n
href=
"#LADSPA%20EFFECTS">LADSPA EFFECTS
</a>,
2694 Previous:
<a rel=previous accesskey=p
href=
"#RENDERED%20EFFECTS">RENDERED EFFECTS
</a>,
2695 Up:
<a rel=up accesskey=u
href=
"#USING%20EFFECTS">USING EFFECTS
</a>
2698 <h3>TRANSITIONS
</h3>
2700 <p>When one edit ends and another edit begins, the default behaviour is to
2701 have the first edit's output immediately become the output of the
2702 second edit when played back. Transitions are a way for the first
2703 edit's output to become the second edit's output with different
2706 <p>Cinelerra supports audio and video transitions, all of which are listed
2707 in the resource window. Transitions may only apply to the matching
2708 track type. Transitions under
<em>audio transitions
</em> can only apply
2709 to audio tracks. Transitions under
<em>video transitions
</em> can only
2710 apply to video tracks.
2712 <p>Load a video file and cut a section from the center so the edit point
2713 is visible on the timeline. Go the resource window and click on the
2714 <em>Video transitions
</em> folder. Drag a transition from the transition
2715 list onto the second video edit on the timeline. A box highlights over
2716 where the transition will appear. Releasing it over the second edit
2717 applies the transition between the first and second edit.
2719 <p>You can now scrub over the transition with the transport controls and
2720 watch the output in the
<em>Compositor window
</em>. Scrubbing with the
2721 insertion point doesn't normally show transitions because the
2722 transition durations are usually too short. The exact point in time
2723 when the transition takes effect isn't straightforward. It starts when
2724 the second edit begins and lasts a certain amount of time into the
2725 second edit. Therefore, the first asset needs to have enough data
2726 after the edit point to fill the transition into the second edit.
2728 <p>Once the transition is in place, it can be edited similarly to an
2729 effect. Move the pointer over the transition and right click to bring
2730 up the transition menu. The
<em>show
</em> option brings up specific
2731 parameters for the transition in question if there are any. The
2732 <em>length
</em> option adjusts the length of the transition in seconds.
2733 Once these two parameters are set, they are applied to future
2734 transitions until they are changed again. Finally, the
<em>detach
</em>
2735 option removes the transition from the timeline.
2737 <p>Dragging and dropping transitions from the Resource window to the
2738 Program window can be really slow and tiring. Fortunately, once you
2739 drag a transition from the Resource window, the
<em>U
</em> and
<em>u
</em>
2740 keys will paste the same transition. The
<em>U
</em> key pastes the last
2741 video transition and the
<em>u
</em> key pastes the last audio transition
2742 on all the recordable tracks. If the insertion point or in point is
2743 over an edit, the beginning of the edit is covered by the transition.
2745 <p>It should be noted that when playing transitions from the timeline to a
2746 hardware accelerated video device, the hardware acceleration will
2747 usually be turned off momentarily during the transition and on after
2748 the transition in order to render the transition. Using an
2749 unaccelerated video device for the entire timeline normally removes the
2753 Node:
<a name=
"LADSPA%20EFFECTS">LADSPA EFFECTS
</a>,
2754 Previous:
<a rel=previous accesskey=p
href=
"#TRANSITIONS">TRANSITIONS
</a>,
2755 Up:
<a rel=up accesskey=u
href=
"#USING%20EFFECTS">USING EFFECTS
</a>
2758 <h3>LADSPA EFFECTS
</h3>
2760 <p>LADSPA effects are supported in realtime and rendered mode for audio.
2761 The LADSPA plugins you get from the internet vary in quality. Most
2762 can't be tweeked in realtime very easily and work better when
2763 rendered. Some crash and some can only be applied to one track due to
2764 a lack of reentrancy. Although Cinelerra implements the LADSPA
2765 interface as accurately as possible, multiple tracks of realtime,
2766 simultaneous processing go beyond the majority of LADSPA users. LADSPA
2767 effects appear in the audio folder as the hammer and screwdriver, to
2768 signify that they are Plugins for Linux Audio Developers.
2770 <p>LADSPA Effects are enabled merely by setting the
<em>LADSPA_PATH
</em>
2771 environment variable to the location of your LADSPA plugins or putting
2772 them in the
<em>/usr/lib/cinelerra
</em> directory.
2775 Node:
<a name=
"SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES
</a>,
2776 Next:
<a rel=next accesskey=n
href=
"#COMPOSITING">COMPOSITING
</a>,
2777 Previous:
<a rel=previous accesskey=p
href=
"#USING%20EFFECTS">USING EFFECTS
</a>,
2778 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
2781 <h2>SETTING PROJECT ATTRIBUTES
</h2>
2783 <p>When you play media files in Cinelerra, the media files have a certain
2784 number of tracks, a certain frame size, a certain sample size, and so
2785 on and so forth. No matter what the media file has; however, it is
2786 still played back according to the project attributes. If an audio
2787 file's samplerate is different than the project attributes, it is
2788 resampled. If a video file's frame size is different than the project
2789 attributes, it is composited on a black frame, either cropped or
2790 bordered with black.
2792 <p>The project attributes are adjusted in
<em>settings-
>format
</em> and in
2793 to a more limited extent in
<em>file-
>new
</em>. When you adjust project
2794 settings in
<em>file-
>new
</em> a new timeline is created with no data.
2795 Every timeline created from this point uses the same settings. When
2796 you adjust settings in
<em>settings-
>format
</em>, the timeline is not
2797 recreated with no data but every timeline created from this point uses
2800 <p>In addition to the traditional settings for sample rate, frame rate,
2801 frame size, Cinelerra uses some unusual settings like
<em>channel
2802 positions, color model, and aspect ratio.
</em>
2807 Channel positions is the only setting which doesn't affect the output
2808 necessarily. Click on a speaker icon and drag to change the position
2809 of a channel. It is merely a convenience so when more than
2 channels
2810 are used, the pan controls on the timeline are effective. Channels
3,
2811 4, and
5 wouldn't be very adjustible if they occupied the same
2812 locations as channels
1 and
2 on a pan control. Normally a
6 channel
2813 configuration would look like this:
2817 <img src=
"channelpositions.png" alt=
"channelpositions.png">
2820 <p>But different channels can be positioned very close together to make
2821 them have the same output.
2824 Color model is very important for video playback. The video is stored
2825 on disk in one colormodel, normally compressed using a YUV derivative.
2826 When played back, Cinelerra decompresses it from the file format
2827 directly into the format of the output device. If effects are
2828 processed, the decompression is into an internal colormodel first and
2829 the internal colormodel is then converted to the format of the output
2830 device. The selection of internal colormodel determines how accurate
2831 and fast the effects are.
2833 <p>Cinelerra colormodels are described using a certain packing order of
2834 components and a certain number of bits for each component. The
2835 packing order is printed on the left and the bit allocation is printed
2838 <p><em>RGBA8888
</em> uses red, green, blue, and alpha with
8 bits per
2841 <p>In order to do effects which involve alpha channels, a colormodel with
2842 an alpha channel must be selected. These are RGBA8888, YUVA8888,
2843 RGBA16161616, YUVA16161616. The
4 channel colormodels are notoriously
2844 slower than
3 channel colormodels, with the slowest being
2845 RGBA16161616. Some effects, like fade, work around the need for alpha
2846 channels while other effects, like chromakey, require an alpha channel
2847 to do anything, so it's a good idea to try the effect without alpha
2850 <p>The YUV colormodels are usually faster than RGB colormodels when using
2851 compressed footage. They also destroy fewer colors than RGB
2852 colormodels. If footage stored as JPEG or MPEG is processed many times
2853 in RGB, the colors will fade while they won't if processed in YUV.
2856 Aspect ratio determines the shape of the video output when using the
2857 X11 video output. The numbers in each direction can be any floating
2858 point number. When drawn on the screen, video pixels are stretched to
2859 match the aspect ratio.
2864 Node:
<a name=
"COMPOSITING">COMPOSITING
</a>,
2865 Next:
<a rel=next accesskey=n
href=
"#KEYFRAMES">KEYFRAMES
</a>,
2866 Previous:
<a rel=previous accesskey=p
href=
"#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES
</a>,
2867 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
2870 <h2>COMPOSITING
</h2>
2872 <p>A large amount of Cinelerra's binary size is directed towards
2873 compositing. When you remove the letterboxing from a widescreen show,
2874 you're compositing. Changing the resolution of a show, making a split
2875 screen, and fading in and out among other things are all compositing
2876 operations in Cinelerra. Cinelerra detects when it's in a compositing
2877 operation and plays back through the compositing engine only then.
2878 Otherwise, it uses the fastest decoder available in the hardware.
2880 <p>Compositing operations are done on the timeline and in the Compositor
2881 window. Shortcuts exist in the Resource window for changing project
2882 attributes. Once some video files are on the timeline, the compositor
2883 window is a good place to try compositing.
2886 <li><a accesskey=
1 href=
"#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR
</a>:
2887 <li><a accesskey=
2 href=
"#MASKS">MASKS
</a>:
2888 <li><a accesskey=
3 href=
"#CROPPING">CROPPING
</a>:
2889 <li><a accesskey=
4 href=
"#SAFE%20REGIONS">SAFE REGIONS
</a>:
2890 <li><a accesskey=
5 href=
"#OVERLAY%20MODES">OVERLAY MODES
</a>:
2891 <li><a accesskey=
6 href=
"#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES
</a>:
2895 Node:
<a name=
"THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR
</a>,
2896 Next:
<a rel=next accesskey=n
href=
"#MASKS">MASKS
</a>,
2897 Up:
<a rel=up accesskey=u
href=
"#COMPOSITING">COMPOSITING
</a>
2900 <h3>THE CAMERA AND PROJECTOR
</h3>
2902 <p>In the compositor window, the most important functions are the
2903 <img src=
"camera.png" alt=
"camera.png"> camera button and the
<img src=
"projector.png" alt=
"projector.png"> projector
2904 button. These control operation of the camera and projector. Inside
2905 Cinelerra's compositing pipeline, the camera determines where in the
2906 source video the temporary is copied from. The projector determines
2907 where in the output the temporary is copied to. The temporary is a
2908 frame of video in Cinelerra's memory where all graphics processing is
2909 done. Each track has a different temporary which is defined by the
2910 track size. By resizing the tracks you can create splitscreens, pans,
2915 <img src=
"compositing_pipeline.png" alt=
"compositing_pipeline.png">
2918 <p><em>Visual representation of the compositing pipeline
</em>.
2920 <p>When editing the camera and projector in the compositing window, the
2921 first track with
<em>record
</em> enabled is the track affected. Even if
2922 the track is completely transparent, it's still the affected track. If
2923 multiple video tracks exist, the easiest way to select one track for
2924 editing is to
<em>shift-click
</em> on the record icon of the track. This
2927 <p>When the
<em>projector
</em> button is enabled in the compositor window,
2928 you're in projector editing mode. A guide box appears in the video
2929 window. Dragging anywhere in the video window causes the guide box to
2930 move, hopefully along with the video.
<em>shift-dragging
</em> anywhere
2931 in the video window causes the guide box to shrink and grow along with
2932 the video. Once you've positioned the video with the projector, you're
2933 ready to master the camera.
2935 <p>Select the
<img src=
"camera.png" alt=
"camera.png"> camera button to enable camera editing mode.
2936 In this mode, the guide box shows where the camera position is in
2937 relation to past and future camera positions but not where it is in
2938 relation to the source video. Dragging the camera box in the
2939 compositor window doesn't move the box but instead moves the location
2940 of the video inside the box.
2942 <p>For example, when you drag the camera left, the video moves right.
2943 When you drag the camera up, the video moves down. When you shift-drag
2944 the camera, the effect is the same as if you zoomed in or out of the
2945 source. The intention of the camera is to produce still photo panning,
2946 while the intention of the projector is to composite several sources in
2949 <p>In the compositing window, there is a popup menu of options for the
2950 camera and projector. Right click over the video portion of the
2951 compositing window to bring up the menu.
2955 <li>Reset Camera causes the camera to return to the center position.
2957 <li>Reset Projector causes the projector to return to the center.
2961 <p>The camera and projector have shortcut operations neither in the popup
2962 menu or represented in video overlays. These are accessed in the
2963 <em>Tool window
</em>. Most operations in the Compositor window have a
2964 tool window which is enabled by activating the
<img src=
"toolwindow.png" alt=
"toolwindow.png">
2967 <p>In the case of the camera and projector, the tool window shows x, y,
2968 and z coordinates. By either tumbling or entering text directly, the
2969 camera and projector can be precisely positioned.
9 justification
2970 types are also defined for easy access. A popular justification
2971 operation is upper left projection after image reduction. This is used
2972 when reducing the size of video with aspect ratio adjustment.
2974 <p>The translation effect allows simultaneous aspect ratio conversion and
2975 reduction but is easier to use if the reduced video is put in the upper
2976 left of the temporary instead of in the center. The track size is set
2977 to the original size of the video and the camera is centered. The
2978 output size is set to the reduced size of the video. Without any
2979 effects, this produces just the cropped center portion of the video in
2982 <p>The translation effect is dropped onto the video track. The input
2983 dimensions of the translation effect are set to the original size and
2984 the output dimensions are set to the reduced size. To put the reduced
2985 video in the center section that the projector shows would require
2986 offsetting
<em>out x and out y
</em> by a complicated calculation.
2987 Instead, we leave
<em>out x and out y
</em> at
0 and use the projector's
2990 <p>Merely by selecting
<img src=
"left_justify.png" alt=
"left_justify.png"> left justify and
2991 <img src=
"top_justify.png" alt=
"top_justify.png"> top justify, the projector displays the reduced
2992 image from the top left corner of the temporary in the center of the
2996 Node:
<a name=
"MASKS">MASKS
</a>,
2997 Next:
<a rel=next accesskey=n
href=
"#CROPPING">CROPPING
</a>,
2998 Previous:
<a rel=previous accesskey=p
href=
"#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR
</a>,
2999 Up:
<a rel=up accesskey=u
href=
"#COMPOSITING">COMPOSITING
</a>
3004 <p>Masks select a region of the video for either displaying or hiding.
3005 Masks are also used in conjunction with another effect to isolate the
3006 effect to a certain region of the frame. A copy of one video track may
3007 be delayed slightly and unmasked in locations where the one copy has
3008 interference but the other copy doesn't. Color correction may be
3009 needed in one section of a frame but not another. A mask can be
3010 applied to just a section of the color corrected track while the
3011 vanilla track shows through. Removal of boom microphones, airplanes,
3012 and housewives are other mask uses.
3014 <p>The order of the compositing pipeline affects what can be done with
3015 masks. Mainly, masks are performed on the temporary after effects and
3016 before the projector. This means multiple tracks can be bounced to a
3017 masked track and projected with the same mask.
3019 <p>Our compositing pipeline graph now has a masking stage. There are
8
3020 possible masks per track. Each mask is defined separately, although
3021 they each perform the same operation, whether it's addition or
3026 <img src=
"compositing_pipeline2.png" alt=
"compositing_pipeline2.png">
3029 <p><em>Compositing pipeline with masks
</em>
3031 <p>To define a mask, go into the Compositor window and enable the
3032 <img src=
"mask.png" alt=
"mask.png"> <em>mask
</em> toggle. Now go over the video and
3033 click-drag. Click-drag again in another part of the image to create
3034 each new point of the mask. While it isn't the conventional bezier
3035 curve behavior, this masking interface performs in realtime what the
3036 effect of the mask is going to be. Creating each point of the mask
3037 expands a rubber band curve.
3039 <p>Once points are defined, they can be moved by
<em>ctrl-dragging
</em> in
3040 the vicinity of the corner. This; however, doesn't smooth out the
3041 curve. The in-out points of the bezier curve are accessed by
3042 <em>shift-dragging
</em> in the vicinity of the corner. Then
3043 <em>shift-dragging
</em> near the in or out point causes the point to
3046 <p>Finally, once you have a mask, the mask can be translated in one piece
3047 by
<em>alt-dragging
</em> the mask. Mask editing in Cinelerra is
3048 identical to how The Gimp edits masks except in this case the effect of
3049 the mask is always on.
3051 <p>The masks have many more parameters which couldn't be represented with
3052 video overlays. These are represented in the tool window for masks.
3053 Selecting the
<img src=
"toolwindow.png" alt=
"toolwindow.png"> question mark when the
<img src=
"mask.png" alt=
"mask.png">
3054 mask toggle is highlighted brings up the mask options.
3056 <p>The
<em>mode
</em> of the mask determines if the mask removes data or
3057 makes data visible. If the mode is subtractive, the mask causes video
3058 to disappear. If the mode is additive, the mask causes video to appear
3059 and everything outside the mask to disappear.
3061 <p>The
<em>value
</em> of the mask determines how extreme the addition or
3062 subtraction is. In the subtractive mode, higher values subtract more
3063 alpha. In the additive mode, higher values make the region in the mask
3064 brighter while the region outside the mask is always hidden.
3066 <p>The mask number determines which one of the
8 possible masks we're
3067 editing. Each track has
8 possible masks. When you click-drag in the
3068 compositor window, you're only editing one of the masks. Change the
3069 value of
<em>mask number
</em> to cause another mask to be edited. The
3070 previous mask is still active but only the curve overlay for the
3071 currently selected mask is visible.
3073 <p>When multiple masks are used, their effects are ORed together. Every
3074 mask in a single track uses the same value and mode.
3076 <p>The edges of a mask are hard by default but this rarely is desired.
3077 The
<em>feather
</em> parameter determines how many pixels to feather the
3078 mask. This creates softer edges but takes longer to render.
3080 <p>Finally, there are parameters which affect one point on the current
3081 mask instead of the whole mask. These are
<em>Delete, x, y
</em>. The
3082 active point is defined as the last point dragged in the compositor
3083 window. Any point can be activated merely by
<em>ctrl-clicking
</em> near
3084 it without moving the pointer. Once a point is activated,
3085 <em>Delete
</em> deletes it and
<em>x, y
</em> allow repositioning by numeric
3089 Node:
<a name=
"CROPPING">CROPPING
</a>,
3090 Next:
<a rel=next accesskey=n
href=
"#SAFE%20REGIONS">SAFE REGIONS
</a>,
3091 Previous:
<a rel=previous accesskey=p
href=
"#MASKS">MASKS
</a>,
3092 Up:
<a rel=up accesskey=u
href=
"#COMPOSITING">COMPOSITING
</a>
3097 <p>Cropping changes the value of the output dimensions and the projector
3098 to reduce the visible picture area. Enable the
<img src=
"crop.png" alt=
"crop.png"> crop
3099 toggle and the
<img src=
"toolwindow.png" alt=
"toolwindow.png"> tool window to perform cropping in
3100 the compositing window. This draws a rectangle over the video.
3101 Click-drag anywhere in the video to create a new rectangle. Click-drag
3102 over any corner of the rectangle to reposition the corner. The tool
3103 window allows text entry of the coordinates. When the rectangle is
3104 positioned, hit the
<em>do it
</em> button in the tool window.
3107 Node:
<a name=
"SAFE%20REGIONS">SAFE REGIONS
</a>,
3108 Next:
<a rel=next accesskey=n
href=
"#OVERLAY%20MODES">OVERLAY MODES
</a>,
3109 Previous:
<a rel=previous accesskey=p
href=
"#CROPPING">CROPPING
</a>,
3110 Up:
<a rel=up accesskey=u
href=
"#COMPOSITING">COMPOSITING
</a>
3113 <h3>SAFE REGIONS
</h3>
3115 <p>On consumer displays the borders of the image are cut off and within
3116 the cutoff point is a region which isn't always square like it is in
3117 the compositor window. The borders are intended for scratch room and
3118 vertical blanking data. You can show where these borders are by
3119 enabling the
<img src=
"titlesafe.png" alt=
"titlesafe.png"> safe regions toggle. Keep titles inside
3120 the inner rectangle and keep action inside the outer rectangle.
3123 Node:
<a name=
"OVERLAY%20MODES">OVERLAY MODES
</a>,
3124 Next:
<a rel=next accesskey=n
href=
"#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES
</a>,
3125 Previous:
<a rel=previous accesskey=p
href=
"#SAFE%20REGIONS">SAFE REGIONS
</a>,
3126 Up:
<a rel=up accesskey=u
href=
"#COMPOSITING">COMPOSITING
</a>
3129 <h3>OVERLAY MODES
</h3>
3131 <p>Every track has an overlay mode, accessible by expanding the track.
3132 Select the
<img src=
"expandpatch_checked.png" alt=
"expandpatch_checked.png"> expand track toggle to view all
3133 the options for a video track. The overlay mode of the track is
3134 <em>normal
</em> by default. Select other modes by selecting the
3135 <em>normal
</em> button. Overlay modes are processed inside the projector
3136 stage of compositing. The different modes are summarized below.
3141 Normal uses a traditional Porter-Diff equation to blend tracks with
3142 alpha. When no alpha exists, the new track replaces the output.
3145 In addition, whatever is in the output is added to the current track.
3146 The result is blended based on the current track's alpha onto the
3150 In subtraction, the current track is subtracted from the output and the
3151 result is alpha blended onto the output.
3154 Multiply is the most useful operation. The current track is multiplied
3155 by the output and the result blended onto the output. Usually a black
3156 and white image with no alpha channel or a white title on a black image
3157 is used as the current track. With the multiply operation, only the
3158 output portions under the white area show.
3161 Divide divides the current track by the output and the result is
3162 blended into the output. It usually results in overloaded levels.
3165 Replace does no blending and overwrites the output with the current
3171 Node:
<a name=
"TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES
</a>,
3172 Previous:
<a rel=previous accesskey=p
href=
"#OVERLAY%20MODES">OVERLAY MODES
</a>,
3173 Up:
<a rel=up accesskey=u
href=
"#COMPOSITING">COMPOSITING
</a>
3176 <h3>TRACK AND OUTPUT SIZES
</h3>
3178 <p>The size of the temporary and the size of the output in our compositing
3179 pipeline are independant and variable. This fits into everything
3180 covered so far. The camera's viewport is the temporary size. Effects
3181 are processed in the temporary and are affected by the temporary size.
3182 Projectors are rendered to the output and are affected by the output
3183 size. If the temporary is smaller than the output, the temporary is
3184 bordered by blank regions in the output. If the temporary is bigger
3185 than the output, the temporary is cropped.
3187 <p>The temporary size is defined as the track size. Each track has a
3188 different size. Right click on a track to bring up the track's menu.
3189 Select
<em>Resize Track
</em> to resize the track to any arbitrary size.
3190 Alternatively you can select
<em>Match output size
</em> to make the track
3191 the same size as the output.
3193 <p>The output size is set in either
<em>New
</em> when creating a new project
3194 or
<em>Settings-
>Format
</em>. In the Resource window there is another
3195 way to change the output size. Right click on a video asset and select
3196 <em>Match project size
</em> to conform the output to the asset. When new
3197 tracks are created, the track size always conforms to the output size
3198 specified by these methods.
3201 Node:
<a name=
"KEYFRAMES">KEYFRAMES
</a>,
3202 Next:
<a rel=next accesskey=n
href=
"#CAPTURING%20MEDIA">CAPTURING MEDIA
</a>,
3203 Previous:
<a rel=previous accesskey=p
href=
"#COMPOSITING">COMPOSITING
</a>,
3204 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
3209 <p>Setting static compositing parameters isn't very useful most of the
3210 time. Normally you need to move the camera around over time or change
3211 mask positions. Masks need to follow objects. We create dymanic
3212 changes by defining keyframes. A keyframe is a certain point in time
3213 when the settings for one operation change. In Cinelerra, there are
3214 keyframes for almost every compositing parameter and effect parameter.
3216 <p>Whenever you adjust any parameter, the value is stored in a keyframe.
3217 If the value is stored in a keyframe, why doesn't it always change?
3218 The keyframe it is stored in is known as the
<em>default keyframe
</em>.
3219 The default keyframe applies to the entire duration if no other
3220 keyframes are present. The default keyframe is not drawn anywhere
3221 because it always exists. The only way change occurs over time is if
3222 non-default keyframes are created.
3224 <p>Display keyframes for any parameter by using the
<em>view
</em> menu.
3225 When keyframes are selected, they are drawn on the timeline over the
3226 tracks they apply to.
3229 <li><a accesskey=
1 href=
"#CURVE%20KEYFRAMES">CURVE KEYFRAMES
</a>:
3230 <li><a accesskey=
2 href=
"#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES
</a>:
3231 <li><a accesskey=
3 href=
"#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES
</a>:
3232 <li><a accesskey=
4 href=
"#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES
</a>:
3233 <li><a accesskey=
5 href=
"#EDITING%20KEYFRAMES">EDITING KEYFRAMES
</a>:
3237 Node:
<a name=
"CURVE%20KEYFRAMES">CURVE KEYFRAMES
</a>,
3238 Next:
<a rel=next accesskey=n
href=
"#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES
</a>,
3239 Up:
<a rel=up accesskey=u
href=
"#KEYFRAMES">KEYFRAMES
</a>
3242 <h3>CURVE KEYFRAMES
</h3>
3244 <p>Fade and zoom settings are stored in bezier curves. Go to
3245 <em>view-
>fade keyframes
</em> or
<em>view-
>...zoom
</em> to show curves on
3246 the timeline. It's sometimes easier to pull down the
<em>view
</em> menu
3247 and then use the keyboard shortcuts listed in the menu to enable or
3248 disable keyframes while the menu is visible. In either arrow editing
3249 mode or i-beam editing mode, move the cursor over the curves in the
3250 timeline until it changes shape. Then merely by clicking and dragging
3251 on the curve you can create a keyframe at the position.
3253 <p>After the keyframe is created, click drag on it again to reposition
3254 it. When you click-drag a second keyframe on the curve, it creates a
3255 smooth ramp.
<em>ctrl-dragging
</em> on a keyframe changes the value of
3256 either the input control or the output control. This affects the
3257 sharpness of the curve. While the input control and the output control
3258 can be moved horizontally as well as vertically, the horizontal
3259 movement is purely for legibility and isn't used in the curve value.
3261 <p>You may remember that The Gimp and the Compositing masks all use
3262 <em>shift
</em> to select control points so why does the timeline use
3263 <em>ctrl
</em>? When you
<em>shift-drag
</em> on a timeline curve, the
3264 keyframe jumps to the value of either the next or previous keyframe,
3265 depending on which exists. This lets you set a constant curve value
3266 without having to copy the next or previous keyframe.
3269 Node:
<a name=
"TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES
</a>,
3270 Next:
<a rel=next accesskey=n
href=
"#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES
</a>,
3271 Previous:
<a rel=previous accesskey=p
href=
"#CURVE%20KEYFRAMES">CURVE KEYFRAMES
</a>,
3272 Up:
<a rel=up accesskey=u
href=
"#KEYFRAMES">KEYFRAMES
</a>
3275 <h3>TOGGLE KEYFRAMES
</h3>
3277 <p>Mute is the only toggle keyframe. Mute keyframes determine where the
3278 track is processed but not rendered to the output. Click-drag on these
3279 curves to create a keyframe. Unlike curves, the toggle keyframe has
3280 only two values: on or off. Ctrl and shift do nothing on toggle
3284 Node:
<a name=
"AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES
</a>,
3285 Next:
<a rel=next accesskey=n
href=
"#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES
</a>,
3286 Previous:
<a rel=previous accesskey=p
href=
"#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES
</a>,
3287 Up:
<a rel=up accesskey=u
href=
"#KEYFRAMES">KEYFRAMES
</a>
3290 <h3>AUTOMATIC KEYFRAMES
</h3>
3292 <p>You may have noticed when a few fade curves are set up, moving the
3293 insertion point around the curves causes the faders to reflect the
3294 curve value under the insertion point. This isn't just to look cool.
3295 The faders themselves can set keyframes in automatic keyframe mode.
3296 Automatic keyframe mode is usually more useful than dragging curves.
3298 <p>Enable automatic keyframe mode by enabling the automatic keyframe
3299 toggle
<img src=
"autokeyframe.png" alt=
"autokeyframe.png">. In automatic keyframe mode, every time
3300 you tweek a keyframeable parameter it creates a keyframe on the
3301 timeline. Since automatic keyframes affect many parameters, it's best
3302 enabled just before you need a keyframe and disabled immediately
3305 <p>It's useful to go into the
<em>View
</em> menu and make the desired
3306 parameter visible before performing a change. The location where the
3307 automatic keyframe is generated is under the insertion point. If the
3308 timeline is playing back during a tweek, several automatic keyframes
3309 will be generated as you change the parameter.
3311 <p>When automatic keyframe mode is disabled, a similarly strange thing
3312 happens. Adjusting a parameter adjusts the keyframe immediately
3313 preceeding the insertion point. If two fade keyframes exist and the
3314 insertion point is between them, changing the fader changes the first
3317 <p>There are many parameters which can only be keyframed in automatic
3318 keyframe mode. These are parameters for which curves would take up too
3319 much space on the track or which can't be represented easily by a
3322 <p>Effects are only keyframable in automatic mode because of the number of
3323 parameters in each individual effect.
3325 <p>Camera and projector translation can only be keyframed in automatic
3326 keyframe mode while camera and projector zoom can be keyframed with
3327 curves. It is here that we conclude the discussion of compositing,
3328 since compositing is highly dependant on the ability to change over
3332 Node:
<a name=
"COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES
</a>,
3333 Next:
<a rel=next accesskey=n
href=
"#EDITING%20KEYFRAMES">EDITING KEYFRAMES
</a>,
3334 Previous:
<a rel=previous accesskey=p
href=
"#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES
</a>,
3335 Up:
<a rel=up accesskey=u
href=
"#KEYFRAMES">KEYFRAMES
</a>
3338 <h3>COMPOSITOR KEYFRAMES
</h3>
3340 <p>Camera and projector translation is represented by two parameters: x
3341 and y. Therefore it is cumbersome to adjust with curves. Cinelerra
3342 solves this problem by relying on automatic keyframes. With a video
3343 track loaded, move the insertion point to the beginning of the track
3344 and enable automatic keyframe mode.
3346 <p>Move the projector slightly in the compositor window to create a
3347 keyframe. Then go forward several seconds. Move the projector a long
3348 distance to create another keyframe and emphasize motion. This creates
3349 a second projector box in the compositor, with a line joining the two
3350 boxes. The joining line is the motion path. If you create more
3351 keyframes, more boxes are created. Once all the desired keyframes are
3352 created, disable automatic keyframe mode.
3354 <p>Now when scrubbing around with the compositor window's slider, the
3355 video projection moves over time. At any point between two keyframes,
3356 the motion path is read for all time before the insertion point and
3357 green for all time after the insertion point. It's debatable if this
3358 is a very useful feature but it makes you feel good to know what
3359 keyframe is going to be affected by the next projector tweek.
3361 <p>Click-drag when automatic keyframes are off to adjust the preceeding
3362 keyframe. If you're halfway between two keyframes, the first projector
3363 box is adjusted while the second one stays the same. Furthermore, the
3364 video doesn't appear to move in step with the first keyframe. This is
3365 because, halfway between two keyframes the projector translation is
3366 interpolated. In order to set the second keyframe you'll need to scrub
3367 after the second keyframe.
3369 <p>By default the motion path is a straight line, but it can be curved
3370 with control points.
<em>Ctrl-drag
</em> to set either the in or out
3371 control point of the preceeding keyframe. Once again, we depart from
3372 The Gimp because
<em>shift
</em> is already used for zoom. After the in
3373 or out control points are extrapolated from the keyframe,
3374 <em>Ctrl-dragging
</em> anywhere in the video adjusts the nearest control
3375 point. A control point can be out of view entirely yet still
3378 <p>When editing the camera translation, the behavior of the camera boxes
3379 is slightly different. Camera automation is normally used for still
3380 photo panning. The current camera box doesn't move during a drag, but
3381 if multiple keyframes are set, every camera box except the current
3382 keyframe appears to move. This is because the camera display shows
3383 every other camera position relative to the current one.
3385 <p>The situation becomes more intuitive if you bend the motion path
3386 between two keyframes and scrub between the two keyframes. The
3387 division between red and green, the current position between the
3388 keyframes, is always centered while the camera boxes move.
3391 Node:
<a name=
"EDITING%20KEYFRAMES">EDITING KEYFRAMES
</a>,
3392 Previous:
<a rel=previous accesskey=p
href=
"#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES
</a>,
3393 Up:
<a rel=up accesskey=u
href=
"#KEYFRAMES">KEYFRAMES
</a>
3396 <h3>EDITING KEYFRAMES
</h3>
3398 <p>Keyframes can be shifted around and moved between tracks on the
3399 timeline using similar cut and paste operations to editing media. Only
3400 the keyframes selected in the
<em>view
</em> menu are affected by keyframe
3401 editing operations, however.
3403 <p>The most popular keyframe editing operation is replication of some
3404 curve from one track to the other, to make a stereo pair. The first
3405 step is to solo the source track's record
<img src=
"recordpatch_up.png" alt=
"recordpatch_up.png"> patch
3406 by
<em>shift-clicking
</em> on it. Then either set in/out points or
3407 highlight the desired region of keyframes. Go to
<em>keyframes-
>copy
3408 keyframes
</em> to copy them to the clipboard. Solo the destination track's
3409 record
<img src=
"recordpatch_up.png" alt=
"recordpatch_up.png"> patch by
<em>shift-clicking
</em> on it and
3410 go to
<em>keyframes-
>paste keyframes
</em> to paste the clipboard.
3412 <p>The media editing commands are mapped to the keyframe editing commands
3413 by using the
<em>shift
</em> key instead of just the keyboard shortcut.
3415 <p>This leads to the most complicated part of keyframe editing, the
3416 default keyframe. Remember that when no keyframes are set at all,
3417 there is still a default keyframe which stores a global parameter for
3418 the entire duration. The default keyframe isn't drawn because it
3419 always exists. What if the default keyframe is a good value which you
3420 want to transpose between other non-default keyframes? The
3421 <em>keyframes-
>copy default keyframe
</em> and
<em>keyframes-
>paste
3422 default keyframe
</em> allow conversion of the default keyframe to a
3423 non-default keyframe.
3425 <p><em>Keyframes-
>copy default keyframe
</em> copies the default keyframe to
3426 the clipboard, no matter what region of the timeline is selected. The
3427 <em>keyframes-
>paste keyframes
</em> function may then be used to paste
3428 the clipboard as a non-default keyframe.
3430 <p>If you've copied a non-default keyframe, it can be stored as the
3431 default keyframe by calling
<em>keyframes-
>paste default keyframe
</em>.
3432 After using paste default keyframe to convert a non-default keyframe
3433 into a default keyframe, you won't see the value of the default
3434 keyframe reflected until all the non-default keyframes are removed.
3436 <p>Finally, there is a convenient way to delete keyframes besides
3437 selecting a region and calling
<em>keyframes-
>clear keyframes
</em>.
3438 Merely click-drag a keyframe before its preceeding keyframe or after
3439 its following keyframe on the track.
3442 Node:
<a name=
"CAPTURING%20MEDIA">CAPTURING MEDIA
</a>,
3443 Next:
<a rel=next accesskey=n
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>,
3444 Previous:
<a rel=previous accesskey=p
href=
"#KEYFRAMES">KEYFRAMES
</a>,
3445 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
3448 <h2>CAPTURING MEDIA
</h2>
3450 <p>Ideally, all media would be stored on hard drives, CD-ROM, flash, or
3451 DVD and loading it into Cinelerra would be a matter of loading a file.
3452 In reality, very few sources of media can be accessed like a filesystem
3453 but instead rely on tape transport mechanisms and dumb I/O mechanisms
3454 to transfer the data to computers. These media types are imported into
3455 Cinelerra through the Record dialog.
3457 <p>The first step in recording is to configure the input device. In
3458 <em>Settings-
>preferences
</em> are a number of recording parameters
3459 described in configuration See
<a href=
"#RECORDING">RECORDING
</a>. These parameters apply to
3460 recording no matter what the project settings are, because the
3461 recording parameters are usually the maximum capability of the
3462 recording hardware while project settings come and go.
3464 <p>Go to
<em>File-
>record
</em> to record a dumb I/O source. This prompts
3465 for an output format much like rendering does. Once that's done, the
3466 record window and the record monitor pop up.
3468 <p>The record window has discrete sections. While many parameters change
3469 depending on if the file has audio or video, the discrete sections are
3475 The output format area describes the format of the output file and the
3476 current position within it.
3479 The edit batch area lets you change parameters in the current batch.
3482 The transport controls start and stop recording different ways.
3485 The batch list displays all the defined batches.
3488 The confirmation area lets you determine how the output files are
3489 imported into the timeline and quit.
3493 <img src=
"recording.png" alt=
"recording.png">
3496 <p><em>Recording window areas
</em>
3498 <p>Recording in Cinelerra is organized around batches. A batch
3499 essentially defines a distinct output file for the recording. For now
3500 you can ignore the batch concept entirely and record merely by hitting
3501 the record button
<img src=
"record.png" alt=
"record.png">.
3503 <p>The record button opens the current output file if it isn't opened and
3504 writes captured data to it. Use the stop button to stop the
3505 recording. Recording can be resumed with the record button without
3506 erasing the file at this point. In the case of a video file, there is
3507 a single frame record button
<img src=
"singleframe.png" alt=
"singleframe.png"> which records a single
3510 <p>When enough media is recorded, choose an insertion method from the
3511 <em>Insertion Strategy
</em> menu and hit
<em>close
</em>.
3514 <li><a accesskey=
1 href=
"#BATCHES">BATCHES
</a>:
3515 <li><a accesskey=
2 href=
"#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION
</a>:
3519 Node:
<a name=
"BATCHES">BATCHES
</a>,
3520 Next:
<a rel=next accesskey=n
href=
"#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION
</a>,
3521 Up:
<a rel=up accesskey=u
href=
"#CAPTURING%20MEDIA">CAPTURING MEDIA
</a>
3526 <p>Now we come to the concept of batches. Batches try to make the dumb
3527 I/O look more like a filesystem. Batches are traditionally used to
3528 divide tape into different programs and save the different programs as
3529 different files instead of recording straight through an entire tape.
3530 Because of the high cost of developing frame-accurate deck control
3531 mechanisms, the only use of batches now is recording different programs
3532 during different times of day. This is still useful for recording TV
3533 shows or time lapse movies as anyone who can't afford proper appliances
3536 <p>The record window supports a list of batches and two recording modes:
3537 interactive and batch recording. Interactive recording happens when
3538 the record button is pressed. Interactive recording starts immediately
3539 and uses the current batch to determine everything except start time.
3540 By default, the current batch is configured to behave like tape.
3542 <p>Batch recording happens when the
<em>start
</em> button is pressed. In
3543 batch recording, the
<em>start time
</em> is the time the batch starts
3546 <p>First, you'll want to create some batches. Each batch has certain
3547 parameters and methods of adjustment.
3552 <em>On
</em> determines whether the batch is included in batch recording
3553 operations. Click the list row under
<em>On
</em> to enable or disable
3557 <em>Path
</em> is the file the batch is going to be recorded to. The
3558 filename specified in the record dialog is the name of the first batch,
3559 to simplify interactive recording, but the filename may be changed in
3560 the record window for any batch in the
<em>edit batch
</em> area.
3563 <em>News
</em> shows whether the file exists or not. This is a very
3564 important attribute since there is no confirmation dialog if the file
3565 exists. The first time you hit record, the file is opened. If the
3566 file exists at this point it's erased. News says
<em>File exists
</em> if
3567 it exists and
<em>OK
</em> if it doesn't. Every time you resume recording
3568 in the same batch, the news should say
<em>Open
</em>, indicating the file
3569 is already opened and won't be erased in the next record button press.
3571 <p>If you change out of the current batch after recording, the file is
3572 closed. Next time you change into the batch, the file will be erased.
3575 <em>Start time
</em> is the
24 hour time of day the batch will start
3576 recording if in batch mode. The start time may become a time of tape
3577 and reel number if deck control is implemented but for now it's a time
3581 <em>Duration
</em> is the length of the batch. It only has meaning if the
3582 <em>Mode
</em> of the batch is
<em>Timed
</em>. Once the recording length
3583 reaches
<em>duration
</em> the recording stops, whether in interactive or
3587 <em>Source
</em> has meaning only when the capturing hardware has multiple
3588 sources. Usually the source is a tuner channel or input. When the
3589 current batch finishes and the next batch begins recording, the source
3590 is changed to what the next batch is set to. This way multiple TV
3591 stations can be recorded at different times.
3595 <p>The record window has a notion of the
<em>current batch
</em>. The
3596 current batch is not the same as the batch which is highlighted in the
3597 batch list. The current batch text is colored red in the batch list.
3598 The highlighted batch is merely displayed in the edit batch section for
3601 <p>By coloring the current batch red, any batch can be edited by
3602 highlighting it, without changing the batch to be recorded.
3604 <p>All recording operations take place in the current batch. If there
3605 are multiple batches, highlight the desired batch and hit
3606 <em>activate
</em> to make it the current batch. If the
<em>start
</em>
3607 button is pressed, the current batch flashes to indicate it's waiting
3608 for the start time in batch mode. If the
<em>record
</em> button is
3609 pressed, the current batch is recorded immediately in interactive mode.
3611 <p>In batch and interactive recording modes, when the current batch
3612 finishes recording the next batch is activated and performed. All
3613 future recording is done in batch mode. When the first batch finishes,
3614 the next batch flashes until its start time is reached.
3616 <p>Interrupt either the batch or the interactive operation by hitting the
3619 <p>Finally there is the
<img src=
"rewind.png" alt=
"rewind.png"> rewind button. In either
3620 interactive or batch recording, the rewind button causes the current
3621 batch to close its file. The next recording operation in the current
3622 batch deletes the file.
3625 Node:
<a name=
"EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION
</a>,
3626 Previous:
<a rel=previous accesskey=p
href=
"#BATCHES">BATCHES
</a>,
3627 Up:
<a rel=up accesskey=u
href=
"#CAPTURING%20MEDIA">CAPTURING MEDIA
</a>
3630 <h3>EDITING TUNER INFORMATION
</h3>
3632 <p>Sometimes in the recording process and the configuration process,
3633 you'll need to define and select tuner channels to either record or
3634 play back to. In the case of the Video4Linux and Buz recording
3635 drivers, tuner channels define the source. When the Buz driver is also
3636 used for playback, tuner channels define the destination.
3638 <p>Defining tuner channels is accomplished by pushing the
<img src=
"channel.png" alt=
"channel.png">
3639 channel button. This brings up the channel editing window. In this
3640 window you add, edit, and sort channels. Also, for certain video
3641 drivers, you can adjust the picture quality.
3643 <p>The
<em>add
</em> operation brings up a channel editing box. The title of
3644 the channel appears in the channel list. The source of the channel is
3645 the entry in the physical tuner's frequency table corresponding to the
3648 <p>Fine tuning in the channel edit dialog adjusts the physical frequency
3649 slightly if the driver supports it. The norm and frequency table
3650 together define which frequency table is selected for defining
3651 sources. If the device supports multiple inputs, the input menu
3654 <p>To sort channels, highlight the channel in the list and push
<em>move
3655 up
</em> or
<em>move down
</em> to move it.
3657 <p>Once channels are defined, the
<em>source
</em> item in the record window
3658 can be used to select channels for recording. The same channel
3659 selecting ability also exists in the record monitor window. Be aware
3660 channel selections in the record monitor window and the record window
3661 are stored in the current batch.
3663 <p>For some drivers an option to
<b>swap fields
</b> may be visible. These
3664 drivers don't get the field order right every time without human
3665 intervention. Toggle this to get the odd and even lines to record in
3669 Node:
<a name=
"IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>,
3670 Next:
<a rel=next accesskey=n
href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>,
3671 Previous:
<a rel=previous accesskey=p
href=
"#CAPTURING%20MEDIA">CAPTURING MEDIA
</a>,
3672 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
3675 <h2>IMPROVING PERFORMANCE
</h2>
3678 <li><a accesskey=
1 href=
"#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE
</a>:
3679 <li><a accesskey=
2 href=
"#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS
</a>:
3680 <li><a accesskey=
3 href=
"#MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER
</a>:
3681 <li><a accesskey=
4 href=
"#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY
</a>:
3682 <li><a accesskey=
5 href=
"#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE
</a>:
3683 <li><a accesskey=
6 href=
"#DISABLING%20CRON">DISABLING CRON
</a>:
3684 <li><a accesskey=
7 href=
"#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY
</a>:
3685 <li><a accesskey=
8 href=
"#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS
</a>:
3686 <li><a accesskey=
9 href=
"#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM
</a>:
3687 <li><a href=
"#IMPROVING%20ZORAN%20VIDEO">IMPROVING ZORAN VIDEO
</a>:
3691 Node:
<a name=
"DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE
</a>,
3692 Next:
<a rel=next accesskey=n
href=
"#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS
</a>,
3693 Up:
<a rel=up accesskey=u
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
3696 <h3>DISABLING SWAP SPACE
</h3>
3698 <p>On systems with lots of memory, Cinelerra sometimes runs better without
3699 a swap space. If you have
4 GB of RAM, you're probably better off
3700 without a swap space. If you have
512MB of RAM, you should keep the
3701 swap. If you want to do recording, you should probably disable swap
3702 space in any case. There's a reason for this. Linux only allows half
3703 the available memory to be used. Beyond that, it starts searching for
3704 free pages to swap, in order to cache more disk access. In a
4 GB
3705 system, you start waiting for page swaps after using only
2 GB.
3707 <p>The question then is how to make Linux run without a swap space.
3708 Theoretically it should be a matter of running
3713 <p>Unfortunately, without a swap space the
<b>kswapd
</b> tasklet normally
3714 spins at
100%. To eliminate this problem, edit
<b>linux/mm/vmscan.c
</b>.
3715 In this file, put a line saying
<b>return
0;
</b> before it says
3722 <p>Then recompile the kernel.
3725 Node:
<a name=
"ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS
</a>,
3726 Next:
<a rel=next accesskey=n
href=
"#MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER
</a>,
3727 Previous:
<a rel=previous accesskey=p
href=
"#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE
</a>,
3728 Up:
<a rel=up accesskey=u
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
3731 <h3>ENLARGING SOUND BUFFERS
</h3>
3733 <p>In order to improve realtime performance, the audio buffers for all the
3734 Linux sound drivers were limited from
127k to
64k. For recording audio
3735 and video simultaneously and for most audio recording this causes
3736 dropouts. Application of low latency and preemtible kernel patches
3737 make it possible to record more audio recordings but it doesn't improve
3738 recording video with audio. This is where you need to hack the kernel.
3740 <p>This only applies to the OSS version of the Soundblaster Live driver.
3741 Since every sound card and every sound driver derivative has a
3742 different implementation you'll need to do some searching for other
3743 sound cards. Edit
<b>linux/drivers/sound/emu10k1/audio.c
</b>
3747 <br><pre>if (bufsize
>=
0x10000)
3752 <br><pre>if (bufsize
> 0x40000)
3757 <br><pre> for (i =
0; i
< 8; i++)
3758 for (j =
0; j
< 4; j++)
3763 <br><pre> for (i =
0; i
< 16; i++)
3764 for (j =
0; j
< 4; j++)
3767 <p>In
<b>linux/drivers/sound/emu10k1/hwaccess.h
</b>
3771 <p><b>#define MAXBUFSIZE
65536</b>
3775 <p><b>#define MAXBUFSIZE
262144</b>
3777 <p>Finally, in
<b>linux/drivers/sound/emu10k1/cardwi.h
</b>
3779 <p><b>#define WAVEIN_MAXBUFSIZE
65536</b>
3783 <p><b>#define WAVEIN_MAXBUFSIZE
262144</b>
3785 <p>Then recompile the kernel modules.
3788 Node:
<a name=
"MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER
</a>,
3789 Next:
<a rel=next accesskey=n
href=
"#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY
</a>,
3790 Previous:
<a rel=previous accesskey=p
href=
"#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS
</a>,
3791 Up:
<a rel=up accesskey=u
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
3794 <h3>MAKING XFree86 FASTER
</h3>
3796 <p>XFree86 by default can't display Cinelerra's advanced pixmap rendering
3797 very fast. The X server stalls during list box drawing. Fix this by
3798 adding a line to your XF86Config* files.
3800 <p>In the
<b>Section
"Device"</b> area, add a line saying:
3802 <p><b>Option
"XaaNoOffscreenPixmaps"</b>
3804 <p>and restart the X server.
3807 Node:
<a name=
"FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY
</a>,
3808 Next:
<a rel=next accesskey=n
href=
"#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE
</a>,
3809 Previous:
<a rel=previous accesskey=p
href=
"#MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER
</a>,
3810 Up:
<a rel=up accesskey=u
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
3813 <h3>FREEING MORE SHARED MEMORY
</h3>
3815 <p>The Linux kernel only allows
32MB of shared memory to be allocated by
3816 default. This needs to be increased to do anything useful. Run the
3819 <p><b>echo
"0x7fffffff" > /proc/sys/kernel/shmmax
</b>
3822 Node:
<a name=
"SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE
</a>,
3823 Next:
<a rel=next accesskey=n
href=
"#DISABLING%20CRON">DISABLING CRON
</a>,
3824 Previous:
<a rel=previous accesskey=p
href=
"#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY
</a>,
3825 Up:
<a rel=up accesskey=u
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
3828 <h3>SPEEDING UP THE HARD DRIVE
</h3>
3830 <p>This is a very popular command sequence among Linux gurus, which is not
3831 done by default on Linux distributions.
3833 <p><b>hdparm -c3 -d1 -u1 -k1 /dev/hda
</b>
3835 <p><b>-c3
</b> puts the hard drive into
32 bit I/O with sync. This normally
3836 doesn't work due to inept kernel support for most IDE controllers. If
3837 you get lost interrupt or SeekComplete errors, quickly use
<b>-c0
</b>
3838 instead of
<b>-c3
</b> in your command.
3840 <p><b>-d1
</b> enables DMA of course. This frees up the CPU partially during
3843 <p><b>-u1
</b> allows multiple interrupts to be handled during hard drive
3844 transactions. This frees up even more CPU time.
3846 <p><b>-k1
</b> prevents Linux from resetting your settings in case of a
3850 Node:
<a name=
"DISABLING%20CRON">DISABLING CRON
</a>,
3851 Next:
<a rel=next accesskey=n
href=
"#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY
</a>,
3852 Previous:
<a rel=previous accesskey=p
href=
"#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE
</a>,
3853 Up:
<a rel=up accesskey=u
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
3856 <h3>DISABLING CRON
</h3>
3858 <p>Linux runs some daily operations like compressing man pages. These may
3859 be acceptable background tasks while compiling or word processing but
3860 not while playing video. Disable these operations by editing
3861 <b>/etc/rc.d/init.d/anacron
</b>.
3863 <p>Put
<b>exit
</b> before the first line not beginning in
<b>#
</b>.
3865 <p>In
<b>/etc/rc.d/init.d/crond
</b> put
<b>exit
</b> before the first line not
3866 beginning in
<b>#
</b>. Then make like Win
2000 and reboot.
3868 <p>You can't use the
<b>at
</b> command anymore, but who uses that command
3872 Node:
<a name=
"REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY
</a>,
3873 Next:
<a rel=next accesskey=n
href=
"#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS
</a>,
3874 Previous:
<a rel=previous accesskey=p
href=
"#DISABLING%20CRON">DISABLING CRON
</a>,
3875 Up:
<a rel=up accesskey=u
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
3878 <h3>REDUCING USB MOUSE SENSITIVITY
</h3>
3880 <p>Gamers like high resolution mice, but this can be painful for precisely
3881 positioning the mouse on a timeline or video screen. XFree86 once
3882 allowed you to reduce PS/
2 mouse sensitivity using commands like
3883 <b>xset m
1 1</b> but you're out of luck with USB mice or KVM's.
3885 <p>We have a way to reduce USB mouse sensitivity. Edit
3886 <b>/usr/src/linux/drivers/input/mousedev.c
</b>.
3888 <p>After the line saying
3890 <br><pre>struct mousedev_list {
3895 <br><pre>#define DOWNSAMPLE_N
100
3896 #define DOWNSAMPLE_D
350
3897 int x_accum, y_accum;
3900 <p>Next, the section which says something like:
3902 <br><pre>case EV_REL:
3904 case REL_X: list-
>dx += value; break;
3905 case REL_Y: list-
>dy -= value; break;
3906 case REL_WHEEL: if (list-
>mode) list-
>dz -= value; break;
3911 <p>must be replaced by
3917 list-
>x_accum += value * DOWNSAMPLE_N;
3918 list-
>dx += (int)list-
>x_accum / (int)DOWNSAMPLE_D;
3919 list-
>x_accum -= ((int)list-
>x_accum / (int)DOWNSAMPLE_D) * (int)DOWNSAMPLE_D;
3922 list-
>y_accum += value * DOWNSAMPLE_N;
3923 list-
>dy -= (int)list-
>y_accum / (int)DOWNSAMPLE_D;
3924 list-
>y_accum -= ((int)list-
>y_accum / (int)DOWNSAMPLE_D) * (int)DOWNSAMPLE_D;
3926 case REL_WHEEL: if (list-
>mode) list-
>dz -= value; break;
3934 <p>Change the value of
<b>DOWNSAMPLE_N
</b> to change the mouse sensitivity.
3937 Node:
<a name=
"ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS
</a>,
3938 Next:
<a rel=next accesskey=n
href=
"#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM
</a>,
3939 Previous:
<a rel=previous accesskey=p
href=
"#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY
</a>,
3940 Up:
<a rel=up accesskey=u
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
3943 <h3>ASSORTED X TWEEKS
</h3>
3945 <p>Screen blanking is really annoying, unless you're fabulously rich and
3946 can afford to leave your monitor on
24 hours a day without power saving
3947 mode. In
<b>/etc/X11/xinit/xinitrc
</b> put
3953 <p>before the first
<b>if
</b> statement.
3955 <p>How about those windows keys which no Linux distribution even thinks to
3956 use. You can make the window keys provide ALT functionality by editing
3957 <b>/etc/X11/Xmodmap
</b>. Append the following to it.
3959 <br><pre>keycode
115 = Hyper_L
3960 keycode
116 = Hyper_R
3965 <p>The actual changes to a window manager to make it recognize window keys
3966 for ALT are complex. In
<b>FVWM
</b> at least, you can edit
3967 <b>/etc/X11/fvwm/system.fvwm2rc
</b> and put
3969 <br><pre>Mouse
0 T A move-and-raise-or-raiselower
3973 Mouse
0 F A resize-or-raiselower
3974 Mouse
0 S A resize-or-raiselower
3977 <p>in place of the default section for moving and resizing. Your best
3978 performance is going to be on FVWM. Other window managers seem to slow
3979 down video with extra event trapping and aren't as efficient in layout.
3982 Node:
<a name=
"SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM
</a>,
3983 Next:
<a rel=next accesskey=n
href=
"#IMPROVING%20ZORAN%20VIDEO">IMPROVING ZORAN VIDEO
</a>,
3984 Previous:
<a rel=previous accesskey=p
href=
"#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS
</a>,
3985 Up:
<a rel=up accesskey=u
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
3988 <h3>SPEEDING UP THE FILE SYSTEM
</h3>
3990 <p>You'll often store video on an expensive, gigantic disk array separate
3991 from your boot disk. You'll thus have to manually install an EXT
3992 filesystem on this disk array, using the
<b>mke2fs
</b> command. By far
3993 the fastest file system is
3996 mke2fs -i
65536 -b
4096 my_device
3997 tune2fs -r0 -c10000 my_device
4001 <p>This has no journaling, reserves as few blocks as possible for
4002 filenames, and accesses the largest amount of data per block possible.
4003 A slightly slower file system, which is easier to recover after power
4007 mke2fs -j -i
65536 -b
4096 my_device
4008 tune2fs -r0 -c10000 my_device
4012 <p>This adds a journal which slows down the writes but makes us immune to
4016 Node:
<a name=
"IMPROVING%20ZORAN%20VIDEO">IMPROVING ZORAN VIDEO
</a>,
4017 Previous:
<a rel=previous accesskey=p
href=
"#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM
</a>,
4018 Up:
<a rel=up accesskey=u
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>
4021 <h3>IMPROVING ZORAN VIDEO
</h3>
4023 <p>Video recorded from the ZORAN inputs is normally unaligned or not
4024 completely encoded on the right. This can be slightly compensated by
4025 adjusting parameters in the driver sourcecode.
4027 <p>In
<b>/usr/src/linux/drivers/media/video/zr36067.h
</b> the structures
4028 defined near line
623 affect alignment. At least for NTSC, the
2.4.20
4029 version of the driver could be improved by changing
4031 <br><pre>static struct tvnorm f60ccir601 = {
858,
720,
57,
788,
525,
480,
16 };
4036 <br><pre>static struct tvnorm f60ccir601 = {
858,
720,
57,
788,
525,
480,
17 };
4039 <p>In
<b>/usr/src/linux/drivers/media/video/bt819.c
</b> more structures near
4040 line
76 affect alignment and encoding.
4044 <br><pre>{
858 -
24,
2,
523,
1,
0x00f8,
0x0000},
4047 <p>could be changed to
4048 <br><pre>{
868 -
24,
2,
523,
1,
0x00f8,
0x0000},
4051 <p>Adjusting these parameters may or may not improve your picture. More
4052 of the time, they'll cause the driver to lock up before capturing
4056 Node:
<a name=
"TROUBLESHOOTING">TROUBLESHOOTING
</a>,
4057 Next:
<a rel=next accesskey=n
href=
"#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA
</a>,
4058 Previous:
<a rel=previous accesskey=p
href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>,
4059 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
4062 <h2>TROUBLESHOOTING
</h2>
4065 <li><a accesskey=
1 href=
"#BUZ%20DRIVER%20CRASHES">BUZ DRIVER CRASHES
</a>:
4066 <li><a accesskey=
2 href=
"#DRAGGING%20IN%20AND%20OUT%20POINTS%20DOESN'T%20WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK
</a>:
4070 Node:
<a name=
"BUZ%20DRIVER%20CRASHES">BUZ DRIVER CRASHES
</a>,
4071 Next:
<a rel=next accesskey=n
href=
"#DRAGGING%20IN%20AND%20OUT%20POINTS%20DOESN'T%20WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK
</a>,
4072 Up:
<a rel=up accesskey=u
href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>
4075 <h3>BUZ DRIVER CRASHES
</h3>
4077 <p>First, Zoran capture boards must be accessed using the
<b>Buz
</b> video
4078 driver in
<b>Preferences-
>Recording
</b> and
<b>Preferences-
>Playback
</b>.
4079 Some performance tweeks are available in another section.
4080 See
<a href=
"#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE
</a>.
4082 <p>Once tweeked, the Buz driver seems to crash if the number of recording
4083 buffers is too high. Make sure
<b>Preferences-
>Recording-
>Frames to
4084 buffer in device
</b> is below
10.
4087 Node:
<a name=
"DRAGGING%20IN%20AND%20OUT%20POINTS%20DOESN'T%20WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK
</a>,
4088 Previous:
<a rel=previous accesskey=p
href=
"#BUZ%20DRIVER%20CRASHES">BUZ DRIVER CRASHES
</a>,
4089 Up:
<a rel=up accesskey=u
href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>
4092 <h3>DRAGGING IN AND OUT POINTS DOESN'T WORK
</h3>
4094 <p>Sometimes there will be two edits really close together. The point
4095 selected for dragging may be next to the indended edit on an edit too
4096 small to see at the current zoom level. Zoom in horizontally.
4099 Node:
<a name=
"SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA
</a>,
4100 Next:
<a rel=next accesskey=n
href=
"#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS
</a>,
4101 Previous:
<a rel=previous accesskey=p
href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>,
4102 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
4105 <h2>SECRETS OF CINELERRA
</h2>
4108 <li><a accesskey=
1 href=
"#DOLBY%20PRO%20LOGIC%20ENCODING">DOLBY PRO LOGIC ENCODING
</a>:
4109 <li><a accesskey=
2 href=
"#ANALOG%20TV%20CLEANING">ANALOG TV CLEANING
</a>:
4110 <li><a accesskey=
3 href=
"#DEFEATING%20INTERLACING">DEFEATING INTERLACING
</a>:
4111 <li><a accesskey=
4 href=
"#MAKING%20VIDEO%20LOOK%20LIKE%20FILM">MAKING VIDEO LOOK LIKE FILM
</a>:
4112 <li><a accesskey=
5 href=
"#CLEARING%20OUT%20HAZE">CLEARING OUT HAZE
</a>:
4116 Node:
<a name=
"DOLBY%20PRO%20LOGIC%20ENCODING">DOLBY PRO LOGIC ENCODING
</a>,
4117 Next:
<a rel=next accesskey=n
href=
"#ANALOG%20TV%20CLEANING">ANALOG TV CLEANING
</a>,
4118 Up:
<a rel=up accesskey=u
href=
"#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA
</a>
4121 <h3>DOLBY PRO LOGIC ENCODING
</h3>
4123 <p>Dolby pro logic is an easy way to output
6 channel audio from a
2
4124 channel soundcard with degraded but useful results. Rudimentary Dolby
4125 pro logic encoding can be achieved with clever usage of the effects.
4127 <p>Create
2 audio tracks with the same audio. Apply
<b>invert audio
</b> to
4128 one track. The signal comes out of the back speakers.
4130 <p>Create a single audio track with monaural audio of a different source.
4131 Center it in the
<b>pan
</b> control. The signal comes out of the center
4134 <p>Create other tracks with different signals and pan them left or right
4135 to put signals in the front left or right speaker.
4137 <p>Finally, if a copy of the signal in the back speakers is desired in any
4138 single front speaker, the signal in the back speakers must be delayed
4139 by at least
0.05 seconds and a single new track should be created. Pan
4140 the new track to orient the signal in the front speakers.
4142 <p>If the same signal is desired in all the speakers except the center
4143 speaker, delay the back speakers by
0.5 seconds and delay either the
4144 front left or front right by
0.2 seconds.
4146 <p>If you want to hear something from the subwoofer, create a new track,
4147 select a range, drop a synthesizer effect, and set the frequency below
4148 60 Hz. The subwoofer merely plays anything below around
60Hz.
4150 <p>Other tricks you can perform to separate the speakers are parametric
4151 equalization to play only selected ranges of frequencies through
4152 different speakers and lowpass filtering to play signals through the
4156 Node:
<a name=
"ANALOG%20TV%20CLEANING">ANALOG TV CLEANING
</a>,
4157 Next:
<a rel=next accesskey=n
href=
"#DEFEATING%20INTERLACING">DEFEATING INTERLACING
</a>,
4158 Previous:
<a rel=previous accesskey=p
href=
"#DOLBY%20PRO%20LOGIC%20ENCODING">DOLBY PRO LOGIC ENCODING
</a>,
4159 Up:
<a rel=up accesskey=u
href=
"#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA
</a>
4162 <h3>ANALOG TV CLEANING
</h3>
4164 <p>Unless you live in a rich nation like China or are a terrorist, you
4165 probably record analog TV more than you record digital TV. The picture
4166 quality on analog TV is horrible but you can do things in Cinelerra to
4167 make it look more like it did in the studio.
4169 <p>First, when capturing the video, capture it in the highest resolution
4170 possible. For Europeans it's
720x576 and for Americans it's
720x480.
4171 Don't bother adjusting the brightness or contrast in the recording
4172 monitor, although maxing out the color is useful. Capture it using
4173 MJPEG or uncompressed Component Video if possible. If those are too
4174 demanding, then capture it using JPEG. RGB should be a last resort.
4176 <p>Now on the timeline use
<b>Settings-
>Format
</b> to set a YUV colorspace.
4177 Drop a
<b>Downsample
</b> effect on the footage. Set it for
4179 <br><pre>Horizontal:
2
4180 Horizontal offset:
0
4190 <p>Use the camera tool to shift the picture up or down a line to remove
4191 the most color interference from the image. This is the difference
4195 <img src=
"cleaning1.png" alt=
"cleaning1.png">
4197 <p>If you have vertical blanking information or crawls which constantly
4198 change in each frame, block them out with the
<b>Mask
</b> tool. This
4199 improves compression ratios.
4201 <p>This is about all you can do without destroying more data than you
4202 would naturally lose in compression. The more invasive cleaning
4203 techniques involve deinterlacing.
4206 Node:
<a name=
"DEFEATING%20INTERLACING">DEFEATING INTERLACING
</a>,
4207 Next:
<a rel=next accesskey=n
href=
"#MAKING%20VIDEO%20LOOK%20LIKE%20FILM">MAKING VIDEO LOOK LIKE FILM
</a>,
4208 Previous:
<a rel=previous accesskey=p
href=
"#ANALOG%20TV%20CLEANING">ANALOG TV CLEANING
</a>,
4209 Up:
<a rel=up accesskey=u
href=
"#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA
</a>
4212 <h3>DEFEATING INTERLACING
</h3>
4214 <p>Interlacing is done on most video sources because it costs too much to
4215 build progressive scanning cameras and progressive scanning CRT's.
4216 Many a consumer has been dissapointed to spend
5 paychecks on a
4217 camcorder and discover what horrible jagged images it produces on a
4220 <p>As for progressive scanning camcorders, forget it. Cost factors are
4221 probably going to keep progressive scanning cameras from ever equalling
4222 the spatial resolution of interlaced cameras. Interlacing is here to
4223 stay. That's why they made deinterlacing effects in Cinelerra.
4225 <p>We don't believe there has ever been a perfect deinterlacing effect.
4226 They're either irreversible or don't work. Cinelerra cuts down the
4227 middle by providing deinterlacing tools that are irreversible sometimes
4228 and don't work sometimes but are neither one or the other.
4230 <p><b>Line Doubling
</b>
4232 <p>This one is done by the
<b>Deinterlace
</b> effect when set to
<b>Odd
4233 lines
</b> or
<b>Even lines
</b>. When applied to a track it reduces the
4234 vertical resolution by
1/
2 and gives you progressive frames with
4235 stairstepping. This is only useful when followed by a scale effect
4236 which reduces the image to half its size.
4238 <p><b>Line averaging
</b>
4240 <p>The
<b>Deinterlace
</b> effect when set to
<b>Average even lines
</b> or
4241 <b>Average odd lines
</b> does exactly what line doubling does except
4242 instead of making straight copies of the lines it makes averages of the
4243 lines. This is actually useful for all scaling.
4245 <p>There's an option for adaptive line averaging which selects which lines
4246 to line average and which lines to leave interlaced based on the
4247 difference between the lines. It doesn't work.
4249 <p><b>Inverse Telecine
</b>
4251 <p>This is the most effective deinterlacing tool when the footage is an
4252 NTSC TV broadcast of a film. Here the image was converted from
24fps
4253 to
30fps by interlacing in a predictable pattern, which the
<b>Inverse
4254 Telecine
</b> effect can detect. It shifts fields forwards and backwards
4255 to get progressive frames of the same resolution as the original, most
4258 <p>The timing is going to be jittery because of this but it's progressive.
4260 <p>There is only one useful setting for
<b>Inverse Telecine
</b>:
4262 <br><pre>Pattern offset:
0
4270 <p>The other options are only there because one day there may be some
4271 progressive scan camera which produces pulldown in the same frame of
4272 reference throughout entire tapes.
4274 <p><b>Time base correction
</b>
4276 <p>The first three tools either destroy footage irreversibly or don't work
4277 sometimes.
<b>Time base correction
</b> is last because it's the perfect
4278 deinterlacing tool. It leaves the footage intact. It doesn't reduce
4279 resolution, perceptually at least. It doesn't cause jittery timing.
4281 <p>The
<b>Frames to Fields
</b> effect converts each frame to two frames, so
4282 it must be used on a timeline whose project frame rate is twice the
4283 footage's frame rate. In the first frame it puts a line averaged copy
4284 of the even lines. In the second frame it puts a line averaged copy of
4285 the odd lines. When played back at full framerates it gives the
4286 illusion of progressive video with no loss of detail.
4288 <p>Best of all, this effect can be reversed with the
<b>Fields to frames
</b>
4289 nonrealtime effect. That one combines two frames of footage back into
4290 the one original interlaced frame of half the framerate.
4292 <p>Unfortunately, the output of
<b>Frames to Fields
</b> can't be compressed
4293 as efficiently as the original because it introduces vertical twitter
4294 and a super high framerate.
4296 <p>Interlaced
29.97fps footage can be made to look like film by applying
4297 <b>Frames to Fields
</b> and then reducing the project frame rate of the
4298 resulting
59.94fps footage to
23.97fps. This produces no timing jitter
4299 and the occasional odd field gives the illusion of more detail than
4300 there would be if you just line averaged the original.
4303 Node:
<a name=
"MAKING%20VIDEO%20LOOK%20LIKE%20FILM">MAKING VIDEO LOOK LIKE FILM
</a>,
4304 Next:
<a rel=next accesskey=n
href=
"#CLEARING%20OUT%20HAZE">CLEARING OUT HAZE
</a>,
4305 Previous:
<a rel=previous accesskey=p
href=
"#DEFEATING%20INTERLACING">DEFEATING INTERLACING
</a>,
4306 Up:
<a rel=up accesskey=u
href=
"#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA
</a>
4309 <h3>MAKING VIDEO LOOK LIKE FILM
</h3>
4311 <p>Video sweetening is constantly getting better. Lately the best thing
4312 you can do for dirt cheap consumer camcorder video is to turn it into
4313 progressive
24fps output. While you can't really do that, you can get
4314 pretty close for the money. Mind you, this procedure can degrade high
4315 quality video just as easily as it improves low quality video. It
4316 should only be used for low quality video.
4321 Step
1 - Set project framerate to twice the video framerate.
4324 Step
2 - Apply a
<b>Sharpen
</b> effect. Set it to sharpness:
25, no
4325 interlacing, and horizontal only.
4328 Step
3 - Drop a
<b>Frame to Fields
</b> effect on the same track. Set
4329 Average Empty Rows on and play through the video a few times to figure
4330 out which field is first. If the wrong field is first, the motion is
4331 shaky. Secondly, any editing in the doubled frame rate may now screw
4332 up the field order. We're still figuring out the easiest way to
4333 support warnings for field glitches but for now you need to go back to
4334 the normal framerate to do editing or play test to make sure the fields
4338 Step
4 - Render just the video to the highest quality file possible.
4341 Step
5 - Import the video back to a new track. Set the project
4342 framerate to
24. The new track should now display more filmish and
4343 sharper images than the original footage.
4347 <p>This entire procedure could be implemented in one nonrealtime effect,
4348 but the biggest problem with that is you'll most often want to keep the
4349 field based output and the
24fps output for posterity. A nonrealtime
4350 effect would require all that processing just for the
24fps copy.
4351 Still debating that one.
4354 Node:
<a name=
"CLEARING%20OUT%20HAZE">CLEARING OUT HAZE
</a>,
4355 Previous:
<a rel=previous accesskey=p
href=
"#MAKING%20VIDEO%20LOOK%20LIKE%20FILM">MAKING VIDEO LOOK LIKE FILM
</a>,
4356 Up:
<a rel=up accesskey=u
href=
"#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA
</a>
4359 <h3>CLEARING OUT HAZE
</h3>
4361 <p>Let's face it, if you're employed you live in Silicon Valley. As such
4362 you probably photograph a lot of haze and never see blue sky ever.
4363 Even if you can afford to briefly go somewhere where there is blue sky,
4364 horizon shots usually can stand for more depth. This is what the
4365 <b>gradient effect
</b> is for.
4367 <p>Drop the gradient effect on hazy tracks. Set the following parameters:
4372 Inner color: blue
100% alpha
4373 Outer color: blue
0% alpha
4376 <p>It's important to set the
0% alpha color to blue even though it's
0%
4377 alpha. This is a generally applicable setting for the gradient. Some
4378 scenes may work better with orange or brown for an evening feel.
4381 Node:
<a name=
"EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS
</a>,
4382 Next:
<a rel=next accesskey=n
href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>,
4383 Previous:
<a rel=previous accesskey=p
href=
"#SECRETS%20OF%20CINELERRA">SECRETS OF CINELERRA
</a>,
4384 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
4387 <h2>EFFECT DESCRIPTIONS
</h2>
4389 <p>Most effects in Cinelerra can be figured out just by using them and
4390 tweeking. Here are brief descriptions of effects which you might not
4391 utilize fully by mere experimentation.
4394 <li><a accesskey=
1 href=
"#CHROMA%20KEY">CHROMA KEY
</a>:
4395 <li><a accesskey=
2 href=
"#HISTOGRAM">HISTOGRAM
</a>:
4396 <li><a accesskey=
3 href=
"#TIME%20AVERAGE">TIME AVERAGE
</a>:
4397 <li><a accesskey=
4 href=
"#VIDEO%20SCOPE">VIDEO SCOPE
</a>:
4398 <li><a accesskey=
5 href=
"#DEINTERLACE">DEINTERLACE
</a>:
4402 Node:
<a name=
"CHROMA%20KEY">CHROMA KEY
</a>,
4403 Next:
<a rel=next accesskey=n
href=
"#HISTOGRAM">HISTOGRAM
</a>,
4404 Up:
<a rel=up accesskey=u
href=
"#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS
</a>
4409 <p>This effect replaces the selected color or intensity with black if
4410 there is no alpha channel and replaces it with transparency if there is
4411 an alpha channel. The selection of color model is important.
4413 <p>Chroma key uses either the value or the hue to determine what is
4414 erased. If this parameter is within a certain threshold it's erased.
4415 It's not a simple on/off switch, however. As the selected parameter
4416 approaches the edge of the threshold, it gradually gets erased if the
4417 slope is low or is completely erased if the slope is high.
4419 <p>The slope tries to soften the edges of the chroma key but it doesn't
4420 work well for compressed sources. A popular softening technique is to
4421 use a maximum slope and chain a blur effect below the chroma key effect
4422 to blur just the alpha.
4425 Node:
<a name=
"HISTOGRAM">HISTOGRAM
</a>,
4426 Next:
<a rel=next accesskey=n
href=
"#TIME%20AVERAGE">TIME AVERAGE
</a>,
4427 Previous:
<a rel=previous accesskey=p
href=
"#CHROMA%20KEY">CHROMA KEY
</a>,
4428 Up:
<a rel=up accesskey=u
href=
"#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS
</a>
4433 <p>This shows the number of occurances of each value of a certain color
4434 channel. It is always performed in
16 bit RGB regardless of the
4435 project colorspace. Use the upper gradient to determine the range of
4436 input intensities to be expanded to the output. Use the lower gradient
4437 to determine the range of output intensities to target the expansion
4438 to. Enable
<em>automatic
</em> mode to have the histogram calculate
4439 automatic input values for every frame. The threshold is only used in
4440 automatic mode and determines how sensitive to the upper and lower
4441 boundaries of the histogram the automatic gain should be.
4444 Node:
<a name=
"TIME%20AVERAGE">TIME AVERAGE
</a>,
4445 Next:
<a rel=next accesskey=n
href=
"#VIDEO%20SCOPE">VIDEO SCOPE
</a>,
4446 Previous:
<a rel=previous accesskey=p
href=
"#HISTOGRAM">HISTOGRAM
</a>,
4447 Up:
<a rel=up accesskey=u
href=
"#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS
</a>
4450 <h3>TIME AVERAGE
</h3>
4452 <p>Time average is one effect which has many uses besides creating nifty
4453 trail patterns of moving objects. It's main use is reducing noise in
4454 still images. Merely point a video camera at a stationary subject for
4455 30 frames, capture the frames, and average them using TIME AVERAGE and
4456 you'll have a super high quality print. In
16 bit colormodels, time
4457 average can increase the dynamic range of lousy cameras.
4460 Node:
<a name=
"VIDEO%20SCOPE">VIDEO SCOPE
</a>,
4461 Next:
<a rel=next accesskey=n
href=
"#DEINTERLACE">DEINTERLACE
</a>,
4462 Previous:
<a rel=previous accesskey=p
href=
"#TIME%20AVERAGE">TIME AVERAGE
</a>,
4463 Up:
<a rel=up accesskey=u
href=
"#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS
</a>
4466 <h3>VIDEO SCOPE
</h3>
4468 <p>The video scope plots two views of the image. One view plots the
4469 intensity of each pixel against horizontal position. They call this
4470 the WAVEFORM. Another view translates hue to angle and saturation to
4471 radius for each pixel. They call this the VECTORSCOPE.
4473 <p>The vectorscope is actually very useful for determining if an image is
4474 saturated. When adjusting saturation, it's important to watch the
4475 vectorscope to make sure pixels don't extend past the
100 radius.
4477 <p>The waveform allows you to make sure image data extends from complete
4478 black to complete white while adjusting the brightness/contrast.
4480 <p>Some thought is being given to having a video scope for recording.
4481 Unfortunately, this would require a lot of variations of the video
4482 scope for all the different video drivers.
4485 Node:
<a name=
"DEINTERLACE">DEINTERLACE
</a>,
4486 Previous:
<a rel=previous accesskey=p
href=
"#VIDEO%20SCOPE">VIDEO SCOPE
</a>,
4487 Up:
<a rel=up accesskey=u
href=
"#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS
</a>
4490 <h3>DEINTERLACE
</h3>
4492 <p>The deinterlace effect has evolved over the years to deinterlacing and
4493 a whole lot more. In fact two of the deinterlacing methods,
<b>Inverse
4494 Telecine
</b> and
<b>Frames to Fields
</b>, are separate effects. The
4495 deinterlace effect offers several variations of line replication to
4496 eliminate comb artifacts in interlaced video. It also has some line
4497 swapping tools to fix improperly captured video or make the result of a
4498 reverse effect display fields in the right order.
4501 Node:
<a name=
"PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>,
4502 Next:
<a rel=next accesskey=n
href=
"#RELEASE%20NOTES">RELEASE NOTES
</a>,
4503 Previous:
<a rel=previous accesskey=p
href=
"#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS
</a>,
4504 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
4507 <h2>PLUGIN AUTHORING
</h2>
4509 <p>The plugin API in Cinelerra dates back to
1997, before the LADSPA and
4510 before VST became popular. It's fundamentally the same as it was in
4511 1997, with minor modifications to handle keyframes and GUI feedback.
4512 Unfortunately, the GUI is not abstracted from the programmer. This
4513 allows the programmer to use whatever toolkit they want and allows more
4514 flexibility in appearance but it costs more.
4516 <p>There are several types of plugins, each with a common procedure of
4517 implementation and specific changes for that particular type. The
4518 easiest way to implement a plugin is to take the simplest existing one
4519 out of the group and rename the symbols.
4522 <li><a accesskey=
1 href=
"#COMMON%20PROCEDURES">COMMON PROCEDURES
</a>:
4523 <li><a accesskey=
2 href=
"#REALTIME%20PLUGINS">REALTIME PLUGINS
</a>:
4524 <li><a accesskey=
3 href=
"#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS
</a>:
4525 <li><a accesskey=
4 href=
"#AUDIO%20PLUGINS">AUDIO PLUGINS
</a>:
4526 <li><a accesskey=
5 href=
"#VIDEO%20PLUGINS">VIDEO PLUGINS
</a>:
4527 <li><a accesskey=
6 href=
"#TRANSITION%20PLUGINS">TRANSITION PLUGINS
</a>:
4528 <li><a accesskey=
7 href=
"#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</a>:
4529 <li><a accesskey=
8 href=
"#PLUGIN%20QUERIES">PLUGIN QUERIES
</a>:
4533 Node:
<a name=
"COMMON%20PROCEDURES">COMMON PROCEDURES
</a>,
4534 Next:
<a rel=next accesskey=n
href=
"#REALTIME%20PLUGINS">REALTIME PLUGINS
</a>,
4535 Up:
<a rel=up accesskey=u
href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>
4538 <h3>COMMON PROCEDURES
</h3>
4540 <p>All plugins inherit from a derivative of PluginClient. This derivative
4541 implements most of the required methods in PluginClient, but users must
4542 still define methods for PluginClient. The most commonly used methods
4543 are already implemented in macros.
4545 <p>The files they include depend on the plugin type. Audio plugins
4546 include
<b>pluginaclient.h
</b> and video plugins include
4547 <b>pluginvclient.h
</b>. They inherit
<b>PluginAClient
</b> and
4548 <b>PluginVClient
</b> respectively.
4550 <p>Another thing all plugins do is define at least three objects:
4555 Processing object - Contains pointers to all the other objects and
4556 performs the signal processing. This object contains a number of
4557 queries to identify itself and is the object you register to register
4561 User interface object - This is defined according to the programmer's
4562 discretion. It can either use Cinelerra's toolkit or another toolkit.
4563 It shows data on the screen and collects parameters from the user.
4565 <p>Using Cinelerra's toolkit, the only user interface object a developer
4566 needs to worry about is the Window. The window has pointers to a
4567 number of widgets, a few initialization methods, and a back pointer to
4568 the plugin's processing object. The documentation refers to usage of
4569 Cinelerra's toolkit.
4571 <p>Depending on the user interface toolkit, a user interface thread may be
4572 created to run the user interface asynchronous of everything else.
4573 Synchronizing the user interface to changes in keyframes is the most
4574 complicated aspect of the plugin, so the user interface thread and
4575 object are heavily supported by macros if you use Cinelerra's toolkit.
4578 Configuration object - This stores the user parameters and always needs
4579 interpolation, copying, and comparison functions. The plugin client
4580 automatically calls configuration methods to interpolate keyframes.
4585 <li><a accesskey=
1 href=
"#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT
</a>:
4586 <li><a accesskey=
2 href=
"#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT
</a>:
4587 <li><a accesskey=
3 href=
"#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT
</a>:
4591 Node:
<a name=
"THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT
</a>,
4592 Next:
<a rel=next accesskey=n
href=
"#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT
</a>,
4593 Up:
<a rel=up accesskey=u
href=
"#COMMON%20PROCEDURES">COMMON PROCEDURES
</a>
4596 <h4>THE PROCESSING OBJECT
</h4>
4598 <p>The processing object should inherit from the intended PluginClient
4599 derivative. Its constructor should take a PluginServer argument.
4601 <br><pre>MyPlugin(PluginServer *server);
4604 <p>In the implementation, the plugin must contain a registration line with
4605 the name of the processing object like
4607 <br><pre>REGISTER_PLUGIN(MyPlugin)
4610 <p>The constructor should contain
4612 <br><pre>PLUGIN_CONSTRUCTOR_MACRO
4615 <p>to initialize the most common variables.
4617 <p>The processing object should have a destructor containing
4619 <br><pre>PLUGIN_DESTRUCTOR_MACRO
4622 <p>to delete the most common variables.
4624 <p>Another function which is useful but not mandatory is
4626 <br><pre>int is_multichannel();
4629 <p>It should return
1 if one instance of the plugin handles multiple
4630 channels simultaneously or
0 if one instance of the plugin only handles
4631 one channel. The default is
0 if it is omitted. Multichannel plugins
4632 should refer to the value of
<b>PluginClient::total_in_buffers
</b> to
4633 determine the number of channels.
4635 <p>To simplify the implementation of realtime plugins, a macro for
4636 commonly used members should be put in the class header, taking the
4637 configuration object and user interface thread object as arguments.
4638 This is only useful for realtime plugins. Fortunately, nonrealtime
4639 plugins are simpler.
4641 <br><pre>PLUGIN_CLASS_MEMBERS(config_name, thread_name)
4644 <p>Many other members may be defined in the processing object, depending
4645 on the plugin type. The commonly used members in PLUGIN_CLASS_MEMBERS
4646 are described below. Not all these members are used in nonrealtime
4651 <li>int load_configuration();
4653 <p>Loads the configuration based on surrounding keyframes and current
4654 position. The class definition should contain
4656 <br><pre>LOAD_CONFIGURATION_MACRO(plugin_class, config_class)
4659 <p>to implement load_configuration. This stores whatever the current
4660 configuration is inside the plugin's configuration object. The
4661 plugin's configuration object is always called
<b>config
</b> when using
4662 PLUGIN_CLASS_MEMBERS.
4664 </p><li>VFrame* new_picon();
4666 <p>Creates a picon for display in the resource window. Use
4668 <br><pre>#include
"picon_png.h"
4669 NEW_PICON_MACRO(plugin_class)
4672 <p>to implement new_picon. In addition, the user should create a
4673 <em>picon_png.h
</em> header file from a PNG image using
<em>pngtoh
</em>.
4674 <em>pngtoh
</em> is compiled in the
<em>guicast/ARCH
</em> directory.
4676 <p>The source PNG image should be called picon.png and can be any format
4679 </p><li>char* plugin_title();
4681 <p>Returns a text string identifying the plugin in the resource window.
4682 The string has to be unique.
4684 </p><li>void update_gui();
4686 <p>Should first load the configuration and then redraw the GUI with the
4687 new parameters. All the plugins using GuiCast have a format like
4689 <br><pre>void MyPlugin::update_gui()
4693 load_configuration();
4694 thread-
>window-
>lock_window();
4695 // update widgets here
4696 thread-
>window-
>unlock_window();
4701 <p>to handle concurrency and conditions of no GUI.
4703 </p><li>int show_gui();
4705 <p>Instantiate the GUI and switch the plugin to GUI mode. This is implemented with
4707 <br><pre>SHOW_GUI_MACRO(plugin_class, thread_class)
4710 </p><li>int set_string();
4712 <p>Changes the title of the GUI window to a certain string. This is implemented with
4714 <br><pre>SET_STRING_MACRO(plugin_class)
4717 </p><li>void raise_window();
4719 <p>Raises the GUI window to the top of the stack. This is implemented with
4721 <br><pre>RAISE_WINDOW_MACRO(plugin_class)
4727 Node:
<a name=
"THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT
</a>,
4728 Next:
<a rel=next accesskey=n
href=
"#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT
</a>,
4729 Previous:
<a rel=previous accesskey=p
href=
"#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT
</a>,
4730 Up:
<a rel=up accesskey=u
href=
"#COMMON%20PROCEDURES">COMMON PROCEDURES
</a>
4733 <h4>THE CONFIGURATION OBJECT
</h4>
4735 <p>The configuration object is critical for GUI updates, signal
4736 processing, and default settings in realtime plugins. Be aware it is
4737 not used in nonrealtime plugins. The configuration object inherits
4738 from nothing and has no dependancies. It's merely a class containing
4739 three functions and variables specific to the plugin's parameters.
4741 <p>Usually the configuration object starts with the name of the plugin
4744 <br><pre>class MyPluginConfig
4750 <p>Following the name of the configuration class, we put the three
4751 required functions and the configuration variables.
4753 <br><pre> int equivalent(MyPluginConfig
&that);
4754 void copy_from(MyPluginConfig
&that);
4755 void interpolate(MyPluginConfig
&prev,
4756 MyPluginConfig
&next,
4757 int64_t prev_position,
4758 int64_t next_position,
4759 int64_t current_position);
4770 <p>Now you must define the three functions.
<b>Equivalent
</b> is called by
4771 LOAD_CONFIGURATION_MACRO to get the return value. That is all it's
4772 used for and if you don't care about load_configuration's return value,
4773 you can leave this function empty. It normally returns
1 if the
4774 argument's variables have the same values as the local variables.
4776 <p>Then there's
<b>copy_from
</b> which transfers the configuration values
4777 from the argument to the local variables. This is once again used in
4778 LOAD_CONFIGURATION_MACRO to store configurations in temporaries. Once
4779 LOAD_CONFIGURATION_MACRO has replicated the configuration, it loads a
4780 second configuration. Then it interpolates the two configurations to
4781 get the current configuration. The interpolation function performs the
4782 interpolation and stores the result in the local variables.
4784 <p>Normally the interpolate function calculates a previous and next
4785 fraction, using the arguments.
4787 <br><pre>void MyPluginConfig::interpolate(MyPluginConfig
&prev,
4788 MyPluginConfig
&next,
4789 int64_t prev_position,
4790 int64_t next_position,
4791 int64_t current_position)
4793 double next_scale = (double)(current_position - prev_position) / (next_position - prev_position);
4794 double prev_scale = (double)(next_position - current_position) / (next_position - prev_position);
4797 <p>Then the scales are applied to the previous and next configuration
4798 object to yield the current values.
4801 this-
>parameter1 = (float)(prev.parameter1 * prev_scale + next.parameter1 * next_scale);
4802 this-
>parameter2 = (float)(prev.parameter2 * prev_scale + next.parameter2 * next_scale);
4803 this-
>parameter3 = (int)(prev.parameter3 * prev_scale + next.parameter3 * next_scale);
4808 <p>Alternatively you can copy the values from the previous configuration
4809 argument for no interpolation.
4811 <p>This usage is the same in audio and video plugins. In video playback,
4812 the interpolation function is called for every frame, yielding smooth
4813 interpolation. In audio playback, the interpolation function is called
4814 only once for every console fragment and once every time the insertion
4815 point moves. This is good enough for updating the GUI while selecting
4816 regions on the timeline but it may not be accurate enough for really
4817 smooth rendering of the effect.
4819 <p>For really smooth rendering of audio, you can still use
4820 load_configuration when updating the GUI. For process_realtime;
4821 however, ignore load_configuration and write your own interpolation
4822 routine which loads all the keyframes in a console fragment and
4823 interpolates every sample. This would be really slow and hard to
4824 debug, yielding improvement which may not be audible. Then of course,
4825 every century has its set of wierdos.
4827 <p>An easier way to get smoother interpolation is to reduce the console
4828 fragment to
1 sample. This would have to be rendered and played back
4829 in a separate program of course. The Linux sound driver can't play
4830 fragments of
1 sample.
4833 Node:
<a name=
"THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT
</a>,
4834 Previous:
<a rel=previous accesskey=p
href=
"#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT
</a>,
4835 Up:
<a rel=up accesskey=u
href=
"#COMMON%20PROCEDURES">COMMON PROCEDURES
</a>
4838 <h4>THE USER INTERFACE OBJECT
</h4>
4840 <p>The user interface object at the very least consists of a pointer to a
4841 window and pointers to a set of widgets. Using Cinelerra's toolkit, it
4842 consists of a
<b>BCWindow
</b> derivative and a
<b>Thread
</b> derivative. The
4843 Thread derivative is declared in the plugin header using
4845 <br><pre>PLUGIN_THREAD_HEADER(plugin_class, thread_class, window_class)
4848 <p>Then it is defined using
4850 <br><pre>PLUGIN_THREAD_OBJECT(plugin_class, thread_class, window_class)
4853 <p>This in combination with the SHOW_GUI macro does all the work in
4854 instantiating the Window class. This is used in realtime plugins but
4855 not in nonrealtime plugins. Nonrealtime plugins create and destroy
4856 their GUI in
<b>get_parameters
</b> and there's no thread.
4858 <p>Now the window class must be declared in the plugin header. It's
4859 easiest to implement the window by copying an existing plugin and
4860 renaming the symbols. The following is an outline of what happens.
4861 The plugin header must declare the window's constructor using the
4862 appropriate arguments.
4865 #include
"guicast.h"
4867 class MyPluginWindow : public BC_Window
4870 MyPluginWindow(MyPluginMain *plugin, int x, int y);
4874 <p>This becomes a window on the screen, positioned at x and y.
4876 <p>It needs two methods
4878 <br><pre> int create_objects();
4882 <p>and a back pointer to the plugin
4884 <br><pre> MyPlugin *plugin;
4887 <p>The constructor's definition should contain extents and flags causing
4888 the window to be hidden when first created. The create_objects member
4889 puts widgets in the window according to GuiCast's syntax. A pointer to
4890 each widget which is to be synchronized to a keyframe is stored in the
4891 window class. These are updated in the
<b>update_gui
</b> function you
4892 earlier defined for the plugin. The widgets are usually derivatives of
4893 a GuiCast widget and they override functions in GuiCast to handle
4894 events. Finally create_objects calls
4896 <br><pre> show_window();
4900 <p>to make the window appear all at once.
4902 <p>The close_event member should be implemented using
4904 <br><pre>WINDOW_CLOSE_EVENT(window_class)
4907 <p>Every widget in the GUI needs to detect when its value changes. In
4908 GuiCast the
<b>handle_event
</b> method is called whenever the value
4909 changes. In
<b>handle_event
</b>, the widget then needs to call
4910 <b>plugin-
>send_configure_change()
</b> to propogate the change to rendering.
4913 Node:
<a name=
"REALTIME%20PLUGINS">REALTIME PLUGINS
</a>,
4914 Next:
<a rel=next accesskey=n
href=
"#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS
</a>,
4915 Previous:
<a rel=previous accesskey=p
href=
"#COMMON%20PROCEDURES">COMMON PROCEDURES
</a>,
4916 Up:
<a rel=up accesskey=u
href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>
4919 <h3>REALTIME PLUGINS
</h3>
4921 <p>Realtime plugins should use PLUGIN_CLASS_MEMBERS to define the basic
4922 set of members in their headers. All realtime plugins must define an
4924 <br><pre>int is_realtime()
4927 <p>member returning
1. This causes a number of realtime methods to be
4928 called during playback and the plugin to be droppable on the timeline.
4930 <p>Realtime plugins must define a member called
4932 <br><pre>process_realtime
4935 <p>to be called during every audio fragment and video frame. It has an
4936 input and an output argument and for audio, a size argument. The
4937 process_realtime function should start by calling
4938 <b>load_configuration
</b>. The LOAD_CONFIGURATION_MACRO returns
1 if the
4939 configuration changed. Then process_realtime should move the data from
4940 the input to the output with processing.
4942 <p>Additional members are implemented to maintain configuration in
4943 realtime plugins. Some of these are also needed in nonrealtime
4947 <li>void read_data(KeyFrame *keyframe);
4949 <p>Loads data from a keyframe into the plugin's configuration. Inside the
4950 keyframe is an XML string. It's most easily parsed by creating a
4951 <em>FileXML
</em> object. See an existing plugin to see how the read_data
4952 function is implemented.
4954 <p>Read data loads data out of the XML object and stores values in the
4955 plugin's configuration object.
4957 </p><li>void save_data(KeyFrame *keyframe);
4959 <p>Saves data from the plugin's configuration to a keyframe. Inside the
4960 keyframe you'll put an XML string which is normally created by a
4961 FileXML object. See an existing plugin to see how the save_data
4962 function is implemented.
4964 <p>Save data saves data from the plugin's configuration object into the
4967 </p><li>int load_defaults();
4969 <p>Another way the plugin gets parameters is from a defaults file. The
4970 load and save defaults routines use a Defaults object to parse the
4971 defaults file. The defaults object is created in
<b>load_defaults
</b> and
4972 destroyed in the plugin's destructor. See an existing plugin to see
4973 how the Defaults object is used.
4975 </p><li>int save_defaults();
4977 <p>Saves the configuration in the defaults object.
4982 Node:
<a name=
"NONREALTIME%20PLUGINS">NONREALTIME PLUGINS
</a>,
4983 Next:
<a rel=next accesskey=n
href=
"#AUDIO%20PLUGINS">AUDIO PLUGINS
</a>,
4984 Previous:
<a rel=previous accesskey=p
href=
"#REALTIME%20PLUGINS">REALTIME PLUGINS
</a>,
4985 Up:
<a rel=up accesskey=u
href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>
4988 <h3>NONREALTIME PLUGINS
</h3>
4990 <p>Like realtime plugins,
<b>load_defaults
</b> and
<b>save_defaults
</b> must be
4991 implemented. In nonrealtime plugins, these are not just used for
4992 default parameters but to transfer values from the user interface to
4993 the signal processor. There doesn't need to be a configuration class
4994 in nonrealtime plugins.
4996 <p>Unlike realtime plugins, the LOAD_CONFIGURATION_MACRO can't be used in
4997 the plugin header. Instead, the following methods must be defined.
4999 <p>The nonrealtime plugin should contain a pointer to a defaults object.
5006 <p>It should also have a pointer to a MainProgressBar.
5009 MainProgressBar *progress;
5012 <p>The progress pointer allows nonrealtime plugins to display their
5013 progress in Cinelerra's main window.
5015 <p>The constructor for a nonrealtime plugin can't use
5016 PLUGIN_CONSTRUCTOR_MACRO but must call
<b>load_defaults
</b> directly.
5018 <p>The destructor, likewise, must call
<b>save_defaults
</b> and
<b>delete
5019 defaults
</b> directly instead of PLUGIN_DESTRUCTOR_MACRO.
5023 <li>VFrame* new_picon();
5025 <p>char* plugin_title();
5027 <p>The usage of these is the same as realtime plugins.
5029 </p><li>int is_realtime();
5031 <p>This function must return
0 to indicate a nonrealtime plugin.
5034 int get_parameters();
5036 <p>Here, the user should create a GUI, wait for the user to hit an OK
5037 button or a cancel button, and store the parameters in plugin
5038 variables. This routine must return
0 for success and
1 for failure.
5039 This way the user can cancel the effect from the GUI.
5041 <p>Unlike the realtime plugin, this GUI need not run asynchronously of the
5042 plugin. It should block the get_parameters function until the user
5043 selects OK or Cancel.
5045 </p><li>int load_defaults();
5047 <p>This should create a defaults object and load parameters from the
5048 defaults object into plugin variables.
5050 </p><li>int save_defaults();
5052 <p>This should save plugin variables to the defaults object.
5054 </p><li>int start_loop();
5056 <p>If
<b>get_parameters
</b> returned
0 for success, this is called once to
5057 give the plugin a chance to initialize processing. The plugin should
5058 instantiate the progress object with a line like
5061 progress = start_progress(
"MyPlugin progress...",
5062 PluginClient::end - PluginClient::start);
5066 <p>The usage of
<b>start_progress
</b> depends on whether the plugin is
5067 multichannel or single channel. If it's multichannel you always call
5068 start_progress. If it's single channel, you first need to know whether
5069 the progress bar has already started in another instance of the plugin.
5071 <p>If
<b>PluginClient::interactive
</b> is
1, you need to start the progress
5072 bar. If it's
0, the progress bar has already been started.
5074 <p>The PluginClient defines
<b>end
</b> and
<b>start
</b> for the timeline range
5075 to be processed. The units are either samples or frames.
5077 </p><li>int process_loop
5079 <p>This is called repeatedly until the timeline range is processed. It
5080 takes either a samples or frames buffer and a reference to
5081 write_length. The arguments are a location and length for the output
5084 <p>The plugin must use
<b>read_samples
</b> or
<b>read_frame
</b> to read the
5085 input. These functions take a buffer and a position relative to the
5086 start of the timeline. Then it must process it and put the output in
5087 the arguments to process_loop. write_length should contain the number
5088 of samples generated if it's audio.
5090 <p>Finally, process_loop must test
<b>PluginClient::interactive
</b> and
5091 update the progress bar if it's
1.
5093 <br><pre>progress-
>update(total_written);
5096 <p>returns
1 or
0 if the progress bar was cancelled. If it's
1,
5097 process_loop should return
1 to indicate a cancellation. In addition
5098 to progress bar cancellation,
<b>process_loop
</b> should return
1 when the
5099 entire timeline range is processed.
5101 </p><li>int stop_loop();
5103 <p>This is called after process_loop processes its last buffer.
5105 <p>If PluginClient::is_interactive is
1, this should call
5106 <b>stop_progress
</b> in the progress bar pointer and delete the pointer.
5107 Then it should delete any objects it created for processing in
5113 Node:
<a name=
"AUDIO%20PLUGINS">AUDIO PLUGINS
</a>,
5114 Next:
<a rel=next accesskey=n
href=
"#VIDEO%20PLUGINS">VIDEO PLUGINS
</a>,
5115 Previous:
<a rel=previous accesskey=p
href=
"#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS
</a>,
5116 Up:
<a rel=up accesskey=u
href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>
5119 <h3>AUDIO PLUGINS
</h3>
5121 <p>The simplest audio plugin is Gain. The processing object should
5122 include
<b>pluginaclient.h
</b> and inherit from
<b>PluginAClient
</b>. Realtime audio plugins need to
5125 <br><pre>int process_realtime(int64_t size,
5127 double **output_ptr);
5130 <p>if it's multichannel or
5132 <br><pre>int process_realtime(int64_t size,
5134 double *output_ptr);
5137 <p>if it's single channel. These should return the number of samples
5138 generated. In the future, the number of samples return value will
5139 synchronize plugins which delay audio.
5141 <p>Nonrealtime audio plugins need to define
5143 <br><pre>int process_loop(double *buffer, int64_t
&write_length);
5146 <p>for single channel or
5148 <br><pre>int process_loop(double **buffers, int64_t
&write_length);
5151 <p>for multi channel.
5154 Node:
<a name=
"VIDEO%20PLUGINS">VIDEO PLUGINS
</a>,
5155 Next:
<a rel=next accesskey=n
href=
"#TRANSITION%20PLUGINS">TRANSITION PLUGINS
</a>,
5156 Previous:
<a rel=previous accesskey=p
href=
"#AUDIO%20PLUGINS">AUDIO PLUGINS
</a>,
5157 Up:
<a rel=up accesskey=u
href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>
5160 <h3>VIDEO PLUGINS
</h3>
5162 <p>The simplest video plugin is Flip. The processing object should
5163 include
<b>pluginvclient.h
</b> and inherit from
<b>PluginVClient
</b>.
5164 Realtime video plugins need to define
5166 <br><pre>int process_realtime(VFrame **input,
5170 <p>if it's multichannel or
5172 <br><pre>int process_realtime(VFrame *input,
5176 <p>if it's single channel. They only get one frame per call but should
5177 return the number of frames generated anyway. In the future, the
5178 number of frames return value will synchronize plugins which delay
5181 <p>The nonrealtime video plugins need to define
5183 <br><pre>int process_loop(VFrame *buffer);
5186 <p>for single channel or
5188 <br><pre>int process_loop(VFrame **buffers);
5191 <p>for multi channel. They're always assumed to have a write length of
1
5195 Node:
<a name=
"TRANSITION%20PLUGINS">TRANSITION PLUGINS
</a>,
5196 Next:
<a rel=next accesskey=n
href=
"#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</a>,
5197 Previous:
<a rel=previous accesskey=p
href=
"#VIDEO%20PLUGINS">VIDEO PLUGINS
</a>,
5198 Up:
<a rel=up accesskey=u
href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>
5201 <h3>TRANSITION PLUGINS
</h3>
5203 <p>The simplest video transition is
<b>dissolve
</b> and the simplest audio
5204 transition is
<b>crossfade
</b>. These work identical to the single
5205 channel, realtime audio and video plugins. The only difference is the
5206 addition of an
<b>is_transition
</b> method to the processing object.
5207 <b>is_transition
</b> should return
1.
5209 <p>Routines exist for determining where you are relative to the
5210 transition's start and end.
5214 <li><b>PluginClient::get_source_position()
</b> - returns an integer
5215 position since the start of the transition
5217 <li><b>PluginClient::get_total_len()
</b> - returns the integer length of
5218 the transition. The units are either samples or frames.
5222 <p>Users should divide source position by total length to get the fraction
5223 of the transition the current
<b>process_realtime
</b> function starts
5226 <p>Secondly, the meaning of the input and output arguments to
5227 <b>process_realtime
</b> is different for transitions than for realtime
5230 <p>The first argument to process_realtime is the data for the next edit.
5231 The second argument to process_realtime is the data for the previous
5232 edit. Eventually the second argument becomes the output.
5235 Node:
<a name=
"PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</a>,
5236 Next:
<a rel=next accesskey=n
href=
"#PLUGIN%20QUERIES">PLUGIN QUERIES
</a>,
5237 Previous:
<a rel=previous accesskey=p
href=
"#TRANSITION%20PLUGINS">TRANSITION PLUGINS
</a>,
5238 Up:
<a rel=up accesskey=u
href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>
5241 <h3>PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</h3>
5243 <p>Effects like
<b>Histogram
</b> and
<b>VideoScope
</b> need to update the GUI
5244 during playback to display information about the signal. This is
5245 achieved with the
<b>send_render_gui
</b> and
<b>render_gui
</b> methods.
5246 Normally in process_realtime, when the processing object wants to
5247 update the GUI it should call
<b>send_render_gui
</b>. This should only be
5248 called in process_realtime. Send_render_gui goes through a search and
5249 eventually calls
<b>render_gui
</b> in the GUI instance of the plugin.
5251 <p>Render_gui should have a sequence like
5253 <br><pre>void MyPlugin::render_gui(void *data)
5257 thread-
>window-
>lock_window();
5261 thread-
>window-
>unlock_window();
5267 <p>The sequence uses one argument, a void pointer to transfer information
5268 from the renderer to the GUI. The user should typecast this pointer
5269 into something useful.
5272 Node:
<a name=
"PLUGIN%20QUERIES">PLUGIN QUERIES
</a>,
5273 Previous:
<a rel=previous accesskey=p
href=
"#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</a>,
5274 Up:
<a rel=up accesskey=u
href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>
5277 <h3>PLUGIN QUERIES
</h3>
5279 <p>There are several useful queries in PluginClient which can be accessed
5280 from the processing object. Some of them have different meaning in
5281 realtime and non-realtime mode. They all give information about the
5282 operating system or the project.
5287 <b>int PluginClient::get_project_smp()
</b> Gives the number of CPU's on
5288 the system minus
1. If it's a uniprocessor it's
0. If it's a dual
5289 processor, it's
1. This number should be used to gain any parallelism.
5292 <b>double PluginClient::get_project_framerate()
</b> Gives the frames per
5293 second of the video.
5296 <b>int PluginClient::get_project_samplerate()
</b> Gives the samples per
5297 second of the audio.
5302 Node:
<a name=
"RELEASE%20NOTES">RELEASE NOTES
</a>,
5303 Previous:
<a rel=previous accesskey=p
href=
"#PLUGIN%20AUTHORING">PLUGIN AUTHORING
</a>,
5304 Up:
<a rel=up accesskey=u
href=
"#Top">Top
</a>
5307 <h2>RELEASE NOTES
</h2>
5314 First release since Broadcast
2000 migration.
5321 Titler fonts installed by rpm.
5322 XMovie decodes ac3 according to redesigned liba52 channel mappings.
5323 Quicktime MPEG4 parameters debugged.
5324 Background rendering over a renderfarm.
5325 Renderfarm clients automatically reduced to idle priority.
5326 Better MJPA decoding on single processors.
5327 Better title functionality in
16 bit colormodels.
5328 Undo for effect keyframes.
5329 Effect GUI's cleared during undo for effect attachment.
5330 Fewer lockups on startup.
5331 Proper keyframe interpolation in scale effect.
5332 Stamp timecode in titler.
5333 Memory leaks in rendering stages removed.
5334 Removed legacy plugin server code.
5335 Option to generate sequence header in every GOP for MPEG2.
5337 Listbox doesn't enter drag_icon state when dragging column division.
5338 Effect rendering bug fixed.
5339 64 bit mpeg transport stream seeking beyond
2 gigs.
5340 More accurate mask drawing when projector is zoomed.
5341 Clear labels updates CWindow
5342 More accurate YUV/RGB conversions.
5344 Copy keyframes doesn't copy default keyframe.
5345 Track highlighting offset by vertical scroll.
5346 Multiple video scope, spectrogram, and histogram displays may be opened.
5347 HutSaturation in YUV colorspaces.
5349 Shared synthesis effects cause the sharing tracks to
5350 play back instead of just the owning track.
5351 Quicktime recovery utility improved.
5352 Single frame recording with multiple batches doesn't crash.
5355 gradient, downsample video, radial blur, linear blur, zoom blur,
5356 histogram, perspective.
5368 More options for the ffmpeg/MPEG-
4 codecs.
5369 Histogram works on SMP.
5370 Better
16 bit alpha blending.
5371 BRender path updates from preferences.
5372 Separate preroll for background rendering and rendering.
5373 Deinterlace by averaging lines
0 and
2 or
1 and
3 to get intervening lines.
5374 Adaptive deinterlace.
5375 Frame per second statistics in renderfarm are more reliable.
5376 Select and slide in the patchbay.
5377 Video scope can be resized.
5378 Effect keyframes pasted in right positions more often.
5379 Selective denoising of video based on color channel.
5380 More mouse wheel bindings in MainWindow and ListBox.
5381 Ctrl-w closes effect windows.
5382 Perspective doesn't crash when switching from stretch to sheer.
5383 Better text list searching and keyboard navigation.
5384 Better Vorbis decoding after a pause.
5385 Close recording without recording anything doesn't crash.
5386 Save backup now option.
5387 OpenGL not required anymore.
5388 Time format changes update the selection textboxes more often.
5389 MPEG-
4 deblocking option in XMovie and Cinelerra.
5390 Resize in Record GUI doesn't screw it up.
5391 Better export of YUVA16161616 to Component Y'CbCr
10-bit
4:
4:
4.
5392 Better import of Component Y'CbCr
10-bit
4:
4:
4 to RGB colorspaces.
5399 Create fade keyframe inadverdently drags bezier handle less often.
5400 Float autos don't draw on right edge of timeline when keyframes are beyond right edge.
5401 Better float auto creation.
5402 Add track anywhere in timeline through track popup.
5403 Shared track references are automatically reconfigured after deleting or adding tracks.
5404 Libmpeg3: Better decoding of field-based MPEG video.
5405 Channels can be moved up or down in the Channel picker properly.
5406 Better handling of the long delay in deleting files without overflowing the recording buffers.
5407 Deinterlace really swaps fields instead of just saying it.
5408 Two line swapping combinations in deinterlace.
5409 Better listbox row sizing.
5411 Faster window creation.
5412 Splash screen while you wait for it to start up.
5413 File deletion occurs before opening the driver instead of
5414 after opening the driver for recording.
5415 Changing sample rate of WAV file in Asset window works.
5416 JPEG stills get saved with proper dimensions.
5417 Migrated to RedHat
8.0.
5418 - e2fsprogs-devel is needed to compile the background render object.
5419 Fewer crashes due to OpenDivx global variables getting overwritten.
5420 Paste silence and clipboards also shifts effect keyframes properly.
5421 More checks for circular references in shared effects and shared tracks.
5422 Tracking during audio playback without video doesn't run past edge of loop boundaries.
5423 Better keyframing in Titler.
5424 Multiple language encodings in Titler.
5425 Undo of replace project after an effect works.
5426 Frame -
> field conversion does line averaging and pixel shifting.
5427 Field -
> frame conversion uses pixel shifting.
5428 Negative cursor selection is frame aligned.
5429 Documentation on video cleaning and deinterlacing tools.
5430 Buttons repositioned properly when filebox is resized vertically.
5431 Fade automation is more accurate.
5432 CWindow and VWindow slider position is less erratic after the window is resized.
5433 Timebars with regions track the playback position.
5434 More workarounds for buz driver lockups.
5435 Dragging the cursor on the timebar off the edges scrolls the timeline.
5436 IVTC uses luminance only in YUV colorspaces to improve accuracy.
5437 Quicktime: Tighter audio synchronization when encoding Quicktime with Vorbis audio.
5438 Start of audio effects is more accurate.
5439 Better IEEE1394 playback of video only.
5440 More IEEE1394 playback options.