Main Site Navigation

Images
External Weblinks

What’s This For?

ReWire

Just about every piece of computer software that can play music has a transport. The transport (see Figure 1) is a panel with buttons. By clicking on various buttons, you can start and stop playback, start and stop recording, rewind to the start of the music, locate to a specific point such as the start of the chorus or bridge, and so on.

If you’re using only one music program, the transport should operate in a smooth, transparent way: Click on a button, and it does what you expect. But what if you want to run two music programs at the same time, in the same computer? If you try to click on the start button in one program, then switch to the other program and click on its start button, the best you can expect is a train wreck. The tracks from one program will be hopelessly out of sync with the tracks in the other.

The technology that solves this problem is called ReWire. ReWire was first developed by Propellerhead Software. They wanted their Reason program to be able to operate in tandem with sequencers such as Steinberg Cubase and Apple Logic. Reason is very good at some types of music recording, but can’t be used for other things: It has no audio tracks, for instance, so you can’t record vocals into it. Propellerhead needed a way to let their users create instrumental tracks in Reason and then do vocal overdubs or other types of tracks in a general-purpose sequencer.

The ReWire idea proved so useful that it has been included in many other music programs. Using ReWire, you can link Cubase with Ableton Live or Image-Line FL Studio with Digidesign Pro Tools, for instance. ReWire is strictly for two programs running in the same computer, though: There’s no way to use it to link two pieces of hardware.


USING REWIRE

Using ReWire is usually very simple. First, launch the program that you want to be the ReWire host. This will usually be your sequencer. Then launch the program that you want to be the ReWire client. The client may be launched normally (for instance, by double-clicking on its icon), or you may be able to launch it from a menu within the host.

When you’re finished doing whatever music work you want to do, you’ll need to quit the client first, then quit the host. If you try to quit the host while the client is still running, an alert box will let you know you’re trying to do things in the wrong order.

ReWire provides several links between the host and the client:

  • You can use the transport buttons in either program. The other program will respond just as if its own transport buttons had been clicked. (Generally, the Record button will only start recording in the program that you’re currently looking at, not in the other program.)
  • The tempos of the two programs will be linked. If you change the tempo in one, the other will change to match.
  • The song position will always be the same. For instance, if you use a Locate marker to set the song position to bar 29 in one program, the other will also locate to bar 29. And during playback, the two programs will never drift out of sync.
  • If you set a playback region to loop in one program, which is often useful while you’re developing a song, the other program will loop too. Its loop start and end markers will have the same settings, and its loop on/off button will have been clicked.
  • The audio outputs from the client will appear in the mixer of the host, as shown in Figure 2. (In some hosts, you may need to activate the ReWire inputs before this will happen.) The host mixer then produces a complete mix of its own tracks and the signals coming from the ReWire client. This mix is what you hear at the computer’s audio outputs; the client never sends signals directly to the audio output.
  • MIDI data from the host can be directed to the client.

REWIRE & MIDI


Recording MIDI tracks into the host and then assigning the output of each track to a device in the ReWire client allows you to keep all of the sequencer data in one window, which is handy when you’re rearranging the song. In essence, this type of setup turns the ReWire client program into sort of a plug-in. (For more on plug-ins, see What’s This For, Mar. ’06.)

One important difference between a ReWire client and a plug-in is that the parameters of a plug-in can usually be automated in the host. To automate parameters in a ReWire client, you need to assign the parameters to MIDI Control Change messages, which will be recorded into the host’s MIDI tracks. In a future column I’ll have much more to say about automation.

Jargon Jockey


Sync (synchronization): When two devices (usually multitrack recorders or drum machines) are being used at the same time to play different tracks in a music production, it’s important that they be in sync with one another. If they’re not in sync, they may not start and stop together, or each device may have its own idea about which part of the song should be playing.

Several technologies are used to synchronize recorders, including ReWire and SMPTE. SMPTE (pronounced “simp-tee”) timecode is often used in synchronizing music to film and video. It’s a realtime sync protocol, which means that if you change the tempo in a device that’s using SMPTE sync, the bars and beats can still drift out of sync with the bars and beats in another synced device. ReWire uses bar-and-beat sync, which means that the musical positions of two devices connected by ReWire will always match.

 

Keyboard Magazine is part of the Music Player Network.