Commit Graph

734 Commits

Author SHA1 Message Date
3dtours 05e6a467d8 FIX: sửa lỗi drag and drop vào track thì sẽ mở midi file ở track đó 2026-07-31 10:47:33 +07:00
3dtours 4b43f027ce fix: drop MIDI on existing track loads into that track 2026-07-31 10:44:22 +07:00
3dtours 175bce6743 FIX: sửa lỗi nhấn SOLO không play realtime 2026-07-31 10:39:01 +07:00
3dtours 3380b0e201 feat: realtime solo toggle during playback 2026-07-31 10:37:52 +07:00
3dtours 619a2484ce FIX: sửa lỗi vẫn diễn anim khi track đã bị mute 2026-07-31 10:34:48 +07:00
3dtours 24ac703d4d fix: track VU meter stays idle when track not audible (solo/mute) 2026-07-31 10:33:14 +07:00
3dtours c47eb5d718 FIX: sửa lỗi bật nút POWER FX nhưng âm thanh vẫn bị bypass 2026-07-31 10:29:36 +07:00
3dtours 3a345c3f4e fix: master strip PWR button now un-bypasses mastering when enabled 2026-07-31 10:27:16 +07:00
3dtours 86b304e173 fix: piano roll dropdown lists tracks only, not every MIDI item 2026-07-31 10:22:35 +07:00
3dtours 01d02a9d71 FIX: cho phép click và active, sửa các MIDI item trong cùng track 2026-07-31 10:21:19 +07:00
3dtours 2bf9f8bcb8 feat: click wait-to-active note switches to editing that MIDI item 2026-07-31 10:19:39 +07:00
3dtours 99a445b789 fix: selected dim note's MIDI item wins focus over opened item 2026-07-31 10:13:49 +07:00
3dtours ee39dda5b9 feat: ctrl+click dim note selects it and focuses its MIDI item 2026-07-31 10:10:32 +07:00
3dtours be8430fbd9 revert: remove left-column MIDI item buttons (ghost note click focuses item) 2026-07-31 10:07:53 +07:00
3dtours f1b00eb060 feat: all same-track MIDI items selectable to focus in piano roll left column 2026-07-31 10:06:42 +07:00
3dtours d81afba93d feat: click note focuses its MIDI item in piano roll 2026-07-31 10:02:49 +07:00
3dtours 223254eb07 feat: per-MIDI-item focus brightness in piano roll 2026-07-31 09:59:14 +07:00
3dtours 698fa818e9 fix: focused MIDI item notes brighter than siblings 2026-07-31 09:53:17 +07:00
3dtours 60d05e2b4d feat: opened MIDI item notes darker than same-track siblings 2026-07-31 09:50:54 +07:00
3dtours 0ea994fb2f FIX: active tất cả các note của các MIDI item cùng track 2026-07-31 09:48:42 +07:00
3dtours eb370319cb feat: piano roll shows all same-track MIDI items notes as active 2026-07-31 09:46:55 +07:00
3dtours 9b25766fca FIX: drag and drop vào khung track timeline thì tự động tạo track cho midi 2026-07-31 09:40:50 +07:00
3dtours dfbeb24a33 feat: drag-drop MIDI file creates new tracks 2026-07-31 09:31:10 +07:00
3dtours 3c4f106e14 FIX: lỗi khi play MIDI thì cho phép active multi track khác realtime 2026-07-31 09:26:51 +07:00
3dtours 4f5aee6830 fix: multitrack play select plays immediately in realtime 2026-07-31 09:21:39 +07:00
3dtours 42d64f93d8 feat: piano roll loads track instrument + multi-track play select 2026-07-31 08:50:14 +07:00
3dtours 6c11daccf8 FIX: lỗi khi play MIDI thì cho phép active các track khác realtime 2026-07-31 08:47:37 +07:00
3dtours 88007dce34 feat: click track name triggers realtime MIDI playback 2026-07-31 08:39:45 +07:00
3dtours 1790f743d6 fix: add 400ms decay to MIDI noteoff for natural release 2026-07-31 08:26:06 +07:00
3dtours ef6370f92e FIX: lỗi cắt MIDI note thành nhiều notes 2026-07-31 08:23:38 +07:00
3dtours 3cac617aff fix: drag-move delta relative to clicked note, not first selected 2026-07-31 08:20:15 +07:00
3dtours e1550c8ffe fix: insert noteB after noteA in split, not at end of array 2026-07-31 08:15:56 +07:00
3dtours c60803ee2a fix: bump precompiled cache version for piano roll split fix 2026-07-31 08:10:06 +07:00
3dtours 9c5507f7b2 feat: MIDI note duration inheritance & Ctrl+Shift+click split 2026-07-31 08:01:52 +07:00
3dtours 47e87c8363 FIX: lỗi load dự án và hiển thị mixer panel 2026-07-31 07:51:18 +07:00
3dtours 652fb98d2c fix: resolve 3 bugs - panText undefined, cloud project load, auto-restore error handling 2026-07-31 07:46:47 +07:00
3dtours 845d1594bb FIX: cho phép nhiều track cùng solo 2026-07-31 07:14:28 +07:00
3dtours 59aa9a32ff feat: allow multiple simultaneous solo tracks
Replace single-track solo (radio) with multi-solo toggle.
No longer clears solo on other tracks when toggling one track.
2026-07-31 07:10:32 +07:00
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 0fdb8318f0 FEAT: thêm nút Tạo preset với cấu trúc và lưu lại vào preset manager 2026-07-31 06:50:44 +07:00
3dtours 437980ea9f feat(generator): post data to parent preset form 2026-07-31 06:43:01 +07:00
3dtours bc36e40967 feat(generator): apply md/50 transfer spec 2026-07-31 06:36:37 +07:00
3dtours 6ce77c4f20 fix(generator): anchor preview bottom to modal edge 2026-07-31 06:16:36 +07:00
3dtours bc951e75af feat(preset-manager): category dropdown + generator modal 2026-07-31 05:50:55 +07:00
3dtours 5e8664af1c FIX: sửa lỗi tải lại audioclip item bị mất tiếng 2026-07-30 22:33:26 +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