Merge branch 'innolab' into develop

This commit is contained in:
Maikiwi 2022-02-18 14:02:42 -08:00 committed by GitHub
commit 873d234999
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 266 additions and 81 deletions

View file

@ -664,7 +664,7 @@ export class BrowserWindow {
console.log(err)
});
});
/*
ipcMain.on('check-for-update', async (_event) => {
const branch = utils.getStoreValue('general.update_branch')
let latestbranch = await fetch(`https://circleci.com/api/v1.1/project/gh/ciderapp/Cider/latest/artifacts?branch=${branch}&filter=successful`)
@ -680,10 +680,10 @@ export class BrowserWindow {
const options: any = {
provider: 'generic',
url: `${base_url}`
}
}*/
/*
* Have to handle the auto updaters seperatly until we can support macOS. electron-builder limitation -q
*/
*/ /*
const win_autoUpdater = new NsisUpdater(options) //Windows
const linux_autoUpdater = new AppImageUpdater(options) //Linux
await win_autoUpdater.checkForUpdatesAndNotify()
@ -697,7 +697,7 @@ export class BrowserWindow {
event.returnValue = true
}
})
*/
ipcMain.on('share-menu', async (_event, url) => {
if (process.platform != 'darwin') return;

View file

@ -12,7 +12,7 @@ export class Store {
"discord_rpc_clear_on_pause": true,
"language": "en_US", // electron.app.getLocale().replace('-', '_') this can be used in future
"playbackNotifications": true,
"update_branch": "main"
"update_branch": "innolab"
},
"home": {
"followedArtists": [],
@ -36,6 +36,8 @@ export class Store {
"normalization": false,
"ciderPPE": false,
"ciderPPE_value": 0.5,
"analogWarmth": false,
"analogWarmth_value": 1.25,
"spatial": false,
"spatial_properties": {
"presets": [],

Binary file not shown.

View file

@ -8,7 +8,8 @@ var CiderAudio = {
audioBands : null,
vibrantbassNode: null,
llpw: null,
llpwEnabled: null
llpwEnabled: null,
analogWarmth: null
},
init: function (cb = function () { }) {
//AudioOutputs.fInit = true;
@ -29,6 +30,9 @@ var CiderAudio = {
CiderAudio.audioNodes.gainNode.disconnect(); } catch(e){}
try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){}
try{
for (var i of CiderAudio.audioNodes.analogWarmth){
i.disconnect();
}
for (var i of CiderAudio.audioNodes.llpw){
i.disconnect();
}
@ -47,7 +51,8 @@ var CiderAudio = {
audioBands : null,
vibrantbassNode: null,
llpw: null,
llpwEnabled: null
llpwEnabled: null,
analogWarmth: null
}
} catch (e) {}
CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){}
@ -74,9 +79,13 @@ var CiderAudio = {
normalizerOff: function (){
CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime+ 1, 0.5);
},
spatialOn: function (){
/**
CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
//CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination);
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination);
let roomDimensions = {
width: 32,
height: 12,
@ -91,9 +100,17 @@ var CiderAudio = {
down: 'acoustic-ceiling-tiles',
up: 'acoustic-ceiling-tiles',
};
CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials);
CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource();
CiderAudio.hierarchical_loading();
CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials);*/
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 (){
CiderAudio.hierarchical_loading();
@ -113,6 +130,44 @@ var CiderAudio = {
);
}
},
analogWarmth_h2_3: function (status, hierarchy){
if (status === true) { // 23 Band Adjustment
let WARMTH_FREQUENCIES = [10.513, 15.756, 224.01, 677.77, 1245.4, 2326.8, 2847.3, 4215.3, 11057, 12793, 16235, 16235, 17838, 18112, 18112, 19326, 19372, 19372, 20061, 20280, 20280, 20853, 22276];
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_Q = [0.442, 3.536, 2.102, 8.409, 0.625, 16.82, 5, 2.973, 3.536, 2.5, 2.5, 11.89, 0.625, 1.487, 1.153, 5, 5.453, 5, 2.973, 3.386, 3.386, 14.14, 8.409];
CiderAudio.audioNodes.analogWarmth = []
for (i = 0; i < WARMTH_FREQUENCIES.length; i++) {
CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i];
CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * app.cfg.audio.analogWarmth_value;
}
for (i = 1; i < WARMTH_FREQUENCIES.length; i ++) {
CiderAudio.audioNodes.analogWarmth[i-1].connect(CiderAudio.audioNodes.analogWarmth[i]);
}
switch (hierarchy) {
case 3:
try{
CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.llpw[0]);} catch(e){}
break;
case 2:
try{
CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){}
break;
case 1:
try{
CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.audioBands[0]);} catch(e){}
break;
}
}
},
llpw_h2_2: function (status, hierarchy){
if (status === true) {
let LLPW_Q = [5, 1, 3.536, 1.25, 8.409, 1.25, 14.14, 7.071, 5, 0.625, 16.82, 20, 20, 20, 28.28, 28.28, 28.28, 20, 33.64, 33.64, 10, 28.28, 7.071, 3.856];
@ -131,13 +186,17 @@ var CiderAudio = {
for (i = 1; i < LLPW_FREQUENCIES.length; i ++) {
CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
}
if (hierarchy === 2) {
try{
CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){}}
else if (hierarchy === 1) {
switch (hierarchy) {
case 2:
try{
CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.audioBands[0]);} catch(e){}}
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;
}
}
},
@ -165,8 +224,9 @@ var CiderAudio = {
},
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 {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.vibrantbassNode){i.disconnect();} CiderAudio.audioNodes.vibrantbassNode = []} catch(e){}
@ -175,45 +235,155 @@ var CiderAudio = {
},
hierarchical_loading: function (){
CiderAudio.hierarchical_unloading();
if (app.cfg.audio.vibrantBass.multiplier !== 0) { // If vibrant bass is enabled
if (app.cfg.advanced.ciderPPE) { // If CAP & vibrant bass is enabled
// Vibrant Bass, CAP, Analog Warmth, Spatial
if (app.cfg.audio.vibrantBass.multiplier !== 0 &&
app.cfg.advanced.ciderPPE === true &&
app.cfg.audio.spatial === true &&
app.cfg.audio.analogWarmth === true) {
CiderAudio.vibrantbass_h2_1(true)
if (app.cfg.audio.spatial) {
app.cfg.advanced.ciderPPE = false;
notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility'));
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
CiderAudio.llpw_h2_2(true, 2);
CiderAudio.analogWarmth_h2_3(true, 3);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
console.log('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial')
}
else {CiderAudio.llpw_h2_2(true, 2); CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);}
}
else { // If only vibrant bass is enabled
// Vibrant Bass, CAP, Spatial
else if (app.cfg.audio.vibrantBass.multiplier !== 0 &&
app.cfg.advanced.ciderPPE === true &&
app.cfg.audio.spatial === true &&
app.cfg.audio.analogWarmth === false) {
CiderAudio.vibrantbass_h2_1(true)
//CiderAudio.llpw_h2_2(false, 0)
if (app.cfg.audio.spatial) {
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]);}
else {CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);}
CiderAudio.llpw_h2_2(true, 2);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]);
console.log('[Cider][Audio] Vibrant Bass, CAP, Spatial')
}
// Vibrant Bass, CAP, Analog Warmth
else if (app.cfg.audio.vibrantBass.multiplier !== 0 &&
app.cfg.advanced.ciderPPE === true &&
app.cfg.audio.spatial === false &&
app.cfg.audio.analogWarmth === true) {
CiderAudio.vibrantbass_h2_1(true)
CiderAudio.llpw_h2_2(true, 2);
CiderAudio.analogWarmth_h2_3(true, 3);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
console.log('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth')
}
else { // If vibrant bass is disabled
if (app.cfg.advanced.ciderPPE) { // If CAP is enabled & vibrant bass is disabled
//CiderAudio.vibrantbass_h2_1(false)
if (app.cfg.audio.spatial) {
app.cfg.advanced.ciderPPE = false;
notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility'));
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]);
// CAP, Spatial
else if (app.cfg.audio.vibrantBass.multiplier === 0 &&
app.cfg.advanced.ciderPPE === true &&
app.cfg.audio.spatial === true &&
app.cfg.audio.analogWarmth === false) {
CiderAudio.llpw_h2_2(true, 1);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]);
console.log('[Cider][Audio] CAP, Spatial')
}
else {CiderAudio.llpw_h2_2(true, 1); CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);}
// Analog Warmth, Spatial
else if (app.cfg.audio.vibrantBass.multiplier === 0 &&
app.cfg.advanced.ciderPPE === false &&
app.cfg.audio.spatial === true &&
app.cfg.audio.analogWarmth === true) {
CCiderAudio.analogWarmth_h2_3(true, 1);
//CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
console.log('[Cider][Audio] Analog Warmth, Spatial')
}
else { // If CAP & vibrant bass is disabled
//CiderAudio.vibrantbass_h2_1(false)
//CiderAudio.llpw_h2_2(false, 0)
if (app.cfg.audio.spatial) {
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]);}
else {CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]);}
// CAP, Analog Warmth
else if (app.cfg.audio.vibrantBass.multiplier === 0 &&
app.cfg.advanced.ciderPPE === true &&
app.cfg.audio.spatial === false &&
app.cfg.audio.analogWarmth === true) {
CiderAudio.llpw_h2_2(true, 1);
CiderAudio.analogWarmth_h2_3(true, 3);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
console.log('[Cider][Audio] CAP and Analog Warmth')
}
// Vibrant Bass, Analog Warmth
else if (app.cfg.audio.vibrantBass.multiplier !== 0 &&
app.cfg.advanced.ciderPPE === false &&
app.cfg.audio.spatial === false &&
app.cfg.audio.analogWarmth === true) {
CiderAudio.vibrantbass_h2_1(true)
CiderAudio.analogWarmth_h2_3(true, 2);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
console.log('[Cider][Audio] Vibrant Bass, Analog Warmth')
}
// Vibrant Bass, CAP
else if (app.cfg.audio.vibrantBass.multiplier !== 0 &&
app.cfg.advanced.ciderPPE === true &&
app.cfg.audio.spatial === false &&
app.cfg.audio.analogWarmth === false) {
CiderAudio.vibrantbass_h2_1(true)
CiderAudio.llpw_h2_2(true, 2);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
console.log('[Cider][Audio] Vibrant Bass, CAP')
}
// Vibrant Bass, Spatial
else if (app.cfg.audio.vibrantBass.multiplier !== 0 &&
app.cfg.advanced.ciderPPE === false &&
app.cfg.audio.spatial === true &&
app.cfg.audio.analogWarmth === false) {
CiderAudio.vibrantbass_h2_1(true)
//CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
console.log('[Cider][Audio] Vibrant Bass, Spatial')
}
// Vibrant Bass
else if (app.cfg.audio.vibrantBass.multiplier !== 0 &&
app.cfg.advanced.ciderPPE === false &&
app.cfg.audio.spatial === false &&
app.cfg.audio.analogWarmth === false) {
CiderAudio.vibrantbass_h2_1(true)
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
console.log('[Cider][Audio] Vibrant Bass')
}
// CAP
else if (app.cfg.audio.vibrantBass.multiplier === 0 &&
app.cfg.advanced.ciderPPE === true &&
app.cfg.audio.spatial === false &&
app.cfg.audio.analogWarmth === false) {
CiderAudio.llpw_h2_2(true, 1);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
console.log('[Cider][Audio] CAP')
}
// Analog Warmth
else if (app.cfg.audio.vibrantBass.multiplier === 0 &&
app.cfg.advanced.ciderPPE === false &&
app.cfg.audio.spatial === false &&
app.cfg.audio.analogWarmth === true) {
CiderAudio.analogWarmth_h2_3(true, 1);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
console.log('[Cider][Audio] Analog Warmth')
}
// Spatial
else if (app.cfg.audio.vibrantBass.multiplier === 0 &&
app.cfg.advanced.ciderPPE === false &&
app.cfg.audio.spatial === true &&
app.cfg.audio.analogWarmth === false){
//CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]);
console.log('[Cider][Audio] Spatial')
}
// Nothing
else {
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]);
console.log('[Cider][Audio] Nothing') // If CAP & vibrant bass is disabled
}
console.log("[Cider][Audio] Finished hierarchical loading");

View file

@ -3689,9 +3689,6 @@ const app = new Vue({
closeWindow() {
ipcRenderer.send('close');
},
checkForUpdate() {
ipcRenderer.send('check-for-update')
},
darwinShare(url) {
ipcRenderer.send('share-menu', url)
},

View file

@ -948,7 +948,6 @@
object-fit: cover;
}
}
.top-genres-container {
.genre-name {

View file

@ -147,11 +147,11 @@
'vibrantBass': 0,
'userGenerated': false
}, {
'preset': 'boostBrightness',
'name': 'Boost Brightness',
'frequencies': [32, 63, 125, 250, 466, 1000, 2000, 4000, 8000, 20000],
'gain': [0, 0, 0, 0, -2, 0, 0, 0, 0, 10],
'Q': [1, 1, 1, 1, 0.6, 1, 1, 1, 1, 0.1],
'preset': 'boostAiriness',
'name': 'Boost Airiness',
'frequencies': [1169, 1733, 5962, 8688, 14125, 18628, 18628, 19000, 19500, 20000],
'gain': [-1.41, 0.25, 3.33, 0.22, -0.53, 0.2, 3.64, 0, 0, 0],
'Q': [0.405, 2.102, 0.025, 2.5, 7.071, 1.768, 1.146, 1, 1, 1],
'mix': 1,
'vibrantBass': 0,
'userGenerated': false
@ -201,16 +201,6 @@
'vibrantBass': 0,
'userGenerated': false
},
{
'preset': 'bassBoostGentle',
'name': 'Gentle Bass Boost',
'frequencies': [45.53,88.06,116.18,161.3,247.05,295.6,365.79,495.13,716.85,960.76],
'gain': [-0.36,4.07,-1.3,1.92,0.77,-0.53,-1.33,0.44,0.46,-0.5],
'Q': [1.768,0.625,5,8.409,10,16.82,5.946,7.071,20,10],
'mix': 1,
'vibrantBass': 0,
'userGenerated': false
},
{
'preset': 'bassBoostSurgical',
'name': 'Surgical Bass Boost',

View file

@ -78,7 +78,7 @@
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE.description')}}</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.advanced.ciderPPE" :disabled="app.cfg.audio.spatial === true" v-on:change="CiderAudio.hierarchical_loading();" switch/>
<input type="checkbox" v-model="app.cfg.advanced.ciderPPE" v-on:change="CiderAudio.hierarchical_loading();" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext && app.cfg.advanced.ciderPPE === true">
@ -96,6 +96,31 @@
</button>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
<div class="md-option-segment">
Analog Warmth
<br>
<small>Simulates the analog warmth modelled after the Korg Nutube 6P1</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.audio.analogWarmth" v-on:change="CiderAudio.hierarchical_loading();" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext && app.cfg.audio.analogWarmth === true">
<div class="md-option-segment">
Analog Warmth Intensity
<br>
<small>Changes the intensity of the Analog Warmth Module processing.</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<button class="md-btn" :disabled="app.cfg.audio.analogWarmth_value === 1.25" v-model="app.cfg.audio.analogWarmth_value" onclick="app.cfg.audio.analogWarmth_value = 1.25; CiderAudio.hierarchical_loading();">
Smooth
</button>
<button class="md-btn" :disabled="app.cfg.audio.analogWarmth_value === 1.75" v-model="app.cfg.audio.analogWarmth_value" onclick="app.cfg.audio.analogWarmth_value = 1.75; CiderAudio.hierarchical_loading();">
Warm
</button>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
<div class="md-option-segment">
{{$root.getLz('term.equalizer')}}
@ -124,7 +149,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" :disabled="app.cfg.advanced.ciderPPE === true" v-on:change="toggleSpatial" switch/>
<input type="checkbox" v-model="app.cfg.audio.spatial" v-on:change="toggleSpatial" switch/>
</div>
</div>
</div>
@ -846,6 +871,7 @@
}
if (app.cfg.audio.spatial) {
CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
}
} else {
app.cfg.advanced.ciderPPE = false;
@ -861,14 +887,15 @@
},
toggleSpatial: function () {
if (app.cfg.audio.spatial) {
if (!app.cfg.advanced.ciderPPE) {
CiderAudio.spatialOn()
}
else {
if (app.cfg.advanced.ciderPPE === true) {
CiderAudio.spatialOff()
app.cfg.audio.spatial = false;
notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility'))
}
else {
CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
}
} else {
CiderAudio.spatialOff()
}