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_COMPONENT_CLASS
 An optional user defined preprocessor definition for declaring the VST3 plugin identifier as used by the host.
#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_COMPONENT_CLASS

#define JUCE_VST3_COMPONENT_CLASS

An optional user defined preprocessor definition for declaring the VST3 plugin identifier as used by the host.

This is useful if you're creating a VST3 plugin using JUCE that needs to replace a VST3 plugin that was not originally created using JUCE.

If there are multiple identifiers this plugin needs to replace take a look at JUCE_VST3_COMPATIBLE_CLASSES. If required, both preprocessor definitions can be used in combination for maximum compatibility.

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

If JUCE_VST3_CAN_REPLACE_VST2 is enabled, the VST3 plugin will have the same identifier as the VST2 plugin and therefore this preprocessor definition will have no effect!

This preprocessor definition should be defined as a string containing 32 hex characters, for example...

JUCE_VST3_COMPONENT_CLASS="0F1E2D3C4B5A69788796A5B4C3D2E1F0"
#define JUCE_VST3_COMPONENT_CLASS
An optional user defined preprocessor definition for declaring the VST3 plugin identifier as used by ...
Definition juce_VST3ClientExtensions.h:249
See also
JUCE_VST3_COMPONENT_CLASS

Referenced by juce::VST3Interface::jucePluginId().

◆ 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.

At the time of writing not all hosts support this feature, if you don't have multiple plugins with different identifiers already released, consider using JUCE_VST3_COMPONENT_CLASS instead.

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:302

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

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