TECHNIQUES / 26 STUDIES

Make sound.
Transform it. Move it.

Break synthesis, spatial effects and motion into useful units of production. Each technique describes its mechanism, parameters, construction sequence and a way to compare the result by listening.

Local implementation identifies processing present in the production application. Research / extension identifies proposed additions. Production steps are designs for further comparisons; completed application recordings are on the overview and in the 39-study Sound Atlas. Numerical values describe prototype ranges or comparison examples, rather than universal recommendations or venue calibration.

Designing synthesizers

Separate sound generation, temporal shape and spectral change. Build one voice first, then connect its timbre to position and motion.

01Local implementation

Waveform morphing: changing a sound’s contour

Mix sine, triangle, sawtooth and square waveforms within one voice. Keeping pitch and position fixed while changing their weights provides a way to vary timbre while retaining a recognizable source.

Signal and motion flow

Four waveform tables sharing one phase → weighted mixture → low-pass filter → amplitude envelope → a positioned audio bus with width. Weights are normalized to sum to one; the oscillator selects a table with a suitable harmonic count for its pitch.

Design parameters

Waveform weightsEach 0–1, normalized sum
Choose a repeatable transition, such as adding sawtooth weight to a sine reference.
Pitch and bendMIDI note 0–127; bend ±48 semitones
Control fundamental movement independently from the waveform mixture.

Production steps

  1. Record a sustained sine at one fixed position.
  2. Over about eight seconds, move toward triangle and sawtooth, then reverse the transition. Measure and adjust the level.
  3. Apply the same morph to a moving source and compare it with the fixed-position recording.

What to compare

Compare waveform-only changes with motion-only changes, retaining the remaining parameters. Record whether a timbral change was interpreted as a change in distance.

Implementation scope and limits

This is a shared-phase waveform mixture, not four independently detuned oscillators. User wavetable import and pulse-width modulation are absent. Harmonic limiting is implemented, but it does not establish alias-free behavior under every modulation condition.

02Local implementation

Subtractive synthesis: shaping brightness and resonance

Filter a harmonically rich waveform to shape its spectrum over time. A separate brightness trajectory makes it possible to compare a source that brightens as it approaches with one that retains its brightness throughout the same movement.

Signal and motion flow

Waveform/noise mixture → state-variable low-pass filter → tanh amplitude shaping → ADSR. Resonance changes the response around cutoff. A distance-to-cutoff mapping is an authored synthesis modulation and should be identified as such.

Design parameters

CutoffSetting 30–20,000 Hz; additionally bounded by sample rate
Treat opening speed, closing speed and resting cutoff as parts of the phrase.
Resonance0–1; internal Q 0.5–8
Changes the emphasis around cutoff; check output level when increasing it.

Production steps

  1. Create a short sawtooth voice with a fixed low cutoff.
  2. Repeat the same cutoff opening and closing at each onset, comparing it with amplitude shaping alone.
  3. Create versions in which the cutoff peak aligns with a trajectory crossing or is shifted by half a cycle.

What to compare

Separate changes in level, resonance emphasis and position. Vary one condition at a time to examine whether a source became more noticeable through spectral change or easier to follow through motion.

Implementation scope and limits

The current voice path has one low-pass filter. Multimode switching and physical simulation of air absorption or obstruction are not part of this stage.

03Local implementation

Envelope instruments: points, lines and tails

The same oscillator can become a brief point or a sustained line through its attack and release. Keeping envelope time separate from trajectory time lets a composition specify when a moving sound begins and how long it persists.

Signal and motion flow

A note progresses through attack → decay → sustain. Note-off starts release from the current envelope value. Attack and decay are linear; release uses a squared curve. Gate duration and release duration are controlled separately.

Design parameters

ADSRA/D: 2 ms–10 s; S: 0–1; R: 5 ms–20 s
Choose whether onset acts as a position cue or the sound emerges gradually.
Velocity and voice gainEach 0–1
Keep musical emphasis separate from the level used to balance the mix.

Production steps

  1. At one pitch, make a short strike, a gently sustained tone and a short gate with a long release.
  2. Run the same trajectory, aligning the positions at note-on and note-off.
  3. Export conditions in which the source continues moving during release or remains still.

What to compare

Compare durations that permit tracking a moving point with durations where overlapping notes form a broader texture. This describes a listening study, not an already measured perceptual threshold.

Implementation scope and limits

These are envelope-shaped oscillator voices, not physical models of a membrane or string. A longer release does not increase the voice limit; inspect voice allocation if a tail is interrupted by voice reuse.

04Local implementation

Noise synthesis: breath, friction and density

Blend a periodic waveform with seeded noise to move between pitched sound and a broader-band material. It can also feed granular processing, while noise amount, grain density and spatial spread remain distinct variables.

Signal and motion flow

Voice ID or explicit seed → deterministic noise sequence → mixture with a periodic waveform → the same low-pass and envelope. Reusing initial state and event sequence helps compare another design variable without introducing a different noise realization.

Design parameters

Noise ratio0–1
Zero uses the periodic waveform; one uses noise. Intermediate settings retain both pitched contour and roughness.
Seed and filterInteger seed; shared cutoff and resonance
Fix the random sequence to focus comparison on bandwidth and temporal shaping.

Production steps

  1. Make a soft strike from a short noise burst and low cutoff.
  2. Lengthen attack and gradually open cutoff to create a breath-like sustained material.
  3. With the same seed, change only the spatial distribution and export narrow and broad versions.

What to compare

Record increased noise separately from increased source count. Prepare both level-matched and fixed-gain comparisons because changing high-frequency content also changes the listening impression.

Implementation scope and limits

This is synthesized material, not a model reproducing recorded breath or friction. Dedicated pink noise, brown noise and environmental sample playback are absent.

05Local implementation

Modulated voices: relating timbre and position cycles

Two LFOs can vary pitch, cutoff, amplitude, x-position or width. A composition can align spatial movement and timbral pulsation or use different periods to create longer relationships, with each modulation assigned an explicit role.

Signal and motion flow

Each voice has sine LFOs routed to one destination each, applied additively or multiplicatively in oscillator, filter or position calculations. Cutoff uses a power-of-two multiplier; pitch modulation uses semitones.

Design parameters

Rate0–40 Hz per LFO
Creates slow shape changes or rapid pulsation independently of the visual trajectory period.
Depth and destinationCommon depth setting ±48; interpretation depends on destination
Depth means semitones for pitch and scene units for x-position. Width and amplitude are additionally bounded.

Production steps

  1. Keep pitch and waveform fixed and create a one-second amplitude pulse.
  2. Route the other LFO to x-position and record matching periods.
  3. Change only the position period and record the amplitude pulse appearing at different locations.

What to compare

Compare amplitude only, position only and both, asking which change served as the perceived pulse. For fast position modulation, distinguish audio behavior from the display’s update rate.

Implementation scope and limits

LFO shape is sine, without an arbitrary modulation matrix. A dedicated FM voice is implemented as a separate mode. Modulating x alone is distinct from generating a complete 3D trajectory.

06Local implementation

Spatial polyphony: distributing timbral differences

Each voice retains its own pitch, timbre, envelope and position. Widening one source, duplicating a sound and composing responses between different voices are treated as different musical operations.

Signal and motion flow

Events with stable voice IDs → synthesis of up to 16 voices → position and width per voice → PCM buses for spatial rendering. Effect-generated voices retain parent IDs so their relationship to the source can be traced.

Design parameters

Source count1–16 synthesized voices
Budget active notes and release tails together, independently of loudspeaker count.
Width and positionWidth 0–1; position in scene coordinates
Control the motion of a point separately from the extent of a distribution.

Production steps

  1. Record one voice playing a three-note figure as a reference.
  2. Assign the notes to three voices with fixed pitch-to-position relationships, then exchange positions only.
  3. Finally vary envelopes and timbres per voice and record whether their handoff remains traceable.

What to compare

Check total level when source count changes. Compare the traceability of source identity and position without allowing the larger ensemble to become merely louder.

Implementation scope and limits

The synthesizer is capped at 16 voices. Effect spatial buses are also bounded, with dropped allocations counted. Stereo audition does not establish source separation in a venue with multiple loudspeakers.

07Local implementation

FM, ring and AM synthesis: shaping sidebands

A dedicated FM mode generates sidebands from the modulation-to-carrier frequency ratio and modulation index. Integer ratios alter harmonic relations; non-integer ratios create less regularly aligned components. Separate ring and AM modes allow comparison between FM sidebands and the sum/difference components produced by amplitude multiplication.

Signal and motion flow

FM expands sinusoidal phase modulation into Bessel-weighted terms, synthesizing up to 49 components for k=−24…24 at f₍c₎+k f₍m₎. DC is removed; components taper from 0.44 times the sample rate and are removed at or above 0.49 times it. The signal then passes through the shared noise mix, low-pass, tanh, ADSR and spatial bus. Ring generates sum/difference terms; AM retains the carrier plus sum/difference terms under the same bandwidth rule.

Design parameters

FM ratio and indexfmRatio 0.125–16; fmIndex 0–12
Ratio is modulator frequency divided by carrier frequency; index is phase-modulation depth. Index 0 leaves only the carrier. Parameter changes use a 12 ms smoothing time constant.
Ring ratio and AM depthringRatio 0.125–16; amDepth 0–1
ringRatio is shared by ring and am. AM depth 0 is unmodulated; depth 1 gives a periodic 0–1 amplitude multiplier before bandwidth removal. Ring has no explicit carrier term.

Production steps

  1. Record a fixed-position FM voice at index 0 as a carrier-only reference.
  2. At ratio 1.75, change index from 0 to 2; then compare ratios at a fixed index. Record waveform, spectrum and actual PCM level at matching times.
  3. At the same pitch, compare ring and am with ringRatio 1.5 and AM depths 0 and 1. Finally make a version changing position alone.

What to compare

Automated tests verify maximum error below 10⁻⁹ between an in-band FM case and direct sinusoidal phase modulation, the index-zero carrier, added sidebands, ring sum/difference components and AM-depth behavior. In production, separate fixed-gain and level-matched comparisons so brightness is not confused with loudness.

Implementation scope and limits

FM is a truncated expansion of at most 49 terms, without a multi-operator graph or separate modulation envelope. Oscillator bandwidth management does not establish alias-free behavior for downstream nonlinear processing or arbitrary rapid modulation. Mode changes crossfade over 12 ms. Recipes are procedures to try, not a claim that every condition has been recorded. Earlier LFO videos are separate from FM evidence.

Designing sound history and branches

Decide when to read a sound, where to place it and how it decays. Connect signal processing to the spatial placement of each resulting voice.

01Local implementation

Spatial delay: giving the delayed sound its own voice

Delay shifts a signal in time; spatial delay also assigns its position. The same delayed signal can remain an extension of the source or become a response from another location.

Signal and motion flow

Source PCM → interpolated delay buffer → feedback → wet and send gain → original or offset position. Signal-only mode joins the original bus; spatial-voice mode emits a separate bus retaining its parent ID.

Design parameters

Time, repetition and balance5 ms–2 s; feedback 0–0.88; wet/send 0–1
Time sets the handoff delay, feedback retains repetitions, and wet/send controls their balance with the source.
Spatial offsetThree-axis offset in scene coordinates
Supports comparing different destinations with identical delay time.

Production steps

  1. Record dry short synthesized notes one second apart.
  2. Starting at 280 ms and feedback 0.35, separately record repeats at the source and at an offset position.
  3. Inspect the source and delayed buses separately, then combine them with a consistent balance.

What to compare

Retain repetition, level and timbre while changing position. With a moving parent, record whether the delay location follows the past or current source position because these produce different spatial behavior.

Implementation scope and limits

The current delay adds a fixed offset to the parent’s current position. It does not replay the source’s historical trajectory or create a freely routed node for every repeat. The delay line includes tanh shaping and is not strictly linear.

02Local implementation

Granular processing: composing grain time and distribution

Read short grains from PCM history, shape their edges with a window and distribute them spatially. Grain duration, overlap and spread provide separate controls for designing discrete repetitions or a more sustained cloud.

Signal and motion flow

Source history → seeded source and read-position selection → Hann window → grain position and gain → spatial bus. Density multiplied by grain duration estimates average overlap; the implementation uses its square root for grain-gain compensation.

Design parameters

Density and grain duration0–240 grains/s; 15–500 ms
Separate lengthening grains at fixed density from increasing density at fixed length.
Spread and seedSpread 0–12 scene units; deterministic seed
Fix the distribution while comparing sound, then vary distribution independently.

Production steps

  1. Build history from repeated short notes, starting at 12 grains/s and 120 ms.
  2. Retain spatial spread and record grain-duration changes alone.
  3. Record conditions at or below 24 grains/s and above it to examine individual-grain and cluster routing.

What to compare

Check actual PCM bus count, concurrent grains and dropped grains alongside visual particle count. Use measurements and listening to distinguish denser texture from a simple level increase.

Implementation scope and limits

The current engine retains at most 64 grains and groups densities above 24 grains/s into eight clusters. Each grain receives a position at birth; it does not integrate a free trajectory over its lifetime. Grains play at unit speed; per-grain pitch shifting and sample import are absent.

03Local implementation

Freeze and time loops: retaining a fragment

Capturing and repeating a short segment creates material that persists after an onset. Time-domain freeze retains each source separately; audio-time playback captures a mixture of synthesized sources. The captured moment must be identified in each case.

Signal and motion flow

Freeze copies a window from source history and loops it at unit speed with a short boundary crossfade. Audio-time captures the dry mono mixture and changes interpolated read speed, emitting one centrally positioned bus.

Design parameters

Capture windowFreeze: 20–500 ms; audio-time: 50 ms–1 s
Compare a window that exposes a short cycle with one that retains more of the source phrase.
Playback rateAudio-time: −4 to 4; freeze: unit speed
Negative values reverse reading; zero holds the read position. Changing speed changes pitch and duration together.

Production steps

  1. Capture onset and sustain separately and record loops of equal duration.
  2. Keep per-source freeze at its source position.
  3. Export audio-time at unit speed, half speed and in reverse as separate comparisons.

What to compare

Match capture window, loop start and dry balance. Distinguish zero playback rate from silence; they are different states. Inspect boundary clicks and low-frequency or DC bias.

Implementation scope and limits

These are not FFT spectral freeze, a phase vocoder or pitch-preserving time stretch. Audio-time at zero speed holds one sample value and does not guarantee a musically sustained frozen sound.

04Local implementation

Glitch and feedback: interruptions and retained signal

Rereading a small slice introduces fine repetition into a continuous sound. Feedback returns earlier output to the input, retaining influence into later sound. Cycle, depth and return amount are explicit, recallable parameters.

Signal and motion flow

Glitch reads an approximately 18 ms history slice during part of each cycle and mixes it with the source. Feedback feeds the stereo-preview mixture into an approximately 31 ms circular buffer with tanh shaping, emitting the returned signal at a fixed position.

Design parameters

Glitch rate and depth0.1–40 Hz; depth 0–1
Depth affects both mixture amount and the portion of the cycle using the slice.
Feedback amount0–0.85
Adjusts retained signal; inspect decay after input stops.

Production steps

  1. Record a steady voice dry, with glitch alone and with feedback alone.
  2. Use a short phrase and compare aligned and misaligned phrase/repetition periods.
  3. Stop the input and inspect the remaining sound’s duration and peak.

What to compare

Compare phrase recognition and whether the repeats form a perceived pulse. Since depth changes multiple internal quantities, retain other parameters when documenting it.

Implementation scope and limits

The implementation uses deterministic slice playback and one return path. It does not provide an arbitrary recursive graph or a feedback network moving through multiple positions. Tanh and coefficient bounds control the implementation’s amplitude; they do not determine safe venue levels.

05Local implementation

Band and harmonic distribution: opening a sound into space

Send low, middle and high bands, or bands associated with a known note, to separate positions. Distinguish signal decomposition from amplified duplication and examine how extracted bands relate to their residual.

Signal and motion flow

The three-band split uses first-order low-passes at 350 Hz and 2,500 Hz to form low, upperLow−low and input−upperLow. Harmonic processing uses up to four band-passes at integer multiples of the supplied note’s fundamental and retains input minus their sum as a residual.

Design parameters

Band placementThree individual offsets or spread 0–12
Compare different mappings instead of assuming low bands must be below and high bands above.
Harmonic numbers and QUp to four bands; numbers 1–16; Q 2–64
Inspect the extracted bandwidth and the material retained in the residual.

Production steps

  1. Use a harmonically rich sustained voice and form a reference with all three bands at one position.
  2. Separate band positions without changing the source, recording each bus and the combination.
  3. For the known-note harmonic processor, inspect extracted bands and residual separately.

What to compare

Before spatial rendering, check bands plus residual. After rendering, inspect the level and phase changes associated with their destinations. Recombining at one position helps distinguish decomposition from spatial effects.

Implementation scope and limits

The three-band method is neither FFT analysis nor a steep crossover. Harmonic processing uses the supplied note rather than estimating pitch. These filters do not isolate perfectly independent partials, and the residual includes subtraction effects.

06Local implementation

Attack–sustain separation: positioning event and continuation

Create an attack-emphasized part and a complementary remainder from one sound. A localized attack and broader continuation provide a way to design the relationship between where an event occurs and where its sound persists.

Signal and motion flow

Fast and slow input-amplitude envelopes → normalized-difference mask → two buses: input×mask and input−attack. Threshold and sensitivity adjust detection; mask attack and release are also smoothed.

Design parameters

Mask responseAttack 0.5–50 ms; release 5–500 ms
Controls how much of the event is treated as an attack.
Detection and spreadSensitivity 0.1–10; threshold 0–0.9; spread 0–12
Compare detecting small onsets with separating only larger changes.

Production steps

  1. Prepare short and sustained notes at one pitch and inspect where the mask rises.
  2. Recombine attack and sustain at one position to inspect their relationship to the input.
  3. Place attack narrowly and sustain broadly, then record a version with those placements exchanged.

What to compare

Alongside timbral impression, compare whether listeners can follow onset location and separately identify continuation. Inspect detector behavior on quiet passages and noisy material.

Implementation scope and limits

This is a complementary amplitude mask on one signal, not learned source separation or instrument separation. Treat the result as a parameter-dependent decomposition rather than a uniquely correct attack component.

07Local implementation

Reverberation and room morph: transforming a decay

A four-delay feedback network creates reverberation distributed to four positions. Room morph moves between two procedural delay configurations and decay settings, changing the tail’s temporal and spatial character.

Signal and motion flow

Input distributed to four delays → normalized mixing matrix → damping → feedback → four audio buses. Feedback coefficients are calculated from delay and decay settings. When room morph is enabled, it replaces the normal reverb configuration instead of stacking a second reverb.

Design parameters

Decay and dampingDecay 0.1–8 s; damping 0–0.95
Control duration and high-frequency persistence separately. Decay is a design parameter.
Morph and spreadMorph 0–1; spread 0–12; wet 0–1
Save both endpoints and compare intermediate states with identical input.

Production steps

  1. Use a short synthesized strike and record short and long decay settings separately.
  2. Check endpoint levels, then move morph slowly with the input retained.
  3. Continue recording after stopping the source and inspect reverb-bus decay and final output.

What to compare

Compare decay-only, spread-only and morph-only changes. Record high-frequency decay, directional traceability and source contour separately, without equating the configured seconds with a measured decay time.

Implementation scope and limits

This is not convolution using a measured impulse response and does not reproduce the acoustics of Room A/B/C. Changing delay lengths during morphing can introduce pitch movement, so inspect the transition rate as well.

08Local implementation

Diffusion: varying a sound’s fine time structure

Send one input through four paths with different all-pass delays to alter fine time structure. This provides a way to design a broader sound while treating spatial extent and similarity between signals as separate properties.

Signal and motion flow

Input passes through four paths with alternating input polarities, each containing two all-pass stages, then goes to four offset positions. Each path has different delay times, and feedback changes the stage response.

Design parameters

Feedback and mixFeedback −0.85 to 0.85; wet 0–1
Changes temporal differences between paths; inspect how much of the source contour remains.
Spread0–12 scene units
Allows position-only spread comparisons with the processing unchanged.

Production steps

  1. Record a short note dry and with diffusion alone, comparing its onset.
  2. Increase spread from zero while retaining the four processing paths.
  3. Inspect a consistently constructed mono sum alongside stereo.

What to compare

Compare perceived width, onset localization and retained contour. Report correlation or peak measurements alongside listening rather than inferring envelopment from a number alone.

Implementation scope and limits

The four paths are not measured walls or reflection points. Polarity and phase differences can cause cancellation in mono, so width and downmix compatibility require separate checks.

Designing particles, trajectories and loops

Describe a source trajectory, a particle lifetime, relationships within a group and recurring time. Design repeated positions, repeated articulation and recorded-audio playback separately.

01Local implementation

Particle birth, lifetime and rebirth

A particle is an event with a birth time, age, velocity, gain and retirement condition. Separating an emitter ID from its generation makes repeated emissions from one location into a temporal structure.

Signal and motion flow

Birth schedule → individual age → trajectory and decay → audibility → retirement and rebirth

Age τ = t − birth time. The basic Projectile uses p(τ) = p₀ + v₀τ + ½aτ². The periodic A02 emitter separately defines within-cycle age and its active interval.

Design parameters

Emission interval and phaseA02 example: 3 s cycle, 0.35 s between indices
Offset birth times to create simultaneous bursts, regular streams or uneven densities. Period and population are separate decisions.
Lifetime and decayA02 active interval: first 2 s of each cycle
Separate existence from amplitude decay. Evaluate both silence during a lifetime and audio tails that remain after a particle retires.
Initial velocity, acceleration and seedVelocity in m/s, acceleration in m/s², integer seed
Direction is determined by seed and particle index. Display refresh does not generate a new random trajectory.

Production steps

  1. Emit four brief sine tones successively from one origin, keeping speed and pitch equal.
  2. Change direction alone and compare an opening fan with a stream moving in one direction. Retain emission density and level.
  3. Add a delay tail after retirement and record the relationship between moving originals and later sounds.

What to compare

Compare birth order, active particles, concurrent audio voices and residual tails. Count visible points separately from audio voices, and verify repeatable trajectories with the same seed.

Implementation scope and limits

A02 and A08 recycle a bounded population and retain generation numbers. They are not unbounded emitters. The basic Projectile differs from the projectile_pass recipe, which additionally handles boundary contacts.

02Local implementation

Fixed-position loops and repeated articulation

A loop defines recurrence in time independently of recurring positions. Fixed-position articulation provides a reference for hearing what changes when orbiting motion or phase offsets are added.

Signal and motion flow

Period and phase → within-cycle time → gain gate → synthesized sound → spatial distribution

u = t mod T. The base Looper passes gain only while u is inside the open interval. The loop_compare recipe instead uses a brief exponentially decaying pulse.

Design parameters

Period TPositive seconds; base default 2 s
Sets how often the gain pattern repeats. When relating it to tempo, keep the resulting duration in seconds explicit.
Open intervalBase Looper default: 0.45 s
The interval during which the gain gate is open. An interval longer than the period removes the rest, so check their ratio when designing rhythm.
Phase offsetIn loop_compare, expressed as a fraction of the period
Offsets repeated patterns between voices, creating synchrony, half-period alternation or a delayed response without changing location.

Production steps

  1. Place two voices of the same pitch at fixed positions and align their 2 s gain patterns.
  2. Offset one voice by half a period to alternate them, then reduce the offset to create overlap.
  3. Keep the articulation pattern unchanged while moving one voice along an orbit, then compare fixed and moving conditions.

What to compare

Check period accuracy, overlap, signal during rests and onset differences in the audio. Correct visual blinking does not establish click-free audio or correct tail behavior.

Implementation scope and limits

The current Looper gates gain. It does not reset oscillator phase or ADSR, nor rewind a recording buffer on each cycle. Repeated identical attacks or sample playback require separate note-event design.

03Local implementation

Orbits, counter-rotation and spatial counterpoint

Radius, speed and phase become voice parameters. Two voices can retain their separation, counter-rotate into crossings, or articulate at periods independent of their paths. Orbit centre and listening position are recorded separately.

Signal and motion flow

Centre and angular velocity → phase → ellipse and vertical motion → individual timbre and articulation → outputs

θ = rate × t + phase. p = centre + [r cosθ, r × aspect × sinθ, r × height × sin(θ/2)]. With height = 0 the period is 2π/|rate|; a nonzero vertical component normally makes it 4π/|rate|.

Design parameters

Radius and aspect ratioradius in m; aspect is dimensionless
Separate the X radius from the Y multiplier. Constant angular velocity does not produce constant path speed on an ellipse.
Angular velocity and phaserate in rad/s; phase in rad
The sign of rate determines direction; its magnitude sets orbital speed. Its units differ from an LFO frequency expressed in Hz.
Vertical-motion ratioheight: multiplier of radius; default 0.12
The base Orbit moves vertically at half the horizontal frequency. One horizontal revolution may not complete the full trajectory.

Production steps

  1. Use two voices with a 2 m radius, no vertical motion and an 8 s horizontal period. These are study settings, not room dimensions.
  2. Set a half-turn phase offset and compare same-direction and counter-rotation. Add pitch contrast afterwards and listen for voice tracking at crossings.
  3. Add vertical motion and record the complete 16 s cycle. Compare its seam with a cut after one horizontal turn.

What to compare

Compare endpoint velocity as well as position. Preserve IDs when positions coincide, and distinguish louder overlap from a perceived exchange of voices.

Implementation scope and limits

The current orbit is an analytically evaluated coordinate path. It does not automatically generate Doppler pitch or constant-speed elliptical travel. The recipe orbit_loop uses a separate planar circle.

04Local implementation

Lissajous paths, pendulums and spirals

Combining axis periods distinguishes returning paths from trajectories whose shapes keep evolving. A closed curve can support repetition, while a spiral’s changing radius or height produces development.

Signal and motion flow

Relations between axis periods → crossings and turnarounds → selected articulation positions → intersections with timbre fields

Lissajous: p = centre + [r sin2θ, r sin3θ, 0.4r sin5θ], with θ = rate × t + phase. Each component returns when the base angle advances by 2π.

Design parameters

Axis frequency ratiosBase Lissajous uses X:Y:Z = 2:3:5
Determines crossings and recurrence. These ratios are fixed in the current implementation; arbitrary ratio editing is a separate extension.
Radius and base angular velocityradius in m; rate in rad/s
Separates scale from traversal time. The base Lissajous uses 0.4 times the radius on its vertical axis.
Spiral growth and ascentRadius multiplier 1 + 0.03t; default rise 0.1 m/s
The base Spiral expands and rises with time. Repeated rotation does not make its position periodic.

Production steps

  1. Move a steady tone along a Lissajous path and place a bright timbre region along X. Record how timbre returns at successive crossings.
  2. Switch the same sound to a pendulum and compare its turnarounds with the curve crossings.
  3. Move into an expanding spiral, using it as a transition from a repeating section to an evolving passage.

What to compare

Compare crossing positions, turnaround speed and entry times into timbre fields. Similar-looking revolutions need not return to the same state, so inspect path and audio periodicity separately.

Implementation scope and limits

Lissajous, Pendulum and Spiral currently use authored formulas for composition. Editable ratios, constant-speed arc-length traversal and a physical pendulum model are future extensions.

05Local implementation

Density design for clouds, rain, jets and bursts

Collective character comes from direction, distribution, timing offsets and retirement. A cloud sustains a volume, rain combines height with recurrence, a jet forms a directional stream, and a burst disperses a simultaneous event.

Signal and motion flow

Distribution and birth order → individual ages → collective shape → gain allocation → density development

Design parameters

Spatial distributionCloud: seeded volume points; jet: narrow directional distribution
Sets the directions of variation. Visual extent and perceived source width are separate parameters.
Within-cycle ageFixed examples: Rain 2.8 s, Jet 2 s
Offsets individual phases to create a stream. Decide whether a reset at the cycle boundary should be concealed or presented as an event.
Population and level compensationF08 scales by 1/√N for active population N
A heuristic for limiting level changes as density grows. It does not guarantee constant level for correlated signals.

Production steps

  1. Compare a cloud with a jet using eight sources and the same waveform, pitch collection and average level.
  2. Place a short gain change at the rain cycle boundary and distinguish continuous descent from a landing event.
  3. Design a transition from a simultaneous burst into a cloud holding the dispersed positions, and review the handoff in both image and sound.

What to compare

Record centre, extent, active population and level. When rebirth introduces a position jump, inspect the actual audio to assess the intended gate and tail transition.

Implementation scope and limits

Rain records its cycle boundary as a landing event; it does not solve collision with a real floor. Cloud, Jet and Explosion also use bounded voices. They are not fluid simulations or unbounded sonification of rendered particles.

06Local implementation

Swarms, attraction, springs and collisions

Each source updates its movement from relationships with nearby sources. Composition shifts from drawing individual paths to specifying cohesion, separation, pursuit and response. Initial states and integration steps are retained for repeatability.

Signal and motion flow

Neighbour relations → force and velocity update → position → contact or activity records → gain and timbre mapping

Design parameters

Neighbourhood and separationBase Swarm: 5 m neighbourhood, separation below 1.2 m
Combines velocity alignment, cohesion and short-range separation. These distances and weights are currently implementation constants.
Integration step and speed capSwarm: 120 Hz, speed cap 1.8 m/s
Advances state independently of display frames. Dictionary interaction models use a separate 60 Hz update and must retain their own conditions.
Damping, coupling and collisionE02–E08: individually defined numerical models
Damping controls persistence; coupling controls influence from other sources. Collision-linked gain is distinct from merely reflecting a coordinate at a boundary.

Production steps

  1. Move eight sources with one timbre and first record their trajectories. Compare audible grouping separately from level variation.
  2. Switch to a spring-connected chain and observe how a movement passes to neighbouring sources.
  3. Use the collision model and compare contact-event times with brief gain changes, including intervals with simultaneous contacts.

What to compare

Compare states at identical times after playback, backward seeking and restart. Changing population affects collective behavior and level as well as processing cost, so it is a distinct experimental condition.

Implementation scope and limits

Swarms and collisions are numerical models for composition. They neither detect venue obstacles or people nor reproduce physical materials. A contact record also does not automatically trigger every synthesizer or effect.

07Local implementation

Audio grains and visible particles

An audio grain reads a short interval of source history, applies a window and assigns the signal a position. A decorative trajectory marker has a different role. Source, grain and output relationships make audible particles distinguishable from visual-only marks.

Signal and motion flow

Synthesized history → grain birth → reading and windowing → individual or grouped bus → spatial outputs

Window w(a) = ½ − ½cos(2πa/L). Base grain gain is wet / √max(1, λL). Windowing and compensation limit density-related changes but do not guarantee constant level in every condition.

Design parameters

Density λ and duration LDSP range: 0–240 grains/s, 15–500 ms
Approximate overlap is λL. Density controls onset rate; duration controls the persistence of one grain.
Spatial spreadDSP range: 0–12 m
At low density, positions are chosen around the parent at grain birth. Grain spread and parent-path extent remain separate.
Grouping and limits64 concurrent grains; above 24 grains/s, grouped into 8 clusters
At high density, grains share eight spatial buses, limiting independent output cost and changing the number of separately addressed positions.

Production steps

  1. Start with a steady sawtooth, 8 grains/s, 80 ms duration and narrow spread. Record a condition where individual grains remain traceable.
  2. Raise density to 16 grains/s while retaining duration. Then hold density and increase duration alone to compare continuity.
  3. Record conditions on both sides of 24 grains/s and examine the transition from individual positions to eight grouped locations.

What to compare

Inspect grain count, actual spatial bus count, dropped grains and audio peaks. Video annotations distinguish bus-linked points from trajectory guides.

Implementation scope and limits

Low-density grains retain their birth positions. The eight high-density clusters are arranged around the origin. Independent orbital or collision motion per grain and arbitrary child-effect chains are not implemented; visual movement does not establish those functions.

08Local implementation

Trails, afterimages and voices at historical positions

A trail may be a line explaining past positions, a newly synthesized voice at a past position, or delayed historical audio. Similar appearances can have different compositional meanings because they retain different information.

Signal and motion flow

Historical path time → past-position lookup → independent synthesis or a separate audio delay → decay and removal

Design parameters

History spacing and lagWakeRibbon: 0.3 s steps; TraceReplay: 0.5 s steps
Sets which past position is assigned to each following voice. This is separate from audio delay time.
History intervalTraceReplay: authored path over 0–6 s
Defines the path segment to replay. Check continuity at its endpoints and include a rest when the design calls for it.
Decay, accumulation and erosionIndividual rules in EchoSkin, Accumulate and Erode
Controls how older voices persist. Separating age-dependent decay from removal supports layered memory structures.

Production steps

  1. Record a source following a curve with additional voices placed at positions successively 0.3 s further in the past.
  2. Use one timbre for historical-position voices, then contrast it with the original. Compare a continuous line with distinguishable responses.
  3. Separately enable audio delay and compare it with repetition that retains past timbre. Annotate position history and PCM history distinctly.

What to compare

Compare historical timestamps, voice IDs and actual audio delay. Distinguish today’s pitch synthesized at an earlier position from replay of the sound produced at that earlier time.

Implementation scope and limits

EchoSkin, WakeRibbon and TraceReplay reference authored paths rather than capturing live performance. EchoSkin and WakeRibbon synthesize historical-position voices independently; they do not implement exact historical PCM-to-position alignment with the separate delay buses.

09Local implementation

Layering object, group and spatial transformations

An individual orbit, group rotation and spatial twist occupy different layers. Local recurrence can continue while the whole scene changes, producing sections without rewriting notes. Transformation centres and order belong to the score.

Signal and motion flow

Individual trajectory → group transforms and spatial warps → boundary handling → timbre-field and output mapping

Design parameters

Transformation centreXYZ in m, defined for rotation, scaling and warping
Changing the centre changes the path even with the same rotation. Object centre, group centre and room origin are distinct.
Operation ordermotion first; retain group/warp order
Compare twisting after rotation with rotating an already twisted arrangement. Preserve order to reproduce the result.
Boundary policyclamp, wrap or reflect
Choose clamping, wrapping or reflected coordinates, and record both the boundary and any discontinuity introduced by its policy.

Production steps

  1. Place four orbiting voices in one group and fix their individual periods and phases.
  2. Rotate the whole group slowly, then add a Twist whose rotation varies with Z.
  3. Reverse the transformation order and record changes to field-crossing times and inter-voice distances.

What to compare

Compare local and final coordinates, source IDs and simultaneous output distributions. Enlarging a compositional space does not enlarge the venue or speaker layout; room mapping is evaluated separately.

Implementation scope and limits

These are geometric transformations. They do not automatically solve walls, columns, reflections or occlusion. A reflect boundary folds coordinates; it is distinct from a collision model with mass and contact forces.

10Local implementation

Loop seams and transformations of time

A smooth loop involves returning position together with velocity, level, timbre, tails and random or simulation state. Reversing control time and reversing captured audio are separately designed operations.

Signal and motion flow

Reference time → time mapping → trajectory state → audio processing → endpoint comparison → video export

Position seam eₚ = ‖p(T) − p(0)‖; velocity seam eᵥ = ‖v(T) − v(0)‖. Small geometric errors do not establish continuity of PCM values, envelopes or internal effect states.

Design parameters

Loop intervalLoop: positive period in seconds
Returns control time to the start. It does not close a path automatically; inspect the original trajectory endpoints.
Hold, reverse and quantizationFreeze, Reverse, Stutter and Quantize
Hold position time, read it backwards, repeat a short interval or advance in steps. Explicitly identify whether audio time is also affected.
Synchronization unitsExample: 48 kHz / 60 fps gives 800 samples per frame
Map video frames from audio sample time. For a 10 s, 600-frame output, use the endpoint state for checks without adding an extra frame.

Production steps

  1. Export an integer number of planar orbits and compare start/end position, velocity and level.
  2. Add delay and record the first onset separately from the tail state reached during repetition.
  3. Audition the final short interval joined to the beginning. Choose an intentional cut, short fade or sufficient tail, then verify that choice in the exported video.

What to compare

Inspect position and velocity changes, level, clicks and truncated tails around the seam. Record multiple periods to identify a differing first cycle, and evaluate a closed path separately from a completed audio loop.

Implementation scope and limits

The current control-time Loop uses modulo mapping. It does not automatically converge arbitrary simulation or audio-buffer states to a periodic steady state, nor repair video seams. Supported mappings between control-time operators and audio-buffer operations are limited.

Compare one change at a time.
Export sound and image.

Build a voice

Choose timbre, envelope and level at a fixed position. Save the unprocessed audio as a reference.

Add a trajectory

Record the path, period and particle lifetime. Compare position, velocity and articulation separately at the start and end of a loop.

Place the processed voices

Add delay or grains one at a time. Save processing order and voice levels, then compare without confusing a level difference with a change in the effect.

Record on one clock

Fix the scene, random seed, output order and mix. Align application frames to audio sample time and combine the audio with the video. Publish the reviewed recordings and their explanation.

Watch the three production recordings ↗

Background technical references

The W3C specification describes audio processing graphs and sample timing; SuperCollider documentation describes parameters for reading grains from a buffer. Implementation claims on this page refer to the local production application.

W3C — Web Audio APISuperCollider — GrainBuf