(cx)
| 775 | const knob = el.querySelector(".fader-knob"); |
| 776 | const rect = el.getBoundingClientRect(); |
| 777 | const set = (cx) => { |
| 778 | let v = (cx - rect.left) / rect.width; |
| 779 | v = Math.max(0, Math.min(1, v)); |
| 780 | state.vols[id] = v; |
| 781 | const pct = Math.round(v * 100) + "%"; |
| 782 | fill.style.width = pct; |
| 783 | knob.style.left = pct; |
| 784 | if (engine && laneActive(id)) engine.setGain(id, v); |
| 785 | }; |
| 786 | set(e.clientX); |
| 787 | el.setPointerCapture(e.pointerId); |
| 788 | const mv = (ev) => set(ev.clientX); |