kAudioUnitProperty_FactoryPresets in AudioUnitSetProperty


#1

Hi,

I’m getting an error when trying to set the current program on a third-party AU synth. After some investigations, it seems the plugin returns a -10879 error on AudioUnitSetProperty, because kAudioUnitProperty_FactoryPresets is meant for getting data. According to the specs, we should be using kAudioUnitProperty_PresentPreset that replaces the deprecated kAudioUnitProperty_CurrentPreset.

Has anyone faced the same problem on some plugins?

Cheers!

Mariano


#2

Thanks - yes, it certainly should be using kAudioUnitProperty_PresentPreset there, I’ll get that sorted out!


#3

Just caught and fixed a bug with preset selection in the current modules branch. Selecting a preset crashed all Rob Papen AU plugins, because AudioUnitSetProperty() is passed a null pointer for the preset name. Instead it should be passed an empty string with CFSTR("").

[code]void setCurrentProgram (int newIndex)
{
AUPreset current;
current.presetNumber = newIndex;
current.presetName = CFSTR("");

    AudioUnitSetProperty (audioUnit,
                          kAudioUnitProperty_PresentPreset,
                          kAudioUnitScope_Global,
                          0, &current, sizeof (AUPreset));

}
[/code]
The same plugins did not crash in Logic, so the fix is really necessary and not a bug with the plugins.


#4

Ah, great, thanks!