[linux-audio-dev] jack transport

Tim Orford tim at orford.org
Sat Mar 19 13:29:02 UTC 2005

On Fri, Mar 18, 2005 at 11:34:34PM +0100, Jens M Andreasen wrote:
>  Do jack-transport support SMPTE
>  Do jack-transport support MIDI song pointer
>  (guessing yes to above)

actually i beleive the answer is mostly no, although perhaps
its best to consider smpte and midi as paralle rather than
being supported by jack-transport.


the job of jack-transport is to sync clients in position (eg
1min, 25.026secs). (Actually strictly speaking there is postional
information in jack without it, but jack-transport extends this,
and provides the commands neccesary to make use of it.) Without
this you only have speed sync (clients are sample synchronous and
can be mixed together without resampling). For example, to bounce
an audio track from Rosegarden to Ardour, you need to be able to
tell both clients to locate to *exactly* the same position and
play from there.

smpte is analogue so is not useful on a computer except for
compatibility with other systems. For a jack plugin or client
to generate a smpte signal to act as a master is relatively easy,
but extracting the clock from a sampled analogue smpte signal to
facilitate slaving is a non-trivial dsp task. I do beleive
Fons Adriaensen was working on this. Theoretically, smpte lock
between 2 stable systems could be quite tight, but not only is
it not as tight as Jack, it is way too complicated and cpu intensive.

at least Midi Spp is digital, but as its an asynchronous
message, it suffers from jitter, and cant acheive a tight lock.
Control commands such as MidiContinue make more sense, but not all 
jack clients will want to support midi. Its mostly useful 
for supporting external or uncooperative systems.

so while many people will claim they dont need sample accurate
positioning, jack-transport appears to be both the best and easiest
solution to control of intra-box Libre applications. And hopefully
will remain so when Jack gets extended to the LAN.

> Then ... What is it that jack-transport do, that is so fantastic? That
> we do not already have as part of MIDI?

the reason i asked about jack-transport in relation to bio2jack
is that there are several unasked question on the mplayer lists
re how to get this working.  People dont realise that bio2jack
only provides "jack 1.0 simple" or whatever you want to call it.
Syncing video playback to Ardour would be a great example of the
usefullness of jack-transport.  Unfortunately, i guess the fact
is that the design of mplayer means it can never be a real jack
client. Perhaps a jack client could control mplayer via its slave
mode, for use with non-keyframe based video formats, but thats a
bit of a hack.

hope that helped:-)
Tim Orford

More information about the Linux-audio-dev mailing list