Spatial");} catch (e) { }
+ break;
+ case "n5":
+ try {
+ CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.atmosphereRealizer2);
+ console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> atmosphereRealizer2");
+ } catch (e) { }
+ break;
+ case 'n4':
try {
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.atmosphereRealizer1);
+ console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> atmosphereRealizer1");
} catch (e) { }
break;
- case 'h2_2':
- try {
- CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.llpw[0]);
- } catch (e) { }
- break;
- case 'h2_1':
+ case 'n3':
try {
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> vibrantbassNode");
} catch (e) { }
break;
- case 'h1':
+ case 'n2':
try {
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.audioBands[0]);
+ console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> audioBands");
} catch (e) { }
break;
- case 'h0':
- try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.context.destination); } catch (e) { }
+ case 'n1':
+ try {
+ CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> llpw");
+ } catch (e) { }
break;
+ case 'n0':
+ try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.context.destination); console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> destination");} catch (e) { }
+ break;
+
}
}
},
- atmosphereRealizer1_h2_3: function (status, hierarchy) {
+ atmosphereRealizer1_n4: function (status, destination) {
if (status === true) {
CiderAudio.audioNodes.atmosphereRealizer1 = CiderAudio.context.createConvolver();
CiderAudio.audioNodes.atmosphereRealizer1.normalize = false;
@@ -456,31 +509,50 @@ const CiderAudio = {
CiderAudio.audioNodes.atmosphereRealizer1.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
});
- switch (hierarchy) {
- case 'h2_2':
+ switch (destination) {
+ case "spatial":
+ try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> Spatial");} catch (e) { }
+ break;
+ case "n5":
try {
- CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.llpw[0]);
+ CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.atmosphereRealizer2);
+ console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> atmosphereRealizer2");
} catch (e) { }
break;
- case 'h2_1':
+ case 'n4':
+ try {
+ CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.atmosphereRealizer1);
+ console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> atmosphereRealizer1");
+ } catch (e) { }
+ break;
+ case 'n3':
try {
CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> vibrantbassNode");
} catch (e) { }
break;
- case 'h1':
+ case 'n2':
try {
CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.audioBands[0]);
+ console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> audioBands");
} catch (e) { }
break;
- case 'h0':
- try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.context.destination); } catch (e) { }
+ case 'n1':
+ try {
+ CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> llpw");
+ } catch (e) { }
+ break;
+ case 'n0':
+ try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.context.destination); console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> destination");} catch (e) { }
break;
+
}
}
},
- llpw_h2_2: function (status, hierarchy) {
+ llpw_n1: function (status, destination) {
if (status === true) {
let c_LLPW_Q = [1.250, 0.131, 10, 2.5, 2.293, 0.110, 14.14, 1.552, 28.28, 7.071, 2.847, 5, 0.625, 7.071, 3.856, 3.856, 20, 28.28, 20, 14.14, 2.102, 6.698, 3.536, 10];
let c_LLPW_GAIN = [-0.11, 0.27, -0.8, 0.57, 1.84, -0.38, 0.47, -1.56, 0.83, 1.58, -1.79, -0.45, 0.48, 1.22, -1.58, -1.59, -2.03, 2.56, -2.2, -2.48, 4.75, 10.5, 1.43, 3.76];
@@ -492,6 +564,91 @@ const CiderAudio = {
switch (app.cfg.audio.maikiwiAudio.ciderPPE_value) {
case "MAIKIWI":
+
+ try {
+ switch (localStorage.getItem("playingBitrate")) {
+ case "64":
+ CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
+ CiderAudio.audioNodes.llpw[0].normalize = false;
+ fetch('./cideraudio/impulses/CAP_64.wav').then(async (impulseData) => {
+ let bufferedImpulse = await impulseData.arrayBuffer();
+ CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
+ });
+ console.debug("[Cider][Audio] CAP Adaptive - 64kbps");
+
+ break;
+ case "256":
+ CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false;
+ CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37; // Post Gain Compensation
+ CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]);
+ fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => {
+ let bufferedImpulse = await impulseData.arrayBuffer();
+ CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
+ });
+ console.debug("[Cider][Audio] CAP Adaptive - 256kbps_2_48k");
+
+ break;
+ default:
+ CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false;
+ CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37; // Post Gain Compensation
+ CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]);
+ fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => {
+ let bufferedImpulse = await impulseData.arrayBuffer();
+ CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
+ });
+ console.debug("[Cider][Audio] CAP Adaptive - CONFIG FALLBACK - 256kbps_2_48k");
+
+ break;
+ }
+
+ } catch (e) {
+ CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false;
+ CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37;
+ CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]);
+ fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => {
+ let bufferedImpulse = await impulseData.arrayBuffer();
+ CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
+ });
+ console.debug("[Cider][Audio] CAP Adaptive - (Error Fallback) 256kbps");
+ }
+
+ switch (destination) {
+ case "spatial":
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { }
+ break;
+ case "n5":
+ try {
+ CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer2);
+ console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2");
+ } catch (e) { }
+ break;
+ case 'n4':
+ try {
+ CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer1);
+ console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1");
+ } catch (e) { }
+ break;
+
+ case 'n3':
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { }
+ break;
+ case 'n2':
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { }
+ break;
+ case 'n1':
+ try {
+ CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug("[Cider][Audio] llpw_n1 -> llpw");
+ } catch (e) { }
+ break;
+ case 'n0':
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { }
+ break;
+ }
+
+ break;
+ case "MAIKIWI_LEGACY":
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
CiderAudio.audioNodes.llpw[0].normalize = false;
fetch('./cideraudio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => {
@@ -499,22 +656,42 @@ const CiderAudio = {
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
});
- switch (hierarchy) {
- case 'h2_1':
- try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
+ switch (destination) {
+ case "spatial":
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { }
break;
- case 'h1':
- try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
+ case "n5":
+ try {
+ CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer2);
+ console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2");
+ } catch (e) { }
break;
- case 'h0':
- try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
+ case 'n4':
+ try {
+ CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer1);
+ console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1");
+ } catch (e) { }
break;
-
- }
+ case 'n1':
+ try {
+ CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug("[Cider][Audio] llpw_n1 -> llpw");
+ } catch (e) { }
+ break;
+ case 'n3':
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { }
+ break;
+ case 'n2':
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { }
+ break;
+ case 'n0':
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { }
+ break;
+ }
console.debug("[Cider][Audio] CAP - Maikiwi Signature Mode");
break;
-
case "NATURAL":
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
CiderAudio.audioNodes.llpw[0].normalize = false;
@@ -523,50 +700,143 @@ const CiderAudio = {
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
});
- switch (hierarchy) {
- case 'h2_1':
- try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
+ switch (destination) {
+ case "spatial":
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { }
break;
- case 'h1':
- try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
+ case "n5":
+ try {
+ CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer2);
+ console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2");
+ } catch (e) { }
break;
- case 'h0':
- try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
+ case 'n4':
+ try {
+ CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer1);
+ console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1");
+ } catch (e) { }
break;
+ case 'n1':
+ try {
+ CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug("[Cider][Audio] llpw_n1 -> llpw");
+ } catch (e) { }
+ break;
+ case 'n3':
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { }
+ break;
+ case 'n2':
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { }
+ break;
+ case 'n0':
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { }
+ break;
}
console.debug("[Cider][Audio] CAP - Natural Mode");
break;
+ case "LEGACY":
+ for (let i = 0; i < LLPW_FREQUENCIES.length; i++) {
+ CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
+ CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
+ CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i];
+ CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i];
+ CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i];
+ }
+ for (let i = 1; i < LLPW_FREQUENCIES.length; i ++) {
+ CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
+ }
+
+ switch (destination) {
+ case "spatial":
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { }
+ break;
+ case "n5":
+ try {
+ CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer2);
+ console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2");
+ } catch (e) { }
+ break;
+ case 'n4':
+ try {
+ CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer1);
+ console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1");
+ } catch (e) { }
+ break;
+ case 'n1':
+ try {
+ CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug("[Cider][Audio] llpw_n1 -> llpw");
+ } catch (e) { }
+ break;
+ case 'n3':
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { }
+ break;
+ case 'n2':
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { }
+ break;
+ case 'n0':
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { }
+ break;
+ }
+ console.debug("[Cider][Audio] CAP - Legacy Mode");
+
+ break;
+
default:
- CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
- CiderAudio.audioNodes.llpw[0].normalize = false;
- fetch('./cideraudio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => {
- let bufferedImpulse = await impulseData.arrayBuffer();
- CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
- });
-
- switch (hierarchy) {
- case 'h2_1':
- try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
- break;
- case 'h1':
- try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
- break;
- case 'h0':
- try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
- break;
-
- }
+ CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false;
+ CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.57;
+ CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]);
+ fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => {
+ let bufferedImpulse = await impulseData.arrayBuffer();
+ CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
+ });
app.cfg.audio.maikiwiAudio.ciderPPE_value = "MAIKIWI";
- console.debug("[Cider][Audio] CAP - MaikiwiSignature Mode (Defaulted from broki config)");
+
+ switch (destination) {
+ case "spatial":
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { }
+ break;
+ case "n5":
+ try {
+ CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.atmosphereRealizer2);
+ console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2");
+ } catch (e) { }
+ break;
+ case 'n4':
+ try {
+ CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.atmosphereRealizer1);
+ console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1");
+ } catch (e) { }
+ break;
+ case 'n1':
+ try {
+ CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug("[Cider][Audio] llpw_n1 -> llpw");
+ } catch (e) { }
+ break;
+ case 'n3':
+ try { CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { }
+ break;
+ case 'n2':
+ try { CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { }
+ break;
+ case 'n0':
+ try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { }
+ break;
+ }
+ console.debug("[Cider][Audio] CAP - Maikiwi Adaptive Mode (Defaulted from broki config)");
break;
}
}
},
- vibrantbass_h2_1: function (status, hierarchy) {
+ vibrantbass_n3: function (status, destination) {
if (status === true) {
let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies;
let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain;
@@ -585,144 +855,143 @@ const CiderAudio = {
CiderAudio.audioNodes.vibrantbassNode[i - 1].connect(CiderAudio.audioNodes.vibrantbassNode[i]);
}
- switch (hierarchy) {
- case 'h0':
+ switch (destination) {
+ case "spatial":
+ try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] vibrantbass_n3 -> Spatial");} catch (e) { }
+ break;
+
+ case "n5":
try {
- CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.context.destination);
+ CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.atmosphereRealizer2);
+ console.debug("[Cider][Audio] vibrantbass_n3 -> atmosphereRealizer2");
} catch (e) { }
break;
- case 'h1':
- try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
+ case 'n4':
+ try {
+ CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.atmosphereRealizer1);
+ console.debug("[Cider][Audio] vibrantbass_n3 -> atmosphereRealizer1");
+ } catch (e) { }
+ break;
+ case 'n3':
+ try {
+ CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug("[Cider][Audio] vibrantbass_n3 -> vibrantbassNode");
+ } catch (e) { }
+ break;
+ case 'n2':
+ try {
+ CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]);
+ console.debug("[Cider][Audio] vibrantbass_n3 -> audioBands");
+ } catch (e) { }
+ break;
+ case 'n1':
+ try {
+ CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug("[Cider][Audio] vibrantbass_n3 -> llpw");
+ } catch (e) { }
+ break;
+ case 'n0':
+ try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] vibrantbass_n3 -> destination");} catch (e) { }
break;
-
}
}
},
hierarchical_unloading: function () {
- try { CiderAudio.audioNodes.spatialNode.output.disconnect(); } catch (e) { }
- try { CiderAudio.audioNodes.spatialNode.disconnect(); } catch (e) { }
+ try { CiderAudio.audioNodes.spatialNode.disconnect(); CiderAudio.audioNodes.spatialNode = null} catch (e) { }
try { CiderAudio.audioNodes.gainNode.disconnect(); } catch (e) { }
- try { CiderAudio.audioNodes.atmosphereRealizer1.disconnect(); CiderAudio.audioNodes.atmosphereRealizer1 = null } catch (e) { }
try { CiderAudio.audioNodes.atmosphereRealizer2.disconnect(); CiderAudio.audioNodes.atmosphereRealizer2 = null } catch (e) { }
+ try { CiderAudio.audioNodes.atmosphereRealizer1.disconnect(); CiderAudio.audioNodes.atmosphereRealizer1 = null } catch (e) { }
try { for (var i of CiderAudio.audioNodes.llpw) { i.disconnect(); } CiderAudio.audioNodes.llpw = null } catch (e) { }
try { for (var i of CiderAudio.audioNodes.vibrantbassNode) { i.disconnect(); } CiderAudio.audioNodes.vibrantbassNode = null } catch (e) { }
- try { for (var i of CiderAudio.audioNodes.audioBands) { i.disconnect(); } CiderAudio.audioNodes.audioBands = null } catch (e) { }
-
- console.debug("[Cider][Audio] Finished hierarchical unloading");
-
+ try { for (var i of CiderAudio.audioNodes.audioBands) { i.disconnect(); } CiderAudio.audioNodes.vibrantbassNode = null} catch (e) { };
+ console.debug("[Cider][Audio] Finished hierarchical unloading")
},
- config_mapping: function () {
- return new Promise(resolve => {
- const map = new Map([
- ['h1', Math.max(...app.cfg.audio.equalizer.gain) != 0],
- ['h2_1', app.cfg.audio.equalizer.vibrantBass != 0],
- ['h2_2', app.cfg.audio.maikiwiAudio.ciderPPE === true],
- ['h2_3', app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true],
- ['h2_4', app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true],
- ['spatial', app.cfg.audio.maikiwiAudio.spatial === true]
- ]);
+ hierarchical_loading: function () {
+ const configMap = new Map([
+ ['spatial', app.cfg.audio.maikiwiAudio.spatial === true],
+ ['n5', app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true],
+ ['n4', app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true],
+ ['n3', app.cfg.audio.equalizer.vibrantBass != 0],
+ ['n2', Math.max(...app.cfg.audio.equalizer.gain) != 0],
+ ['n1', app.cfg.audio.maikiwiAudio.ciderPPE === true]
+ ]);
- resolve(map);
- });
- },
- hierarchical_loading: async function () {
- const configMap = await CiderAudio.config_mapping();
CiderAudio.hierarchical_unloading();
-
- let nextTier = 0, lastNode = 'h0';
+ let lastNode = 'n0';
for (let [tier, value] of configMap.entries()) {
if (value === true) {
switch (tier) {
- case 'h1':
+ case 'spatial':
+ CiderAudio.spatial_ninf();
+ lastNode = 'spatial';
+ break;
+ case 'n5':
+ app.cfg.audio.normalization = true;
+ CiderAudio.atmosphereRealizer2_n5(true, lastNode);
+ lastNode = 'n5';
+ break;
+ case 'n4':
+ app.cfg.audio.normalization = true;
+ CiderAudio.atmosphereRealizer1_n4(true, lastNode);
+ lastNode = 'n4';
+ break;
+ case 'n3':
+ CiderAudio.vibrantbass_n3(true, lastNode);
+ lastNode = 'n3';
+ break;
+ case 'n2':
CiderAudio.equalizer(true, lastNode);
- lastNode = 'h1';
+ lastNode = 'n2';
break;
- case 'h2_1':
- CiderAudio.vibrantbass_h2_1(true, lastNode);
- lastNode = 'h2_1';
- break;
- case 'h2_2':
+ case 'n1':
app.cfg.audio.normalization = true;
- CiderAudio.llpw_h2_2(true, lastNode);
- lastNode = 'h2_2';
- break;
- case 'h2_3':
- app.cfg.audio.normalization = true;
- CiderAudio.atmosphereRealizer1_h2_3(true, lastNode);
- lastNode = 'h2_3';
- break;
- case 'h2_4':
- app.cfg.audio.normalization = true;
- CiderAudio.atmosphereRealizer2_h2_4(true, lastNode);
- lastNode = 'h2_4';
- break;
- case 'spatial':
- app.cfg.audio.normalization = true
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
- break;
+ CiderAudio.llpw_n1(true, lastNode);
+ lastNode = 'n1';
+ break;
}
}
}
switch (lastNode) {
- case 'h2_4':
- if (app.cfg.audio.maikiwiAudio.spatial === true) {
- CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer2);
- }
- else {
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer2);
- }
+ case 'spatial':
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ console.debug("[Cider][Audio] gainNode -> Spatial");
break;
- case 'h2_3':
- if (app.cfg.audio.maikiwiAudio.spatial === true) {
- CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer1);
- }
- else {
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer1);
- }
+ case 'n5':
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer2);
+ console.debug("[Cider][Audio] gainNode -> atmosphereRealizer2");
break;
- case 'h2_2':
- if (app.cfg.audio.maikiwiAudio.spatial === true) {
- CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]);
- }
- else {
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
- }
+ case 'n4':
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer1);
+ console.debug("[Cider][Audio] gainNode -> atmosphereRealizer1");
break;
- case 'h2_1':
- if (app.cfg.audio.maikiwiAudio.spatial === true) {
- CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
- }
- else {
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
- }
+ case 'n3':
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug("[Cider][Audio] gainNode -> vibrantbass");
break;
- case 'h1':
- if (app.cfg.audio.maikiwiAudio.spatial === true) {
- CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]);
- }
- else {
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]);
- }
+ case 'n2':
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]);
+ console.debug("[Cider][Audio] gainNode -> audioBands");
+
break;
- case 'h0':
- if (app.cfg.audio.maikiwiAudio.spatial === true) {
- CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination)
- }
- else {
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
- }
+ case 'n1':
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug("[Cider][Audio] gainNode -> llpw");
+ break;
+ case 'n0':
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
+ console.debug("[Cider][Audio] gainNode -> destination");
break;
}
console.debug('[Cider][Audio]\n' + [...configMap.entries()] + '\n lastNode: ' + lastNode);
- CiderAudio.intelliGainComp_h0_0();
+ CiderAudio.intelliGainComp_n0_0();
console.debug("[Cider][Audio] Finished hierarchical loading");
},
- equalizer: function (status, hierarchy) { // h1_1
+ equalizer: function (status, destination) { // n2_1
if (status === true) {
let BANDS = app.cfg.audio.equalizer.frequencies;
let GAIN = app.cfg.audio.equalizer.gain;
@@ -741,12 +1010,44 @@ const CiderAudio = {
CiderAudio.audioNodes.audioBands[i - 1].connect(CiderAudio.audioNodes.audioBands[i]);
}
- switch (hierarchy) {
- case 'h0':
+ switch (destination) {
+ case 'spatial':
+ CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.spatialNode);
+ console.debug("[Cider][Audio] Equalizer -> Spatial");
+ break;
+ case "n5":
try {
- CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.context.destination);
+ CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.atmosphereRealizer2);
+ console.debug("[Cider][Audio] Equalizer -> atmosphereRealizer2");
} catch (e) { }
break;
+ case 'n4':
+ try {
+ CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.atmosphereRealizer1);
+ console.debug("[Cider][Audio] Equalizer -> atmosphereRealizer1");
+ } catch (e) { }
+ break;
+ case 'n3':
+ try {
+ CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug("[Cider][Audio] Equalizer -> vibrantbassNode");
+ } catch (e) { }
+ break;
+ case 'n2':
+ try {
+ CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.audioBands[0]);
+ console.debug("[Cider][Audio] Equalizer -> audioBands");
+ } catch (e) { }
+ break;
+ case 'n1':
+ try {
+ CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug("[Cider][Audio] Equalizer -> llpw");
+ } catch (e) { }
+ break;
+ case 'n0':
+ try { CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] Equalizer -> destination");} catch (e) { }
+ break;
}
}
diff --git a/src/renderer/audio/impulses/AtmosphereRealizer_Cryptofyre.wav b/src/renderer/audio/impulses/AtmosphereRealizer_Cryptofyre.wav
deleted file mode 100644
index 557f34a9..00000000
Binary files a/src/renderer/audio/impulses/AtmosphereRealizer_Cryptofyre.wav and /dev/null differ
diff --git a/src/renderer/audio/impulses/CAP_256_FINAL_48k.wav b/src/renderer/audio/impulses/CAP_256_FINAL_48k.wav
new file mode 100644
index 00000000..45d80862
Binary files /dev/null and b/src/renderer/audio/impulses/CAP_256_FINAL_48k.wav differ
diff --git a/src/renderer/audio/impulses/CAP_64.wav b/src/renderer/audio/impulses/CAP_64.wav
new file mode 100644
index 00000000..ed2f442b
Binary files /dev/null and b/src/renderer/audio/impulses/CAP_64.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_BPLK.wav b/src/renderer/audio/impulses/CiderSpatial_BPLK.wav
new file mode 100644
index 00000000..d6bc918c
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_BPLK.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_Diffuse.wav b/src/renderer/audio/impulses/CiderSpatial_Diffuse.wav
new file mode 100644
index 00000000..793895e4
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_Diffuse.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_HW2K.wav b/src/renderer/audio/impulses/CiderSpatial_HW2K.wav
new file mode 100644
index 00000000..914925fd
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_HW2K.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_LIVE.wav b/src/renderer/audio/impulses/CiderSpatial_LIVE.wav
new file mode 100644
index 00000000..ca707d66
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_LIVE.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_LIVE_2.wav b/src/renderer/audio/impulses/CiderSpatial_LIVE_2.wav
new file mode 100644
index 00000000..2323b5f0
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_LIVE_2.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_Maikiwi.wav b/src/renderer/audio/impulses/CiderSpatial_Maikiwi.wav
new file mode 100644
index 00000000..849131aa
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_Maikiwi.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_MaikiwiPlus.wav b/src/renderer/audio/impulses/CiderSpatial_MaikiwiPlus.wav
new file mode 100644
index 00000000..bdae8712
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_MaikiwiPlus.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_Natural+.wav b/src/renderer/audio/impulses/CiderSpatial_Natural+.wav
new file mode 100644
index 00000000..176a6b96
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_Natural+.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_Natural.wav b/src/renderer/audio/impulses/CiderSpatial_Natural.wav
new file mode 100644
index 00000000..10117b9e
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_Natural.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_v72.420_Maikiwi.wav b/src/renderer/audio/impulses/CiderSpatial_v72.420_Maikiwi.wav
deleted file mode 100644
index fd623166..00000000
Binary files a/src/renderer/audio/impulses/CiderSpatial_v72.420_Maikiwi.wav and /dev/null differ
diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js
index eaa8334a..b33357bd 100644
--- a/src/renderer/main/vueapp.js
+++ b/src/renderer/main/vueapp.js
@@ -500,8 +500,11 @@ const app = new Vue({
})
},
goToGrouping(url = "https://music.apple.com/WebObjects/MZStore.woa/wa/viewGrouping?cc=us&id=34") {
+ if (url.includes('viewTop')){
+ window.location.hash = `#charts/top`
+ } else {
const id = url.split("id=")[1];
- window.location.hash = `#groupings/${id}`
+ window.location.hash = `#groupings/${id}`}
},
navigateForward() {
history.forward()
diff --git a/src/renderer/views/pages/audiolabs.ejs b/src/renderer/views/pages/audiolabs.ejs
index 18ff72f9..fb41bc0e 100644
--- a/src/renderer/views/pages/audiolabs.ejs
+++ b/src/renderer/views/pages/audiolabs.ejs
@@ -35,10 +35,12 @@
@@ -100,7 +102,7 @@
+ v-on:change="CiderAudio.hierarchical_loading();" switch/>
@@ -183,6 +185,10 @@
return "Maikiwi+";
break;
+ case "Minimal+":
+ return this.$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal') + "+";
+ break;
+
case "live":
return "LIVE";
break;
@@ -197,21 +203,7 @@
default:
return name;
}
- },
- 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) - 14) / 20));
- //app.mk.volume = normalized
- // -13dBFS Target
- } else {
- //let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) + 14) / 20));
- //app.mk.volume = normalized
- CiderAudio.spatialOn()
- CiderAudio.hierarchical_loading();
- }
- },
+ }
}
})
\ No newline at end of file
diff --git a/src/renderer/views/pages/charts.ejs b/src/renderer/views/pages/charts.ejs
new file mode 100644
index 00000000..0df6f93c
--- /dev/null
+++ b/src/renderer/views/pages/charts.ejs
@@ -0,0 +1,133 @@
+
+
+
\ No newline at end of file
diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs
index 53cde473..d061736a 100644
--- a/src/renderer/views/pages/settings.ejs
+++ b/src/renderer/views/pages/settings.ejs
@@ -1405,7 +1405,6 @@
CiderAudio.normalizerOn()
}
if (app.cfg.audio.maikiwiAudio.spatial === true) {
- CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
}
}
@@ -1416,7 +1415,6 @@
CiderAudio.normalizerOn()
}
if (app.cfg.audio.maikiwiAudio.spatial === true) {
- CiderAudio.spatialOn()
CiderAudio.hierarchical_loading();
}
}