WIP Audio Thingies

This commit is contained in:
Maikiwi 2022-02-18 22:23:44 -08:00
parent a42a88ad6c
commit a12d629a8a
8 changed files with 164 additions and 23 deletions

View file

@ -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
}

Binary file not shown.

View file

@ -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
}
}
})

View file

@ -23,9 +23,9 @@
<div class="name">{{app.getLz('term.audioControls')}}</div>
</button>
<button class="playlist-item"
@click="$root.appRoute('audiolabs')" style="width:100%;">
@click="openCiderAudioLab" style="width:100%;">
<div class="icon"><%- include("../svg/speaker.svg") %></div>
<div class="name">Audio Labs</div>
<div class="name">Cider Audio Lab</div>
</button>
</div>
</div>
@ -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.")
}
}
});
},
}
);
</script>

View file

@ -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++) {

View file

@ -138,8 +138,7 @@
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.description')}}</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.audio.normalization" v-on:change="toggleNormalization"
switch/>
<input type="checkbox" v-model="app.cfg.audio.normalization" v-on:change="toggleNormalization" :disabled="app.cfg.audio.equalizer.vibrantBass !== 0 || app.cfg.audio.maikiwiAudio.spatial === true" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
@ -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();
}
@ -909,18 +908,10 @@
},
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 {
CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
}
} else {
else {
CiderAudio.spatialOff()
}