2025-05-30

envelope

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:

      • a = unused
      • b = unused
  • 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

    • description: overlapping transitions between notes

    • implementation:

      • linear hold phase
      • exponential fade-out
    • parameters:

      • a = fade length

      • b = fade start position (0 = note end, 1 = full blend)

parameter behavior summary

  • flat

    • a = unused
    • b = unused
  • 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 shaping
  • dynamics - for intra-note time variation
  • decorators - for local augmentations this layered approach ensures full control over amplitude shape from event level to fine-grain spectral detail.