Skip to main content

Parameters

Almost every control in Sensory Percussion is a parameter: a single named value belonging to a module, an effect, a modulator, or a macro. They all behave the same way, so once you know the handful of gestures below, they work everywhere.

Types

A parameter's type decides what it can hold, and that in turn decides which control you see.

TypeLooks likeHolds
ContinuousSlider, knob, number boxA number over a range, often with units (ms, Hz, %, dB). The range can be linear or curved, so the middle of the travel isn't always the middle of the numbers.
IntegerNumber box, stepped sliderA whole number, like a MIDI channel or a voice count.
ToggleSwitch, tick, lit buttonOn or off.
TriggerButton, LEDNothing at all — it fires an action, so there's no value to store.
ListDropdown, radio rowOne choice out of a fixed set.
TextText fieldA name, a path, an OSC address.

Working with a control

GestureWhat it does
DragChange the value. Number boxes take a vertical drag; sliders and knobs follow their track.
Double-clickReset to the parameter's default. Works on the controls with a range to return to: sliders, knobs, and number boxes.
TypeStart typing a number over a focused slider or number box and an edit field opens. Enter commits.
Arrow keysNudge a focused slider up or down by one step.
Mouse wheelThe same as a small drag, once the control has focus.
Right-clickOpen the parameter menu: assignments, copy to siblings, and live values.

Number boxes also take precision modifiers. Hold Shift while dragging or scrolling for a fine adjustment, or for a coarse one. The pointer disappears while you drag and reappears where it started, so you can keep dragging past the edge of the screen.

The parameter menu

Right-clicking a parameter is how you reach everything it can do.

A screenshot of the right-click menu on a sampler's transpose parameter

Assignments

An assignment lets something else drive a parameter — your playing, a modulator, a macro, or incoming MIDI. A parameter with at least one assignment gets a yellow underline beneath its control.

Only parameters with something to move can be assigned: continuous values, integers, toggles, and triggers. Lists and text fields can't.

To create one, either drag a source onto the control — valid targets highlight as you drag — or right-click and use New Assignment, which asks for the type (how the source drives the value) and the source (which input, modulator, or macro it comes from). The Assignments and Modulators page covers the available types and what each one does.

The rest of the menu handles assignments that already exist:

ItemWhat it does
Edit AssignmentsOpens the assignment editor for this parameter. Greyed out when there aren't any.
Go to sourceJumps to the modulator or input driving the parameter.
RemoveDeletes an assignment, picked by name.

Some assignments are refused because they couldn't work: a parameter can't drive itself, the same source can't be connected twice, and any pair that would form a loop is rejected.

Copying to siblings

If you need to set the same value on the same parameter across several objects at the same level — the same control on every layer, say — the menu offers Copy value to N siblings and Copy N assignments to N siblings. Set it once on one of them, then spread it across the rest.

Live values

A parameter can hold two different numbers at once:

  • The saved value is what's written into your session, and what comes back when you reload it.
  • The live value is what the engine is actually using right now. Assignments driven by your playing, macros, and incoming OSC or MIDI all move parameters without touching the saved value.

Most of the time these agree. They come apart the moment something other than your own edit moves a control — and then the question is which of the two should survive into the file.

Two modes

Remember live changes is the default: the live value is the value. Saving writes whatever the engine is currently using, so a session comes back sounding exactly as you left it, including everything your playing moved.

Manual makes the saved value the value. Live movement is temporary, and is discarded on save unless you deliberately commit it. This is worth reaching for when you've dialed a session in by hand and don't want a performance quietly rewriting it.

The app-wide default is in Settings → General under Remember live changes.

The divergence dot

In manual mode, a small light blue dot appears on any control whose live value has drifted from its saved one. It shows up on number boxes, sliders, knobs, toggles, and decibel sliders.

The dot means: what you are hearing is not what will be saved.

A screenshot of a Hi Cutoff knob showing the light blue divergence dot and the yellow assignment underline

There's no dot in Remember live changes mode, since there's nothing to reconcile — the live value is already the one headed for the file. It also hides while you're actively dragging a control, so it doesn't flicker under your own hand.

Deciding what to keep

Right-clicking a diverged control adds two more items to the parameter menu:

ItemWhat it does
Save live value to stateCommits the live value. It becomes the saved value and the dot clears.
Reset to saved statePushes the saved value back out to the engine, overwriting the live value and returning the sound to what's in the file.

A screenshot of the parameter menu on a diverged control, showing the two live-value items at the bottom

Both are undoable, and both appear only in manual mode, on a parameter that has actually diverged. Macros carry the same pair.

Per-module override

Right-click a module or effect — anywhere that isn't a control — for a Live values section at the bottom of the menu. Remember live changes there pins that module to a mode of its own, overriding the app-wide setting.

A screenshot of the right-click menu on a Reverb effect with the Live values submenu open

The override is inherited: it applies to everything inside the module, and a nested module can override it again for its own contents. A parameter with no override anywhere above it falls back to the app-wide setting.

In manual mode, once something below has diverged, the same section also offers Save to state and Reset to saved, each in a this module and an incl. children variant. The second reaches all the way down through child modules, effects, modulators, and macros.