291 lines
No EOL
17 KiB
Text
291 lines
No EOL
17 KiB
Text
<script type="text/x-template" id="audiolabs-page">
|
||
<div class="content-inner audiolabs-page ">
|
||
<div class="md-option-container">
|
||
|
||
<div class="settings-option-body">
|
||
<div class="md-option-line">
|
||
<b-jumbotron :header="$root.getLz('settings.option.audio.audioLab')"
|
||
:lead="$root.getLz('settings.option.audio.audioLab.subheader')"></b-jumbotron>
|
||
</div>
|
||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === false">
|
||
<div class="md-option-segment">
|
||
{{$root.getLz('settings.warn.audioLab.withoutAF')}}
|
||
</div>
|
||
<button class="md-btn" style="margin-top: 5px;" onclick="app.appRoute('settings')">
|
||
{{$root.getLz('term.settings')}}
|
||
</button>
|
||
</div>
|
||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
||
<div class="md-option-segment">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE')}}
|
||
<br>
|
||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE.description')}}</small>
|
||
</div>
|
||
<div class="md-option-segment md-option-segment_auto">
|
||
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.ciderPPE"
|
||
v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
||
</div>
|
||
</div>
|
||
<div class="md-option-line" v-show="app.cfg.audio.maikiwiAudio.ciderPPE === true">
|
||
<div class="md-option-segment">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength')}}
|
||
<br>
|
||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description')}}</small>
|
||
</div>
|
||
<div class="md-option-segment md-option-segment_auto">
|
||
<select class="md-select" style="width:180px;"
|
||
v-model="app.cfg.audio.maikiwiAudio.ciderPPE_value"
|
||
v-on:change="CiderAudio.hierarchical_loading()">
|
||
<option value="MAIKIWI">Maikiwi</option>
|
||
<option value="NATURAL">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard')}}
|
||
</option>
|
||
<option value="AGGRESSIVE">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive')}}
|
||
</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
|
||
<div class="md-option-segment">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmth')}}
|
||
<br>
|
||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmth.description')}}</small>
|
||
</div>
|
||
<div class="md-option-segment md-option-segment_auto">
|
||
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.analogWarmth"
|
||
v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
||
</div>
|
||
</div>
|
||
<div class="md-option-line"
|
||
v-show="app.cfg.advanced.AudioContext === true && app.cfg.audio.maikiwiAudio.analogWarmth === true">
|
||
<div class="md-option-segment">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity')}}
|
||
<br>
|
||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description')}}</small>
|
||
</div>
|
||
<div class="md-option-segment md-option-segment_auto">
|
||
<select class="md-select" style="width:180px;"
|
||
v-model="app.cfg.audio.maikiwiAudio.analogWarmth_value"
|
||
v-on:change="ChangeanalogWarmth()">
|
||
<option value="SMOOTH">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth')}}
|
||
</option>
|
||
<option value="WARM">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm')}}
|
||
</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
||
<div class="md-option-segment">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer')}}
|
||
<br>
|
||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description')}}</small>
|
||
</div>
|
||
<div class="md-option-segment md-option-segment_auto">
|
||
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.atmosphereRealizer"
|
||
v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
||
</div>
|
||
</div>
|
||
<div class="md-option-line" v-show="app.cfg.audio.maikiwiAudio.atmosphereRealizer === true">
|
||
<div class="md-option-segment">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode')}}
|
||
<br>
|
||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description')}}</small>
|
||
</div>
|
||
<div class="md-option-segment md-option-segment_auto">
|
||
<select class="md-select" style="width:180px;"
|
||
v-model="app.cfg.audio.maikiwiAudio.atmosphereRealizer_value"
|
||
v-on:change="CiderAudio.hierarchical_loading()">
|
||
<option value="NATURAL_STANDARD">{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1')}}</option>
|
||
<option value="NATURAL_HIGH">{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2')}}</option>
|
||
<option value="NATURAL_PLUS">{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3')}}</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
||
<div class="md-option-segment">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization')}}
|
||
<br>
|
||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description')}}</small>
|
||
</div>
|
||
<div class="md-option-segment md-option-segment_auto">
|
||
<input type="checkbox" v-model="app.cfg.audio.spatial"
|
||
:disabled="app.cfg.audio.maikiwiAudio.spatial === true" v-on:change="toggleSpatial"
|
||
switch/>
|
||
</div>
|
||
</div>
|
||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
||
<div class="md-option-segment">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization')}}
|
||
<br>
|
||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description')}}</small>
|
||
</div>
|
||
<div class="md-option-segment md-option-segment_auto">
|
||
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.spatial"
|
||
:disabled="app.cfg.audio.spatial === false" v-on:change="toggleMaikiwiSpatial" switch/>
|
||
</div>
|
||
</div>
|
||
<div class="md-option-line"
|
||
v-show="app.cfg.audio.maikiwiAudio.spatial === true && app.cfg.audio.spatial === true">
|
||
<div class="md-option-segment">
|
||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile')}}
|
||
<br>
|
||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description')}}</small>
|
||
</div>
|
||
<div class="md-option-segment md-option-segment_auto">
|
||
<select class="md-select" style="width:180px;"
|
||
v-model="$root.cfg.audio.maikiwiAudio.spatialProfile"
|
||
v-on:change="toggleMaikiwiSpatial">
|
||
<option v-for="profile in spprofiles" :value="profile.id">{{ profile.name }}</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="spprofile-line" v-show="app.cfg.audio.maikiwiAudio.spatial === true && app.cfg.audio.spatial === true">
|
||
<div class="spprofile-viewport">
|
||
<button class="spprev" @click="profilePrev"></button>
|
||
<button class="nextprev" @click="profileNext"></button>
|
||
<template v-for="profile in spprofiles" v-if="$root.cfg.audio.maikiwiAudio.spatialProfile == profile.id">
|
||
<transition name="spfade">
|
||
<div class="spslide" :key="profile.id">
|
||
<img v-if="profile.img" loading="eager" decoding="async" :src="profile.img" alt="">
|
||
<h1 class="sptitle">{{ profile.name }}</h1>
|
||
</div>
|
||
</transition>
|
||
</template>
|
||
</div>
|
||
</div>
|
||
<div style="opacity: 0.5; pointer-events: none">
|
||
<div class="md-option-header">
|
||
<span>{{$root.getLz('settings.header.unfinished')}}</span>
|
||
</div>
|
||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
|
||
<div class="md-option-segment">
|
||
Cider Origami™️ Vocal Enhancer/Remasterer
|
||
<br>
|
||
<small>Re-textures the vocals by carving out the frequencies and adjusts them to the
|
||
selected profile.<br>
|
||
<b>Modern:</b>
|
||
Modernizes vocals that was recorded on old microphones while preserving the artist's individualistic style.<br>
|
||
<b>Articulate:</b>
|
||
Wrapping every detail of the vocal to your ear, resulting in a more expressive voice.
|
||
</small>
|
||
</div>
|
||
<div class="md-option-segment md-option-segment_auto">
|
||
<select class="md-select">
|
||
<option value="none">
|
||
{{$root.getLz('settings.header.visual.windowBackgroundStyle.none')}}
|
||
</option>
|
||
<option value="modern">
|
||
Modern
|
||
</option>
|
||
<option value="intimate">
|
||
Intimate
|
||
</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</script>
|
||
|
||
<script>
|
||
Vue.component('audiolabs-page', {
|
||
template: "#audiolabs-page",
|
||
props: [],
|
||
data: function () {
|
||
return {
|
||
app: this.$root,
|
||
spprofiles: CiderAudio.spatialProfiles
|
||
}
|
||
},
|
||
mounted: function () {
|
||
|
||
},
|
||
methods: {
|
||
profileNext() {
|
||
var next = this.spprofiles.find(function (profile) {
|
||
return profile.id === this.$root.cfg.audio.maikiwiAudio.spatialProfile;
|
||
}.bind(this));
|
||
if (next) {
|
||
next = this.spprofiles[this.spprofiles.indexOf(next) + 1];
|
||
if (next) {
|
||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = next.id;
|
||
} else {
|
||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[0].id;
|
||
}
|
||
} else {
|
||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[0].id;
|
||
}
|
||
this.toggleMaikiwiSpatial()
|
||
},
|
||
profilePrev() {
|
||
// select the previous profile based on $root.cfg.audio.maikiwiAudio.spatialProfile
|
||
var prev = this.spprofiles.find(function (profile) {
|
||
return profile.id === this.$root.cfg.audio.maikiwiAudio.spatialProfile;
|
||
}.bind(this));
|
||
if (prev) {
|
||
prev = this.spprofiles[this.spprofiles.indexOf(prev) - 1];
|
||
if (prev) {
|
||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = prev.id;
|
||
} else {
|
||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[this.spprofiles.length - 1].id;
|
||
}
|
||
} else {
|
||
this.$root.cfg.audio.maikiwiAudio.spatialProfile = this.spprofiles[this.spprofiles.length - 1].id;
|
||
}
|
||
this.toggleMaikiwiSpatial()
|
||
},
|
||
toggleSpatial: function () {
|
||
if (app.cfg.audio.spatial) {
|
||
CiderAudio.spatialOn()
|
||
CiderAudio.hierarchical_loading();
|
||
} else {
|
||
CiderAudio.spatialOff()
|
||
}
|
||
},
|
||
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();
|
||
}
|
||
},
|
||
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];
|
||
|
||
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;
|
||
}
|
||
CiderAudio.intelliGainComp_h0_0();
|
||
break;
|
||
case "WARM":
|
||
for (let i = 0; i < 23; i++) {
|
||
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.75;
|
||
}
|
||
CiderAudio.intelliGainComp_h0_0();
|
||
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;
|
||
}
|
||
CiderAudio.intelliGainComp_h0_0();
|
||
break;
|
||
}
|
||
|
||
},
|
||
}
|
||
})
|
||
</script> |