backport audio fixes

This commit is contained in:
Maikiwi 2022-03-08 21:36:43 -08:00
parent df2f7b7216
commit bc43d742ff
2 changed files with 26 additions and 31 deletions

View file

@ -67,14 +67,14 @@ const CiderAudio = {
} else {try{CiderAudio.source.disconnect(CiderAudio.context.destination)}catch(e){}}
CiderAudio.audioNodes.gainNode = CiderAudio.context.createGain()
CiderAudio.source.connect(CiderAudio.audioNodes.gainNode);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
if(app.cfg.audio.normalization){
CiderAudio.normalizerOn()
}
if (app.cfg.audio.spatial){
CiderAudio.spatialOn()
}
CiderAudio.equalizer()
CiderAudio.equalizer();
CiderAudio.hierarchical_loading();
},
normalizerOn: function (){
},
@ -109,14 +109,10 @@ const CiderAudio = {
});
app.cfg.audio.maikiwiAudio.spatialType = 0;
break;
}
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination);
}
}
else {
try{
CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.context.destination);} catch(e){}
CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination);
CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
let roomDimensions = {
width: 32,
height: 12,
@ -643,13 +639,11 @@ const CiderAudio = {
CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i] * app.cfg.audio.equalizer.mix;
}
// Dynamic-ish loading
CiderAudio.hierarchical_loading();
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);
}
}

View file

@ -70,7 +70,7 @@
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description')}}</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.audio.spatial" v-on:change="toggleSpatial" switch/>
<input type="checkbox" v-model="app.cfg.audio.spatial" :disabled="app.cfg.audio.maikiwiAudio.spatial === true" v-on:change="toggleSpatial" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
@ -80,7 +80,7 @@
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description')}}</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.spatial" :disabled="app.cfg.audio.spatial === false" v-on:change="toggleSpatial" switch/>
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.spatial" :disabled="app.cfg.audio.spatial === false" v-on:change="toggleMaikiwiSpatial" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.audio.maikiwiAudio.spatial === true && app.cfg.audio.spatial === true">
@ -169,26 +169,27 @@
methods: {
toggleSpatial: function () {
if (app.cfg.audio.spatial) {
if (app.cfg.audio.maikiwiAudio.spatial === false) {
if (app.mk.volume - 0.2512 > 0) {app.mk.volume -= 0.2512}
else {app.mk.volume = 0.0001}
}
CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
if (app.cfg.audio.maikiwiAudio.spatial === true) {
if (app.mk.volume + 0.2512 < 1) {app.mk.volume += 0.2512}
else {app.mk.volume = 1}
}
CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
}
else {
if (app.cfg.audio.maikiwiAudio.spatial === true) {
if (app.mk.volume - 0.2512 > 0) {app.mk.volume -= 0.2512}
else {app.mk.volume = 0.0001}
}
app.cfg.audio.maikiwiAudio.spatial = false;
CiderAudio.spatialOff()
}
},
toggleMaikiwiSpatial: function () {
if (app.cfg.audio.maikiwiAudio.spatial === true) {
CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) + 12) / 20));
if (normalized > 1.0) {app.mk.volume = 1}
else {app.mk.volume = normalized}
}
else {
let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) - 12) / 20));
app.mk.volume = normalized
CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
}
},
ciderPPEStandard: function () {
app.cfg.audio.maikiwiAudio.ciderPPE_value = 0.5;