On 02/07/15 15:38, Paul Davis wrote:
jack_transport is not intended to act as a the time
Well, comparing example-clients/transport_client.c and
tools/transport.c, I'd say the one big difference between the two is
that tools/transport.c (aka jack_transport) can act as a *simple*
providing BBT information requires some kind of tempo
map. This is
beyond the scope of jack_transport.
Sure, if I need a more sophisticated tool,
I'll use one (or write one
Thankfully, jack provides a lot of small command line tools for simple
That's what I also expected from jack_transport. And with jack2 the same
jack_transport does work as a timebase master (with a "trivial" tempo map).
But the real issue here is a completely different one:
Does jack_set_timebase_callback() also require jack_set_process_callback()?
jack_transport (which is shipping with jack1) assumes that
jack_set_process_callback is not required -- which matches jack2's behavior.
But for jack1 the timebase callback is only called, when I add a process
callback (just return 0;).
Either jack1/libjack0 is wrong to also require the process callback, or
transport.c is wrong to assume that it's not needed (because it does not
does not clearly say that the process callback
must be non-NULL to become a timebase master, although I could see why
it might in fact be necessary (for a certain implementation).