Load a .fxp preset in vst~ with a read message

ViGii's icon

Hi !

I would like to know if there is way to load a preset .fxp in vst~ without opening an dialogbox, just by sending a read message to vst~ like "read my_preset.fxp"

Thanks for any help !

Victor

moss's icon

That's exactly how it works. But the file must be in the Max paths or you must give an absolute path.

John's icon

Yes, the preset does need to be in the Max search path.
In my experience there is a wide variety of variables to consider when using messages to vst~ to load presets.
Depending on the vst client being used (not all use the .fxb/.fxp extension when saving their own internal states to file) I have found it useful to:
>Load the vst client into vst~
>set the vst preset you plan to recall using messages to vst~
>use the "write","writebank", or "writepgm" messahe to vst~ to call up a save dialog
>save the preset with a unique name to the Max search path
>use this preset, saved from Max, when sending "read" messages to vst~

I have had success with this process saving and restoring vst instruments and multi-instruments to vst~. In my experience vst~ sometimes can't open a preset file that it has not also created.

ViGii's icon

Thank you both for your answers ! Write and read message without opening a save dialog works but it's not portative on others computer, you don't know where presets are located, it for that I would like to constitute a bank of preset using fxp extension. The problem is I don't find the exact message to send to the vst~ objet (if it exists ... )
Like :

read my_preset.fxp
or
read "my_preset.fxp"
etc...

Thanks again!

dhjdhjdhj's icon
Max Patch
Copy patch and select New From Clipboard in Max.

I keep the following in an abstraction - it returns the path to the folder in which it lives and then I just append a relative path to it to define the location where my .fxp files should live. That makes it portable.

ViGii's icon

Great !! I didn't understand directly vst~ needs the complete path in the message read!

Thanks a lot for you abstraction, it's effectively perfect to make it portable :)

keepsound's icon

Hi, It seem that there's a difference in the file format (also if the extension is right, aka fxp) if you write the file with a simple write or writepgm command and then add the filename, or if you use one of the two options (write or writepgm) adding a full or a conform path. the two files are then different inside, and another host read the first but not the second. You can read the second option only inside Max.
So this seems to be a bug in Max (6.1.8).
Now I'll see if the same happens in Max7 too.
Italo

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

keepsound's icon

No, same error also in Max7.

keepsound's icon

In this screenshot you can see the differences of both files, left is good, right is bad. On the right side only the first part of the file is ok, all the other seems to be older presets part of the plug, and this portion of the file let it reed as an error in the original host (UAD Console).
But the first good file is created right without errors, and it's created without the adding of any path.

Schermata-2017-01-07-alle-00.36.28.png
png
95f's icon

so ive got '...fxp' file working with loadbang > read
can't seem to 'send and receive' message to perform the same task?

Roman Thilenius's icon


you have almost no control over the order of messages when using s/r, so it coud be that the initialisation fails when you loadbang it on open, and you only had luck that it worked without s/r before?

other than that s/r is the same as using a connection.

keepsound's icon

Hi Roman, thank you for writing this response. The system you're talking about it works only if you previously save an fxp, but not with the normal presets files of a plug. Exactly, the Relab LX480 plug, save his presets as xxxx.lx480 files, and is located at /Library (not Users, but Root)/Application Support/Relab Development/LX480 Complete/Presets/... Same with the VSS3 of TC Electronic, that save his presets in ~ (Users)/Library/Audio/Presets/TC Electronic/VSS3/ and as xxx.gpf files. But you can recall them also using normal ints (also greater than 128). Send and returns are not an issue....

Roman Thilenius's icon


never forget that loading files from disk is not neccessarily threadsafe, and that you can not call a preset from a loadbang when the plug-in is not yet present, because it is a function of the plug-in and not the max object.

so... you should only send "17" to vst~ after the plug-in has finished loading.

( twogate is a gate 2 which takes 0+1 instead of 1+2 )

Roman Thilenius's icon


alternative #4 is to implement a custom preset saving system in your VST patch using .txt, .coll, pattrstorage or even hardcode it if you think it´s fun. :)

i believe that is the only way to get that issue with those additional, 128+ external preset files a la TC or arturia under control programmatically.

however, if you need that often, and only for a limited number of plug-ins, why not quickly convert those bullshit format preset files to .fxb or aupreset? that will be better to handle in max.

keepsound's icon

https://cycling74.com/forums/load-a-fxp-preset-in-vst-with-a-read-message-2/replies/1#reply-6060c58e73538a0b37e06ab1 Hi Penfolder, the fxp file format in AU doesn't work at all. As VST3 the extension instead is ##.vst3.preset... and the vst3preset file created by a VST3 plug won't work: not recognized at all by the plug...and the file was created....