Commit Graph

24 Commits

Author SHA1 Message Date
admin e4c678aabd M19: fix fx PWR OFF->ON crackle/wobble — wake clear_queue play + cho started (het phat audio cu + underrun) 2026-09-07 08:54:47 +07:00
admin 7b27065ed8 M18: fx realtime bridge — FILL 24->40 CAP 48->64, PDC 7936->12032
Chẩn đoán: M17 (MMCSS+priority) hoạt động đúng; glitch còn lại do deficit
engine ~3.3% (session Ozone loopAvg 22.06ms > 21.33ms) + stall input
68-186ms > cushion hiệu dụng ~90ms (FILL 24) -> underrun định kỳ; sau
underrun resume 8-block (~43ms) cushion mỏng. Nâng FILL 40 -> cushion
~170ms che stall <170ms; CAP 48->64 tránh cap-drop sau resume; PDC
FX_RT_ROUNDTRIP_SAMPLES (7+40)*256=12032 giữ align dry path.
2026-09-06 20:50:19 +07:00
admin f56d7eb9cf M17: realtime FX mượt — MMCSS Pro Audio + HIGH_PRIORITY_CLASS (JuceFxLoop), GUI tick cadence động 30/200ms (guiBusy), worklet CAP 32->48, track FX gửi input NGAY như master 2026-09-06 20:11:26 +07:00
admin ef521d9981 M7-M16: VST FX GUI native embed hoàn thiện — fix click-2-lần chuyển slot, anchor lần mở đầu, taskbar icon
- app.jsx: masterGuiOpenRef sync truoc setState — guard chuyen slot doc ref, het race closure (click 1 lan chuyen slot)
- JuceFxGuiHost.cpp: M14 applyAnchor truoc setVisible (het flash giua man hinh); M15 clear WS_EX_APPWINDOW + set TOOLWINDOW (het taskbar icon — JUCE set APPWINDOW 0x40000 thang TOOLWINDOW); M9 owner DAW + M9d skip applyOwner khi an
- JuceFxLoop.cpp: M16 bo clearAnchor khi ed.open (retry ed.open ~700ms xoa rect fresh -> window moi khong anchor duoc lan dau mo panel); chi clear khi Close
- JuceFxEngine/app.jsx/plugins.py/fx_realtime.py: editor session realtime, anchor rect routing, retry ed.open
- Rebuild engine PyInstaller + juce_fx_bridge cmake; binaries dong bo 5 noi (bridge 7464a7ef)
2026-09-06 19:45:14 +07:00
admin 7572d339de V45.21: fix Bug 1 (seek delay - seek branch resumeFill=8 thay vi RESUME_FILL 24 ~128ms -> 43ms nhu wrap V45.4; applyPlayheadDirect stopAllPlayback(false,true) skipRouting nhu seekPlaybackTo) + Bug 2 (attachMidiHandler guard _isPrTabNow nhu vkbNoteOn V45.19 - ARM piano roll khong leak ra MAIN/SESSION) v=202608311642 2026-08-31 16:43:32 +07:00
admin 36f2cf79b1 V45.19: fix Bug 1b (seek#2 + wrap freeze) + Bug 2 (ARM scope theo active tab) v=202608311242
- Bug 1b: worklet clear_queue nho clearMode; dbgPlayFirst post fx_seek_first khi
  mode=seek -> main snap khong can guard 50ms (seek resume nhanh ~43ms < 50ms).
- Bug 1b: loop wrap KHONG freeze playhead nua (chi re-anchor processed) -> het
  playhead dung ~1.5s sau wrap (truoc day freeze 1500ms fail-safe).
- Bug 2: vkbNoteOn chi gom ARM piano roll khi DANG o PIANO_ROLL tab; MAIN/SECTION
  khong ARM -> targets rong -> preview cam. renderKeybed silent flag tuong tu.
- DIAG: preview_diag them trg/prTab (vkb) + sl (keybed).
2026-08-31 12:43:08 +07:00
admin 8a6a79c757 V45.18: fix seek khi play master FX active - clear_queue mode 'seek' (wipe queue cu + resume nhanh 8 block ~43ms thay vi FILL 24 ~128ms) het am tre 1 beat; DIAG preview_diag src=keybed cho Bug 2 ARM piano roll v=202608311222 2026-08-31 12:25:01 +07:00
admin 82796417c1 V45.4 fix SF loop wrap gap: worklet KEEP 4->16 (85ms che stall 68-82ms, het underrun wrap dien hinh) + wrap underrun bo flush (D17 da skip engine flush; worklet flush pha gap seam) + resumeFill 8 (~43ms) thay FILL 24 (~128ms) - gap wrap ~110-235ms giam con vai chuc ms, v=202608291752 2026-08-29 17:54:36 +07:00
admin f3fd0109a7 V45.2 fix Qin silence (20s audio-thread stall) + SF loop downbeat delay
- SandboxVst2Host::loadSerializedState: queuePreset non-blocking (byte-identical
  echo never matched -> waitApply always burned 20s TIMEOUT on the audio thread;
  VST2 restore runs via runOnMain so every startup silenced ALL audio ~20s = Qin
  'failed that su'). Bridge now holds reloading + defers saveStateJob until the
  child republishes a different chunk (clobber protection, no audio block).
- sf-fx-realtime clear_queue('loop'): truncate old tail to KEEP=4 blocks
  (~21ms) instead of keeping FILL 24 (~128ms) -> wrap downbeat no longer ~110ms
  late; skipFade crossfade masks the truncation jump, seam crossfade recount.
- bump ?v= 202608291721 (app.jsx x2, index.html x2); deploy 3 _internal + dist.
2026-08-29 17:25:32 +07:00
admin 2afa828c8f V44: fix crackle - uu tien audio thread bridge (HIGHEST) + FILL 24 (cushion ~90ms) PDC 7936 2026-08-28 17:22:50 +07:00
admin 8990f04357 V43: tang FILL 8->16 chong underrun crackle (cushion 3-8 -> 11-16) + PDC 5888 2026-08-28 16:36:13 +07:00
admin 6cbdbd8e9c G3: 1 clock - PDC latency that + playhead engine-derived 2026-08-28 15:51:19 +07:00
admin fa61712ecc V42+V42A: fix seam click khi loop master FX — worklet wrap crossfade (tail->head) + native WebAudio loop cho bypass (het click beat 0); dip bypass 5ms; PDC playhead freeze/snap 2026-08-28 11:35:32 +07:00
admin fa01ef02f7 V25: fix wobble khi play - re-buffer FILL sau flush (het loop underrun-flush) 2026-08-26 21:37:06 +07:00
admin f38e500326 V24: fix master-chain crackle, 1s lag, solo bypass
- worklet: FILL 48->24 (PDC 7936 dung), flush protocol khi resume sau interruption
  (clear queue + fade-in/crossfade chi voi block moi), drop block stale
- engine fx_realtime: _flush_input_locked NO-DROP (ring day -> giu pending, cap 2048),
  flush_all() dong bo in/out khi worklet resume
- app.jsx: WS flush_done + flushing guard, fallback timer 500ms
- plugins.py: xu ly {cmd:flush} -> flush_done
- index.html: bump v param
2026-08-26 20:15:13 +07:00
admin 28a06134f9 V23: fix crackle master FX - underrun fade-out tu mau cuoi + crossfade 64 mau o cap-drop/resume 2026-08-26 19:45:36 +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 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 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 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 c3aba40ffe Phase 4+5: WebAudio I/O shim + verify DAW checklist — live=export, order, fader, PDC, smoke 2026-08-22 21:02:52 +07:00
admin bb6658e03d fix(fx): realtime VST ngắt quãng khi mở MASTERING PANEL + PWR master không ảnh hưởng âm; pacing WS input/output, gate fxRt theo masterConnected, worklet cap 32 2026-08-21 21:48:56 +07:00