Skip to content

IMidiMapping::getMidiControllerAssignment called 2,080 times individually on UI thread during VSTi track selection, causing ~200ms UI freeze in REAPER #483

Description

@warrenthebard

Thanks for giving yabridge a shot!

  • I read through both the troubleshooting and the known issues sections, and my issue wasn't listed there

Problem description

When selecting tracks with a bridged VSTi / VST3i, reaper UI lags by ~200ms. This issue is not present when a non-VSTi / VST3i track is selected.

What did you expect to happen?

UI should not lag.

What actually happened?

REAPER queries getMidiControllerAssignment for all 128 CCs × 16 channels = 2,048 calls synchronously on the UI thread when selecting any bridged VSTi track
Each call = one IPC round-trip, causing cumulative ~200ms UI lag
Confirmed via strace: 1379 FUTEX_LOCK_PI acquisitions on VSTi selection vs 350 on FX track selection
-Does not occur with native Linux VST3 instruments (no IPC overhead)
-Does not occur with bridged FX plugins with many more CC parameters, i.e. Pro-Q 4 (since those queries happen on audio thread)
-Reproducible on blank project with single bridged VSTi, zero other plugins

Operating system

Ubuntu Studio 26.04

How did you install yabridge?

manually from latest source

yabridge version

yabridge 5.1.1

yabridgectl version

yabridgectl 5.1.1

Wine version

wine staging 11.9

Plugin

any VSTi / VST3i, in this case using Odeholm Avalanche Bass as example

Plugin type

VST3

Plugin architecture

64-bit

Host

REAPER v7.73

Desktop environment or WM

No response

GPU model

No response

GPU drivers and kernel

No response

Debug log

yabridge.log

Anything else?

truncated debug log, as [Avalanche Bass-15HNTXZp] [host -> plugin] >> 1: IEditController::getParamNormalized(id etc repeats thousands of times in the interim

Requested fix: batch getMidiControllerAssignment queries the same way getParameterInfo was batched

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions