diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index c47f2f4e..c5f95b27 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -84,7 +84,7 @@ var CiderAudio = { if (app.cfg.audio.maikiwiAudio.spatial === true) { CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver(); - fetch('./audio/CiderSpatial_Conv_v2.wav').then(async (impulseData) => { + fetch('./audio/impulses/CiderSpatial_Conv_v2.wav').then(async (impulseData) => { let bufferedImpulse = await impulseData.arrayBuffer(); CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); @@ -205,6 +205,7 @@ var CiderAudio = { }, vibrantbass_h2_1: function (status){ if (status === true) { + /* let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies; let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain; let VIBRANTBASSQ = app.cfg.audio.maikiwiAudio.vibrantBass.Q; @@ -225,6 +226,66 @@ var CiderAudio = { CiderAudio.audioNodes.vibrantbassNode[VIBRANTBASSBANDS.length-1].connect(CiderAudio.audioNodes.audioBands[0]); } + */ + + CiderAudio.audioNodes.vibrantbassNode = [] + CiderAudio.audioNodes.vibrantbassNode[0] = CiderAudio.context.createConvolver(); + + + switch (app.cfg.audio.equalizer.vibrantBass) { + case '10': + break; + case '9': + break; + case '8': + break; + case '7': + break; + case '6': + break; + case '5': + fetch('./audio/impulses/CB5_Dirac_Trimmed.wav').then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.vibrantbassNode[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + + }); + console.log("[Cider][Audio] Vibrant Bass 5"); + break; + case '4': + break; + case '3': + break; + case '2': + break; + case '1': + break; + case '-1': + break; + case '-2': + break; + case '-3': + break; + case '-4': + break; + case '-5': + break; + case '-6': + break; + case '-7': + break; + case '-8': + break; + case '-9': + break; + case '-10': + break; + default: + break; + } + CiderAudio.audioNodes.vibrantbassNode[0].normalize = true; + CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]) + + } }, hierarchical_unloading: function (){ try {CiderAudio.audioNodes.spatialNode.output.disconnect();} catch(e){} @@ -253,13 +314,24 @@ var CiderAudio = { if (app.cfg.audio.maikiwiAudio.spatial === true) { CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += (9 - app.cfg.audio.equalizer.vibrantBass) + CiderAudio.audioNodes.gainNode.gain.value += 10 + } console.log('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial') } else { + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += (9 - app.cfg.audio.equalizer.vibrantBass) + } CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); console.log('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial') } + + + } // CAP, Analog Warmth, Spatial else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier === 0 && @@ -273,9 +345,15 @@ var CiderAudio = { if (app.cfg.audio.maikiwiAudio.spatial === true) { CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += 10 + } + console.log('[Cider][Audio] CAP, Analog Warmth, Maikiwi Spatial') } else { + CiderAudio.audioNodes.gainNode.gain.value = 1; CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); console.log('[Cider][Audio] CAP, Analog Warmth, Spatial') @@ -292,9 +370,19 @@ var CiderAudio = { if (app.cfg.audio.maikiwiAudio.spatial === true) { CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += (9 - app.cfg.audio.equalizer.vibrantBass) + CiderAudio.audioNodes.gainNode.gain.value += 10 + } + console.log('[Cider][Audio] Vibrant Bass, CAP, Maikiwi Spatial') } else { + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += (9 - app.cfg.audio.equalizer.vibrantBass) + } + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); console.log('[Cider][Audio] Vibrant Bass, CAP, Spatial') @@ -310,6 +398,11 @@ var CiderAudio = { CiderAudio.vibrantbass_h2_1(true) CiderAudio.llpw_h2_2(true, 2); CiderAudio.analogWarmth_h2_3(true, 3); + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += (9 - app.cfg.audio.equalizer.vibrantBass) + } + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); console.log('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth') } @@ -323,9 +416,15 @@ var CiderAudio = { if (app.cfg.audio.maikiwiAudio.spatial === true) { CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += 10 + } + console.log('[Cider][Audio] CAP, Maikiwi Spatial') } else { + CiderAudio.audioNodes.gainNode.gain.value = 1; CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); console.log('[Cider][Audio] CAP, Spatial') @@ -341,9 +440,15 @@ var CiderAudio = { if (app.cfg.audio.maikiwiAudio.spatial === true) { CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += 10 + } + console.log('[Cider][Audio] Analog Warmth, Maikiwi Spatial') } else { + CiderAudio.audioNodes.gainNode.gain.value = 1; CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); console.log('[Cider][Audio] Analog Warmth, Spatial') @@ -357,6 +462,7 @@ var CiderAudio = { CiderAudio.llpw_h2_2(true, 1); CiderAudio.analogWarmth_h2_3(true, 3); + CiderAudio.audioNodes.gainNode.gain.value = 1; CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); console.log('[Cider][Audio] CAP and Analog Warmth') } @@ -368,6 +474,11 @@ var CiderAudio = { CiderAudio.vibrantbass_h2_1(true) CiderAudio.analogWarmth_h2_3(true, 2); + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += (9 - app.cfg.audio.equalizer.vibrantBass) + } + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); console.log('[Cider][Audio] Vibrant Bass, Analog Warmth') } @@ -380,6 +491,11 @@ var CiderAudio = { CiderAudio.vibrantbass_h2_1(true) CiderAudio.llpw_h2_2(true, 2); + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += (9 - app.cfg.audio.equalizer.vibrantBass) + } + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); console.log('[Cider][Audio] Vibrant Bass, CAP') } @@ -391,11 +507,18 @@ var CiderAudio = { CiderAudio.vibrantbass_h2_1(true) if (app.cfg.audio.maikiwiAudio.spatial === true) { + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += (9 - app.cfg.audio.equalizer.vibrantBass) + CiderAudio.audioNodes.gainNode.gain.value += 10 + } + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); console.log('[Cider][Audio] Vibrant Bass, Maikiwi Spatial') } else { + CiderAudio.audioNodes.gainNode.gain.value = 1; CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]); console.log('[Cider][Audio] Vibrant Bass, Spatial') @@ -408,6 +531,11 @@ var CiderAudio = { app.cfg.audio.spatial === false && app.cfg.audio.maikiwiAudio.analogWarmth === false) { CiderAudio.vibrantbass_h2_1(true) + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += (9 - app.cfg.audio.equalizer.vibrantBass) + } + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); console.log('[Cider][Audio] Vibrant Bass') } @@ -417,6 +545,7 @@ var CiderAudio = { app.cfg.audio.spatial === false && app.cfg.audio.maikiwiAudio.analogWarmth === false) { CiderAudio.llpw_h2_2(true, 1); + CiderAudio.audioNodes.gainNode.gain.value = 1; CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); console.log('[Cider][Audio] CAP') } @@ -426,6 +555,7 @@ var CiderAudio = { app.cfg.audio.maikiwiAudio.spatial === false && app.cfg.audio.maikiwiAudio.analogWarmth === true) { CiderAudio.analogWarmth_h2_3(true, 1); + CiderAudio.audioNodes.gainNode.gain.value = 1; CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); console.log('[Cider][Audio] Analog Warmth') } @@ -435,11 +565,17 @@ var CiderAudio = { app.cfg.audio.spatial === true && app.cfg.audio.maikiwiAudio.analogWarmth === false){ if (app.cfg.audio.maikiwiAudio.spatial === true) { + + if (CiderAudio.audioNodes.gainNode.gain.value <= 1) { + CiderAudio.audioNodes.gainNode.gain.value += 10 + } + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]); console.log('[Cider][Audio] Maikiwi Spatial') } else { + CiderAudio.audioNodes.gainNode.gain.value = 1; CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]); console.log('[Cider][Audio] Spatial') @@ -448,6 +584,7 @@ var CiderAudio = { } // Nothing else { + CiderAudio.audioNodes.gainNode.gain.value = 1; CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]); console.log('[Cider][Audio] Nothing') // If CAP & vibrant bass is disabled } diff --git a/src/renderer/audio/impulses/CB5_Dirac_Trimmed.wav b/src/renderer/audio/impulses/CB5_Dirac_Trimmed.wav new file mode 100644 index 00000000..cbd519ee Binary files /dev/null and b/src/renderer/audio/impulses/CB5_Dirac_Trimmed.wav differ diff --git a/src/renderer/audio/CiderSpatial_Conv.wav b/src/renderer/audio/impulses/CiderSpatial_Conv.wav similarity index 100% rename from src/renderer/audio/CiderSpatial_Conv.wav rename to src/renderer/audio/impulses/CiderSpatial_Conv.wav diff --git a/src/renderer/audio/CiderSpatial_Conv_v2.wav b/src/renderer/audio/impulses/CiderSpatial_Conv_v2.wav similarity index 100% rename from src/renderer/audio/CiderSpatial_Conv_v2.wav rename to src/renderer/audio/impulses/CiderSpatial_Conv_v2.wav diff --git a/src/renderer/index.js b/src/renderer/index.js index a3551d58..b5a91528 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -707,8 +707,12 @@ const app = new Vue({ let replaygain = self.parseSCTagToRG(tag) try { CiderAudio.audioNodes.gainNode.gain.value = (Math.min(Math.pow(10, (replaygain.gain / 20)), (1 / replaygain.peak))) - } catch (e) { - + } catch (e) {} + if (app.cfg.advanced.AudioContext === true) { + CiderAudio.audioNodes.gainNode.gain.value += (9 - app.cfg.audio.equalizer.vibrantBass) + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.gain.value += 10 + } } }) diff --git a/src/renderer/views/components/audio-settings.ejs b/src/renderer/views/components/audio-settings.ejs index cc95f6e1..013f9ea1 100644 --- a/src/renderer/views/components/audio-settings.ejs +++ b/src/renderer/views/components/audio-settings.ejs @@ -23,9 +23,9 @@
{{app.getLz('term.audioControls')}}
@@ -59,7 +59,15 @@ openAudioControls() { 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.") + } + } + }, } - }); + ); \ No newline at end of file diff --git a/src/renderer/views/components/equalizer.ejs b/src/renderer/views/components/equalizer.ejs index ef3620b4..a5981d26 100644 --- a/src/renderer/views/components/equalizer.ejs +++ b/src/renderer/views/components/equalizer.ejs @@ -305,10 +305,11 @@ changeVibrantBass() { app.cfg.audio.maikiwiAudio.vibrantBass.multiplier = app.cfg.audio.equalizer.vibrantBass / 10 CiderAudio.hierarchical_loading(); + /** if (app.cfg.audio.equalizer.vibrantBass != 0) { for (var i = 0; i < 21; i++) { CiderAudio.audioNodes.vibrantbassNode[i].gain.value = app.cfg.audio.maikiwiAudio.vibrantBass.gain[i] * (app.cfg.audio.equalizer.vibrantBass / 10); - }} + }} */ }, changeMix() { for (var i = 0; i < 10; i++) { diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 57b63625..5836e43e 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -138,8 +138,7 @@ {{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.description')}}
- +
@@ -886,12 +885,12 @@ app.cfg.advanced.experiments.splice(app.cfg.advanced.experiments.indexOf(flag), 1); }, toggleAudioContext: function () { - if (app.cfg.advanced.AudioContext) { + if (app.cfg.advanced.AudioContext === true) { CiderAudio.init(); - if (app.cfg.audio.normalization) { + if (app.cfg.audio.normalization === true) { CiderAudio.normalizerOn() } - if (app.cfg.audio.spatial) { + if (app.cfg.audio.spatial === true) { CiderAudio.spatialOn() CiderAudio.hierarchical_loading(); } @@ -908,19 +907,11 @@ } }, toggleSpatial: function () { - if (app.cfg.audio.spatial) { - if (app.cfg.audio.maikiwiAudio.ciderPPE === true && app.cfg.audio.maikiwiAudio.spatial === false) { - CiderAudio.spatialOff() - app.cfg.audio.spatial = false; - notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility')) - try { - CiderAudio.hierarchical_loading();} catch(e) {} - } - else { + if (app.cfg.audio.spatial) { CiderAudio.spatialOn() CiderAudio.hierarchical_loading(); } - } else { + else { CiderAudio.spatialOff() }