Build a Constant-Power Crossfade
The last tutorial, and the only one that builds a fusor and its actions together. You'll end up with a crossfade that holds its loudness steady from end to end, stages the decks before it starts, and puts your crossfader back the way it was when it finishes.
It comes in three runs. Each one ends with something you can hear, and each one adds exactly one idea. Do them in order — the second and third only make sense once the first is running.
Thirty minutes. Fusor authoring is a licensed capability, so unlike the last tutorial this one needs a licence — see Licensing. The actions don't; you already built two of them without one.
Before you start
- Author Your First Fusor — you'll reuse every gesture in it.
- Bypass the Crossfader, and Put It Back — run 3 attaches the pair you built there. Don't skip it; nothing here rebuilds it.
- Two tracks on two decks, and the crossfader pushed hard over to the outgoing side before you start. Run 3 explains why that matters more than it looks.
The problem this fixes
At the end of tutorial 7 your crossfade dipped in the middle, and the reason was arithmetic. Two straight fades crossing at half each don't add up to one track at full — power, not fader position, is what the ear tracks, and two signals at half power sum to about 70% of one at full. You hear it as a sag right where the transition is most exposed.
A constant-power pair fixes it by holding the sum of squares at 1 across the whole travel. At
the midpoint each fader sits at roughly 0.707 rather than 0.5, and the total stays put.
The shape that does it is a quarter-cosine on the way out and a quarter-sine on the way in, and those two are the same curve — one is the other read backwards. That is the whole trick of run 1.
Run 1 — the curves
1. Create the fusor
- Library menu → Fusors in the window header → Fusors sub-tab.
- Blue + in the list header. The detail view opens on Info, marked Unsaved.
- Name →
My Constant-Power Crossfade. Click out to commit. - Mix-In Point → Middle. Both tracks play on past the halfway mark and the outgoing plays out, which is what this shape does.
- Leave Apps empty. The channel fader is universal, and so is everything in this run.
2. Add the domain, both sides at once
Domains tab → Add Domain → Channel Fader → Both Sides.
One card, two columns, two empty Volume parameters. Tutorial 7 did this one side at a time to make the point that curves attach to roles; you know that now, so take the single click.
3. Shape the outgoing curve
Click the card header to open the Domain Editor, and make sure the Outgoing side tab is selected.
- The canvas reads No binding — click to create. Click it. A flat line at the top.
- Drag the right-hand end anchor to the bottom. A straight fade-out — the same starting point as tutorial 7, and the same dip.
- Click the left-hand anchor. Its bezier handle appears. Drag the handle to the right, keeping it level with the anchor. The fade now leaves full without moving much.
- Click the right-hand anchor and drag its handle upward. The fade now holds high through the first half and falls away steeply at the end.
That second shape is what a quarter-cosine looks like: flat where it starts, steepest where it
finishes. The anchor readout below the canvas (P: 1.000 | V: 0.000) is there when you want to land
an endpoint exactly rather than nearly.
Getting it exact. The shipped Constant-Power Crossfade sample holds a cubic-bezier approximation of cos and sin whose midpoints are exact and whose worst-case error is under 2%. By hand you'll get close enough to hear the difference, which is the point of this run; open the sample later if you want the numbers.
4. Mirror it to the incoming side
Right-click anywhere on the canvas — still on the Outgoing side — and choose Mirror to opposite track.
Switch to the Incoming side tab. There's your curve, running the other way: silence at the start, full at the end, gentle where the outgoing was steep.
Mirror flips progress, not value. It reads the curve backwards around the midpoint and leaves every value where it was — which is exactly the relationship between cos and sin, and why one gesture gives you the matching half instead of an hour of handle-dragging.
Check it: set the ghost mode selector at the top-right of the side tabs to Opposite Track. The two curves should cross a good way above the middle of the canvas. That crossing height is the whole feature — a linear pair crosses at 0.5, this one crosses near 0.707.
Click Save & Close, then Save to library on the detail view.
5. Run it
Close the Library window, load My Constant-Power Crossfade in the fusor picker, start your outgoing deck, arm, and walk the crossfader across in Manual Run Mode.
The sag is gone. Same two faders, same travel, different shape.
And something is wrong. If your deck faders weren't already parked where the fusor wanted them, the first thing you heard was a jump — the incoming deck snapping from wherever you left it to wherever the curve says it should be at progress 0. That's run 2.
Run 2 — stage the faders first
A fusor's curves don't touch anything until the transition starts. Whatever your deck faders were doing a moment earlier, they're still doing it when you arm — arming leaves your DJ app alone on purpose. So the first curve tick is a jump from your position to the curve's, and how big a jump depends on where your hands were.
The fix is a pre-run action: a .faction file the fusor runs before its automation starts,
for exactly this kind of one-shot staging.
6. Build the staging action
- Library → Actions → Actions sub-tab → blue +.
- Name it Stage Decks For Crossfade. Description: Pulls the incoming deck to silence and the outgoing to full before a crossfade starts. Leave Apps empty — deck volume is universal.
- Code tab → pencil icon → Step Editor. Short ID →
StageXfade.
Two SET steps:
| Address | Value |
|---|---|
| Incoming → Volume | SILENCE (0) |
| Outgoing → Volume | FULL (1) |
Role addresses, not Deck A and Deck B. This action only ever runs inside a transition, where "incoming" and "outgoing" have answers — which is the rule tutorial 8 set out, and the reason the same file keeps working after the decks swap.
Click Save.
7. Wire it in
- Back to Fusors → open My Constant-Power Crossfade (info icon, or right-click → Details).
- Actions tab. Two sections: Pre-run and Post-run.
- + Add action in the Pre-run section → pick Stage Decks For Crossfade.
The row shows the action's name and an estimated duration — around ~20ms for two SET steps. A
Total badge sums the section.
Edits here autosave; there's no Save button on this tab.
8. Run it again
Load, arm, and walk the crossfader across.
This time the incoming deck is already silent when the curve takes over, so there is nothing to jump from. The transition starts where it means to start.
Why not just make the curve start at 0? It does — the incoming curve's first anchor is silence. But curve output doesn't begin until the pre-run queue has finished, so between arming and the first tick the incoming deck sits wherever you left it. Only an action can close that gap, because only an action runs in it.
Run 3 — take the crossfader out of the path, then give it back
Your fusor now drives both deck faders. If the crossfader is still assigned to those decks, it is attenuating them too — so everything gets cut twice, and the constant-power shape you just built is sitting underneath your DJ app's crossfader curve rather than replacing it.
The answer is the pair from tutorial 9: bypass the crossfader for the length of the run, and put the assignment back afterwards.
9. Attach both halves
- Actions tab on the fusor again.
- Pre-run section → + Add action → Crossfader Bypass On.
- Check the order. Stage Decks For Crossfade must be first, with Crossfader Bypass On below it. Use the Up / Down chevrons on the rows if they landed the other way round — the list runs top to bottom.
- Post-run section → + Add action → Crossfader Bypass Off.
Why that order is not a preference
Bypass removes the crossfader's attenuation. Whatever a deck's fader says, it says at full volume the instant the assignment goes off.
- The incoming deck would jump straight to whatever the DJ left its fader at — which is why it has to be pulled to silence before the bypass lands, not after. That is the pre-run order.
- The outgoing deck is protected by something you did with your hands: the crossfader is hard over on the outgoing side, so bypassing changes nothing for it. That is the precondition at the top of this page, and it is a real one — start with the crossfader parked in the middle and the outgoing deck will bump up the moment the bypass fires.
Two different hazards, one guard each. Neither is a guess the app can make for you, which is why one is a step and the other is a note.
10. Run it a third time
Set your crossfader assignments in Traktor to something you'll recognise, park the crossfader hard over on the outgoing side, load, arm, and walk it across.
Watch three things:
- Nothing jumps when the run starts. The staging action ran, then the bypass.
- The crossfader is silent as it travels. It's out of the path; the fusor's curves own the audio outright.
- At the end, your assignments come back. Not a default layout — the one you set, because
Crossfader Bypass Offrestores the snapshotCrossfader Bypass Ontook.
What the post-run half teaches
Post-run actions fire after the transition completes and after the engine has swapped roles. An
action that named outgoing.* would resolve against the deck that just finished arriving — a
different deck than it meant.
Crossfader Bypass Off sidesteps that entirely, because it names no addresses at all. A snapshot
remembers the controls it captured, so restoring one is immune to whatever happened to the roles in
between. That is a general point worth keeping: when a post-run action has to undo a pre-run
action, prefer a snapshot over a list of addresses.
One more thing the pair does not do, on purpose: it does not restore your deck volumes. The transition ends with the crossfader hard over on the incoming side, incoming's fader up and outgoing's at zero, so putting the assignment back changes nothing you can hear. Restoring the faders as well would yank the incoming track down mid-track — which is why deck volume is left out of the engine's own post-transition restore too.
Abort skips post-run. If you abort mid-run, the bypass stays on and your assignments stay in the
snapshot. Fire Crossfader Bypass Off from its pad to get them back — which is the other reason
it's worth having on a pad.
What you learned
- Why a linear crossfade dips, and what constant power does about it.
- That Mirror to opposite track flips progress and not value, which makes the incoming half of a symmetric pair one gesture.
- That arming leaves the host alone, so anything that must be true before progress starts is a pre-run action's job, not a curve's.
- That pre-run order is load-bearing when one step removes an attenuation another step relies on.
- That a post-run action runs after the role swap, and why a snapshot is the safe way to undo.
Where to next
You've reached the end of the tutorials. From here the manual is a reference:
- Crossfader Setup and Deck-Level Modulation — the three setups in full, and when a fusor's level shaping is essential rather than optional.
- Pre-run Actions — ordering, duration overrides, what happens when one fails, and the Auto/Manual difference.
- Curve Editor — every gesture on the canvas, including copy and mirror in both directions.
- Action File Reference — the
.factionformat, all six step types, and snapshot scope. - Manual overview — the subject-by-subject reference for everything else.