Commit Graph

538 Commits

Author SHA1 Message Date
3dtours b1bbf567ab fix(piano-roll): seek-to-start restarts playback
- Add seekPlaybackTo(time) that stops, updates refs, reschedules
  MIDI, and restarts playback for both sub-tab and main timeline
- 'Quay lại đầu' and 'Đầu vùng chọn' buttons use seekPlaybackTo
2026-07-26 12:22:51 +07:00
3dtours 8204bc016d fix: đã sửa lỗi stop và nút loop 2026-07-26 12:21:02 +07:00
3dtours b0d7f35a1e fix(piano-roll): loop only on btn + instant stop
- Sub-tab selection loop only active when st.isLooping is true
- End-of-playback loop uses st.isLooping, not global isLoopingSelection
- SonicSF.stopAll() sets gain 0 and stops oscillators immediately
2026-07-26 12:16:01 +07:00
3dtours 653c0747cb fix: đã sửa lỗi click vị trí mới cho playhead 2026-07-26 12:12:48 +07:00
3dtours 4e880850f5 fix(piano-roll): playhead seek + sound cracking
- Piano roll ruler click during playback now seeks and continues playing
- ADSR envelope uses linearRampToValueAtTime for crack-free release
- stopAll ramps gain to 0 in 20ms before stopping oscillators
2026-07-26 12:03:29 +07:00
3dtours 1ffdec68c6 fix: ruler click 200ms timeout + default instrument attackTime 0.03 + safe ramp 2026-07-26 11:51:50 +07:00
3dtours 523a754949 fix: remove grab handle e.stopPropagation blocking ruler clicks 2026-07-26 11:48:21 +07:00
3dtours 79999065a7 fix: ruler click moves playhead, drag moves range 2026-07-26 11:45:47 +07:00
3dtours e18b261943 fix: ruler range drag/move, default cursor, SonicSF smooth stopAll 2026-07-26 11:42:06 +07:00
3dtours 7601cc72c9 fix: ruler click playhead update using available props onStop+onPlayPause 2026-07-26 11:36:55 +07:00
3dtours 5e096b5594 fix: remove range auto-loop + gain fade-out for reschedule crackling 2026-07-26 11:34:02 +07:00
3dtours d3a3adca8a fix: realtime velocity with updatedNotes + ruler restart without onStop 2026-07-26 11:28:47 +07:00
3dtours b6b1faf083 feat: realtime velocity, ruler play click, export MIDI button 2026-07-26 11:20:19 +07:00
3dtours bf4f2a5f11 fix: đã sửa lỗi thay đổi instrument thì bị stop 2026-07-26 11:15:09 +07:00
3dtours 90ca8f484b fix: restore isPlaying after stopAllPlayback on instrument change 2026-07-26 11:13:50 +07:00
3dtours 9717470bb6 fix: instrument change keeps loop playback alive 2026-07-26 11:10:31 +07:00
3dtours e57f6d96d9 fix: MIDI tab real-time instrument change - restart playback 2026-07-26 11:07:37 +07:00
3dtours 5b500ebdf3 fix: remove MIDI tab loop button + Ctrl+click clear range 2026-07-26 11:03:51 +07:00
3dtours 9438f44052 fix: CC note detection with Y-aware stem matching 2026-07-26 10:59:33 +07:00
3dtours 3901af75b2 fix: đã sửa lỗi vẽ tiếp khi thay đổi pitch 2026-07-26 10:57:01 +07:00
3dtours 27d9556a9d fix: brush draw pitch revisit by comparing lastDrawnPitch 2026-07-26 10:55:21 +07:00
3dtours bc0c2d3279 fix: đã sửa lỗi vẽ lên và trường độ 2026-07-26 10:53:08 +07:00
3dtours 034455598d fix: brush draw per-note duration with noteStartBeats tracking 2026-07-26 10:50:45 +07:00
3dtours 8450bd6de4 fix: brush draw only pitch change + CC velocity skip unchanged 2026-07-26 10:48:16 +07:00
3dtours d2993eee69 fix: brush drawing smooth - track pitch + beat delta 2026-07-26 10:44:37 +07:00
3dtours fe379c45e2 fix: brush shape draw + remove transport + loop repeat sound 2026-07-26 10:41:31 +07:00
3dtours 3ae48f2f2f fix: đã sửa lỗi bị mất không hiển thị midi và vẽ cclane 2026-07-26 10:37:41 +07:00
3dtours d20fafb75e fix: velocity flicker - grid canvas useLayoutEffect sync 2026-07-26 10:29:23 +07:00
3dtours 0b7dd82407 fix: scroll speed matches mouse + CC flicker useLayoutEffect 2026-07-26 10:26:00 +07:00
3dtours 7107a0cc14 fix: brush scroll speed + CC snap + non-selected flicker 2026-07-26 10:21:31 +07:00
3dtours 8ec4b05e21 fix: brush pitch-based scroll + CC velocity per-note paint 2026-07-26 10:14:40 +07:00
3dtours 9237d01f35 fix: auto-scroll continuous + batch CC velocity for selected notes 2026-07-26 10:09:55 +07:00
3dtours a7417b9bfa fix: đã sửa lỗi bị mất không hiển thị midi piano grid 2026-07-26 10:05:23 +07:00
3dtours a765998455 feat: piano roll 4 features - SNAP, velocity selected, auto-scroll, synth button 2026-07-26 09:43:19 +07:00
3dtours bd55d035de fix: đã sửa lỗi MIDI loop 2026-07-26 07:16:17 +07:00
3dtours 8516961d80 fix: đã sửa lỗi chọn range tự do 2026-07-25 22:52:54 +07:00
3dtours c917db200e fix: ruler doc-level drag, remove onMouseMove/onMouseLeave from element, comma fix 2026-07-25 22:50:16 +07:00
3dtours e5196e79c8 fix: use refs for selectionMarquee and notes in doc-level drag handler to avoid stale closure 2026-07-25 22:37:30 +07:00
3dtours ce30289f46 fix: loop reschedule midi, note select in doc-level handler, ctrl+click ruler clear loop 2026-07-25 22:35:23 +07:00
3dtours 5bd92ee186 fix: đã sửa lỗi chọn range trong MIDI marquee và chọn note 2026-07-25 22:34:34 +07:00
3dtours 89f2fed1d9 fix: blue marquee for note select on grid, green loop overlay from ruler drag, notes play once 2026-07-25 22:31:42 +07:00
3dtours 4306ff302a fix: marquee survive mouseleave, loop reschedule midi notes, separate leave/up handlers 2026-07-25 22:20:58 +07:00
3dtours 790a5823f6 fix: đã sửa lỗi chọn range trong MIDI marquee 2026-07-25 22:18:44 +07:00
3dtours fccdb15ad7 fix: piano roll selection marquee green full-height, edge resize, body move, playback min 16 beats, doc-level drag 2026-07-25 22:13:50 +07:00
3dtours a181f7a24d fix: đã sửa lỗi chọn range trong MIDI tab 2026-07-25 21:30:17 +07:00
3dtours 1a5c1eff43 fix: doc-level ruler drag, min 16bars playback, selection overlay, edge/center handles 2026-07-25 21:28:26 +07:00
3dtours 9bfcd1870c fix: loop range playback via st.selectionStart/End + isLooping 2026-07-25 21:21:03 +07:00
3dtours 39680cb95c fix: ruler close needed 4 parens (was 3), closing parent div properly 2026-07-25 21:14:44 +07:00
3dtours 2ce731e6a9 fix: Ctrl+S piano roll + ruler drag selection + paren balance 2026-07-25 21:09:34 +07:00
3dtours 025aba3265 fix: Ctrl+S in piano roll + ruler range selection via drag 2026-07-25 21:04:19 +07:00