Parallel Processes: Implementation Example
This page provides a practical implementation of Distributed Processes. In this example, spatiality is not a result of a panner, but emerges from the decorrelation of 16 independent synthesis agents.
The "Spatial Texture" Model
Following the work of Erik Nyström, we define space through "internal morphology". By running parallel processes with slight parameter offsets, the sound gains "mass" and "spatial thickness" without relying on virtual trajectories.
SuperCollider Implementation
The following code demonstrates a multi-agent granular system where each channel operates as an independent agent.
( // 16-Channel Parallel Process Agent SynthDef(\spatialTextureAgent, { arg out=0, freq=440, gate=1, amp=0.1; var env, sig, mod; // Internal morphology: Each agent has its own local drift mod = LFDNoise3.kr(LFNoise1.kr(0.2).range(0.1, 0.5)); // Synthesis: A simple resonant cluster sig = BPF.ar( WhiteNoise.ar(0.5), freq * (1 + (mod * 0.02)), // Micro-variations in frequency 0.01 ); env = EnvGen.kr(Env.asr(2, 1, 2), gate, doneAction: 2); Out.ar(out, sig * env * amp); }).add; ) ( // Spawning the Ensemble (16 Channels) ~numChannels = 16; ~ensemble = ~numChannels.collect({ |i| Synth(\spatialTextureAgent, [ \out, i, // Each agent is locked to a discrete channel \freq, 100 + (i * 50), // Distributed frequency spectrum \amp, 0.05 ]); }); )
Technical Analysis
Discrete Agency: Each synth is hard-coded to a specific
Out.arindex, bypassing the need for a global panner.Decorrelation: Because each agent utilizes its own
LFDNoise3instance, the signals are mathematically decorrelated, creating a wide spatial gestalt.Emergent Topology: The "space" is the physical layout of the speakers themselves, becoming a "discrete instrument" rather than a reproduction tool[cite: 25, 26].
References
The theoretical basis for this approach is detailed in Nyström (2013) regarding the topology of form and motion in electroacoustic music.
