When working with multimedia, timing is essential. One second difference in sync can be all the difference between a winning mix and a horrible mess. This is why the preparations put so much effort into eliminating latency; any delay can be a bad thing, especially when mixing different signal types (such as audio data and MIDI).
Another form of timing issue is the time between different programs; the last thing you want is to start sequencer playback, and not also have your DAW recording. And it gets worse if you need to time the DAW playback with video playback; nothing is more infuriating than sound that is not synced to video.
Jack has a solution to this problem. Every jack-aware program has the ability to synchronize with Jack’s central transport controls. If you adjust the time in one program, the time is adjusted in all the programs. If you are 160 seconds in on Ardour, then Rosegarden will also be 160 seconds in, as will Hydrogen. No matter what you’re doing, Jack’s synchronization tools will keep all Jack-capable apps in sync.
This becomes even more important when working with video; programs like LiVeS, Blender (after version 2.5), and xjadeo will keep synchronized with Jack, so that you can work with video in one window, and audio in another window, and they will remain in perfect sync, so you can have all the features of a superb nonlinear video editor, and still work with heavy-duty professional audio tools as well.
Some settings may be required in order to keep things in sync.
First of all, by default, Ardour does not use Jack’s transport controls; it has its own controls that it maintains control over:
To fix this, you need to change the “Internal” setting to “Jack,” and turn off the Time Master (which should only be activated if Ardour is using its own internal clock).
Once those changes are made, Ardour will be synched up with Jack, and any changes made in the Ardour timeline, whether by playback, skip controls, or dragging the play head around, will be reflected in other Jack applications.
Blender is another application that is not set up by default to use the Jack transport. Jack support was included in version 2.5, and has made this THE video editor to use for professional projects… at least for me.
However, you need to get Blender prepared to handle Jack audio and transport controls. The first step is to open the Video Editing layout, which you can access at the top of the window:
Once in the Video Editing environment, you want to change one of the views’ editor type to “user preferences.” I prefer using the graph editor, since this gives plenty of room to review the settings, and I can always change it back. In the user preferences, click on the last tab (“System”), and the Sound controls are on the bottom-left:
Just choose the “Jack” tab, and set your preferences. The sound can go all the way up to 7.1 surround sound, and the appropriate number of channels will be available in the Jack Control graph, but since I’ve yet to find a program that can save audio in surround sound (Blender can export audio to Jack, but I’ve yet to see it make ports to import sound from Jack), I generally stick with Stereo. For now.
I go through and make any other settings needed for this video project, and then I return the bar back to the graph editor.
At the bottom of the Video Editing display in Blender is the other setting we need to change: The synchronization settings. You’ll see it just next to the Blender transport controls; by default, it is set to “No Sync”:
We want to change this setting to “AV-Sync.” At this point, Blender can now output audio to Jack, but more importantly, it can also synchronize its timeline with the Jack transport, and, by extension, every single other Jack-capable application in your arsenal.
Dedicated Transport Control
By itself, the transport controls on the Jack Control application are pretty dinky; very little control can be had from there. Of course, we can control the transport from any other Jack-aware application, so that’s all right, right?
Probably, but sometimes, you just want a global control that will remain the same, regardless of what programs you are using at the time. A dedicated transport control would be a good item to have. And it just so happens a good one exists in the form of gjacktransport.
In addition to the kinds of things you’d expect in a transport, including a slider, play, pause, and skip controls, this program also has preset controls (Memory slots A-F), Time measurements in classic time, as well as video and audio frames, and the ability to load and save states for separate editing sessions.
So, that’s just a few things to know about the Jack transport. Try out some other things, and see how well you can synchronize your projects.
Have fun, and make something good!