VST 3 Interfaces VST 3.7
SDK for developing VST plug-in
|
Audio processing context. More...
#include <ivstprocesscontext.h>
Public Types | |
enum | StatesAndFlags { kPlaying = 1 << 1 , kCycleActive = 1 << 2 , kRecording = 1 << 3 , kSystemTimeValid = 1 << 8 , kContTimeValid = 1 << 17 , kProjectTimeMusicValid = 1 << 9 , kBarPositionValid = 1 << 11 , kCycleValid = 1 << 12 , kTempoValid = 1 << 10 , kTimeSigValid = 1 << 13 , kChordValid = 1 << 18 , kSmpteValid = 1 << 14 , kClockValid = 1 << 15 } |
Transport state & other flags. More... | |
Public Attributes | |
uint32 | state |
a combination of the values from StatesAndFlags More... | |
double | sampleRate |
current sample rate (always valid) More... | |
TSamples | projectTimeSamples |
project time in samples (always valid) More... | |
int64 | systemTime |
system time in nanoseconds (optional) More... | |
TSamples | continousTimeSamples |
project time, without loop (optional) More... | |
TQuarterNotes | projectTimeMusic |
musical position in quarter notes (1.0 equals 1 quarter note) (optional) More... | |
TQuarterNotes | barPositionMusic |
last bar start position, in quarter notes (optional) More... | |
TQuarterNotes | cycleStartMusic |
cycle start in quarter notes (optional) More... | |
TQuarterNotes | cycleEndMusic |
cycle end in quarter notes (optional) More... | |
double | tempo |
tempo in BPM (Beats Per Minute) (optional) More... | |
int32 | timeSigNumerator |
time signature numerator (e.g. 3 for 3/4) (optional) More... | |
int32 | timeSigDenominator |
time signature denominator (e.g. 4 for 3/4) (optional) More... | |
Chord | chord |
musical info (optional) More... | |
int32 | smpteOffsetSubframes |
SMPTE (sync) offset in subframes (1/80 of frame) (optional) More... | |
FrameRate | frameRate |
frame rate (optional) More... | |
int32 | samplesToNextClock |
MIDI Clock Resolution (24 Per Quarter Note), can be negative (nearest) (optional) More... | |
Audio processing context.
For each processing block the host provides timing information and musical parameters that can change over time. For a host that supports jumps (like cycle) it is possible to split up a processing block into multiple parts in order to provide a correct project time inside of every block, but this behavior is not mandatory. Since the timing will be correct at the beginning of the next block again, a host that is dependent on a fixed processing block size can choose to neglect this problem.
enum StatesAndFlags |
Transport state & other flags.
uint32 state |
a combination of the values from StatesAndFlags
double sampleRate |
current sample rate (always valid)
TSamples projectTimeSamples |
project time in samples (always valid)
int64 systemTime |
system time in nanoseconds (optional)
TSamples continousTimeSamples |
project time, without loop (optional)
TQuarterNotes projectTimeMusic |
musical position in quarter notes (1.0 equals 1 quarter note) (optional)
TQuarterNotes barPositionMusic |
last bar start position, in quarter notes (optional)
TQuarterNotes cycleStartMusic |
cycle start in quarter notes (optional)
TQuarterNotes cycleEndMusic |
cycle end in quarter notes (optional)
double tempo |
tempo in BPM (Beats Per Minute) (optional)
int32 timeSigNumerator |
time signature numerator (e.g. 3 for 3/4) (optional)
int32 timeSigDenominator |
time signature denominator (e.g. 4 for 3/4) (optional)
Chord chord |
musical info (optional)
int32 smpteOffsetSubframes |
SMPTE (sync) offset in subframes (1/80 of frame) (optional)
FrameRate frameRate |
frame rate (optional)
int32 samplesToNextClock |
MIDI Clock Resolution (24 Per Quarter Note), can be negative (nearest) (optional)