Advanced Editing

Advanced Editing Features

## 1. Advanced Project Actions

### Combining Sequences

It is possible to import full contents of another Sequence into Sequence currently being edited.

1. Select Sequence->Import Another Sequence into this Sequence...
2. Select Import action.

- Append Sequence adds imported Sequence at the end of current Sequence
- Insert Sequence at Playhead Position creates a cut at playhead position and inserts imported Sequences at that position

3. Select a Sequence to Import

- Note that you obviously need at least two Sequences to exist to do any import actions.

4. Press Import button to execute import.

### Split part of Sequence to new Sequence

1. Select Sequence->Split to new Sequence at Playhead position
2. After confirmation dialog the a new Sequence with contents of source Sequence after playhead position will be created and made active.

### Importing Media from another Project

You can import Media Items from another Project.

1. Select Project->Import Media From Project...
2. Select a Project file from file system.
3. Media items that are not present in current Project will be opened in the current bin. Note that it takes a few seconds to load the project before new Media Items begin to appear.

## 2. Timeline Audio Syncing

You can make a clip to move to a position in timeline in which its audio is in sync with audio of another clip on timeline.

This enables you to do simplified version of multicam editing on the timeline.

1. Open context menu with Right Mouse on Clip you wish to sync with some other clip.
2. Select menu item Audio->Select Clip to Audio Sync With.... The cursor changes to a targeting cross.
3. Click on Clip you wish to audio sync with.
4. A dialog opens giving info on the sync action that is to be done to sync clips.
5. Press Do Audio Sync Move Edit button to do the syncing edit.
6. It is usually a good idea to mute one of the synched clips

Audio syncing looks for best mathematical match between two audio waveforms, so audio syncing non-matching audio will produce random results.

## 3. Slow / Fast Motion and Reverse

In Flowblade there are two ways to do motion effects:

- Changing Clip Speed and direction in Timeline
- Creating new New Media Items in Bins

### Changing Timeline Clip Speed and direction

#### Creating Slow / Fast Motion Clips

1. Right click on a Timeline Clip File and select Slow Motion -> Slow / Fast from popup menu.
2. Edit parameters for the new motion Clip

- Set speed
- Set encoding and quality
- Select render range, either:

- Current Clip Content
- Full Media

3. Click Render button to create a new motion Timeline Clip.

#### Creating Reverse Motion Clips

1. Right click on a Timeline Clip File and select Slow Motion -> Reverse from popup menu.
2. Edit parameters for the new motion Clip

- Set speed
- Set encoding and quality
- Select render range, either:

- Current Clip Content
- Full Media

3. Click Render button to create a new reverse Timeline Clip.

### Creating Motion Media Items

#### Creating Slow / Fast Media Items

1. Right click on a Media File and select Render Slow / Fast Motion File from menu
2. Edit parameters for the new motion Clip
   - Set speed
   - Give name and location for motion Clip
   - Select rendering parameters for motion Clip. It is probably a good idea to use a lossless format here to avoid any generational quality losses.
   - Select render range, either:
   - Full Source Clip
   - From Source Clip Mark In to Mark Out
3. Click Render button to create a new motion Media Item

#### Creating Reverse Media Items

1. Right click on a Media File and select Render Reverse Motion File from menu
2. Edit parameters for the new motion Clip
   - Set speed
   - Give name and location for reverse Clip
   - Select rendering parameters for reverse Clip. It is probably a good idea to use a lossless format here to avoid any generational quality losses.
   - Select render range, either:
   - Full Source Clip
   - From Source Clip Mark In to Mark Out
3. Click Render button to create a new reverse Media Item

## 4. Synched Audio Splits and Clip Parenting

In Flowblade Movie Editor you can set a clip's positions to follow another clip's positions on request.

### Main points

- Sync relations are between two clips set up by selecting a Sync Parent Clip for a Sync Child Clip.
- Splitting audio with Audio Split Synched creates sync relation between original clip and split audio clip.
- Only clips on track V1 can be Sync Parent Clips. This is done to encourage edit style in which the main body of the Sequence is on track V1 and composites and audio split edits are done relative to the clip sequence on track V1.
- Sync feature helps preserve earlier work an multitrack composites and audio split edits when clips are no longer in correct positions relative to each other, because of edits elsewhere on the Sequence.
- Resyncs are only done on request to avoid jumping of clips on the timeline while editing. Explicit resyncs are also better from the point of view of avoiding side effects when doing edits.

### 4.1 Audio Split Syncing

- Click Right Mouse on clip in track V1 and select Audio Edit->Select Sync Parent Clip....
- Now you e.g. can use Multitrim tool to create J or L audio edits.
- Sync State Box appears on the Sync Child Clip.

- Green means that clip is in sync with parent.
- Red means that clip is NOT in sync with parent.
- Displayed number gives info on how many frames clip positions are away from being synched.

#### Resyncing Sync Child Clips

- Select from application menu Edit->Resync Track to resync all clips in the track containing currently selected clip.
- Click Right Mouse on Sync Child Clip and select Edit->Resync from popup menu to resync single clip.
- Press Resync Track Containing Selected Clip Button to resync all clips in the track containing currently selected clip.
- Press Resync Selected Clip Button to resync single clip.

### 4.2 Clip Parenting

#### Setting Sync Parent

1. Click Right Mouse on clip and select Audio Edit->Select Sync Parent Clip... on any cideo clip with audio NOT on track V1.
2. Cursor turns into a Target Cross. Click on clip on track V1 to select it as Sync Parent Clip.
3. Sync Relation is established between the two clips. Cursor turns back into a default pointer.
4. Sync State Box appears on the Sync Child Clip.

- Green means that clip is in sync with parent.
- Red means that clip is NOT in sync with parent.
- Displayed number gives info on how many frames clip positions are away from being synched.

#### Resyncing Sync Child Clips

- Select from application menu Edit->Resync Track to resync all clips in the track containing currently selected clip.
- Click Right Mouse on Sync Child Clip and select Edit->Resync from popup menu to resync single clip.
- Press Resync Track Containing Selected Clip Button to resync all clips in the track containing currently selected clip.
- Press Resync Selected Clip Button to resync single clip.

#### Clearing Sync Parent Relations

- Click Right Mouse on Sync Child Clip and select Edit->Clear Sync Relation.

#### Syncing Composited Clips

- If appropriate set all clips that are part of a multitrack composite synched to the same clip.

## 5. Filter Masking

Filter masking allows for one or more filters to be applied only on some user defined part of image.

1) Filter masking menu launch button above red triangle, 2) Filters editor after adding mask with all filter edit panels minified. Mask - Begin and Mask - End filters define which filters are masked.

1. Click Filter Mask Menu launch button and select if you wish to apply mask on one or all filters.
2. In submenu select mask Alpha Shape, Alpha Shape Motion Tracked, Luma Key, Video/Image File Alpha, Video/Image File Luma or Color Select.
3. Edit mask parameters in filter edit panel for Mask - Begin filter.
4. You can movefilters in and out of the masked range of filter stack.

## 6. Motion Tracking

When creating a motion tracking effect we are usually dealing with two image sources: one that contains the image element that is being tracked, and an another image that follows the tracked image element.

When using motion tracking to create a tracking filter mask, then both tracking data source clip and the clip that has the masked filter applied are usually the same clip.

Flowblade implements motion tracking by providing two filters and a filter mask. Filters are:

- Motion Tracking Create This filter creates the tracking data based on region of image and algorithm selected by the user.
- Motion Tracking Apply This filter applies tracking data on another image to follow the image element that was the source of the tracking data.

Motion tracked masked filtering uses Filter Mask: Alpha Shape Motion Tracked, see below.

### Filter: Motion Tracking Create

Add this filter to clip that contains the image element you wish to track.

#### Parameters

Rectancle GUI Editor Set the red rectangle on the image element you wish to track.

Tracking always starts from first frame of clip, so use the first frame to position the rectangle.

If you like tracking to start in the middle of a clip, then cut clip at that point to create a new clip that has the first frame at the position you wish the tracking to start.

Keyframe Step This sets the interval in frames between keyframes in the created tracking data. So e.g. value 5 creates a keyframe every 5 frames.

Algorithm Algorithm used to create the tracking data.

- KCF - Kernelized Correlation Filters Accuracy and speed better than MIL. This also reports tracking failure better than MIL. Does not recover from full occlusion.
- MIL - Multiple Instance Learning Performance is quite good, can work when presented with partial occlusion. Tracking failure not reported reliably. Does not recover from full occlusion.
- MEDIANFLOW Excellent tracking failure reporting. Works very well when the motion is predictable and there is no occlusion. Fails under large motion.
- MOSSE - Minimum Output Sum of Squared Error MOSSE tracker is robust to variations in lighting, scale, pose, and non-rigid deformations. It also detects occlusion and can pause and resume where it left off when the object reappears.
- CSRT Among these algorithms CSRT often shows comparatively better accuracy and resistance to overlapping by other objects. Speed is quite low, and operation is unstable when the object is lost.

Create Motion Tracking Data Pressing this button creates a motion tracking data labeled with name given in the text entry box above. After creation data can be used with Motion Tracking Apply filter or Filter Mask: Alpha Shape Motion Tracked.

#### Workflow

1. Make sure playhead is on the first frame of the tracked clip.
2. Place red rectangle on top of the tracked image element.
3. Set parameters and give the data to be created an identifying name.
4. Press Create Motion Tracking Data and wait for the data render to complete.
5. Check results by moving the playhead around.
6. Press Clear Data button if you wish to try again with different parameters or tracking area definition.

### Filter: Motion Tracking Apply

Add this filter to the clip that contains the image that you wish to make follow the tracked image elemnet.

Place the clip with tracking image on top of the clip with tracked image and apply cropping if necessary.

#### Parameters

Select Motion Tracking Data Select the labeled tracking data created from tracking image element you wish to track.

Tracking always starts from first frame of clip.

If you like tracking to start in the middle of a clip, then cut that clip at that point to create a new clip that has the first frame at the position you wish tracking to start.

Tracking Coords Interpretation

- Absolute Places the top left corner of the image to the top left corner of the tracking data box.
- Top Left Justified Places the top left corner of image to the top left corner of screen in the first frame of tracking, and then moves image relatively as specified by tracking data. This is useful e.g. when making a text created in Titler (that is placed initially correctly) keep position when tracking data is applied.

X Offset Moves image in the horizontal direction in relation to the position defined by tracking data.

Y Offset Moves image in the vertical direction in relation to the position defined by tracking data.

Size If set to Scale To Box image is scaled to fit the box defined by tracking data.

Apply Motion Tracking Data Applies selected tracking data with user specified parameters as motion of the clip.

#### Workflow

1. Use Select Motion Tracking Data dropdown menu to select which tracking data to apply.
2. Set parameters to fine tune tracked motion.
3. Press Apply Motion Tracking Data button to make clip image follow tracked motion.
4. If needed, change parameters and press Apply Motion Tracking Data button again to get changed motion.

### Filter Mask: Alpha Shape Motion Tracked

Add this Filter Mask to clip that contains the image element you wish to apply masked filtering on.

A typical use would be to e.g. blur a person's face to make them unrecognizable.

#### Parameters

Select Motion Tracking Data Select the labeled tracking data created from tracking image element you wish to track.

Tracking always starts from first frame of clip.

If you like tracking to start in the middle of a clip, then cut that clip at that point to create a new clip that has the first frame at the position you wish tracking to start.

X Offset Moves filtered area in the horizontal direction in relation to the position defined by tracking data.

Y Offset Moves filtered area in the vertical direction in relation to the position defined by tracking data.

Scale Makes filtered area smaller or larger.

Apply Motion Tracking Data Applies selected tracking data with user specified parameters as a Filter Mask.

#### Workflow

1. See above how to add a Filter Mask. Select Filter Mask Alpha Shape Motion Tracked.
2. Set mask parameters.
3. Press Apply Motion Tracking Data to create a motion tracked filter mask.

## 8. Stabilizing

In Flowblade stabilizing a video clip is implemented using filter Stabilize available in filter category Movement.

This filter requires two passes. The first pass performs analysis and stores the result internally in a file. After completed analysis stabilizing can be applied using the created data.

#### Parameters

Analysis Shakiness Used during analysis. How shaky the video is.

Accuracy Used during analysis. The accuracy of shakiness detection.

Smoothing Used during application. Number of frames for lowpass filtering (2N + 1 frames).

Zoom Used during application. Additional zoom amount.

Analyze Video Pressing this button analyzis video and saves the created data internally. Upon completion stabilizing is applied and can be controlled using Smoothing and Zoom parameters.

## 9. Credits Scroll Generator

### Overview

Flowblade offeres a Credits Scroll Generator to easily create title sequences.

Credits Scroll Generator has a number of editors to set initial properties of text font and layout. Displayed text and commands to modify text presentation is inputted in text editor box in the Text panel.

Text is given using a light weight markup syntax that accepts three types of input: credit blocks, section titles and commands.

### Credit Blocks

Credit block is a block of text beginning with a line starting with '#' followed by credit text, followed by one or more sequential lines giving names associated with the credit.

Credit block ends when empty line is encountered.

# Camera operators

Donald Drake

Earl Easter

### Section Titles

Section Title is a single line of text starting with '##' and followed by section title text.

## Camera crew in Antarctica

### Commands

Command is a single line of text starting with '!' and followed by command arguments.

Command lines change font and layout properties from the ones given initially by user or do some other additional changes in the way that text is presented.

! set-layout single-line-sides-justified

### Commands List

ypad ypad PIXELS

Adds padding between credit items.

E.g. ! ypad 40

set-layout set-layout [single-line-centered | two line-centered | single-line-right-justified | two-line-right-justified | single-line-sides-justified | two-line-left-justified | two-columns-centered ]

Switches to use defined credit item layout.

E.g. ! set-layout single-line-sides-justified.

text-case [ credit | name ] [ no-changes | uppercase | lowercase ]

Sets credit or name text to be uppercase, lowercase or as written.

E.g. ! text-case name lowercase

page [ PAGELENGHT]

Begins new text page if animation set to be paged. Optionally sets length of time page is displayed in frames. If no time is given, the user set default value is used.

E.g. ! page 230

font-size [ credit | name ] FONTSIZE

Sets font size for credit or name text.

E.g. ! font-size credit 100

font-family [ credit | name ] FONTFAMILY

Sets font family for credit or name text. Available values for FONTFAMILY depend on system.

E.g. ! font-family credit Ubuntu Sans

font-face [ credit | name ] [ regular | italic | bold ]

Sets font face for credit or name text.

E.g. ! font-face name italic

font-property [ credit | name ] [alignment | color-rgba | fill-on | outline-color-rgba | outline-on | outline-width | shadow-on | shadow-color-rgb | shadow-opacity | shadow-xoff | shadow-yoff | shadow-blur | gradient-color-rgba | gradient-direction ] PROPERTYVALUE

Sets value for named font property for credit or name text. Allowed PROPERTYVALUE values are different for different named properties.

Font Properties

Property | Value type | Example
--- | --- | ---
color-rgba | color tuple | color-rgba (1.0,0.0,0.0,1.0)
fill-on | boolean | fill-on False
outline-color-rgba | color tuple | outline-color-rgba (1.0,0.0,0.0,1.0)
outline-on | boolean | outline-on True
outline-width | int (pixels) | outline-width 4
shadow-on | boolean | shadow-on True
shadow-color-rgb | color tuple | shadow-color-rgb (1.0,0.0,0.0,1.0)
shadow-opacity | int[0-100] | shadow-opacity 50
shadow-xoff | int (pixels) | shadow-xoff 10
shadow-yoff | int (pixels) | shadow-yoff 7
shadow-blur | int (pixels) | shadow-blur 8
gradient-color-rgba | color tuple | gradient-color-rgba (1.0,0.0,0.0,1.0)
gradient-direction | int[0,1] (VERTICAL = 0 HORIZONTAL = 1) | gradient-direction 1

E.g. ! font-property credit color-rgba (1.0,0.0,0.0,1.0)

! font-property name outline-on True

! font-property credit shadow-yoff 7

! font-property name gradient-direction 1

set-layout-property [ center-gap | line-gap | credit-block-gap | justified-x | justified-x-off | name-y-off | name-x-off | section-title-alignment ] PROPERTYVALUE

Sets layout property value. PROPERTYVALUE integer value for number of pixels or pixel position.

Property | Description
--- | ---
center-gap | Gap between name and credit when on same line.
line-gap | Gap between lines.
credit-block-gap | Gap between credit blocks.
justified-x | Position of justified edge when using justified text layouts.
justified-x-off | Sets column width in "Single Line Sides Justified" layout.
name-y-off | Y offset of name position from default position in current layout.
name-x-off | X offset of name position from default position in current layout.
section-title-alignment | Sets section titles to be either centered or edge justified using justified-x value.

E.g. ! set-layout-property name-y-off -100

## 10. Jog / Shuttle Support

### Overview

Flowblade has a USB Human Input Device subsystem, which is capable of supporting selected USB jog/shuttle devices.

A jog/shuttle gives you an additional way to navigate through your timeline using a dedicated hardware control interface, in addition to the keyboard and mouse.

Turning the jog wheel moves the playback location forward and backward, one frame at a time.

Turning the shuttle left or right engages variable speed playback, in forward or reverse. The farther you turn the ring, the faster it goes.

Additionally, most jog/shuttle devices have keys which can be mapped to various actions within the program. Each supported device has default key mappings, which can also be customized.

### Supported Devices

Manufacturer Device Name | Flowblade Device Name | Config File
--- | --- | ---
Contour Design ShuttlePRO v2 | Contour Design ShuttlePRO v2 | contour_design_shuttlepro_v2.xml
Contour Design ShuttleXpress | Contour Design ShuttleXpress | contour_design_shuttlexpress.xml
Contour A/V Solutions SpaceShuttle | Contour Design ShuttleXpress | contour_design_shuttlexpress.xml

### Enabling Jog / Shuttle Support

Jog/shuttle support is not on by default in Flowblade, and must be enabled.

Additionally, Flowblade will not be able to access the USB device without a small amount of operating system configuration to grant permissions so that Flowblade is allowed to use the device.

#### Enable Device Permissions

For Flatpaks and correctly created distro packages the required file has been added as part of the package. If for some reason the application is not able to access the USB device, try adding the file manually.

In order for Flowblade to be able to read from the USB device, it is necessary to tell your operating system to grant permissions on the device to non-root users.

On Linux, this is done by adding a udev rules configuration file that instructs the udev subsystem to enable additional access to your device.

Become the root user, and create a new text file at `/etc/udev/rules.d/90-flowblade.rules` with the following contents:

# Grant unprivileged users access to USB HID jog/shuttle devices

# Contour Design ShuttleXpress, Contour A/V Solutions SpaceShuttle

ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0020", MODE="0666"

# Contour Design ShuttlePRO v2

ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0030", MODE="0666"

It may be necessary to reboot your computer after this step. This only needs to be done once. It is also possible to tell the udev subsystem to reload the config file instead of rebooting, but this is left as an exercise for the reader.

Don't forget to drop your root privileges after this step, before starting Flowblade! Do not run Flowblade as root!

#### Tell Flowblade to Use the Device

The next step is opening Flowblade, and enabling your device.

Go to the Edit menu, select Preferences, and then navigate over to the Jog/Shuttle tab.

Check the USB Jog/Shuttle Enabled checkbox.

In the Device pull down menu, select the device driver that you wish to use. The entries in this menu correspond to the Flowblade Device Name in the Supported Devices section above.

Press OK to close the Preferences window.

After this, it will be necessary to exit Flowblade and restart it.

At this point, the USB jog/shuttle configuration is part of your saved Flowblade preferences. You will now be able to use the program with or without the jog/shuttle, without any further configuration necessary.

Please note that Flowblade will only check for the presence of the USB device at startup, so make sure to have the device plugged in before you start Flowblade if you want to use it.

### Custom Key Mappings

Flowblade ships with XML config files that provide default key mappings between the keys on your USB jog/shuttle device, and various actions in Flowblade. It is possible to customize these mappings, by copying the appropriate file into the correct user preferences directory, and modifying the local copy.

The precise location of these config files can vary depending on how you have installed Flowblade. You want to find the `res/usbhid` directory under the Flowblade installation. From there, you will want to copy the config file for your particular USB jog/shuttle device to a location in your local user preferences directory.

For example, if you installed Flowblade on Ubuntu using the OS packaging system, and you have a Contour Design ShuttleXpress, then you would want to copy the `/usr/share/flowblade/Flowblade/res/usbhid/contour_design_shuttlexpress.xml` file into `.local/share/flowblade/user_usbhid/contour_design_shuttlexpress.xml` under your home directory.

Open up the new local copy of the file under your home directory in a text editor. You will see more information in the comments of the file about how the keys are laid out on your particular device. Under the _keymap_ section of the config file, you can edit the _code_ settings to point to different _target actions_ that Flowblade can perform, for each of the keys on the device.

Once your file is complete, save and close the file, and start Flowblade. Now your new custom key mappings will be in effect every time you run the program.

Take care not to introduce any XML errors into the file, or Flowblade will not be able to process it correctly.

See the next section for all of the target actions that can be mapped to the keys on your device.

#### Available Target Actions

Target Action | Description
--- | ---
3_point_overwrite | Three Point Overwrite
add_marker | Add Marker
append | Append
append_from_bin | Append Selected Media From Bin
clear_io_marks | Clear In/Out Marks
clear_mark_in | Clear Mark In
clear_mark_out | Clear Mark Out
cut | Cut Active Tracks
cut_all | Cut All Tracks
delete | Delete
display_clip_in_monitor | Display Clip In Monitor
display_sequence_in_monitor | Display Current Sequence In Monitor
enter_edit | Enter Editing Mode
faster | Faster
insert | Insert
lift | Lift
log_range | Log Range
mark_in | Mark In
mark_out | Mark Out
next_cut | Go To Next Cut
next_frame | Go To Next Frame
nudge_back | Nudge Move Selection Back 1 Frame
nudge_back_10 | Nudge Move Selection Back 10 Frames
nudge_forward | Nudge Move Selection Forward 1 Frame
nudge_forward_10 | Nudge Move Selection Forward 10 Frames
open_next | Open Next Media Item In Monitor
open_prev | Open Previous Media Item In Monitor
overwrite_range | Overwrite Range
play | Play
play_pause | Play / Pause
play_pause_loop_marks | Play / Pause Mark In to Mark Out Loop
prev_cut | Go To Previous Cut
prev_frame | Go To Previous Frame
resync | Resynchronization
select_next | Open Next Clip In Filter Editor
select_prev | Open Previous Clip In Filter Editor
sequence_split | Sequence Split
slower | Slower
stop | Stop
switch_monitor | Switch Monitor Display
to_end | Go To End
toggle_ripple | Toggle Ripple
to_mark_in | Go To Mark In
to_mark_out | Go To Mark Out
to_start | Go To Start
trim_end | Trim Clip End To Playhead
trim_start | Trim Clip Start To Playhead
zoom_in | Zoom In
zoom_out | Zoom Out