Frankly, computing BBT time has never been part of "how to use the
JACK API". It should probably never have been included in the source
code in the first place.
Managing BBT time is *extremely* complex - we have worked on it for
years in Ardour and it still has issues. I'd prefer to just rip it
out.
On Thu, Jul 2, 2015 at 12:47 PM, Tobias Hoffmann
<lfile-list(a)thax.hardliners.org> wrote:
On 02/07/15 17:30, Tobias Hoffmann wrote:
On 02/07/15 15:38, Paul Davis wrote:
jack_transport is not intended to act as a the time master.
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* timebase master...
Ok, I see now that the BBT update algorithm (in the "else" branch in
timebase()) in transport.c is quite broken, because it accumulates rounding
errors. However always using the first, recalculating branch (basically: if
(true)) seems to be stable -- or at least: better than Hydrogen's timebase
master, which updates the BBT only every few cycles... (I've read that
somewhere a completely rewritten Jack Master implementation for Hydrogen is
available, which I have not tested yet).
I find it quite sad that even some code distributed in the jack tarball is
an example of how NOT to use the Jack API ...
Tobias