Authoring Overview
Making or changing fusors needs a license. Fusor Studio Lite opens the Library read-only, apart from the session edits and Your Notes; see Licensing.
Fusor Studio is a runtime and an editor. The runtime plays fusors; the editor lives inside the Library window. What follows is how you open a fusor for editing, how a fusor is structured, and the steps for building one. Each editing surface has its own page later in the chapter.
Opening a fusor for editing
Editing happens in the Library window. Open the Library with the book icon in the toolbar and switch to the Fusors tab. From there:
- Edit an existing fusor. Click the fusor's info icon (or right-click → Details) to open its detail view. The detail view is already editable. There's no separate "enter authoring" step.
- Create a new fusor. Click + at the top of the Fusors list. The new fusor opens directly in the Library window as an unsaved draft (see Creating and duplicating below).
- Duplicate an existing fusor. Right-click a fusor in the picker and choose Duplicate. Type a name and the clone is written straight to your library and opens for editing.
Once a fusor has been saved at least once, there's no Save/Cancel bar and no pencil button. Edits commit as you make them (see Autosave below). A brand-new draft is the one exception: it keeps an explicit Save to library action until you save it for the first time.
Creating and duplicating
Clicking + opens a new fusor directly in the Library window as an unsaved draft, with nothing yet written to disk. The Fusors list marks the row unsaved, and the detail view's subtitle reads Unsaved with a Save to library action in the header. There's no file-explorer dialog to fill in: when you click it, Fusor Studio derives the filename from the fusor's name and writes it into your library's fusors/ folder, adding a number if that name is already taken.
If the draft isn't valid yet (it has no domains, for example) Save fails with an explanation instead of losing your work (see When a save fails below). Closing the Library window with an unsaved draft still open prompts Save / Discard / Cancel, whether you close from the in-app control or from Windows itself: Alt+F4, the taskbar close button, or quitting Fusor Studio.
Duplicate works the same way, minus the draft step. Right-click a fusor and choose Duplicate; an in-app prompt appears prefilled with "name copy". Confirm (or type a different name) and the copy is written directly into the library's fusors/ folder and appears in the list right away, with no file-explorer dialog. Duplicating the same fusor again auto-numbers the name: "name copy 2", and so on.
Autosave and undo
Every edit in the detail view writes to disk a fraction of a second after you commit it.
- Text fields (Name, Description, Author, Version, Your Notes) commit on blur: click out of the field or press Tab/Enter.
- Intent commits as you type. It's a textarea rather than a single-line field, so there's no Enter to press. Press Esc to release focus when you're done.
- Pickers (Mix Point, Built for) commit the moment you change the selection.
- Structural edits (add/delete a domain, add/delete an action, reassign an FX unit, change a curve anchor, toggle per-card preflight visibility) commit when you make them.
A debounced autosave (300 ms) batches rapid edits into a single write.
If the fusor doesn't name any DJ apps yet, the save confirmation adds a reminder to tag them on the Info tab. Nothing about that reminder blocks or delays the save.
The detail view's tab bar has an Undo button, sitting beside Info / Domains / Actions and tooltipped Undo last text edit (Ctrl/Cmd+Z). Clicking it (or pressing Ctrl+Z / Cmd+Z) reverses the most recent text-field edit in the detail view: name, description, notes. The undo stack holds up to 50 edits and clears when you load a different fusor or close the Library window.
Undo does not reverse structural edits. Adding or deleting a domain, adding or deleting an action, and changing curves on the Domain Editor surface are not in the text-undo stack. To reverse a deletion, re-add the domain or action from scratch. The per-card delete affordance asks you to confirm before it fires, so a misclick alone cannot delete a domain.
When a save fails
If a save can't complete, either because the fusor isn't valid yet or because the write itself fails, a persistent message reads "name not saved: reason". Your edits stay in the detail view exactly as you left them, so you can fix the problem and save again.
That message describes your last save attempt, and it stays until you make another one. It is not a live report on the fusor's current state, so a problem you fix does not clear the message on its own; it is replaced the next time a save runs. For a fusor already in your library that happens within a moment, because your edits save themselves. For a new fusor you haven't saved yet, nothing is written until you press Save to library, so the message waits there until you do.
Reopening a fusor always reflects what's actually on disk. If the file is corrupt or fails validation, the detail view shows a read error.
Editing is paused mid-transition
While the loaded fusor is mid-transition (running, paused, or in pre-run), the detail view shows an orange banner:
Fusor running: edits paused until the transition ends.
Text fields and add/delete affordances go read-only for the duration. The banner clears automatically when the transition completes or aborts.
The lock applies only to the currently loaded fusor. Other fusors in the library remain editable throughout, so you can prep the next one while this one plays.
What a fusor is, structurally
Every fusor holds one transition effect, from the outgoing track to the incoming track. It modulates a set of parameters between the two states as the transition progresses from 0% to 100%.
A fusor is structured as:
Fusor
├── Meta (name, app tags, …)
└── Domains
├── Domain (e.g. Incoming EQ)
│ └── Parameter Bindings (one per parameter: Low, Mid, High)
│ └── Curve (bezier anchors, or stepped step set)
├── Domain (e.g. Outgoing Volume)
│ └── Parameter Bindings → Curve
└── …
Three pieces to know:
| Term | What it is |
|---|---|
| Domain | A group of related parameters: Channel Fader, 3-Band EQ, FX Unit, Stems Volume, and so on. Each domain holds both sides of the transition, outgoing and incoming; a side without a curve stays blank. See Domains. |
| Parameter Binding | A single authored parameter inside a domain, for example "incoming EQ low" or "outgoing FX 1 wet/dry". Each binding has one curve. |
| Curve | The shape the parameter's value follows from 0% to 100% transition progress. Authored visually by placing anchors. |
For the canonical glossary entries, see Key Concepts.
Curves: continuous and stepped
A binding's curve is either continuous or stepped. The runtime treats the two differently and the editor offers different controls for each.
Continuous (the default)
Bezier curves with anchor points and tangent handles. The runtime evaluates the curve smoothly as the transition progresses, interpolating the value between anchors. Use continuous curves for any parameter that is musically continuous: volume, EQ, filter cutoff, FX wet/dry.
The Domain Editor's main surface is a side-by-side curve view. Drag anchors to reshape the curve; drag a handle to change its tangent.
Stepped (sample-and-hold)
The lane is restricted to a small step set of named, discrete levels. The runtime holds the chosen value until the next anchor, with no interpolation. Use stepped curves for parameters whose meaningful values are indexed: a delay's rate in beat fractions, a gater's rate, an FX amount knob that only sounds right at a handful of positions.
Click Attach… on the property strip below the canvas to switch a binding from continuous to stepped. A step set picker opens; pick from the bundled catalog or your own saved step sets and click Apply to this lane. A curve can also hold values with no step set attached, by setting interpolation to Hold directly from the point menu or the Edit curve menu (see Curve Editor). Stepped Output has the full mechanics, the step set library, and a worked example.
Most bindings are continuous and stay that way.
Target scope: outgoing, incoming
Every binding has a target scope that tells the runtime which side of the transition it applies to:
- Outgoing. Modulates the deck that is being mixed out.
- Incoming. Modulates the deck that is being mixed in.
A domain holds both sides from the moment you add it (see Domains → Add Domain); which side a binding ends up on depends on which side you draw a curve on in the Domain Editor. The role swap at transition completion is handled by the runtime. A curve is tied to a role, never to a physical deck (A or B).
Fusor parameter bindings are always tied to one side; there is no mixer-global ("shared") binding type. Mixer-global addresses such as the crossfader and master tempo are reached through actions.
The detail view tabs
The Fusor detail view exposes three tabs along the top:
| Tab | What it's for | Details |
|---|---|---|
| Info | Fusor metadata, in order: Name, Description, Intent, Author, Version, Mix Point, Built for, Your Notes. Intent is a concise statement of what the fusor is for, shown at the top of the Fusor player's Session View before the transition runs; Built for is the multi-select that tags the fusor for one or more DJ apps and gates which domain types you can add. | |
| Domains | The main editing surface. Add/import/delete domains, click into the Domain Editor for curve work, configure per-card preflight (override, hide). | Domains |
| Actions | The fusor's action list, split into Pre-run (runs before the transition) and Post-run (runs after the transition completes). Add and remove actions, edit per-action preflight. | Pre-run Actions |
Mix Point sits next to Author and Version, and says where the listener's attention shifts from the outgoing track to the incoming track. There are three choices, and you can leave it unset:
| Value | What it means |
|---|---|
| Start | The incoming track is in from the start, and the rest of the transition takes the outgoing track out. |
| Middle | Attention shifts halfway. Both tracks play on past that point, and the outgoing plays out. |
| End | The mix point is where the transition ends, and the outgoing does not continue: an echo out or a cut. |
In Auto and Manual Run Mode the value times nothing, except End on a fusor with an effect tail, where the player rescales its progress strip to make room for the tail after End. Mixed Run Mode stops at Middle, or at End with an effect tail. Changing the mix point away from End turns every Effect tail switch in the fusor off. It changes nothing else in the fusor. The three values are also described for the reader in Mix Points.
It is there for you, or anyone you share the fusor with, to see at a glance what shape the transition has. The Fusors list shows it as a small mark rather than a word: a rail with three positions, for start, middle and end. The authored position is a solid dot, the largest on the rail. The other two are hollow. A fusor with no mix point shows nothing there. Hover the mark for a tooltip naming the value and repeating the sentence above it. To sort by it, choose Mix Point in the list's Sort control and the fusors group start, middle and end, with unset ones last, reading as a staircase down the column. Choose Name instead and fusors that share a name stay together, ordered start to end by mix point.

- Mix point mark: the solid dot is the authored mix point.
- Sort control: set to Mix Point, so the list reads Start to End down the column.
The loaded fusor gets a different, performance-oriented view of this same data: Session View, the inline panel opened by the expand arrow in the toolbar. Rather than these three authoring tabs, it presents a single chronological stack (pre-run actions → domains → post-run actions) and is read-only apart from five small session-edit affordances. See Loading a fusor → Session View.
The authoring loop
The steps for building a fusor:
- Open the fusor in the Library window (click its info icon, or right-click → Details, or create a new one with +).
- Add the domains you need. On the Domains tab, click Add Domain and pick a type, or Import Domain to copy a domain from another fusor in your library.
- Edit curves. Click a domain card (or any parameter name inside it) to open the Domain Editor. Drag anchors to shape the curve. Toggle stepped output for discrete controls.
- Add setup actions if the host needs them, such as putting the crossfader into bypass or switching FX banks, on the Actions tab → Pre-run. Steps that put them back after the transition completes go in Post-run.
- Test on a transition. Load the fusor, arm, and run it on a pair of tracks; adjust; repeat. Edits to a fusor that isn't loaded take effect immediately; edits to the loaded fusor pause while it's mid-transition and resume when the transition ends.
- Finish. There is no save step: every edit is already saved.
Where files live
Authored fusors are JSON files with the .fusor extension, stored flat in your library folder (Documents/Fusor/ by default) under fusors/:
<library>/
fusors/
house-to-techno.fusor
breakdown-builder.fusor
tight-cut.fusor
Keep them flat. Fusor Studio scans fusors/ itself and does not look inside subfolders, so a fusor you file into one will not appear in the picker or the Fusors list. Grouping is what collections are for: they are .fcollection files in the library's Collections/ folder that reference fusors by identity, so one fusor can belong to several collections without being copied anywhere.
The filename follows the fusor's name. When you rename a fusor in its detail view, Fusor Studio renames the file to match on the next save, adding a number if that filename is already taken. Renaming never breaks anything that points at the fusor. Each fusor has a permanent internal identity, so collection membership survives the rename. If you share a .fusor file with another DJ, the filename and the name inside it will agree.
This also runs the other way: rename the .fusor file itself outside Fusor Studio and the next save renames it back to match the fusor's name, noting it on the status line. See Status Messages for what that notice means.
A copy made outside Fusor Studio shares the original's identity. Duplicate a fusor in Explorer ("name - Copy.fusor") or Finder ("name copy.fusor") or let a sync tool leave a conflict copy behind ("name-DESKTOP-ABC123.fusor"), and both files show up in the Fusors list, but only one of them is the fusor that collections actually point to: the original. Both files show an orange duplicate mark; hovering either names the other file and says which one collections follow. The original keeps its identity through renames made inside Fusor Studio and across restarts. When there's no original on record, such as the first time Fusor Studio sees the two files, or when the recorded original can no longer be found, the file with the plain, unmodified name is picked as the original instead. Renaming the original in Explorer or Finder while a copy exists is one way to trigger that: the next time the folder is scanned, the plain name wins again. Deleting a file clears the mark once only one is left.
The mark isn't limited to this list. It also appears, icon only, on the Fusor player's fusor picker; with the word, on Import Domain's source-fusor rows and beside the fusor's name in its own detail view header.
For the broader Library window and where fusors appear in it, see Loading a fusor.
Where to next
- Domains: add, import and delete domains; per-card preflight; opening the Domain Editor.
- Pre-run Actions: wire
.factionactions into a fusor's Pre-run and Post-run lists; per-action preflight. - FX Routing: auto-assign FX units to decks, and the Snapshot/Restore wrapper.
- Stepped Output: author stepped lanes, and the step set library.
- Curve Editor: anchor drag, handles, interpolation, the point and Edit curve menus (copy/paste/flip), per-curve undo/redo, ghost overlays.
- Action Authoring Overview: editing
.factionfiles in the Library window, the Notes/Code tabs, autosave, create/duplicate/delete. - Action Editor: authoring action steps in the pop-out Step Editor.
- Pack Authoring: group actions into an 8-slot pack for Pad Mode.
- Step Sets: build and manage stored step sets from the Library window, with no fusor open.