VST 3 Interfaces: ProcessContext Struct Reference
Author: Steinberg

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

Loading...
Searching...
No Matches
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

## ◆ StatesAndFlags

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

## ◆ state

uint32 state

a combination of the values from StatesAndFlags

## ◆ sampleRate

double sampleRate

current sample rate (always valid)

## ◆ projectTimeSamples

TSamples projectTimeSamples

project time in samples (always valid)

## ◆ systemTime

int64 systemTime

system time in nanoseconds (optional)

## ◆ continousTimeSamples

TSamples continousTimeSamples

project time, without loop (optional)

## ◆ projectTimeMusic

TQuarterNotes projectTimeMusic

musical position in quarter notes (1.0 equals 1 quarter note) (optional)

## ◆ barPositionMusic

TQuarterNotes barPositionMusic

last bar start position, in quarter notes (optional)

## ◆ cycleStartMusic

TQuarterNotes cycleStartMusic

cycle start in quarter notes (optional)

## ◆ cycleEndMusic

TQuarterNotes cycleEndMusic

cycle end in quarter notes (optional)

## ◆ tempo

double tempo

tempo in BPM (Beats Per Minute) (optional)

## ◆ timeSigNumerator

int32 timeSigNumerator

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

## ◆ timeSigDenominator

int32 timeSigDenominator

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

## ◆ chord

Chord chord

musical info (optional)

## ◆ smpteOffsetSubframes

int32 smpteOffsetSubframes

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

## ◆ frameRate

FrameRate frameRate

frame rate (optional)

## ◆ samplesToNextClock

int32 samplesToNextClock

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

Empty

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