home/ atoms/ sc-waveset-microsound

Waveset manipulation treats individual waveform cycles as grains for extreme time-stretching and morphing in SuperCollider

A waveset is a single period (zero-to-zero-crossing segment) of a waveform. The Wavesets class extracts individual cycles from a buffer and provides methods to repeat, shuffle, or scale them. This enables synthesis effects impossible with block-based granular: stuttering at the single-cycle level, pitch-shifting without resampling, and cross-synthesis by splicing wavesets from different sounds. The Wavesets object tracks zero crossings (.xings, .numXings) and individual segment lengths (.lengths), enabling per-cycle operations. Applications include extreme glitch, micro-loop, and harmonic manipulation.

Examples

w = Wavesets.from(“sounds/a11wlk01.wav”); w.xings; // all integer indices of zero crossings w.numXings; // total zero crossing count

Assessment

Describe the perceptual difference between granular time-stretching (grain duration ~50–200 ms) and waveset time-stretching (grain = one cycle). Under what musical conditions would waveset stretching be preferable?

“// figure 16.22 - a Wavesets object w = Wavesets.from("sounds/a11wlk01.wav"); w.xings; // all integer indices of the zero crossings found”
corpus · the-supercollider-book-official-code-examples-scbookcode-gpl · chunk 61