Tell me the plugins I need to load. And auto unload when not in use

I’ve noticed that if I add all the available plugins supported by MM that some patches ‘Ambient Gen’ as an example, will drive the CPU > 100% and not run. Not sure why but I can imagine memory filling up and the CPU swapping.

So, since there is a manifest at the start of the .yml of which plugins are in use, can MM let me know? I can then load only the ones I need. You could even imagine and auto load feature (not the one at startup).

As an example, if I try and load something that requires Elastika, can MM tell me ‘Sapphire’ plugins are not loaded’. That way I can load only the plugins needed for a patch.

Conversely, since loading plugins can affect performance, and if you are switching patches in a live situation, can plugins be unloaded if not in use? I hate to have to isolate MM with a separate power supply in the rack to be able to reboot it without shutting down the whole setup.

I am still new to MM so if there are features for this already let me know.

Yeah, it would be great to have a pop-up that says “load all plug-ins needed for this patch?“ whenever I try to load a patch and don’t have all the necessary plug-ins loaded.

1 Like

an “autoload missing plugins” feature request was made some time ago (can’t seem to find that thread) and dan agreed it was worth implementing at some point. having that feature, along with “unique buffer/rate setting per patch” would be hugely helpful together.. just drop any patch on the mm and itll run immediately. no fuss.

I didn’t see it either. often ideas on forums are added to a topic with a totally unrelated title. glad ‘Dan’ (whom I’m now assuming is ‘the’ 4ms MM guy) has been thinking about it.

And as a now retired C/Python developer and project manager for f500 companies, I would be more interested in ‘feature solid’ rather than ‘feature complete’. And feature solid would also include the features that make the product solidly useful (as well as robust). MM is on its way to being solid!

Thanks.

.m

Right, these are both on the TODO list. We’ll get to them eventually!

CPU usage and RAM consumed by plugins are not related to each other (there’s no disk swapping or virtual memory or paging etc.) . So you can pre-load all available plugins without causing any issues — unless you are running low on memory. Running out of memory is pretty hard to do unless you are manually loading large wav files into your patch.

For one of the big downsites of MM is the fact that i have to menu dive as first action after turning it on. It kills my vibe no joke. I would be really glad if I could enable an auto option for plugin management that loads what is nessesary to run the patch. I dont see a reason to load a patch without certain modules(not working then), so why should this be possile? I would like to have the option to autoload eiher the last loaded patch`s (for quick boot) plugins or all the nessesary ones for the present patches on the sd(for playing a sequence of patches). I know there is an option to autoload the currently loaded ones but that seems not so strait forward to me. I would like to let the meta find and load the missing plugs for me because Im lazy :rofl:

I know it is probably not possible for this hardware version of the MM, but future versions should have plugins loadable into a non-volatile memory space. Load them once and that’s it. Reload them once when they get updated.

That of cause would be even more awsome but I think a check on startup for the required plugins and loading them should be no problem, right? I normally end up loading all the plugins, as I cant really remember(or never really knew) the exact names of the plugin. So the prodedure takes a decent amount of time and could be shortened imo. You could even think about only loading the exact plugins you need for the patch, instead of loading all of them brandwise.

yeah, has been requested a while ago…
basically, the idea is to load plugins that are required for a particular patch automatically.

last discussion of this can be found here - lazy loading

there is an edge case here, which is what if you don’t have the plugin on your sdcard? perhaps loading a ‘blank module’ in its place, so you know what to go and look for.

the other edge case, is we be able to unload modules that are no longer in use.

this is useful, not just for a users own patches, but also if you download shared patches, - which you have no idea what modules/plugins its using.

anyway… @danngreen is aware of this as a useful feature request.
iirc, the first step was to ensure the modules could be loaded and unloaded reliably.
again, iirc, the change to call this ‘pre-load’ from autoload, was part of this FR.
(so that auto load could be used to mean ‘from the patch’)

so its kind of ‘in play’ I believe… but then again , 4ms are very busy with many FR :slight_smile:

for now, the best bet, if you dont mind an increased start up time is to load all plugins. theres plenty of memory on the MM so its not really an issue..

also the advantage of pre-loading modules is, it will make switching between patches faster - as it doesn’t not need to load/initialise modules (as they are pre-loaded)

This is actually what we’ve been working on for the next firmware release (v2.1.3).

You can test it out here: Release Firmware Version: firmware-v2.1.3-rc2 · 4ms/metamodule · GitHub
Hopefully v2.1.3 will be released in the next few days, we’re just testing it at this stage (and figuring out how to handle some edge cases)

There’s a preference to select whether you want it to always try to load missing plugins when you open a new patch, or to pop-up a dialog box listing the missing ones and ask you, or to do nothing (current behavior). If it tries to load plugins but can’t find all the missing modules then it lists them out for you so at least you know what’s missing.

As for auto-unloading, I’m not sure this would be helpful. It would definitely make opening patches slower in general. About half of the official plugin brands are under < 1MB, and only six plugins are over 5MB, so there’s not much memory to be saved. If you look at the patches shared in the Patch Gallery, there are several plugin brands that are in most patches, but no brand is in 100% of patches. So if there was an auto-unload feature and you opened a random sample of Patch Gallery patches, those brands would constantly be loading and unloading, taking 10-30 seconds each time you open a patch. It’s much faster to just keep them in memory. If in the rare case you are squeezing out every last megabyte because of some specific project, then you can unload all plugins manually to free up memory. The cool thing about the auto-loader as we have it in v2.1.3 is that you only have to wait for the plugin to load the first time you open the patch. Then the next time you open a similar patch with the same plugins, you don’t have to wait for it to load again – it just happens instantly.

4 Likes

This is great! I had been autoloading all the plugins but that makes startup really slow; this will spread out the wait time (and some plugins never get used, honestly, so they’ll never get loaded).

Yep, that’s the idea – spread out the wait time, and avoid some of it completely if you don’t use a particular plugin in a given session

3 Likes