3dtours
aa1cd8d5de
fix: 3 bug standalone — soundfont preview/play, Carla bridge play item, realtime sync LAN/Tauri
...
Bug1: dispatcher CREATE_MIDI_ITEM track_id number vs state string -> String(); play+preview native soundfont verified.
Bug2: Carla play item — chờ OSC ready (poll carla-status, queue nốt khi cold start), chống spawn trùng (carla-status dò port bind, open-in-carla skip khi đã chạy).
Bug3: realtime sync — GET /temp/revision (updated_at+client_id), poll 3s, apply qua deserializeProjectFromSchema; hash-skip autosave + client_id chống ping-pong.
2026-08-10 22:10:12 +07:00
3dtours
d31e226f00
LAN access: bind 0.0.0.0 + expose LAN URL (capabilities.lan, UI badge)
2026-08-10 20:46:06 +07:00
3dtours
a0d8725541
feat: tách luồng âm instrument theo môi trường — docker dùng FluidSynthWASM, standalone dùng native pyfluidsynth (+Carla VSTi)
...
- runtime: detect()/capabilities() trả environment (docker|standalone)
- vst_engine: render_soundfont_midi_to_audio (pyfluidsynth native, event-stream, release tail)
- plugins: POST /soundfont-render — render MIDI notes -> WAV (auth, fallback default SF)
- frontend: SonicRuntime.environment + dataset.environment; app.jsx route preview/transport:
standalone+SF -> soundfont-render WAV (playNativeSfNote/scheduleNativeSfItem),
docker giữ WASM, VSTi standalone giữ Carla bridge
2026-08-10 20:38:54 +07:00
3dtours
e89a594b7c
FIX: 3 bugs - soundfont engine fallback, media explorer icons/drag, carla midi playback routing
...
- render_engine: soundfont track không có plugin_id giờ vẫn dùng instrument sf2 thay vì rơi về wave synth
- fontawesome: sửa đường dẫn webfonts (bỏ ../) hết 404 icon
- media explorer: drag MIDI library items vào timeline tạo được midi item (sinh 6 MIDI loop mẫu + resolve drop file)
- app.jsx: 3 path gate window.SonicSF cho phép route playback qua SonicCarlaMidi
2026-08-10 20:08:48 +07:00
3dtours
61cb4b846f
FIX: 11 bugs bảo mật/ổn định (static mount chặn dotfile, delete traversal, cleanup giữ clips serverFileId, upload whitelist, password strength, auth audio endpoints, pedalboard==0.9.19, vendor CDN local) + FEATURE: Carla bridge preview/export MIDI notes âm VSTi (POST /midi-render, /carla-play-notes, nút Preview VSTi/Export MIDI->Audio; pedalboard 0.9.19 raw MIDI bytes; SONICFORGE_STORAGE_DIR cô lập test storage)
2026-08-10 18:46:54 +07:00
3dtours
a1dc074e35
FIX: MIDI item route qua Carla giống hệt keybed — bỏ gate __carlaRunning (Carla mở thủ công/cũ vẫn route; gate cũ làm 'keybed kêu, item câm') + log chẩn đoán [Carla] item note
2026-08-10 10:03:41 +00:00
3dtours
75eba27dcf
FIX: (1) masteringConnected default true + ensureMasteringRouting/refreshCarlaStatus ở mọi đường play — MIDI item/preview qua mastering ngay khi chạy app; (2) _instrumentEpoch chống cache stale + retry bank 0 — hết chọn Synth String nghe Piano; (3) /carla-status + auto-open Carla + route exclusive chỉ khi Carla sống (fallback FluidSynth tránh câm); (4) keybed giữ note theo thời gian bấm (auto-off 5s phòng hờ, mouseup dừng ngay)
2026-08-10 09:51:58 +00:00
3dtours
f492104869
FIX: (1) MIDI item route CHỈ qua Carla bridge khi VSTi loaded (bỏ FluidSynth GM sai âm) ở mọi đường playback + ghosts; (2) updateSfRouting sync route gains nhánh gainNode + ensureMasteringRouting force-sync mọi node — preview MIDI keyboard qua mastering không cần bật/tắt power; (3) stopNote/panic dừng fallback oscillator theo channel:pitch — hết âm kêu liên tục sau khi thả phím
2026-08-10 09:07:42 +00:00
3dtours
75795653c5
FIX: ensureMasteringRouting gọi getAudioContext() trước — preview đầu tiên cũng sync mastering routing
2026-08-10 06:04:32 +00:00
3dtours
025e0f03a2
FIX: preview soundfont (MIDI keyboard) không tự động qua mastering FX main out
...
- Thêm ensureMasteringRouting() đồng bộ graph mastering + routing SF + route gains NGAY trước khi preview (keybed onMouseDown, playDrawPreview, playMidiPreview, mở piano roll tab) — hết phải bật/tắt nút power mới có tác dụng
- applyMasteringSettings sig thêm masterConnected/isBypassed — toggle power luôn re-apply tham số module
2026-08-10 06:04:12 +00:00
3dtours
c08233a163
FIX: 6 lỗi âm thanh/Carla/temp-save/Ctrl-S/FX Chain Carla bridge
...
- Soundfont preview: hủy note đang chờ load soundfont (stopNote/stopAll/panic) — hết âm loop không dừng với MIDI Keyboard; preview dùng channel riêng (applyAITrackInstrument) — hết sai instrument
- Carla bridge: endpoint /carla-stop (all-notes-off OSC + terminate process) + stopBridge() khi track chuyển VSTi -> soundfont — hết âm play qua Carla cũ
- MIDI items play qua Carla khi VSTi loaded: scheduleCarlaNote route vào startTrackPlayback + startLocalTrackPlayback + ghost notes
- Tự động lưu temp khi tắt app: beforeunload/pagehide sendBeacon + autosave 30s + ghi storage/temp/autosave.json + khôi phục khi load lại
- Ctrl-S: desktop -> save-to-disk (Documents/SonicForgeDAW/Projects); docker -> Cloud/local
- FX Chain (Mastering + FX Rack): module Carla Bridge (VST FX) — load/openInCarla + stop/unload, pass-through trong graph
2026-08-10 05:34:32 +00:00
3dtours
d20932a68b
FIX: sửa lỗi MIDI item không play được qua carla, loop không tắt với soundfont
2026-08-10 11:33:47 +07:00
3dtours
aa32272f36
FIX: Carla sử dụng bridge
2026-08-10 07:57:26 +07:00
3dtours
438ee607fc
fix: nut Synth tren TCP khong hien danh sach VSTi da scan (ban 1.1.5)
...
- Nut Synth TCP goi openInstrumentSelector (modal 'Select Instrument')
nhung modal chi co category SoundFont + GM - khong co muc VST (muc VST
chi ton tai o dropdown MixerStrip). Them 'VST Instruments' vao sidebar
trai modal: list instrumentSelectorData.vst_instruments (listPlugins),
click -> setTrackInstrumentWithUndo(trackId, v.id, v.name) + dong modal.
- _scan_vst_in_dirs + /scan: phat hien ca FOLDER ten X.vst3 (Windows VST3
= folder chua X.vst3.dll) - truoc day chi scan file.
- Ghi chu: pedalboard (engine VST) la headless - KHONG mo duoc GUI goc cua
plugin; danh sach + chon la co che chon nhac cu kha thi.
Verify engine frozen: /plugins/available tra ['PadMachine','UltraSynth']
(ca file va folder .vst3); /scan dong bo; test_plugin_api 3 passed.
2026-08-09 13:52:43 +00:00
3dtours
cc8b286f6c
feat: native folder picker (Explorer) + Synth liet ke VSTi da scan + fix VU leak (ban 1.1.4)
...
1) Folder picker dung WINDOW EXPLORER (khong prompt nhap tay):
- src-tauri/src/lib.rs: IPC bridge — thread watcher ipc/pick_dir.request
-> run_on_main_thread -> dialog().file().blocking_pick_folder()
(tauri-plugin-dialog = IFileDialog/Explorer) -> ghi pick_dir.response;
ghi marker tauri_bridge_ready luc setup.
- app/api/v1/plugins.py: POST /pick-dir (def sync -> threadpool, khong
auth) — uu tien Tauri bridge, fallback PowerShell FolderBrowserDialog
(Win) / osascript (macOS) / zenity-kdialog (Linux).
- app.jsx pickPluginFolder: 1) pickPluginDir (native) -> 2) __TAURI__
invoke -> 3) in-app browser -> 4) prompt (cuoi cung).
2) Nut Synth liet ke VSTi da scan (truoc day rong):
- Root: list_available() chi quet settings.VST_DIR (mac dinh
/opt/daw_engine/vst3) trong khi Plugin Manager scan plugin_dirs user.
- plugins.py list_plugins: gop _scan_vst_in_dirs(plugin_dirs) (file
.vst3/.dll/.so + folder X.vst3 Windows).
- vst_engine.py: PluginManager.extra_vst_dirs + _scan_plugins quet them
(ca folder .vst3) + get_plugin_manager doc plugin_dirs.json -> load_vst
tim thay plugin user scan khi render.
3) VU meter leak: section-tab play -> sang MAIN SESSION -> track MAIN van
animate theo am section.
- Root: VU tick fallback _sub_ (sub-node section co analyser) chay cho
ca canvas MAIN; startSubTabPlayback ghi node o key track MAIN.
- Fix: fallback _sub_ chi ap dung cho canvas SECTION (isSessVu); 2 trigger
piano-roll them prefix _sess_ theo st.parent_tab_id.
Verify: 86 tests pass; engine frozen STARTUP 1.35s, 1 engine, 0 spawn '-c';
pick-dir IPC mock tra dung path; scan VST user dirs OK.
2026-08-09 13:05:53 +00:00
3dtours
5ae4fd6149
fix: Plugin Manager '+ Add Directory' khong hien folder picker (ban 1.1.3)
...
Nguyen nhan: UI that chay tren http://127.0.0.1:8000 (engine) nen
window.__TAURI__ KHONG ton tai (Tauri chi inject vao trang no serve -
src-tauri/ui/index.html chi la loader redirect). Fallback window.prompt
KHONG hoat dong trong WebView2 (no-op) -> khong co picker nao xuat hien.
Fix: in-app folder browser qua backend (co san /media/computer +
/media/browse trong media.py, auth qua apiRequest):
- services/api.js: them browseComputer() + browseDir(path)
- app.jsx PluginManagerModal: state pmPicker + overlay UI (roots/drives
-> dirs -> 'Len' (parent) -> 'Chon thu muc nay' -> setPmDirs)
- Thu tu uu tien: __TAURI__.core.invoke('plugin:dialog|open') -> in-app
browser -> prompt (fallback cuoi, browser thuan khong phai WebView2)
- Bump ?v= cache-bust index.html (api.js + app.precompiled.js)
Verify tren engine frozen: /media/computer tra roots, /media/browse tra
{path, parent, dirs} - dir picker flow OK. Skill da ghi lai:
~/.hermes/skills/software-development/sonicforge-daw-engine-packaging
2026-08-09 11:55:16 +00:00
3dtours
b78a629429
IMPROVE: About modal dùng logo favicon.svg của app thay cho div chữ SF
2026-08-08 13:37:03 +00:00
3dtours
366219a269
FEAT: menu Help (About modal + hướng dẫn sử dụng) + Tools Preferences (theme/language/button font size)
2026-08-08 13:23:23 +00:00
3dtours
3618e3c591
FIX: VU meter giữ animation đúng trường độ âm khi ARM + giữ phím MIDI keyboard (heldMidiNotesRef, không decay khi note còn giữ)
2026-08-08 13:12:49 +00:00
3dtours
b490aa9951
FIX: chặn browser zoom toàn trang — item/button/label giữ nguyên kích thước khi phóng to UI (capture preventDefault, giữ zoom chuyên dụng)
2026-08-08 13:08:25 +00:00
3dtours
7dda81b1d3
FIX: Windows build crash 'app\static does not exist' (datas absolute + APP_DIR freeze-aware) + VU meter ARM/MIDI keyboard
2026-08-08 11:51:15 +00:00
3dtours
8e3c652551
IMPROVE: PIANO ROLL TAB khi play thì playhead luôn nằm chính giữa piano roll
2026-08-07 22:10:37 +07:00
3dtours
393df8fd7b
FIX: cho phép shift+click để chọn notes, drag để di chuyển các notes, ctrl+drag để copy nhanh các notes
2026-08-07 21:48:14 +07:00
3dtours
688a7a57e2
FIX: cho phép copy/cut các notes được chọn trong PIANO ROLL TAB
2026-08-07 21:39:18 +07:00
3dtours
652e745d0a
IMPROVE: thay đổi giao diện của PIANO ROLL TAB
2026-08-07 21:22:13 +07:00
3dtours
45ab31d42e
IMPROVE: thêm các tính năng cho MIDI trong PIANO ROLL TAB
2026-08-07 20:46:47 +07:00
3dtours
c3182f6baa
FIX: sửa lỗi không hiển thị đúng nội dung của SECTION-TAB trong section item
2026-08-07 18:58:29 +07:00
3dtours
1d9b426d15
FIX: sửa lỗi copy/cut paste không đúng item
2026-08-07 17:06:05 +07:00
3dtours
4f34491f3e
FIX: sửa lỗi hiển thị animation của VU meter khi play MIDI
2026-08-07 15:57:49 +07:00
3dtours
9e269d3b79
FIX: sửa lỗi hiển thị animation của VU meter
2026-08-07 15:40:15 +07:00
3dtours
58c6ec794d
FIX: sửa lỗi hiển thị số bar bị sai
2026-08-07 15:07:06 +07:00
3dtours
173a1f227b
FIX: sửa lỗi lưu thay đổi trong SECTION-TAB thì cũng tạo duration trên MAIN SESSION
2026-08-07 11:08:39 +07:00
3dtours
c1aa1eb4d4
FIX: sửa lỗi phát hiện đã không còn play midi note để PIANO ROLL TAB quay về vị trí 0
2026-08-07 10:41:45 +07:00
3dtours
6c16bf8410
FIX: sửa lỗi đồng bộ playhead vị trí play giữa MAIN SESSION/SECTION-TAB/PIANO ROLL TAB
2026-08-07 10:37:34 +07:00
3dtours
4981785913
FIX: sửa lỗi playhead đồng bộ giữa các tab, nhấn space có thể bind với phím play
2026-08-07 10:27:21 +07:00
3dtours
bca661bffd
FIX: sửa lỗi chuyển từ tab PIANO ROLL TAB sang MAIN SESSION/SECTION-TAB không đồng bộ playhead
2026-08-07 10:12:18 +07:00
3dtours
4c820bfa77
FIX: sửa lỗi chuyển từ tab PIANO ROLL TAB sang MAIN SESSION và SECTION-TAB thì bị câm
2026-08-07 09:35:40 +07:00
3dtours
8cdf2942b9
FIX: sửa lỗi chuyển từ tab MAIN SESSION sang SECTION-TAB và PIANO ROLL TAB thì bị bypass
2026-08-07 09:13:03 +07:00
3dtours
23675dab83
FIX: Đã fix preview Media Explorer (v202608062345)
2026-08-06 20:45:56 +07:00
3dtours
71b9231b57
FIX: Đã fix block lồng + mất MIDI (v202608062330)
2026-08-06 20:42:27 +07:00
3dtours
93dc13b17a
FIX: lỗi bypass của SECTION-TAB
2026-08-06 18:19:04 +07:00
3dtours
f1e914fa62
FIX: lỗi: CC7 (channel volume) chỉ được set 100/0 (mute/unmute) — volume track KHÔNG áp qua channel → track MIDI dùng chung channel: CC7 của track set cuối thắng → volume của track kia vô tác dụng
2026-08-06 14:10:57 +07:00
3dtours
4dfab954d8
FIX: reset tất cả về mặc định khi tạo new project
2026-08-06 11:47:10 +07:00
3dtours
e99e54773f
FIX: Đã sắp xếp lại (v202608061030)
2026-08-06 08:29:23 +07:00
3dtours
0ba31c57bf
FIX: Đã đổi tên (v202608060900)
2026-08-05 22:23:31 +07:00
3dtours
454dd91f96
FIX: Đã fix cross-machine (v202608060700)
2026-08-05 22:02:43 +07:00
3dtours
e9f29e09ca
FIX: Đã fix cross-machine (v202608060500)
2026-08-05 17:40:35 +07:00
3dtours
289746f187
FIX: Đã fix (v202608060430) — tab deactive → stop âm tab đó
2026-08-05 17:29:52 +07:00
3dtours
b3ced7a7b3
FIX: Clone AI Var kế thừa midiChannel của track gốc → 2 track DÙNG CHUNG channel
2026-08-05 15:49:44 +07:00
3dtours
4233c1eeda
FIX: Piano roll track 4 phát âm thanh instrument track 3
2026-08-05 15:17:13 +07:00