elements

elements · sources · schema v1

Modal / physical-modeling voice (Mutable Instruments Elements archetype, Émilie Gillet, 2014, MIT-licensed). Faithful TypeScript port of the eurorack/elements/ DSP. An EXCITER section feeds a modal RESONATOR: BOW (FLOW noise + bow-table friction band-waveguide), BLOW (filtered noise through a waveguide TUBE when pushed past unity) and STRIKE (mallet impulse / particle cloud / plectrum, meta-morphed by MALLET) each have level + timbre. The RESONATOR is a bank of up to 64 parallel state-variable bandpasses: GEOMETRY stretches the partials (harmonic→inharmonic/bell), DAMPING sets Q/decay, BRIGHTNESS biases high-mode energy, POSITION drives a cosine-oscillator pickup comb with a slow-LFO second tap for the stereo aux channel. SPACE blends raw exciter → dry → reverb and widens the stereo spread. PITCH is V/oct, NOTE a ±60-semitone offset, STRENGTH an accent. Outputs main / aux (stereo). FAITHFUL: exciters, modal resonator, tube, envelope, stereo mixdown + soft-limit. SIMPLIFIED: SPACE reverb tail is a compact FDN-lite (not MI reverb.h); sample-ROM exciters use synthetic equivalents; STRING resonator model deferred.

A modal physical-modeling voice (a port of Mutable Instruments Elements): instead of an oscillator you have THREE exciters that inject energy into a tuned modal resonator, like rubbing, blowing, or hitting a physical object. BOW is continuous friction (a smooth, sustained scrape, as on a bowed string). BLOW is breath/air noise shaped by a tube (its Flow + Timbre give everything from a flute to a rush of wind). STRIKE is a percussive impact (a mallet hit, scattered particles, or a plucked pluck). You blend the three by their LEVEL knobs and they sum into the RESONATOR — a bank of tuned filters whose GEOMETRY, BRIGHTNESS, DAMPING, and POSITION sculpt the virtual body (string vs. plate vs. bell, how bright, how long it rings, where it's struck). The resonator's output then runs through SPACE, a single meta-knob that goes from bone-dry, through stereo widening, into reverb, and finally a frozen infinite tail. A GATE plays the note (it opens the exciter envelope); PITCH (V/oct) and the Note knob tune it. You can also feed an external signal into the resonator instead of (or alongside) the built-in exciters to 'play' the body with any sound. Two outputs (MAIN + AUX) form a stereo pair.

the faceplate

elementsinaudiostrike_inaudiopitchpitchgategatenote_cvcvenv_cvcvbowlvl_cvcvbowtim_cvcvblowlvl_cvcvblowmeta_cvcvblowtim_cvcvstrklvl_cvcvstrkmeta_cvcvstrktim_cvcvgeom_cvcvbright_cvcvdamp_cvcvpos_cvcvspace_cvcvstrength_cvcvmainaudioauxaudioaudiocvgatepitch
20 inputs · 2 outputs · 16 params

inputs

idcablewhat it does
inaudioExternal excitation input — an audio signal mixed in alongside the BOW/BLOW/STRIKE exciters so you can drive the modal resonator with any external sound (a drum loop, another voice, noise) and hear it 'resonated' through the body. Unpatched it contributes nothing and the built-in exciters play the voice on their own.
audio signal
strike_inaudioExternal per-strike impulse input — an audio signal injected at the STRIKE stage to excite the resonator with an outside transient (e.g. a click or click-track) in place of the internal mallet/particle exciter. Unpatched it does nothing; the internal STRIKE exciter still fires on the gate.
audio signal
pitchpitch1V/oct pitch CV. Sums with the Note knob to set the resonator's fundamental frequency; 0V plays the base note (≈ C4) and each volt shifts an octave.
V/oct pitch CV
gategateThe note gate (a GATE, level-sensitive on both edges): while it is high the BOW and BLOW exciters sustain and the exciter envelope holds open; its rising edge also retriggers/strikes the STRIKE exciter, and its falling edge starts the release. Hold it for a sustained bow/blow tone, pulse it for plucks and hits.
gate / trigger
note_cvcvCV that displaces the Note control, transposing the played pitch in semitones (sums on top of the pitch input).
control voltage (CV); modulates note (additive offset — ±1 CV sweeps the full range, centered on the knob)
env_cvcvCV that displaces the Env control, modulating the exciter envelope's shape (how percussive vs. sustained the excitation is).
control voltage (CV); modulates envShape (additive offset — ±1 CV sweeps the full range, centered on the knob)
bowlvl_cvcvCV that displaces the Bow control, modulating how much of the continuous-friction BOW exciter feeds the resonator.
control voltage (CV); modulates bowLevel (additive offset — ±1 CV sweeps the full range, centered on the knob)
bowtim_cvcvCV that displaces the Bow Tmb control, modulating the BOW exciter's tone (its friction-table brightness, also tracked by the resonator's brightness).
control voltage (CV); modulates bowTimbre (additive offset — ±1 CV sweeps the full range, centered on the knob)
blowlvl_cvcvCV that displaces the Blow control, modulating how much of the breath/air BLOW exciter feeds the resonator.
control voltage (CV); modulates blowLevel (additive offset — ±1 CV sweeps the full range, centered on the knob)
blowmeta_cvcvCV that displaces the Flow control (the BLOW exciter's meta/character — the granularity and turbulence of the breath).
control voltage (CV); modulates blowMeta (additive offset — ±1 CV sweeps the full range, centered on the knob)
blowtim_cvcvCV that displaces the Blow Tmb control, modulating the BLOW exciter's tone (the air noise's spectral tilt / tube colour).
control voltage (CV); modulates blowTimbre (additive offset — ±1 CV sweeps the full range, centered on the knob)
strklvl_cvcvCV that displaces the Strike control, modulating how much of the percussive STRIKE exciter feeds the resonator (high values bleed extra raw impact into the body).
control voltage (CV); modulates strikeLevel (additive offset — ±1 CV sweeps the full range, centered on the knob)
strkmeta_cvcvCV that displaces the Mallet control (the STRIKE exciter's meta — it morphs the impact model from a soft mallet through to scattered particles).
control voltage (CV); modulates strikeMeta (additive offset — ±1 CV sweeps the full range, centered on the knob)
strktim_cvcvCV that displaces the Strike Tmb control, modulating the STRIKE exciter's tone (the hardness/brightness of the impact).
control voltage (CV); modulates strikeTimbre (additive offset — ±1 CV sweeps the full range, centered on the knob)
geom_cvcvCV that displaces the Geometry control, reshaping the resonator's modal layout (the inharmonicity / 'body shape' — string toward plate/bell).
control voltage (CV); modulates geometry (additive offset — ±1 CV sweeps the full range, centered on the knob)
bright_cvcvCV that displaces the Brightness control, modulating the resonator's high-frequency content (how much energy survives in the upper partials).
control voltage (CV); modulates brightness (additive offset — ±1 CV sweeps the full range, centered on the knob)
damp_cvcvCV that displaces the Damping control, modulating how fast the resonator's partials decay (short, muted ring vs. long sustain).
control voltage (CV); modulates damping (additive offset — ±1 CV sweeps the full range, centered on the knob)
pos_cvcvCV that displaces the Position control, moving the virtual pickup point along the body and combing the partials (changes which harmonics are emphasised).
control voltage (CV); modulates position (additive offset — ±1 CV sweeps the full range, centered on the knob)
space_cvcvCV that displaces the Space control, sweeping the dry → stereo-spread → reverb → freeze meta-amount.
control voltage (CV); modulates space (additive offset — ±1 CV sweeps the full range, centered on the knob)
strength_cvcvCV that displaces the Strength control, modulating the excitation strength / accent (how hard the voice is driven).
control voltage (CV); modulates strength (additive offset — ±1 CV sweeps the full range, centered on the knob)

outputs

idcablewhat it does
mainaudioThe primary modal-voice output — the resonator's centre/right channel after the SPACE mixdown and soft-limiting. Use it on its own for a mono patch.
audio signal; L/R stereo pair with aux
auxaudioThe stereo partner of MAIN — the resonator's side/left channel (a slightly different pickup tap via a slow internal LFO), so MAIN + AUX together give a stereo image whose width grows with SPACE. At very low SPACE this channel also carries the dry, un-resonated exciter signal (the 'raw' tap), so AUX can double as a direct exciter output. The two share the stereoPairs grouping (MAIN = right, AUX = left).
audio signal; L/R stereo pair with main

params

idlabelrangedefaultcurve
noteNote-60..60st0linear
envShapeEnv0..11linear
bowLevelBow0..10linear
bowTimbreBow Tmb0..10.5linear
blowLevelBlow0..10linear
blowMetaFlow0..10.5linear
blowTimbreBlow Tmb0..10.5linear
strikeLevelStrike0..10.8linear
strikeMetaMallet0..10.5linear
strikeTimbreStrike Tmb0..10.5linear
geometryGeometry0..10.2linear
brightnessBrightness0..10.5linear
dampingDamping0..10.25linear
positionPosition0..10.3linear
spaceSpace0..20.3linear
strengthStrength0..10.5linear

controls

controlwhat it does
BlowBLOW exciter level (labeled Blow): how much breath/air-noise excitation (shaped by a tube model) is injected into the resonator. 0 = no blow.
FlowBLOW character (labeled Flow): the meta-parameter of the breath model — the granularity and turbulence of the air, from a smooth steady stream to a rough, bubbling flow.
Blow TmbBLOW tone (labeled Blow Tmb): the spectral tilt / tube colour of the breath noise — from a dark, hollow air sound to a bright, hissy one.
BowBOW exciter level (labeled Bow): how much continuous-friction excitation (a smooth, sustained scrape, like a bow on a string) is injected into the resonator. 0 = no bow.
Bow TmbBOW tone (labeled Bow Tmb): the brightness/character of the friction excitation — from a soft, dark bow to a scratchy, bright one. The resonator's brightness also colours it.
BrightnessResonator brightness: how much energy survives in the upper partials — dark and woody at low settings, bright and metallic at high settings. Also feeds the BOW timbre.
DampingResonator damping: how fast the partials lose energy — low values ring long and sustain, high values decay quickly into a short, muted body.
EnvExciter envelope shape (labeled Env): morphs the excitation from a short percussive blip (fast decay, no sustain) up through to a held, fully-sustained excitation while the gate is high — i.e. how plucked vs. bowed the voice feels.
GeometryResonator geometry: reshapes the modal layout / inharmonicity of the virtual body, sweeping from a near-harmonic string toward plate-, bar-, and bell-like stretched/clustered partials.
NoteCoarse tune of the played note in semitones (sums with the pitch input's V/oct); sets the resonator's fundamental.
PositionPickup position along the resonator body: combs the partials (emphasising or notching harmonics) the way moving where you pluck/listen changes a string's tone; also sets the stereo side-channel offset.
SpaceSPACE meta-knob (0–2): one knob that sweeps the ambience. Near 0 the voice is bone-dry (and AUX carries the raw exciter); rising into the low range adds stereo SPREAD (widening MAIN/AUX); past the midpoint it crossfades in a REVERB whose tail lengthens as you go up; near the top (~1.75+) the reverb FREEZES into an infinite, self-sustaining tail.
StrengthExcitation strength / accent: scales how hard the exciters drive the resonator (an overall accent/intensity), from a gentle, soft voice to a hard-driven, louder one.
StrikeSTRIKE exciter level (labeled Strike): how much percussive-impact excitation (mallet / particles / pluck) is injected into the resonator on each gate. Past unity it also bleeds extra raw impact straight into the body.
MalletSTRIKE character (labeled Mallet): the meta-parameter that morphs the impact model — from a soft, single mallet hit through to scattered, granular particles.
Strike TmbSTRIKE tone (labeled Strike Tmb / Strk Tmb): the hardness/brightness of the impact — from a soft, muffled thud to a sharp, bright click.

source

elements.ts on GitHub.

Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo