prelim spatialization
This commit is contained in:
parent
ecfdeece64
commit
4d22a257ac
3 changed files with 33 additions and 20 deletions
BIN
src/renderer/audio/CiderSpatial_Conv.wav
Normal file
BIN
src/renderer/audio/CiderSpatial_Conv.wav
Normal file
Binary file not shown.
|
@ -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){}
|
||||||
|
@ -218,14 +235,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 &&
|
||||||
|
@ -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')
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue