LMMS
Loading...
Searching...
No Matches
juce::AudioPluginInstance Class Referenceabstract

#include <juce_AudioPluginInstance.h>

Inheritance diagram for juce::AudioPluginInstance:
juce::AudioProcessor juce::AudioProcessorGraph::AudioGraphIOProcessor

Classes

struct  Parameter

Public Types

using HostedParameter = HostedAudioProcessorParameter
Public Types inherited from juce::AudioProcessor
enum  ProcessingPrecision { singlePrecision , doublePrecision }
enum class  Realtime { no , yes }
enum  WrapperType {
  wrapperType_Undefined = 0 , wrapperType_VST , wrapperType_VST3 , wrapperType_AudioUnit ,
  wrapperType_AudioUnitv3 , wrapperType_AAX , wrapperType_Standalone , wrapperType_Unity ,
  wrapperType_LV2
}
using ChangeDetails = AudioProcessorListener::ChangeDetails

Public Member Functions

 ~AudioPluginInstance () override=default
virtual void fillInPluginDescription (PluginDescription &) const =0
PluginDescription getPluginDescription () const
virtual void getExtensions (ExtensionsVisitor &) const
void addHostedParameter (std::unique_ptr< HostedParameter >)
void addHostedParameterGroup (std::unique_ptr< AudioProcessorParameterGroup >)
void setHostedParameterTree (AudioProcessorParameterGroup)
HostedParametergetHostedParameter (int index) const
virtual voidgetPlatformSpecificData ()
String getParameterID (int index) override
float getParameter (int parameterIndex) override
void setParameter (int parameterIndex, float newValue) override
const String getParameterName (int parameterIndex) override
String getParameterName (int parameterIndex, int maximumStringLength) override
const String getParameterText (int parameterIndex) override
String getParameterText (int parameterIndex, int maximumStringLength) override
int getParameterNumSteps (int parameterIndex) override
bool isParameterDiscrete (int parameterIndex) const override
bool isParameterAutomatable (int parameterIndex) const override
float getParameterDefaultValue (int parameterIndex) override
String getParameterLabel (int parameterIndex) const override
bool isParameterOrientationInverted (int parameterIndex) const override
bool isMetaParameter (int parameterIndex) const override
AudioProcessorParameter::Category getParameterCategory (int parameterIndex) const override
Public Member Functions inherited from juce::AudioProcessor
virtual ~AudioProcessor ()
virtual const String getName () const =0
virtual StringArray getAlternateDisplayNames () const
virtual void prepareToPlay (double sampleRate, int maximumExpectedSamplesPerBlock)=0
virtual void releaseResources ()=0
virtual void memoryWarningReceived ()
virtual void processBlock (AudioBuffer< float > &buffer, MidiBuffer &midiMessages)=0
virtual void processBlock (AudioBuffer< double > &buffer, MidiBuffer &midiMessages)
virtual void processBlockBypassed (AudioBuffer< float > &buffer, MidiBuffer &midiMessages)
virtual void processBlockBypassed (AudioBuffer< double > &buffer, MidiBuffer &midiMessages)
int getBusCount (bool isInput) const noexcept
BusgetBus (bool isInput, int busIndex) noexcept
const BusgetBus (bool isInput, int busIndex) const noexcept
virtual bool canAddBus (bool isInput) const
virtual bool canRemoveBus (bool isInput) const
bool addBus (bool isInput)
bool removeBus (bool isInput)
bool setBusesLayout (const BusesLayout &)
bool setBusesLayoutWithoutEnabling (const BusesLayout &)
BusesLayout getBusesLayout () const
AudioChannelSet getChannelLayoutOfBus (bool isInput, int busIndex) const noexcept
bool setChannelLayoutOfBus (bool isInput, int busIndex, const AudioChannelSet &layout)
int getChannelCountOfBus (bool isInput, int busIndex) const noexcept
bool enableAllBuses ()
bool disableNonMainBuses ()
int getChannelIndexInProcessBlockBuffer (bool isInput, int busIndex, int channelIndex) const noexcept
int getOffsetInBusBufferForAbsoluteChannelIndex (bool isInput, int absoluteChannelIndex, int &busIndex) const noexcept
template<typename FloatType>
AudioBuffer< FloatType > getBusBuffer (AudioBuffer< FloatType > &processBlockBuffer, bool isInput, int busIndex) const
bool checkBusesLayoutSupported (const BusesLayout &) const
virtual bool supportsDoublePrecisionProcessing () const
ProcessingPrecision getProcessingPrecision () const noexcept
bool isUsingDoublePrecision () const noexcept
void setProcessingPrecision (ProcessingPrecision newPrecision) noexcept
AudioPlayHeadgetPlayHead () const noexcept
int getTotalNumInputChannels () const noexcept
int getTotalNumOutputChannels () const noexcept
int getMainBusNumInputChannels () const noexcept
int getMainBusNumOutputChannels () const noexcept
template<size_t numLayouts>
BusesLayout getNextBestLayoutInLayoutList (const BusesLayout &layouts, const short(&channelLayoutList)[numLayouts][2])
double getSampleRate () const noexcept
int getBlockSize () const noexcept
int getLatencySamples () const noexcept
void setLatencySamples (int newLatency)
virtual double getTailLengthSeconds () const =0
virtual bool acceptsMidi () const =0
virtual bool producesMidi () const =0
virtual bool supportsMPE () const
virtual bool isMidiEffect () const
const CriticalSectiongetCallbackLock () const noexcept
void suspendProcessing (bool shouldBeSuspended)
bool isSuspended () const noexcept
virtual void reset ()
virtual AudioProcessorParametergetBypassParameter () const
bool isNonRealtime () const noexcept
Realtime isRealtime () const noexcept
virtual void setNonRealtime (bool isNonRealtime) noexcept
virtual AudioProcessorEditorcreateEditor ()=0
virtual bool hasEditor () const =0
AudioProcessorEditorgetActiveEditor () const noexcept
AudioProcessorEditorcreateEditorIfNeeded ()
void updateHostDisplay (const ChangeDetails &details=ChangeDetails::getDefaultFlags())
void addParameter (AudioProcessorParameter *)
void addParameterGroup (std::unique_ptr< AudioProcessorParameterGroup >)
const AudioProcessorParameterGroupgetParameterTree () const
void setParameterTree (AudioProcessorParameterGroup &&newTree)
virtual void refreshParameterList ()
const Array< AudioProcessorParameter * > & getParameters () const
virtual int getNumPrograms ()=0
virtual int getCurrentProgram ()=0
virtual void setCurrentProgram (int index)=0
virtual const String getProgramName (int index)=0
virtual void changeProgramName (int index, const String &newName)=0
virtual void getStateInformation (juce::MemoryBlock &destData)=0
virtual void getCurrentProgramStateInformation (juce::MemoryBlock &destData)
virtual void setStateInformation (const void *data, int sizeInBytes)=0
virtual void setCurrentProgramStateInformation (const void *data, int sizeInBytes)
virtual void numChannelsChanged ()
virtual void numBusesChanged ()
virtual void processorLayoutsChanged ()
virtual void addListener (AudioProcessorListener *newListener)
virtual void removeListener (AudioProcessorListener *listenerToRemove)
virtual void setPlayHead (AudioPlayHead *newPlayHead)
void setPlayConfigDetails (int numIns, int numOuts, double sampleRate, int blockSize)
void setRateAndBufferSizeDetails (double sampleRate, int blockSize) noexcept
virtual int32 getAAXPluginIDForMainBusConfig (const AudioChannelSet &mainInputLayout, const AudioChannelSet &mainOutputLayout, bool idForAudioSuite) const
virtual CurveData getResponseCurve (CurveData::Type) const
void editorBeingDeleted (AudioProcessorEditor *) noexcept
virtual void updateTrackProperties (const TrackProperties &properties)
virtual int getNumParameters ()
void beginParameterChangeGesture (int parameterIndex)
void endParameterChangeGesture (int parameterIndex)
void setParameterNotifyingHost (int parameterIndex, float newValue)
int getNumInputChannels () const noexcept
int getNumOutputChannels () const noexcept
const String getInputSpeakerArrangement () const noexcept
const String getOutputSpeakerArrangement () const noexcept
virtual const String getInputChannelName (int channelIndex) const
virtual const String getOutputChannelName (int channelIndex) const
virtual bool isInputChannelStereoPair (int index) const
virtual bool isOutputChannelStereoPair (int index) const

Protected Member Functions

 AudioPluginInstance ()=default
 AudioPluginInstance (const BusesProperties &ioLayouts)
template<size_t numLayouts>
 AudioPluginInstance (const short channelLayoutList[numLayouts][2])
Protected Member Functions inherited from juce::AudioProcessor
 AudioProcessor ()
 AudioProcessor (const BusesProperties &ioLayouts)
 AudioProcessor (const std::initializer_list< const short[2]> &channelLayoutList)
virtual bool isBusesLayoutSupported (const BusesLayout &) const
virtual bool canApplyBusesLayout (const BusesLayout &layouts) const
virtual bool applyBusLayouts (const BusesLayout &layouts)
virtual bool canApplyBusCountChange (bool isInput, bool isAddingBuses, BusProperties &outNewBusProperties)
void sendParamChangeMessageToListeners (int parameterIndex, float newValue)

Private Member Functions

void assertOnceOnDeprecatedMethodUse () const noexcept
void addParameter (AudioProcessorParameter *)
void addParameterGroup (std::unique_ptr< AudioProcessorParameterGroup >)
void setParameterTree (AudioProcessorParameterGroup &&newTree)

Static Private Attributes

static bool deprecationAssertiontriggered = false

Additional Inherited Members

Static Public Member Functions inherited from juce::AudioProcessor
static bool containsLayout (const BusesLayout &layouts, const std::initializer_list< const short[2]> &channelLayoutList)
template<size_t numLayouts>
static bool containsLayout (const BusesLayout &layouts, const short(&channelLayoutList)[numLayouts][2])
static int getDefaultNumParameterSteps () noexcept
static const char * getWrapperTypeDescription (AudioProcessor::WrapperType) noexcept
static void copyXmlToBinary (const XmlElement &xml, juce::MemoryBlock &destData)
static std::unique_ptr< XmlElementgetXmlFromBinary (const void *data, int sizeInBytes)
static void JUCE_CALLTYPE setTypeOfNextNewPlugin (WrapperType)
Public Attributes inherited from juce::AudioProcessor
const WrapperType wrapperType
Protected Attributes inherited from juce::AudioProcessor
std::atomic< AudioPlayHead * > playHead { nullptr }

Detailed Description

Base class for an active instance of a plugin.

This derives from the AudioProcessor class, and adds some extra functionality that helps when wrapping dynamically loaded plugins.

This class is not needed when writing plugins, and you should never need to derive your own sub-classes from it. The plugin hosting classes use it internally and will return AudioPluginInstance objects which wrap external plugins.

See also
AudioProcessor, AudioPluginFormat

@tags{Audio}

Member Typedef Documentation

◆ HostedParameter

using juce::AudioPluginInstance::HostedParameter = HostedAudioProcessorParameter

Constructor & Destructor Documentation

◆ ~AudioPluginInstance()

juce::AudioPluginInstance::~AudioPluginInstance ( )
overridedefault

Destructor.

Make sure that you delete any UI components that belong to this plugin before deleting the plugin.

◆ AudioPluginInstance() [1/3]

juce::AudioPluginInstance::AudioPluginInstance ( )
protecteddefault

◆ AudioPluginInstance() [2/3]

juce::AudioPluginInstance::AudioPluginInstance ( const BusesProperties & ioLayouts)
inlineprotected

◆ AudioPluginInstance() [3/3]

template<size_t numLayouts>
juce::AudioPluginInstance::AudioPluginInstance ( const short channelLayoutList[numLayouts][2])
inlineprotected

Member Function Documentation

◆ addHostedParameter()

void juce::AudioPluginInstance::addHostedParameter ( std::unique_ptr< HostedParameter > param)

Adds a parameter to this instance.

See also
AudioProcessor::addParameter()

◆ addHostedParameterGroup()

void juce::AudioPluginInstance::addHostedParameterGroup ( std::unique_ptr< AudioProcessorParameterGroup > group)

Adds multiple parameters to this instance.

In debug mode, this will also check that all added parameters derive from HostedParameter.

See also
AudioProcessor::addParameterGroup()

◆ addParameter()

void juce::AudioProcessor::addParameter ( AudioProcessorParameter * param)
private

Adds a parameter to the AudioProcessor.

The parameter object will be managed and deleted automatically by the AudioProcessor when no longer needed.

◆ addParameterGroup()

void juce::AudioProcessor::addParameterGroup ( std::unique_ptr< AudioProcessorParameterGroup > group)
private

Adds a group of parameters to the AudioProcessor.

All the parameter objects contained within the group will be managed and deleted automatically by the AudioProcessor when no longer needed.

See also
addParameter

◆ assertOnceOnDeprecatedMethodUse()

void juce::AudioPluginInstance::assertOnceOnDeprecatedMethodUse ( ) const
privatenoexcept

◆ fillInPluginDescription()

virtual void juce::AudioPluginInstance::fillInPluginDescription ( PluginDescription & ) const
pure virtual

Fills-in the appropriate parts of this plugin description object.

Implemented in juce::AudioProcessorGraph::AudioGraphIOProcessor.

◆ getExtensions()

void juce::AudioPluginInstance::getExtensions ( ExtensionsVisitor & visitor) const
virtual

Allows retrieval of information related to the inner workings of a particular plugin format, such as the AEffect* of a VST, or the handle of an AudioUnit.

To use this, create a new class derived from ExtensionsVisitor, and override each of the visit member functions. If this AudioPluginInstance wraps a VST3 plugin the visitVST3() member will be called, while if the AudioPluginInstance wraps an unknown format the visitUnknown() member will be called. The argument of the visit function can be queried to extract information related to the AudioPluginInstance's implementation.

◆ getHostedParameter()

AudioPluginInstance::HostedParameter * juce::AudioPluginInstance::getHostedParameter ( int index) const

Gets the parameter at a particular index.

If you want to find lots of parameters by their IDs, you should probably build and use a map<String, HostedParameter*> by looping through all parameters.

◆ getParameter()

float juce::AudioPluginInstance::getParameter ( int parameterIndex)
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ getParameterCategory()

AudioProcessorParameter::Category juce::AudioPluginInstance::getParameterCategory ( int parameterIndex) const
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ getParameterDefaultValue()

float juce::AudioPluginInstance::getParameterDefaultValue ( int parameterIndex)
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ getParameterID()

String juce::AudioPluginInstance::getParameterID ( int index)
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ getParameterLabel()

String juce::AudioPluginInstance::getParameterLabel ( int parameterIndex) const
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ getParameterName() [1/2]

const String juce::AudioPluginInstance::getParameterName ( int parameterIndex)
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ getParameterName() [2/2]

String juce::AudioPluginInstance::getParameterName ( int parameterIndex,
int maximumStringLength )
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ getParameterNumSteps()

int juce::AudioPluginInstance::getParameterNumSteps ( int parameterIndex)
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ getParameterText() [1/2]

const String juce::AudioPluginInstance::getParameterText ( int parameterIndex)
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ getParameterText() [2/2]

String juce::AudioPluginInstance::getParameterText ( int parameterIndex,
int maximumStringLength )
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ getPlatformSpecificData()

void * juce::AudioPluginInstance::getPlatformSpecificData ( )
virtual

Use the new typesafe visitor-based interface rather than this function.

Returns a pointer to some kind of platform-specific data about the plugin. E.g. For a VST, this value can be cast to an AEffect*. For an AudioUnit, it can be cast to an AudioUnit handle.

◆ getPluginDescription()

PluginDescription juce::AudioPluginInstance::getPluginDescription ( ) const

Returns a PluginDescription for this plugin. This is just a convenience method to avoid calling fillInPluginDescription.

◆ isMetaParameter()

bool juce::AudioPluginInstance::isMetaParameter ( int parameterIndex) const
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ isParameterAutomatable()

bool juce::AudioPluginInstance::isParameterAutomatable ( int parameterIndex) const
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ isParameterDiscrete()

bool juce::AudioPluginInstance::isParameterDiscrete ( int parameterIndex) const
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ isParameterOrientationInverted()

bool juce::AudioPluginInstance::isParameterOrientationInverted ( int parameterIndex) const
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ setHostedParameterTree()

void juce::AudioPluginInstance::setHostedParameterTree ( AudioProcessorParameterGroup group)

Adds multiple parameters to this instance.

In debug mode, this will also check that all added parameters derive from HostedParameter.

See also
AudioProcessor::setParameterTree()

◆ setParameter()

void juce::AudioPluginInstance::setParameter ( int parameterIndex,
float newValue )
overridevirtual

Reimplemented from juce::AudioProcessor.

◆ setParameterTree()

void juce::AudioProcessor::setParameterTree ( AudioProcessorParameterGroup && newTree)
private

Sets the group of parameters managed by this AudioProcessor.

Replacing the tree after your AudioProcessor has been constructed will crash many hosts, so don't do it! You may, however, change parameter and group names by iterating the tree returned by getParameterTree(). Afterwards, call updateHostDisplay() to inform the host of the changes. Not all hosts support dynamic changes to parameters and group names.

Member Data Documentation

◆ deprecationAssertiontriggered

bool juce::AudioPluginInstance::deprecationAssertiontriggered = false
staticprivate

The documentation for this class was generated from the following files: