Commit b24ade7
committed
fix(web): length / playback / preview consistency audit
The Length input could leave playback in a state that drifted from
the visible timeline. Audit + fixes:
- setTotalMs now clamps every block to the new total: blocks past
the new end shrink to a 20ms tail at the very edge instead of
vanishing; partially-overflowing blocks truncate. NaN-safe.
- Compose now stops the live pattern handle when totalMs or lanes
change mid-playback; otherwise a length tweak left the audible
pattern out of sync with what the playhead and waveform showed.
- onViewChange clamps view to [0, totalMs] so a length shrink
doesn't leave the preview pointing past the rendered buffer.
- play() now drives a `playing` ref → PreviewPanel shows a small
red "playing" indicator, and onEnded clears it.
- play() schedules a belt-and-braces timeout to clear the playing
flag after the visual span in case onEnded never fires.1 parent 0453ac4 commit b24ade7
3 files changed
Lines changed: 63 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
284 | 284 | | |
285 | 285 | | |
286 | 286 | | |
287 | | - | |
| 287 | + | |
288 | 288 | | |
289 | 289 | | |
290 | 290 | | |
| |||
298 | 298 | | |
299 | 299 | | |
300 | 300 | | |
301 | | - | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
302 | 309 | | |
303 | 310 | | |
304 | 311 | | |
| |||
310 | 317 | | |
311 | 318 | | |
312 | 319 | | |
313 | | - | |
| 320 | + | |
314 | 321 | | |
315 | 322 | | |
316 | 323 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
392 | 392 | | |
393 | 393 | | |
394 | 394 | | |
395 | | - | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
396 | 413 | | |
397 | 414 | | |
398 | 415 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
| 98 | + | |
98 | 99 | | |
99 | 100 | | |
100 | 101 | | |
101 | 102 | | |
102 | | - | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
103 | 110 | | |
104 | 111 | | |
105 | 112 | | |
106 | 113 | | |
107 | 114 | | |
108 | | - | |
109 | | - | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
110 | 119 | | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
111 | 129 | | |
112 | 130 | | |
113 | 131 | | |
| |||
408 | 426 | | |
409 | 427 | | |
410 | 428 | | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
411 | 442 | | |
412 | 443 | | |
413 | 444 | | |
| |||
524 | 555 | | |
525 | 556 | | |
526 | 557 | | |
527 | | - | |
| 558 | + | |
528 | 559 | | |
529 | 560 | | |
530 | 561 | | |
| |||
0 commit comments