What it does
Blender's sequencer ships with three transitions and no easing control. VSE Pro adds 32 of them across 4 categories, each one a live strip you can re-tune afterwards — plus the one thing Blender's Speed strip could never do: change the speed of sound.
Highlights
- Real easing on every transition. 11 curves from Sine to Elastic, each usable as ease-in, ease-out or both. A push with an Expo ease-out reads nothing like a linear one.
- Transitions stay editable. Each one is a single strip carrying its own settings. Select it, change the direction, rebuild — or remove it and the clips it animated are restored.
- Node transitions retime themselves. The stylised effects read their own start and end frame, so trimming or sliding one just works. There are no keyframes to go stale.
- Speed for picture and sound together. Retime a clip and its audio in one click, with pitch preserved — something Blender's own Speed strip has never been able to do.
- Nothing to compile, nothing to configure. Pure Python in a single zip. Install it and the panel is there.
Installing
- Open the add-on preferences Edit ▸ Preferences ▸ Add-ons ▸ Install from Disk.
- Choose the zip
Pick
vse_pro-2.1.0.zip. Blender installs it as an extension. - Enable it Tick VSE Pro in the list.
- Find the panel Open a Video Sequencer, press N and choose the VSE Pro tab.
Quick start
- Put two clips next to each other They do not need to overlap — the overlap is created for you.
- Select both Exactly two strips, and neither of them a sound strip.
- Set the length and curve Duration in frames, then an interpolation and an easing direction.
- Click a transition It appears as one strip above the two clips.
- Tune it With that strip selected, the Selected Transition panel exposes only the settings that transition actually uses. Changes apply live.
Transitions
Transitions come from one of two engines. Which one a transition uses is decided by what it needs to do, and whether your Blender can run it is decided at startup.
| Engine | How it works |
|---|---|
| Transform | Keyframed strip transforms and stock effect strips. Runs in every Blender build. |
| Node | A compositor node group doing real pixel work. Needs a build with Compositor strips, and retimes itself when trimmed. |
Dissolve
Cross fades and their relatives. The difference between these is what happens in the middle: a plain cross holds the sum at full, an additive dissolve lets it blow past, and the ordered dissolves hand over one region at a time instead of all at once.
Motion
Transitions that move the frame. Push moves both shots together, Slide Over moves only the incoming one, and Slide Reveal moves only the outgoing one — three different edits that are easy to confuse until you see them side by side.
Wipe
A moving boundary between the two shots. Softness controls how hard that boundary is; the Soft Luma Wipe adds a little noise to the edge so it does not read as a straight line.
Stylised
The pixel-level effects, built from compositor node groups. These follow the strip when you trim or slide it, because each one reads its own start and end frame rather than relying on keyframes.
Settings
Each transition exposes only the settings it uses, so the panel stays short. Direction means the direction of travel; Strength scales the overall intensity; Softness controls edge hardness on the wipes.
| Setting | Type | Default | Description |
|---|---|---|---|
| Duration | Int | 15 2 to 120 | Length of the transition in frames |
| Curve | Enum | CUBIC | Shape of the acceleration curve |
| Ease | Enum | EASE_OUT | Which end of the move is eased |
| Direction | Enum | LEFT | |
| Strength | Float | 1.0 0.0 to 3.0 | Overall intensity of the effect |
| Softness | Float | 0.25 0.0 to 1.0 | Edge softness of the transition boundary |
| Color | Float | 0.0 0.0 to 1.0 | Colour dipped through, for dip transitions |
Interpolation
| Curve | Character |
|---|---|
| Linear | Constant rate, no easing |
| Sine | Gentlest ease |
| Quadratic | Soft ease |
| Cubic | Balanced ease, a good default |
| Quartic | Stronger ease |
| Quintic | Very strong ease |
| Exponential | Snappiest ease, dramatic |
| Circular | Sharp ease |
| Back | Overshoots slightly before settling |
| Bounce | Bounces on arrival |
| Elastic | Springs past and oscillates |
Easing direction
| Easing | Meaning |
|---|---|
| Ease Out | Fast start, slow finish -- best for entrances |
| Ease In | Slow start, fast finish -- best for exits |
| Ease In-Out | Slow at both ends |
| Auto | Let Blender choose |
Every transition
| Transition | Category | Engine | What it does |
|---|---|---|---|
| Cross Dissolve | Dissolve | Transform | Eased cross fade -- the classic, but with a real acceleration curve |
| Film Dissolve | Dissolve | Transform | Gamma-correct dissolve that keeps highlights from going muddy |
| Dip to Colour | Dissolve | Transform | Fades through a solid colour, black by default |
| Blur Dissolve | Dissolve | Transform | Both clips defocus into each other |
| Bloom Dissolve | Dissolve | Transform | Highlights flare out and resolve into the next shot |
| Additive Dissolve | Dissolve | Transform | Both shots stay hot through the middle -- the blown, filmic dissolve |
| Cross Zoom | Motion | Transform | Punches hard into the cut and pulls out of the next shot |
| Push | Motion | Transform | New shot pushes the old one off screen |
| Slide Over | Motion | Transform | New shot slides in on top of a stationary old one |
| Slide Reveal | Motion | Transform | Old shot slides away to uncover the new one |
| Zoom In | Motion | Transform | Punches into the outgoing shot and settles on the new one |
| Zoom Out | Motion | Transform | Pulls back out of the outgoing shot |
| Spin | Motion | Transform | Rotates between the two shots |
| Whip Pan | Motion | Transform | Fast directional swish with motion blur -- the vlog staple |
| Linear Wipe | Wipe | Transform | Soft-edged wipe across the frame |
| Barn Door | Wipe | Transform | Wipe opening from the centre outward |
| Iris | Wipe | Transform | Circular iris opening or closing |
| Clock Wipe | Wipe | Transform | Sweeping radial wipe |
| Glitch | Stylised | Node | Digital tearing with chromatic split |
| Zoom Blur | Stylised | Node | Radial blur punch through the cut |
| Spin Blur | Stylised | Node | Rotational blur whip between shots |
| Warp Dissolve | Stylised | Node | Organic liquid displacement |
| Soft Luma Wipe | Wipe | Node | Wipe with a soft, slightly organic edge |
| Pixelate | Stylised | Node | Blocks up and resolves into the next shot |
| Light Leak | Stylised | Node | Warm flare sweeps across the cut, like film fogging |
| Prism | Stylised | Node | Colour channels drift apart and reconverge |
| Luma Fade | Dissolve | Node | Dissolves in order of brightness -- highlights give way first |
| Grain Dissolve | Dissolve | Node | Organic speckled dissolve with no visible edge |
| Halation | Dissolve | Node | Highlights bloom and bleed warm through the cut |
| Directional Blur | Stylised | Node | Motion-blur smear along one axis |
| Displacement Map | Stylised | Node | Each shot warps the other by its own brightness |
| Lens Dissolve | Stylised | Node | Barrel distortion and colour fringing swell through the cut |
Speed
Select a clip, choose a rate, and click Apply Speed. Video and audio are ticked independently, and connected strips are followed in both directions — so selecting a movie retimes its sound too, and selecting the sound retimes the picture.
Reset Speed puts everything back: the Speed strip is removed, the clip returns to its original length, and the audio strip is pointed back at its original file with its original in and out points.
Preserve Pitch
On by default, and it only affects audio. With it on the sound is time-stretched, so a voice keeps its pitch at any speed. With it off the sound is resampled, so pitch rises and falls with the rate — the tape-machine effect. Right for a deliberate stylistic choice, wrong for dialogue.
Why video and audio work differently
Video uses Blender's own Speed Control effect strip, which resamples its input. That is a normal, non-destructive strip.
Audio cannot use Blender's sound retiming, because that feature cannot be driven from Python. Two independent problems block it:
- Moving a retiming key through the API only takes effect on the first strip in the sequencer. In any real project the clip you want is not that strip, so the call silently does nothing.
- The retiming operators refuse to run from a script — their poll needs interactive selection state that has no scripting API, even with a full sequencer context override.
So audio speed renders a time-stretched copy of the sound file with ffmpeg and points the strip at it. It is slower than a live retime, but it is exact, it behaves identically on every Blender version, and it is the only approach that actually works.
vsepro_audio folder beside your .blend (or your
temp folder if the file has not been saved). The strip remembers where it came from, which
is how Reset restores it exactly.Trimmed clips
Trims are preserved. The whole clip is retimed and your in and out points are scaled to match, so the section you chose still plays — at the new rate — and the clip keeps its position on the timeline instead of sliding out from under the edit.
Requirements
All 32 transitions and the full speed controller are available on Blender 5.2 LTS. Nothing else needs installing: the add-on is pure Python and ships as a single zip.
Reference
Operators
| Operator | Name | What it does |
|---|---|---|
vsepro.add_transition | Add Transition | Build a transition between the two selected strips |
vsepro.apply_speed | Apply Speed | Retime the selected strips to the chosen speed |
vsepro.rebuild_transition | Rebuild | Regenerate this transition with its current settings |
vsepro.remove_transition | Remove | Delete this transition and restore the clips it animated |
vsepro.reset_speed | Reset Speed | Return the selected strips to their original speed |
Panel settings
Everything in the sidebar, including the audio speed controls.
| Setting | Type | Default | Description |
|---|---|---|---|
| Duration | Int | 15 2 to 120 | |
| Curve | Enum | CUBIC | |
| Ease | Enum | EASE_OUT | |
| Direction | Enum | LEFT | |
| Ripple | Boolean | Off | Shift later strips back so the timeline does not gain a gap |
| Speed | Float | 2.0 0.1 to 10.0 | Playback rate for the selected strips; 2.0 is twice as fast |
| Preserve Pitch | Boolean | On | Time-stretch the audio so voices keep their pitch. Turn off for a tape-style pitch shift |
| Video | Boolean | On | Retime selected video strips, and video connected to selected audio |
| Audio | Boolean | On | Retime selected sound strips, and audio connected to selected video |
Known limitations
- Node transitions do not pan. Large translations in the compositor shrink the image domain and crop the composite. Panning is left to the transform-based Whip Pan, which the sequencer handles correctly; Lens Dissolve is the distortion effect without the pan.
- Changing a transition's type means removing it and adding the new one; every other setting can be changed in place.
- Audio speed re-encodes. A long clip takes a moment to render, and the result is a 16-bit WAV rather than a live effect. That is forced by Blender's sound retiming not being scriptable, not a design preference.