parent
1663d8ff9c
commit
b6c2098064
4 changed files with 106 additions and 121 deletions
|
@ -57,7 +57,7 @@ export class Store {
|
|||
"ciderPPE": false,
|
||||
"ciderPPE_value": "NATURAL",
|
||||
"analogWarmth": false,
|
||||
"analogWarmth_value": "SMOOTH",
|
||||
"analogWarmth_value": 1.25,
|
||||
"spatial": false,
|
||||
"spatialProfile": "420signature-B",
|
||||
"vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts
|
||||
|
|
|
@ -288,39 +288,14 @@ const CiderAudio = {
|
|||
let WARMTH_Q = [0.442, 3.536, 2.102, 8.409, 0.625, 16.82, 5, 2.973, 3.536, 2.5, 2.5, 11.89, 0.625, 1.487, 1.153, 5, 5.453, 5, 2.973, 3.386, 3.386, 14.14, 8.409];
|
||||
CiderAudio.audioNodes.analogWarmth = []
|
||||
|
||||
switch (app.cfg.audio.maikiwiAudio.analogWarmth_value) {
|
||||
case "SMOOTH":
|
||||
|
||||
for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) {
|
||||
CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
|
||||
CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
|
||||
CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i];
|
||||
CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
|
||||
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25;
|
||||
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * app.cfg.audio.maikiwiAudio.analogWarmth_value;
|
||||
}
|
||||
break;
|
||||
|
||||
case "WARM":
|
||||
for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) {
|
||||
CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
|
||||
CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
|
||||
CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i];
|
||||
CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
|
||||
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.75;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) {
|
||||
CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
|
||||
CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
|
||||
CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i];
|
||||
CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
|
||||
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25;
|
||||
}
|
||||
app.cfg.audio.maikiwiAudio.analogWarmth_value = "SMOOTH";
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
for (let i = 1; i < WARMTH_FREQUENCIES.length; i ++) {
|
||||
CiderAudio.audioNodes.analogWarmth[i-1].connect(CiderAudio.audioNodes.analogWarmth[i]);
|
||||
|
|
|
@ -1,25 +1,35 @@
|
|||
<script type="text/x-template" id="audiolabs-page">
|
||||
<div class="content-inner settings-page">
|
||||
<div class="md-option-container">
|
||||
<div>
|
||||
<b-jumbotron :header="$root.getLz('settings.warn.audioLab.withoutAF')" v-show="app.cfg.advanced.AudioContext === false">
|
||||
<div class="md-option-segment md-option-segment_auto">
|
||||
<b-row>
|
||||
<button class="md-btn" style="margin-top: 5px; align-self: center;" onclick="app.appRoute('settings')">
|
||||
<div class="md-option-header">
|
||||
<span>{{$root.getLz('settings.option.audio.audioLab')}}</span>
|
||||
</div>
|
||||
<div class="settings-option-body">
|
||||
<div class="md-option-line" v-show="!app.cfg.advanced.AudioContext">
|
||||
<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>
|
||||
</b-row>
|
||||
</div>
|
||||
</b-jumbotron>
|
||||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
|
||||
<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.advanced.AudioContext && 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>
|
||||
<b-jumbotron :header="$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE')"
|
||||
:lead="$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE.description')">
|
||||
<p>{{$root.getLz('term.creditDesignedBy').replace("${authorUsername}", "Maikiwi")}}</p>
|
||||
<div class="md-option-segment md-option-segment_auto">
|
||||
<b-row>
|
||||
<input type="checkbox" style="align-self: center;" v-model="app.cfg.audio.maikiwiAudio.ciderPPE" v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
||||
<div class="md-option-segment md-option-segment_auto" v-show="app.cfg.audio.maikiwiAudio.ciderPPE === true">
|
||||
<select class="md-select" style="width:180px;" v-model="app.cfg.audio.maikiwiAudio.ciderPPE_value"
|
||||
v-on:change="CiderAudio.hierarchical_loading()">
|
||||
<option value="NATURAL">Natural</option>
|
||||
|
@ -27,46 +37,59 @@
|
|||
<option value="AGGRESSIVE">{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive')}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</b-row>
|
||||
</div>
|
||||
</b-jumbotron>
|
||||
<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>
|
||||
<b-jumbotron :header="$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmth')"
|
||||
:lead="$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmth.description')">
|
||||
<p>{{$root.getLz('term.creditDesignedBy').replace("${authorUsername}", "Maikiwi")}}</p>
|
||||
<div class="md-option-segment md-option-segment_auto">
|
||||
<b-row>
|
||||
<input type="checkbox" style="align-self: center;" v-model="app.cfg.audio.maikiwiAudio.analogWarmth" v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
||||
<div class="md-option-segment md-option-segment_auto" v-show="app.cfg.audio.maikiwiAudio.analogWarmth === true">
|
||||
<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>
|
||||
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.analogWarmth" v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
||||
</div>
|
||||
</b-row>
|
||||
</div>
|
||||
</b-jumbotron>
|
||||
<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>
|
||||
<b-jumbotron :header="$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization')"
|
||||
:lead="$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description')">
|
||||
<div class="md-option-segment md-option-segment_auto">
|
||||
<b-row>
|
||||
<input type="checkbox" style="align-self: center;" v-model="app.cfg.audio.spatial" :disabled="app.cfg.audio.maikiwiAudio.spatial === true" v-on:change="toggleSpatial" switch/>
|
||||
</b-row>
|
||||
<button class="md-btn" :disabled="app.cfg.audio.maikiwiAudio.analogWarmth_value === 1.25" v-model="app.cfg.audio.maikiwiAudio.analogWarmth_value" v-on:click="ChangeanalogWarmth(1.25)">
|
||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth')}}
|
||||
</button>
|
||||
<button class="md-btn" :disabled="app.cfg.audio.maikiwiAudio.analogWarmth_value === 1.75" v-model="app.cfg.audio.maikiwiAudio.analogWarmth_value" v-on:click="ChangeanalogWarmth(1.75)">
|
||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm')}}
|
||||
</button>
|
||||
</div>
|
||||
</b-jumbotron>
|
||||
</div>
|
||||
<div>
|
||||
<b-jumbotron :header="$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization')"
|
||||
:lead="$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description')">
|
||||
<p>{{$root.getLz('term.creditDesignedBy').replace("${authorUsername}", "Maikiwi")}}</p>
|
||||
<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">
|
||||
<b-row>
|
||||
<input type="checkbox" style="align-self: center;" v-model="app.cfg.audio.maikiwiAudio.spatial" :disabled="app.cfg.audio.spatial === false" v-on:change="toggleMaikiwiSpatial" switch/>
|
||||
<div class="md-option-segment md-option-segment_auto" v-show="app.cfg.audio.maikiwiAudio.spatial === true && app.cfg.audio.spatial === true">
|
||||
<select class="md-select" style="width:180px;" v-model="app.cfg.audio.maikiwiAudio.spatialProfile"
|
||||
v-on:change="toggleMaikiwiSpatial">
|
||||
<option value="420signature-B">Signature (Focused)</option>
|
||||
|
@ -75,9 +98,6 @@
|
|||
<option value="standard">Minimal</option>
|
||||
</select>
|
||||
</div>
|
||||
</b-row>
|
||||
</div>
|
||||
</b-jumbotron>
|
||||
</div>
|
||||
<div style="opacity: 0.5; pointer-events: none">
|
||||
<div class="md-option-header">
|
||||
|
@ -172,22 +192,12 @@
|
|||
CiderAudio.hierarchical_loading();
|
||||
}
|
||||
},
|
||||
ChangeanalogWarmth: function () {
|
||||
ChangeanalogWarmth: function (multiplier) {
|
||||
app.cfg.audio.maikiwiAudio.analogWarmth_value = multiplier
|
||||
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.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * multiplier;
|
||||
}
|
||||
break;
|
||||
case "WARM":
|
||||
for (let i = 0; i < 23; i++) {
|
||||
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.75;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
},
|
||||
}})
|
||||
</script>
|
|
@ -122,7 +122,7 @@
|
|||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.description')}}</small>
|
||||
</div>
|
||||
<div class="md-option-segment md-option-segment_auto">
|
||||
<input type="checkbox" v-model="app.cfg.audio.normalization" v-on:change="toggleNormalization" :disabled="app.cfg.audio.equalizer.vibrantBass != 0 || app.cfg.audio.maikiwiAudio.spatial === true || app.cfg.audio.maikiwiAudio.ciderPPE === true" switch/>
|
||||
<input type="checkbox" v-model="app.cfg.audio.normalization" v-on:change="toggleNormalization" :disabled="app.cfg.audio.equalizer.vibrantBass !== '0' || app.cfg.audio.maikiwiAudio.spatial === true || app.cfg.audio.maikiwiAudio.ciderPPE === true" switch/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue