2025-05-30

decorators

defines partial-level augmentations such as detuning, sideband FM, or noise injections. forms also control how these effects are applied across the partial spectrum — randomly, periodically, or by region.

partial decorator families

  • id 0: detuned twin

    • behaviour

      • adds a copy of the partial detuned by ±cents and mixed back in
    • parameters

      • a = detune amount in cents (0 = unison … 1 = 50 ¢)
      • b = level of twin relative to main (0 = mute … 1 = equal loudness)
  • id 1: sideband fm

    • behaviour

      • applies frequency-modulation to create upper + lower sidebands
    • parameters

      • a = modulation index (0 = none … 1 = strong)
      • b = modulator ratio (0 = 0.25 × carrier … 1 = 4 × carrier)
  • id 2: noise burst

    • behaviour

      • injects a short filtered-noise pulse at note onset for the partial
    • parameters

      • a = burst duration fraction of global attack (0 = skip … 1 = full attack span)
      • b = burst level (0 = silent … 1 = equal to partial peak)
  • id 3: lfo tremolo

    • behaviour

      • multiplies partial by a low-frequency oscillator to create amplitude tremolo
    • parameters

      • a = lfo rate hz (0 = 0.1 hz … 1 = 20 hz)

      • b = depth (0 = no tremolo … 1 = 100 % depth)

decorator spread families

  • id 0: random subset

    • behaviour

      • each partial is decorated with probability p
    • parameters

      • a = probability p (0 = never … 1 = always)
      • b = rng seed or phase (continuous 0…1 to vary patterns)
  • id 1: periodic nth

    • behaviour decorate every k-th* partial, starting at offset o
    • parameters

      • a = period k mapped 1…16 (1 = all partials, 16 = every 16th)
      • b = phase offset o (0 = start at partial 1 … 1 = start at partial k)
  • id 2: band-based

    • behaviour

      • apply decorator only to partials whose frequency lies inside a band
    • parameters

      • a = lower normalised cutoff (0 = fundamental … 1 = nyquist)

      • b = upper normalised cutoff (must be ≥ a)

usage pattern

  • choose one decorator family and set its a,b for how each affected partial will be processed
  • choose one spread family and set its a,b for which partials receive the decorator
  • optional: automate parameters over time or morph between several decorator+spread pairs because both layers are continuous, you can interpolate smoothly between no decoration and heavy processing, or fade decorations in and out across the spectrum without clicks or discontinuities.

example presets

  • shimmer chorus

    • decorator = detuned twin (a = 0.15 ≈ 15 ¢, b = 0.5)
    • spread = periodic nth (a = 2 → every 2nd partial, b = 0)
  • metallic grit

    • decorator = sideband fm (a = 0.8, b = 0.5)
    • spread = band-based (a = 0.3, b = 1) - hits mids and highs only these presets illustrate how a single decorator family combined with a different spread family yields very different textural results while remaining within the fully additive, parameter-smooth framework.