On Monday 31 May 2010 21:55:24 Julien Claassen wrote:
I recently downloaded the latest Klick version and
notcied
someting odd. When I start klick like this:
klick -T 4/4 120
I can use jack_transport to start/stop/relocate and my MIDI
sequencer can be synced to jack_transport control.
If on the other hand I start klick in interactive mode:
klick -T -i 4/4 120
I can't use jack_transport control to do anything. Klick can
start/stop and this is certainly send. But jack_midi_clock doesn't
get a clock-signal, somy sequencer can't be synced. Any idea, why
that might be?
You're right, klick does not act as a JACK transport timebase master
when run in interactive mode...
The job of the timebase master is basically to translate the position
from audio frames into bars and beats (BBT). When klick is run with a
fixed tempo or tempo map, that's quite easy to do. But in interactive
mode, you can change the tempo at any time.
So the question is, if you change the tempo in the middle of a song, at
which point does that change take effect?
If you change the tempo, but keep both the current frame and BBT, you
allow frame and BBT to effectively go out of sync (going back to the
first bar, you'd not end up at frame 0 anymore).
On the other hand, if you recalculate the position based on the
beginning of the timeline, either the frame or the BBT position has to
change. And either way, some clients (probably those syncing to BBT)
will be forced to jump to a different position.
This topic has actually come up a couple of times before, and I'm
somewhat surprised by how often klick is used not as a metronome but as
a JACK transport master. I'm not sure how to handle this use case in
interactive mode, but I'm open to suggestions.
Dominic