Commit Graph

  • 14e3a561a3 feat: instrument selector modal 2-column layout 3dtours 2026-07-28 07:20:01 +07:00
  • d0def4bf1e feat: auto-scan soundfont for Synth instrument list 3dtours 2026-07-28 07:06:37 +07:00
  • e68fe27d7f fix: sửa lỗi ctrl+click+drag để copy các items trong MAIN SESSION và SECTION-TAB 3dtours 2026-07-27 22:33:36 +07:00
  • 1dbece1fc7 fix: multi-item drag mousemove didn't handle clips 3dtours 2026-07-27 22:32:11 +07:00
  • 1ca2ec6d01 fix: Ctrl+click+drag copies pre-toggle selection, not post-toggle 3dtours 2026-07-27 22:31:29 +07:00
  • 292c787a31 fix: multi-item MOVE also discarded cross-track updates 3dtours 2026-07-27 22:27:24 +07:00
  • b84507bd64 fix: multi-ids duplicate only returned changes for drag-start track 3dtours 2026-07-27 22:26:55 +07:00
  • 0992879b49 fix: selectedItemIds snapshot includes toggled item for drag 3dtours 2026-07-27 22:25:11 +07:00
  • 74fdc2b303 fix: pending drag effect calls stale handleSectionItemDragStart 3dtours 2026-07-27 22:21:17 +07:00
  • c99527e687 refactor: Ctrl+click toggles selection, Ctrl+click+drag copies group 3dtours 2026-07-27 22:14:01 +07:00
  • e055e8b5c8 feat: Ctrl+click deselect + global empty-area sweep 3dtours 2026-07-27 21:59:33 +07:00
  • 85ad22ee4f fix: sweep select now covers all tracks 3dtours 2026-07-27 21:54:12 +07:00
  • b8dfc9b211 fix: sweep select stale closure + add sweepSelectRef 3dtours 2026-07-27 21:51:53 +07:00
  • fd24c2dcd8 feat: Ctrl+drag sweep select + multi-item copy/drag 3dtours 2026-07-27 21:46:20 +07:00
  • 80a5352645 feat: Ctrl+drag on ruler creates global selection 3dtours 2026-07-27 21:38:23 +07:00
  • 4b732844c9 fix: sửa lỗi hiển thị icon trước menu item ở menu context trong MAIN SESSION 3dtours 2026-07-27 21:38:10 +07:00
  • 430e87445e fix: context menu icons only appear on first open 3dtours 2026-07-27 21:35:53 +07:00
  • 74992f7b55 fix: sửa lỗi mỗi track đều chỉ chơi instrument của track mình 3dtours 2026-07-27 21:35:42 +07:00
  • 8beef7cb4d fix: multi-track ARM routes MIDI to all armed tracks 3dtours 2026-07-27 21:31:10 +07:00
  • 08cd4d72cf fix: sửa lỗi khi set instrument cho track 2 thì khi vẽ midi note ở track 1 cũng phát âm thanh từ track 2 3dtours 2026-07-27 21:28:43 +07:00
  • 081a17d537 docs: add _playNoteFluid else branch fix to wiki 3dtours 2026-07-27 21:27:04 +07:00
  • 6dec171af7 fix: _playNoteFluid else branch leaked other track's SF program 0 3dtours 2026-07-27 21:26:52 +07:00
  • e38391ac7d fix: brush draw preview note uses wrong instrument 3dtours 2026-07-27 20:52:49 +07:00
  • b42190e6bc feat: implement md/41_INSTRUMENT.md spec 3dtours 2026-07-27 20:48:14 +07:00
  • 40502eda86 fix: pass channel+synth_engine to playNote in all MIDI playback paths 3dtours 2026-07-27 20:42:45 +07:00
  • f429f6b1d3 docs: verify instrument assignment rules for MAIN SESSION 3dtours 2026-07-27 20:32:30 +07:00
  • 912fb2d354 fix: fallback channel for unconfigured tracks uses index 3dtours 2026-07-27 20:19:50 +07:00
  • 59cf1d67db fix: store midiChannel on track object for consistent per-track playback 3dtours 2026-07-27 20:19:20 +07:00
  • 0420eccb82 feat: auto-loop on range selection + per-track instrument isolation 3dtours 2026-07-27 20:16:55 +07:00
  • b5344e41f7 fix: default instrument for tracks without instrument set 3dtours 2026-07-27 20:09:49 +07:00
  • 8c5d71c2f0 fix: sửa lỗi hiển thị của midi ghost note 3dtours 2026-07-27 20:09:10 +07:00
  • 4a9cbcdef1 fix: per-track instrument + ghost note visibility 3dtours 2026-07-27 20:04:56 +07:00
  • e14554a75a fix: session-absolute timing for playhead + MIDI scheduling 3dtours 2026-07-27 19:55:58 +07:00
  • a60607c673 fix: ghost playback only when track button is red 3dtours 2026-07-27 19:49:10 +07:00
  • c9176a27fa fix: single-track active mode — only one button red at a time 3dtours 2026-07-27 19:44:03 +07:00
  • db4bdd2471 fix: track buttons fit column width, gray default, red on click 3dtours 2026-07-27 19:42:28 +07:00
  • 60141cef3f style: track buttons with border, rounded, 20px height, 14px font, red active 3dtours 2026-07-27 19:41:06 +07:00
  • 9c0909c3fa fix: sửa lỗi hiển thị của midi ghost note 3dtours 2026-07-27 19:39:01 +07:00
  • 6ff2f72c58 fix: playhead at bar 0 when opening MIDI item in session mode 3dtours 2026-07-27 19:37:59 +07:00
  • ab4b91a158 fix: shift+scroll velocity changes all selected notes 3dtours 2026-07-27 19:36:54 +07:00
  • 1628a34ea0 fix: ghost overlap use inclusive boundary for adjacent items 3dtours 2026-07-27 19:31:36 +07:00
  • db45efe53c fix: sync piano roll playhead with main timeline position 3dtours 2026-07-27 19:29:51 +07:00
  • fd23b8c4b0 fix: align CC lane velocity label with keybed column 3dtours 2026-07-27 19:28:51 +07:00
  • 1d3c7a7955 fix: preserve playhead session position across dropdown switch 3dtours 2026-07-27 19:28:01 +07:00
  • 3ed62b3343 fix: subtract renderBeatOffset from mouse beat for correct positioning 3dtours 2026-07-27 19:25:29 +07:00
  • 3a775fdda7 fix: track button toggle bug — init Set with all track IDs 3dtours 2026-07-27 18:34:50 +07:00
  • 509e171c20 fix: ghost border, track buttons clickable, per-track instrument silent 3dtours 2026-07-27 18:31:12 +07:00
  • 0500d16bc7 feat: track column buttons, ghost playback, per-track channels 3dtours 2026-07-27 18:21:46 +07:00
  • a98dd58744 fix: renderBeatOffset in beats (multiply by timeSigNum) 3dtours 2026-07-27 18:03:44 +07:00
  • 1ba9e8379f feat(piano-roll): session bar0, fixed track column, renderBeatOffset 3dtours 2026-07-27 17:57:47 +07:00
  • b9113f8a06 fix: dropdown switch keeps ghost notes from other tracks only; track column toggles MIDI play 3dtours 2026-07-27 17:40:31 +07:00
  • 91ddc3cb6f fix: move ghost decls before totalBeats to fix TDZ 3dtours 2026-07-27 17:34:14 +07:00
  • fb0cd248ad feat(piano-roll): context menu flip, track column, session duration 3dtours 2026-07-27 17:32:06 +07:00
  • d21091b69b feat: hiển thị ghost note trong piano roll tab 3dtours 2026-07-27 17:26:13 +07:00
  • 53a27b5af4 fix: move ghostLayers decl before useLayoutEffect to fix TDZ 3dtours 2026-07-27 17:15:04 +07:00
  • 035d75e504 feat(piano-roll): ghost notes + dropdown item switcher + session sync 3dtours 2026-07-27 17:08:59 +07:00
  • c4a320a1c1 fix: AI panel hiển thị nội dung nhiều hơn 3dtours 2026-07-27 16:43:17 +07:00
  • 095a0680e8 fix(build): remove extra brace at L6795, Babel build now succeeds; feat(ai-copilot): rows=4, resize-y, cursor-aware ArrowUp/Down 3dtours 2026-07-27 16:36:26 +07:00
  • 4ed0b1e5be fix(ai-copilot): patch trực tiếp app.precompiled.js rows=4 + cursor check cho ArrowUp/Down 3dtours 2026-07-27 16:21:24 +07:00
  • 29206d62a3 fix(ai-copilot): tăng chiều cao prompt input rows=4 + resize-y, sửa ArrowUp/ArrowDown chỉ gọi history khi cursor ở đầu/cuối text 3dtours 2026-07-27 16:16:26 +07:00
  • 57235e68d2 docs: wiki entry program_select fix 3dtours 2026-07-27 16:16:00 +07:00
  • 47d1a14f50 fix: play các soundfont và có thể tắt các âm khi thả phím 3dtours 2026-07-27 16:13:39 +07:00
  • 2b04b32ea8 fix: dùng fluid_synth_program_select thay vì bank_select+program_change 3dtours 2026-07-27 16:08:54 +07:00
  • 15ec35d8d9 docs: wiki entry activeNotes array fix 3dtours 2026-07-27 16:00:42 +07:00
  • 8965643450 cleanup: bỏ dead code stopNote + debug log _playNoteFluid 3dtours 2026-07-27 16:00:33 +07:00
  • 16e33b2e6a fix: _activeNotes lưu array channel cho mỗi key 3dtours 2026-07-27 16:00:11 +07:00
  • 838e173dd7 debug: log _playNoteFluid params + stopNote activeNotes keys 3dtours 2026-07-27 15:56:28 +07:00
  • ce7d23c351 fix: _origChannel tránh channel bị ghi đè bởi mappedCh 3dtours 2026-07-27 15:54:06 +07:00
  • 987ecffc6c fix: activeNotes key dùng MIDI channel gốc, không phải FluidSynth channel 3dtours 2026-07-27 15:50:28 +07:00
  • 7a2ac3a851 docs: wiki entry multi-track ARM + activeNotes 3dtours 2026-07-27 15:48:43 +07:00
  • cb23d36bc8 fix: multi-track ARM + activeNotes map cho stopNote 3dtours 2026-07-27 15:48:34 +07:00
  • 638d56ce63 fix: engine->channel map cho multi-track ARM 3dtours 2026-07-27 15:40:45 +07:00
  • 3d7bae94f2 fix: schedule noteOff even cho immediate notes (durationMs < 60000) 3dtours 2026-07-27 15:36:03 +07:00
  • b947237c3c fix: đã play được các soundfont với FluidSynth WASM 3dtours 2026-07-27 15:33:20 +07:00
  • 00566e8ea6 fix: stopNote dùng noteoff+noteon(vel0) thay vì all_sounds_off 3dtours 2026-07-27 15:27:53 +07:00
  • d9ad60768e fix: patch precompiled JS - thêm stopNote + duration 60000 3dtours 2026-07-27 15:24:33 +07:00
  • 5c7f922eb0 fix: _fluid_synth_all_sounds_off + log noteoff return code 3dtours 2026-07-27 15:21:50 +07:00
  • ae6abc3ea5 fix: thêm CC120 (All Sound Off) vào stopNote 3dtours 2026-07-27 15:20:01 +07:00
  • cdfe88ba76 fix: force ScriptProcessorNode (bypass AudioWorklet) để debug no-audio 3dtours 2026-07-27 15:15:20 +07:00
  • 05113e17f3 fix: gain 2.0 + zero buffer trước render + log get_gain thực tế 3dtours 2026-07-27 15:14:49 +07:00
  • 4d2da5a272 fix: ScriptProcessorNode fallback + worklet process() logging 3dtours 2026-07-27 15:09:47 +07:00
  • 4ca6e7c6ad fix: thêm logging debug cho noteOn + render + gain explicit 3dtours 2026-07-27 15:02:27 +07:00
  • 2c012e3348 fix: AudioWorklet bridge xử lý sai frame → silence 3dtours 2026-07-27 14:59:39 +07:00
  • a887db587f fix: clean sfload with _allocCStr helper + printErr debug + verbose FluidSynth 3dtours 2026-07-27 14:56:07 +07:00
  • 6fe0cd8d61 fix: bắt lỗi _fluid_synth_sfload + fallback SF2 + tăng WASM memory 3dtours 2026-07-27 14:51:39 +07:00
  • e801023beb fix: locateFile cho FluidSynth WASM module (dùng self-host/CDN) 3dtours 2026-07-27 14:48:58 +07:00
  • ef1238b87d feat: migrate SpessaSynth → FluidSynth WASM (SF3 native, loop Gen 54 fix) 3dtours 2026-07-27 12:48:30 +07:00
  • 81dc9a0354 refactor: chuyển đổi từ SpessaSynth sang FluidSynth WASM 3dtours 2026-07-27 12:31:21 +07:00
  • 18d2503cb9 fix: bypass SpessaSynth AudioWorklet MIDI pipeline for looped voice release 3dtours 2026-07-27 12:27:51 +07:00
  • 187686aa82 chore: add wiki entry for CC120 fix 3dtours 2026-07-27 12:12:15 +07:00
  • fa4a38bf3e fix: stopNote/stoplAll uses CC120 (All Sound Off) instead of CC123 (All Notes Off) to kill sustained instrument voices immediately 3dtours 2026-07-27 12:11:37 +07:00
  • 4def86168b fix: send CC64=0 + CC121=0 before noteOff (reset sustain + all controllers) 3dtours 2026-07-27 12:02:50 +07:00
  • 9357e4fcc8 chore: add wiki log 3dtours 2026-07-27 11:43:43 +07:00
  • f7a46e0baa fix: lazyInit in playNote, oscillator fallback 2s instead of 60s 3dtours 2026-07-27 11:43:32 +07:00
  • 1829b61472 fix: stopNote fires noteOff(3 variants) + allNotesOff + CC123 for redundancy 3dtours 2026-07-27 11:39:16 +07:00
  • 8aeac14e4b fix: only send All Notes Off (CC123) when sustain pedal is not active 3dtours 2026-07-27 11:30:35 +07:00
  • 48e4047a84 revert: remove 100ms delay from stopNote, keep instant noteOff 3dtours 2026-07-27 11:27:39 +07:00
  • 0e051297b0 fix: stopNote delays noteOff by 100ms for natural release 3dtours 2026-07-27 11:25:03 +07:00
  • 62ac2e2d88 chore: add wiki log 3dtours 2026-07-27 11:22:01 +07:00
  • e785b88ea7 fix: send All Notes Off (CC123) before each MIDI NoteOn to stop lingering release 3dtours 2026-07-27 11:21:51 +07:00