Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Feature Requests

Reply
 
Thread Tools
Old 02-28-2024, 11:22 AM   #1
Anie
Human being with feelings
 
Join Date: Feb 2019
Posts: 14
Default link to vstpreset file rather than mandatory base64 chunk

Hi!
I'm using reaper by writing scripts to generate reaper files, so my methods may be a little unusual.

I'd like to be able to write a link to a vstpreset / fxp file (i.e. the parameters for a vst plugin), rather than have to write out the chunk directly in my reaper file as usually happens.

This would be more convenient as the chunks are unwieldy, unreadable, and hard to generate properly. I have one vst (Chromaphone) which is awesome but is generating chunks that are like 2000 lines long, it's truly horrible. I know that others have complained about reaper files getting too large, and I think this could go a long way to keeping them trim.

As an analogy, I've been able to load my midi files from a path, rather than using reapers default in-file midi format (this option is found under "Item processing : convert active take MIDI to .mid file reference"). This makes my reaper files more readable and I'm able to generate my midi separately rather than have to convert to reaper's format.

I'd love to be able to import vstpresets similarly. Is there any way of doing this?


Thanks!

Last edited by Anie; 02-28-2024 at 12:41 PM.
Anie is offline   Reply With Quote
Old 05-23-2024, 01:16 PM   #2
Anie
Human being with feelings
 
Join Date: Feb 2019
Posts: 14
Default

Hi again... I'm using a vocal synth vst (Synthesizer V) that has all the instructions in the vstpreset file (i.e. doesn't use midi / controllers). Even with just less than a minute of a single instance, these files are getting prohibitively large, since they have to be loaded inline into the .rpr file. Being able to write individual vstpreset files and linking them in would be a huge help. Reaper is really choking here and I can't begin to write the files I want.
Would love a response from a dev, is there any reason why this couldn't be done?
Anie is offline   Reply With Quote
Old 05-23-2024, 01:19 PM   #3
Anie
Human being with feelings
 
Join Date: Feb 2019
Posts: 14
Default

PS crosspost here sorry
https://forum.cockos.com/showthread.php?t=288715
Anie is offline   Reply With Quote
Old 11-01-2024, 06:59 AM   #4
Anie
Human being with feelings
 
Join Date: Feb 2019
Posts: 14
Default

So, I literally have to reverse engineer the bytecode of the vstpreset headers for each separate plugin for which I want to load a vstpreset through writing the .rpp script. It's kind of onerous. Is there any possibility that a .vstpreset could be loaded by mentioning its name (/path?) Similar to how a midi file can be referenced? It's really limiting that this isn't possible.
Anie is offline   Reply With Quote
Old 11-01-2024, 07:20 AM   #5
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 18,392
Default

Do you mean *.ini files in the preset folder ?

I once did some reverse engineering of those.

The "data" is the Base64 encoding of an array of floating point values of the DAW parameters plus some extra bytes for some Reaper FX chain element settings.

Last edited by mschnell; 03-28-2025 at 12:40 AM.
mschnell is offline   Reply With Quote
Old 02-10-2025, 01:36 PM   #6
Anie
Human being with feelings
 
Join Date: Feb 2019
Posts: 14
Default

hey, thanks for the reply! sorry for the delay I didn't realize I wasn't getting email notifications.

No, I'm not talking about .ini files, I'm talking about .vstpreset files that can be saved for different plugins.

The bytes in the .rpr file are more or less a base64 encoding of that, which is simple enough, but each plugin seems to have a different way of handling the headers in the conversion from .vstpreset to the format in the .rpr file. So for each and every plugin I want to use, I'm mucking around in the bytecode trying to fiddle around and get it to work. It's extremely awkward and onerous.

I'm really not sure why there isn't a way of loading a .vstpreset file or maybe an .fxp file into a .rpr file just by calling it by path, as we can do to load a .midi file by path.

It's a HUGE oversight that means it's virtually impossible to use plugins in a reaper file without clicking them in by hand. Since I'm ~using a computer~ to program my files, and not just clicking them in with my own little fingers, it makes things difficult.

I'd love it if the devs could comment on this!
Anie is offline   Reply With Quote
Old 03-27-2025, 07:57 PM   #7
Karl R
Human being with feelings
 
Karl R's Avatar
 
Join Date: Apr 2024
Location: Pacific Northwest, USA
Posts: 926
Default

Sorry to butt-in to your thread (not that anyone seems to be paying attention). But, is there anything 'special' about the way Reaper handles .vstpreset files? I'm having a problem with a VST3 and its presets vis-a-vis Reaper's FX window: Reaper keeps throwing an error message* when I try to select a preset from its drop down menu and it won't load the presets, but when I use the plugin's own preset selector functionality - that works. Yet, nothing changes in Reaper's preset selection drop down menu, I can't save presets, etc. The two don't seem to be 'communicating'...

I'm thinking maybe this is related to what you're doing? Or more sheepishly, that you might have a clue since you seem to know about .vstpreset files?


*"Error loading [patchname] .vstpreset file does not appear to be for this plugin."
Karl R is offline   Reply With Quote
Old 03-28-2025, 08:00 AM   #8
Anie
Human being with feelings
 
Join Date: Feb 2019
Posts: 14
Default

Hi Karl,
I don't have any problem loading .vstpresets through the reaper gui (using the + button on the FX interface and selecting import VST3 preset (.vstpreset)). Are you having this problem with multiple plugins? If you save (export) a preset using the same reaper functionality and then immediately import it, do you get this problem? If you are able to run the plugin through another host or standalone app, can it load the same vstpresets? Sorry, all I have is suggestions for diagnosing the problem -- I suspect it's not actually reaper's problem, since I think reaper is just feeding the .vstpreset file to the plugin and shouldn't malfunction in that way...

The problem I'm having is only tangentially related, I think. I don't think this is relevent to you, Karl, but I'll reiterate here in case anyone else reads this -- when reaper saves the plugin as part of the .rpr file, it can only do so in a kind of finnicky encoding that adds some headers and footers with respect to the .vstpreset code and requires the whole .vstpreset code (which can be very large) to be written explicitly -- rather than linking to an external .vstpreset file. Fixing this issue, similarly to how .midi files can be loaded by just mentioning them, could keep .rpr file sizes down and dramatically increase the feasibilility of generating .rpr files though the composition dsl my partners and I work with -- actually the .rpr format is amazingly good for this, so the lack of .vstpreset support is a very strange oversight!
Anie is offline   Reply With Quote
Old 03-28-2025, 12:58 PM   #9
Karl R
Human being with feelings
 
Karl R's Avatar
 
Join Date: Apr 2024
Location: Pacific Northwest, USA
Posts: 926
Default

Thanks so much for your reply...

Quote:
Originally Posted by Anie View Post
Are you having this problem with multiple plugins?
I actually don't have any other VST3i plugins at the moment, I'll have to get one going and try that.

Quote:
Originally Posted by Anie View Post
If you save (export) a preset using the same reaper functionality and then immediately import it, do you get this problem?
No. I can select a preset from the plugin's own preset selector thing and save using Reaper's "+" button/save function. And I can then import that back into the plugin.

Quote:
Originally Posted by Anie View Post
If you are able to run the plugin through another host or standalone app, can it load the same vstpresets?
I don't have another host, and don't really have the means to set one up. Though lately it sure seems like I'm needing to have a 'testing rig' of a sort, to sort through issues... Not really looking forward to setting something up, though.

Quote:
Originally Posted by Anie View Post
Sorry, all I have is suggestions for diagnosing the problem -- I suspect it's not actually reaper's problem, since I think reaper is just feeding the .vstpreset file to the plugin and shouldn't malfunction in that way.
No need to apologize, your suggestions are really helpful, give me some direction rather than me just staring out into space wondering, 'Gee, what's going on here? I have no clue...' No, really helpful, I'm very grateful.


Well, I see now your issue isn't so related to my own, here's hoping you get yours solved:
Quote:
Originally Posted by Anie View Post
The problem I'm having is...when reaper saves the plugin as part of the .rpr file, it can only do so in a finnicky encoding that adds some headers and footers with respect to the .vstpreset code and requires the whole .vstpreset code (which can be very large) to be written to the .rpr -- rather than simply linking to an external .vstpreset file.

Fixing this issue - similar to how .mid files can be loaded by just mentioning them - could keep .rpr file sizes down, and could dramatically increase the feasibility of generating .rpr files with the composition dsl my partners and I work with. Actually, the .rpr format is amazingly good for this, so lack of .vstpreset support is a very strange oversight!
Karl R is offline   Reply With Quote
Old 03-28-2025, 01:13 PM   #10
Karl R
Human being with feelings
 
Karl R's Avatar
 
Join Date: Apr 2024
Location: Pacific Northwest, USA
Posts: 926
Default

Not that I know anything about this sort of thing, but, when I was searching around for .vstpreset info, I came across a Steinberg website and saw that they have a lot to do with providing VST developer tools. I wonder if your 'lack of .vstpreset support' could have anything to do with some non-technical matters, such as licensing/licensing fees or something? Like, maybe once you do 'such and such', the developer's technically obligated to pay licensing fees to Steinberg? But if you do things in a-round-about way - you don't?...

Totally off the cuff idea, but I like voicing off the cuff ideas... When the logical approach isn't happening, it's usually something 'illogical' behind the scenes that's getting in the way - like usually something to do with money, or risk/liability, or the like... I just read some stuff not too long ago where plugin developers were perpetually complaining about Steinberg and their requirements, like it was a 'thing' in the plugin developer world.
Karl R is offline   Reply With Quote
Old 04-20-2025, 12:53 PM   #11
Anie
Human being with feelings
 
Join Date: Feb 2019
Posts: 14
Default

interesting thought. i wonder...
Anie is offline   Reply With Quote
Old 06-23-2025, 02:54 PM   #12
Anie
Human being with feelings
 
Join Date: Feb 2019
Posts: 14
Default

hey, so i painstakingly worked out the bytes for all my plugins, and in the latest versions of reaper (after 7.33) something's changed and my workarounds for loading vstpresets don't work anymore in later versions.

i ask once again, is there any way we could load a .vstpreset by linking it in the .rpr file, rather than as a base64 chunk?

or is there any way for devs to share the code or protocol that transforms the .vstpreset into the base64 chunk, so that it can be used to generate a .rpr file?

.rpr files are a wonderful format because i can generate really complex scores for reaper. the ONE thing that doesn't work is the plugin presets. which are essential! is there any plan for making this usable in reaper?
Anie is offline   Reply With Quote
Old 06-24-2025, 12:43 AM   #13
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 18,392
Default

Quote:
Originally Posted by Anie View Post
in the latest versions of reaper (after 7.33) something's changed and my workarounds for loading vstpresets don't work anymore in later versions.
That is exactly why there is no documentation. If there were the format would not allowed to be changed when technically necessary by evolving Reaper.
Why exactly do you want to decode these files ?
IMHO a better way to deal with such information is to do a Reaper Script that reads the DAW parameters of the plugin using the Reaper API and saves it in your own format.
mschnell is offline   Reply With Quote
Old 06-24-2025, 06:09 AM   #14
Anie
Human being with feelings
 
Join Date: Feb 2019
Posts: 14
Default

Thanks for the reply!
I definitely don't *want* to be messing around with the base64 chunk, but it's the only way I've been able to do what I need to do (write plugin settings into a .RPR file).

Your suggestion "a Reaper Script that reads the DAW parameters of the plugin using the Reaper API and saves it in your own format" sounds really interesting -- currently have no experience with that side of things (reascript/API) but you can bet I'll be looking into it! Also it's not the DAW parameters as in the envelopes that I need, it's the parameters that are saved in the chunk itself. I'd then have to be able to load the parameters in a new reaper file so i'd have to be able to save them in 0--1 format and then use reaper's parameter envelope settings but that's acceptable!

Just to answer why I need to do this --

My project involves programmatically generating complex reaper scores. Reaper has an awesome format for doing this, and the only significant obstacle I've come across is being able to load plug-in settings (e.g. as .vstpreset files).

I'd like to be able to just load vstpreset files by mentioning them in the .RPR file. Midi works in this way -- I just save a .midi file in the same folder and mention it in the reaper file, rather than having to write all my midi in reaper's format.

Since this currently isn't possible for plugin settings and presets must be explicitly written in the file in the base64 chunk, my workaround has been to figure out how to write this base64 chunk! I will have to figure this out all over again if there's no other option, but I do like your suggestion, that may be better!

I'm amazed at how wonderful the reaper file format is with the exception of this significant oversight. When we can generate files properly rather than having to click things in by hand, we can do extravagant and wonderful things with reaper.
Anie is offline   Reply With Quote
Old 06-26-2025, 05:05 PM   #15
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 11,228
Default

@Annie

Quote:
Originally Posted by v7.41rc2 - June 26 2025
+ RPP: support LOAD_PRESET_FROM_FILE in <FX following <VST, to allow programmatic loading VST/VST3 fxp/fxb/vstpreset file
https://forum.cockos.com/showthread....04#post2875404

Seems it has been added for you 😉
X-Raym is offline   Reply With Quote
Old 06-27-2025, 02:53 AM   #16
Wanekk
Human being with feelings
 
Wanekk's Avatar
 
Join Date: Mar 2019
Location: Minsk
Posts: 92
Default

Of course, I apologize for seeing this discussion late, and I have my own solution in the form of a script archiving tracks due to the accumulation of excessive information about the condition of the instruments. However, since you are implementing a similar feature in the program, I would advise, for example, to enable an option for a specific track/element that is loaded from plugins into a file and placed in a special folder in the project directory, then the project will link only to these files. In this case, the project will not increase to 50 MB.
Wanekk is offline   Reply With Quote
Old 06-28-2025, 01:26 PM   #17
Anie
Human being with feelings
 
Join Date: Feb 2019
Posts: 14
Default

oh wow, this is so exciting! going to check it out now :-)


Quote:
Originally Posted by X-Raym View Post
@Annie



https://forum.cockos.com/showthread....04#post2875404

Seems it has been added for you 😉
Anie is offline   Reply With Quote
Old 07-09-2025, 03:11 PM   #18
drew
Mobile
 
drew's Avatar
 
Join Date: Jan 2006
Location: London & São Paulo. Hardcore commercial REAPERite
Posts: 1,672
Default

Quote:
Originally Posted by Anie View Post
Since this currently isn't possible for plugin settings and presets must be explicitly written in the file in the base64 chunk, my workaround has been to figure out how to write this base64 chunk! I will have to figure this out all over again if there's no other option, but I do like your suggestion, that may be better!

I'm amazed at how wonderful the reaper file format is with the exception of this significant oversight. When we can generate files properly rather than having to click things in by hand, we can do extravagant and wonderful things with reaper.
Just to say.. thanks SO MUCH for asking about this and for articulating your need in a way that clearly got noticed by the team!

It's going to be very helpful to be able to do this.
__________________
Proudly using REAPER exclusively for...
* Media and event music composition & production, sound design + auto-processing at Qsonics.com
* Broadcast branding, promos, education & training and narration voice-overs at DrewWhite.com
drew is offline   Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 04:53 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.