# AudioPluginInstance missing methods

**URL:** <https://forum.juce.com/t/audioplugininstance-missing-methods/22943>\
**Category:** Audio Plugins\
**Created:** [June 15, 2017, 11:03pm UTC](https://forum.juce.com/t/audioplugininstance-missing-methods/22943 "2017-06-15T23:03:23Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![anthony-nicholls](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/anthony-nicholls/32/1246_2.png) [@anthony-nicholls](https://forum.juce.com/u/anthony-nicholls)\
**Post date:** [June 15, 2017, 11:03pm UTC](https://forum.juce.com/t/audioplugininstance-missing-methods/22943/1 "2017-06-15T23:03:23Z")

</div>

It seems there are a number of methods that have not been implemented for the various plugin formats (when creating a plugin host), presumably most of these could be implemented relatively easily.

I’ve looked at the AudioPluginInstance for AU(v2), VST, and VST3, and here are some methods that don’t appear to have been implemented as they are just returning the default from the base class AudioProcessor rather than the derived class…

getParameterID  
getParameterDefaultValue  
getParameterNumSteps  
isMetaParameter  
isParameterOrientationInverted

For context I’m working on a command line host so having implementations for all the methods for all the formats (where possible) is ideal.

---

<div class="post-metadata">

**Author:** ![jrlanglois](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jrlanglois/32/21372_2.png) [@jrlanglois](https://forum.juce.com/u/jrlanglois)\
**Post date:** [June 15, 2017, 11:42pm UTC](https://forum.juce.com/t/audioplugininstance-missing-methods/22943/2 "2017-06-15T23:42:28Z")

</div>

With a quick search through the VST2 code (grep for `VstHostToPlugInOpcodes`), it’s looking like none of those are supported by that format.

These two are not supported by VST3 (grep for `ParameterInfo` in the VST3 SDK):

```auto
isMetaParameter
isParameterOrientationInverted

```

I’m not very familiar with AUv2’s internals, but it does look like it somehow [supports meta parameters](https://developer.apple.com/documentation/audiotoolbox/audependentparameter).

---

<div class="post-metadata">

**Author:** ![anthony-nicholls](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/anthony-nicholls/32/1246_2.png) [@anthony-nicholls](https://forum.juce.com/u/anthony-nicholls)\
**Post date:** [June 16, 2017, 6:28am UTC](https://forum.juce.com/t/audioplugininstance-missing-methods/22943/3 "2017-06-16T06:28:23Z")

</div>

Yes I should have pointed out that I realise some formats might not support some of these.

`getParameterDefaultValue()` and `getParameterNumSteps()` are the ones that particularly took me by surprise - however is seems the VST2 wrapper never calls either of these so I guess you’re right VST2 doesn’t support these. However VST3 does this information, it gets passed to the host from the plugin but as a JUCE host these methods are not overridden in `VST3PluginInstance` and so return surprising results. AUv2 also supports both of these although the reporting of the number of parameter steps isn’t implemented in the JUCE AUv2 wrapper. `isMetaParameter()` is supported by both AUv2 and AUv3, but `isParameterOrientationInverted()` seems to be an AAX feature only.

I guess there is an argument for only implementing methods that are supported by all formats, maybe I could get to this information per format by calling `getPlatformSpecificData()`. Although I would suggest that they are implemented where possible - maybe even with jassert’s in the formats that don’t support them?
