Reference

The Defwhistler — every control

Prime-sequenced wall synthesizer.

78 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.

The Defwhistler — $19

A prime-sequenced wall synthesizer. Three voices sit in a cross-feedback loop driven by the first eight primes above three. Their combined orbit is 9,699,690 steps, so the pattern never audibly repeats — it is a drone that keeps moving without ever arriving.

Voices

Mass Freq

Frequency of the Mass voice, 20 Hz to 4 kHz.

Range 20 to 4000 · default 110 · automatable · voiceFreqA

Used for: chordal tuning, beating detune.

Mass Mix

Level of the Mass voice into the sum.

Range 0 to 1 · default 0.7 · automatable · voiceMixA

Used for: foregrounding a voice.

Mass Fold

Wavefolder depth on the Mass voice - what turns a sine into something with edges.

Range 0 to 1 · default 0.3 · automatable · voiceFoldA

Used for: adding edge, metallic tone.

Cluster Freq

Frequency of the Cluster voice, 20 Hz to 4 kHz.

Range 20 to 4000 · default 154 · automatable · voiceFreqB

Used for: chordal tuning, beating detune.

Cluster Mix

Level of the Cluster voice into the sum.

Range 0 to 1 · default 0.5 · automatable · voiceMixB

Used for: foregrounding a voice.

Cluster Fold

Wavefolder depth on the Cluster voice - what turns a sine into something with edges.

Range 0 to 1 · default 0.3 · automatable · voiceFoldB

Used for: adding edge, metallic tone.

Collapse Freq

Frequency of the Collapse voice, 20 Hz to 4 kHz.

Range 20 to 4000 · default 220 · automatable · voiceFreqC

Used for: chordal tuning, beating detune.

Collapse Mix

Level of the Collapse voice into the sum.

Range 0 to 1 · default 0.4 · automatable · voiceMixC

Used for: foregrounding a voice.

Collapse Fold

Wavefolder depth on the Collapse voice - what turns a sine into something with edges.

Range 0 to 1 · default 0.3 · automatable · voiceFoldC

Used for: adding edge, metallic tone.

Collapse Chaos

Destabilises the Collapse voice, and scales how much Uncertainty reaches it as noise.

Range 0 to 1 · default 0 · automatable · voiceChaos

Used for: breaking up a voice.

Source Wave A

Waveform of the Mass voice.

Range 0 to 7 · default 0 · automatable · src_a

Used for: choosing a timbre.

Source Wave B

Waveform of the Cluster voice.

Range 0 to 7 · default 0 · automatable · src_b

Used for: choosing a timbre.

Source Wave C

Waveform of the Collapse voice.

Range 0 to 7 · default 0 · automatable · src_c

Used for: choosing a timbre.

Prime sequencer

Prime Step

Which of {5,7,11,13,17,19,23,29} is current. -1 is auto - the sequencer free-runs - and 0..7 holds that prime. The old note that it only has an effect at Prime Tempo 0 was wrong twice over - the range was 0.01, not 0, and the control was not reaching the DSP at all.

Range 0 to 7 · default 0 · automatable · primeStep

Used for: holding one relationship.

Prime Tempo

Auto-advance rate, 0.01 to 20 Hz. At 0 the sequencer holds and Prime Step chooses.

Range 0.01 to 20 · default 1 · automatable · primeTempo

Used for: slow pitch drift, rhythmic stepping.

Prime Target

Which voice the current prime modulates. 3 is all three.

Range 0 to 3 · default 3 · automatable · primeTarget

Used for: one voice moving, whole instrument moving.

Prime Amount

How much the current prime deviates pitch and phase.

Range 0 to 1 · default 0.5 · automatable · primeAmount

Used for: microtonal drift, wide interval leaps.

Fader

Fader Threshold

Envelope level whose downward crossing counts as a cut. Needs an audio input to do anything.

Range 0 to 1 · default 0.3 · automatable · faderThresh

Used for: turntablist cuts.

Fader Gate Ms

How long the output is gated once a cut has fired, 1 to 500 ms.

Range 1 to 500 · default 50 · automatable · faderGateMs

Used for: stutter, chopping.

Cross-feedback

Send A-B

Mass into Cluster.

Range 0 to 1 · default 0.2 · automatable · sendAtoB

Used for: coupling voices.

Send B-C

Cluster into Collapse.

Range 0 to 1 · default 0.2 · automatable · sendBtoC

Used for: coupling voices.

Send C-A

Collapse back into Mass, closing the loop.

Range 0 to 1 · default 0.2 · automatable · sendCtoA

Used for: unstable coupling.

Input-FB

External audio into the feedback loop.

Range 0 to 1 · default 0.1 · automatable · inputToFB

Used for: processing a source.

Choke

Gates the loop into the wall engine.

Range 0 to 1 · default 0 · automatable · chokeToWall

Used for: choking the wall.

Uncertainty

Uncertainty

Seeded sample-and-hold at 3 Hz. Deviates all three voice pitches by up to 3%, and feeds noise through Collapse Chaos.

Range 0 to 1 · default 0.3 · automatable · uncertainty

Used for: mechanical instability.

Safety

Governor Thresh

Level above which the high-band limiter engages.

Range 0 to 1 · default 0.85 · automatable · governorThresh

Used for: controlling runaway.

Governor Decay

How quickly the governor lets go.

Range 0 to 1 · default 0.3 · automatable · governorDecay

Used for: breathing top end.

Master

Drive

tanh saturation on the sum.

Range 0 to 1 · default 0.4 · automatable · masterDrive

Used for: pressure, loudness.

Width

Stereo spread, derived from the difference between the Mass and Collapse voices.

Range 0 to 1 · default 0.5 · automatable · masterWidth

Used for: widening the wall.

Output

Final level.

Range 0 to 2 · default 0.8 · automatable · masterOutput

Used for: matching bypass level.

Wall engine

Wall Freq A

Frequency of the wall engine's Mass source.

Range 20 to 4000 · default 110 · automatable · pw_freq_a

Used for: tuning the wall.

Wall Fold A

Wavefolder depth on the wall engine's Mass source.

Range 0 to 1 · default 0.3 · automatable · pw_fold_a

Used for: adding edge.

Wall Freq B

Frequency of the wall engine's Cluster source.

Range 20 to 4000 · default 154 · automatable · pw_freq_b

Used for: tuning the wall.

Wall Fold B

Wavefolder depth on the wall engine's Cluster source.

Range 0 to 1 · default 0.3 · automatable · pw_fold_b

Used for: adding edge.

Wall Freq C

Frequency of the wall engine's Collapse source.

Range 20 to 4000 · default 220 · automatable · pw_freq_c

Used for: tuning the wall.

Wall Fold C

Wavefolder depth on the wall engine's Collapse source.

Range 0 to 1 · default 0.3 · automatable · pw_fold_c

Used for: adding edge.

Wall Drive

Saturation on the wall engine's own output.

Range 0 to 1 · default 0.4 · automatable · pw_drive

Used for: wall pressure.

Wall Width

Stereo width of the wall engine.

Range 0 to 1 · default 0.6 · automatable · pw_width

Used for: widening the wall.

Wall Output

Wall engine output level.

Range 0 to 1 · default 0.8 · automatable · pw_output

Used for: balancing the engines.

Wall LFO0 Rate

Rate of the wall engine's first LFO.

Range 0.01 to 20 · default 0.3 · automatable · pw_lfo0_rate

Used for: slow movement.

Wall LFO1 Rate

Rate of the wall engine's second LFO.

Range 0.01 to 20 · default 0.7 · automatable · pw_lfo1_rate

Used for: cross rhythm movement.

Wall Mod En

Enables the wall engine's own modulation.

Range 0 to 1 · default 0 · automatable · pw_mod_en

Used for: static or moving wall.

Engine Blend

Blends the wall engine against the conduction core.

Range 0 to 1 · default 1 · automatable · pw_blend

Used for: choosing an engine, layering both.

Wall Source A

Waveform of the wall engine's Mass source.

Range 0 to 8 · default 0 · automatable · pw_src_a

Used for: choosing a timbre.

Wall Source B

Waveform of the wall engine's Cluster source.

Range 0 to 8 · default 0 · automatable · pw_src_b

Used for: choosing a timbre.

Wall Source C

Waveform of the wall engine's Collapse source.

Range 0 to 8 · default 0 · automatable · pw_src_c

Used for: choosing a timbre.

Modulation channel 0

MC0 Mode

What kind of modulator this channel is.

Range 0 to 9 · default 1 · automatable · mc0_mode

Used for: envelope or lfo.

MC0 Rise

Attack time.

Range 0 to 1 · default 0.3 · automatable · mc0_rise

Used for: percussive or swelling.

MC0 Fall

Release time.

Range 0 to 1 · default 0.7 · automatable · mc0_fall

Used for: short or sustained.

MC0 Shape

Curve between rise and fall.

Range -1 to 1 · default 0 · automatable · mc0_shape

Used for: linear or exponential feel.

MC0 Rate

Speed when free-running.

Range 0.01 to 20 · default 0.5 · automatable · mc0_rate

Used for: slow drift, audio rate modulation.

MC0 Bias

Offset applied to the output.

Range 0 to 1 · default 0 · automatable · mc0_bias

Used for: unipolar or bipolar.

MC0 Depth

How much reaches its destination.

Range 0 to 1 · default 0.5 · automatable · mc0_depth

Used for: subtle or extreme.

Modulation channel 1

MC1 Mode

What kind of modulator this channel is.

Range 0 to 9 · default 1 · automatable · mc1_mode

Used for: envelope or lfo.

MC1 Rise

Attack time.

Range 0 to 1 · default 0.3 · automatable · mc1_rise

Used for: percussive or swelling.

MC1 Fall

Release time.

Range 0 to 1 · default 0.7 · automatable · mc1_fall

Used for: short or sustained.

MC1 Shape

Curve between rise and fall.

Range -1 to 1 · default 0 · automatable · mc1_shape

Used for: linear or exponential feel.

MC1 Rate

Speed when free-running.

Range 0.01 to 20 · default 0.8 · automatable · mc1_rate

Used for: slow drift, audio rate modulation.

MC1 Bias

Offset applied to the output.

Range 0 to 1 · default 0 · automatable · mc1_bias

Used for: unipolar or bipolar.

MC1 Depth

How much reaches its destination.

Range 0 to 1 · default 0.5 · automatable · mc1_depth

Used for: subtle or extreme.

Modulation channel 2

MC2 Mode

What kind of modulator this channel is.

Range 0 to 9 · default 9 · automatable · mc2_mode

Used for: envelope or lfo.

MC2 Rise

Attack time.

Range 0 to 1 · default 0.1 · automatable · mc2_rise

Used for: percussive or swelling.

MC2 Fall

Release time.

Range 0 to 1 · default 0.1 · automatable · mc2_fall

Used for: short or sustained.

MC2 Shape

Curve between rise and fall.

Range -1 to 1 · default 0 · automatable · mc2_shape

Used for: linear or exponential feel.

MC2 Rate

Speed when free-running.

Range 0.01 to 20 · default 2 · automatable · mc2_rate

Used for: slow drift, audio rate modulation.

MC2 Bias

Offset applied to the output.

Range 0 to 1 · default 0.5 · automatable · mc2_bias

Used for: unipolar or bipolar.

MC2 Depth

How much reaches its destination.

Range 0 to 1 · default 0.5 · automatable · mc2_depth

Used for: subtle or extreme.

Filter

Filter Cutoff

Corner frequency of the state-variable filter.

Range 20 to 20000 · default 4000 · automatable · fx_cut

Used for: sweeps, darkening.

Filter Resonance

Emphasis at the corner.

Range 0 to 1 · default 0.2 · automatable · fx_res

Used for: acid style emphasis, self oscillation.

Filter Mode

Lowpass, bandpass or highpass.

Range 0 to 3 · default 0 · automatable · fx_mode

Used for: removing lows, isolating a band.

Filter Enable

Bypasses the filter.

Range 0 to 1 · default 0 · automatable · fx_en

Used for: a b comparison.

Sequencer

Seq Rate

Step rate of the internal sequencer.

Range 0.1 to 20 · default 2 · automatable · seq_rate

Used for: rhythmic patterning.

Macros

Macro Mass

Moves the three voice levels together.

Range 0 to 1 · default 0.5 · automatable · macro_mass

Used for: one knob thickness.

Macro Pressure

Moves drive and fold across the instrument.

Range 0 to 1 · default 0.5 · automatable · macro_pressure

Used for: loading the instrument.

Macro Motion

Moves modulation depth and rate.

Range 0 to 1 · default 0.5 · automatable · macro_motion

Used for: animating a static patch.

Macro Impact

Moves transient and envelope character.

Range 0 to 1 · default 0.5 · automatable · macro_impact

Used for: percussive or sustained.

Macro Deviation

Moves uncertainty and detuning.

Range 0 to 1 · default 0.5 · automatable · macro_deviation

Used for: instability.

Macro Reconciliation

Moves the instrument back towards stability.

Range 0 to 1 · default 0.5 · automatable · macro_reconciliation

Used for: recovering a patch.

How this page is made

Every parameter above comes from metadata/defwhistler.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.