diff --git a/src/i18n/de_DE.json b/src/i18n/de_DE.json index dfbd55be..071d18eb 100644 --- a/src/i18n/de_DE.json +++ b/src/i18n/de_DE.json @@ -113,7 +113,7 @@ "term.contributors": "Mithelfer", "term.equalizer": "Equalizer", "term.reset": "Zurücksetzen", - "term.tracks": "Lieder", + "term.tracks": "Titel", "term.videos": "Videos", "term.menu": "Menü", "term.check": "Nach Updates suchen", @@ -179,8 +179,8 @@ "action.unfollow": "Entfolgen", "action.unfollow.success": "Entfolgt", "action.unfollow.error": "Fehler beim Entfolgen", - "action.playNext": "Spiele als Nächstes", - "action.playLater": "Spiele später", + "action.playNext": "Nächster Titel", + "action.playLater": "Zuletzt wiedergeben", "action.startRadio": "Starte Radio", "action.goToArtist": "Gehe zu Künstler", "action.goToAlbum": "Gehe zu Album", @@ -192,9 +192,9 @@ "action.dislike": "Dislike", "action.undoDislike": "Dislike entfernen", "action.showWebRemoteQR": "Web-Remote", - "action.playTracksNext": "Spiele ${app.selectedMediaItems.length} Lieder als Nächstes", - "action.playTracksLater": "Spiele ${app.selectedMediaItems.length} Lieder später", - "action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange", + "action.playTracksNext": "Spiele ${app.selectedMediaItems.length} Titel als Nächstes", + "action.playTracksLater": "Spiele ${app.selectedMediaItems.length} Titel später", + "action.removeTracks": "Entferne ${self.selectedItems.length} Titel aus der Warteschlange", "action.import": "Importieren", "action.export": "Exportieren", "action.showAlbum": "Ganzes Album anzeigen", @@ -371,5 +371,20 @@ "settings.option.visual.theme.github.openfolder": "Öffne Themes Ordner", "settings.option.debug.copy_log": "Logs in die Zwischenablage kopieren", "settings.header.visual.theme.github.page": "Themes von GitHub", - "settings.header.visual.plugin.github.page": "Plugins von GitHub" + "settings.header.visual.plugin.github.page": "Plugins von GitHub", + "settings.option.connectivity.discordRPC.reload": "DiscordRPC neu laden", + "menubar.options.reload": "Neu laden", + "settings.option.general.customizeSidebar": "Seitenleistenelemente anpassen", + "settings.option.general.customizeSidebar.customize": "Anpassen", + "settings.header.window": "Fenster", + "settings.option.visual.theme.github.available": "Verfügbar", + "settings.option.visual.theme.github.applied": "Angewandt", + "action.createNew": "Erstellen...", + "settings.option.connect.link_account": "Synchronisierung mit Cider Connect aktivieren", + "settings.option.connect.link_account.description": "Wenn du deinen Discord-Account mit Cider Connect verknüpfst, kannst du Benutzerdaten speichern, einschließlich Einstellungen, EQs und eventuell mehr, sobald es fertig ist. (Work in Progress)", + "action.editTracklist": "Playlist bearbeiten", + "term.track": { + "one": "Titel", + "other": "Titel" + } } diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index fab5fe54..041df7c8 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -42,6 +42,7 @@ "term.artists": "Artists", "term.podcasts": "Podcasts", "term.playlists": "Playlists", + "term.charts": "Charts", "term.playlist": "Playlist", "term.newPlaylist": "New Playlist", "term.newPlaylistFolder": "New Playlist Folder", diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 86ba10da..3e4d8838 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -59,6 +59,7 @@ export class BrowserWindow { "pages/library-recentlyadded", "pages/browse", "pages/groupings", + "pages/charts", "pages/settings", "pages/installed-themes", "pages/listen_now", @@ -201,6 +202,11 @@ export class BrowserWindow { component: ``, condition: `page == 'groupings'`, onEnter: `` + },{ + page: "charts", + component: ``, + condition: `page == 'charts'`, + onEnter: `` }, { page: "listen_now", component: ``, diff --git a/src/main/base/vrouting.json b/src/main/base/vrouting.json index 71a43c7b..6d69582c 100644 --- a/src/main/base/vrouting.json +++ b/src/main/base/vrouting.json @@ -95,6 +95,11 @@ "component": "", "condition": "page == 'groupings'", "onEnter": "" + },{ + "page": "charts", + "component": "", + "condition": "page == 'charts'", + "onEnter": "" }, { "page": "listen_now", diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index 52ccc4c3..85fb63b3 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -4,14 +4,13 @@ const CiderAudio = { audioNodes: { gainNode: null, spatialNode: null, - spatialInput: null, audioBands: null, vibrantbassNode: null, llpw: null, recorderNode: null, intelliGainComp: null, - atmosphereRealizer1: null, atmosphereRealizer2: null, + atmosphereRealizer1: null, }, ccON: false, mediaRecorder: null, @@ -30,19 +29,17 @@ const CiderAudio = { }, off: function () { try { - CiderAudio.hierarchical_unloading(); try { CiderAudio.audioNodes = { gainNode: null, spatialNode: null, - spatialInput: null, audioBands: null, vibrantbassNode: null, llpw: null, recorderNode: null, intelliGainComp: null, - atmosphereRealizer1: null, atmosphereRealizer2: null, + atmosphereRealizer1: null, } } catch (e) { } CiderAudio.source.connect(CiderAudio.context.destination); @@ -62,9 +59,6 @@ const CiderAudio = { if (app.cfg.audio.normalization) { CiderAudio.normalizerOn() } - if (app.cfg.audio.maikiwiAudio.spatial) { - CiderAudio.spatialOn() - } CiderAudio.hierarchical_loading(); }, normalizerOn: function () { @@ -93,55 +87,91 @@ const CiderAudio = { }, spatialProfiles: [ { - "id": "72_420maikiwi", - "file": './cideraudio/impulses/CiderSpatial_v72.420_Maikiwi.wav', + "id": "maikiwi", + "file": './cideraudio/impulses/CiderSpatial_Maikiwi.wav', "name": "Maikiwi", "description": "", - "gainComp": "1.3381352151540196", + "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", + "gainComp": "1.3963683610559376" }, { "id": "70_422maikiwi", "file": './cideraudio/impulses/CiderSpatial_v70.422_Maikiwi.wav', "name": "Separation", "description": "", - "gainComp": "1.30767553892022", + "gainComp": "1.30767553892022" }, { "id": "standard", - "file": './cideraudio/impulses/CiderSpatial_v69_Standard.wav', + "file": './cideraudio/impulses/CiderSpatial_Natural.wav', "name": "Minimal", "description": "", - "gainComp": "1.2647363474711515", + "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": "Natural (Standard)", + "name": "ほうじ茶チーズクリーマティー", "description": "", }, { "id": "NATURAL_PLUS", "file": './cideraudio/impulses/AtmosphereRealizer_Natural+.wav', - "name": "Natural (Plus)", - "description": "", - }, - { - "id": "CRYPTO", - "file": './cideraudio/impulses/AtmosphereRealizer_Cryptofyre.wav', - "name": "Cryptofyre", + "name": "玄米茶タピオカミルクティー", "description": "", } ], - spatialOn: function () { + spatial_ninf: function () { CiderAudio.audioNodes.spatialNode = null; CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.spatialNode.normalize = false; @@ -157,18 +187,28 @@ const CiderAudio = { let bufferedImpulse = await impulseData.arrayBuffer(); CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); }); + + // Always destination + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination) + + }, - intelliGainComp_h0_0: function () { + spatialOff: function () { + CiderAudio.hierarchical_loading(); + }, + intelliGainComp_n0_0: function () { let filters = []; const precisionHz = 12; + // Biquad calculation if (CiderAudio.audioNodes.audioBands !== null) { filters = filters.concat(CiderAudio.audioNodes.audioBands) } if (CiderAudio.audioNodes.vibrantbassNode !== null) { filters = filters.concat(CiderAudio.audioNodes.vibrantbassNode) } - if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length > 1) { filters = filters.concat(CiderAudio.audioNodes.llpw); } + if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length > 2) { filters = filters.concat(CiderAudio.audioNodes.llpw); } if (!filters || filters.length === 0) { let filterlessGain = 1; - if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length == 1) { filterlessGain = filterlessGain * 1.109174815262401 } - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true) { filterlessGain = filterlessGain * 1.096478196143185 } + // Impulse Calculation + if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length <= 2) { filterlessGain = filterlessGain * 1.109174815262401 } if (app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true) { filterlessGain = filterlessGain * 1.096478196143185 } + if (app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true) { filterlessGain = filterlessGain * 1.096478196143185 } if (app.cfg.audio.maikiwiAudio.spatial == true) { let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) { return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile; @@ -213,9 +253,11 @@ const CiderAudio = { if (gain > maxGain) maxGain = gain; } - if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length == 1) { maxGain = maxGain * 1.109174815262401 } - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true) { maxGain = maxGain * 1.096478196143185 } + + // Impulse Calculation + if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length <= 2) { maxGain = maxGain * 1.109174815262401 } if (app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true) { maxGain = maxGain * 1.096478196143185 } + if (app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true) { maxGain = maxGain * 1.096478196143185 } if (app.cfg.audio.maikiwiAudio.spatial == true) { let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) { return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile; @@ -263,7 +305,7 @@ const CiderAudio = { constructor() { super(); - this._bufferSize = 2048; + this._bufferSize = 1024; this._buffers = null; this._initBuffer(); } @@ -289,7 +331,6 @@ const CiderAudio = { if (this._isBufferFull()) { this._flush(); } - try{ let dataLength = audioRawData[0].length; for (let idx=0; idx 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(); } }