defines the shared amplitude contour for a notes duration using parametric spline shapes (linear, exponential, power, bezier arc). forms express diverse attack and release behaviors without conditionals or gating.
envelope families
0: flat
- description: constant amplitude throughout note duration
- implementation: single linear segment at y = 1
parameters:
1: natural ramp
- description: curved rise into sustain, mimicking natural energy buildup (e.g. bow, breath, mallet)
implementation:
- exponential attack curve
- followed by linear sustain
parameters:
- a = attack duration (0 = fast, 1 = slow)
- b = curve shape (0 = steep, 1 = smooth); remapped to exponential gamma
2: synthetic click
- description: narrow impulse followed by flat sustain
implementation:
- power-rise to peak
- short exponential decay
- flat linear sustain
parameters:
- a = click duration (0 = instant, 1 = wide)
- b = spectral tilt (0 = sharp, 1 = smooth); mapped to both power and exponential gamma
3: tilt envelope
- description: flexible attack and release curvature
implementation:
- attack: bezier arc with curvature from a
- release: bezier arc with curvature from b
parameters:
- a = attack bend (0 = linear, 1 = curved); remapped to [–1, 1]
- b = release bend (0 = linear, 1 = curved); remapped to [–1, 1]
4: multiphase
- description: dynamic shape with attack, decay, and sustain
implementation:
- power curve for attack
- exponential decay to sustain
- flat sustain
parameters:
- a = relative attack time
- b = relative decay time
- both are normalized and rescaled to fit within note length
5: legato crossfade
parameter behavior summary
flat
natural ramp
- a = attack time
- b = exponential gamma (0.01 to 100)
synthetic click
- a = impulse width
- b = dual tilt (mapped to power gamma and exponential gamma)
tilt envelope
- a = attack bend (mapped to –1 to +1)
- b = release bend (mapped to –1 to +1)
multiphase
- a = attack ratio
- b = decay ratio
- both time-normalized and rescaled to full duration
legato crossfade
a = crossfade length
b = fade overlap point
why these were chosen
- flat - minimal reference for debugging and pure tone testing
- natural ramp - models breath/bow-based gestures with curvature control
- synthetic click - produces short impulses with fine shape control
- tilt envelope - general-purpose shape with direct curvature mapping
- multiphase - covers physical gestures with distinct attack and decay
- legato crossfade - enables smooth melodic transitions without retriggering
each shape:
- covers a distinct perceptual gesture
- uses only two parameters
- supports continuous variation across the space it defines
- cannot be mimicked by another shape in the set
what's not included
- multi-stage or sample-driven envelopes
- velocity- or controller-modulated shaping (covered by performance layer)
- gated, looping, or reactive envelopes (covered under
dynamics
) - stochastic or expressive variation (delegated to modulation or timing layers)
excluded features are delegated to other layers to preserve static determinism and parametric clarity.
conclusion
the envelope domain defines a single, global amplitude contour per note. each envelope family:
- uses two normalized parameters a, b ∈ [0, 1]
- is statically scheduled
- produces a
spline_path
descriptor composed of linear, exponential, power, or bezier-arc segments - guarantees continuous, musically useful variation across its space
together, these six forms span a wide expressive range of onset, sustain, and release behaviors while remaining compact, stateless, and composable within the system.
the envelope operates in coordination with:
envelopes
- for per-partial shapingdynamics
- for intra-note time variationdecorators
- for local augmentations
this layered approach ensures full control over amplitude shape from event level to fine-grain spectral detail.