Modal Voice

SourcesmodalvoiceVery heavy CPU

Struck modal resonator — bells, mallets, metallic percussion.

What it does

Mallet-excited modal resonator voice.

Wraps daisysp::ModalVoice (click → LPF → resonator). A file-scope prev_trig snapshot detects rising edges; each edge is passed into Process(bool trigger) to strike the body. Accent + Sustain are baked at init.

Parameters

  • Structure

    structure
    Default 0.25Range 0 … 1

    Changes the character of the resonating body by altering how its modes are spaced, effectively how stiff the struck object is. Low values give tightly related modes that ring like a tuned bar or mallet instrument; higher values spread them apart into the inharmonic clusters that read as bells and metal. It changes what the object is made of rather than how hard you hit it. Per-sample, so it can be modulated.

  • Brightness

    brightness
    Default 0.5Range 0 … 1

    How much high-frequency content survives the strike, by opening the filter that sits between the exciter and the resonator. Low values sound like a soft mallet on a damped body; high values are a hard stick with plenty of initial clatter. It shapes the attack far more than the tail, which is Damping.

  • Damping

    damping
    Default 0.5Range 0 … 1

    How quickly the resonator loses energy after being struck, which is the decay length. Low values choke the sound almost immediately into a dry click or a woodblock; high values let it ring on for seconds like a bell or a struck bar. Together with Structure it is what decides whether the tile reads as percussion or as a tuned instrument.

  • Accent

    accent
    Default 0.5Range 0 … 1

    How hard each strike hits, scaling the energy put into the resonator. Louder strikes are not simply louder — a harder hit excites more of the upper modes, so this also brightens the attack, the way a real struck instrument does. ⚠ Baked at build time, so it sets one fixed strike strength rather than responding to velocity while the patch runs.

  • Sustain (bowed)

    sustain
    Default false

    Swaps the exciter from a single mallet strike to a continuous stream of noise, which turns the tile from struck to bowed or blown: it sounds for as long as it is running rather than decaying after a hit. ⚠ Baked at build time. With this on, Trig no longer starts a note in the way you would expect, since the excitation never stops.

Wire a pad/gate to Trig — each rising edge strikes the resonator once. Structure shifts the resonator character (stiffness), Brightness opens the tone, Damping sets decay time. Freq / Structure / Brightness / Damping accept Mod sources; Accent + Sustain bake at boot. Sustain swaps the mallet strike for continuous noise excitation (a bowed/blown drone).

Ports

In

  • Trig trigger
  • Freq frequency
  • Structure structure
  • Bright brightness
  • Damping damping

Out

  • Audio Out output

Audio Control

Inputs

Trig
Rising edge strikes the resonator.
Freq
Resonator root frequency (Hz).
Structure
Resonator character / stiffness, 0 → 1.
Bright
Brightness, 0 → 1.
Damping
Decay time, 0 → 1.

Outputs

Audio Out
Modal voice output.

Rules and gotchas

  • Accent + Sustain are baked at build time.