Chapter 3. Synchronizing tempo and musical position between modules

In a recording studio you normally encounter many different devices that either acts as clock generator or requires receiving a clock to be able to keep up with the others. But you could also have two or more sequencers that drive a certain amount of instruments/beat boxes separately at different tempos. Bidule's internal "sync" signal allows you to reproduce this "freedom of sync choice" concept that you have when you have a complex studio. Why would you want different clock generators you ask? Well, say you want to segue one track into another in a live situation, and that the two tracks follow completely different tempos, time signatures and positions?

In most hosts you cannot achieve this, as there is often only one transport control center, which resides in its toolbar. So every plugin "feeds" on sync information thats coming from the host's "main timeline".

But in Bidule there is no enforced "main timeline" and it's up to the user to decide exactly what should be synched to what (as you would do in a real studio). And as with many things in Bidule, there are graphical cues to give you a clue of what's happening "under the hood".

If a newly chosen bidule possesses the intrinsic support to be synced, then a small grey "sync" (for synced to) letter will appear left of its patchbay representation, meaning it "knows" how to deal with extra sync information.

Similarly, a sync generator bidule (Bidule's Sync Transport or Step Sequencer, for instance) has a small green "src" (for source), followed by a unique identifier, saying it can provide sync information on this sync ID.

If you sync a syncable bidule to this one, its "sync" will turn green and the number of the unique source ID will also appear beside it.

(*)VST Developers note: Bidule's Sync is very closely related to VstTimeInfo. Also Bidule is currently the only host that support the part of the VST 2.0 spec that allows a plugin to BE a Sync source (ie sending VstTimeInfo BACK to the host). Such a plugin should return "1" when asked about canDo "sendVstTimeInfo" for this option to become available.