diff --git a/src/main/base/store.ts b/src/main/base/store.ts index c97989cb..7a15af84 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -40,6 +40,7 @@ export class Store { "analogWarmth": false, "analogWarmth_value": 1.25, "spatial": false, + "spatialType": 0, "vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts 'multiplier': 0, 'frequencies': [17.182, 42.169, 53.763, 112.69, 119.65, 264.59, 336.57, 400.65, 505.48, 612.7, 838.7, 1155.3, 1175.6, 3406.8, 5158.6, 5968.1, 6999.9, 7468.6, 8862.9, 9666, 10109], diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index e3b2f6fe..977fe73e 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -83,12 +83,31 @@ var CiderAudio = { spatialOn: function (){ if (app.cfg.audio.maikiwiAudio.spatial === true) { CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver(); - - fetch('./audio/impulses/CiderSpatial_Conv.wav').then(async (impulseData) => { - let bufferedImpulse = await impulseData.arrayBuffer(); - CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); - - }); + + switch (app.cfg.audio.maikiwiAudio.spatialType) { + case 0: + fetch('./audio/impulses/CiderSpatial_Conv.wav').then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + + }); + break; + case 1: + fetch('./audio/impulses/CiderSpatial_Conv.wav').then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + + }); + break; + default: + fetch('./audio/impulses/CiderSpatial_Conv.wav').then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + + }); + app.cfg.audio.maikiwiAudio.spatialType = 0; + break; + } CiderAudio.audioNodes.spatialNode.normalize = true; CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination); } diff --git a/src/renderer/views/components/audio-settings.ejs b/src/renderer/views/components/audio-settings.ejs index 013f9ea1..a63c0de4 100644 --- a/src/renderer/views/components/audio-settings.ejs +++ b/src/renderer/views/components/audio-settings.ejs @@ -23,7 +23,7 @@
{{app.getLz('term.audioControls')}}
@@ -60,13 +60,6 @@ app.modals.audioControls = true app.modals.audioSettings = false }, - openCiderAudioLab() { - if (app.cfg.advanced.AudioContext === true) { - $root.appRoute('audiolabs') - } else { - notyf.error("Cider Audio Lab requires 'Advanced Functionality' to be enabled.") - } - } }, } ); diff --git a/src/renderer/views/pages/audiolabs.ejs b/src/renderer/views/pages/audiolabs.ejs index fe043f34..7a6f830c 100644 --- a/src/renderer/views/pages/audiolabs.ejs +++ b/src/renderer/views/pages/audiolabs.ejs @@ -4,7 +4,15 @@
Cider Audio Laboratory
-
+
+
+
+ AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory. +
+ +
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE')}} @@ -75,6 +83,20 @@
+
+
+ Cider Spatialization Profile +
+ Changes the Tuning Profile of the Spatialization. +
+
+ + +
@@ -90,7 +112,6 @@ } }, mounted: function () { - }, methods: { toggleSpatial: function () {