JACK-AUDIO-CONNECTION-KIT  0.125.0rc1
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
 
Other fields
int32_t padding [7]
 
jack_unique_t unique_2
 

Detailed Description

Struct for transport position information.

Field Documentation

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

int32_t jack_position_t::bar

current bar

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

double jack_position_t::bar_start_tick

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

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.

int32_t jack_position_t::beat

current beat-within-bar

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

float jack_position_t::beat_type

time signature "denominator"

float jack_position_t::beats_per_bar

time signature "numerator"

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.

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.

jack_nframes_t jack_position_t::frame_rate

current frame rate, in frames per second

double jack_position_t::frame_time

current time in seconds

double jack_position_t::next_time

next sequential frame_time (unless repositioned)

int32_t jack_position_t::padding[7]
int32_t jack_position_t::tick

current tick-within-beat

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

double jack_position_t::ticks_per_beat

number of ticks within a bar.

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

jack_unique_t jack_position_t::unique_1

unique ID

jack_unique_t jack_position_t::unique_2

unique ID

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

jack_position_bits_t jack_position_t::valid

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

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: