jack_position_t Struct Reference

#include <transport.h>

Data Fields

Server-set fields

these cannot be set from clients; the server sets them

jack_unique_t unique_1
jack_time_t usecs
jack_nframes_t frame_rate
Mandatory fields
jack_nframes_t frame
jack_position_bits_t valid
JackPositionBBT fields

Bar:Beat.Tick-related information.

Applications that support JackPositionBBT are encouraged to also fill the JackBBTFrameOffset

int32_t bar
int32_t beat
int32_t tick
double bar_start_tick
float beats_per_bar
float beat_type
double ticks_per_beat
double beats_per_minute
JackPositionTimecode fields

EXPERIMENTAL: could change

double frame_time
double next_time
jack_nframes_t bbt_offset
float audio_frames_per_video_frame
jack_nframes_t video_offset
JACK Extra transport fields
double tick_double
Other fields
int32_t padding [5]
jack_unique_t unique_2

Detailed Description

Struct for transport position information.

Field Documentation

◆ audio_frames_per_video_frame

float jack_position_t::audio_frames_per_video_frame

number of audio frames per video frame. Should be assumed zero if JackAudioVideoRatio is not set. If JackAudioVideoRatio is set and the value is zero, no video data exists within the JACK graph

◆ bar

int32_t jack_position_t::bar

current bar

Should be >0: the first bar is bar '1'.

◆ bar_start_tick

double jack_position_t::bar_start_tick

number of ticks that have elapsed between frame 0 and the first beat of the current measure.

◆ bbt_offset

jack_nframes_t jack_position_t::bbt_offset

frame offset for the BBT fields (the given bar, beat, and tick values actually refer to a time frame_offset frames before the start of the cycle), should be assumed to be 0 if JackBBTFrameOffset is not set. If JackBBTFrameOffset is set and this value is zero, the BBT time refers to the first frame of this cycle. If the value is positive, the BBT time refers to a frame that many frames before the start of the cycle.

◆ beat

int32_t jack_position_t::beat

current beat-within-bar

Should be >0 and <=beats_per_bar: the first beat is beat '1'.

◆ beat_type

float jack_position_t::beat_type

time signature "denominator"

◆ beats_per_bar

float jack_position_t::beats_per_bar

time signature "numerator"

◆ beats_per_minute

double jack_position_t::beats_per_minute

BPM, quantized to block size. This means when the tempo is not constant within this block, the BPM value should adapted to compensate for this. This is different from most fields in this struct, which specify the value at the beginning of the block rather than an average.

◆ frame

jack_nframes_t jack_position_t::frame

frame number, always present/required.

This is the frame number on the transport timeline, which is not the same as what jack_frame_time returns.

◆ frame_rate

jack_nframes_t jack_position_t::frame_rate

current frame rate, in frames per second

◆ frame_time

double jack_position_t::frame_time

current time in seconds

◆ next_time

double jack_position_t::next_time

next sequential frame_time (unless repositioned)

◆ padding

int32_t jack_position_t::padding[5]

◆ tick

int32_t jack_position_t::tick

current tick-within-beat

Should be >= 0 and < ticks_per_beat: the first tick is tick '0'.

◆ tick_double

double jack_position_t::tick_double

current tick-within-beat in double resolution. Should be assumed zero if JackTickDouble is not set. Since older versions of JACK do not expose this variable, the macro JACK_TICK_DOUBLE is provided, which can be used as build-time detection.

◆ ticks_per_beat

double jack_position_t::ticks_per_beat

number of ticks within a beat.

Usually a moderately large integer with many denominators, such as 1920.0

◆ unique_1

jack_unique_t jack_position_t::unique_1

unique ID

◆ unique_2

jack_unique_t jack_position_t::unique_2

unique ID

◆ usecs

jack_time_t jack_position_t::usecs

microsecond timestamp that is guaranteed to be monotonic, but not neccessarily linear.

The absolute value is implementation-dependent (i.e. it could be wall-clock, time since jack started, uptime, etc).

◆ valid

jack_position_bits_t jack_position_t::valid

which other fields are valid, as a bitmask constructed from values in jack_position_bits_t

◆ video_offset

jack_nframes_t jack_position_t::video_offset

audio frame at which the first video frame in this cycle occurs. Should be assumed to be 0 if JackVideoFrameOffset is not set. If JackVideoFrameOffset is set, but the value is zero, there is no video frame within this cycle.

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