VST 3 Interfaces: ProcessContext Struct Reference
Author: Steinberg

VST 3 Interfaces VST 3.7 SDK for developing VST plug-in

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
Public Types | Public Attributes | List of all members
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
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)

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

See Also
  IAudioProcessor, ProcessData

## Member Enumeration Documentation

enum StatesAndFlags

Transport state & other flags.

Enumerator
kPlaying | currently playing
kCycleActive | cycle is active
kRecording | currently recording
kSystemTimeValid | systemTime contains valid information
kContTimeValid | continousTimeSamples contains valid information
kProjectTimeMusicValid | projectTimeMusic contains valid information
kBarPositionValid | barPositionMusic contains valid information
kCycleValid | cycleStartMusic and barPositionMusic contain valid information
kTempoValid | tempo contains valid information
kTimeSigValid | timeSigNumerator and timeSigDenominator contain valid information
kChordValid | chord contains valid information
kSmpteValid | smpteOffset and frameRate contain valid information
kClockValid | 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) (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)

Empty

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