Extend JamesDSP with convolution and spatial audio

This commit is contained in:
Jonathan Sykes
2026-10-10 19:25:06 +08:00
parent b3f0525a8e
commit ef12468a99
28 changed files with 540 additions and 143 deletions

View File

@@ -1,19 +1,17 @@
# JamesDSP vendor files
The WebAssembly engine, parameter table and browser adapter originate from
`jamesdsp-web` revision `77be0b2e825a20ba98feff33d16dd0a43232ef3b`. Source is
available in that repository and the underlying JamesDSPManager source is
referenced by its `upstream/` tree. The runtime files remain in the lazy
`feature:jamesdsp` asset group; license and provenance documents are not runtime
assets.
The browser port's worklet, 8–96 kHz streaming sample-rate adapter, matrix
convolver, HRTF/virtual-speaker spatial stage, generated IRs and IndexedDB IR
store are pinned to the source revision in VERSION.txt. Runtime files stay in
the lazy `feature:jamesdsp` group. A user must enable the engine or choose
“Download audio effects for offline” before the offline-completion job caches
them, including the WASM binary.
`jamesdsp-node.js` and `worklet.js` carry the integration changes described in
`VERSION.txt`. The generated C engine and `params.js` are unchanged from the
pinned revision. The Node wrapper intentionally rejects text-effect parameters
and does not serialize text, preventing Liveprog/DDC/arbitrary text payloads
from entering the v1 surface.
The adapted wrapper resolves dependencies through `Lazy.url()` and routes the
worklet through the existing AudioGraph. It rejects Liveprog, DDC and arbitrary
text effects. Impulse responses are limited to 65,536 internal frames; lower-
power devices use a 24,000-frame cap and warn before larger responses are used.
The upstream `upstream/Main/LICENSE` text says GPL-2.0 while the port repository
ships a GPL-3.0-or-later license. Both texts are retained as supplied. Confirm
the upstream provenance and redistribution position before a public release;
this note is not a legal conclusion.
The port is GPL-3.0-or-later (`LICENSE.txt`). The upstream license snapshot says
GPL-2.0; both supplied notices remain in this directory pending upstream
clarification. See VERSION.txt for the adaptation record.