This website requires JavaScript.
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