DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
Loading...
Searching...
No Matches
dspark::plugin::TransportInfo Struct Reference

Host transport snapshot, delivered once per audio block. More...

#include <DSParkPlugin.h>

Public Member Functions

double secondsPerBeat () const noexcept
 Seconds per quarter note at the current tempo.
 
double samplesPerBeat (double sampleRate) const noexcept
 Samples per quarter note - the basis for tempo-synced delays/LFOs.
 

Public Attributes

double tempoBpm = 120.0
 Current tempo (when tempoValid).
 
double ppqPosition = 0.0
 Musical position of frame 0, in quarter notes.
 
double barStartPpq = 0.0
 Quarter-note position of the current bar start.
 
int timeSigNumerator = 4
 e.g. 3 in 3/4 (when timeSigValid).
 
int timeSigDenominator = 4
 e.g. 4 in 3/4 (when timeSigValid).
 
double loopStartPpq = 0.0
 Cycle start (when loopValid).
 
double loopEndPpq = 0.0
 Cycle end (when loopValid).
 
bool playing = false
 Transport is rolling.
 
bool recording = false
 Transport is recording.
 
bool looping = false
 Cycle/loop mode is engaged.
 
bool tempoValid = false
 tempoBpm came from the host.
 
bool positionValid = false
 ppqPosition/barStartPpq came from the host.
 
bool timeSigValid = false
 Time signature came from the host.
 
bool loopValid = false
 Loop points came from the host.
 

Detailed Description

Host transport snapshot, delivered once per audio block.

Implement void setTransport(const dspark::plugin::TransportInfo&) noexcept (see HasTransport) and every backend feeds it from the native source before each processBlock: the VST3 ProcessContext, the CLAP transport event, the AU host callbacks. Check the *Valid flags - hosts differ in what they provide (an offline renderer may have no timeline at all). Fields hold their defaults when the matching flag is false.

Definition at line 329 of file DSParkPlugin.h.

Member Function Documentation

◆ samplesPerBeat()

double dspark::plugin::TransportInfo::samplesPerBeat ( double  sampleRate) const
inlinenoexcept

Samples per quarter note - the basis for tempo-synced delays/LFOs.

Definition at line 353 of file DSParkPlugin.h.

◆ secondsPerBeat()

double dspark::plugin::TransportInfo::secondsPerBeat ( ) const
inlinenoexcept

Seconds per quarter note at the current tempo.

Definition at line 347 of file DSParkPlugin.h.

Member Data Documentation

◆ barStartPpq

double dspark::plugin::TransportInfo::barStartPpq = 0.0

Quarter-note position of the current bar start.

Definition at line 333 of file DSParkPlugin.h.

◆ loopEndPpq

double dspark::plugin::TransportInfo::loopEndPpq = 0.0

Cycle end (when loopValid).

Definition at line 337 of file DSParkPlugin.h.

◆ looping

bool dspark::plugin::TransportInfo::looping = false

Cycle/loop mode is engaged.

Definition at line 340 of file DSParkPlugin.h.

◆ loopStartPpq

double dspark::plugin::TransportInfo::loopStartPpq = 0.0

Cycle start (when loopValid).

Definition at line 336 of file DSParkPlugin.h.

◆ loopValid

bool dspark::plugin::TransportInfo::loopValid = false

Loop points came from the host.

Definition at line 344 of file DSParkPlugin.h.

◆ playing

bool dspark::plugin::TransportInfo::playing = false

Transport is rolling.

Definition at line 338 of file DSParkPlugin.h.

◆ positionValid

bool dspark::plugin::TransportInfo::positionValid = false

ppqPosition/barStartPpq came from the host.

Definition at line 342 of file DSParkPlugin.h.

◆ ppqPosition

double dspark::plugin::TransportInfo::ppqPosition = 0.0

Musical position of frame 0, in quarter notes.

Definition at line 332 of file DSParkPlugin.h.

◆ recording

bool dspark::plugin::TransportInfo::recording = false

Transport is recording.

Definition at line 339 of file DSParkPlugin.h.

◆ tempoBpm

double dspark::plugin::TransportInfo::tempoBpm = 120.0

Current tempo (when tempoValid).

Definition at line 331 of file DSParkPlugin.h.

◆ tempoValid

bool dspark::plugin::TransportInfo::tempoValid = false

tempoBpm came from the host.

Definition at line 341 of file DSParkPlugin.h.

◆ timeSigDenominator

int dspark::plugin::TransportInfo::timeSigDenominator = 4

e.g. 4 in 3/4 (when timeSigValid).

Definition at line 335 of file DSParkPlugin.h.

◆ timeSigNumerator

int dspark::plugin::TransportInfo::timeSigNumerator = 4

e.g. 3 in 3/4 (when timeSigValid).

Definition at line 334 of file DSParkPlugin.h.

◆ timeSigValid

bool dspark::plugin::TransportInfo::timeSigValid = false

Time signature came from the host.

Definition at line 343 of file DSParkPlugin.h.


The documentation for this struct was generated from the following file: