Presets not showing up in Live for AU version (VST is fine)?

Does anyone know why Live doesn't show my plugin's presets when using the AU version of the plugin, but it does show them when using the VST version of the plugin?

The AU is just the same JUCE audio plugin code as the VST (of course using the AU wrapper), and it does show the presets in another AU host such as Logic for example. So this might also be something specific to Live. But then my question is: how do you guys and gals get Live to show your presets for an AU plugin?

I've implemented both the get/setStateInformation and get/setCurrentProgramStateInformation member functions of AudioProcessor, and also getNumPrograms, get/setCurrentProgram, getProgramName, changeProgramName.

Is there a specific way to let Live know about the presets you're supplying in your AU plugin?
Or maybe I'm just missing another way to deal with presets for AU plugins (although in Logic it's just fine)?

Any advice/hints welcome!

Does anyone know more about dealing with AU presets in Live?

I'd be curious whether Live also doesn't show your AU plugin's presets if it's *not* a JUCE plugin?

This is not a JUCE issue. presets aren't fully standard. for best usage you should provide your own load/save format (simply throw the binary data you're providing on juce callbacks to file).

I've tested with Ableton, LennarDigital Sylenth1 .

VST2 - Shows presets.
AU - No presets.

@Timur: I don't have an answer to that question. I don't have a working AU plugin built without Juce (and I haven't looked into the AU SDK for direct examples recently). It might actually be good if the JUCE audio plugin demo used more than 1 program and also implemented get/setCurrentProgramStateInformation (now it only has 1 program and only implements the get/setStateInformation calls for the complete plugin state), so we have a working "reference" to try in various hosts.

I just found it very strange that Logic does show the presets, but Live doesn't, and was wondering if I might be missing something special regarding Live that is common knowledge (like for RTAS you need to have these .tfx files for your presets in a certain folder in order for ProTools to show them).

BTW, Do you see this issue with Equator as well (no presets when using the AU version in Live on OSX)?

@ttg: I've always been under the assumption that that's what get/setStateInformation and get/setCurrentProgramStateInformation etc... are for: to make sure all hosts have a standard way of accessing plugin presets, either individually, or all together as part of the whole plugin state.
Your test seems to indicate that there are other plugins that show their presets for the VST and not for the AU version in Live (even though I don't know anything about the internals of that plugin, of course).

 

Yes, I see the same issue in Equator, and all other AU plug-ins as well.

In fact, it's a known limitation of Ableton Live. See here: https://www.ableton.com/answers/live-9-does-not-show-audio-unit-factory-presets

Thanks Timur, hadn't seen that before, and it clears up a few things indeed... I guess I'll need to add preset loading/saving in the plugin GUI itself then.

Is it sufficient to call get/setCurrentProgramStateInformation and read/write the data from/to a file stream from within the GUI thread (like in a button listener callback), or is a separate thread needed to handle this? I don't really care if the GUI freezes while loading/saving for half a second.

I guess I'll need to add preset loading/saving in the plugin GUI itself then.

Yes that's what we do in Equator, too.

is a separate thread needed to handle this?

I'd highly recommend a separate thread for reading/writing data to disk.