New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VST plugin Program presets not accessible #257
Comments
Looking at the MrsWatson source code, this seems to be where the 'Programs' is being printed: It reads from:
Googling for Eg. Here's a go package that implements bindings for it:
Pedalboard doesn't seem to support VST2, but not sure if there is an equivalent function in VST3. We can start by looking at the VST3 SDK:
Searching for Clicking through from that repo lead me to: And searching that repo for
/** Component intern program structure. */
/** Gets the count of Program List. */
virtual int32 PLUGIN_API getProgramListCount () = 0;
/** Gets for a given index the Program List Info. */
virtual tresult PLUGIN_API getProgramListInfo (int32 listIndex, ProgramListInfo& info /*out*/) = 0;
/** Gets for a given program list ID and program index its program name. */
virtual tresult PLUGIN_API getProgramName (ProgramListID listId, int32 programIndex, String128 name /*out*/) = 0;
/** Gets for a given program list ID, program index and attributeId the associated attribute value. */
virtual tresult PLUGIN_API getProgramInfo (ProgramListID listId, int32 programIndex,
CString attributeId /*in*/, String128 attributeValue /*out*/) = 0; /** Basic Program List Description.
\see IUnitInfo
*/
struct ProgramListInfo
{
ProgramListID id; ///< program list identifier
String128 name; ///< name of program list
int32 programCount; ///< number of programs in this list
}; Then we can find the definition for typedef int32 ProgramListID; ///< program list identifier So it definitely seems like the concept of 'programs' still exists in the VST3 SDK. Looking at an example CLI app for using the // Get the plugin information
let info = instance.get_info();
println!(
"Loaded '{}':\n\t\
Vendor: {}\n\t\
Presets: {}\n\t\
Parameters: {}\n\t\
VST ID: {}\n\t\
Version: {}\n\t\
Initial Delay: {} samples",
info.name, info.vendor, info.presets, info.parameters, info.unique_id, info.version, info.initial_delay
); Tracing through the code a bit, I found the definition for Tracing through the code a bit more I found this implementation of plug.info = Info {
// ..snip..
presets: effect.numPrograms,
// ..snip..
preset_chunks: flags.intersects(PluginFlags::PROGRAM_CHUNKS),
} Looking at the
|
Here's less technical explanation on the github docs: |
Just wanted to note that #297 just got merged, which may provide one potential angle of a solution here:
Docs:
|
I have tried to access and change iZotope's VST plugins' Program presets but it seems they are not exposed.
Parameters work ok.
Here's what MrsWatson prints out from plugin —display-info
Notice it's not part of the parameters.
Using plugin.show_editor() allows to access those presets and changing them will change the parameters accordingly after quitting the showeditor(/).
MrsWatson allows to change it while loading the plugin:
"mrswatson64 --plugin 'plugin_name,preset_name’ -i input.wav -o output.wav"
The text was updated successfully, but these errors were encountered: