3dtours
64f43cd5ad
IMPROVE: cho phép thay đổi instrument realtime khi đang playback
2026-07-30 17:32:57 +07:00
3dtours
546ad3dd23
FIX: sửa lỗi vị trí con trỏ pos khi parse MIDI MThd header
2026-07-30 17:28:23 +07:00
3dtours
402cac56a3
FIX: sửa lỗi parse file midi có track hoặc chunk phụ trợ
2026-07-30 17:21:42 +07:00
3dtours
1de69b8f4e
IMPROVE: bật tắt ARM, MIC trên track strip, double click lên nút balance, volume
2026-07-30 17:04:13 +07:00
3dtours
a9be38b76f
IMPROVE: hướng dẫn AI tạo nhạc đầy đủ số bars và tracks theo yêu cầu
2026-07-30 16:39:28 +07:00
3dtours
938c8d7f87
FIX: sửa lỗi fluidsynth error khi toggle percussion kit
2026-07-30 16:25:09 +07:00
3dtours
15193b13a7
FIX: sửa lỗi undo khi move items, lỗi undo khi duplication item
2026-07-30 16:19:47 +07:00
3dtours
4db3e3484a
FIX: sửa lỗi cnnot move items
2026-07-30 16:11:31 +07:00
3dtours
f0479dc3d8
FIX: sửa lỗi Uncaught ReferenceError: stopPreviewNote is not defined
2026-07-30 15:56:09 +07:00
3dtours
7836cfcc76
FIX: chỉnh sửa hoàn thành UX/UI master strip
2026-07-30 15:38:25 +07:00
3dtours
19f02a5a49
FIX: chỉnh sửa UX volume của master strip
2026-07-30 15:22:47 +07:00
3dtours
dc7ec3af4c
FIX: chỉnh sửa UI volume của master strip
2026-07-30 15:19:41 +07:00
3dtours
c073ca7a49
FIX: chỉnh sửa UI của master strip
2026-07-30 15:04:03 +07:00
3dtours
9f6f9763c1
FIX: chỉnh sửa UI của mixer panel
2026-07-30 15:01:52 +07:00
3dtours
bbd06f23d5
FEAT: thay đổi UI của mixer panel
2026-07-30 14:52:57 +07:00
3dtours
b67c0264fb
feat(mixer): Master + Track Strip Console per specs 47/48
2026-07-30 12:55:35 +07:00
3dtours
74597cfe8b
feat(mixer): install Master Strip Console per spec 47
2026-07-30 12:47:10 +07:00
3dtours
0c1a27ef2c
FIX: sửa PIANO ROLL TAB khi vẽ draw note midi phải play các note được vẽ
2026-07-30 11:38:36 +07:00
3dtours
eb61015cff
FIX: sửa MASTERING PANEL thay đổi knob thì thay đổi các thông số hiển thị
2026-07-30 11:18:35 +07:00
3dtours
6e1f116658
FIX: sửa MASTERING PANEL có tác dụng với mainout
2026-07-30 11:06:31 +07:00
3dtours
2c55db372a
FIX: sửa volume main out
2026-07-30 10:05:11 +07:00
3dtours
e64070a83e
FEAT: cài đặt tính năng cho volume main out
2026-07-30 09:34:36 +07:00
3dtours
66eef405a7
FIX: tăng velocity thêm tính năng midi key khác sử dụng cho midi note
2026-07-29 22:34:05 +07:00
3dtours
971dad84e7
FEAT: thêm tính năng midi key khác sử dụng cho midi note
2026-07-29 22:25:21 +07:00
3dtours
4cead1010e
FEAT: thêm tính năng hiển thị ở master track
2026-07-29 22:13:54 +07:00
3dtours
7b5d4bf27a
FEAT: thêm tính năng MasteringModules Modal
2026-07-29 22:03:20 +07:00
3dtours
47af85c072
FIX: sửa UNDO/REDO bị lỗi màn hình đen
2026-07-29 18:19:02 +07:00
3dtours
d4ad3bc1f7
feat: add comprehensive Ctrl-Z/Ctrl-Y undo/redo engine for MAIN SESSION and SECTION-TAB
2026-07-29 16:05:43 +07:00
3dtours
f721b8242f
FIX: sửa nút Synth cho phép thay đổi instrument cho nhiều track
2026-07-29 12:17:26 +07:00
3dtours
a1767e338a
fix: Select Instrument stays open after picking instrument
...
Remove setInstrumentSelectorTrackId(null) from
setTrackInstrumentWithProgram. Modal stays open so user can
switch tracks and assign instruments without reopening.
2026-07-29 11:56:26 +07:00
3dtours
8051cf3edb
fix: add missing aiTypeaheadRef definition
2026-07-29 11:52:49 +07:00
3dtours
35e767795a
fix: Synth button opens modal with inline track selector
...
Remove external track dropdown. Add select dropdown inside the
instrument selector modal between title and search box. Users
can switch tracks without closing the modal.
2026-07-29 11:52:12 +07:00
3dtours
7bfdd72850
feat: Synth button shows track dropdown for quick instrument assign
...
Synth button opens a dropdown listing all tracks instead of opening
the modal directly. Selecting a track opens the instrument selector
for that track. No need to close modal and click each track's Synth.
2026-07-29 11:49:34 +07:00
3dtours
30ce0eb306
FIX: sửa lỗi không tự động cập nhật AI Suggestion
2026-07-29 11:47:30 +07:00
3dtours
41b5a70a60
fix: AI SUGGEST auto-updates after saving preset in manager
...
Add aiPresetVersion counter. Increment on modal close. AI panel
compares version and calls loadPresets() to sync from localStorage.
2026-07-29 11:45:31 +07:00
3dtours
fa7917cf54
FIX: sửa lỗi không tự động load instrument
2026-07-29 11:37:46 +07:00
3dtours
a3e681afc0
fix: re-fetch instrument data after login for new machines
...
Auth success handler now eagerly loads instrumentSelectorData
via listPlugins + getSoundfontCatalog. The mount-time useEffect
runs before auth token is set, so it silently fails on new machines.
2026-07-29 11:34:50 +07:00
3dtours
8775c960e3
fix: seed_admin() no longer resets admin password on restart
...
Remove hash verification + password reset logic. seed_admin() now
only creates the admin account if it does not exist. Prevents
password being reset to default + must_change_password flag
being set on every server restart.
2026-07-29 11:28:49 +07:00
3dtours
33e35a1af1
FIX: sửa lỗi drag group items
2026-07-29 11:14:22 +07:00
3dtours
d4262acb9f
fix: rewrite drag handler with stable crossOffset + outTracks merge
2026-07-29 11:13:31 +07:00
3dtours
e40fdf15ad
fix: use original baseTrackId for crossOffset, never update drag.trackId
2026-07-29 11:10:59 +07:00
3dtours
0d763c5a0b
fix: targetTrackId undefined outside updateActiveTracks closure
...
Move track Y-position computation before updateActiveTracks so
targetTrackId is accessible for setDraggedSectionItem update.
2026-07-29 11:09:05 +07:00
3dtours
ad6fa1feb9
fix: auto-add tracks when drag exceeds track count
...
Compute maxTargetIdx across all multiIds items. Prepend new
tracks to prev array before mapping if needed.
2026-07-29 11:08:11 +07:00
3dtours
9abb0e6a50
fix: cross-track drag computes target from mouse Y position
...
Replace hoveredTrackIdRef with Y-position calculation through
track heights from prev state. Works reliably during drag.
2026-07-29 11:03:30 +07:00
3dtours
6c6a326b7d
fix: single-item cross-track drag
...
Each track filters the item independently. Only target track
receives the inserted item. Removes duplicate state update.
2026-07-29 11:02:03 +07:00
3dtours
8e8fc58082
fix: group drag uses original trackId for offset math
...
Store trackId in multiIds at drag start. Each item computes
target from original track + crossOffset, immune to stale state
from previous drag events. Track 1 item drags n tracks -> track
1+n, track 2 item -> track 2+n, etc.
2026-07-29 11:00:51 +07:00
3dtours
ec355da58d
fix: group drag cross-track uses live prev state for index mapping
...
Build trkIds from prev (updateActiveTracks callback) instead of
stale activeTracksRef. Fix srcItem lookup with proper for loop.
2026-07-29 10:55:39 +07:00
3dtours
9c3a435f26
fix: group drag cross-track maintains relative track offsets
...
Each item computes its own target track as srcIdx + crossOffset.
Items from different source tracks land on different target tracks,
preserving the group's vertical layout shape.
2026-07-29 10:52:50 +07:00
3dtours
12d2639455
fix: group drag keeps items on their original tracks
...
Remove all cross-track logic in multiIds path. Each item only
updates its time position (delta) on its current track. No
merging or track reassignment.
2026-07-29 10:50:37 +07:00
3dtours
e99bc8624f
fix: group drag moves all items, clamp to track 0, auto-add track
...
Restore multiIds cross-track move for all selected items.
Clamp targetTrackId to first track. Auto-add new track via
addNewTrack() when dragging below the last track.
2026-07-29 10:47:53 +07:00