VST 3 Interfaces  VST 3.6.14
SDK for developing VST Plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
ProcessContext Struct Reference

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) More...
TQuarterNotes barPositionMusic
 last bar start position, in quarter notes More...
TQuarterNotes cycleStartMusic
 cycle start in quarter notes More...
TQuarterNotes cycleEndMusic
 cycle end in quarter notes More...
double tempo
 tempo in BPM (Beats Per Minute) More...
int32 timeSigNumerator
 time signature numerator (e.g. 3 for 3/4) More...
int32 timeSigDenominator
 time signature denominator (e.g. 4 for 3/4) More...
Chord chord
 musical info More...
int32 smpteOffsetSubframes
 SMPTE (sync) offset in subframes (1/80 of frame) More...
FrameRate frameRate
 frame rate More...
int32 samplesToNextClock
 MIDI Clock Resolution (24 Per Quarter Note), can be negative (nearest) More...

Detailed Description

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 behaviour 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.

See also
IAudioProcessor, ProcessData

Member Enumeration Documentation

Transport state & other flags.


currently playing


cycle is active


currently recording


systemTime contains valid information


continousTimeSamples contains valid information


projectTimeMusic contains valid information


barPositionMusic contains valid information


cycleStartMusic and barPositionMusic contain valid information


tempo contains valid information


timeSigNumerator and timeSigDenominator contain valid information


chord contains valid information


smpteOffset and frameRate contain valid information


samplesToNextClock valid

Member Data Documentation

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)

TQuarterNotes barPositionMusic

last bar start position, in quarter notes

TQuarterNotes cycleStartMusic

cycle start in quarter notes

TQuarterNotes cycleEndMusic

cycle end in quarter notes

double tempo

tempo in BPM (Beats Per Minute)

int32 timeSigNumerator

time signature numerator (e.g. 3 for 3/4)

int32 timeSigDenominator

time signature denominator (e.g. 4 for 3/4)

Chord chord

musical info

int32 smpteOffsetSubframes

SMPTE (sync) offset in subframes (1/80 of frame)

FrameRate frameRate

frame rate

int32 samplesToNextClock

MIDI Clock Resolution (24 Per Quarter Note), can be negative (nearest)


Copyright ©2019 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.