4 The applications defined in this project are as follows:
6 * shotcut-wm : The shotcut window manager
7 * shotcut-server : The main shotcut server
8 * shotcut-inject : Transmit westleys without modification
9 * shotcut-preview : A media player
10 * shotcut-editor : A text editor tailored for westley documents
11 * shotcut-nle : The shotcut non-linear editor
17 The shotcut suite is dependent on the following:
23 Some of the default behaviour relies on:
30 It's not essential for these to be installed though.
36 To configure and build the environment, run:
42 To set up an environment for use, please read the rest of this document.
48 Most shotcut applications have a server in them. These servers allow input to
49 be received in the form of MLT westley documents.
51 When a document is received, they typically carry out an action - for example
52 the text editor will show the document and allow you to edit it, the preview
53 will play it and the shotcut server will pop up a dialog asking what you want
54 to do with the document by presenting a list of possible destinations.
56 The usage of the tools and details on how to integrate other tools into the
57 shotcut framework is provided below.
60 TERMINOLIGY AND CLASSIFICATION
61 ------------------------------
63 For the purpose of this document, the following terminoligy will be used:
65 client : Any application which generates the DVCP PUSH
66 server : Any application which responds to the DVCP PUSH
67 window manager : The window manager in use (not necessarily shotcut-wm)
69 All MLT applications which allow the use of the 'valerie' consumer are
76 The shotcut window manager provides a system administrator with the option to
77 set up a totally closed session for use of the shotcut tools. Since it is very
78 light on resources and imposes a bare minimum of start up processes, this is a
79 good option for production use of shotcut.
83 * a multi-workspace window manager
84 * a mechanism for specifying start up applications and their workspace
85 * a never obscured utility panel (for switching workspace and logout)
87 NB: shotcut-wm does not provide any mlt specific functionality - it is neither
88 a server nor a client. Its usage is not a pre-requisite for using the shotcut
91 To use it, you need to carry out the following steps:
93 1) Create a new user which uses the shotcut-wm
94 2) Customise the start up profile
96 The following creates a new user for Mandrake 10 - other distros may require
97 slightly different operations:
100 sudo /usr/sbin/useradd shotcut -m -k home
103 To test the user while still running your original X session, run:
109 1) Make sure that no shotcut servers are running in your current X session
110 first. The ports the tools run on may clash and hence cause your new
111 users tools to fail to start or start incorrectly.
113 2) You can switch back to the original X session by using Ctrl Alt F7 and
114 you will automatically return when you logout of the session. Note that
115 the original session will present you with a back screen - this is OK,
116 just press a key or move your mouse to be presented with a dialog to
117 redisplay the original session.
119 3) You may not get audio in the second session due to permissions on the
120 dsp and/or alsa devices. Try: chmod a+w /dev/dsp /dev/snd/*
122 When you login, you will be presented with the default session - this isn't
123 a well managed session as no window geometries are specified.
127 * Workspace 1 contains a maximised mainactor;
128 * Workspace 2 contains a terminal with mc running, preview and text editor;
129 * Workspace 3 contains the NLE.
130 * Workspace 4 is empty.
132 You can switch between workspaces using:
134 * Using the buttons on the panel
136 * Ctrl-Alt-Left and Ctrl-Alt-Right
138 There is also a 'hidden' shotcut-wm menu which can be activated by:
141 * Ctrl-Alt-Escape will activate the menu as per the original flwm behaviour
143 The windows created on start up are managed via $HOME/profiles/shotcut. You
144 can edit this file to specify which tools are autostarted.
146 An example profile is as follows:
163 Note that you need to specify the workspace the tool appears on and the number
164 of windows the tool creates when it starts up - the shotcut-wm will wait for
165 these windows to appear before moving on to the next command. If the last tool
166 starts on workspace 1 (as in the example above), then the number of windows is
167 unimportant since the window manager will remain on the first workspace.
169 You may specify starting geometry for the tools using the command line switches
172 Shotcut tools typically take a -g WxY+x+y geometry argument, though
173 shotcut-server is a special case - it has its own profile and you need to
174 specify its tools and geometry there. Take care when customising shotcut-server
175 since you will need to specify the number of windows it generates in this
182 This process is designed to control your desktop. It acts as a proxy for a
183 configurable collection of miracle server applications.
185 Typically, shotcut will run on the default miracle port (5250) and the default
186 behaviour for all clients will be to send documents to this process.
188 To run shotcut in its default mode, you would simply run:
192 The default behaviour is to:
194 * start the shotcut-server on port 5250
195 * start a basic gui profile with the following tools
196 * shotcut-preview on port 5251
197 * shotcut-editor on port 5252
199 To quickly test your environment, try:
201 shotcut-inject noise:
203 and select a destination from the menu provided. Notice that the menu always
204 appears immediately under the mouse and has the keyboard focus. You can use
205 the cursor keys to move between the options, and pressing 'space' will
208 You can configure the tools that the server creates and feeds by creating a
209 'profile' and specifying this when you start the server.
211 An example profile might contain something like:
213 # Defines the number of tools
216 # Define each tool using the following syntax:
220 # .port=port|server|server:port
222 # Note that commands should background themselves (include a trailing & if
223 # the process doesn't fork automatically). You don't need to include a
224 # command, but a port is needed.
227 .command=shotcut-preview -g 330x283+610+20 --on-top
231 .command=shotcut-preview -g 330x283+970+20 --on-top
235 .command=shotcut-editor -g 670x400+610+390
244 This profile defines two previews, a text editor and links to a running
245 instance of shotcut-nle and a miracle instance running on another server
246 (the default action is to append the westley to unit 0's playlist).
248 To use this, you would save the file somewhere and run shotcut as:
250 shotcut-server --profile=/path/to/your-profile
252 It is possible to have multiple shotcut-servers running, each controlling
253 their own set of tools and allowing connections to be established between
254 them in either way. To do this, you should specify a different port using
255 the --port=XXXX switch on the second instance and register the servers as
256 tools in their profiles as required - this facilitates multiple window
257 manager work spaces having their own controlling server.
263 The shotcut-inject utility is a lightweight client.
265 The simplest example of use is:
269 This will send an westley which refers to the clip to the default server.
270 You may target a specific server via the --port=XXX switch if you wish.
276 This server provides immediate playback of all documents received. There is
277 transport functionality to allow you to pause, fast forward, rewind or scrub.
279 Note that when you submit documents with the same 'title' property, the
280 position and playout speed don't change.
282 The default behaviour of shotcut-preview is to open a small window directly
283 under the mouse pointer, but this can be overridden by specifying a geometry
286 It can be controlled via:
288 * The transport controls and scrub control situated at the bottom of the
290 * The left and right cursor keys can be used to do frame accurate scrubbing.
292 Note that when you switch from normal playback, the display will show a low
293 quality image. This is done to ensure minimal cpu usage. It will also
294 automatically pause when you switch workspace.
298 * --name=name to specify how the server identifies itself;
299 * --port=XXXX to specify the port to listen on;
300 * --on-top to indicate that you want to start the preview as 'always on top';
301 * --maximize to indicate that you want to start the preview maximized.
303 The preview also has drag n drop support. Currently, only nautilus has been
304 tested, but other file managers should also work.
310 The shotcut-editor is a text editor provided in the fltk demo directory. It's
311 been adapted to handle westley syntax colouring and other features.
313 On receipt of a new document, the editor will either place the new document in
314 the text buffer directly, or, if the current contents have been manually
315 changed, you will be presented with a dialog to accept, save or cancel.
317 Another feature is the ability to transmit a modified document into another
318 process - by default, shotcut sets this up so that it fires the doc back to
319 the main shotcut server and the options are all but the Editor itself (ie: you
320 can select Preview or Cancel).
326 This tool provides the main multitrack editing environment and is both a server
327 and a client. It is designed to run in its own workspace.
329 The main screen consists of 4 areas:
331 +-------------+---------------+-------------+
332 |Browser |Preview |Panel |
334 +-------------+---------------+-------------+
336 +-------------------------------------------+
338 The workflow is as follows:
340 * All westley documents submitted to the NLE will appear in the browser -
341 these are decorated with a thumbnail and sorted by order of addition
343 * Above the browser, there are four 'light' buttons labelled as Projects,
344 Stories, Audio and Stills. When the light is on, input of that type
345 is shown, when off, they're removed from the view. Double clicking
346 on a button will turn off all other buttons.
347 * Below the browser is a button labelled 'Clean' - this will remove
348 all items in the currently selected view which do not exist in the
351 * Selection from the browser by dragging allows you to immediately place a
352 clip on the multitrack (dropping the clip anywhere other than on the
353 multitrack acts as a cancel)
355 * Selection from the browser by clicking will cause the selected clip
356 to open in the preview
358 * Cursor up and down cause the next and previous item to be shown in
360 * Ctrl-enter key will attempt to insert the item in to the selected
361 track of the multitrack, and will cause the timeline position to move
362 to the end of the inserted item. The next item in the browser is
363 automatically selected.
365 * The preview provides playback by use of the 'transport buttons' below the
366 display area. Play and pause can also be toggled by pressing the space bar.
368 * At the bottom of the preview is a 'cutting' tool - this will allow you to
369 cut the clip by specifying in and out points, and from there, you can
370 drag the cut on to the multitrack
371 * Any cuts from that clip which are already on the multitrack will be
372 highlighted as a dull red, thus allowing easy reselection - reselection
373 will cause the reselected cut to turn bright red
376 * The Panel allows you to edit attributes, titles and obscuring masks for the
377 current cut - these become attached to the cut and are automatically applied
380 * The default timeline consists of 4 manipulable tracks (1 for the main
381 video/audio, 1 for 'super text' and another 2 for audio mixing). Instances
382 of cuts from the currently selected clip are highlighted and a special
383 highlight is used to indicate the position of the current cut. Neighbouring
384 cuts from different clips have a transition between them.
386 * You may also select to 'publish' the current project (push it to a specific
387 miracle server for playout) or switch to another project.
395 You can configure your environment so that the default consumer is 'valerie':
397 export MLT_CONSUMER=valerie
399 So when you run a command like:
401 inigo "+Hello World.txt"
403 The normal behaviour is to send it to the default server. You can override this
404 by specifying a -consumer switch if needed.
406 Further to this, you can configure your file manager to default double clicks
407 on media to 'inigo -consumer valerie' (or simply inigo if you set MLT_CONSUMER
408 in your shell profile) or shotcut-inject. This provides nice integration with
409 existing tools such as nautilus, mc or konqueror.
411 Standard JKL key bindings can be turned on by running:
413 export SHOTCUT_JKL=true
415 prior to starting shotcut-nle.