Go to the documentation of this file.
25 #ifndef JUCE_AUDIOPROCESSOR_H_INCLUDED
26 #define JUCE_AUDIOPROCESSOR_H_INCLUDED
56 virtual const String getName()
const = 0;
69 virtual void prepareToPlay (
double sampleRate,
70 int estimatedSamplesPerBlock) = 0;
75 virtual void releaseResources() = 0;
220 virtual const String getInputChannelName (
int channelIndex)
const = 0;
227 virtual const String getOutputChannelName (
int channelIndex)
const = 0;
230 virtual bool isInputChannelStereoPair (
int index)
const = 0;
233 virtual bool isOutputChannelStereoPair (
int index)
const = 0;
248 void setLatencySamples (
int newLatency);
251 virtual bool silenceInProducesSilenceOut()
const = 0;
254 virtual double getTailLengthSeconds()
const = 0;
257 virtual bool acceptsMidi()
const = 0;
260 virtual bool producesMidi()
const = 0;
304 void suspendProcessing (
bool shouldBeSuspended);
316 virtual void reset();
334 virtual void setNonRealtime (
bool isNonRealtime)
noexcept;
369 virtual bool hasEditor()
const = 0;
389 virtual int getNumParameters();
396 virtual const String getParameterName (
int parameterIndex);
409 virtual float getParameter (
int parameterIndex);
421 virtual String getParameterName (
int parameterIndex,
int maximumStringLength);
427 virtual const String getParameterText (
int parameterIndex);
439 virtual String getParameterText (
int parameterIndex,
int maximumStringLength);
450 virtual int getParameterNumSteps (
int parameterIndex);
458 static int getDefaultNumParameterSteps()
noexcept;
467 virtual
float getParameterDefaultValue (
int parameterIndex);
475 virtual
String getParameterLabel (
int index) const;
483 virtual
bool isParameterOrientationInverted (
int index) const;
501 virtual
void setParameter (
int parameterIndex,
float newValue);
516 void setParameterNotifyingHost (
int parameterIndex,
float newValue);
524 virtual
bool isParameterAutomatable (
int parameterIndex) const;
534 virtual
bool isMetaParameter (
int parameterIndex) const;
547 void beginParameterChangeGesture (
int parameterIndex);
559 void endParameterChangeGesture (
int parameterIndex);
566 void updateHostDisplay();
586 virtual
int getNumPrograms() = 0;
589 virtual
int getCurrentProgram() = 0;
592 virtual
void setCurrentProgram (
int index) = 0;
595 virtual const
String getProgramName (
int index) = 0;
598 virtual
void changeProgramName (
int index, const
String& newName) = 0;
626 virtual
void getCurrentProgramStateInformation (
juce::
MemoryBlock& destData);
638 virtual
void setStateInformation (const
void* data,
int sizeInBytes) = 0;
649 virtual
void setCurrentProgramStateInformation (const
void* data,
int sizeInBytes);
652 virtual
void numChannelsChanged();
670 void setPlayConfigDetails (
int numIns,
int numOuts,
double sampleRate,
int blockSize)
noexcept;
677 void setSpeakerArrangement (const
String& inputs, const
String& outputs);
682 wrapperType_Undefined = 0,
688 wrapperType_Standalone
705 static void copyXmlToBinary (
const XmlElement& xml,
706 juce::MemoryBlock& destData);
713 static XmlElement* getXmlFromBinary (
const void* data,
int sizeInBytes);
723 void sendParamChangeMessageToListeners (
int parameterIndex,
float newValue);
729 int blockSize, numInputChannels, numOutputChannels, latencySamples;
730 bool suspended, nonRealtime;
732 String inputSpeakerArrangement, outputSpeakerArrangement;
737 #if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
747 #endif // JUCE_AUDIOPROCESSOR_H_INCLUDED
@ wrapperType_AAX
Definition: juce_AudioProcessor.h:687
WrapperType
Definition: juce_AudioProcessor.h:680
Definition: juce_MemoryBlock.h:38
Definition: juce_AudioPlayHead.h:39
WrapperType wrapperType
Definition: juce_AudioProcessor.h:694
Definition: juce_String.h:43
#define JUCE_API
Definition: juce_StandardHeader.h:139
Definition: juce_CriticalSection.h:47
const CriticalSection & getCallbackLock() const noexcept
Definition: juce_AudioProcessor.h:274
#define noexcept
Definition: juce_CompilerSupport.h:141
Definition: juce_MidiBuffer.h:43
bool isSuspended() const noexcept
Definition: juce_AudioProcessor.h:309
Definition: juce_AudioProcessorListener.h:37
int getBlockSize() const noexcept
Definition: juce_AudioProcessor.h:175
@ wrapperType_RTAS
Definition: juce_AudioProcessor.h:686
const String & getInputSpeakerArrangement() const noexcept
Definition: juce_AudioProcessor.h:205
int getNumInputChannels() const noexcept
Definition: juce_AudioProcessor.h:187
@ wrapperType_VST3
Definition: juce_AudioProcessor.h:684
Definition: juce_audio_basics.cpp:75
Definition: juce_OwnedArray.h:55
AudioPlayHead * getPlayHead() const noexcept
Definition: juce_AudioProcessor.h:155
Definition: juce_AudioSampleBuffer.h:34
AudioPlayHead * playHead
Definition: juce_AudioProcessor.h:720
Definition: juce_XmlElement.h:142
int getLatencySamples() const noexcept
Definition: juce_AudioProcessor.h:241
Definition: juce_AudioProcessorEditor.h:38
AudioProcessorEditor * getActiveEditor() const noexcept
Definition: juce_AudioProcessor.h:375
Definition: juce_AudioProcessorParameter.h:35
CriticalSection callbackLock
Definition: juce_mac_CoreMidi.cpp:258
Definition: juce_BigInteger.h:43
int getNumOutputChannels() const noexcept
Definition: juce_AudioProcessor.h:198
double getSampleRate() const noexcept
Definition: juce_AudioProcessor.h:164
const String & getOutputSpeakerArrangement() const noexcept
Definition: juce_AudioProcessor.h:212
@ wrapperType_VST
Definition: juce_AudioProcessor.h:683
@ wrapperType_AudioUnit
Definition: juce_AudioProcessor.h:685
bool isNonRealtime() const noexcept
Definition: juce_AudioProcessor.h:329
Definition: juce_AudioProcessor.h:43