From 384827d1e75549bd24718472b26bc58031e332b1 Mon Sep 17 00:00:00 2001 From: locpham Date: Sat, 22 Aug 2026 04:10:43 +0000 Subject: [PATCH] =?UTF-8?q?fix(available):=20iZotope=20khong=20san=20xuat?= =?UTF-8?q?=20VST=20instrument=20=E2=80=94=20loai=20moi=20module=20iZ*=20t?= =?UTF-8?q?rong=20path=20chua=20'izotope'=20khoi=20nut=20Synth=20(iZOzoneP?= =?UTF-8?q?ro,=20iZRXPro*,=20iZTonalBalanceControlPro)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/v1/plugins.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/api/v1/plugins.py b/app/api/v1/plugins.py index 1b936f4..5f651a7 100644 --- a/app/api/v1/plugins.py +++ b/app/api/v1/plugins.py @@ -215,9 +215,16 @@ async def list_plugins(current_user: dict = Depends(get_current_user)): # EQ.vst3...) nhưng path .dll ≠ path .vst3 → block theo path KHÔNG trúng. # Loại theo TÊN normalized (bỏ prefix iZ, lowercase alnum) — VST2 thật # (DSK Asian DreamZ, Kong Audio...) không trùng tên FX → vẫn giữ. + name = v.get("name") or "" + if name.startswith("iZ") and "izotope" in ((v.get("path") or "").lower()): + # iZotope KHÔNG sản xuất VST instrument — mọi module .dll/VST2 của + # hãng (Ozone/Neutron/Nectar/RX/Tonal Balance...) đều là FX/processor. + # VST2 legacy không introspect được → bridge không đánh is_fx → lọt + # vào nút Synth (iZOzonePro, iZRXProMusicRebalance, iZTonalBalanceControlPro). + return True if not fx_norm_names: return False - return _norm_plugin_name(v.get("name") or "") in fx_norm_names + return _norm_plugin_name(name) in fx_norm_names if blocked: avail["vst_instruments"] = [v for v in avail["vst_instruments"]