temporary eq with dynamic values
This commit is contained in:
parent
b4293cf065
commit
195d1f7bcc
4 changed files with 92 additions and 71 deletions
|
@ -27,7 +27,7 @@ export class ConfigStore {
|
||||||
"volume": 1,
|
"volume": 1,
|
||||||
"lastVolume": 1,
|
"lastVolume": 1,
|
||||||
"muted": false,
|
"muted": false,
|
||||||
"quality": "990",
|
"quality": "256",
|
||||||
"seamless_audio": true,
|
"seamless_audio": true,
|
||||||
"normalization": false,
|
"normalization": false,
|
||||||
"spatial": false,
|
"spatial": false,
|
||||||
|
@ -51,16 +51,9 @@ export class ConfigStore {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"equalizer": {
|
"equalizer": {
|
||||||
'60' : 0,
|
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
||||||
'170': 0 ,
|
'gain': [0,0,0,0,0,0,0,0,0,0],
|
||||||
'310': 0 ,
|
'Q' : [1,1,1,1,1,1,1,1,1,1]
|
||||||
'600': 0 ,
|
|
||||||
'1000': 0 ,
|
|
||||||
'3000': 0 ,
|
|
||||||
'6000': 0 ,
|
|
||||||
'12000': 0 ,
|
|
||||||
'14000': 0 ,
|
|
||||||
'16000': 0 ,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"visual": {
|
"visual": {
|
||||||
|
|
|
@ -94,13 +94,15 @@ var CiderAudio = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
equalizer: function (){
|
equalizer: function (){
|
||||||
const BANDS = [60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000];
|
let BANDS = app.cfg.audio.equalizer.frequencies;
|
||||||
|
let GAIN = app.cfg.audio.equalizer.gain;
|
||||||
|
let Q = app.cfg.audio.equalizer.Q;
|
||||||
CiderAudio.audioNodes.audioBands = {};
|
CiderAudio.audioNodes.audioBands = {};
|
||||||
|
|
||||||
BANDS.forEach((band, i) => {
|
BANDS.forEach((band, i) => {
|
||||||
const filter = CiderAudio.context.createBiquadFilter();
|
const filter = CiderAudio.context.createBiquadFilter();
|
||||||
|
|
||||||
CiderAudio.audioNodes.audioBands[band] = filter;
|
CiderAudio.audioNodes.audioBands[i] = filter;
|
||||||
|
|
||||||
if (i === 0) {
|
if (i === 0) {
|
||||||
// The first filter, includes all lower frequencies
|
// The first filter, includes all lower frequencies
|
||||||
|
@ -111,8 +113,9 @@ var CiderAudio = {
|
||||||
} else {
|
} else {
|
||||||
filter.type = "peaking";
|
filter.type = "peaking";
|
||||||
}
|
}
|
||||||
filter.frequency.value = band;
|
filter.frequency.value = BANDS[i];
|
||||||
filter.gain.value = 0;
|
filter.gain.value = GAIN[i];
|
||||||
|
filter.Q.value = Q[i];
|
||||||
if (i == 0){
|
if (i == 0){
|
||||||
if (app.cfg.audio.spatial) {
|
if (app.cfg.audio.spatial) {
|
||||||
CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination);
|
CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination);
|
||||||
|
@ -122,10 +125,10 @@ var CiderAudio = {
|
||||||
CiderAudio.audioNodes.gainNode.connect(filter);
|
CiderAudio.audioNodes.gainNode.connect(filter);
|
||||||
}
|
}
|
||||||
} else if (i === BANDS.length - 1) {
|
} else if (i === BANDS.length - 1) {
|
||||||
CiderAudio.audioNodes.audioBands[BANDS[i - 1]].connect(filter);
|
CiderAudio.audioNodes.audioBands[i - 1].connect(filter);
|
||||||
} else {
|
} else {
|
||||||
CiderAudio.audioNodes.audioBands[BANDS[i - 1]].connect(filter);
|
CiderAudio.audioNodes.audioBands[i - 1].connect(filter);
|
||||||
filter.connect(CiderAudio.context.destination);
|
filter.connect(CiderAudio.context.destination);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -5701,10 +5701,10 @@ body.no-gpu {
|
||||||
|
|
||||||
.equalizer-panel {
|
.equalizer-panel {
|
||||||
.modal-window {
|
.modal-window {
|
||||||
height: 300px;
|
height: 330px;
|
||||||
max-height: 300px;
|
max-height: 330px;
|
||||||
width: 400px;
|
width: 630px;
|
||||||
max-width: 400px;
|
max-width: 630px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
.info-header {
|
.info-header {
|
||||||
|
@ -5751,20 +5751,34 @@ body.no-gpu {
|
||||||
display: block;
|
display: block;
|
||||||
.input-container{
|
.input-container{
|
||||||
display: inline-grid;
|
display: inline-grid;
|
||||||
width: 35px;
|
width: 52px;
|
||||||
justify-items: center;
|
justify-items: center;
|
||||||
font-size: 0.7em;
|
font-size: 0.7em;
|
||||||
}
|
}
|
||||||
|
.freq-header{
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
.reset-button{
|
.reset-button{
|
||||||
width: 50%;
|
width: 50%;
|
||||||
margin-left: 25%;
|
margin-left: 25%;
|
||||||
}
|
}
|
||||||
|
input.eq-slider {
|
||||||
|
-webkit-appearance: slider-vertical;
|
||||||
|
width: 5%;
|
||||||
|
}
|
||||||
|
input[type="number"]{
|
||||||
|
padding: unset;
|
||||||
|
width: 55px;
|
||||||
|
}
|
||||||
|
.header input.eq-slider {
|
||||||
|
-webkit-appearance: slider-vertical;
|
||||||
|
width: 5%;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
input.eq-slider {
|
|
||||||
-webkit-appearance: slider-vertical;
|
|
||||||
width: 5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
@import url("less/compact.less");
|
@import url("less/compact.less");
|
||||||
|
|
|
@ -8,55 +8,71 @@
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<!-- BANDS = [60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000]; -->
|
<!-- BANDS = [60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000]; -->
|
||||||
<div class="inputs-container">
|
<div class="inputs-container">
|
||||||
<div class="input-container">
|
<div class="input-container header">
|
||||||
{{app.cfg.audio.equalizer['60']}}
|
Gain
|
||||||
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer['60']" @change="changeGain('60')">
|
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" >
|
||||||
60
|
<div class="freq-header">Freq</div>
|
||||||
|
<div>Q</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
{{app.cfg.audio.equalizer['170']}}
|
{{app.cfg.audio.equalizer.gain[0]}}
|
||||||
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer['170']" @change="changeGain('170')">
|
<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)">
|
||||||
170
|
<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>
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
{{app.cfg.audio.equalizer['310']}}
|
{{app.cfg.audio.equalizer.gain[1]}}
|
||||||
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer['310']" @change="changeGain('310')">
|
<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)">
|
||||||
310
|
<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>
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
{{app.cfg.audio.equalizer['600']}}
|
{{app.cfg.audio.equalizer.gain[2]}}
|
||||||
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer['600']" @change="changeGain('600')">
|
<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)">
|
||||||
600
|
<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>
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
{{app.cfg.audio.equalizer['1000']}}
|
{{app.cfg.audio.equalizer.gain[3]}}
|
||||||
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer['1000']" @change="changeGain('1000')">
|
<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)">
|
||||||
1000
|
<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>
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
{{app.cfg.audio.equalizer['3000']}}
|
{{app.cfg.audio.equalizer.gain[4]}}
|
||||||
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer['3000']" @change="changeGain('3000')">
|
<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)">
|
||||||
3000
|
<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>
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
{{app.cfg.audio.equalizer['6000']}}
|
{{app.cfg.audio.equalizer.gain[5]}}
|
||||||
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer['6000']" @change="changeGain('6000')">
|
<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)">
|
||||||
6000
|
<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>
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
{{app.cfg.audio.equalizer['12000']}}
|
{{app.cfg.audio.equalizer.gain[6]}}
|
||||||
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer['12000']" @change="changeGain('12000')">
|
<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)">
|
||||||
12000
|
<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>
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
{{app.cfg.audio.equalizer['14000']}}
|
{{app.cfg.audio.equalizer.gain[7]}}
|
||||||
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer['14000']" @change="changeGain('14000')">
|
<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)">
|
||||||
14000
|
<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>
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
{{app.cfg.audio.equalizer['16000']}}
|
{{app.cfg.audio.equalizer.gain[8]}}
|
||||||
<input type="range" class="eq-slider" orient="vertical" min="-12" max="12" step="0.1" v-model="app.cfg.audio.equalizer['16000']" @change="changeGain('16000')">
|
<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)">
|
||||||
16000
|
<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">
|
||||||
|
{{app.cfg.audio.equalizer.gain[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>
|
||||||
</div>
|
</div>
|
||||||
</br>
|
</br>
|
||||||
|
@ -84,21 +100,16 @@
|
||||||
app.resetState()
|
app.resetState()
|
||||||
},
|
},
|
||||||
changeGain(i) {
|
changeGain(i) {
|
||||||
CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer[i]
|
CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i]
|
||||||
|
},
|
||||||
|
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(){
|
resetGain(){
|
||||||
this.app.cfg.audio.equalizer = {
|
this.app.cfg.audio.equalizer.gain = [0,0,0,0,0,0,0,0,0,0]
|
||||||
'60' : 0,
|
|
||||||
'170': 0 ,
|
|
||||||
'310': 0 ,
|
|
||||||
'600': 0 ,
|
|
||||||
'1000': 0 ,
|
|
||||||
'3000': 0 ,
|
|
||||||
'6000': 0 ,
|
|
||||||
'12000': 0 ,
|
|
||||||
'14000': 0 ,
|
|
||||||
'16000': 0 ,
|
|
||||||
}
|
|
||||||
for (var i in this.app.cfg.audio.equalizer){
|
for (var i in this.app.cfg.audio.equalizer){
|
||||||
this.changeGain(i)
|
this.changeGain(i)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue