Commit Graph

1092 Commits

Author SHA1 Message Date
admin ebf0828c55 fix(render): offline SF fallback tìm font GM có sẵn trong plugin_dirs user (Windows) 2026-08-25 09:45:08 +07:00
admin 51d948fdc9 fix(render): resolve VSTi offline qua plugin_dirs user + plugin_path schema
_resolve_instrument dùng PluginManager() chỉ scan VST_DIR mặc định -> VSTi
trong thư mục user (vd Steinberg\VSTPlugins\DUNE 3.dll) 404 -> render_engine
fallback oscillator synth -> bounce sai tiếng. Dùng get_plugin_manager()
(gộp plugin_dirs user) + resolve_plugin_path (lưới an toàn, chặn ext lạ).
render_offline nhận plugin_path từ schema synth_engine.plugin_path ưu tiên.
2026-08-25 09:24:55 +07:00
admin dd17f87e4e fix(bounce): offline render qua native bridge — bỏ gap realtime, thêm headroom, strip DIAG 2026-08-25 09:11:29 +07:00
admin 4037dbf40d fix(bounce): declare _lastDiag — second ReferenceError in BridgeAudioNode 2026-08-25 08:51:46 +07:00
admin ea3de8b53c fix(bounce): declare _frames/_peak in BridgeAudioNode — ReferenceError killed audio sink 2026-08-25 08:42:52 +07:00
admin cd63ae1901 debug(bounce): capture AUDIO_CB_ERR + BRIDGE_AUDIO_ENTER to find silent onAudio failure 2026-08-25 08:40:48 +07:00
admin 662383e538 debug(bounce): EVT_REG/BRIDGE_EVT_RX/WI_QUERY diag + fix PUSH_SENT typo 2026-08-25 08:11:02 +07:00
admin 8ef1935068 fix(midi): prefix _pushEnter/_pushSent/_pushOk/_pushFail with this. — ReferenceError blocked dispatchMidiEvent (v=202608250116) 2026-08-25 07:58:14 +07:00
admin 388da8b380 fix(midi): _pushEvt -> this._pushEvt — ReferenceError killed pushEvent before PUSH_ROUTE; ?v=202608250054 2026-08-25 07:55:11 +07:00
admin 109a8f5c5b debug(midi): PUSH_CALL fingerprint + PUSH_EXC + ?v=202608250051 — isolate stale-JS vs pushEvent break 2026-08-25 07:52:59 +07:00
admin 60d1eee107 debug(midi): diag PUSH_ROUTE/PUSH_ENTER — pin pushEvent->dispatchMidiEvent break point 2026-08-25 07:36:20 +07:00
admin a00c57d44f fix(ui): black screen — isExportingRef.current = isExporting dat truoc khai bao isExporting (TDZ ReferenceError moi render); bo sync, bounce set true/false tuong minh 2026-08-25 07:31:34 +07:00
admin fb59184dd2 fix(bounce): guardPlay drop het note-on — isPlayingRef bi render ghi de =false khi bounce setState; them isExportingRef vao guardPlay (bounce = dang phat that) + TMR_FIRE diag 2026-08-25 07:28:37 +07:00
admin 51891ac8b9 debug: HB heartbeat 250ms + DISPATCH_ON truoc pushEvent + PUSH_SENT/PUSH_MIDI_TIMEOUT (race 800ms) cho bounce silent — phan biet main-thread block vs Rust hang 2026-08-25 07:23:59 +07:00
admin f8a500c050 debug: diag PUSH_MIDI ok/fail cho push_midi_event (nghi midi queue full — bridge khong nhan note trong bounce) 2026-08-25 07:05:41 +07:00
admin f741e1e1f1 debug: DIAG bang overlay textarea co nut Copy thay cho window.alert (text khong copy duoc) 2026-08-25 07:01:38 +07:00
admin ba7c03ca5e fix: bounce silent — AudioRoutingEngine no longer full-tears-down sink on dest change
stopAllPlayback->updateSfRouting->startTrackPlayback reroutes bridge sink
twice during bounce; each dest change previously called this.disconnect()
= BridgeAudioNode teardown + async worklet reload, audio swallowed into
_preBuffer (bounded 64 blocks) forever if worklet never reactivates ->
silent WAV (only old reverb tail). Fix: rely on BridgeAudioNode.connect()
re-pointing _gainNode (already handles dest switch without teardown);
init() only when not ready. Add __sfDiag ROUTE + BRIDGE_AUDIO (frames/
peak/path per sec) to verify at bounce end.
2026-08-24 22:02:31 +07:00
admin 9cd6113086 debug: diag logs cho bounce silent — router/native path 2026-08-24 21:42:49 +07:00
admin bf98038572 fix(bridge): soundfont track khong co trong thu vien (sf_generaluser_gs) fallback sang GM font co san -> bounce ra du track, het cam 2026-08-24 21:13:53 +07:00
admin 74bd6d849b fix(export): offline render tu tai file ve exportDir sau khi hoan thanh
renderMasteringExport truoc day chi hien toast 'Tai ve' (phai click) ->
user tuong khong co file. Gio tu fetch res.url -> saveExportViaDialog
(ghi thang vao exportDir da chon hoac save-dialog), toast kem path.
2026-08-24 20:54:50 +07:00
admin 4b643883ff fix(export): offline render dong export panel + hien progress timeline
renderMasteringExport khong tu dong export panel/progress (chi bounce cu
lam). triggerWavExport: nhanh offline render -> setShowExportPanel(false),
setShowExportProgress(true), setExportProgress(-1) truoc khi goi, reset
progress trong finally.
2026-08-24 20:51:13 +07:00
admin 1061a36626 fix(export): MIDI project WAV export qua server offline render thay vi bounce realtime
Bounce REALTIME race (note-on drop sau STOP / channel reload / watchdog
recovery) ra file chi 1 note roi cam hoac cam han. Offline render server
deterministic da xac nhan ra nhac day du (42.67s RMS ~0.24 moi giay).

triggerWavExport: project co MIDI + source=project + format=wav -> goi
renderMasteringExport (server /api/v1/plugins/render) thay vi bounce.
Bounce chi la fallback khi server disconnected va cache MIDI khong du.
2026-08-24 20:32:19 +07:00
admin 141fa4a141 fix(export): scale TPDF dither to 1 LSB — full-scale noise made bounce exports sound like white noise 2026-08-24 20:17:24 +07:00
admin 2b7c7cef2c Fix export WAV khong mo duoc: default 32-bit float -> PCM 16 (client + server render + plugins.py) 2026-08-24 19:58:44 +07:00
admin 5b747606c7 Rebrand SonicForge Studio -> ScoreFX Studio: UI names, About logo, favicon + icons for all exe builds 2026-08-24 19:28:22 +07:00
admin 2bcc8369a5 fix(export): MIDI offline khong co am thanh - cache preview cam/khong du -> tu chuyen sang bounce REALTIME (capture masterBus.output) thay vi xuat file cam 2026-08-24 18:59:22 +07:00
admin 8639529ecd fix(export): offline export nhan MIDI-only tracks qua midi cache - filter khong loai track khong co buffer 2026-08-24 18:51:14 +07:00
admin 43b68200aa feat(export): modal tien trinh export rieng (khong dung statusbar) - dong modal settings ngay khi bam Export + bao loi that khi khong ghi duoc file 2026-08-24 18:43:50 +07:00
admin 8c972c3df2 fix(export): tu dong dong modal khi hoan tat + throttle setProgress 150ms (toc do export) + dong modal path server 2026-08-24 18:35:24 +07:00
admin 14f8340fdf fix(export): progress bar hien thi duoc - footer ngoai vung scroll + encode chunked yield + yield frame dau 2026-08-24 18:31:28 +07:00
admin fefe95d0a9 feat(export): stop transport khi export offline + check file export khong cam (peak < -60dB -> canh bao) 2026-08-24 18:26:52 +07:00
admin edbb477657 feat(export): thanh tien do offline export (render track VST -> encode -> save) trong ExportModal 2026-08-24 18:24:42 +07:00
admin 993afb9ee4 feat(export): modal chi 2 nut Export/Huy + option Realtime, Bounce MIDI chuyen vao menu File, bo auto-bounce offline 2026-08-24 18:19:11 +07:00
admin 26ca6e6ae0 fix(ui): VST GUI mo 1 click (khong kill bridge khi click lai) + File Export Mix mo modal + loading state embed 2026-08-24 18:10:48 +07:00
admin cea3b08999 fix(ui): move loop-selection effects after state init (TDZ crash -> black screen) 2026-08-24 18:02:09 +07:00
admin 51e62a1158 fix(ui): persist transport loop + panel mixer + redesign export modal (folder picker + default dir) 2026-08-24 17:47:40 +07:00
admin 09bc762218 fix(masterfx): xoa han panel Wave Observer khoi mastering modal - khong con hien sau khi dong GUI 2026-08-24 17:35:33 +07:00
admin 9c81d9c1fa fix(masterfx): Wave Observer scope khong tu chay (toggle default TAT) + preset VST master giu sau save/load 2026-08-24 17:26:36 +07:00
admin 6ec249ef13 fix(fxrt): mirror sidecar exe clean build, probe toggle do latency thuc (Ozone) - cache HIT xac nhan khong reload khi toggle 2026-08-24 17:05:13 +07:00
admin 59e4951912 fix(fxrt): toggle VST bypass khong reload plugin - cache instance trong bridge, chain giu slot bypassed, bypass state trong chainKey, poll 100ms + fade-in 512 samples che gap latency 2026-08-24 16:56:10 +07:00
admin 3a3f46b7d3 fix(fxrt): mo GUI VST khong gay crackle - GUI spawn BELOW_NORMAL, mien watchdog khi mo native GUI, realtime loop ABOVE_NORMAL 2026-08-24 16:38:52 +07:00
admin 9137e7e276 fix(fxrt): giu session realtime khi loop/seek/reschedule - het bypass+reload moi pass loop
- fxRtKeepForRestart flag: nhánh restart/resume (loop selection/project-end,
  sub-tab loop, reschedule items, seek, solo toggle, piano-roll seek, export
  rewind, unmute, playhead, tab-switch resume, ghost play) set flag truoc
  stopAllPlayback -> giu session FX (fxRtStart early-return) -> khong reload
  VST ~4s moi pass loop.
- User stop thật (fade=true), bridge-down, new project, recovery rebuild,
  export end, offline export: khong set flag -> teardown nhu cu.
- Rebuild app.precompiled.js tu source (babel) + giu lai IIFE overlay telemetry.
- Bump cache-buster 202608242200 -> 202608242300 (5 ban).
2026-08-24 15:54:13 +07:00
admin 348079ceae fix(fxrt): doc stats tu fxRt const global, khong phai window.fxRt 2026-08-24 15:40:49 +07:00
admin 69bb449958 feat(fxrt): hien thi telemetry stats tren UI (vi WebView2 khong mo devtools) 2026-08-24 15:35:16 +07:00
admin 559d52e3c5 fix(fxrt): bo pace setTimeout input, gui ngay theo dong ho audio worklet (het crackle sau 3-4s khi chain rong) 2026-08-24 15:28:41 +07:00
admin 5c7fc2c779 chore(probe): dong bo FILL/CAP 48/64 voi worklet 2026-08-24 15:20:26 +07:00
admin c10d2c2f14 chore(engine): gui sess.stats kem latency frame (chan doan drop/publish session that) 2026-08-24 15:20:26 +07:00
admin 272382f73c fix(fxrt): tang cushion worklet 128->256ms + telemetry underrun (giam crackle do main-thread stall) 2026-08-24 15:20:26 +07:00
admin 36aa15e2eb chore(engine): FXRT_BRIDGE_LOG diagnostic stderr bridge vao file 2026-08-24 12:25:14 +07:00
admin e12a8d754a fix(fxrt): chan out ring overflow trong bridge (backpressure, het pointer collision) 2026-08-24 12:25:14 +07:00