VST 3 Interfaces VST 3.7
SDK for developing VST plug-in
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) (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...
 

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

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.