Logic Pro Displays Second to Last Bool Parameter as Dropdown Instead of Checkbox

Hello everyone,

I’ve noticed an interesting behavior in Logic Pro when dealing with the second-to-last boolean parameter in AudioUnit plugins. It appears that this specific parameter is displayed as a dropdown menu (“Off” and “On (base channel 1)”) instead of the typical checkbox in the generic “Controls” view of the plugin. This occurs not only in plugins created with JUCE but also in non-JUCE plugins.

Here are two screenshots demonstrating how these parameters appear in Logic Pro’s interface:


I set up all parameters in the tree in the same fashion for this test:

PluginProcessor::APVTS::ParameterLayout PluginProcessor::createParameterLayout()
{
    juce::AudioProcessorValueTreeState::ParameterLayout layout;
    for (int i = 0; i < 5; ++i)
    {
        const auto id = juce::String("param") + juce::String(i);
        const auto paramId = juce::ParameterID(id, 1);
        const auto displayName = juce::String("Parameter ") + juce::String(i) + juce::String(" On");
        layout.add(std::make_unique<juce::AudioParameterBool>(paramId, displayName, false));
    }
    return layout;
}

Has anyone else observed this behavior? More importantly, does anyone know why this happens? Any insights or explanations would be greatly appreciated.

Thank you!

If you see this behaviour in non-JUCE plugins, and the same plugins behave corrrectly in other DAWs, then this is very likely to be a bug in Logic. I’d recommend filing a bug report.

1 Like