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:

- transport.h