Skip to content

Releases: audiojs/web-audio-api

v1.3.0

31 Mar 13:20
@dy dy

Choose a tag to compare

  • BiquadFilterNode delegates coefficient math to digital-filter/iir/biquad; removed ~100 lines of inline formulas
  • PeriodicWave uses periodic-function/wavetable for wavetable synthesis
  • WaveShaperNode derives half-band FIR from digital-filter/multirate/half-band instead of hardcoded constants
  • AudioContext stream sink unified: pass any writable stream as sinkId directly
  • AudioWorklet accepts blob URLs
  • Event emitter rewritten with Map/Set — no Node.js maxListeners warnings
  • Updated audio-buffer dependency
  • AudioParam: version-based cache; static params skip getValue entirely per block
  • OscillatorNode: cubic Hermite wavetable interpolation; fast path when frequency/detune constant across block
  • DynamicsCompressorNode: precomputed slope/kneeInv, hoisted channel refs out of inner loop
  • StereoPannerNode: fast path when pan constant across block
  • null-player as headless default output
  • Benchmarks added
  • AudioContext render loop deferred via queueMicrotask; speaker opened eagerly on resume() to avoid hardware pop
  • audio-speaker integration for direct hardware playback
  • Examples added: oscillator, noise, LFO, FFT, sequencer, spatial, worklet, file processing, stdout pipe

Full Changelog: v1.0.0...v1.3.0

v1.0.0

19 Mar 16:30
@dy dy

Choose a tag to compare

Changes

  • 100% WPT pass rate (4300 tests)
  • All 26 audio node types implemented
  • Sample-accurate scheduling with sub-sample interpolation
  • AudioWorklet with URL module loading and MessagePort
  • Full AudioParam automation (setValueAtTime, ramps, curves, cancelAndHold)
  • Correct channel mixing (speakers/discrete) per spec
  • OfflineAudioContext with suspend/resume
  • Browser polyfill: import 'web-audio-api/polyfill'
  • Auto-detects speaker package for real-time output, falls back to stdout
  • Deps: audio-buffer , audio-decode, automation-events, fourier-transform

Breaking from 0.x

  • ESM only (no CommonJS)
  • Requires Node.js 18+
  • AudioContext starts suspended (call resume())
  • outStream auto-detects — no longer required to set manually
  • Error types are spec-correct DOMException (not plain Error)

Note

Work done as part of revamping the organization.
It involves bringing outdated packages back to life and reworking into pure, minimal, performant and canonic form.

Full Changelog: v0.2.1...v1.0.0