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
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
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
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
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
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
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
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
09d8a386fb
fix(fxrt): resume sau long stall phai fade-in (het click), khong hold khi da im lang
2026-08-24 12:25:13 +07:00
admin
5ca2027966
fix(fxrt): underrun xu ly o worklet (hold+fade), bo fade engine, fix wet bus
...
- sf-fx-realtime.js: underrun -> hold block cuoi (HOLD) roi fade-out 4 block ~21ms
gain 1->0 truoc khi im lang (het click cat cung khi main-thread stall chan ca
2 huong - engine khong the gui fade toi kip); resume giua fade -> fade-in nhanh
- plugins.py: bo fade-out/fade-in engine (den tre vo dung + fade-in sau stall tao
dip dinh ky = vibrato/wow&flutter), giu to_thread(time.sleep) poll 2ms
- app.jsx/precompiled/index.html: fix master wet bus (no dry lai) + latency const
FX_RT_ROUNDTRIP_SAMPLES + bump worklet cache-buster v=202608241800
- fxrt_ws_probe.py: consumer stall (mo hinh dung app that), WorkletSim holdfade mode
Probe consumer-stall (app that): light 5/5 hard click 0.245-0.285 -> hard=0;
heavy: recv=sent (het fade thua), hard=0
2026-08-24 11:19:56 +07:00
admin
708e7de32b
fix(audio): offline mix limiter -3dBFS, 2-stage normalize (-14 LUFS + hard peak -1 dBTP), OGG export
2026-08-24 09:10:00 +07:00
admin
10997a65b9
fix(fx-rt): het crackle master FX - limiter attack smooth + crossfade khi bat/tat chain
...
- NativeInstrumentEngine: kAttack 0.9->0.1 (het zipper khi sum nhieu track)
- app.jsx: crossfade masterFxDryGain/masterFxGain thay hard-rewire graph luc
activation/deactivation master chain FX; worklet bao 'started' -> ramp dung
luc; PDC tre sau khi dry silent (tranh gap 80ms)
- sf-fx-realtime.js: fade-in 512 mau luc FILL xong / resume sau underrun
- index.html + addModule: cache-buster v=202608241200
- rebuild app.precompiled.js, copy bundle vao dist/ + src-tauri/resources/
- keo dai fix cac round truoc: FILL 16, FXRT_BURST_MS, REBUFFER, pacing,
VST GUI click/focus, solo crackle
- them harness + plans/patch scripts
2026-08-24 07:46:09 +07:00
admin
2ad833fbe7
fix(masterfx): merge captured preset vao realtime chain
2026-08-23 16:47:35 +07:00
admin
6edfe1db32
fix(fx-rt): het crackle master FX - engine gui block ASAP + worklet FILL buffer 8
...
_pump_output bo pace realtime (truoc: moi block send cach nhau block_sec lam
client queue ~1 -> jitter bridge/WS/GC -> queue can -> zero-fill crackle).
Gio gui het burst ASAP; worklet sf-fx-realtime them FILL=8: chi phat khi
outQueue >= 8 block, underrun -> re-buffer (im lang cho du FILL) thay vi
zero-fill lien tuc. Cap 32 giu nguyen. PDC: FX_RT_ROUNDTRIP_SAMPLES 1792->3840
(RTT ~7 block + FILL 8 block = 15 block @48k) de dry-bypass path khong lech
pha voi mastered. Cache-buster v=202608212401 (precompiled + worklet).
Rebuild PyInstaller + copy 3 noi deploy. Verify: probe crackle3 25s Ozone
rebuffer_events=0 (zero_fill 12 block = startup fill), picker UI PASS (59 VST).
2026-08-23 12:50:11 +07:00
admin
9bb9a234b0
feat(rt+auth): batched input publish boi so 4 (het crackle) + auto-login loopback khong can mat khau
...
- fx_realtime: write_input gom FXRT_IN_SLOTS(4) frame vao _in_pending, flush
ghi 1 lan + h.in_write += n (publish atomic -> bridge take=4 luon, het deficit)
- plugins pump: flush_input_stale(0.004) dau vong lap -> input le khong ket
- auth: _is_loopback(127.*/::1/localhost) -> get_current_user khong token = admin
tu DB (must_change_password=False); POST /auth/local auto-login loopback, LAN 403
- ws fx-realtime: loopback khong token cho phep, remote thieu token -> close 4401
- UI: checkAuthStatus khong savedToken -> thu localLogin, thanh cong vao DAW,
that bai -> modal login nhu cu; cache-buster v=202608212400
2026-08-23 12:00:05 +07:00
admin
0acc3ee7ee
fix(fx-rt): burst 4-block input batch qua bridge — hết lag/giật/crackle master FX
...
- worklet gom 1024 mẫu (4 block) vào 1 frame interleaved, main thread tách 4 WS frame 512 floats
- bridge take=min(avail,4) xử lí 1 call process cho burst → overhead VST3 amortize 4 lần
- engine _pump_output pace theo deadline thay vì sleep cố định (outRead 131→187.5/s)
- FX_RT_ROUNDTRIP_SAMPLES 512→1792 (RTT batching ~7 block)
2026-08-23 11:44:54 +07:00
admin
a105bdb959
Fix: master FX chain khong xu ly sau khi load project — deserialize composite master.bypass thanh vstBypass=true loai het VST3 khoi fxRtChain (chain=[] → fxRtStart early-return → masterBus pass-through, offline export cung tat). Deserializer gio hardcode vstBypass=false (khong co UI nao set flag nay cho master; chi ton tai tu bug deserialize). Build lai app.precompiled.js + copy 3 ban deploy + cache-buster moi. Verify UI: LOADED vstBypass=false, chain VST3 Ozone giu, fxRtChainLen=1; play → fxRt.active=true ws OPEN inQueue=64; DB save moi master.bypass=false.
2026-08-23 10:44:28 +07:00
admin
1d4ff1282b
Gap 13: BWF/INFO metadata cho WAV export — wav_bwf.patch_bwf_metadata chen bext + LIST/INFO (INAM/IART/ISRC/ICMT) truoc data chunk, giu nguyen PCM bits; render_project(metadata=) + RenderRequest.metadata + cloud render task; ExportModal Title/Artist/ISRC; test_66 (178 passed)
2026-08-23 09:11:18 +07:00
admin
94a0bc7401
Gap 7: master volume automation lane — render_engine automation.volume_db (dB interp -30..+3 sau fader truoc normalize), schema master.automation, UI AUTOM panel MasterStripConsole + realtime scheduling tren masterBus.output.gain (play/seek/stop), serialize/parse, test_65 (177 passed)
2026-08-23 09:05:39 +07:00
admin
6b2c9a039b
Gap 8: PDC realtime — WS latency push + dry-path delay compensation
...
Backend: /ws/fx-realtime pump drain get_latencies (SHM ring, bridge da bao REPORT_LATENCY) -> push {cmd:'latency',total,latencies} khi tong doi. Frontend: pdcDelay (DelayNode) giua dryOutput->output bu delay master chain (round-trip 2 block + latency VST3), fxRtApplyPdc cap nhat tu WS frame, reset khi chain off. Test test_63 fake session 1024 -> frame total 1024; full 175 passed.
2026-08-23 08:44:54 +07:00
admin
db12698ba2
Gap 11: A/B reference track — /reference-analyze LUFS/dBTP/centroid + RefCompareModal A/B listen (5 test, 174 passed)
2026-08-23 08:34:09 +07:00