| 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 | |
| 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) | |
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)