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,15 +1,18 @@
JamesDSP browser port source revision: 77be0b2e825a20ba98feff33d16dd0a43232ef3b
JamesDSP browser port source revision: a982b53c4ab347d1d9c50f4ce7ee3c2735eaa817
Repository: /home/josh/development/personal/jamesdsp-web (main)
Vendored from web/jamesdsp-node.js, web/params.js, web/worklet.js,
web/dsp/jamesdsp.js and web/dsp/jamesdsp.wasm.
Vendored source files: web/jamesdsp-node.js, params.js, ir-utils.js,
ir-builtins.js, ir-store.js, worklet.js, dsp/jamesdsp.js and dsp/jamesdsp.wasm.
Integration adaptations: manifest-hashed module URLs are selected through Lazy;
the worklet carries its engine URL in a fragment so its HTTP/CacheStorage key
remains the exact manifest URL; the wrapper and worklet do not expose text
effects (Liveprog, DDC, arbitrary EQ) in this v1 integration. Upstream source is
retained unchanged for the generated engine and parameter module.
Integration adaptations: wrapper dependencies and WASM URLs use the page's
manifest-hashed Lazy.url map; the worklet statically imports the pinned
jamesdsp-a982b53.mjs module because AudioWorkletGlobalScope rejects dynamic
import. The wrapper keeps the shared AudioGraph route and does not create a
MediaElementSource. Liveprog, DDC and arbitrary text effects are rejected and
not serialized in ytplayer. All runtime code remains in lazy feature:jamesdsp;
its offline completion membership requires the explicit jamesDsp opt-in.
License note: LICENSE.txt is the port's GPL-3.0-or-later license. The upstream
snapshot at upstream/Main/LICENSE contains GPL-2.0 text; the discrepancy is
preserved and recorded for release review. See README.md and JamesDSP's source
repository for corresponding source information.
The generated engine, parameter tables, IR utilities/store and built-in IR set
are copied from the pinned revision. The uploaded/generated IR cap is 65,536
frames at the internal 44.1/48 kHz rate (low-power devices use 24,000 frames).
License provenance: LICENSE.txt is the port's GPL-3.0-or-later license. The
upstream snapshot at upstream/Main/LICENSE contains GPL-2.0 text; see README.md.