How to get the TE built-in plugins to show in a menu?

Doing this doesn’t work, is there some other thing that has to be done to get the Tracktion Engine built-in plugin types to show in the menu? (VST plugins do show up and can be instantiated.)

PopupMenu plugmenu;
engine.getPluginManager().knownPluginList.addToMenu(plugmenu, KnownPluginList::sortByManufacturer);

Should the knownPluginList be used at all…?

The knownPluginList is a juce class so doesn’t know about the internal plugins.
We build our own menus (which include a bunch of non-Engine internal plugins and Racks etc.) in Waveform.

It would probably be a good idea to add a way to add all the built in plugins to a menu but there’s lots of decisions to be made based on categories, naming, what to do when an item is picked etc.

Some sensible defaults in an example app would be a good start though.

OK. Maybe a bit stupid question but how do I enumerate the available internal plugin types then…?

Hmm, not so stupid actually. There currently isn’t a way that I can see.
We’d need to provide access to the juce::OwnedArray<BuiltInType> builtInTypes; in PluginManager.

I’ll stick that on the to do list.


I’d like to access the list too. Is public access to the builtInTypes on the horizon?

I’m having a look at this now but I’m not sure exposing the registered BuiltInTypes helps much. The only thing you can find from this is their xmlTypeName which isn’t really useful for populating menus.

We simply do something like this in Waveform:

template<class FilterClass>
void addInternalPlugin (TreeViewItem& item, int& num, bool synth = false)
    item.addSubItem (new FilterType (String (num++) + "_trkbuiltin",
                                     TRANS (FilterClass::getPluginName()),
                                     FilterClass::xmlTypeName, synth, false));


    addInternalPlugin<VolumeAndPanPlugin> (*this, num);
    addInternalPlugin<LevelMeterPlugin> (*this, num);
    addInternalPlugin<EqualiserPlugin> (*this, num);

I can’t really see how exposing the array would help with this. You’d still need to manually check all the built-in plugins for their xmlTypeName member when iterating the builtInTypes which is actually more work than accessing them directly.

1 Like