idk man idc now

This commit is contained in:
Maikiwi 2022-08-16 01:28:45 -07:00
parent 37cf07c0b3
commit 6f52f81add
2 changed files with 845 additions and 991 deletions

View file

@ -968,28 +968,29 @@ const CiderAudio = {
return;
} // do nothing if there's no processing lmao
app.cfg.audio.maikiwiAudio.staticOptimizer.lock = true; // Lock CiderAudio from performing hierarchical loading.
CiderAudioRenderer.init(() => console.log("CARenderer Called back"))
CiderAudioRenderer.init();
app.cfg.audio.maikiwiAudio.staticOptimizer.lock = true; // Lock CiderAudio from performing hierarchical loading.
if (MusicKit.getInstance().isPlaying) {
MusicKit.getInstance().pause(); // Pause first
}
const res = CiderAudioRenderer.hierarchical_optimizer();
CiderAudioRenderer.off(); // Clean up IMMEDIATELY
CiderAudio.audioNodes.optimizedNode = CiderAudio.context.createConvolver();
CiderAudio.audioNodes.optimizedNode.normalize = false;
CiderAudio.audioNodes.optimizedNode.buffer = res; // Load the sucker up
const res = CiderAudioRenderer.hierarchical_optimizer().then(res => {
CiderAudio.audioNodes.optimizedNode.buffer = res;
});
// Load the sucker up
CiderAudio.hierarchical_unloading();
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.optimizedNode);
CiderAudio.audioNodes.optimizedNode.connect(CiderAudio.context.destination);
console.debug("[Cider][Audio]\n" + [...configMap.entries()] + "\n lastNode: " + lastNode);
console.debug("[Cider][Audio] Finished hierarchical loading + Optimizing");
if (MusicKit.getInstance().nowPlayingItem != null) {

View file

@ -30,7 +30,7 @@ const CiderAudioRenderer = {
};
} catch (e) {}
},
init: function () {
init: function (cb = function () {console.log("CARenderer init")}) {
CiderAudioRenderer.context = new OfflineAudioContext({
numberOfChannels: 2,
length: 96000 * 8,
@ -42,6 +42,7 @@ const CiderAudioRenderer = {
CiderAudioRenderer.audioNodes.intelliGainComp.gain.value = 1;
CiderAudioRenderer.audioNodes.intelliGainComp.connect(CiderAudioRenderer.audioNodes.gainNode);
CiderAudioRenderer.hierarchical_loading();
cb();
},
optimizerProfile: [
{
@ -52,165 +53,17 @@ const CiderAudioRenderer = {
container: "WAV",
},
],
spatialProfiles: [
{
id: "maikiwi",
file: "./cideraudio/impulses/CiderSpatial_Maikiwi.wav",
name: "Maikiwi",
description: "",
gainComp: "1.044",
},
{
id: "maikiwiplus",
file: "./cideraudio/impulses/CiderSpatial_MaikiwiPlus.wav",
name: "Maikiwi+",
description: "",
gainComp: "1.044",
},
{
id: "71_420maikiwi",
file: "./cideraudio/impulses/CiderSpatial_v71.420_Maikiwi.wav",
name: "Soundstage",
description: "",
gainComp: "1.3963683610559376",
},
{
id: "70_422maikiwi",
file: "./cideraudio/impulses/CiderSpatial_v70.422_Maikiwi.wav",
name: "Separation",
description: "",
gainComp: "1.30767553892022",
},
{
id: "standard",
file: "./cideraudio/impulses/CiderSpatial_Natural.wav",
name: "Minimal",
description: "",
gainComp: "1.044",
},
{
id: "standardplus",
file: "./cideraudio/impulses/CiderSpatial_Natural+.wav",
name: "Minimal+",
description: "",
gainComp: "1.044",
},
{
id: "diffused",
file: "./cideraudio/impulses/CiderSpatial_Diffuse.wav",
name: "Diffused",
description: "",
gainComp: "1.044",
},
{
id: "BPLK",
file: "./cideraudio/impulses/CiderSpatial_BPLK.wav",
name: "BPLK",
description: "",
gainComp: "1.044",
},
{
id: "HW2K",
file: "./cideraudio/impulses/CiderSpatial_HW2K.wav",
name: "HW2K",
description: "",
gainComp: "1.044",
},
{
id: "live",
file: "./cideraudio/impulses/CiderSpatial_LIVE_2.wav",
name: "live",
description: "",
gainComp: "1.2647363474711515",
},
],
atmosphereRealizerProfiles: [
{
id: "NATURAL_STANDARD",
file: "./cideraudio/impulses/AtmosphereRealizer_NaturalStandard.wav",
name: "ほうじ茶チーズクリーマティー",
description: "",
},
{
id: "NATURAL_PLUS",
file: "./cideraudio/impulses/AtmosphereRealizer_Natural+.wav",
name: "玄米茶タピオカミルクティー",
description: "",
},
{
id: "E68_1",
file: "./cideraudio/impulses/AtmosphereRealizer_E68_1.5.wav",
name: "岩塩クリームチーズティー",
description: "Light",
},
{
id: "E68_2",
file: "./cideraudio/impulses/AtmosphereRealizer_E68_2.2.wav",
name: "抹茶ミルクティー",
description: "Dark",
},
{
id: "BSCBM",
file: "./cideraudio/impulses/AtmosphereRealizer_BSCBM.wav",
name: "BSCBM",
description: "BSCBM",
},
{
id: "CUDDLE",
file: "./cideraudio/impulses/AtmosphereRealizer_Cuddle.wav",
name: "CUDDLE",
description: "CUDDLE",
},
{
id: "E168_1",
file: "./cideraudio/impulses/AtmosphereRealizer_E168_1.2.wav",
name: "春毫ジャスミンマキアート",
description: "Natural Air",
},
{
id: "Z3600",
file: "./cideraudio/impulses/AtmosphereRealizer_Z3600.wav",
name: "ロイヤルミルクティー",
description: "3600",
},
{
id: "Z8500A",
file: "./cideraudio/impulses/AtmosphereRealizer_Z8500_A.wav",
name: "ムーンライトソフトケーキ",
description: "8500",
},
{
id: "Z8500B",
file: "./cideraudio/impulses/AtmosphereRealizer_Z8500_B.wav",
name: "Clafoutis aux Cerises",
description: "8500",
},
{
id: "Z8500C",
file: "./cideraudio/impulses/AtmosphereRealizer_Z8500_C.wav",
name: "宇治抹茶だいふく",
description: "8500",
},
],
opportunisticCorrectionProfiles: [
{
id: "CHU",
file: "./cideraudio/impulses/MoondropCHU_Cider.wav",
name: "Moondrop CHU Specific",
description: "",
},
],
spatial_ninf: function () {
CiderAudioRenderer.audioNodes.spatialNode = null;
CiderAudioRenderer.audioNodes.spatialNode = CiderAudioRenderer.context.createConvolver();
CiderAudioRenderer.audioNodes.spatialNode.normalize = false;
let spatialProfile = CiderAudioRenderer.spatialProfiles.find(function (profile) {
let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) {
return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile;
});
if (spatialProfile === undefined) {
spatialProfile = CiderAudioRenderer.spatialProfiles[0];
spatialProfile = CiderAudio.spatialProfiles[0];
}
fetch(spatialProfile.file).then(async (impulseData) => {
let bufferedImpulse = await impulseData.arrayBuffer();
@ -223,7 +76,7 @@ const CiderAudioRenderer = {
spatialOff: function () {
CiderAudioRenderer.hierarchical_loading();
},
intelliGainComp_n0_0: function () {
intelliGainComp_n0_0: async function () {
let filters = [];
const precisionHz = 12;
// Biquad calculation
@ -250,18 +103,18 @@ const CiderAudioRenderer = {
filterlessGain = filterlessGain * 1.096478196143185;
}
if (app.cfg.audio.maikiwiAudio.spatial == true) {
let spatialProfile = CiderAudioRenderer.spatialProfiles.find(function (profile) {
let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) {
return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile;
});
if (spatialProfile === undefined) {
spatialProfile = CiderAudioRenderer.spatialProfiles[0];
spatialProfile = CiderAudio.spatialProfiles[0];
}
filterlessGain = filterlessGain * spatialProfile.gainComp;
}
filterlessGain = Math.pow(10, (-1 * (20 * Math.log10(filterlessGain))) / 20).toFixed(4);
filterlessGain > 1.0
? CiderAudioRenderer.audioNodes.intelliGainComp.gain.exponentialRampToValueAtTime(1.0, CiderAudioRenderer.context.currentTime + 0.3)
: CiderAudioRenderer.audioNodes.intelliGainComp.gain.exponentialRampToValueAtTime(filterlessGain, CiderAudioRenderer.context.currentTime + 0.3);
? CiderAudioRenderer.audioNodes.intelliGainComp.gain.value = 1
: CiderAudioRenderer.audioNodes.intelliGainComp.gain.value = filterlessGain;
console.debug(`[Cider][Audio] IntelliGainComp: ${filterlessGain > 1.0 ? 0 : (20 * Math.log10(filterlessGain)).toFixed(2)} dB (${filterlessGain > 1.0 ? 1 : filterlessGain})`);
return;
}
@ -307,11 +160,11 @@ const CiderAudioRenderer = {
maxGain = maxGain * 1.096478196143185;
}
if (app.cfg.audio.maikiwiAudio.spatial == true) {
let spatialProfile = CiderAudioRenderer.spatialProfiles.find(function (profile) {
let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) {
return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile;
});
if (spatialProfile === undefined) {
spatialProfile = CiderAudioRenderer.spatialProfiles[0];
spatialProfile = CiderAudio.spatialProfiles[0];
}
maxGain = maxGain * spatialProfile.gainComp;
}
@ -325,12 +178,12 @@ const CiderAudioRenderer = {
if (status === true) {
CiderAudioRenderer.audioNodes.atmosphereRealizer2 = CiderAudioRenderer.context.createConvolver();
CiderAudioRenderer.audioNodes.atmosphereRealizer2.normalize = false;
let atmosphereRealizerProfile = CiderAudioRenderer.atmosphereRealizerProfiles.find(function (profile) {
let atmosphereRealizerProfile = CiderAudio.atmosphereRealizerProfiles.find(function (profile) {
return profile.id === app.cfg.audio.maikiwiAudio.atmosphereRealizer2_value;
});
if (atmosphereRealizerProfile === undefined) {
atmosphereRealizerProfile = CiderAudioRenderer.atmosphereRealizerProfiles[0];
atmosphereRealizerProfile = CiderAudio.atmosphereRealizerProfiles[0];
}
fetch(atmosphereRealizerProfile.file).then(async (impulseData) => {
let bufferedImpulse = await impulseData.arrayBuffer();
@ -393,12 +246,12 @@ const CiderAudioRenderer = {
if (status === true) {
CiderAudioRenderer.audioNodes.atmosphereRealizer1 = CiderAudioRenderer.context.createConvolver();
CiderAudioRenderer.audioNodes.atmosphereRealizer1.normalize = false;
let atmosphereRealizerProfile = CiderAudioRenderer.atmosphereRealizerProfiles.find(function (profile) {
let atmosphereRealizerProfile = CiderAudio.atmosphereRealizerProfiles.find(function (profile) {
return profile.id === app.cfg.audio.maikiwiAudio.atmosphereRealizer1_value;
});
if (atmosphereRealizerProfile === undefined) {
atmosphereRealizerProfile = CiderAudioRenderer.atmosphereRealizerProfiles[0];
atmosphereRealizerProfile = CiderAudio.atmosphereRealizerProfiles[0];
}
fetch(atmosphereRealizerProfile.file).then(async (impulseData) => {
let bufferedImpulse = await impulseData.arrayBuffer();
@ -461,12 +314,12 @@ const CiderAudioRenderer = {
if (status === true) {
CiderAudioRenderer.audioNodes.opportunisticCorrection = CiderAudioRenderer.context.createConvolver();
CiderAudioRenderer.audioNodes.opportunisticCorrection.normalize = false;
let opportunisticCorrectionProfile = CiderAudioRenderer.opportunisticCorrectionProfiles.find(function (profile) {
let opportunisticCorrectionProfile = CiderAudio.opportunisticCorrectionProfiles.find(function (profile) {
return profile.id === app.cfg.audio.maikiwiAudio.opportunisticCorrection_state;
});
if (opportunisticCorrectionProfile === undefined) {
opportunisticCorrectionProfile = CiderAudioRenderer.opportunisticCorrectionProfiles[0];
opportunisticCorrectionProfile = CiderAudio.opportunisticCorrectionProfiles[0];
}
fetch(opportunisticCorrectionProfile.file).then(async (impulseData) => {
let bufferedImpulse = await impulseData.arrayBuffer();
@ -758,15 +611,14 @@ const CiderAudioRenderer = {
}
}
},
hierarchical_optimizer: function () {
CiderAudioRenderer.intelliGainComp_n0_0(); // Calculate headroom for upcoming convolver
hierarchical_optimizer: async function () {
await CiderAudioRenderer.intelliGainComp_n0_0(); // Calculate headroom for upcoming convolver
// Render and return convolved buffer
let optimizerProfile = CiderAudioRenderer.optimizerProfile.find(function (profile) {
return profile.id === "dirac32_96"; // Hard code for now
});
return fetch(optimizerProfile.file)
fetch(optimizerProfile.file)
.then(async (response) => await response.arrayBuffer())
.then((arrayBuffer) => CiderAudio.context.decodeAudioData(arrayBuffer))
.then((decodedBuffer) => {
@ -801,31 +653,31 @@ const CiderAudioRenderer = {
switch (app.cfg.audio.maikiwiAudio.firstNode) {
case "spatial":
CiderAudioRenderer.audioNodes.spatialNode.disconnect();
CiderAudioRenderer.audioNodes.spatialNode.connect(renderer.destination);
CiderAudioRenderer.audioNodes.spatialNode.connect(CiderAudioRenderer.destination);
break;
case "n6":
CiderAudioRenderer.audioNodes.atmosphereRealizer2.disconnect();
CiderAudioRenderer.audioNodes.atmosphereRealizer2.connect(renderer.destination);
CiderAudioRenderer.audioNodes.atmosphereRealizer2.connect(CiderAudioRenderer.destination);
break;
case "n5":
CiderAudioRenderer.audioNodes.atmosphereRealizer1.disconnect();
CiderAudioRenderer.audioNodes.atmosphereRealizer1.connect(renderer.destination);
CiderAudioRenderer.audioNodes.atmosphereRealizer1.connect(CiderAudioRenderer.destination);
break;
case "n4":
CiderAudioRenderer.audioNodes.vibrantbassNode.at(-1).disconnect();
CiderAudioRenderer.audioNodes.vibrantbassNode.at(-1).connect(renderer.destination);
CiderAudioRenderer.audioNodes.vibrantbassNode.at(-1).connect(CiderAudioRenderer.destination);
break;
case "n3":
CiderAudioRenderer.audioNodes.audioBands.at(-1).disconnect();
CiderAudioRenderer.audioNodes.audioBands.at(-1).connect(renderer.destination);
CiderAudioRenderer.audioNodes.audioBands.at(-1).connect(CiderAudioRenderer.destination);
break;
case "n2":
CiderAudioRenderer.audioNodes.opportunisticCorrection.disconnect();
CiderAudioRenderer.audioNodes.opportunisticCorrection.connect(renderer.destination);
CiderAudioRenderer.audioNodes.opportunisticCorrection.connect(CiderAudioRenderer.destination);
break;
case "n1":
CiderAudioRenderer.audioNodes.llpw.at(-1).disconnect();
CiderAudioRenderer.audioNodes.llpw.at(-1).connect(renderer.destination);
CiderAudioRenderer.audioNodes.llpw.at(-1).connect(CiderAudioRenderer.destination);
break;
}
@ -1055,3 +907,4 @@ const CiderAudioRenderer = {
},
};
export { CiderAudioRenderer };