From 31101a3fc00f8612e84c2b57c9460c1b1c425f86 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Sun, 6 Feb 2022 23:20:45 -0800 Subject: [PATCH] hello auto preamp --- src/main/base/store.ts | 1 - src/renderer/audio/audio.js | 40 ++++++++++----------- src/renderer/style.less | 2 +- src/renderer/views/components/equalizer.ejs | 35 +++++------------- src/renderer/views/pages/settings.ejs | 21 ++++++----- 5 files changed, 41 insertions(+), 58 deletions(-) diff --git a/src/main/base/store.ts b/src/main/base/store.ts index 7a4fd3ae..eeac1e9c 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -62,7 +62,6 @@ export class Store { 'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000], 'gain': [0,0,0,0,0,0,0,0,0,0], 'Q' : [1,1,1,1,1,1,1,1,1,1], - 'preamp' : 0, 'mix' : 1, 'vibrantBass' : 0, 'presets': [], diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index caabddaf..c22ef29c 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -126,11 +126,10 @@ var CiderAudio = { let VIBRANTBASSBANDS = app.cfg.audio.vibrantBass.frequencies; let VIBRANTBASSGAIN = app.cfg.audio.vibrantBass.gain; let VIBRANTBASSQ = app.cfg.audio.vibrantBass.Q; - LLPW_Q = [5, 1, 3.536, 1.25, 8.409, 1.25, 14.14, 7.071, 5, 0.625, 16.82, 20, 20, 20, 28.28, 28.28, 28.28, 20, 33.64, 33.64, 10, 28.28, 7.071, 3.856]; - LLPW_GAIN = [0.38, -1.81, -0.23, -0.51, 0.4, 0.84, 0.36, -0.34, 0.27, -1.2, -0.42, -0.67, 0.81, 1.31, -0.71, 0.68, -1.04, 0.79, -0.73, -1.33, 1.17, 0.57, 0.35, 6.33]; - LLPW_FREQUENCIES = [16.452, 24.636, 37.134, 74.483, 159.54, 308.18, 670.21, 915.81, 1200.7, 2766.4, 2930.6, 4050.6, 4409.1, 5395.2, 5901.6, 6455.5, 7164.1, 7724.1, 8449, 10573, 12368, 14198, 17910, 18916]; - CiderAudio.audioNodes.audioBands = []; CiderAudio.audioNodes.vibrantbassNode = []; - CiderAudio.audioNodes.llpw = []; CiderAudio.audioNodes.llpwEnabled = 0; + let LLPW_Q = [5, 1, 3.536, 1.25, 8.409, 1.25, 14.14, 7.071, 5, 0.625, 16.82, 20, 20, 20, 28.28, 28.28, 28.28, 20, 33.64, 33.64, 10, 28.28, 7.071, 3.856]; + let LLPW_GAIN = [0.38, -1.81, -0.23, -0.51, 0.4, 0.84, 0.36, -0.34, 0.27, -1.2, -0.42, -0.67, 0.81, 1.31, -0.71, 0.68, -1.04, 0.79, -0.73, -1.33, 1.17, 0.57, 0.35, 6.33]; + let LLPW_FREQUENCIES = [16.452, 24.636, 37.134, 74.483, 159.54, 308.18, 670.21, 915.81, 1200.7, 2766.4, 2930.6, 4050.6, 4409.1, 5395.2, 5901.6, 6455.5, 7164.1, 7724.1, 8449, 10573, 12368, 14198, 17910, 18916]; + CiderAudio.audioNodes.audioBands = []; CiderAudio.audioNodes.vibrantbassNode = []; CiderAudio.audioNodes.llpw = []; for (i = 0; i < BANDS.length; i++) { CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter(); @@ -139,7 +138,7 @@ var CiderAudio = { CiderAudio.audioNodes.audioBands[i].Q.value = Q[i]; CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i] * app.cfg.audio.equalizer.mix; } - + for (i = 0; i < LLPW_FREQUENCIES.length; i++) { CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter(); CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking'; @@ -150,38 +149,39 @@ var CiderAudio = { CiderAudio.audioNodes.preampNode = CiderAudio.context.createBiquadFilter(); CiderAudio.audioNodes.preampNode.type = 'highshelf'; - CiderAudio.audioNodes.preampNode.frequency.value = 0; // allow all - CiderAudio.audioNodes.preampNode.gain.value = app.cfg.audio.equalizer.preamp; + CiderAudio.audioNodes.preampNode.frequency.value = 0; // Passthrough + if (CiderAudio.audioNodes.llpwEnabled === 1) {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain.concat(CiderAudio.audioNodes.llpw[23].gain.value)));} + else {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain));} for (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.vibrantBass.multiplier; - } + 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.vibrantBass.multiplier;} + if (app.cfg.audio.spatial) { try{ CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination); } catch(e){} - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.preampNode); } else { try{ CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.context.destination);} catch(e){} - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.preampNode); } + CiderAudio.audioNodes.preampNode.connect(CiderAudio.audioNodes.llpw[0]); + for (i = 1; i < LLPW_FREQUENCIES.length; i ++) { CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]); } - CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.preampNode); - - CiderAudio.audioNodes.preampNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - + CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); for (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]); + for (i = 1; i < BANDS.length; i ++) { CiderAudio.audioNodes.audioBands[i-1].connect(CiderAudio.audioNodes.audioBands[i]); diff --git a/src/renderer/style.less b/src/renderer/style.less index 7d4d8f86..c7903888 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -5942,7 +5942,7 @@ body.no-gpu { .modal-window { height: 330px; max-height: 330px; - width: 800px; + width: 740px; max-width: 800px; overflow: hidden; diff --git a/src/renderer/views/components/equalizer.ejs b/src/renderer/views/components/equalizer.ejs index 3a5e12cb..2d4f6f3b 100644 --- a/src/renderer/views/components/equalizer.ejs +++ b/src/renderer/views/components/equalizer.ejs @@ -23,11 +23,6 @@ Vibrant Bass -
- - - Preamp -
{{$root.cfg.audio.equalizer.mix}} @@ -128,7 +123,6 @@ this.frequencies = [] this.gain = [] this.Q = [] - this.preamp = 0 this.mix = 1 this.vibrantBass = 0 this.userGenerated = true @@ -140,7 +134,6 @@ 'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000], 'gain': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'Q': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -150,7 +143,6 @@ 'frequencies': [32, 75, 125, 197, 500, 1000, 2000, 3040, 8000, 16000], 'gain': [0, 2.1, 0, 0.8, 0, 0, 0, -1.5, 0, 0], 'Q': [1, 0.7, 1, 1.5, 1, 1, 1, 2, 1, 1], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -160,7 +152,6 @@ 'frequencies': [32, 63, 125, 250, 466, 1000, 2000, 4000, 8000, 20000], 'gain': [0, 0, 0, 0, -2, 0, 0, 0, 0, 10], 'Q': [1, 1, 1, 1, 0.6, 1, 1, 1, 1, 0.1], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -170,7 +161,6 @@ 'frequencies': [32, 75, 125, 220, 700, 1000, 2000, 4000, 10000, 16000], 'gain': [0, -8, 0, -0.1, -3, 0, 0, 0, 4, 0], 'Q': [1, 0.2, 1, 2.0, 1.4, 1, 1, 1, 0.1, 1], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -180,7 +170,6 @@ 'frequencies': [20, 63, 125, 250, 400, 1000, 2000, 4000, 8000, 20000], 'gain': [-22, 0, 0, 0, -3, 0, 1.8, 0, 0, 3.5], 'Q': [0.3, 1, 1, 1, 2.0, 1, 0.7, 1, 1, 0.8], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -190,7 +179,6 @@ 'frequencies': [20, 63, 155, 250, 500, 1000, 2000, 5000, 11000, 16000], 'gain': [-15, 0, -3, 0, 0, 0, 0, 3.1, 0, 0], 'Q': [0.5, 1, 2, 1, 1, 1, 1, 1.5, 0.1, 1], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -200,7 +188,6 @@ 'frequencies': [32, 63, 125, 250, 500, 1128, 2000, 4057, 8000, 16000], 'gain': [0, 0, 0, 0, 0, 2, 0, -6.4, 0, 0], 'Q': [1, 1, 1, 1, 1, 2, 1, 1, 1, 1], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -210,7 +197,6 @@ 'frequencies': [35, 63, 125, 250, 500, 800, 2000, 4000, 8000, 20000], 'gain': [5, 0, 0, 0, 0, -5, 0, 0, 0, 5], 'Q': [0.1, 1, 1, 1, 1, 0.6, 1, 1, 1, 0.2], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -221,7 +207,6 @@ 'frequencies': [45.53,88.06,116.18,161.3,247.05,295.6,365.79,495.13,716.85,960.76], 'gain': [-0.36,4.07,-1.3,1.92,0.77,-0.53,-1.33,0.44,0.46,-0.5], 'Q': [1.768,0.625,5,8.409,10,16.82,5.946,7.071,20,10], - 'preamp': -2, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -232,7 +217,6 @@ 'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000], 'gain': [2.7, 2.2, 1.6, 1.4, 0.6, 0, 0, 0, 0, 0], 'Q': [1.4, 1.4, 1.4, 1.4, 1.4, 1, 1, 1, 1, 1], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -242,7 +226,6 @@ 'frequencies': [32, 63, 160, 250, 500, 1000, 2000, 3500, 8000, 20000], 'gain': [2.7, 2.2, 1.6, 1.4, 0.6, 0, 0, 0, 0, 0], 'Q': [0.7, 0.7, 0.7, 0.7, 0.7, 1, 1, 1, 1, 1], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, 'userGenerated': false @@ -333,18 +316,20 @@ app.cfg.audio.vibrantBass.multiplier = app.cfg.audio.equalizer.vibrantBass / 10 for (var i = 0; i < 21; i++) { CiderAudio.audioNodes.vibrantbassNode[i].gain.value = app.cfg.audio.vibrantBass.gain[i] * (app.cfg.audio.equalizer.vibrantBass / 10); - } - }, - changePreamp() { - CiderAudio.audioNodes.preampNode.gain.value = app.cfg.audio.equalizer.preamp; + } }, changeMix() { for (var i = 0; i < 10; i++) { CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix } }, + changePreamp() { + if (CiderAudio.audioNodes.llpwEnabled === 1) {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain.concat(CiderAudio.audioNodes.llpw[23].gain.value)));} + else {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain));} + }, changeGain(i) { CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix + this.changePreamp() }, changeFreq(i) { CiderAudio.audioNodes.audioBands[i].frequency.value = app.cfg.audio.equalizer.frequencies[i] @@ -357,10 +342,10 @@ 'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000], 'gain': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'Q': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - 'preamp': 0, 'mix': 1, 'vibrantBass': 0, }) + CiderAudio.audioNodes.preampNode.gain.value = 0; if (app.cfg.audio.equalizer.userGenerated) { this.saveSelectedPreset() } @@ -375,7 +360,6 @@ newPreset.frequencies = eqSettings.frequencies newPreset.gain = eqSettings.gain newPreset.Q = eqSettings.Q - newPreset.preamp = eqSettings.preamp newPreset.mix = eqSettings.mix newPreset.vibrantBass = eqSettings.vibrantBass app.cfg.audio.equalizer.presets.push(newPreset) @@ -393,14 +377,13 @@ preset.frequencies = app.cfg.audio.equalizer.frequencies preset.gain = app.cfg.audio.equalizer.gain preset.Q = app.cfg.audio.equalizer.Q - preset.preamp = app.cfg.audio.equalizer.preamp preset.mix = app.cfg.audio.equalizer.mix preset.vibrantBass = app.cfg.audio.equalizer.vibrantBass notyf.success("Saved Preset") }, exportPreset() { const preset = app.cfg.audio.equalizer.presets.find(p => p.preset == app.cfg.audio.equalizer.preset) - const jsonObj = {"name": preset.name, "author": app.chrome.userinfo.attributes.name, "frequency": preset.frequencies, "gain": preset.gain, "q": preset.Q, "preamp": preset.preamp, "mix": preset.mix, "vibrantBass": preset.vibrantBass}; + const jsonObj = {"name": preset.name, "author": app.chrome.userinfo.attributes.name, "frequency": preset.frequencies, "gain": preset.gain, "q": preset.Q, "mix": preset.mix, "vibrantBass": preset.vibrantBass}; ipcRenderer.send("export-eq", jsonObj) }, importPreset() { @@ -411,7 +394,6 @@ newPreset.frequencies = result.frequency newPreset.gain = result.gain newPreset.Q = result.q - newPreset.preamp = result.preamp newPreset.mix = result.mix newPreset.vibrantBass = result.vibrantBass app.cfg.audio.equalizer.presets.push(newPreset) @@ -423,7 +405,6 @@ }, applyPreset(preset) { Object.assign(this.$root.cfg.audio.equalizer, preset) - this.changePreamp() this.changeVibrantBass() for (var i = 0; i < 10; i++) { this.changeGain(i) diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 99272f5c..7e86bfb3 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -68,7 +68,7 @@ {{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE.description')}}
- +
@@ -78,10 +78,10 @@ {{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description')}}
- -
@@ -804,17 +804,20 @@ CiderAudio.normalizerOff() } }, - ciderPPECompatibility: function () { - if (app.cfg.audio.spatial) { - notyf.error("CAP is not compatible with Spatialization. Please disable Spatialization to continue.") + ciderPPE: function () { + if (app.cfg.advanced.ciderPPE) { + if (app.cfg.audio.spatial) { app.cfg.advanced.ciderPPE = false; - } - }, + notyf.error("CAP is not compatible with Spatialization. Please disable Spatialization to continue.") + } + }}, toggleSpatial: function () { if (app.cfg.audio.spatial) { if (!app.cfg.advanced.ciderPPE) { CiderAudio.spatialOn()} - else { + else { + CiderAudio.spatialOff() + app.cfg.audio.spatial = false; notyf.error("Spatialization is not compatible with CAP. Please disable CAP to continue.") } } else {