314 lines
No EOL
20 KiB
Text
314 lines
No EOL
20 KiB
Text
<script type="text/x-template" id="eq-view">
|
|
<div class="modal-fullscreen equalizer-panel">
|
|
<div class="modal-window" >
|
|
<div class="modal-header">
|
|
<div class="modal-title">{{$root.getLz('term.equalizer')}}</div>
|
|
<button class="close-btn" @click="close()"></button>
|
|
<div class="md-option-segment md-option-segment_auto">
|
|
<select class="md-select" style="width:220px;text-align:center;margin-right:16.75em" v-model="app.cfg.audio.equalizer.preset" v-on:change="changePreset()">
|
|
<option value="default">Default</option>
|
|
<option value="boostBrightness">Boost Brightness</option>
|
|
<option value="warmth">Warmth</option>
|
|
<option value="acoustic">Acoustic</option>
|
|
<option value="clearVocal">Clear Vocal</option>
|
|
<option value="instrumentClarity">Instrument Clarity</option>
|
|
<option value="smileyFace">Smiley Face</option>
|
|
<option value="reduceHarshness">Reduce Harshness</option>
|
|
<option value="tightPerc">Tight Percussion</option>
|
|
<option value="Maikiwi">Maikiwi Personal</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="modal-content">
|
|
<!-- BANDS = [60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000]; -->
|
|
<div class="inputs-container">
|
|
<div class="input-container mini">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.preamp" @change="changePreamp()">
|
|
<input tabindex="0" type="range" class="eq-slider mini" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.preamp" @change="changePreamp()">
|
|
Preamp
|
|
</div>
|
|
<div class="input-container mini">
|
|
{{app.cfg.audio.equalizer.mix}}
|
|
<input tabindex="0" type="range" class="eq-slider mini" orient="vertical" min="0" max="1" step="0.1" v-model="app.cfg.audio.equalizer.mix" @change="changeMix()">
|
|
Mix
|
|
</div>
|
|
<div class="input-container header mini">
|
|
Gain
|
|
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" >
|
|
<div class="freq-header">Freq</div>
|
|
<div>Q</div>
|
|
</div>
|
|
<div class="input-container">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[0]" @change="changeGain(0)">
|
|
<input tabindex="0" type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[0]" @change="changeGain(0)">
|
|
<input type="number" class="eq-freq" orient="vertical" min="22" max="44" step="2" v-model="app.cfg.audio.equalizer.frequencies[0]" @change="changeFreq(0)">
|
|
<input type="number" class="eq-q" orient="vertical" min="0" max="5" step="0.1" v-model="app.cfg.audio.equalizer.Q[0]" @change="changeQ(0)">
|
|
</div>
|
|
<div class="input-container">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[1]" @change="changeGain(1)">
|
|
<input tabindex="0" type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[1]" @change="changeGain(1)">
|
|
<input type="number" class="eq-freq" orient="vertical" min="44" max="88" step="4" v-model="app.cfg.audio.equalizer.frequencies[1]" @change="changeFreq(1)">
|
|
<input type="number" class="eq-q" orient="vertical" min="0" max="5" step="0.1" v-model="app.cfg.audio.equalizer.Q[1]" @change="changeQ(1)">
|
|
</div>
|
|
<div class="input-container">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[2]" @change="changeGain(2)">
|
|
<input tabindex="0" type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[2]" @change="changeGain(2)">
|
|
<input type="number" class="eq-freq" orient="vertical" min="88" max="177" step="8" v-model="app.cfg.audio.equalizer.frequencies[2]" @change="changeFreq(2)">
|
|
<input type="number" class="eq-q" orient="vertical" min="0" max="5" step="0.1" v-model="app.cfg.audio.equalizer.Q[2]" @change="changeQ(2)">
|
|
</div>
|
|
<div class="input-container">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[3]" @change="changeGain(3)">
|
|
<input tabindex="0" type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[3]" @change="changeGain(3)">
|
|
<input type="number" class="eq-freq" orient="vertical" min="177" max="355" step="16" v-model="app.cfg.audio.equalizer.frequencies[3]" @change="changeFreq(3)">
|
|
<input type="number" class="eq-q" orient="vertical" min="0" max="5" step="0.1" v-model="app.cfg.audio.equalizer.Q[3]" @change="changeQ(3)">
|
|
</div>
|
|
<div class="input-container">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[4]" @change="changeGain(4)">
|
|
<input tabindex="0" type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[4]" @change="changeGain(4)">
|
|
<input type="number" class="eq-freq" orient="vertical" min="355" max="710" step="32" v-model="app.cfg.audio.equalizer.frequencies[4]" @change="changeFreq(4)">
|
|
<input type="number" class="eq-q" orient="vertical" min="0" max="5" step="0.1" v-model="app.cfg.audio.equalizer.Q[4]" @change="changeQ(4)">
|
|
</div>
|
|
<div class="input-container">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[5]" @change="changeGain(5)">
|
|
<input tabindex="0" type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[5]" @change="changeGain(5)">
|
|
<input type="number" class="eq-freq" orient="vertical" min="710" max="1420" step="64" v-model="app.cfg.audio.equalizer.frequencies[5]" @change="changeFreq(5)">
|
|
<input type="number" class="eq-q" orient="vertical" min="0" max="5" step="0.1" v-model="app.cfg.audio.equalizer.Q[5]" @change="changeQ(5)">
|
|
</div>
|
|
<div class="input-container">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[6]" @change="changeGain(6)">
|
|
<input tabindex="0" type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[6]" @change="changeGain(6)">
|
|
<input type="number" class="eq-freq" orient="vertical" min="1420" max="2840" step="128" v-model="app.cfg.audio.equalizer.frequencies[6]" @change="changeFreq(6)">
|
|
<input type="number" class="eq-q" orient="vertical" min="0" max="5" step="0.1" v-model="app.cfg.audio.equalizer.Q[6]" @change="changeQ(6)">
|
|
</div>
|
|
<div class="input-container">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[7]" @change="changeGain(7)">
|
|
<input tabindex="0" type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[7]" @change="changeGain(7)">
|
|
<input type="number" class="eq-freq" orient="vertical" min="2840" max="5680" step="256" v-model="app.cfg.audio.equalizer.frequencies[7]" @change="changeFreq(7)">
|
|
<input type="number" class="eq-q" orient="vertical" min="0" max="5" step="0.1" v-model="app.cfg.audio.equalizer.Q[7]" @change="changeQ(7)">
|
|
</div>
|
|
<div class="input-container">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[8]" @change="changeGain(8)">
|
|
<input tabindex="0" type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[8]" @change="changeGain(8)">
|
|
<input type="number" class="eq-freq" orient="vertical" min="5680" max="11360" step="512" v-model="app.cfg.audio.equalizer.frequencies[8]" @change="changeFreq(8)">
|
|
<input type="number" class="eq-q" orient="vertical" min="0" max="5" step="0.1" v-model="app.cfg.audio.equalizer.Q[8]" @change="changeQ(8)">
|
|
</div>
|
|
<div class="input-container">
|
|
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[9]" @change="changeGain(9)">
|
|
<input tabindex="0" type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer.gain[9]" @change="changeGain(9)">
|
|
<input type="number" class="eq-freq" orient="vertical" min="11360" max="22720" step="1024" v-model="app.cfg.audio.equalizer.frequencies[9]" @change="changeFreq(9)">
|
|
<input type="number" class="eq-q" orient="vertical" min="0" max="5" step="0.1" v-model="app.cfg.audio.equalizer.Q[9]" @change="changeQ(9)">
|
|
</div>
|
|
</div>
|
|
</br>
|
|
<div class="reset-button md-btn" @click="resetGain()">{{$root.getLz('term.reset')}}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
|
|
<script>
|
|
Vue.component('eq-view', {
|
|
template: '#eq-view',
|
|
data: function () {
|
|
return {
|
|
app: this.$root,
|
|
|
|
}
|
|
},
|
|
props: ["src", "url"],
|
|
mounted() {
|
|
|
|
},
|
|
methods: {
|
|
close() {
|
|
app.resetState()
|
|
},
|
|
changePreamp() {
|
|
CiderAudio.audioNodes.preampNode.gain.value = app.cfg.audio.equalizer.preamp;
|
|
},
|
|
changeMix() {
|
|
for (var i = 0; i < 10; i++) {
|
|
CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix
|
|
}
|
|
},
|
|
changeGain(i) {
|
|
CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix
|
|
},
|
|
changeFreq(i) {
|
|
CiderAudio.audioNodes.audioBands[i].frequency.value = app.cfg.audio.equalizer.frequencies[i]
|
|
},
|
|
changeQ(i) {
|
|
CiderAudio.audioNodes.audioBands[i].Q.value = app.cfg.audio.equalizer.Q[i]
|
|
},
|
|
resetGain() {
|
|
this.app.cfg.audio.equalizer = {
|
|
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
|
'gain': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
'Q': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
'preamp': 0,
|
|
'mix': 1,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)
|
|
}
|
|
},
|
|
|
|
changePreset() {
|
|
|
|
switch (app.cfg.audio.equalizer.preset) {
|
|
|
|
case "default":
|
|
this.app.cfg.audio.equalizer = {
|
|
'preset': 'default',
|
|
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
|
'gain': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
'Q': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
'preamp': 0,
|
|
'mix': 1,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)}
|
|
break;
|
|
|
|
case "boostBrightness":
|
|
this.app.cfg.audio.equalizer = {
|
|
'preset': 'boostBrightness',
|
|
'frequencies': [32, 63, 125, 250, 466, 1000, 2000, 4000, 8000, 20000],
|
|
'gain': [0, 0, 0, 0, -2, 0, 0, 0, 0, 10],
|
|
'Q': [1, 1, 1, 1, 0.6, 1, 1, 1, 1, 0.1],
|
|
'preamp': 0,
|
|
'mix': 1,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)}
|
|
break;
|
|
|
|
case "warmth":
|
|
this.app.cfg.audio.equalizer = {
|
|
'preset': 'warmth',
|
|
'frequencies': [32, 75, 125, 197, 500, 1000, 2000, 3040, 8000, 16000],
|
|
'gain': [0, 2.1, 0, 0.8, 0, 0, 0, -1.5, 0, 0],
|
|
'Q': [1, 0.7, 1, 1.5, 1, 1, 1, 2, 1, 1],
|
|
'preamp': 0,
|
|
'mix': 1,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)}
|
|
break;
|
|
|
|
case "acoustic":
|
|
this.app.cfg.audio.equalizer = {
|
|
'preset': 'acoustic',
|
|
'frequencies': [32, 75, 125, 220, 700, 1000, 2000, 4000, 10000, 16000],
|
|
'gain': [0, -8, 0, -0.1, -3, 0, 0, 0, 4, 0],
|
|
'Q': [1, 0.2, 1, 2.0, 1.4, 1, 1, 1, 0.1, 1],
|
|
'preamp': 0,
|
|
'mix': 1,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)}
|
|
break;
|
|
|
|
case "clearVocal":
|
|
this.app.cfg.audio.equalizer = {
|
|
'preset': 'clearVocal',
|
|
'frequencies': [20, 63, 125, 250, 400, 1000, 2000, 4000, 8000, 20000],
|
|
'gain': [-22, 0, 0, 0, -3, 0, 1.8, 0, 0, 3.5],
|
|
'Q': [0.3, 1, 1, 1, 2.0, 1, 0.7, 1, 1, 0.8],
|
|
'preamp': 0,
|
|
'mix': 1,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)}
|
|
break;
|
|
|
|
case "instrumentClarity":
|
|
this.app.cfg.audio.equalizer = {
|
|
'preset': 'instrumentClarity',
|
|
'frequencies': [20, 63, 155, 250, 500, 1000, 2000, 5000, 11000, 16000],
|
|
'gain': [-15, 0, -3, 0, 0, 0, 0, 3.1, 0, 0],
|
|
'Q': [0.5, 1, 2, 1, 1, 1, 1, 1.5, 0.1, 1],
|
|
'preamp': 0,
|
|
'mix': 1,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)}
|
|
break;
|
|
|
|
case "smileyFace":
|
|
this.app.cfg.audio.equalizer = {
|
|
'preset': 'smileyFace',
|
|
'frequencies': [35, 63, 125, 250, 500, 800, 2000, 4000, 8000, 20000],
|
|
'gain': [5, 0, 0, 0, 0, -5, 0, 0, 0, 5],
|
|
'Q': [0.1, 1, 1, 1, 1, 0.6, 1, 1, 1, 0.2],
|
|
'preamp': 0,
|
|
'mix': 1,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)}
|
|
break;
|
|
|
|
case "reduceHarshness":
|
|
this.app.cfg.audio.equalizer = {
|
|
'preset': 'reduceHarshness',
|
|
'frequencies': [32, 63, 125, 250, 500, 1128, 2000, 4057, 8000, 16000],
|
|
'gain': [0, 0, 0, 0, 0, 2, 0, -6.4, 0, 0],
|
|
'Q': [1, 1, 1, 1, 1, 2, 1, 1, 1, 1],
|
|
'preamp': 0,
|
|
'mix': 1,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)}
|
|
break;
|
|
|
|
case "tightPerc":
|
|
this.app.cfg.audio.equalizer = {
|
|
'preset': 'tightPerc',
|
|
'frequencies': [20, 63, 125, 250, 402, 1000, 1677, 3000, 8000, 11000],
|
|
'gain': [-6.5, 0, 0, 0, -4.5, 0, -1.5, 3, 0, 0.1],
|
|
'Q': [0.8, 1, 1, 1, 6, 1, 0.8, 0.8, 1, 1],
|
|
'preamp': 0,
|
|
'mix': 1,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)}
|
|
break;
|
|
case "Maikiwi":
|
|
this.app.cfg.audio.equalizer = {
|
|
'preset': 'Maikiwi',
|
|
'frequencies': [20, 63, 160, 250, 500, 1000, 2000, 3500, 8000, 20000],
|
|
'gain': [1.5, 0, -0.7, 0, 0, 0, 0, 0.5, 0, 1.2],
|
|
'Q': [0.4, 1, 2.9, 1, 1, 1, 1, 1.5, 1, 0.1],
|
|
'preamp': 0,
|
|
'mix': 1.2,
|
|
}
|
|
for (var i = 0; i < 10; i++) {
|
|
this.changeGain(i)
|
|
this.changeFreq(i)
|
|
this.changeQ(i)}
|
|
break;
|
|
}
|
|
|
|
}
|
|
}});
|
|
</script> |