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

@@ -16,7 +16,8 @@ function parsePreset(text) {
}
test('the persisted engine is Standard by default and upgrades missing JamesDSP settings safely', () => {
assert.match(app, /jamesDsp: \{ enabled: false, preset: 'flat', params: \{\} \}/);
assert.match(app, /jamesDsp: \{ enabled: false, downloadForOffline: false, preset: 'flat', params: \{\}, irRef: null \}/);
assert.match(app, /downloadForOffline: saved\.downloadForOffline === true/);
assert.match(app, /enabled: saved\.enabled === true/);
assert.match(app, /preset: typeof saved\.preset === 'string' \? saved\.preset : 'flat'/);
assert.match(app, /settings: normalizeJamesDspSettings\(\{ \.\.\.DEFAULT_SETTINGS, \.\.\.\(loaded\.settings \|\| \{\}\) \}\)/);
@@ -47,6 +48,12 @@ test('Playback settings expose persisted presets, bands, safe import/export, IR,
assert.match(views, /\[25, 40, 63, 100, 160, 250, 400, 630, 1000, 1600, 2500, 4000, 6300, 10000, 16000\]/);
assert.match(views, /imported\?\.texts/);
assert.doesNotMatch(views, /liveprog|ddc|arbitrary/);
assert.match(views, /navigator\.hardwareConcurrency/);
assert.match(views, /Long impulse responses are disabled/);
assert.doesNotMatch(views, /44\.1 or 48 kHz/);
assert.match(views, /setDspSpatialMode/);
assert.match(views, /data-dsp-param="convolver\.predelayMs"/);
assert.match(views, /data-dsp-param="convolver\.mix"/);
assert.match(app, /Bypass JamesDSP/);
assert.match(app, /toggleDspBypass/);
});