I hate web audio
This commit is contained in:
parent
b481977779
commit
12815f954a
5 changed files with 38 additions and 37 deletions
|
@ -64,36 +64,37 @@ const CiderAudio = {
|
||||||
normalizerOff: function (){
|
normalizerOff: function (){
|
||||||
CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime+ 1, 0.5);
|
CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime+ 1, 0.5);
|
||||||
},
|
},
|
||||||
|
spatialProfiles: [
|
||||||
|
{
|
||||||
|
"id": "420signature",
|
||||||
|
"file": './audio/impulses/CiderSpatial_v69.420_Audiophile.wav',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "standard",
|
||||||
|
"file": './audio/impulses/CiderSpatial_v69_Standard.wav',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "audiophile",
|
||||||
|
"file": './audio/impulses/CiderSpatial_v69_Audiophile.wav'
|
||||||
|
}
|
||||||
|
],
|
||||||
spatialOn: function (){
|
spatialOn: function (){
|
||||||
CiderAudio.audioNodes.spatialNode = null;
|
CiderAudio.audioNodes.spatialNode = null;
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver();
|
CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver();
|
||||||
CiderAudio.audioNodes.spatialNode.normalize = true;
|
CiderAudio.audioNodes.spatialNode.normalize = false;
|
||||||
switch (app.cfg.audio.maikiwiAudio.spatialType) {
|
|
||||||
case 0:
|
let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) {
|
||||||
fetch('./audio/impulses/CiderSpatial_v69_Standard.wav').then(async (impulseData) => {
|
return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile;
|
||||||
let bufferedImpulse = await impulseData.arrayBuffer();
|
});
|
||||||
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
|
||||||
|
if (spatialProfile === undefined) {
|
||||||
});
|
spatialProfile = CiderAudio.spatialProfiles[0];
|
||||||
break;
|
}
|
||||||
case 1:
|
fetch(spatialProfile.file).then(async (impulseData) => {
|
||||||
fetch('./audio/impulses/CiderSpatial_v69_Audiophile.wav').then(async (impulseData) => {
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
let bufferedImpulse = await impulseData.arrayBuffer();
|
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);});
|
||||||
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
|
||||||
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
fetch('./audio/impulses/CiderSpatial_v69_Standard.wav').then(async (impulseData) => {
|
|
||||||
let bufferedImpulse = await impulseData.arrayBuffer();
|
|
||||||
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
|
||||||
|
|
||||||
});
|
|
||||||
app.cfg.audio.maikiwiAudio.spatialType = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
|
CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
|
||||||
|
|
BIN
src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile.wav
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -90,12 +90,12 @@
|
||||||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description')}}</small>
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.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.spatialType === 0" v-model="app.cfg.audio.maikiwiAudio.spatialType" onclick="app.cfg.audio.maikiwiAudio.spatialType = 0">
|
<select class="md-select" style="width:180px;" v-model="app.cfg.audio.maikiwiAudio.spatialProfile"
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard')}}
|
v-on:change="toggleMaikiwiSpatial">
|
||||||
</button>
|
<option value="420signature">Signature</option>
|
||||||
<button class="md-btn" :disabled="app.cfg.audio.maikiwiAudio.spatialType === 1" v-model="app.cfg.audio.maikiwiAudio.spatialType" onclick="app.cfg.audio.maikiwiAudio.spatialType = 1">
|
<option value="audiophile">Expansive</option>
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile')}}
|
<option value="standard">Minimal</option>
|
||||||
</button>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="opacity: 0.5; pointer-events: none">
|
<div style="opacity: 0.5; pointer-events: none">
|
||||||
|
@ -180,13 +180,13 @@
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
CiderAudio.spatialOn()
|
CiderAudio.spatialOn()
|
||||||
CiderAudio.hierarchical_loading();
|
CiderAudio.hierarchical_loading();
|
||||||
let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) + 12) / 20));
|
//let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) - 14) / 20));
|
||||||
if (normalized > 1.0) {app.mk.volume = 1}
|
//app.mk.volume = normalized
|
||||||
else {app.mk.volume = normalized}
|
// -13dBFS Target
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) - 12) / 20));
|
//let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) + 14) / 20));
|
||||||
app.mk.volume = normalized
|
//app.mk.volume = normalized
|
||||||
CiderAudio.spatialOn()
|
CiderAudio.spatialOn()
|
||||||
CiderAudio.hierarchical_loading();
|
CiderAudio.hierarchical_loading();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue