CAP rework

This commit is contained in:
Maikiwi 2022-03-20 16:15:29 -07:00
parent 11ddb196eb
commit 6300aa7a33
4 changed files with 104 additions and 74 deletions

View file

@ -55,7 +55,7 @@ export class Store {
"normalization": false, "normalization": false,
"maikiwiAudio": { "maikiwiAudio": {
"ciderPPE": false, "ciderPPE": false,
"ciderPPE_value": 0.5, "ciderPPE_value": "NATURAL",
"analogWarmth": false, "analogWarmth": false,
"analogWarmth_value": 1.25, "analogWarmth_value": 1.25,
"spatial": false, "spatial": false,

View file

@ -332,65 +332,109 @@ const CiderAudio = {
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]; 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.llpw = [] CiderAudio.audioNodes.llpw = []
if (app.cfg.audio.maikiwiAudio.ciderPPE_value === 0.55) { switch (app.cfg.audio.maikiwiAudio.ciderPPE_value) {
for (let i = 0; i < c_LLPW_FREQUENCIES.length; i++) { case "NATURAL":
CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter(); CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking'; CiderAudio.audioNodes.llpw[0].normalize = false;
CiderAudio.audioNodes.llpw[i].frequency.value = c_LLPW_FREQUENCIES[i]; fetch('./audio/impulses/CAP_Natural.wav').then(async (impulseData) => {
CiderAudio.audioNodes.llpw[i].Q.value = c_LLPW_Q[i]; let bufferedImpulse = await impulseData.arrayBuffer();
CiderAudio.audioNodes.llpw[i].gain.value = c_LLPW_GAIN[i]; CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);});
}
switch (hierarchy) {
case 2:
try{CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){}
break;
case 1:
try{CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]);} catch(e){}
break;
case 0:
try{CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination);} catch(e){}
break;
for (let i = 1; i < c_LLPW_FREQUENCIES.length; i ++) { }
CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
}
switch (hierarchy) { console.debug("[Cider][Audio] CAP - Natural Mode");
case 2:
try{
CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){}
break;
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; break;
} case "STANDARD": // Standard
for (let i = 0; i < LLPW_FREQUENCIES.length; i++) {
CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i];
CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i];
CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i];
}
for (let i = 1; i < LLPW_FREQUENCIES.length; i ++) {
CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
}
console.debug("[Cider][Audio] CAP - Clarity Mode"); switch (hierarchy) {
} case 2:
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;
else if (app.cfg.audio.maikiwiAudio.ciderPPE_value === 0.5) { }
for (let i = 0; i < LLPW_FREQUENCIES.length; i++) {
CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i];
CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i];
CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i];
}
console.debug("[Cider][Audio] CAP - Classic Mode");
for (let i = 1; i < LLPW_FREQUENCIES.length; i ++) {
CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
}
switch (hierarchy) {
case 2:
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; break;
case "AGGRESSIVE": // Aggressive
for (let i = 0; i < c_LLPW_FREQUENCIES.length; i++) {
CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
CiderAudio.audioNodes.llpw[i].frequency.value = c_LLPW_FREQUENCIES[i];
CiderAudio.audioNodes.llpw[i].Q.value = c_LLPW_Q[i];
CiderAudio.audioNodes.llpw[i].gain.value = c_LLPW_GAIN[i];
}
for (let i = 1; i < c_LLPW_FREQUENCIES.length; i ++) {
CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
}
switch (hierarchy) {
case 2:
try{CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){}
break;
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;
}
console.debug("[Cider][Audio] CAP - Clarity Mode");
break;
default:
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
CiderAudio.audioNodes.llpw[0].normalize = false;
fetch('./audio/impulses/CAP_Natural.wav').then(async (impulseData) => {
let bufferedImpulse = await impulseData.arrayBuffer();
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);});
switch (hierarchy) {
case 2:
try{CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){}
break;
case 1:
try{CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]);} catch(e){}
break;
case 0:
try{CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination);} catch(e){}
break;
}
app.cfg.audio.maikiwiAudio.ciderPPE_value = "NATURAL";
console.debug("[Cider][Audio] CAP - Natural Mode (Defaulted from broki config)");
break;
} }
console.debug("[Cider][Audio] CAP - Classic Mode");
}
} }
}, },

Binary file not shown.

View file

@ -30,12 +30,12 @@
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description')}}</small> <small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description')}}</small>
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<button class="md-btn" :disabled="app.cfg.audio.maikiwiAudio.ciderPPE_value === 0.5" v-model="app.cfg.audio.maikiwiAudio.ciderPPE_value" v-on:click="ciderPPEStandard"> <select class="md-select" style="width:180px;" v-model="app.cfg.audio.maikiwiAudio.ciderPPE_value"
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard')}} v-on:change="CiderAudio.hierarchical_loading()">
</button> <option value="NATURAL">Natural</option>
<button class="md-btn" style="margin-top: 5px;" :disabled="app.cfg.audio.maikiwiAudio.ciderPPE_value === 0.55" v-model="app.cfg.audio.maikiwiAudio.ciderPPE_value" v-on:click="ciderPPEClarity"> <option value="STANDARD">{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard')}}</option>
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive')}} <option value="AGGRESSIVE">{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive')}}</option>
</button> </select>
</div> </div>
</div> </div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext"> <div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
@ -192,20 +192,6 @@
CiderAudio.hierarchical_loading(); CiderAudio.hierarchical_loading();
} }
}, },
ciderPPEStandard: function () {
app.cfg.audio.maikiwiAudio.ciderPPE_value = 0.5;
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];
for (let i = 0; i < 24; i++) {
CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i];
}
},
ciderPPEClarity: function () {
app.cfg.audio.maikiwiAudio.ciderPPE_value = 0.55;
let c_LLPW_GAIN = [-0.11, 0.27, -0.8, 0.57, 1.84, -0.38, 0.47, -1.56, 0.83, 1.58, -1.79, -0.45, 0.48, 1.22, -1.58, -1.59, -2.03, 2.56, -2.2, -2.48, 4.75, 10.5, 1.43, 3.76];
for (let i = 0; i < 24; i++) {
CiderAudio.audioNodes.llpw[i].gain.value = c_LLPW_GAIN[i];
}
},
ChangeanalogWarmth: function (multiplier) { ChangeanalogWarmth: function (multiplier) {
app.cfg.audio.maikiwiAudio.analogWarmth_value = multiplier app.cfg.audio.maikiwiAudio.analogWarmth_value = multiplier
let WARMTH_GAIN = [-4.81, 0.74, 0.55, -0.84, -1.52, 0.84, 0.66, -0.29, 0.29, 0.94, 1.67, 1.62, -0.53, -0.81, -4.98, 1.43, 0.86, 1.13, -1.06, -0.95, -1.13, 1.78, -3.86]; let WARMTH_GAIN = [-4.81, 0.74, 0.55, -0.84, -1.52, 0.84, 0.66, -0.29, 0.29, 0.94, 1.67, 1.62, -0.53, -0.81, -4.98, 1.43, 0.86, 1.13, -1.06, -0.95, -1.13, 1.78, -3.86];