2025-05-30

envelopes

defines how the envelopes properties vary by partial index - allowing individualized attack, decay, sustain, and delay across the spectrum. used for sculpting spectral motion and micro-timbral events.

introduction

this domain governs how individual partials modify their amplitude contour parameters within a shared global envelope shape. the global shape is selected from a fixed family of spline-based forms (see envelope domain). this domain controls four parameters that modulate the behavior of those forms per partial: attack time, decay/release time, sustain level, and start delay.

each stage is implemented as a static, parametric function across partial index n ∈ [1, N], defined by two parameters a, b ∈ [0,1]. all behaviors are statically scheduled, strictly additive, and determined without signal-domain shaping or filtering.

this domain enables construction of distinct temporal behaviors across harmonic and inharmonic partials, supporting both percussive transients and evolving textures, through systematic deformation of envelope parameters.

overview

attack time maps

maps partial index n to time from onset to peak (or peak-aligned surrogate)

  • 0: linear rise attack time increases linearly across partials

    • a: minimum attack (scaled 0…global maximum)
    • b: maximum attack
  • 1: exponential rise faster attack for higher partials, shaped exponentially

    • a: curve shape (0 = linear, 1 = steepest)
    • b: total range of attack times
  • 2: uniform random attack time is random in [min, max] for each partial

    • a: minimum attack

    • b: maximum attack

decay/release time maps

maps n to time from peak to zero or sustain

  • 0: inverse decay decay time ∝ 1 / nᵏ — lower partials decay faster

    • a: decay exponent (mapped to [0…2])
    • b: decay time scale
  • 1: gaussian profile decay centered on a target partial with bell-shaped falloff

    • a: center partial index (0 = lowest, 1 = highest)
    • b: spread width (0 = narrow, 1 = wide)
  • 2: grouped steps partials grouped into m decay bands, each with a flat value

    • a: number of groups (mapped from 2 to 16)

    • b: intra-group time offset (local variation)

sustain level maps

maps n to the steady-state amplitude held after attack/decay

  • 0: threshold gate sustain level is 1 below threshold index, 0 above

    • a: threshold index (0 = all on, 1 = all off)
    • b: (unused)
  • 1: linear slope sustain level interpolates linearly between two values

    • a: level at lowest partial
    • b: level at highest partial
  • 2: beta profile sustain follows a beta(α, β) shape across partial index

    • a: beta α (controls skew and peak position)

    • b: beta β (controls tail and curvature)

start delay maps

maps n to a delay offset before the envelope begins

  • 0: no delay all partials begin at time zero

    • no parameters
  • 1: linear spread delays increase evenly from first to last partial

    • a: maximum delay (scaled to time-base)
    • b: (unused)
  • 2: rhythmic grid delays are quantized to m rhythmic positions, with swing

    • a: number of grid steps (mapped 1 to 32)

    • b: swing amount (0 = even, 1 = maximum offset)

parameter behavior summary

each form is controlled by two parameters a and b, mapped internally to perceptually meaningful quantities:

  • attack maps

    • linear rise

      • a: minimum attack
      • b: maximum attack
    • exponential rise

      • a: curve steepness
      • b: total range
    • uniform random

      • a: minimum attack
      • b: maximum attack
  • decay/release maps

    • inverse decay

      • a: decay exponent
      • b: decay scale
    • gaussian profile

      • a: center partial index
      • b: spread width
    • grouped steps

      • a: number of groups
      • b: intra-group offset
  • sustain level maps

    • threshold gate

      • a: cutoff index
      • b: -
    • linear slope

      • a: start level
      • b: end level
    • beta profile

      • a: alpha shape
      • b: beta shape
  • start delay maps

    • no delay

      • no parameters
    • linear spead

      • a: maximum delay
      • b: -
    • rhythmic grid

      • a: number of grid steps

      • b: swing amount

why these were chosen

this domain spans key perceptual behaviors with minimal, irreducible forms:

  • linear, exponential, and random gradients over partial index
  • focused, grouped, or gated shaping via gaussian, beta, or steps
  • asynchronous layout via delay grids or spreads
  • structured yet static modulation of global envelope parameters each form is:
  • continuous or discretely structured
  • uniquely non-redundant in shaping behavior
  • capable of supporting natural, synthetic, or abstract dynamic profiles

this enables precise control over the spectral evolution of a note, without requiring separate envelopes for every partial.

what is not included

  • independent envelope forms per partial (violates structural consistency)
  • reactive, gated, or runtime-varying envelope modulation
  • interpolation between shaping forms
  • dynamic envelope topologies or user-defined breakpoints excluded features would either compromise static scheduling or duplicate the role of the envelope layer.

conclusion

the envelopes domain modulates the parameter fields of global envelope shapes across the partial spectrum. it provides a compact, statically-defined mapping from partial index to four perceptually grounded behaviors. together with the global envelope shape and static timing infrastructure, it enables detailed sculpting of partial-specific amplitude behavior while maintaining system clarity, determinism, and composability.