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"]