Commit Graph

308 Commits

Author SHA1 Message Date
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
3dtours 57fd110fe3 fix: add capture flag to Ctrl+S keydown handler to prevent browser save 2026-07-25 20:57:43 +07:00
3dtours c1a3d3a6dd feat: Ctrl+S saves current tab (piano roll, section, audio) or project + all dirty tabs 2026-07-25 20:54:23 +07:00
3dtours fde9a91c9b fix: đã sửa lỗi MIDI note bị flicker 2026-07-25 20:46:53 +07:00
3dtours f2d02a358f fix: skip st.notes sync when draggedNote active (prevents brush flicker) 2026-07-25 20:45:24 +07:00
3dtours ce319573ab fix: move Ctrl+A useEffect after selectedNoteIds declaration 2026-07-25 20:39:54 +07:00
3dtours 29b682e3ba fix: move Ctrl+A useEffect after notes declaration to avoid TDZ error 2026-07-25 20:38:53 +07:00
3dtours f4ec769650 fix: restore useEffect sync for st.notes, remove render-phase TDZ error 2026-07-25 20:36:21 +07:00
3dtours 966e673fae fix: replace sync useEffect with render-phase guard to prevent flicker 2026-07-25 20:31:17 +07:00
3dtours a9f56d0fcd fix: drag clamp, pitch anchor, Ctrl+A, marquee dir, resize snap 2026-07-25 20:30:01 +07:00
3dtours 8d83a46e08 fix: MIDI item playback respects visual duration + scale flicker guard 2026-07-25 20:14:53 +07:00
3dtours 8fdf93f5d1 fix: đã sửa lỗi MIDI note ghi âm xuất hiện realtime 2026-07-25 20:04:42 +07:00
3dtours 8849f33d07 fix: extend piano roll playhead duration to 10min during recording 2026-07-25 20:03:09 +07:00
3dtours 97855f47d1 fix: add try-catch + nextMetronomeBeatRef init to startPianoRollRecording 2026-07-25 19:56:19 +07:00
3dtours d858628a8f fix: sync notes from st.notes + set isPlaying for playhead + metronome count-in 2026-07-25 19:53:45 +07:00
3dtours f3ad111376 fix: set subTab buffer + fix double stop() call + realtime playhead 2026-07-25 19:48:00 +07:00
3dtours 7f681f23c1 fix: không ghi âm và ghi note MIDI và khong xuất hiện realtime 2026-07-25 19:47:17 +07:00
3dtours 6cc3ae6ab8 fix: use startSubTabPlayback for piano roll recording + pass recTempMidiNotes prop 2026-07-25 19:39:55 +07:00
3dtours 432dec635a fix: không ghi âm và ghi note MIDI 2026-07-25 19:36:56 +07:00
3dtours e6dd7ff13c fix: realtime note display + MIDI key sound via refs 2026-07-25 18:58:30 +07:00
3dtours da760dbb86 fix: MIDI record + key highlight on MIDI key press 2026-07-25 18:55:31 +07:00
3dtours c3edda5c81 fix: call midiRec.start() so MIDI recorder receives messages 2026-07-25 18:44:33 +07:00
3dtours 68eb6d5261 fix: replace stale snapToScale ref with st.snapToScale 2026-07-25 18:39:47 +07:00
3dtours 513a6b082c fix: record midi - setSelectedMidiInputId, snapToScale persist, space stops recording 2026-07-25 18:37:02 +07:00
3dtours 1151f1afa0 feat: bật tính năng ghi midi note trong piano roll tab 2026-07-25 18:36:11 +07:00
3dtours 5af8536e53 fix: add recTempMidiNotes to PianoRollTabEditor props 2026-07-25 18:31:35 +07:00
3dtours dffb8562df fix: piano roll recording - playhead, realtime notes, recording display 2026-07-25 18:30:16 +07:00
3dtours 9498a0d4b0 fix: piano roll record via ARM + INPUT routes to piano roll tab 2026-07-25 18:25:29 +07:00
3dtours 2c91c0156a feat: add Omni MIDI option in piano roll INPUT select 2026-07-25 18:20:42 +07:00
3dtours cdff404437 fix: lỗi không mở được piano roll và thêm các tính năng cho AI 2026-07-25 17:29:35 +07:00
3dtours 1b711ef014 feat: piano roll transport, ARM/INPUT, AI bar range, MIDI recording
- Transport: play/stop/back/next/record buttons in piano roll toolbar
- ARM toggle + MIDI input device selector next to Snap to Scale
- AI bar range selector (bar X to bar Y) for Copilot MIDI generation
- handleAISend detects active piano roll tab and routes MIDI prompt
- Added selectedMidiInputId state + handleMidiInputSelect for MIDI input
2026-07-25 17:22:24 +07:00
3dtours 1a97a4b33b fix: quy định kết quả AI copilot trả về đúng tab đang mở 2026-07-25 16:35:54 +07:00
3dtours a59a36ec90 fix: use configured AI provider for piano roll prompt, not hardcoded
Piano roll AI prompt now selects provider via same logic as main AI
handler (aiProviders, selectedProviderId, baseUrl, apiKey, model).
No longer hardcodes provider:'openai', model:'gpt-4o'.
2026-07-25 16:26:47 +07:00
3dtours 7dd6300500 fix: guard AI response parse against undefined textResponse 2026-07-25 16:21:59 +07:00
3dtours 5628802e08 refactor: remove piano roll AI prompt, reuse Copilot for MIDI gen
- Removed aiPrompt/aiLoading state and handleAIPrompt from PianoRollTabEditor
- Removed AI prompt input UI from piano roll toolbar
- handleAISend now detects active piano roll tab and routes
  prompts to MIDI note generation, appends notes to the tab
2026-07-25 16:19:44 +07:00
3dtours 2fed3eee0b fix: sửa lỗi snap to scale trong piano roll tab 2026-07-25 12:44:08 +07:00