29#ifndef kVstAudioEffectClass
30#define kVstAudioEffectClass "Audio Module Class"
38class IParameterChanges;
151static const uint32 kNoTail = 0;
159static const uint32 kInfiniteTail = kMaxInt32u;
331 static const FUID iid;
334DECLARE_CLASS_IID (
IAudioProcessor, 0x42043F99, 0xB7DA453C, 0xA569E79D, 0x9AAEC33D)
374 static const FUID iid;
404 kNeedSystemTime = 1 << 0,
405 kNeedContinousTimeSamples = 1 << 1,
406 kNeedProjectTimeMusic = 1 << 2,
407 kNeedBarPositionMusic = 1 << 3,
408 kNeedCycleMusic = 1 << 4,
409 kNeedSamplesToNextClock = 1 << 5,
411 kNeedTimeSignature = 1 << 7,
413 kNeedFrameRate = 1 << 9,
414 kNeedTransportState = 1 << 10,
416 virtual uint32 PLUGIN_API getProcessContextRequirements () = 0;
418 static const FUID iid;
Handling 16 Byte Globally Unique Identifiers.
The basic interface of all interfaces.
Extended IAudioProcessor interface for a component: Vst::IAudioPresentationLatency.
virtual tresult PLUGIN_API setAudioPresentationLatencySamples(BusDirection dir, int32 busIndex, uint32 latencyInSamples)=0
Informs the plug-in about the Audio Presentation Latency in samples for a given direction (kInput/kOu...
Audio processing interface: Vst::IAudioProcessor.
virtual tresult PLUGIN_API setProcessing(TBool state)=0
Informs the plug-in about the processing state.
virtual tresult PLUGIN_API setupProcessing(ProcessSetup &setup)=0
Called in disable state (setActive not called with true) before setProcessing is called and processin...
virtual tresult PLUGIN_API process(ProcessData &data)=0
The Process call, where all information (parameter changes, event, audio buffer) are passed.
virtual tresult PLUGIN_API getBusArrangement(BusDirection dir, int32 index, SpeakerArrangement &arr)=0
Gets the bus arrangement for a given direction (input/output) and index.
virtual uint32 PLUGIN_API getTailSamples()=0
Gets tail size in samples.
virtual tresult PLUGIN_API setBusArrangements(SpeakerArrangement *inputs, int32 numIns, SpeakerArrangement *outputs, int32 numOuts)=0
Try to set (host => plug-in) a wanted arrangement for inputs and outputs.
virtual uint32 PLUGIN_API getLatencySamples()=0
Gets the current Latency in samples.
virtual tresult PLUGIN_API canProcessSampleSize(int32 symbolicSampleSize)=0
Asks if a given sample size is supported see SymbolicSampleSizes.
List of events to process: Vst::IEventList.
All parameter changes of a processing block: Vst::IParameterChanges.
Extended IAudioProcessor interface for a component: Vst::IProcessContextRequirements.
SMTG_CONSTEXPR const CString kInstrumentExternal
External Instrument (wrapped Hardware)
SMTG_CONSTEXPR const CString kFxReverb
Reverberation, Room Simulation, Convolution Reverb...
SMTG_CONSTEXPR const CString kFxEQ
Equalization, Graphical EQ...
SMTG_CONSTEXPR const CString kFxTools
Volume, Mixer, Tuner...
SMTG_CONSTEXPR const CString kFxInstrumentExternal
Fx which could be loaded as Instrument too and is external (wrapped Hardware)
SMTG_CONSTEXPR const CString kFxVocals
Tools dedicated to vocals.
SMTG_CONSTEXPR const CString kInstrumentDrum
Instrument for Drum sounds.
SMTG_CONSTEXPR const CString kSpatial
used for SurroundPanner
SMTG_CONSTEXPR const CString kFx
others type (not categorized)
SMTG_CONSTEXPR const CString kMono
used for Mono only plug-in [optional]
SMTG_CONSTEXPR const CString kFxNetwork
using Network
SMTG_CONSTEXPR const CString kSpatialFx
used for SurroundPanner and as insert effect
SMTG_CONSTEXPR const CString kInstrumentPiano
Instrument for Piano sounds.
SMTG_CONSTEXPR const CString kFxModulation
Phaser, Flanger, Chorus, Tremolo, Vibrato, AutoPan, Rotary, Cloner...
SMTG_CONSTEXPR const CString kFxMastering
Dither, Noise Shaping,...
SMTG_CONSTEXPR const CString kInstrumentSynthSampler
Instrument based on Synthesis and Samples.
SMTG_CONSTEXPR const CString kInstrumentSynth
Instrument based on Synthesis.
SMTG_CONSTEXPR const CString kAnalyzer
Meter, Scope, FFT-Display, not selectable as insert plug-in.
SMTG_CONSTEXPR const CString kNoOfflineProcess
will be NOT used for plug-in offline processing (will work as normal insert plug-in)
SMTG_CONSTEXPR const CString kFxRestoration
Denoiser, Declicker,...
SMTG_CONSTEXPR const CString kFxSurround
dedicated to surround processing: LFE Splitter, Bass Manager...
SMTG_CONSTEXPR const CString kFxDynamics
Compressor, Expander, Gate, Limiter, Maximizer, Tape Simulator, EnvelopeShaper...
SMTG_CONSTEXPR const CString kFxFilter
WahWah, ToneBooster, Specific Filter,...
SMTG_CONSTEXPR const CString kFxGenerator
Tone Generator, Noise Generator...
SMTG_CONSTEXPR const CString kOnlyARA
used for plug-ins that require ARA to operate (will not work as normal insert plug-in)
SMTG_CONSTEXPR const CString kFxDelay
Delay, Multi-tap Delay, Ping-Pong Delay...
SMTG_CONSTEXPR const CString kSurround
used for Surround only plug-in [optional]
SMTG_CONSTEXPR const CString kInstrumentSampler
Instrument based on Samples.
SMTG_CONSTEXPR const CString kAmbisonics
used for Ambisonics channel (FX or Panner/Mixconverter/Up-Mixer/Down-Mixer when combined with other c...
SMTG_CONSTEXPR const CString kUpDownMix
used for Mixconverter/Up-Mixer/Down-Mixer
SMTG_CONSTEXPR const CString kOnlyOfflineProcess
used for plug-in offline processing (will not work as normal insert plug-in)
SMTG_CONSTEXPR const CString kFxPitchShift
Pitch Processing, Pitch Correction, Vocal Tuning...
SMTG_CONSTEXPR const CString kFxInstrument
Fx which could be loaded as Instrument too.
SMTG_CONSTEXPR const CString kStereo
used for Stereo only plug-in [optional]
SMTG_CONSTEXPR const CString kFxDistortion
Amp Simulator, Sub-Harmonic, SoftClipper...
SMTG_CONSTEXPR const CString kOnlyRealTime
indicates that it supports only realtime process call, no processing faster than realtime
SMTG_CONSTEXPR const CString kInstrument
Effect used as instrument (sound generator), not as insert.
SMTG_CONSTEXPR const CString kFxAnalyzer
Scope, FFT-Display, Loudness Processing...
SMTG_CONSTEXPR const CString kFxSpatial
MonoToStereo, StereoEnhancer,...
double Sample64
64-bit precision audio sample
ComponentFlags
Component Flags used as classFlags in PClassInfo2.
@ kDistributable
Component can be run on remote computer.
@ kSimpleModeSupported
Component supports simple IO mode (or works in simple mode anyway) see vst3IoMode.
int32 symbolicSampleSize
SymbolicSampleSizes
ProcessModes
Processing mode informs the plug-in about the context and at which frequency the process call is call...
@ kRealtime
realtime processing
@ kOffline
offline processing
@ kPrefetch
prefetch processing
float Sample32
32-bit precision audio sample
int32 maxSamplesPerBlock
maximum number of samples per audio block
double SampleRate
sample rate
int32 processMode
ProcessModes
int32 BusDirection
bus direction (in/out)
SampleRate sampleRate
sample rate
uint64 SpeakerArrangement
Bitset of speakers.
const char8 * CString
C-String.
SymbolicSampleSizes
Symbolic sample size.
@ kSample32
32-bit precision
@ kSample64
64-bit precision
Processing buffers of an audio bus.
int32 numChannels
number of audio channels in bus
uint64 silenceFlags
Bitset of silence state per channel.
Audio processing context.
Any data needed in audio processing.
IEventList * inputEvents
incoming events for this block (optional)
int32 symbolicSampleSize
sample size - value of SymbolicSampleSizes
AudioBusBuffers * inputs
buffers of input busses
AudioBusBuffers * outputs
buffers of output busses
int32 numInputs
number of audio input busses
ProcessContext * processContext
processing context (optional, but most welcome)
int32 processMode
processing mode - value of ProcessModes
IEventList * outputEvents
outgoing events for this block (optional)
IParameterChanges * outputParameterChanges
outgoing parameter changes for this block (optional)
int32 numOutputs
number of audio output busses
int32 numSamples
number of samples to process
IParameterChanges * inputParameterChanges
incoming parameter changes for this block