From 35f7c3822fdc3aff8c8cf519cd9c594a81152423 Mon Sep 17 00:00:00 2001 From: 3dtours Date: Wed, 5 Aug 2026 15:05:44 +0700 Subject: [PATCH] =?UTF-8?q?FIX:=20Piano=20roll=20tab=20kh=C3=B4ng=20xu?= =?UTF-8?q?=E1=BA=A5t=20=C3=A2m=20thanh=20qua=20mastering=20chain=20=C4=91?= =?UTF-8?q?=C6=B0=E1=BB=A3c=20recovery?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/static/js/app.jsx | 5 ++++- app/templates/index.html | 2 +- wiki.md | 7 +++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/static/js/app.jsx b/app/static/js/app.jsx index 2260aa3..634957e 100644 --- a/app/static/js/app.jsx +++ b/app/static/js/app.jsx @@ -17825,7 +17825,10 @@ const App = () => { if ((isPianoRoll ? nanOut : (pk < 0.001 || nanOut))) { masterSilenceFramesRef.current++; const sinceRebuild = performance.now() - (lastMasterRebuildTimeRef.current || 0); - if (masterSilenceFramesRef.current > 45 && sinceRebuild > 3000) { + // NaN = chain CHẾT chắc chắn → rebuild NGAY (3 frame ≈ 50ms). + // pk<0.001 (im lặng nghi ngờ — main) giữ 45 frame (750ms) để loại + // transient gap false-positive. Cooldown 3000 chống rebuild-loop. + if (masterSilenceFramesRef.current > (nanOut ? 3 : 45) && sinceRebuild > 3000) { masterSilenceFramesRef.current = 0; lastMasterRebuildTimeRef.current = performance.now(); console.warn('[Recovery] Master silent while sources active — rebuilding audio graph'); diff --git a/app/templates/index.html b/app/templates/index.html index 9f0fe15..f644f26 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -24,7 +24,7 @@ - +