diff --git a/copyparty/web/browser.css b/copyparty/web/browser.css
index ba8c8e83..4ac94081 100644
--- a/copyparty/web/browser.css
+++ b/copyparty/web/browser.css
@@ -1474,7 +1474,7 @@ html.y #ops svg circle {
}
.opbox input {
position: relative;
- margin: .5em;
+ margin: .2em;
}
#op_cfg input[type=text] {
top: -.3em;
@@ -1530,8 +1530,16 @@ html.dz input {
.opview input.i {
width: calc(100% - 16.2em);
}
+input.eq_gain[type=range]{
+ writing-mode: vertical-lr;
+ direction: rtl;
+ color: var(--a);
+}
+input.eq_gain[type=text]{
+ width: 1.5em;
+ text-align: center;
+}
input.drc_v,
-input.eq_gain,
input.ssconf_v {
width: 3em;
text-align: center;
diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js
index dc54c258..28462aa8 100644
--- a/copyparty/web/browser.js
+++ b/copyparty/web/browser.js
@@ -2861,9 +2861,9 @@ var afilt = (function () {
swrite('au_eq_amp', r.amp);
swrite('au_eq_chw', r.chw);
- var txt = QSA('input.eq_gain');
+ var gains = QSA('input.eq_gain');
for (var a = 0; a < r.bands.length; a++)
- txt[a].value = r.gains[a];
+ gains[a + gains.length / 2].value = gains[a].value = r.gains[a].toFixed(1);
QS('input.eq_gain[band="amp"]').value = r.amp;
QS('input.eq_gain[band="chw"]').value = r.chw;
@@ -3054,7 +3054,7 @@ var afilt = (function () {
vs = that.value,
v = parseFloat(vs);
- if (!isNum(v) || v + '' != vs)
+ if (!isNum(v) || (v + '' != vs && v.toFixed(1) != vs))
throw new Error('inval band');
if (sb == 'amp')
@@ -3138,9 +3138,9 @@ var afilt = (function () {
ebi('h_drc').textContent = f2f(r.drcn.reduction, 1);
}
- var html = ['