# control and variation
modulation systems and parameter shaping

# envelopes
envelopes are piecewise functions that shape parameter trajectories over time. they define how a control value evolves during an event.

types
* start-to-end: transitions from a defined start value directly to a defined end value.
* zero-to-zero: begins and ends at 0, useful for isolated modulation arcs.

segments
* attack: ramp up from 0 to peak.
* attack-bend: curved (non-linear) rise.
* decay: ramp down from peak to sustain level.
* decay-bend: curved (non-linear) fall.
* hold: sustain at a fixed level.

decoration
apply sinusoidal modulation to envelope segments for added texture, e.g.:

* `amp` (amplitude)
* `amod` (amplitude-modulation depth)
* `frq` (frequency)
* `fmod` (frequency-modulation depth)

# sequences
sequences are ordered collections of values or control points used for parameter curves, event scheduling, or data processing.

## path interpolation
define a control path by a list of tuples `(x, y, c)`, where:

* `x` = time or index
* `y` = value
* `c` = curvature or tension for interpolation

## random
* distributions: choose values from uniform, gaussian, etc.
* random path points: scatter values stochastically.
* repetition: repeat or reseed the random process.

## patterns
* integer partitions: split a total length into varied segments.
* segment partitions: divide a sequence into named sections.
* combinations: select subsets of values or indices.
* deduplication: remove duplicate entries.
* filtering: classify and keep values satisfying criteria.
* gaps: insert rests or zero-values.
* sorting: reorder values ascending or descending.
* nesting (abstraction): group sequences hierarchically.
* interpolation: fill in missing or intermediate values.
* rotation: cyclically shift the sequence.
* seamlessness: ensure end-to-start continuity.
* alternation: interleave multiple sequences.
* mapping & preset-selection: replace values via a lookup or select predefined sequences.

## modifications
* swap: exchange two elements.
* reverse: invert the order.
* arithmetic: add, remove, multiply, or divide individual values.

# instrument classification
in digital additive synthesis, instruments can be categorized along several orthogonal dimensions to guide design, selection, and composition.

## continuity
* continuous: sounds that can sustain indefinitely once triggered
  * *short*: brief sustained tones (e.g. plucked strings with rapid decay)
  * *long*: fully sustained tones (e.g. bowed strings, wind drones, organ pads)
* non-continuous: sounds composed of discrete events
  * *pitched*: percussive or struck instruments with definite pitch (e.g. piano, marimba)
  * *unpitched*: percussive noise hits without clear pitch (e.g. drums, clicks, snaps)

## sound origin
* natural: emulations or samples of real-world phenomena
  * wind, water flow, rain drops, insect swarms
* effects: designed sound events for texture or transition
  * cracking, impacts, metallic reflections, ambience sweeps

## functional role
* melodic: primarily carries pitch-based melodies
* harmonic: provides chordal support or sustained harmonic pads
* percussive: drives rhythm with transient attacks
* ambient/textural: creates evolving backgrounds and atmosphere