feat(web): master gain slider with -/+ steppers
CI build oscope-of / build-check (push) Has been cancelled
CI build oscope-of / build-check (push) Has been cancelled
The web surface had no master control at all (SC-only via /control/doMaster 0..2). Adds the slider next to Tempo with 0.05 steppers and a live readout, same pattern as the tempo control.
This commit is contained in:
@@ -38,6 +38,7 @@
|
||||
</div>
|
||||
<button id="clear" class="wide">Tout couper</button>
|
||||
<label>Tempo <button id="tempo-minus" class="tempo-step" type="button">-</button><input id="tempo" type="range" min="60" max="180" value="126"><button id="tempo-plus" class="tempo-step" type="button">+</button><span id="tempo-val">126</span></label>
|
||||
<label>Master <button id="master-minus" class="tempo-step" type="button">-</button><input id="master" type="range" min="0" max="2" step="0.05" value="1"><button id="master-plus" class="tempo-step" type="button">+</button><span id="master-val">1.00</span></label>
|
||||
<div class="quant-bar">
|
||||
<span class="quant-label">Quant</span>
|
||||
<button class="quant-btn" data-quant="0.5">½</button>
|
||||
|
||||
@@ -42,6 +42,24 @@ export function init() {
|
||||
tMinus && tMinus.addEventListener("click", () => stepTempo(-1));
|
||||
tPlus && tPlus.addEventListener("click", () => stepTempo(1));
|
||||
|
||||
// Master gain: slider + -/+ steppers (0.05 per click), SC /control/doMaster (0..2)
|
||||
const master = document.getElementById("master");
|
||||
const masterVal = document.getElementById("master-val");
|
||||
const pushMaster = () => {
|
||||
if (masterVal) masterVal.textContent = (+master.value).toFixed(2);
|
||||
send("/control/doMaster", +master.value);
|
||||
};
|
||||
master && master.addEventListener("input", pushMaster);
|
||||
const stepMaster = (d) => {
|
||||
if (!master) return;
|
||||
master.value = Math.max(+master.min, Math.min(+master.max, +master.value + d)).toFixed(2);
|
||||
pushMaster();
|
||||
};
|
||||
const mMinus = document.getElementById("master-minus");
|
||||
const mPlus = document.getElementById("master-plus");
|
||||
mMinus && mMinus.addEventListener("click", () => stepMaster(-0.05));
|
||||
mPlus && mPlus.addEventListener("click", () => stepMaster(0.05));
|
||||
|
||||
// Filter
|
||||
const filt = document.getElementById("filter");
|
||||
filt && filt.addEventListener("input", () => send("/control/fx/filter", +filt.value));
|
||||
|
||||
Reference in New Issue
Block a user