Author Your First Action
The first of three authoring tutorials that build actions, and the one that introduces timing. You'll build an action that cuts the bass on both decks, holds for two seconds, and puts it back. Five steps, built in the structured Step Editor rather than typed as text.
Twenty minutes. You need no licence for this: action authoring works in Fusor Studio whether or not you've activated one.
Before you start
- Actions and Pad Mode done. You'll reuse the Tutorial pack from it at the end.
- A track playing on at least one deck, so you can hear the result.
In tutorial 6 you typed two lines of text into the Code tab. That works, and it's the right tool for a quick fix. This time you'll use the other surface: a window with a card per step, an address picker driven by the canonical mapping, and dropdowns for values. For anything multi-step it's the one you want.
1. Create the action
- Click the Library menu, then Actions in the window header, then the Actions sub-tab.
- Click the blue + in the list header (tooltip New Action).
- Name it Timed Bass Kill.
The detail view opens. On the Notes tab, set Description to Cuts both decks' EQ lows for two seconds, then returns them to unity. Click out of the field to commit.
Leave Apps empty. EQ is universal.
2. Open the Step Editor
Click the Code tab. A pencil icon appears at the right end of the tab bar (tooltip Open Step Editor). Click it.
A separate window opens, titled Action Editor, with your action's name beside the title. Top to bottom: the Short ID field, a scrolling stack of step cards (empty for now), and an Add step affordance at the bottom.
This window has its own Save. Everywhere else in the Library, edits commit on blur. Here they don't. Nothing you do reaches disk until you click Save in the footer, and the header shows an italic unsaved marker while there are pending edits. That asymmetry catches people once; catch it here instead.
3. Set the Short ID
The Short ID field is at the top, and it is required — an action without one won't run.
Type BassKill2s.
The reason it exists: when an action fails or is skipped, the status line has to say which
action, and it has about forty characters for the whole message. Names are free-form and often too
long, so the status line uses the Short ID instead — ACT2-Prerun aborted: BassKill2s. Up to 12
characters, from letters, digits, space, dot, underscore and hyphen.
While the field is empty or invalid it outlines red and Save is disabled. Pick something you'd recognise at a glance mid-transition.
4. Cut the first deck's lows
Click Add step at the bottom. A card appears, and it's a SET step — the default type, because most steps are.
Each card has a header carrying a type selector, up and down arrows to move the step,
and a red trash icon. Underneath are the fields for that type. A SET has two: Address and
Value.
-
Click the Address field. A popover opens with every control Fusor Studio can write to, grouped by region: Incoming, Outgoing, Deck A through Deck D, FX 1 to FX 4, and Common. Each region collapses; there's a search box at the top that filters across all of them at once.
-
Expand Deck A and choose EQ Low. (Or type
lowin the search box.) -
Click the Value field. It's a dropdown, not a number box, because Fusor Studio knows this address is an EQ band and knows its named positions. Three of them, each shown with the number it stands for:
Choice Meaning CUT (0)Fully cut UNITY (0.5)Centre — no boost, no cut BOOST_MAX (1)Fully boosted Choose CUT (0).
There's also a Custom... option at the bottom of that list, which swaps the dropdown for a
number box if you need a value between the named ones. A Named link takes you back. Reach for
symbolic names first: UNITY says what you meant and survives changes to the mapping underneath,
where 0.5 says nothing.
5. Cut the second deck
Click Add step again and repeat: Address → Deck B → EQ Low, Value → CUT (0).
If your deck pair isn't A and B, use yours.
6. Add the wait
Click Add step a third time. Another SET card appears — change it.
- Open the card's type selector and choose WAIT.
- The card's fields are replaced with a single Duration field, prefilled with
100milliseconds. - Change it to
2000.
Flipping a step's type replaces its payload with a fresh default for the new type. Nothing is preserved across the change, which is why it's easier to set the type first and fill the fields after.
WAIT blocks: the steps after it don't run until it's done. It's also abortable — the hold-to-abort
gesture on a pad resolves a wait immediately rather than making you sit out the remaining time.
7. Put the lows back
Two more steps, the same as steps 1 and 2 but with the other value:
- Add step → Address → Deck A → EQ Low → Value → UNITY (0.5)
- Add step → Address → Deck B → EQ Low → Value → UNITY (0.5)
Five cards, and they run top to bottom. If one is out of order, the up and down arrows on its header move it; they're disabled at the ends of the list. The trash icon deletes — within the editor only, and like everything else here it isn't on disk until you save.
8. Save
Click Save in the footer. The unsaved marker in the header clears.
Save keeps the window open, which is what you want while you're still working. Save & Close does both in one click. Cancel appears only once there's something to cancel, and it closes the window without writing, so a Cancel you didn't mean costs you the session's edits.
Now switch back to the Library window's Code tab. Your five steps are there as text:
SET deck.a.eq.low CUT
SET deck.b.eq.low CUT
WAIT 2000
SET deck.a.eq.low UNITY
SET deck.b.eq.low UNITY
Two views of one file. The Code tab autosaves on blur, the Step Editor saves explicitly, and both
write the same .faction. Editing in both at once means the last save wins, so work in one at a time.
9. Fire it
Put it on a pad, the same way you did in tutorial 6:
- Library header → Actions → Packs sub-tab.
- Right-click the Tutorial pack → Edit Pad Slots.
- Drag Timed Bass Kill from the right column onto slot 2.
- Back arrow to the Packs list. The pack is still active from last time.
- Turn on Pad Mode with the grid icon in the menubar.
With a track playing, click pad 2.
The bass drops out of both decks. The pad shows a spinner and the other pads dim, because only one action runs at a time. Two seconds later the lows return and the pad releases.
Now try the abort: click pad 2 again and hold. A red fill sweeps across the pad and, a bit under half a second in, the action is aborted — mid-wait. Notice what that leaves behind: the lows are still cut, because the steps that would have restored them never ran. An aborted action stops where it stopped. It doesn't tidy up after itself.
That's worth designing around. If an action must leave the rig in a known state whatever happens,
the pattern for it is CAPTURE and RESTORE — see
Action File Reference → Worked example.
10. The addressing decision, on purpose
Your five steps name deck.a and deck.b. Fusor Studio also has role addresses,
deck.incoming.* and deck.outgoing.*, which appear as the Incoming and Outgoing regions
at the top of the same address picker. Choosing between them is a real decision, and it comes down
to one fact:
A role only resolves while a transition is loaded. Roles are "whichever deck is currently mixing out" and "whichever is mixing in". With nothing loaded, there's no answer.
So:
- Pad-bound actions name a physical deck. A pad is something you might hit at any moment,
including between transitions.
deck.a.eq.lowmeans Deck A's low band and always will. - Pre-run and post-run actions use role addresses. Those only ever run inside a transition, where the role is defined, and using a role means the action keeps working after decks swap, instead of driving the wrong deck every other transition.
If you later want this same bass kill as a pre-run action, duplicate it (right-click → Duplicate) and change the four addresses to the Incoming and Outgoing regions. Same steps, different target, and both files stay honest about where they belong.
What you learned
- That the Step Editor is a separate window with an explicit Save, unlike everything else in the Library.
- That Short ID is required, and why the status line needs it.
- How the grouped address picker is organised, and that value fields adapt to the address.
- That symbolic values are the idiom, with
Custom...as the escape hatch. - That flipping a step's type resets its fields.
- That
WAITblocks, and that aborting mid-action leaves the rig where it stopped. - When to address a physical deck and when to address a role.
Where to next
- Bypass the Crossfader, and Put It Back — the next
tutorial, and the one that introduces
CAPTUREandRESTORE. Two actions that work as a pair, and still no licence needed.
Or go to the reference:
- Action Editor — every step type's fields, the Code tab, the multi-address picker.
- Action File Reference — the
.factionformat: all six step types, predicates,WAIT_UNTIL,IF, nesting rules, duration estimation. - Pre-run Actions — wiring an action into a fusor's before-and-after lists.
- Action Authoring Overview — the
detail view, duplicate and delete, where
.factionfiles live. - Manual overview — the subject-by-subject reference for everything else.