Current preset name not always updated by Logic Pro X and Garageband


Changing the current preset name with AudioProcessor::changeProgramName() and then calling updateHostDisplay() does not always result in the updated preset name being displayed by garageband or logic.

You can reproduce that easily with the Juce Plugin Demo, in the AudioProcessor, store the current program name:

String program_name;
const String getProgramName (int index) override                        { return program_name; }
void changeProgramName (int /*index*/, const String& name) override     { program_name = name; }

And in the editor, add button such that each time it is clicked it changes the preset name:

void buttonClicked(Button *) override {
    static int count = 0;
    getProcessor().changeProgramName(0, "This is Program" + String(count));

on my macbook, the name is correctly updated in the host approximately 40% of the time I click on the button.

This issue is a bit annoying, I must say.

Sorry - looking at this is in our backlog and we’ll get to it eventually.

Any updates on this issue? I just stumbled over the same problem with JUCE 5.3.2 and Logic X. Program name changes are not reliably recognised by Logic every second or third time updateHostDisplay() is called…