3dtours
27d9556a9d
fix: brush draw pitch revisit by comparing lastDrawnPitch
2026-07-26 10:55:21 +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
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
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
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
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
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
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
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
6cc3ae6ab8
fix: use startSubTabPlayback for piano roll recording + pass recTempMidiNotes prop
2026-07-25 19:39:55 +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
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
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