diff --git a/web/audio_wave.js b/web/audio_wave.js index 1918263..941317e 100644 --- a/web/audio_wave.js +++ b/web/audio_wave.js @@ -64,10 +64,10 @@ function setupWave(node) { const bar = document.createElement("div"); bar.style.cssText = "display:flex;gap:6px;align-items:center;font-size:10px;color:#bbb;flex-wrap:wrap;"; const mk = (t) => { const b = document.createElement("button"); b.textContent = t; b.style.cssText = "font-size:10px;padding:1px 6px;"; return b; }; - const playBtn = mk("▶ play"), upBtn = mk("upload"); + const playBtn = mk("▶ play"), upBtn = mk("upload"), clearBtn = mk("clear splits"); const readout = document.createElement("span"); readout.textContent = "0.00 / 0.00s"; const hint = document.createElement("span"); hint.textContent = "click=seek · dblclick=add split · shift-click a split=remove"; - bar.append(playBtn, upBtn, readout, hint); + bar.append(playBtn, upBtn, clearBtn, readout, hint); const canvas = document.createElement("canvas"); canvas.width = 900; canvas.height = 170; canvas.style.cssText = "width:100%;height:170px;background:#141418;border-radius:4px;cursor:pointer;"; @@ -190,6 +190,7 @@ function setupWave(node) { else { st.audio.pause(); st.playing = false; playBtn.textContent = "▶ play"; } }; st.audio.onended = () => { st.playing = false; playBtn.textContent = "▶ play"; draw(); }; + clearBtn.onclick = () => { st.splits = []; serialize(); syncNotesBox(); draw(); }; // wipe stale user splits upBtn.onclick = () => { const inp = document.createElement("input"); inp.type = "file"; inp.accept = "audio/*";