vst~ questions

bkshepard's icon

1. If I send a message: (plug <plugin name>) to a [vst~] object and have both AU and VST versions of <plugin name>, which one gets loaded? How can I tell?

2. Is there a way to tell whether a plugin is a virtual instrument or an effect?

3. I've been working with the "channel_plug.maxpat" file from the vst~ help file which returns a huge number of results with multiple duplicate names. Is there a way to whittle that down to only show one name and, hopefully, only show the ones that are virtual instruments?

Thanks!

Roman Thilenius's icon

2.

"get 7"

but this of course only works _after loading them one by one.

the only solution for knowing before could be that you sort your stuff otherwise.

e.g. move all instruments in a subfolder, or name the files all with "i " at the beginning.

my instruments are in an instruments subfolder since ever.

bkshepard's icon

Hmmm, I get really inconsistent results. When I send a "get 7" message to the vst~, almost everything, whether it's a synth or an FX produces a 0 from the vst~ 4th outlet. The situation I'm working on won't allow the plugins to be put into different folders. Thanks for the suggestions, though!

bkshepard's icon

Ah, "get -7" not "get 7" works, thanks!

Does vst~ load the vst or au version of a plugin by default when both exist?

Roman Thilenius's icon

oh sorry yes minus. i didnt know the number by heart and looked it up in the online reference- there it says "get-7" (!)

Roman Thilenius's icon

your next question will be how to know when the loading of plug-in has finished. no, there is no flag for that. best practice is to check for the "get" messages you want every 1 second or so - until you get an answer.

MuShoo's icon

So, not knowing exactly what it is you want to do as your final goal, still thought this might be worthwhile to mention:

A lot of programs I use (I'm thinking mostly of Soundminer, here) have a 'scan plugins' function. Basically, it goes through a semi-arduous process of sequentially loading each plugin in your plugin folder, checking if they're valid, etc (if you have an iLok-protected plugin that you don't have the license for, it'll pop up a window asking for it - if you decline it won't put that plugin in the list). It then keeps a... I guess I'll call it a cache of plugin names, and I assume the location of that plugin on the drive.

My point is, you could probably relatively easily implement a function like that - load every plugin you've got, store them all as a dict or a coll, and then instead of making the user browse files, or search a plugin folder, you'd just use your cache. Users could then rescan if necessary (in soundminer, if you add a new plugin, you have to rescan everything, it's annoying), or give an option to just 'add a new plugin to the dictionary' one by one. You could then save any relevant information ("is this a soft synth?" "is this AU or VST?" etc) into your cache, so you can then sort and do whatever.

bkshepard's icon

Thanks Roman and Mushoo.

Long story, but I'm essentially trying to create a controller for VST and AU soft synths that people can use without having to use a DAW. I'd like to populate a menu with the list of available VIs on the user's computer. There's the getplugs.js script in the [vst~] help file, but it returns a huge list with multiple redundancies when you have the same-named plugin in different formats. If you click the plug-ins icon on the left toolbar, or select "Files" from the little yellow triangle on the left side of the [vst~] object, you get nicely organized and formatted lists of available plugins. I'm wanting to create a nice user GUI that accesses the same information in a patcher that is in presentation mode and doesn't have toolbars.