3dtours
bd296c63f1
FIX: lỗi hiển thị icon của các nút ở track TCP
2026-07-31 07:09:54 +07:00
3dtours
468a1f11a4
fix: Lucide icon refresh on new track creation
...
Add activeTracks to useEffect deps for lucide.createIcons() so
icons render when user/AI creates tracks via any path.
2026-07-31 07:06:29 +07:00
3dtours
437980ea9f
feat(generator): post data to parent preset form
2026-07-31 06:43:01 +07:00
3dtours
bc951e75af
feat(preset-manager): category dropdown + generator modal
2026-07-31 05:50:55 +07:00
3dtours
b1aec24392
fix(audio): robust async buffer loading with state merging + API fallback
...
- Rewrite loadAudioBuffersForTracks to use functional setTracks
preventing loss of intermediate state updates
- Add API download endpoint as fallback when static fetch fails
- Also update sessionTabs tracks with loaded buffers
- return decodeAudioFile result (audioBuffer+channelInfo) instead
of just audioBuffer
2026-07-30 22:30:56 +07:00
3dtours
be3205645f
fix(audio): recover clip serverFileId from audio_file_url on project load
...
3 fixes for audio clips losing sound after save/reload:
1. deserializeTracksList: clip-level serverFileId falls back
to extracting from audio_file_url when server_file_id missing
2. serializeTracksList: add server_file_id to track output
so track-level fallback survives round-trip
3. upgrade_project_json_if_needed: include server_file_id
in source_data during legacy project upgrade
2026-07-30 22:26:53 +07:00
3dtours
0894f97386
FIX: sửa lỗi vẽ grid sai trong PIANO ROLL GRID với snap
2026-07-30 22:14:56 +07:00
3dtours
ca34a496eb
fix: force piano roll grid redraw on snap change via renderTick
...
snapVal already in useLayoutEffect deps. Added renderTick
counter bumped in onChange to guarantee canvas redraw.
2026-07-30 21:32:45 +07:00
3dtours
64b9fbadd5
fix: WaveformLane grid now respects snapValue (was always beat grid)
...
snapDivisor was computed but never used in loop. Grid always drew
at every beat. Now grid iterates at snapInterval = beatDuration * snapDivisor.
2026-07-30 21:25:39 +07:00
3dtours
323be6a6f4
fix: piano roll draw notes snapped to grid via getSnapBeat
...
note.start_beat + duration_beats snapped before rendering.
Applies to active, ghost, and recording notes.
2026-07-30 21:15:38 +07:00
3dtours
5ed6acd4f5
fix: piano roll snap values inverted in getSnapBeat/getSnapDuration/grid
...
snap='1' gave q=4.0 (4-beat snap). Fix all 3 mappings:
grid lines, note snap, default duration.
2026-07-30 21:08:56 +07:00
3dtours
6c227fe6af
fix: draw clip rect/label always, skip only waveform when buffer null
...
- clip rect + label + markers drawn even without buffer
- shows '(audio chưa được tải)' for unloaded clips
- deserialize restores clip duration from duration_bars
2026-07-30 21:05:33 +07:00
3dtours
7b8e10419f
fix: snap default '1' + Power button reads masterConnected directly
...
- snapValue default '1' (was 'free'), piano roll snapVal default '1' (was '1/16')
- Power button: remove shared isFxActive, use masteringSettings.masterConnected
2026-07-30 20:59:29 +07:00
3dtours
872ecabf85
IMPROVE: cho phép lưu dự án và phục hồi dự án vừa tắt, tạo crontab để tự động sao lưu sau mỗi 5 phút
2026-07-30 20:58:54 +07:00
3dtours
4005088e89
fix: audio clip items lost after reload — missing serverFileId on clip/track
...
- set serverFileId on clip + track when upload succeeds
- serialize/deserialize server_file_id in source_data
- guard clip.buffer null in WaveformLane canvas draw
2026-07-30 20:54:23 +07:00
3dtours
9c487614f1
feat: auto-save 5min + backup 30min + backup management UI
...
- project_backups table + DB migration
- Backup CRUD API endpoints with auto cleanup (5-20 retention)
- setInterval 5min save + 30min backup in browser
- ProfileModal: backup list, delete, retention slider, cleanup button
2026-07-30 20:48:45 +07:00
3dtours
58a294d845
IMPROVE: cho phép lưu dự án và phục hồi dự án vừa tắt
2026-07-30 20:47:44 +07:00
3dtours
313d1be5af
fix: loadAudioBuffersForTracks scoped in ProfileModal crashes project load
...
Move fn to App component scope, pass as prop to ProfileModal.
restoreLastSessionProject now has access on startup.
2026-07-30 20:40:25 +07:00
3dtours
3386a2b4c2
feat: add structured preset button in AI Preset Manager
...
Add handleNewStructured fn + emerald button left of Quay lại
pre-fills form with comprehensive Vietnamese template sections
2026-07-30 20:33:22 +07:00
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
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