From 938ab4522fb2c098e5862353b7061ff50d15ad9f Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Thu, 31 Mar 2022 21:02:59 -0700 Subject: [PATCH] Normalization rework --- src/renderer/main/vueapp.js | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index 71524454..f49df215 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -756,24 +756,26 @@ const app = new Vue({ ipcRenderer.on('SoundCheckTag', (event, tag) => { // let replaygain = self.parseSCTagToRG(tag) - if (app.mk.nowPlayingItem.type !== 'song') { - CiderAudio.audioNodes.gainNode.gain.value = 0.70794578438;} - else { - let soundcheck = tag.split(" ") - let numbers = [] - for (let item of soundcheck) { - numbers.push(parseInt(item, 16)) + try { + if (app.mk.nowPlayingItem.type !== 'song') { + CiderAudio.audioNodes.gainNode.gain.value = 0.70794578438;} + else { + let soundcheck = tag.split(" ") + let numbers = [] + for (let item of soundcheck) { + numbers.push(parseInt(item, 16)) + } + numbers.shift() + let peak = Math.max(numbers[6], numbers[7]) / 32768.0 + let gain = Math.pow(10, ((-7.63 - (Math.log10(peak) * 20)) / 20))// EBU R 128 Compliant + console.debug(`[Cider][MaikiwiSoundCheck] Peak Gain: '${Math.log10(peak) * 20}' dB | Adjusting '${Math.log10(gain) * 20}' dB`) + try { + //CiderAudio.audioNodes.gainNode.gain.value = (Math.min(Math.pow(10, (replaygain.gain / 20)), (1 / replaygain.peak))) + CiderAudio.audioNodes.gainNode.gain.value = gain + } catch (e) {} } - numbers.shift() - let peak = Math.max(numbers[6], numbers[7]) / 32768.0 - let gain = Math.pow(10, ((-7.63 - (Math.log10(peak) * 20)) / 20))// EBU R 128 Compliant - console.debug(`[Cider][MaikiwiSoundCheck] Peak Gain: '${Math.log10(peak) * 20}' dB | Adjusting '${Math.log10(gain) * 20}' dB`) - try { - //CiderAudio.audioNodes.gainNode.gain.value = (Math.min(Math.pow(10, (replaygain.gain / 20)), (1 / replaygain.peak))) - CiderAudio.audioNodes.gainNode.gain.value = gain - } catch (e) {} - } + } catch (e) {ipcRenderer.send('SoundCheckTag', event, tag);} // brute force until it works }) ipcRenderer.on('play', function (_event, mode, id) {