29. Link, Synchronization, and ReWire
29.1 Using Ableton Link
Ableton Link is a technology that keeps devices in time over a wired or wireless network. Link is built into Live as well as a growing number of iOS applications, and any Link-enabled software can play in time with any other Link-enabled software simply by joining the same network.
When using Link, you can start and stop playback of each device or application independently of every other connected device or application. Link-enabled software will remain in tempo as well as at the correct position in relation to the global launch quantization of all participants.
29.1.1 Setting up Link
To configure Live to use Link, first make sure that your computer is connected to the same network as any other devices that you will use Link with. This can either be a local network or an ad-hoc (computer-to-computer) connection. Then open Live’s Link/MIDI Preferences and turn on the button next to “Play in time with Link.”
The Link indicator in Live’s Control Bar will appear when Link is turned on.
This indicator will update to show the number of other Link-enabled apps or instances of Live that are on the same network.
If at least one other Link-enabled app or instance of Live is connected, the Arrangement Position display will show a moving “progress bar” whenever Live’s transport is not running. This bar is a representation of the Live Set’s global launch quantization in relation to that of the other participants in the Link session. After you trigger playback, Live will wait until this bar is filled before starting.
The first app or Live instance to join a Link session will set the initial tempo for the others. Any Link-enabled apps or instances of Live can then change their tempo at any time and all others will follow. If multiple participants try to change the tempo simultaneously, everyone else will try to follow, but the last one who changes the tempo will “win.”
Tempo changes made by any participant in a Link session will override tempo automation in your Live Set.
In most cases, Link will work without issues as soon as it is enabled and will provide reliable synchronization under all conditions. If you have further questions or run into issues, we recommend checking out the Link FAQ at the Ableton website*https://www.ableton.com/help/article/link-faq/.
29.2 Synchronizing via MIDI
If you’re working with devices that don’t support Link, you can synchronize via MIDI. The MIDI protocol defines two ways to synchronize sequencers, both of which are supported by Live. Both protocols work with the notion of a sync master, which delivers a sync signal that is tracked by the sync slave(s).
MIDI Clock: MIDI Clock works like a metronome ticking at a fast rate. The rate of the incoming ticks is tempo-dependent: Changing the tempo at the sync master (e.g., a drum machine) will cause the slave to follow the change. The MIDI Clock protocol also provides messages that indicate the song position. With respect to MIDI Clock, Live can act as both a MIDI sync master and slave.
MIDI Timecode: MIDI Timecode is the MIDI version of the SMPTE protocol, the standard means of synchronizing tape machines and computers in the audio and film industry. A MIDI Timecode message specifies a time in seconds and frames (subdivisions of a second). Live will interpret a Timecode message as a position in the Arrangement. Timecode messages carry no meter-related information; when slaving Live to another sequencer using MIDI Timecode, you will have to adjust the tempo manually. Tempo changes cannot be tracked. Detailed MIDI Timecode preferences are explained later in this chapter (see “Previewing Files”). With respect to MIDI Timecode, Live can only act as a MIDI sync slave, not a master.
29.2.1 Synchronizing External MIDI Devices to Live
Live can send MIDI Clock messages to an external MIDI sequencer (or drum machine). After connecting the sequencer to Live and setting it up to receive MIDI sync, turn the device on as a sync destination in Live’s Link/MIDI Preferences.
The lower indicator LED next to the Control Bar’s EXT button will flash when Live is sending sync messages to external sequencers.
29.2.2 Synchronizing Live to External MIDI Devices
Live can be synchronized via MIDI to an external sequencer. After connecting the sequencer to Live and setting it up to send sync, use Live’s Link/MIDI Preferences to tell Live about the connection.
When an external sync source has been enabled, the EXT button appears in the Control Bar. You can then activate external sync either by switching on this button or by using the External Sync command in the Options menu. The upper indicator LED next to the EXT button will flash if Live receives useable sync messages.
When Live is synced to an external MIDI device, it can accept song position pointers from this device, syncing it not only in terms of tempo but in terms of its position in the song. If the master jumps to a new position within the song, Live will do the same. However, if the Control Bar’s Loop switch is activated, playback will be looped, and song position pointers will simply be “wrapped“ into the length of the loop.
Note: When Link is enabled, Live can send MIDI clock information to external devices, but cannot receive it; the External Sync switch is disabled when Link is enabled.
MIDI Timecode Options
Timecode options can be set up per MIDI device. Select a MIDI device from the Link/MIDI Preferences’ MIDI Ports list to access the settings.
The MIDI Timecode Frame Rate setting is relevant only if “MIDI Timecode“ is chosen from the MIDI Sync Type menu. The MIDI Timecode Rate chooser selects the type of Timecode to which Live will synchronize. All of the usual SMPTE frame rates are available. When the Rate is set to “SMPTE All,“ Live will auto-detect the Timecode format of incoming sync messages and interpret the messages accordingly. Note that you can adjust the Timecode format that is used for display in the Arrangement View: Go to the Options menu, and then access the Time Ruler Format sub-menu.
The MIDI Timecode Offset setting is also only relevant if “MIDI Timecode“ is chosen from the Sync Type menu. You can specify a SMPTE time offset using this control. Live will interpret this value as the Arrangement’s start time.
29.2.3 Sync Delay
The Sync Delay controls, which are separately available for each MIDI device, allow you to delay Live’s internal time base against the sync signal. This can be useful in compensating for delays incurred by the signal transmission. The Sync Delay for a specific MIDI device appears as you select the MIDI device from the Link/MIDI Preferences’ MIDI Ports list. To adjust the delay, have both Live and the other sequencer play a rhythmical pattern with pronounced percussive sounds. While listening to the output from both, adjust the Sync Delay control until both sounds are in perfect sync.
29.3 Connecting via ReWire
Live supports the ReWire interface for connecting with another ReWire-compatible audio program running on the same computer.
The ReWire technology, developed by Propellerhead Software, provides ReWire-compatible programs with:
- common access to the audio hardware;
- shared transport functionality;
- synchronization to audio word clock and song positioning;
- exchange of audio streams.
The programs in a ReWire connection play distinct roles: The ReWire master accesses the audio hardware and provides mixing facilities; the ReWire slave(s) have no direct link to the audio hardware, but instead send their audio output into the Master’s mixer.
Common ReWire master applications are Pro Tools, Cubase, Nuendo, Logic, Digital Performer, Sonar and Max/MSP. Common ReWire slave applications are Reason, Rebirth, Storm, Project 5 and Max/MSP. Live can act as both a ReWire master and slave.
Note that the ReWire protocol itself does not consume much CPU power. However, as expected, running two audio-intensive programs on the same computer requires more resources than running a single program.
29.3.1 Running Live in ReWire Master Mode
The step-by-step procedure for sending MIDI to and receiving audio from a ReWire slave program is presented in the routing chapter (see 14.4).
29.3.2 Running Live in ReWire Slave Mode
In ReWire slave mode, Live can both receive MIDI from, but also send audio to the master application. All of Live’s MIDI tracks are accessible to the master application as destinations for MIDI signals, and all of its audio tracks and MIDI tracks containing instruments are accessible as audio sources.
If you have not used Live yet, please launch Live so that it can install its ReWire engine in your system.
Live will run in ReWire slave mode if it detects a running ReWire master application upon startup.Therefore, always start the ReWire master application first, and then start Live.
Likewise, you will first have to quit Live, then the ReWire master application.
Live’s operation in ReWire slave mode differs from the usual operation in some regards:
- Live will not have direct access to the audio interfaces; audio input/output is handled by the ReWire master application. No audio input will be available to Live.
- The sample rate is determined by the host application rather than by Live.
- External synchronization will be disabled (synchronize to the ReWire master application instead). Live will not send sync or controller messages to the MIDI output. Controlling Live via MIDI is still possible.
- Live will not act as a ReWire master application. For instance, you cannot run Rebirth as a ReWire slave of Live while Live is running as a ReWire slave of Cubase. You can, however, run both Live and Rebirth as ReWire slaves of Cubase at the same time.
- Time signature and tempo will be determined by the settings in the ReWire master application. If your Live Set contains any tempo or time signature changes, they will be ignored.
- Using Link is not possible when Live is used as a ReWire slave. Link can be used, however, when Live is the ReWire master.
29.3.3 More on ReWire
You can find additional information about configuring and using ReWire at Ableton’s website*https://www.ableton.com/help/article/using-live-rewire/.