Files
2026-05-27 23:29:53 +01:00

2.0 KiB

Superseded — not folded into openspec/specs/

Date superseded: 2026-05-15 Superseded by:

  • openspec/changes/enterprise-audio-engine-browser/ (browser-tier TimelineAdapter implementation)
  • openspec/changes/enterprise-audio-engine-server/ (server-tier TimelineAdapter implementation)

Why

This proposal was authored as a port of the upstream monolithic browser-only @suaveplan/audio-engine. Since it was drafted, the genesis audio suite settled on a different architecture:

  • Universal core: @suaveplan/audio-core (AudioDocument, PlanEngine, ProcessPipeline, OpRegistry) — already shipped.
  • Universal timeline: @suaveplan/audio-timeline (TimelineEngine, Track, Clip, and the TimelineAdapter port) — already shipped.
  • Universal transport: @suaveplan/audio-transport (musical clock, PPQ, BPM) — already shipped.
  • Render adapters: @suaveplan/audio-engine-browser (Web Audio) and @suaveplan/audio-engine-server (file I/O) — thin packages that implement TimelineAdapter.
  • Plugin surface lives in @suaveplan/audio-plugins-fx (dual-mode BlockProcessor + optional createAudioNode).

The monolithic @suaveplan/audio-engine re-introduced its own AudioContext lifecycle, its own AudioPlugin base class, its own PluginRegistry, and its own queue engine — none of which compose with the universal core. Keeping it would have produced two parallel engines, two plugin interfaces, and two scheduling models.

No code from this proposal was implemented (packages/audio/audio-engine/ contained only a 3-file stub which has been deleted).

What to read instead

  • openspec/changes/enterprise-audio-engine-browser/ — adapter
  • openspec/changes/enterprise-audio-engine-server/ — adapter
  • openspec/archive/2026-05-14-enterprise-audio-core/ — universal core
  • openspec/archive/2026-05-15-enterprise-audio-timeline/ — universal timeline + TimelineAdapter
  • openspec/archive/2026-05-15-enterprise-audio-transport/ — universal clock
  • openspec/changes/enterprise-audio-plugins-fx/ — plugin surface