diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index 6252840e..f43ea317 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -73,7 +73,6 @@ const CiderAudio = { if (app.cfg.audio.spatial){ CiderAudio.spatialOn() } - CiderAudio.equalizer(); CiderAudio.hierarchical_loading(); }, normalizerOn: function (){ @@ -128,8 +127,7 @@ const CiderAudio = { up: 'acoustic-ceiling-tiles', }; CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials); - CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource(); - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);} + CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource();} }, spatialOff: function (){ CiderAudio.hierarchical_loading(); @@ -325,6 +323,9 @@ const CiderAudio = { try{ CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.audioBands[0]);} catch(e){} break; + case 0: + try{CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length-1].connect(CiderAudio.context.destination);} catch(e){} + break; } @@ -362,6 +363,9 @@ const CiderAudio = { case 1: try{CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.audioBands[0]);} catch(e){} break; + case 0: + try{CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length-1].connect(CiderAudio.context.destination);} catch(e){} + break; } @@ -384,12 +388,14 @@ const CiderAudio = { switch (hierarchy) { case 2: - try{ - CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){} + try{CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){} break; case 1: try{CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.audioBands[0]);} catch(e){} break; + case 0: + try{CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.context.destination);} catch(e){} + break; } console.debug("[Cider][Audio] CAP - Classic Mode"); @@ -397,29 +403,36 @@ const CiderAudio = { } }, - vibrantbass_h2_1: function (status){ + vibrantbass_h2_1: function (status, hierarchy){ 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; - CiderAudio.audioNodes.vibrantbassNode = [] - - for (let i = 0; i < VIBRANTBASSBANDS.length; i++) { - CiderAudio.audioNodes.vibrantbassNode[i] = CiderAudio.context.createBiquadFilter(); - CiderAudio.audioNodes.vibrantbassNode[i].type = 'peaking'; // 'peaking'; - CiderAudio.audioNodes.vibrantbassNode[i].frequency.value = VIBRANTBASSBANDS[i]; - CiderAudio.audioNodes.vibrantbassNode[i].Q.value = VIBRANTBASSQ[i]; - CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * app.cfg.audio.maikiwiAudio.vibrantBass.multiplier; - } + let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies; + let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain; + let VIBRANTBASSQ = app.cfg.audio.maikiwiAudio.vibrantBass.Q; + CiderAudio.audioNodes.vibrantbassNode = [] + + for (let i = 0; i < VIBRANTBASSBANDS.length; i++) { + CiderAudio.audioNodes.vibrantbassNode[i] = CiderAudio.context.createBiquadFilter(); + CiderAudio.audioNodes.vibrantbassNode[i].type = 'peaking'; // 'peaking'; + CiderAudio.audioNodes.vibrantbassNode[i].frequency.value = VIBRANTBASSBANDS[i]; + CiderAudio.audioNodes.vibrantbassNode[i].Q.value = VIBRANTBASSQ[i]; + CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * app.cfg.audio.maikiwiAudio.vibrantBass.multiplier; + } - for (let i = 1; i < VIBRANTBASSBANDS.length; i ++) { - CiderAudio.audioNodes.vibrantbassNode[i-1].connect(CiderAudio.audioNodes.vibrantbassNode[i]); - } + for (let i = 1; i < VIBRANTBASSBANDS.length; i ++) { + CiderAudio.audioNodes.vibrantbassNode[i-1].connect(CiderAudio.audioNodes.vibrantbassNode[i]); + } - CiderAudio.audioNodes.vibrantbassNode[VIBRANTBASSBANDS.length-1].connect(CiderAudio.audioNodes.audioBands[0]); + switch (hierarchy) { + case 0: + try{ + CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.context.destination);} catch(e){} + break; + case 1: + try{CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]);} catch(e){} + break; + + } } - - CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]) }, hierarchical_unloading: function (){ try {CiderAudio.audioNodes.spatialNode.output.disconnect();} catch(e){} @@ -428,6 +441,7 @@ const CiderAudio = { try {for (var i of CiderAudio.audioNodes.analogWarmth){i.disconnect();} CiderAudio.audioNodes.analogWarmth = null} catch(e){} try {for (var i of CiderAudio.audioNodes.llpw){i.disconnect();} CiderAudio.audioNodes.llpw = null} catch(e){} try {for (var i of CiderAudio.audioNodes.vibrantbassNode){i.disconnect();} CiderAudio.audioNodes.vibrantbassNode = null} catch(e){} + try {for (var i of CiderAudio.audioNodes.audioBands) {i.disconnect();} CiderAudio.audioNodes.audioBands = null} catch(e){} console.debug("[Cider][Audio] Finished hierarchical unloading"); @@ -435,216 +449,411 @@ const CiderAudio = { hierarchical_loading: function (){ CiderAudio.hierarchical_unloading(); - if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0) { // Vibrant Bass - CiderAudio.vibrantbass_h2_1(true) + if (Math.max(...app.cfg.audio.equalizer.gain) !== 0) { + CiderAudio.equalizer(true, 0); - if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP - CiderAudio.llpw_h2_2(true, 2); - - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { // Vibrant Bass, CAP, Analog Warmth - CiderAudio.analogWarmth_h2_3(true, 3); - - if (app.cfg.audio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial') + if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0) { + CiderAudio.vibrantbass_h2_1(true, 1); + + if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP + CiderAudio.llpw_h2_2(true, 2); + + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { // Vibrant Bass, CAP, Analog Warmth + CiderAudio.analogWarmth_h2_3(true, 3); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial') + } + else { // Vibrant Bass, CAP, Analog Warmth, Spatial + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Spatial') + } } - else { // Vibrant Bass, CAP, Analog Warmth, Spatial - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial') + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth') } } else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth') + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + app.cfg.audio.normalization = true + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP') + } } } else { - if (app.cfg.audio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); - app.cfg.audio.normalization = true - console.debug('[Cider][Audio] Vibrant Bass, CAP, Maikiwi Spatial') + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 2); + app.cfg.audio.normalization = true; + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Spatial') + } } else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Spatial') + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth') } } else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP') + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass') + } } } } - else { - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { - CiderAudio.analogWarmth_h2_3(true, 2); - app.cfg.audio.normalization = true; - - if (app.cfg.audio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Maikiwi Spatial') + // Vibrant Bass ends here + else { // if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier) === 0 + if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { + CiderAudio.llpw_h2_2(true, 1); + + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 3); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Spatial') + } } - else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Spatial') + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, CAP and Analog Warmth') } } else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth') - } - } - else { - if (app.cfg.audio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug('[Cider][Audio] Vibrant Bass, Maikiwi Spatial') + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Equalizer, CAP, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Equalizer, CAP, Spatial') + } } else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug('[Cider][Audio] Vibrant Bass, Spatial') + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Equalizer, CAP') } } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug('[Cider][Audio] Vibrant Bass') + } // CAP ends here + else { + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 1); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Equalizer, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Analog Warmth, Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Analog Warmth') + } + } + else { + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.audioBands[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Equalizer, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.audioBands[0]); + console.debug('[Cider][Audio] Equalizer, Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.audioBands[0]); + console.debug('[Cider][Audio] Equalizer') + } } } } } - // Vibrant Bass ends here - else { - if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { - CiderAudio.llpw_h2_2(true, 1); - - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { - CiderAudio.analogWarmth_h2_3(true, 3); - - if (app.cfg.audio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - app.cfg.audio.normalization = true; - console.debug('[Cider][Audio] CAP, Analog Warmth, Maikiwi Spatial') + else { //if (Math.max(...app.cfg.audio.equalizer.gain) === 0) + if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0) { // Vibrant Bass + CiderAudio.vibrantbass_h2_1(true, 0) + + if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP + CiderAudio.llpw_h2_2(true, 2); + + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { // Vibrant Bass, CAP, Analog Warmth + CiderAudio.analogWarmth_h2_3(true, 3); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial') + } + else { // Vibrant Bass, CAP, Analog Warmth, Spatial + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial') + } } else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] CAP, Analog Warmth, Spatial') + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth') } } - else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] CAP and Analog Warmth') + else { // if (app.cfg.audio.maikiwiAudio.analogWarmth) !== true + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + app.cfg.audio.normalization = true + console.debug('[Cider][Audio] Vibrant Bass, CAP, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Vibrant Bass, CAP, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Vibrant Bass, CAP') + } } } else { - if (app.cfg.audio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); - app.cfg.audio.normalization = true; - console.debug('[Cider][Audio] CAP, Maikiwi Spatial') + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 2); + app.cfg.audio.normalization = true; + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Spatial') + } } else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] CAP, Spatial') + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth') } } else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] CAP') + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Vibrant Bass, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Vibrant Bass, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Vibrant Bass') + } } } - } // CAP ends here + } + // Vibrant Bass ends here else { - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { - CiderAudio.analogWarmth_h2_3(true, 1); - - if (app.cfg.audio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - app.cfg.audio.normalization = true; - console.debug('[Cider][Audio] Analog Warmth, Maikiwi Spatial') + if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { + CiderAudio.llpw_h2_2(true, 0); + + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 3); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] CAP, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] CAP, Analog Warmth, Spatial') + } } else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Analog Warmth, Spatial') + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] CAP and Analog Warmth') } } else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Analog Warmth') + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] CAP, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] CAP, Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] CAP') + } } - } + } // CAP ends here else { - if (app.cfg.audio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]); - app.cfg.audio.normalization = true; - console.debug('[Cider][Audio] Maikiwi Spatial') + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 0); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Analog Warmth, Spatial') + } } else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]); - console.debug('[Cider][Audio] Spatial') + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Analog Warmth') } } else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]); - console.debug('[Cider][Audio] Direct Mode to Equalizer') + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination); + console.debug('[Cider][Audio] Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination); + console.debug('[Cider][Audio] Literal Nothing') + } } } } } - console.debug("[Cider][Audio] Finished hierarchical loading"); }, - equalizer: function (){ // h1_1 - let BANDS = app.cfg.audio.equalizer.frequencies; - let GAIN = app.cfg.audio.equalizer.gain; - let Q = app.cfg.audio.equalizer.Q; + equalizer: function (status, hierarchy){ // h1_1 + if (status === true) { + let BANDS = app.cfg.audio.equalizer.frequencies; + let GAIN = app.cfg.audio.equalizer.gain; + let Q = app.cfg.audio.equalizer.Q; - CiderAudio.audioNodes.audioBands = []; + CiderAudio.audioNodes.audioBands = []; + for (let i = 0; i < BANDS.length; i++) { + CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter(); + CiderAudio.audioNodes.audioBands[i].type = 'peaking'; // 'peaking'; + CiderAudio.audioNodes.audioBands[i].frequency.value = BANDS[i]; + CiderAudio.audioNodes.audioBands[i].Q.value = Q[i]; + CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i] * app.cfg.audio.equalizer.mix; + } + + for (let i = 1; i < BANDS.length; i ++) { + CiderAudio.audioNodes.audioBands[i-1].connect(CiderAudio.audioNodes.audioBands[i]); + } + + switch (hierarchy) { + case 0: + try{ + CiderAudio.audioNodes.audioBands[BANDS.length-1].connect(CiderAudio.context.destination);} catch(e){} + break; + } - for (let i = 0; i < BANDS.length; i++) { - CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter(); - CiderAudio.audioNodes.audioBands[i].type = 'peaking'; // 'peaking'; - CiderAudio.audioNodes.audioBands[i].frequency.value = BANDS[i]; - CiderAudio.audioNodes.audioBands[i].Q.value = Q[i]; - CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i] * app.cfg.audio.equalizer.mix; + } } - - for (let i = 1; i < BANDS.length; i ++) { - CiderAudio.audioNodes.audioBands[i-1].connect(CiderAudio.audioNodes.audioBands[i]); - } - CiderAudio.audioNodes.audioBands[BANDS.length-1].connect(CiderAudio.context.destination); - - } - } export {CiderAudio} \ No newline at end of file diff --git a/src/renderer/views/components/equalizer.ejs b/src/renderer/views/components/equalizer.ejs index c8c2e6e5..e02a1b5b 100644 --- a/src/renderer/views/components/equalizer.ejs +++ b/src/renderer/views/components/equalizer.ejs @@ -310,12 +310,19 @@ } }, changeMix() { - for (var i = 0; i < 10; i++) { + if (Math.max(...$root.cfg.audio.equalizer.gain) !== 0) { + for (var i = 0; i < 10; i++) { CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix + } } }, changeGain(i) { - CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix + if (Math.max(...$root.cfg.audio.equalizer.gain) !== 0) { + CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix + } + else { + CiderAudio.hierarchical_loading(); + } }, changeFreq(i) { CiderAudio.audioNodes.audioBands[i].frequency.value = app.cfg.audio.equalizer.frequencies[i]