4.5 Summary#
A score is the symbolic “language” of music: a sparse, discrete set of timed events. In Pyquist, a
pq.Scoreis a list ofpq.Events, each a(time, kwargs)pair, and you decide what the time units and kwargs mean.Simultaneous events are encoded as multiple events sharing a timestamp. The score structure is general enough to describe any timed content, not just sound.
Timbre and scores are complementary: a score says when, an instrument says what it sounds like. Rendering sums each event’s sound shifted to its onset: \(x(t) = \sum_i T_{\theta_i}(t - t_i)\), which
pq.Score.rendercomputes.Whether simultaneous frequencies are heard as one timbre or as separate notes depends on whether they are harmonics of a common fundamental.
An envelope \(\text{Envelope}(t) : \mathbb{R} \to [0, 1]\) is zero outside a finite window. Multiplying a sustained tone by an envelope produces a finite event. Piecewise-linear envelopes are defined by control points.
Unit generators are reusable functions that produce or process sound, combined into topologies (directed graphs / nested calls).
Because function calls have overhead, synthesis is usually computed block-by-block, balancing the memory cost of ugen-by-ugen against the call overhead of sample-by-sample.