fix(bridge): đồng đều âm lượng VSTi jbridge, GUI native lên top, modal instrument lọc FX
- calibrate: probe sandbox (jbridge) theo real-time pacing — child render qua SHM consumer-sync, probe µs-speed chỉ đo được silence/attack → makeup=1.0 mọi channel. Thêm virtual probeNeedsRealtime() (SandboxVst2Host → true), calibrate() Sleep ~1 block/5.8ms để child kịp nhận MIDI + render steady-state → makeup đo peak thật (3 channel Qin ≈ 2.6, trước đây = 1.0 → âm lượng đồng đều giữa các track/VSTi). - OPEN_GUI: SetWindowPos(HWND_TOPMOST) + SetForegroundWindow + BringWindowToTop → GUI VSTi hiển thị ở top window, tương tác ngay. - /api/v1/plugins/available: filter vst_instruments + extra theo is_fx của fx_vst_bridge --scan (trước merge entry) — modal Select Instrument chỉ còn soundfont + VSTi, không hiện VST FX (90 → 33).
This commit is contained in:
@@ -255,6 +255,14 @@ int main(int argc, char* argv[]) {
|
||||
fflush(stdout);
|
||||
inst.openGUI(g_hostHwnd);
|
||||
ShowWindow(g_hostHwnd, SW_SHOW);
|
||||
// Đưa GUI lên top để tương tác ngay: TOPMOST tạm thời
|
||||
// (rồi hạ ngay) kéo window lên đỉnh z-order + focus.
|
||||
SetWindowPos(g_hostHwnd, HWND_TOPMOST, 0, 0, 0, 0,
|
||||
SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
|
||||
SetWindowPos(g_hostHwnd, HWND_NOTOPMOST, 0, 0, 0, 0,
|
||||
SWP_NOMOVE | SWP_NOSIZE);
|
||||
SetForegroundWindow(g_hostHwnd);
|
||||
BringWindowToTop(g_hostHwnd);
|
||||
}
|
||||
} else if (c.type == 5) {
|
||||
inst.closeGUI();
|
||||
|
||||
Reference in New Issue
Block a user