Stepped Output

Stepped output constrains a parameter lane to a small step set of named, discrete levels and tells the runtime to sample-and-hold between them. No interpolation, no smooth ramp. Use it for controls whose meaningful values are indexed rather than continuous: tempo range switches, FX type selectors, echo or delay length in beats, beatmasher slice.

Most lanes are continuous bezier curves and should stay that way. A step set is for a control whose values are genuinely discrete.


Two ways to get sample-and-hold

The Domain Editor's property strip, below the canvas, carries an Interp control (Bezier / Linear / Hold) and a Step Set control (Attach… / Change… / Detach). Between them there are two distinct ways to get hold behavior:

  • Interp: Hold, no step set attached. Anchors sit at any height you like; each one holds its value until the next anchor. Use this when the control needs discrete jumps but the values themselves aren't drawn from a fixed, named list.
  • A step set attached. Anchors are additionally constrained to the set's named levels. An anchor can only land on "1/8," "1/4," and so on, never in between. Attaching a step set always forces Interp: Hold, since a smooth ramp between named levels would send the host values the DJ never actually chose, and the Interp control disables while a step set is attached.

Which one you want comes down to the values. A step set is for a control whose levels have names that matter and that you'll reuse across fusors. Bare Hold is for a control that just needs to jump between hand-picked values with no reusable named list behind them.

A step set always holds every span. That makes the curve editor's per-point Interpolation to next point menu meaningless here, so it is left off the right-click menu on a step-set curve.


When to use a step set

  • The control has a fixed list of levels (for example, Traktor's tempo ranges, or a delay's beat-fraction times).
  • The DJ-app effect parameter selects a mode rather than scaling smoothly (echo type, beatmasher slice, loop length in beats).
  • You want the lane to land exactly on a known level and not drift between.

A few common shapes that map directly to bundled step sets:

  • A kill switch or mute toggle — Off / On.
  • A four-position level selector — Off / Low / Mid / High.
  • An echo or delay length lane — Beat Fractions (5) (1/8 / 1/4 / 1/2 / 1 / 2) or Beat Fractions (7) (1/32 ... 2).

Traktor-specific controls also have bundled step sets: Delay Rate (7), LFO Rate (11), Gater Rate (5), Ramp Duration (7), Pattern (5), and Pattern (4). These appear in the picker when you filter by the traktor chip.

If the control is a smooth knob or fader (volume, EQ, filter), leave the lane as a continuous bezier curve.


Attaching a step set

In the Domain Editor, the property strip below the canvas shows Step Set: None for a continuous binding.

  1. Click Attach…. The Pick a step set modal opens.
  2. The modal lists every step set Fusor Studio knows about, bundled ones plus any you've saved to your library, with a search field and app-tag chips (for example, traktor) across the top. Universal step sets (no app tag) always remain visible no matter which chip you pick, since they apply everywhere.
  3. Click a step set in the list to select it. The detail pane on the right updates to show its description, tags, step count, and the labels themselves. Clicking a row only selects and previews. Committing takes a second, explicit click. The first visible row is preselected so the pane is never empty.
  4. Click Apply to this lane to commit. The modal closes, the property strip switches to Step Set: N steps, Interp pins to Hold and disables, and the curve renders as a staircase with dashed reference lines and a labeled gutter down the left edge of the canvas.
  5. Closing the modal without clicking Apply (the X, Esc, or a click outside) leaves the lane exactly as it was.

Attaching to a curve that already has anchors snaps each anchor to the nearest step level by height, since there's no existing ladder to match labels against.

Managing step sets from the picker

The detail pane also acts on the step set itself, not just on this lane. Above the Apply button:

  • Edit opens the Toolbox with that step set selected, ready to change. The picker closes.
  • Duplicate opens the Toolbox with an unsaved copy named "(original) copy", so you can adapt a set that's close to what you want without disturbing it. The picker closes.
  • Delete removes the step set from your library. You're asked to confirm first. Curves that already used it keep their steps: every lane holds its own copy, so nothing you've authored changes. The picker stays open, so you can carry on choosing.

Bundled step sets show Duplicate only. They ship with Fusor Studio and can't be edited or deleted; duplicating one gives you a copy of your own to change.

Because Edit and Duplicate close the picker, reopen it with Attach… or Change… when you're back from the Toolbox. It re-reads your library each time it opens, so anything you saved or deleted is reflected straight away.

Changing or detaching

  • Change… replaces the Attach button once a step set is attached. It reopens the same picker. Applying a different step set re-snaps your anchors by matching label where the new set has one, falling back to the nearest remaining level otherwise. An anchor on "1/4" stays on "1/4" if the new set also has a "1/4" level.
  • Detach drops the step set constraint only. Anchor values are unchanged, the curve keeps holding, and the library step set itself is untouched, so nothing is lost by clicking it. It's styled as a plain button, not in a warning color. Output stays identical until your next edit, and you can re-attach at any time. Detaching lifts a constraint rather than changing interpolation: to turn the staircase into a curve afterward, set the property strip's Interp control to Bezier or Linear yourself (see Interpolation).

For a button parameter (a kill switch), the step set is fixed to the control's own two-level shape. Attach, Change, Detach and Save Set are all absent; only the two labels can be renamed (see below).


Editing the steps on the canvas

Once a step set is attached, the labels running down the left edge of the canvas (the gutter) are the click target for editing steps. The dashed line body is for adding an anchor, same as on any curve. Click or right-click a label to open a menu:

  • Rename… — an inline input replaces the label; type the new name and press Enter, or click away to commit.
  • Add step above / Add step below — inserts a new level next to this one (above means up-screen, a higher value). The new level gets a placeholder name you'll usually want to replace.
  • Delete step — removes this level. Disabled once the set is down to 2 levels; a step set can never have fewer.

A step set holds at most 16 levels, the same cap as the anchor count on any curve.

For a button parameter the menu only offers Rename; its two-level shape is fixed.

These edits change only this lane's copy of the step set. The catalog entry, bundled or user, is untouched unless you explicitly save over it (see below).

What moves when you add or delete a step

Adding or deleting a level re-spaces every step evenly across the full range. Existing anchors move with the name they're sitting on: wherever that name ends up on the re-spaced ladder is where the anchor goes. Insert a step below "1/8" and every anchor that was sitting on "1/8" moves up-screen along with it, tracking the beat fraction the DJ actually chose.

So adding or removing a step visibly reshapes the curve. Leaving an anchor at its old screen height, once the level's meaning had shifted, would detach it from the name the DJ actually picked.

Deleting a level that has anchors sitting on it snaps those anchors to the nearest remaining level. Renaming a level moves nothing. Only Add and Delete re-space the ladder.


Saving a custom step set

When you've built a step set worth reusing (a specific set of echo timings for a favorite effect, say, or a four-position selector with custom labels), save it to your library. The next fusor you build can then attach the same step set in one click.

  1. With the lane in stepped mode and the labels the way you want them, click Save Set… on the property strip.
  2. The Toolbox opens with a new draft pre-filled from the lane's current steps. Enter a Name (required), an optional Description, and any DJ apps the step set should be tagged for. Leave the apps field empty to save it as universal, which shows it for every DJ app. The id is derived from the name (lowercase, prefixed user.) and shown live below the name field.
  3. Click Save in the Toolbox. The step set is written to your library's step_sets/ folder (Documents/Fusor/step_sets/ by default) as a single JSON file, and is immediately available in the picker with no app restart needed.

If the name you chose matches a step set you already saved, Fusor Studio asks whether to overwrite it rather than refusing the name. Overwriting replaces that set's steps; its description and DJ apps are kept unless you typed your own. Cancel instead and your draft is untouched, so you can pick a different name. Bundled step sets can't be overwritten, so those always need a new name.

A stored step set is just an ordered list of labels: every level sits at an even fraction of the range, first at 0 and last at 1, evenly spaced in between. If this lane's step values have been hand-set to something uneven, which can only happen by hand-editing a .fusor file, the save is blocked with an explanation rather than silently discarding the custom values. If you genuinely need uneven values, keep the lane as a free curve with Interp: Hold rather than trying to save it as a step set. See Two ways to get sample-and-hold above.

User step sets show up in the picker alongside bundled step sets, with a User badge so you can tell them apart. To update a set you already saved, save over it from a lane as above, select it in the Toolbox's library list and edit it there, or click Edit on it in the picker. See Toolbox: Step Set Library for the full builder: one place to create, edit, and overwrite step sets, whether you land there from a lane's Save Set… or from the App menu.


The Toolbox: managing your step set library

Save Set… on a lane opens the Toolbox pre-filled with that lane's steps, captured at the moment you click. The same window is also reachable directly, with no fusor open at all, for building and organizing step sets on their own. See Toolbox: Step Set Library.


Example: naming the levels of a discrete effect

djay's Echo effect has four selectable types. The "amount" knob is continuous on the wire but only four positions matter musically.

  1. Open a lane targeting the djay FX amount address for the deck running Echo.
  2. Click Attach… on the property strip. None of the bundled step sets match four named echo types, so pick Off / Low / Mid / High as a starting point and click Apply to this lane. You'll rename its levels next.
  3. Rename each level: click the first gutter label, choose Rename…, and type Echo 1. Repeat for the remaining three labels (Echo 2, Echo 3, Echo 4).
  4. Click Save Set…. The Toolbox opens with the four labels already carried over; name the step set "djay Echo Types" there and save it. The next djay-Echo fusor you build can attach it directly instead of repeating step 3.
  5. Add an anchor for each point where you want the echo type to change: click Add in the footer, then drag the new anchor to the progress point you want. Each anchor snaps to one of the four labels; the staircase between them confirms there's no interpolation.
  6. At runtime, Fusor Studio emits the exact step value at each anchor and holds it until the next step.

If the four echo types genuinely needed uneven amounts instead of evenly-spaced ones (say 0.1, 0.3, 0.5, 0.9), a step set isn't the right tool, since a stored step set is always evenly spaced. Leave the lane on a free curve with Interp: Hold instead: anchors can sit at any height, and the curve still won't interpolate between them.


Tips

  • Save reusable step sets to your library, or build them ahead of time in the Toolbox. If the same four echo timings turn up across several fusors, save them once and attach them from then on.
  • Two anchors at the same step level produce a flat hold, which pins a level across a stretch of the transition before stepping.
  • The picker filter is soft: clicking the traktor chip narrows to Traktor step sets but keeps the universal ones visible. Click All to see everything.
  • Adding or deleting a step reshapes the curve, because anchors move with the level's name as the ladder re-spaces. See What moves when you add or delete a step above.
  • Detach is safe to try: it only drops the constraint, the lane's current output doesn't change, and re-attaching is one click away.