prelim spatialization

This commit is contained in:
Maikiwi 2022-02-17 22:17:43 -08:00
parent ecfdeece64
commit 4d22a257ac
3 changed files with 33 additions and 20 deletions

Binary file not shown.

View file

@ -8,7 +8,8 @@ var CiderAudio = {
audioBands : null, audioBands : null,
vibrantbassNode: null, vibrantbassNode: null,
llpw: null, llpw: null,
llpwEnabled: null llpwEnabled: null,
analogWarmth: null
}, },
init: function (cb = function () { }) { init: function (cb = function () { }) {
//AudioOutputs.fInit = true; //AudioOutputs.fInit = true;
@ -29,6 +30,9 @@ var CiderAudio = {
CiderAudio.audioNodes.gainNode.disconnect(); } catch(e){} CiderAudio.audioNodes.gainNode.disconnect(); } catch(e){}
try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){} try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){}
try{ try{
for (var i of CiderAudio.audioNodes.analogWarmth){
i.disconnect();
}
for (var i of CiderAudio.audioNodes.llpw){ for (var i of CiderAudio.audioNodes.llpw){
i.disconnect(); i.disconnect();
} }
@ -47,7 +51,8 @@ var CiderAudio = {
audioBands : null, audioBands : null,
vibrantbassNode: null, vibrantbassNode: null,
llpw: null, llpw: null,
llpwEnabled: null llpwEnabled: null,
analogWarmth: null
} }
} catch (e) {} } catch (e) {}
CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){} CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){}
@ -74,9 +79,13 @@ var 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);
}, },
spatialOn: function (){ spatialOn: function (){
/**
CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context); CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
//CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination); CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination);
let roomDimensions = { let roomDimensions = {
width: 32, width: 32,
height: 12, height: 12,
@ -91,9 +100,17 @@ var CiderAudio = {
down: 'acoustic-ceiling-tiles', down: 'acoustic-ceiling-tiles',
up: 'acoustic-ceiling-tiles', up: 'acoustic-ceiling-tiles',
}; };
CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials); CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials);*/
CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource();
CiderAudio.hierarchical_loading(); CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver();
fetch('./audio/CiderSpatial_Conv.wav').then(async (impulseData) => {
let bufferedImpulse = await impulseData.arrayBuffer();
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
});
CiderAudio.audioNodes.spatialNode.normalize = true;
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination);
}, },
spatialOff: function (){ spatialOff: function (){
CiderAudio.hierarchical_loading(); CiderAudio.hierarchical_loading();
@ -207,7 +224,7 @@ var CiderAudio = {
}, },
hierarchical_unloading: function (){ hierarchical_unloading: function (){
try {CiderAudio.audioNodes.spatialNode.output.disconnect();} catch(e){} try {CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){}
try {CiderAudio.audioNodes.gainNode.disconnect();} catch(e){} try {CiderAudio.audioNodes.gainNode.disconnect();} catch(e){}
try {for (var i of CiderAudio.audioNodes.analogWarmth){i.disconnect();} CiderAudio.audioNodes.analogWarmth = []} catch(e){} try {for (var i of CiderAudio.audioNodes.analogWarmth){i.disconnect();} CiderAudio.audioNodes.analogWarmth = []} catch(e){}
try {for (var i of CiderAudio.audioNodes.llpw){i.disconnect();} CiderAudio.audioNodes.llpw = []} catch(e){} try {for (var i of CiderAudio.audioNodes.llpw){i.disconnect();} CiderAudio.audioNodes.llpw = []} catch(e){}
@ -219,14 +236,6 @@ var CiderAudio = {
hierarchical_loading: function (){ hierarchical_loading: function (){
CiderAudio.hierarchical_unloading(); CiderAudio.hierarchical_unloading();
// Compatibility Check
if (app.cfg.audio.spatial === true && app.cfg.advanced.ciderPPE === true || app.cfg.audio.spatial === true && app.cfg.advanced.analogWarmth === true) {
app.cfg.advanced.analogWarmth = false;
app.cfg.advanced.ciderPPE = false;
notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility'));
this.hierarchical_loading();
}
// Vibrant Bass, CAP, Analog Warmth // Vibrant Bass, CAP, Analog Warmth
if (app.cfg.audio.vibrantBass.multiplier !== 0 && if (app.cfg.audio.vibrantBass.multiplier !== 0 &&
app.cfg.advanced.ciderPPE === true && app.cfg.advanced.ciderPPE === true &&
@ -280,8 +289,9 @@ var CiderAudio = {
app.cfg.audio.analogWarmth === false) { app.cfg.audio.analogWarmth === false) {
CiderAudio.vibrantbass_h2_1(true) CiderAudio.vibrantbass_h2_1(true)
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); //CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]); CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
console.log('[Cider][Audio] Vibrant Bass, Spatial') console.log('[Cider][Audio] Vibrant Bass, Spatial')
} }
// Vibrant Bass // Vibrant Bass
@ -316,8 +326,9 @@ var CiderAudio = {
app.cfg.advanced.ciderPPE === false && app.cfg.advanced.ciderPPE === false &&
app.cfg.audio.spatial === true && app.cfg.audio.spatial === true &&
app.cfg.audio.analogWarmth === false){ app.cfg.audio.analogWarmth === false){
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); //CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]); CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]);
console.log('[Cider][Audio] Spatial') console.log('[Cider][Audio] Spatial')
} }

View file

@ -871,6 +871,7 @@
} }
if (app.cfg.audio.spatial) { if (app.cfg.audio.spatial) {
CiderAudio.spatialOn() CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
} }
} else { } else {
app.cfg.advanced.ciderPPE = false; app.cfg.advanced.ciderPPE = false;
@ -886,13 +887,14 @@
}, },
toggleSpatial: function () { toggleSpatial: function () {
if (app.cfg.audio.spatial) { if (app.cfg.audio.spatial) {
if (app.cfg.advanced.ciderPPE === true || app.cfg.audio.analogWarmth === true) { if (app.cfg.advanced.ciderPPE === true) {
CiderAudio.spatialOff() CiderAudio.spatialOff()
app.cfg.audio.spatial = false; app.cfg.audio.spatial = false;
notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility')) notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility'))
} }
else { else {
CiderAudio.spatialOn() CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
} }
} else { } else {
CiderAudio.spatialOff() CiderAudio.spatialOff()