Reference

Gantry — every control

Massed tone, and the wall behind it.

53 parameters, generated from the parameter registry and checked against the plug-in on every build — so this page and the software cannot describe different instruments. It says what each control does, not what it sounds like.

Version 0.9.1 · Windows x64 · VST3, CLAP and standalone · offline activation, no account, no telemetry.

Gantry — $17

One note puts up to sixteen oscillators on a tuning lattice and lets each of them drift. What you hear is the beating between them, the difference tones that beating throws off, and - as the loop gain approaches unity - the point where a feedback path stops decaying and starts sustaining. The mass is the instrument rather than an effect applied to one. SPREAD is measured in cents and its travel is weighted towards the small end, because the distance between two members decides what you hear rather than how much of it: under twenty cents they fuse into one thick tone, through sixty they shimmer, past two hundred they come apart into separate pitches. The display names the region you are in and reads the sounding members from the audio rather than from the knob positions, so drift moves the marks while every control stays still. Its oscillator mass and feedback wall are the same engines as the free Branca Series Rack modules - consumed rather than forked, so the two are one instrument rather than two that resemble each other. This is a 0.9.1 pre-release. All fifty-three controls are implemented and measurably reach the DSP, and all four of its display pages are drawn from measurements made on the audio thread. Every later version, including 1.0, is included.

Field

Voices

How many members the field has. Perceived density is roughly logarithmic in this, which is why the MASS macro doubles it rather than stepping it.

Range 1 to 16 · default 8 · automatable · field.voices

Distribution

How the members are spaced in pitch. Unison detunes around one note; Harmonic stacks the overtone series; Just uses whole-number ratios; Micro divides the spread evenly regardless of any tuning.

Range 0 to 3 · default 1 · automatable · field.distribution

Spread

How far the members diverge in tuning. Under about 20 cents they fuse into one thicker voice, by 60 they beat, by 200 they are rough, and past that they separate into distinguishable pitches.

Range 0 to 1200 · default 20 · automatable · field.spread_cents

Sections

Splits the field into this many groups, each tuned as its own stack. Harmonic and Just distributions only.

Range 0 to 2 · default 1 · automatable · field.sections

First partial

Which harmonic the stack starts on. Above 1 the fundamental is absent and the ear infers it, which is the third-bridge sound.

Range 1 to 16 · default 1 · automatable · field.first_partial

Taper

Level rolloff from the lowest member to the highest. At full the bottom of the field sits about 6 dB above the top.

Range 0 to 1 · default 0 · automatable · field.taper

Drift

Drift depth

How far each member wanders from its nominal tuning. About 40 cents of

Range 0 to 1 · default 0.15 · automatable · drift.depth

Drift rate

How fast the wandering is. The range matches Harmonic Pressure's.

Range 0 to 4 · default 0.02 · automatable · drift.rate

Drift coherence

At full, the whole field drifts together and sounds like an ensemble going out of tune with the room. At zero each member drifts on its own and it sounds like an ensemble that is alive.

Range 0 to 1 · default 1 · automatable · drift.coherence

Voice

Timbre

Weight of partials 2 to 4, the third-bridge harmonic stack.

Range 0 to 1 · default 0.3 · automatable · voice.timbre

Shimmer

Adds partials 5 and 7, which sit outside the stack and read as air.

Range 0 to 1 · default 0 · automatable · voice.shimmer

Jawari

Sitar bridge buzz: the string in unresolved contact with a curved bridge. A nonlinear contact model, and aggressive.

Range 0 to 1 · default 0 · automatable · voice.jawari

Wall

Density

Sweeps the four channels in one at a time rather than fading them together. It is a count, not a volume.

Range 0 to 1 · default 1 · automatable · wall.density

Drive

How hard the sum is pushed into the saturator.

Range 0 to 1 · default 0.3 · automatable · wall.drive

Character

Which saturation curve. Odd is a symmetric tanh, Even is asymmetric and tape-like, Full is a hard clip.

Range 0 to 2 · default 0 · automatable · wall.character

Width

Scales the stereo spread of the four channels. The shape of the wall stays fixed and only its breadth changes.

Range 0 to 1 · default 0.7 · automatable · wall.width

Tilt

Broadband spectral tilt. Negative is a low shelf up, about 4.5 dB at

Range -1 to 1 · default 0 · automatable · wall.tilt

Loop

Loop

How much of the output returns to the input. Reads 0 to 11. Ten is unity, where the loop sustains instead of decaying; past ten is the over-range, which is one notch covering a quarter as much ground as the others.

Range 0 to 1.25 · default 0 · automatable · loop.gain

Loop tone

Damping in the return path. Lower loses the top of the loop on each pass, which is what stops it building into noise.

Range 0 to 1 · default 0.8 · automatable · loop.tone

Recovery

How long the wall takes to come back after a collapse. 50 ms to 10 s.

Range 0 to 1 · default 0.3 · automatable · loop.recovery

Collapse depth

How far a collapse ducks the output. At full it is silence.

Range 0 to 1 · default 1 · automatable · loop.collapse_depth

Collapse

Drops the wall at once. It comes back at the rate Recovery sets.

Range 0 to 1 · default 0 · automatable · loop.collapse

Governor

Where the governor starts holding the loop back. Lower is a shorter leash and a loop that is harder to lose.

Range 0 to 1 · default 0.5 · automatable · loop.governor_threshold

Articulation

Swell

How long the field takes to reach full energy after a note begins.

Range 0.001 to 10 · default 0.05 · automatable · art.swell

Fall

How long it takes to fall away after the note ends. Also the time a stolen voice is crossfaded over, because cutting a 16-member mass is audible in a way that cutting one oscillator is not.

Range 0.001 to 20 · default 1 · automatable · art.fall

Curve

Shape of both stages. Negative is fast then slow, positive the reverse.

Range -1 to 1 · default 0 · automatable · art.curve

Velocity

How much note velocity sets the energy of the field.

Range 0 to 1 · default 0.5 · automatable · art.velocity

LFO

LFO rate

Free-running rate. Ignored when Sync is on.

Range 0.01 to 20 · default 1 · automatable · lfo.rate

LFO shape

Waveform. Random holds a new value at each cycle rather than sliding, so it steps the field instead of sweeping it.

Range 0 to 4 · default 0 · automatable · lfo.shape

LFO depth

Output level of the LFO before the matrix scales it.

Range 0 to 1 · default 0 · automatable · lfo.depth

LFO sync

Locks the LFO to host tempo.

Range 0 to 1 · default 0 · automatable · lfo.sync

Modulation envelope

Mod attack

Modulation envelope attack.

Range 0.001 to 10 · default 0.01 · automatable · menv.attack

Mod decay

Modulation envelope decay.

Range 0.001 to 10 · default 0.3 · automatable · menv.decay

Mod sustain

Modulation envelope sustain level.

Range 0 to 1 · default 0.7 · automatable · menv.sustain

Mod release

Modulation envelope release.

Range 0.001 to 20 · default 0.5 · automatable · menv.release

Modulation matrix

Slot 1 depth

Depth of matrix slot 1. Its source and destination live in the inspector.

Range -1 to 1 · default 0 · automatable · mod.slot0.depth

Slot 2 depth

Depth of matrix slot 2. Its source and destination live in the inspector.

Range -1 to 1 · default 0 · automatable · mod.slot1.depth

Slot 3 depth

Depth of matrix slot 3. Its source and destination live in the inspector.

Range -1 to 1 · default 0 · automatable · mod.slot2.depth

Slot 4 depth

Depth of matrix slot 4. Its source and destination live in the inspector.

Range -1 to 1 · default 0 · automatable · mod.slot3.depth

Slot 5 depth

Depth of matrix slot 5. Its source and destination live in the inspector.

Range -1 to 1 · default 0 · automatable · mod.slot4.depth

Slot 6 depth

Depth of matrix slot 6. Its source and destination live in the inspector.

Range -1 to 1 · default 0 · automatable · mod.slot5.depth

Macros

MASS

Voice count and wall density. Every quarter turn doubles the ensemble.

Range 0 to 1 · default 0 · automatable · macro.mass

SPREAD

Tuning divergence. The four regimes - fused, shimmer, rough, separate - get roughly a third of the travel each between them.

Range 0 to 1 · default 0 · automatable · macro.spread

WEIGHT

Register tilt and body: leans the field and the spectrum downward.

Range 0 to 1 · default 0 · automatable · macro.weight

BRIGHTNESS

Upper partials and bridge buzz, entering in three stages rather than together, so that the top of the control is usable.

Range 0 to 1 · default 0 · automatable · macro.brightness

MOVEMENT

Drift depth, rate and coherence at once. Walks from an ensemble drifting together to one where every member is on its own.

Range 0 to 1 · default 0 · automatable · macro.movement

PRESSURE

Drive and loop gain, to nominal and no further. Reaching the over-range takes the LOOP control and a deliberate act.

Range 0 to 1 · default 0 · automatable · macro.pressure

Global

Output

Master output. Macro gain compensation is never applied here: this stays exactly where you put it.

Range -60 to 12 · default 0 · automatable · global.output

Voice mode

Poly plays one field per held note. Mono plays one field, last note priority. Drone takes pitch from a note and never gates: the wall runs free, which is what the Rack modules are.

Range 0 to 2 · default 0 · automatable · global.voice_mode

Polyphony

How many notes sound at once in Poly. Each carries its own field of up to 16 members, so eight notes is 128 oscillators.

Range 1 to 8 · default 4 · automatable · global.voice_count

Glide

Time to slide from one pitch to the next.

Range 0 to 2 · default 0 · automatable · global.glide

Coarse tune

Transposes the whole instrument in semitones.

Range -24 to 24 · default 0 · automatable · global.tune_coarse

Fine tune

Transposes the whole instrument in cents.

Range -100 to 100 · default 0 · automatable · global.tune_fine

How this page is made

Every parameter above comes from metadata/gantry.yaml, the single definition of this instrument. The build refuses to publish if the C++ registrations, that file and this reference describe different instruments — and it refuses if any declared parameter fails to change the output, because a control that does nothing is the failure that passes every other test.