Loading...
Searching...
No Matches
juce_VST3ClientExtensions.h File Reference

Classes

struct  juce::VST3ClientExtensions
 An interface to allow an AudioProcessor to implement extended VST3-specific functionality. More...

Namespaces

namespace  juce

Macros

#define JUCE_VST3_COMPATIBLE_CLASSES
 An optional user defined preprocessor definition for declaring a comma separated list of VST2 and VST3 plugin identifiers that this VST3 plugin can replace in a DAW session.

Macro Definition Documentation

◆ JUCE_VST3_COMPATIBLE_CLASSES

#define JUCE_VST3_COMPATIBLE_CLASSES

An optional user defined preprocessor definition for declaring a comma separated list of VST2 and VST3 plugin identifiers that this VST3 plugin can replace in a DAW session.

The definition of this preprocessor must be defined at the project level, normally in your CMake or Projucer project files.

This information will be used to implement the IPluginCompatibility interface.

If JUCE_VST3_CAN_REPLACE_VST2 is enabled, the VST3 plugin will have the same identifier as the VST2 plugin and therefore you don't need to implement this preprocessor definition.

This preprocessor definition can contain code that depends on any class or function defined as part of the VST3Interface struct but should avoid any other dependencies!

Each compatible class is a 16-byte array that corresponds to the VST3 interface identifier as reported by a plugins IComponent interface. For VST2 or JUCE plugins these identifiers can be determined in the following ways:

  • Use VST3Interface::vst2PluginId() for any VST2 plugins or JUCE VST3 plugin with JUCE_VST3_CAN_REPLACE_VST3 enabled
  • Use VST3Interface::jucePluginId() for any other JUCE VST3 plugins

Examples

// Defines a VST2 plugin this VST3 can replace
JUCE_VST3_COMPATIBLE_CLASSES=VST3Interface::vst2PluginId ('Plug', "Plugin Name")
// Defines a VST3 plugin this VST3 can replace
JUCE_VST3_COMPATIBLE_CLASSES=VST3Interface::jucePluginId ('Manu', 'Plug')
// Defines both a VST2 and a VST3 plugin this VST3 can replace
JUCE_VST3_COMPATIBLE_CLASSES=VST3Interface::vst2PluginId ('Plug', "Plugin Name"), VST3Interface::jucePluginId ('Manu', 'Plug')
// Defines a non-JUCE VST3 plugin this VST3 can replace
JUCE_VST3_COMPATIBLE_CLASSES=VST3Interface::hexStringToId ("0F1E2D3C4B5A69788796A5B4C3D2E1F0")
#define JUCE_VST3_COMPATIBLE_CLASSES
An optional user defined preprocessor definition for declaring a comma separated list of VST2 and VST...
Definition juce_VST3ClientExtensions.h:270

If the parameter IDs between compatible versions differ VST3ClientExtensions::getCompatibleParameterIds() should also be overridden.

See also
VST3Interface VST3ClientExtensions::getCompatibleParameterIds()
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram