vst~ + snapshots in Max for live

novasnoa's icon

Hi everyone

i am trying to overcome the 128 parameter limit that vst-plugins have in Live so that i can address all vst-parameters from the controller that i am creating atm. (This controller will be a combination of a max for live device that controls an elgato streamdeck and any 8-fader/encoder-controller)

I have now experimented a bit with the vst~ object in which you can nest any vst-plugin.
It has absolutely everything that i want but i can't find a way to automatically store the state of the plugin with the live-set. That would obviously be necessary to use it like a normal vst instrument.

The snapshots seem to work great.
I can create snapshots and reload them and as far as i have tried the full state of the plugin is stored in them. But when i save the set or the Device and reload it, they are all gone.
There is an option to embed snapshots but it did not work either.
And there seems no way tho access the data that is stored in a snapshot to transfer it into a dict for example.

I also tried to work with a dict in which i stored all the parameters of the vst and recalled them after reload.
That works but some parameters are not accessible from the vst~ (even tho the snapshots save them) so that it never reloads the full state of a plugin. At least not for more complex plugins.

Anyone ever got that working or has an idea how to make it work?

It would be really great!

Thank you
Robert

Roman Thilenius's icon


wasnt it 400 parameters 15 years ago?

i am not into the details of LOM and M4L, but have you thought about exporting a textfile?

novasnoa's icon

can you export textfiles from snapshots?
that would be great. How?

And i think you could never automate more then 128 vst-parameter at once in live.

Roman Thilenius's icon


i dont think so. but you could export textfiles from VST parameter values derived from a vst object.

novasnoa's icon

You mean by the "get index" message?

Thats what i did with a dict, that i patterized...which would be the best option. And it worked great, but some parameters are just not accessable that way. For example the wavetables of the U-he Hive.
But saving all parameters but the wavetables doesnt make much sense obviously.
The snapshots on the other hand stores the wavetables aswell but i cant save them with the live set.

Or is there another way to derive values from a vst?



Roman Thilenius's icon


"get" is fine. then dict or coll.

novasnoa's icon

well as i said... sadly it doesnt work... any other idea?

Roman Thilenius's icon


what does not work - making the parameters available to another controller plug-in ? there are different of ways how to do so and what the host is capable of should not bother us.

novasnoa's icon

As i stated before: i want to save the fullm state of a vst instrument in an vst~ object within max4live.

Doing this by the "get" message and then storing all the parameters in a dict would be great.
But there are in many vst-plugins some parameters that are not accessible through this method. I dont know why but it is a fact.

For example: In the U-he Hive i cannot access the Wavetables (there are just no parameter for them)
Saving a preset of the Synth without saving the Wavetables will obviously create a broken preset.

The snapshots on the other hand always save the full state of my Plugins. But i cant finf a way to save snapshots within an amxd file.

schlam's icon

You can achieve that with the "get -4" message to vst object and feed a multislider with those values. Multislider can then be saved and interpolate with pattrstorage. I have a patch that do that. Ican post it later..

novasnoa's icon

The "get -4" message will give you the amount of parameters that the Plugin has.
This number i used to start an uzi to get the values of all the parameters.
I stored all the parameter-values in a dict.

The values of this dict can be send back later to the vst.

But there are in many vst-plugins some parameters that are not accessible through this method.
This is the problem....

There are just some parameters that are not in this list.
But with the snapshots they are saved.

It seems the snapshots "see" more parameters then the ones we can get via the "get" message. (or via the generic editor)

I still would be greatfull for your patch.
Maybe i miss something here.

Thanks a lot!

Roman Thilenius's icon


sure, if something in a plugin is not a parameter, you can not capture it as a parameter.

novasnoa's icon

Exactly! That is what i tried to say in my first post.

But if i save snapshots the missing parameters of those plugins are stored and can be recalled recalled.
The problem is that i cant find a way to control the snapshots in an amxd.
I cant embed them in the file so they are saved with the set or the amxd even tho there seem to be functionalities like that...

I was hoping someone has a solution for that.

novasnoa's icon

There is actually one way. You can export snaphots to the hd and import them back.
But then it will be a mess when i have many instances of the same plugin in a set as they will overwrite eachother.
And it would be just a very messy setup. I would much more prefer an internal way with a pattr or something similar.

novasnoa's icon

BTW @Schlam i still would love to see your patch if you dont mind :-)

schlam's icon

Max Patch
Copy patch and select New From Clipboard in Max.

edit : a mistake in the 1st patch I posted

novasnoa's icon

Thanks! Looks really neat even though its not a solution for my problem! Did not know you could use the multislider like this!

Roth's icon

Were you able to find a solution for embedding vst~ snapshots in a M4L device?