Pack Authoring
A pack is a fixed 8-slot container that maps actions onto the pads in Pad Mode. Each slot holds one action, or is empty. The pack file is the source of truth; pad mode just renders whichever pack is currently active.
This page covers the authoring side: creating packs, renaming them, editing their metadata, and assigning actions to slots. Pad Mode covers the runtime side, from turning Pad Mode on to firing pads from a hardware controller.
Where packs live
Pack files have the .fpack extension and live in your library folder (Documents/Fusor/ by default) under Packs/:
<library>/
Packs/
set-1-warmup.fpack
closing-set.fpack
Each .fpack is a small JSON document with a fixed eight-slot array. Slots reference actions by their stable actionId, so renaming an action or moving its file doesn't break the pack. Deleting an action removes it from every pack that referenced it the next time those packs are read.
The Packs list view
Open the Library popover and switch to Actions → Packs. The Packs sub-tab is a table with two data columns and two icon columns:
| Column | Notes |
|---|---|
| Name | The pack's display name. The active pack is rendered in bold blue. |
| Actions | How many slots are filled (0–8). |
| Hamburger icon | Show actions — filters the Actions sub-tab to this pack's contents |
| Info icon | Pack details — opens the pack's form, the same view the right-click menu's Details reaches |
The header carries a single action:
- + New Pack (blue plus icon) — prompts for a pack name; creates an empty pack file on disk and adds it to the list.
Right-click menu
Right-click a pack row for the per-pack menu:
| Item | What it does |
|---|---|
| Show Actions | Filters the Actions sub-tab to only this pack's contents. |
| Edit Pad Slots | Opens the slot editor (see below). |
| Details | Opens the pack's metadata form (Name / Notes). |
| Set Active (or Set Active (switch)) | Makes this pack the one Pad Mode renders. The label reads "switch" when a different pack is already active. |
| Deactivate | Visible only on the currently-active pack. Clears the active selection; Pad Mode shows "No active pack" until a pack is set active again. |
| Delete | Removes the .fpack file from disk, after a confirmation prompt. |
The active pack persists across app restarts.
The pack form (Details)
The info icon on the row, or right-click → Details, opens the pack's form view. (Double-clicking a row runs Show Actions instead.) The form has a small fixed shape:
| Field | Editable? | Notes |
|---|---|---|
| Name | Yes (click to edit) | Saves on blur. The on-disk filename is regenerated from the name; the pack's packId is preserved across renames. Renaming to a name that already exists is rejected with an error. |
| Short name | Yes (click to edit) | The compact label used where there isn't room for the full name. Saves on blur. |
| Actions | No | Number of filled slots (read-only). |
| Notes | Yes (click to edit, multi-line) | Free-form notes about the pack — what set it's for, what venue, what mood. Saves on blur. |
| Created | No | Relative date the pack was created. |
Edits autosave on blur, the same as the action and fusor detail views, so there's no Save button.
The Pad Slot Editor
Right-click a pack → Edit Pad Slots to open the slot editor. The editor is a two-column overlay inside the Library popover:
| Column | What it shows |
|---|---|
| Left | The eight numbered slots (1–8), stacked top to bottom. Filled slots show the action's name and an X to clear; empty slots show "empty" in italic. |
| Right | A Filter actions… text input above a list of every library action not already in this pack. |
The header carries the pack name, a back arrow to return to the Packs list, and a <filled>/8 counter on the right.
Drag-and-drop
The slot editor is drag-driven:
- Add an action to a slot. Drag the action from the right column onto any slot. If the slot is empty, the action lands there. If the slot is occupied, the existing action is bumped out, but the new action is still added.
- Move a slot. Drag a filled slot onto another slot to move the action. If the target is empty, the source slot empties; if the target is occupied, the two swap.
- Clear a slot. Click the X on the right end of the slot row.
The drag-over target highlights with a dashed blue border so you can see where the drop will land.
All slot edits write to disk immediately. There's no Save button on the slot editor.
When the action list is empty
The right column shows one of two empty messages:
- "All actions assigned" — every action in the library is already in this pack. (The pack is full at eight, so this only happens if the library has eight or fewer actions.)
- "No matches" — the filter input is hiding everything; clear the filter to see the actions again.
Authoring loop
A typical session goes:
- Library → Actions → Packs → + New Pack. Name it for the set or context.
- Right-click the new pack → Edit Pad Slots.
- Drag actions from the right column onto the slots. Reorder by dragging slot-to-slot.
- Back arrow to return to the Packs list.
- Right-click → Set Active so Pad Mode uses this pack.
- Toggle Pad Mode from the menubar (the grid icon in the session group). The pads now reflect this pack. See Pad Mode for the runtime walkthrough.
You can keep multiple packs in the library and switch between them at performance time via right-click → Set Active.
Tips
- Group actions by context, not by type. A warm-up pack and a closing pack will share some actions and differ on others. Packs are cheap; make as many as you need.
- A slot is one action. There's no compound-pad type, so if you want two things to happen on one pad press, author a single
.factionthat contains both steps and assign that. - Renaming an action doesn't break any pack that references it; renames are looked up by
actionId, not by file name. - The
.fpackfile is small JSON, safe to keep under version control alongside your.factionand.fusorfiles.
Where to next
- Pad Mode — Runtime: turning Pad Mode on, firing pads, hardware-controller bindings.
- Action Authoring Overview — Authoring the actions that go into a pack.
- Action Editor — Editing the steps inside an action.
- Hardware Controller — Binding pad-slot triggers (Pads 1–8) to a controller button.