Reference
Every parameter
Grouped as they appear in Resolume. Each entry says what the control does, what its extremes mean, and what it interacts with — because several of them can cancel each other out.
Pick a Style. That is the intended way in: every preset sets Mosh Amount to 1.0 along with a coherent set of everything else, so one click takes you from silent to obviously working. Then pull Mosh Amount back down to taste — and down it must come if you want to play the effect, because at 1.0 the gate is saturated and Trigger, Hold and the audio controls have nothing left to add.
Mosh
When pixels stop refreshing from the input. This is the I-frame axis.
| Parameter | Range | Default | What it does |
|---|---|---|---|
| Style | 6 presets | Custom | Writes a coherent group of parameters in one move: Melt, Bloom, Drag, Liquid or Corrupt. Touching any parameter a style owns flips this back to Custom, so the dropdown never claims something the settings do not say. Selecting a style clears whatever the previous one set rather than layering on top. |
| Mosh Amount | 0 – 1 | 0 | The master gate. At 0 every pixel refreshes from the input and the plugin is a passthrough. At 1 nothing refreshes and the image is carried entirely by motion compensation. Anything in between is a per-frame blend, so mid values decay toward the live image rather than holding half of it. |
| Trigger | button | — | Starts a timed burst at full mosh, lasting Burst Length. Safe to map to MIDI. A burst always produces at least one frame of mosh even if it is shorter than a frame. |
| Hold | toggle | off | Full mosh for exactly as long as it is on, ignoring Burst Length entirely. Play it like a key. Map it to a key or MIDI note and tick Piano in the shortcut — that is what makes it momentary. As a panel toggle it latches, because you cannot hold a checkbox down with a mouse. |
| Reset | button | — | Forces a keyframe: snaps back to the clean input immediately and clears any running burst. The panic button — it also ends a Hold that is still reading on, which is the way out if a key-up is ever lost. |
| Auto Mode | Manual / On Cut / On Beat | Manual | On Cut watches the incoming video and fires a burst whenever the shot changes — put the effect on the composition and every clip change melts by itself, with nothing to trigger. On Beat fires on Resolume's clock every Beat Divisor beats. |
| Cut Sensitivity | 0 – 1 | 0.5 | How readily On Cut fires. Detection is relative to a running average of how much the picture normally changes, so it adapts to both a still ambient clip and a strobing one. Raise it if cuts are being missed; lower it if fast camera movement is triggering it. |
| Burst Length | 0.05 – 8 s | 1.0 | How long a triggered burst holds before releasing. The release itself eases out over about a quarter of a second, because an instant drop back to clean reads as a second cut. |
| Beat Divisor | 1 / 2 / 4 / 8 / 16 | 4 | Beats between firings in On Beat mode. 4 is once a bar, 16 once every four bars. Needs Resolume's tempo to be running for anything to happen. |
Motion
What the estimated vector field does before the warp uses it.
| Parameter | Range | Default | What it does |
|---|---|---|---|
| Motion Gain | 0 – 4 | 1 | Multiplies the estimated vectors. At 1 the warp tracks the real motion, which is accurate and quite clean. Above 1 it overshoots and smears harder. At 0 the warp is an identity copy, which freezes the image without freezing the field. |
| Freeze | 0 – 1 | 0 | Holds the vector field instead of re-estimating it. At 1 the same vectors keep applying every frame regardless of what the footage does — this is P-frame duplication, and it is what produces the bloom. Note the field has to exist first: turning Freeze on over a still shot holds a field of zeroes and nothing happens. |
| Motion Smoothing | 0 – 1 | 0.3 | Temporal inertia on the field. Higher values make motion take longer to change direction, which lengthens trails and stops the smear flickering when the estimate is uncertain. |
| Motion Threshold | 0 – 1 (0–8 px) | 0.15 | How much a region must be moving before it is allowed to mosh. At 0 everything moshes, giving the full melt. Raised, only fast-moving blocks smear and still areas stay sharp — that is the pixel-drag look. Measured on the estimate before Motion Gain, so turning gain up smears harder without changing what counts as moving. |
| Block Size | 4 / 8 / 16 / 32 px | 16 | The macroblock grid. 16 is what MPEG uses and looks the most familiar. 32 is chunkier and noticeably cheaper; 4 approaches per-pixel flow and costs the most. Also sets the coarsest step Quantise can snap to. |
| Softness | 0 – 1 | 0 | Blurs the field and switches the warp from sampling one vector per macroblock to interpolating between them. At 0 you get hard-edged MPEG tearing; at 1, smooth liquid flow. Same estimator either way — this is the dial between the two aesthetics. |
| Pel Snap | 0 – 1 | 1 | Snaps the displacement to whole pixels. Leave it on unless you want softness: the accumulated image is resampled into itself every frame, and without snapping the interpolation compounds and blurs it to mush within a couple of seconds. Real codecs work in fixed pel units for the same reason. |
| Invert Motion | off / on | off | Reverses the displacement, so the smear runs against the movement in the shot rather than with it. Cheap way to make correct motion look wrong. |
Damage
| Parameter | Range | Default | What it does |
|---|---|---|---|
| Motion Lag | 0 – 15 frames | 0 | Applies a vector field from this many frames ago instead of the current one, so motion lands on content it does not belong to. The closest analogue to a decoder working from the wrong reference frames, and the single most effective control for getting away from a clean optical-flow morph. Even 2–4 frames changes the character completely. |
| Block Repeat | 0 – 1 | 0 | Chance per block of taking a neighbour's content rather than its own — the look of a block whose data never arrived. Re-rolled every frame, so it shimmers rather than sticking. |
| Quantise | 0 – 1 | 0 | Snaps vectors to a coarse grid, the way a low-bitrate encoder has to. Gives stepped, chunky motion instead of smooth displacement. At full scale the step is half a macroblock, so it interacts strongly with Block Size. |
| Corruption | 0 – 1 | 0 | Chance per block of its vector being rotated and rescaled at random — plausible magnitudes, wrong directions. Reads as damaged data rather than as noise. |
| Chroma Drift | 0 – 1 | 0 | Displaces the red and blue channels by slightly different amounts along the vector, the fringing you get when a block's colour planes disagree about where they came from. Green stays put so the image remains legible. |
| Decay | 0 – 1 | 0 | Bleeds the live image back in even at full mosh, as a half-life: 0 holds forever, 1 recovers in a fraction of a second. Being a half-life rather than a per-frame fraction, the same setting behaves identically at 30 and 60 fps and through frame-rate dips. Useful as a safety net so a held mosh cannot stay collapsed forever. |
Sync
| Parameter | Range | Default | What it does |
|---|---|---|---|
| Audio | FFT input | — | The spectrum Resolume feeds the plugin. Nothing to set; it is the source Audio Amount reads from. |
| Audio Amount | 0 – 1 | 0 | How much the audio level adds to Mosh Amount. Adds on top rather than replacing, so a kick pushes an already-moshing image further rather than switching it on from nothing. |
| Audio Band | Volume / Bass | Bass | Which part of the spectrum drives it. Bass tracks the kick; Volume is the whole buffer, which reads quieter for the same music because it averages over bins that carry no energy. Mid and High existed until 0.1.5 and were removed because they read zero. Resolume packs its spectrum into roughly the bottom eighth of the FFT buffer, and the SDK's analyser splits that buffer into equal thirds — so both upper selections averaged over silence. |
Audio Amount earns its place doing one thing the host route cannot: it adds. An animated parameter belongs to its animation, so linking Mosh Amount to audio takes the slider away from you. This adds on top of Mosh Amount and sits under Hold, so audio can pump underneath while you still play the gate by hand. If you do not need that, use Resolume's.
Output
| Parameter | Range | Default | What it does |
|---|---|---|---|
| Mix | 0 – 1 | 1 | Wet/dry against the untouched input. Distinct from Mosh Amount: this crossfades the finished result over the original, while Mosh Amount changes what the result is. Pulling Mix down gives a ghosted double image; pulling Mosh Amount down gives a cleaner one. |
| Quality | Low / Medium / High / Ultra | High | Depth of the motion search: how far it can track fast movement and how precisely. Ultra adds a sub-pixel refinement pass. This is the dial to drop first if a show needs GPU headroom — lower settings do not break the effect, they just estimate more roughly, which on this effect is often no bad thing. |
Mosh Transplant only
The mixer build appears in a layer's blend-mode dropdown, not the effects list. It takes motion from one input and pixels from the other, so a clip of moving water can be made to drag a completely different image around.
| Parameter | Range | Default | What it does |
|---|---|---|---|
| Motion Source | This Layer / Layer Below | This Layer | Which input supplies the motion; the other supplies the pixels. The default makes the clip you drop the mixer onto the motion clip, and the layers underneath the ones that get dragged. The two inputs do not have to share a resolution. |
mixVal, inherited from
the FFGL mixer base class. It is not read — use Mix
in the Output group instead. It cannot be renamed or removed without
making the plugin fail to load at all;
the reason is worth reading if you
write FFGL plugins yourself.
How they interact
Most parameters here are not independent. Several combine by
max() or by multiplication, which means one can silently
swallow another — the knob turns, the picture does not move, and
nothing tells you why. Every case below was read out of the shader
arithmetic rather than inferred from the names.
The gate is
max( Mosh Amount + audio, held ). Once Mosh Amount
is 1 the result is 1 whatever the burst machinery does, and the audio
headroom — exactly 1 − Mosh Amount — is
zero. So the moment you pick a preset, every control you would
play goes dead.
Fix: after selecting a style, pull Mosh Amount back down. 0 to play it entirely by hand, or 0.2–0.3 as a floor for audio and triggers to push up from.
When a knob does nothing
| This appears dead… | …when | Why |
|---|---|---|
| Trigger, Hold, Auto Mode, Cut Sensitivity, Burst Length, Beat Divisor | Mosh Amount is 1.0 — which every Style sets |
The gate takes whichever is larger, and Mosh Amount already won. |
| Audio Amount | Mosh Amount is 1.0 |
Audio adds to Mosh Amount and the sum is clamped to 1, so
the headroom is 1 − Mosh Amount. At full, there
is none.
|
| Motion Lag | Freeze is 1.0 — which the Bloom preset sets |
Lag reaches back through a 16-frame ring of vector fields. Freeze
stops the ring updating, so all sixteen slots hold the same
vectors and every lag setting selects an identical field.
Measured difference between lag 0 and lag 15 at
Freeze 1.0: 0.00000000.
|
| Motion Lag | Motion Smoothing is high |
Same mechanism, arriving gradually. Smoothing blends each new
field toward the previous one, so the ring's contents converge.
Lag 0 vs lag 4 measures 0.121 at smoothing 0,
0.078 at 0.9, 0.053 at 0.99 and exactly
0 at 1.0 — you lose a third of Lag's effect by
0.9 without anything looking wrong.
|
| Everything | Quality is Low and Motion Threshold is 1.0 | Quality caps how far the estimator can look: Low 8 px, Medium 16, High 32, Ultra 64. Motion Threshold tops out at 8 px. At Quality Low those numbers meet, so no pixel can ever exceed the threshold, the gate shuts everywhere and the plugin emits its input untouched — which looks exactly like a correctly-bypassing effect. |
| Mosh Amount, locally | Motion Threshold is above the scene's motion | The gate is per-pixel. Anywhere the estimated motion is below the threshold, moshing is switched off in that region only — so on slow footage a high threshold can leave most of the frame refreshing normally while a corner smears. |
Things that compound
1 − (1−Smoothing)(1−Freeze) — and it is
symmetric, so it genuinely does not matter which one you reach for. At the
default Smoothing of 0.3, a Freeze of 0.5 actually gives you 0.65. If
Freeze feels stronger than the number suggests, this is why.
mosh level × gate × retention. Any Decay above 0
puts a ceiling on the first term, so Mosh Amount 1.0 stops meaning
“never refresh”. At Decay 1.0 and 60 fps
retention is 0.794 — about a fifth of the live frame bleeds back
every frame no matter where Mosh Amount sits.