Merge branch 'ciderapp:develop' into develop
This commit is contained in:
commit
9188ca8812
9 changed files with 1034 additions and 497 deletions
|
@ -72,6 +72,8 @@ export class Store {
|
||||||
"ciderPPE_value": "MAIKIWI",
|
"ciderPPE_value": "MAIKIWI",
|
||||||
"analogWarmth": false,
|
"analogWarmth": false,
|
||||||
"analogWarmth_value": "SMOOTH",
|
"analogWarmth_value": "SMOOTH",
|
||||||
|
"atmosphereRealizer": false,
|
||||||
|
"atmosphereRealizer_value": "NATURAL_STANDARD",
|
||||||
"spatial": false,
|
"spatial": false,
|
||||||
"spatialProfile": "71_420maikiwi",
|
"spatialProfile": "71_420maikiwi",
|
||||||
"vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts
|
"vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts
|
||||||
|
|
File diff suppressed because it is too large
Load diff
BIN
src/renderer/audio/impulses/AtmosphereRealizer_Natural+.wav
Normal file
BIN
src/renderer/audio/impulses/AtmosphereRealizer_Natural+.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/AtmosphereRealizer_NaturalHigh.wav
Normal file
BIN
src/renderer/audio/impulses/AtmosphereRealizer_NaturalHigh.wav
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/renderer/audio/impulses/CiderSpatial_v72.420_Maikiwi.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_v72.420_Maikiwi.wav
Normal file
Binary file not shown.
|
@ -579,11 +579,11 @@ const app = new Vue({
|
||||||
this.setTheme(this.cfg.visual.theme)
|
this.setTheme(this.cfg.visual.theme)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.platform == "darwin") {
|
if (this.platform == "darwin") {
|
||||||
this.chrome.windowControlPosition = "left"
|
this.chrome.windowControlPosition = "left"
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.cfg.visual.nativeTitleBar) {
|
if (this.cfg.visual.nativeTitleBar) {
|
||||||
this.chrome.nativeControls = true
|
this.chrome.nativeControls = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -763,9 +763,10 @@ const app = new Vue({
|
||||||
|
|
||||||
ipcRenderer.on('SoundCheckTag', (event, tag) => {
|
ipcRenderer.on('SoundCheckTag', (event, tag) => {
|
||||||
// let replaygain = self.parseSCTagToRG(tag)
|
// let replaygain = self.parseSCTagToRG(tag)
|
||||||
try {
|
try {
|
||||||
if (app.mk.nowPlayingItem.type !== 'song') {
|
if (app.mk.nowPlayingItem.type !== 'song') {
|
||||||
CiderAudio.audioNodes.gainNode.gain.value = 0.70794578438;}
|
CiderAudio.audioNodes.gainNode.gain.value = 0.70794578438;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
let soundcheck = tag.split(" ")
|
let soundcheck = tag.split(" ")
|
||||||
let numbers = []
|
let numbers = []
|
||||||
|
@ -775,14 +776,14 @@ const app = new Vue({
|
||||||
}
|
}
|
||||||
numbers.shift()
|
numbers.shift()
|
||||||
let peak = Math.max(numbers[6], numbers[7]) / 32768.0
|
let peak = Math.max(numbers[6], numbers[7]) / 32768.0
|
||||||
let gain = Math.pow(10, ((-2.5 - (Math.log10(peak) * 20)) / 20))// EBU R 128 Compliant
|
let gain = Math.pow(10, ((-1 - (Math.log10(peak) * 20)) / 20))// EBU R 128 Compliant
|
||||||
console.debug(`[Cider][MaikiwiSoundCheck] Peak Gain: '${(Math.log10(peak) * 20).toFixed(2)}' dB | Adjusting '${(Math.log10(gain) * 20).toFixed(2)}' dB`)
|
console.debug(`[Cider][MaikiwiSoundCheck] Peak Gain: '${(Math.log10(peak) * 20).toFixed(2)}' dB | Adjusting '${(Math.log10(gain) * 20).toFixed(2)}' dB`)
|
||||||
try {
|
try {
|
||||||
//CiderAudio.audioNodes.gainNode.gain.value = (Math.min(Math.pow(10, (replaygain.gain / 20)), (1 / replaygain.peak)))
|
//CiderAudio.audioNodes.gainNode.gain.value = (Math.min(Math.pow(10, (replaygain.gain / 20)), (1 / replaygain.peak)))
|
||||||
CiderAudio.audioNodes.gainNode.gain.value = gain
|
CiderAudio.audioNodes.gainNode.gain.value = gain
|
||||||
} catch (e) {}
|
} catch (e) { }
|
||||||
}
|
}
|
||||||
} catch (e) {ipcRenderer.send('SoundCheckTag', event, tag);} // brute force until it works
|
} catch (e) { ipcRenderer.send('SoundCheckTag', event, tag); } // brute force until it works
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcRenderer.on('play', function (_event, mode, id) {
|
ipcRenderer.on('play', function (_event, mode, id) {
|
||||||
|
@ -952,7 +953,7 @@ const app = new Vue({
|
||||||
less.refresh()
|
less.refresh()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
macOSEmu () {
|
macOSEmu() {
|
||||||
this.chrome.forceDirectives["macosemu"] = {
|
this.chrome.forceDirectives["macosemu"] = {
|
||||||
value: true
|
value: true
|
||||||
}
|
}
|
||||||
|
@ -989,8 +990,8 @@ const app = new Vue({
|
||||||
classes.simplebg = true
|
classes.simplebg = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.platform !== "darwin") {
|
if (this.platform !== "darwin") {
|
||||||
switch(parseInt(this.cfg.visual.windowControlPosition)) {
|
switch (parseInt(this.cfg.visual.windowControlPosition)) {
|
||||||
default:
|
default:
|
||||||
case 0:
|
case 0:
|
||||||
this.chrome.windowControlPosition = "right"
|
this.chrome.windowControlPosition = "right"
|
||||||
|
@ -1010,10 +1011,10 @@ const app = new Vue({
|
||||||
if (this.getThemeDirective('windowLayout') == 'twopanel') {
|
if (this.getThemeDirective('windowLayout') == 'twopanel') {
|
||||||
classes.twopanel = true
|
classes.twopanel = true
|
||||||
}
|
}
|
||||||
if(this.getThemeDirective("appNavigation") == "seperate"){
|
if (this.getThemeDirective("appNavigation") == "seperate") {
|
||||||
classes.navbar = true
|
classes.navbar = true
|
||||||
}
|
}
|
||||||
if(this.getThemeDirective("macosemu") == true){
|
if (this.getThemeDirective("macosemu") == true) {
|
||||||
classes.macosemu = true
|
classes.macosemu = true
|
||||||
}
|
}
|
||||||
return classes
|
return classes
|
||||||
|
@ -2531,7 +2532,7 @@ const app = new Vue({
|
||||||
this.loadYTLyrics();
|
this.loadYTLyrics();
|
||||||
} else {
|
} else {
|
||||||
// if (app.cfg.lyrics.enable_mxm) {
|
// if (app.cfg.lyrics.enable_mxm) {
|
||||||
this.loadMXM();
|
this.loadMXM();
|
||||||
// } else {
|
// } else {
|
||||||
// this.loadAMLyrics();
|
// this.loadAMLyrics();
|
||||||
// }
|
// }
|
||||||
|
@ -3342,7 +3343,7 @@ const app = new Vue({
|
||||||
return "https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg"
|
return "https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg"
|
||||||
}
|
}
|
||||||
height = parseInt(height * window.devicePixelRatio)
|
height = parseInt(height * window.devicePixelRatio)
|
||||||
if(width) {
|
if (width) {
|
||||||
width = parseInt(width * window.devicePixelRatio)
|
width = parseInt(width * window.devicePixelRatio)
|
||||||
}
|
}
|
||||||
let newurl = `${url.replace('{w}', width ?? height).replace('{h}', height).replace('{f}', "webp").replace('{c}', ((width === 900) ? "sr" : "cc"))}`;
|
let newurl = `${url.replace('{w}', width ?? height).replace('{h}', height).replace('{f}', "webp").replace('{c}', ((width === 900) ? "sr" : "cc"))}`;
|
||||||
|
@ -3784,10 +3785,33 @@ const app = new Vue({
|
||||||
app.songLinkShare((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url)
|
app.songLinkShare((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"id": "equalizer",
|
||||||
|
"icon": "../views/svg/speaker.svg",
|
||||||
|
"name": app.getLz('term.equalizer'),
|
||||||
|
"hidden": true,
|
||||||
|
"action": function () {
|
||||||
|
app.modals.equalizer = true
|
||||||
|
app.modals.audioSettings = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "audioLab",
|
||||||
|
"icon": "../views/svg/speaker.svg",
|
||||||
|
"name": app.getLz('settings.option.audio.audioLab'),
|
||||||
|
"hidden": true,
|
||||||
|
"action": function () {
|
||||||
|
app.appRoute('audiolabs')
|
||||||
|
}
|
||||||
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(this.cfg.advanced.AudioContext) {
|
||||||
|
menus.normal.items.find(i => i.id === 'audioLab').hidden = false
|
||||||
|
menus.normal.items.find(i => i.id === 'equalizer').hidden = false
|
||||||
|
}
|
||||||
if (this.contextExt) {
|
if (this.contextExt) {
|
||||||
if (this.contextExt.normal) {
|
if (this.contextExt.normal) {
|
||||||
menus.normal.items = menus.normal.items.concat(this.contextExt.normal)
|
menus.normal.items = menus.normal.items.concat(this.contextExt.normal)
|
||||||
|
|
|
@ -1,271 +1,288 @@
|
||||||
<script type="text/x-template" id="audiolabs-page">
|
<script type="text/x-template" id="audiolabs-page">
|
||||||
<div class="content-inner audiolabs-page ">
|
<div class="content-inner audiolabs-page ">
|
||||||
<div class="md-option-container">
|
<div class="md-option-container">
|
||||||
|
|
||||||
<div class="settings-option-body">
|
<div class="settings-option-body">
|
||||||
<div class="md-option-line">
|
<div class="md-option-line">
|
||||||
<b-jumbotron :header="$root.getLz('settings.option.audio.audioLab')"
|
<b-jumbotron :header="$root.getLz('settings.option.audio.audioLab')"
|
||||||
lead="Designed by Cider Acoustic Technologies in California"></b-jumbotron>
|
lead="Designed by Cider Acoustic Technologies in California"></b-jumbotron>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === false">
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === false">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('settings.warn.audioLab.withoutAF')}}
|
{{$root.getLz('settings.warn.audioLab.withoutAF')}}
|
||||||
</div>
|
</div>
|
||||||
<button class="md-btn" style="margin-top: 5px;" onclick="app.appRoute('settings')">
|
<button class="md-btn" style="margin-top: 5px;" onclick="app.appRoute('settings')">
|
||||||
{{$root.getLz('term.settings')}}
|
{{$root.getLz('term.settings')}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE')}}
|
||||||
<br>
|
<br>
|
||||||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE.description')}}</small>
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE.description')}}</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.ciderPPE"
|
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.ciderPPE"
|
||||||
v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line" v-show="app.cfg.audio.maikiwiAudio.ciderPPE === true">
|
<div class="md-option-line" v-show="app.cfg.audio.maikiwiAudio.ciderPPE === true">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength')}}
|
||||||
<br>
|
<br>
|
||||||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description')}}</small>
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description')}}</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<select class="md-select" style="width:180px;"
|
<select class="md-select" style="width:180px;"
|
||||||
v-model="app.cfg.audio.maikiwiAudio.ciderPPE_value"
|
v-model="app.cfg.audio.maikiwiAudio.ciderPPE_value"
|
||||||
v-on:change="CiderAudio.hierarchical_loading()">
|
v-on:change="CiderAudio.hierarchical_loading()">
|
||||||
<option value="MAIKIWI">Maikiwi</option>
|
<option value="MAIKIWI">Maikiwi</option>
|
||||||
<option value="NATURAL">
|
<option value="NATURAL">
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard')}}
|
||||||
</option>
|
</option>
|
||||||
<option value="AGGRESSIVE">
|
<option value="AGGRESSIVE">
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive')}}
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmth')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmth')}}
|
||||||
<br>
|
<br>
|
||||||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmth.description')}}</small>
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmth.description')}}</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.analogWarmth"
|
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.analogWarmth"
|
||||||
v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line"
|
<div class="md-option-line"
|
||||||
v-show="app.cfg.advanced.AudioContext === true && app.cfg.audio.maikiwiAudio.analogWarmth === true">
|
v-show="app.cfg.advanced.AudioContext === true && app.cfg.audio.maikiwiAudio.analogWarmth === true">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity')}}
|
||||||
<br>
|
<br>
|
||||||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description')}}</small>
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description')}}</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<select class="md-select" style="width:180px;"
|
<select class="md-select" style="width:180px;"
|
||||||
v-model="app.cfg.audio.maikiwiAudio.analogWarmth_value"
|
v-model="app.cfg.audio.maikiwiAudio.analogWarmth_value"
|
||||||
v-on:change="ChangeanalogWarmth()">
|
v-on:change="ChangeanalogWarmth()">
|
||||||
<option value="SMOOTH">
|
<option value="SMOOTH">
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth')}}
|
||||||
</option>
|
</option>
|
||||||
<option value="WARM">
|
<option value="WARM">
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm')}}
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization')}}
|
Cider Atmosphere Realizer™️
|
||||||
<br>
|
<br>
|
||||||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description')}}</small>
|
<small>Realizes a different musical atmosphere modelled after the state of the art audio setups.</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<input type="checkbox" v-model="app.cfg.audio.spatial"
|
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.atmosphereRealizer"
|
||||||
:disabled="app.cfg.audio.maikiwiAudio.spatial === true" v-on:change="toggleSpatial"
|
v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
||||||
switch/>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="md-option-line" v-show="app.cfg.audio.maikiwiAudio.atmosphereRealizer === true">
|
||||||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
<div class="md-option-segment">
|
||||||
<div class="md-option-segment">
|
Cider Atmosphere Realizer™️ Mode
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization')}}
|
<br>
|
||||||
<br>
|
<small>Changes the mode of operation of the Atmosphere Realizer module.</small>
|
||||||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description')}}</small>
|
</div>
|
||||||
</div>
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<select class="md-select" style="width:180px;"
|
||||||
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.spatial"
|
v-model="app.cfg.audio.maikiwiAudio.atmosphereRealizer_value"
|
||||||
:disabled="app.cfg.audio.spatial === false" v-on:change="toggleMaikiwiSpatial" switch/>
|
v-on:change="CiderAudio.hierarchical_loading()">
|
||||||
</div>
|
<option value="NATURAL_STANDARD">Natural (Standard)</option>
|
||||||
</div>
|
<option value="NATURAL_HIGH">Natural (High)</option>
|
||||||
<div class="md-option-line"
|
<option value="NATURAL_PLUS">Natural (Plus)</option>
|
||||||
v-show="app.cfg.audio.maikiwiAudio.spatial === true && app.cfg.audio.spatial === true">
|
</select>
|
||||||
<div class="md-option-segment">
|
</div>
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile')}}
|
</div>
|
||||||
<br>
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
||||||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description')}}</small>
|
<div class="md-option-segment">
|
||||||
</div>
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization')}}
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<br>
|
||||||
<select class="md-select" style="width:180px;"
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description')}}</small>
|
||||||
v-model="$root.cfg.audio.maikiwiAudio.spatialProfile"
|
</div>
|
||||||
v-on:change="toggleMaikiwiSpatial">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<option v-for="profile in spprofiles" :value="profile.id">{{ profile.name }}</option>
|
<input type="checkbox" v-model="app.cfg.audio.spatial"
|
||||||
</select>
|
:disabled="app.cfg.audio.maikiwiAudio.spatial === true" v-on:change="toggleSpatial"
|
||||||
</div>
|
switch/>
|
||||||
</div>
|
</div>
|
||||||
<div class="spprofile-line" v-show="app.cfg.audio.maikiwiAudio.spatial === true && app.cfg.audio.spatial === true">
|
</div>
|
||||||
<div class="spprofile-viewport">
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
||||||
<button class="spprev" @click="profilePrev"></button>
|
<div class="md-option-segment">
|
||||||
<button class="nextprev" @click="profileNext"></button>
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization')}}
|
||||||
<template v-for="profile in spprofiles" v-if="$root.cfg.audio.maikiwiAudio.spatialProfile == profile.id">
|
<br>
|
||||||
<transition name="spfade">
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description')}}</small>
|
||||||
<div class="spslide" :key="profile.id">
|
</div>
|
||||||
<img v-if="profile.img" loading="eager" decoding="async" :src="profile.img" alt="">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<h1 class="sptitle">{{ profile.name }}</h1>
|
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.spatial"
|
||||||
</div>
|
:disabled="app.cfg.audio.spatial === false" v-on:change="toggleMaikiwiSpatial" switch/>
|
||||||
</transition>
|
</div>
|
||||||
</template>
|
</div>
|
||||||
</div>
|
<div class="md-option-line"
|
||||||
</div>
|
v-show="app.cfg.audio.maikiwiAudio.spatial === true && app.cfg.audio.spatial === true">
|
||||||
<div style="opacity: 0.5; pointer-events: none">
|
<div class="md-option-segment">
|
||||||
<div class="md-option-header">
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile')}}
|
||||||
<span>{{$root.getLz('settings.header.unfinished')}}</span>
|
<br>
|
||||||
</div>
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description')}}</small>
|
||||||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
</div>
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
Cider Atmosphere Realizer™️
|
<select class="md-select" style="width:180px;"
|
||||||
<br>
|
v-model="$root.cfg.audio.maikiwiAudio.spatialProfile"
|
||||||
<small>Realizes an entirely different musical atmosphere only to be found on state of the
|
v-on:change="toggleMaikiwiSpatial">
|
||||||
art audio setups.</small>
|
<option v-for="profile in spprofiles" :value="profile.id">{{ profile.name }}</option>
|
||||||
</div>
|
</select>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
</div>
|
||||||
<button class="md-btn">
|
</div>
|
||||||
Signature
|
<div class="spprofile-line" v-show="app.cfg.audio.maikiwiAudio.spatial === true && app.cfg.audio.spatial === true">
|
||||||
</button>
|
<div class="spprofile-viewport">
|
||||||
<button class="md-btn">
|
<button class="spprev" @click="profilePrev"></button>
|
||||||
Signature+
|
<button class="nextprev" @click="profileNext"></button>
|
||||||
</button>
|
<template v-for="profile in spprofiles" v-if="$root.cfg.audio.maikiwiAudio.spatialProfile == profile.id">
|
||||||
</div>
|
<transition name="spfade">
|
||||||
</div>
|
<div class="spslide" :key="profile.id">
|
||||||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
<img v-if="profile.img" loading="eager" decoding="async" :src="profile.img" alt="">
|
||||||
<div class="md-option-segment">
|
<h1 class="sptitle">{{ profile.name }}</h1>
|
||||||
Cider Origami™️ Vocal Enhancer/Remasterer
|
</div>
|
||||||
<br>
|
</transition>
|
||||||
<small>Re-textures the vocals by carving out the frequencies and adjusts them to the
|
</template>
|
||||||
selected profile.<br>
|
</div>
|
||||||
<b>Modern:</b>
|
</div>
|
||||||
Modernizes vocals that was recorded on old microphones while preserving the artist's individualistic style.<br>
|
<div style="opacity: 0.5; pointer-events: none">
|
||||||
<b>Articulate:</b>
|
<div class="md-option-header">
|
||||||
Wrapping every detail of the vocal to your ear, resulting in a more expressive voice.
|
<span>{{$root.getLz('settings.header.unfinished')}}</span>
|
||||||
</small>
|
</div>
|
||||||
</div>
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment">
|
||||||
<select class="md-select">
|
Cider Origami™️ Vocal Enhancer/Remasterer
|
||||||
<option value="none">
|
<br>
|
||||||
{{$root.getLz('settings.header.visual.windowBackgroundStyle.none')}}
|
<small>Re-textures the vocals by carving out the frequencies and adjusts them to the
|
||||||
</option>
|
selected profile.<br>
|
||||||
<option value="modern">
|
<b>Modern:</b>
|
||||||
Modern
|
Modernizes vocals that was recorded on old microphones while preserving the artist's individualistic style.<br>
|
||||||
</option>
|
<b>Articulate:</b>
|
||||||
<option value="intimate">
|
Wrapping every detail of the vocal to your ear, resulting in a more expressive voice.
|
||||||
Intimate
|
</small>
|
||||||
</option>
|
</div>
|
||||||
</select>
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
</div>
|
<select class="md-select">
|
||||||
</div>
|
<option value="none">
|
||||||
</div>
|
{{$root.getLz('settings.header.visual.windowBackgroundStyle.none')}}
|
||||||
</div>
|
</option>
|
||||||
</div>
|
<option value="modern">
|
||||||
</script>
|
Modern
|
||||||
|
</option>
|
||||||
<script>
|
<option value="intimate">
|
||||||
Vue.component('audiolabs-page', {
|
Intimate
|
||||||
template: "#audiolabs-page",
|
</option>
|
||||||
props: [],
|
</select>
|
||||||
data: function () {
|
</div>
|
||||||
return {
|
</div>
|
||||||
app: this.$root,
|
</div>
|
||||||
spprofiles: CiderAudio.spatialProfiles
|
</div>
|
||||||
}
|
</div>
|
||||||
},
|
</script>
|
||||||
mounted: function () {
|
|
||||||
|
<script>
|
||||||
},
|
Vue.component('audiolabs-page', {
|
||||||
methods: {
|
template: "#audiolabs-page",
|
||||||
profileNext() {
|
props: [],
|
||||||
var next = this.spprofiles.find(function (profile) {
|
data: function () {
|
||||||
return profile.id === this.$root.cfg.audio.maikiwiAudio.spatialProfile;
|
return {
|
||||||
}.bind(this));
|
app: this.$root,
|
||||||
if (next) {
|
spprofiles: CiderAudio.spatialProfiles
|
||||||
next = this.spprofiles[this.spprofiles.indexOf(next) + 1];
|
}
|
||||||
if (next) {
|
},
|
||||||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = next.id;
|
mounted: function () {
|
||||||
} else {
|
|
||||||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[0].id;
|
},
|
||||||
}
|
methods: {
|
||||||
} else {
|
profileNext() {
|
||||||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[0].id;
|
var next = this.spprofiles.find(function (profile) {
|
||||||
}
|
return profile.id === this.$root.cfg.audio.maikiwiAudio.spatialProfile;
|
||||||
this.toggleMaikiwiSpatial()
|
}.bind(this));
|
||||||
},
|
if (next) {
|
||||||
profilePrev() {
|
next = this.spprofiles[this.spprofiles.indexOf(next) + 1];
|
||||||
// select the previous profile based on $root.cfg.audio.maikiwiAudio.spatialProfile
|
if (next) {
|
||||||
var prev = this.spprofiles.find(function (profile) {
|
this.$root.cfg.audio.maikiwiAudio.spatialProfile = next.id;
|
||||||
return profile.id === this.$root.cfg.audio.maikiwiAudio.spatialProfile;
|
} else {
|
||||||
}.bind(this));
|
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[0].id;
|
||||||
if (prev) {
|
}
|
||||||
prev = this.spprofiles[this.spprofiles.indexOf(prev) - 1];
|
} else {
|
||||||
if (prev) {
|
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[0].id;
|
||||||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = prev.id;
|
}
|
||||||
} else {
|
this.toggleMaikiwiSpatial()
|
||||||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[this.spprofiles.length - 1].id;
|
},
|
||||||
}
|
profilePrev() {
|
||||||
} else {
|
// select the previous profile based on $root.cfg.audio.maikiwiAudio.spatialProfile
|
||||||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[this.spprofiles.length - 1].id;
|
var prev = this.spprofiles.find(function (profile) {
|
||||||
}
|
return profile.id === this.$root.cfg.audio.maikiwiAudio.spatialProfile;
|
||||||
this.toggleMaikiwiSpatial()
|
}.bind(this));
|
||||||
},
|
if (prev) {
|
||||||
toggleSpatial: function () {
|
prev = this.spprofiles[this.spprofiles.indexOf(prev) - 1];
|
||||||
if (app.cfg.audio.spatial) {
|
if (prev) {
|
||||||
CiderAudio.spatialOn()
|
this.$root.cfg.audio.maikiwiAudio.spatialProfile = prev.id;
|
||||||
CiderAudio.hierarchical_loading();
|
} else {
|
||||||
} else {
|
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[this.spprofiles.length - 1].id;
|
||||||
CiderAudio.spatialOff()
|
}
|
||||||
}
|
} else {
|
||||||
},
|
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[this.spprofiles.length - 1].id;
|
||||||
toggleMaikiwiSpatial: function () {
|
}
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
this.toggleMaikiwiSpatial()
|
||||||
CiderAudio.spatialOn()
|
},
|
||||||
CiderAudio.hierarchical_loading();
|
toggleSpatial: function () {
|
||||||
//let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) - 14) / 20));
|
if (app.cfg.audio.spatial) {
|
||||||
//app.mk.volume = normalized
|
CiderAudio.spatialOn()
|
||||||
// -13dBFS Target
|
CiderAudio.hierarchical_loading();
|
||||||
} else {
|
} else {
|
||||||
//let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) + 14) / 20));
|
CiderAudio.spatialOff()
|
||||||
//app.mk.volume = normalized
|
}
|
||||||
CiderAudio.spatialOn()
|
},
|
||||||
CiderAudio.hierarchical_loading();
|
toggleMaikiwiSpatial: function () {
|
||||||
}
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
},
|
CiderAudio.spatialOn()
|
||||||
ChangeanalogWarmth: function () {
|
CiderAudio.hierarchical_loading();
|
||||||
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 normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) - 14) / 20));
|
||||||
|
//app.mk.volume = normalized
|
||||||
switch (app.cfg.audio.maikiwiAudio.analogWarmth_value) {
|
// -13dBFS Target
|
||||||
case "SMOOTH":
|
} else {
|
||||||
for (let i = 0; i < 23; i++) {
|
//let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) + 14) / 20));
|
||||||
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25;
|
//app.mk.volume = normalized
|
||||||
}
|
CiderAudio.spatialOn()
|
||||||
break;
|
CiderAudio.hierarchical_loading();
|
||||||
case "WARM":
|
}
|
||||||
for (let i = 0; i < 23; i++) {
|
},
|
||||||
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.75;
|
ChangeanalogWarmth: function () {
|
||||||
}
|
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];
|
||||||
break;
|
|
||||||
}
|
switch (app.cfg.audio.maikiwiAudio.analogWarmth_value) {
|
||||||
|
case "SMOOTH":
|
||||||
},
|
for (let i = 0; i < 23; i++) {
|
||||||
}
|
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25;
|
||||||
})
|
}
|
||||||
|
break;
|
||||||
|
case "WARM":
|
||||||
|
for (let i = 0; i < 23; i++) {
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.75;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
app.cfg.audio.maikiwiAudio.analogWarmth_value = "SMOOTH";
|
||||||
|
for (let i = 0; i < 23; i++) {
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
</script>
|
</script>
|
Loading…
Add table
Add a link
Reference in a new issue