Functions

Handling time

Functions

jack_nframes_t jack_frames_since_cycle_start (const jack_client_t *)
jack_nframes_t jack_frame_time (const jack_client_t *)
jack_nframes_t jack_last_frame_time (const jack_client_t *client)
jack_time_t jack_frames_to_time (const jack_client_t *client, jack_nframes_t)
jack_nframes_t jack_time_to_frames (const jack_client_t *client, jack_time_t)
jack_time_t jack_get_time ()

Detailed Description

JACK time is in units of 'frames', according to the current sample rate. The absolute value of frame times is meaningless, frame times have meaning only relative to each other.


Function Documentation

jack_nframes_t jack_frame_time ( const jack_client_t  )
Returns:
the estimated current time in frames. This function is intended for use in other threads (not the process callback). The return value can be compared with the value of jack_last_frame_time to relate time in other threads to JACK time.
jack_nframes_t jack_frames_since_cycle_start ( const jack_client_t  )
Returns:
the estimated time in frames that has passed since the JACK server began the current process cycle.
jack_time_t jack_frames_to_time ( const jack_client_t client,
jack_nframes_t   
)
Returns:
the estimated time in microseconds of the specified frame time
jack_time_t jack_get_time (  )
Returns:
return JACK's current system time in microseconds, using the JACK clock source.

The value returned is guaranteed to be monotonic, but not linear.

jack_nframes_t jack_last_frame_time ( const jack_client_t client )
Returns:
the precise time at the start of the current process cycle. This function may only be used from the process callback, and can be used to interpret timestamps generated by jack_frame_time() in other threads with respect to the current process cycle.

This is the only jack time function that returns exact time: when used during the process callback it always returns the same value (until the next process callback, where it will return that value + nframes, etc). The return value is guaranteed to be monotonic and linear in this fashion unless an xrun occurs. If an xrun occurs, clients must check this value again, as time may have advanced in a non-linear way (e.g. cycles may have been skipped).

jack_nframes_t jack_time_to_frames ( const jack_client_t client,
jack_time_t   
)
Returns:
the estimated time in frames for the specified system time.