Procedural Audio Architecture & Methodology
How MURMURFIELD generates non-repeating acoustic environments entirely inside your browser's audio processing thread without cloud servers.
1. Architectural Principles
Unlike commercial ambient platforms that stream gigabytes of compressed MP3 or AAC loops across cloud networks, MURMURFIELD utilizes real-time client-side Digital Signal Processing (DSP) via the W3C Web Audio API.
- Zero Mandatory Backend: No Cloudflare Workers, Node.js runtimes, or database lookups are invoked during playback.
- Infinite Non-Repeating Synthesis: Noise channels utilize seamless math buffers and asynchronous LFO modulators, eliminating looping seams.
- Zero Battery Streaming Drain: Audio generation occurs entirely in device audio threads without keeping cellular/Wi-Fi radios continuously energized.
2. DSP Signal Chain & Limiter Topology
To safeguard listener hearing and prevent digital clipping when combining all seven simultaneous generators, audio passes through a dedicated mastering chain:
→ [DynamicsCompressorNode (Threshold: -4dB, Ratio: 12:1, Soft-Knee Limiter)]
→ [Master Gain (Linear Ramp Envelope)] → [AnalyserNode (64 FFT)] → [AudioDestination (DAC)]
Gain modifications use linearRampToValueAtTime to ensure zero acoustic clicks or zipper noise when adjusting volume or stopping playback.
3. Noise Buffer Generation Algorithms
White Noise
Constructed via uniform pseudorandom sampling across 2 audio channels, creating constant power density across all frequencies.
Pink Noise (1/f)
Synthesized using Paul Kellet’s refined 7-pole IIR filter algorithm, producing a precise -3 dB per octave spectral roll-off.
Brown Noise (1/f²)
Generated using a leaky discrete integrator with Brownian random walk, yielding a deep -6 dB per octave attenuation that protects upper cochlear critical bands.
4. Browser Playback Limitations & Mobile Lifecycle
Modern mobile operating systems (iOS Safari and Android Chromium) strictly enforce power-saving autoplay policies. Playback requires an explicit user gesture (such as clicking the start button). Furthermore, when a mobile browser tab is backgrounded or the device screen locked, audio contexts may be suspended unless specific audio session foreground modes are retained.