The Practical Guide to ReWire

This powerful protocol promotes playability

By Craig Anderton
If you haven’t explored the ReWire protocol yet, you’re missing out on a tremendous way to improve workflow, and capitalize on the strengths of different programs. Basically, ReWire allows two or more software applications to work together like one integrated program. That sounds simple enough, but the implications are far-reaching.

For example, suppose you create a kickin’ rhythm track in Propellerhead Reason, but would love to add some vocals, guitars, and piano as overdubs. Of course, Reason doesn’t record linear digital audio tracks; so if ReWire didn’t exist, you’d need to export the file, import it into a DAW, and try your best to match the program tempo with the Reason file’s existing tempo. And if you decided you then wanted to make a change in a Reason instrument, you’d have to make the change, export the file, import, and so on all over again. It’s doable, but clumsy.

Instead, you can ReWire Reason as the client (also called the synth application or slave) with a ReWire-compatible host program (also called the mixer application) such as Pro Tools, Sonar, Digital Performer, etc. Both programs will follow the existing tempo while you lay down your audio tracks.

Reason is a popular program for rewiring because of its superb complement of software synths and MIDI-based pattern sequencing — tools lacking in even some of the most sophisticated DAWs. But Ableton’s Live is another excellent candidate for rewiring, as it can serve as a host or client – ReWire the MIDI synths from something like Project5 into Live, or use Live’s unique live performance-oriented looping options with programs that have limited looping capabilities. Other favorite ReWire clients include Arturia’s Storm (which can be a host or client) because it’s easy to create really cool grooves in seconds, Cakewalk’s Kinetic (which also creates grooves fast), and for more advanced groove-oriented work, Cakewalk’s Project5. TASCAM’s GigaStudio3 can also be a ReWire client, so you can flow multiple outs into your host.

Is all this cool, or what?

Any ReWire-compatible application is either a host, a client, or both (but not simultaneously — you can’t ReWire a client into a host, then ReWire that into another host). Although there can only be one host, you can usually rewire multiple clients into that host.

There are four main aspects to ReWire:

• The client’s audio outputs stream into the host’s mixer.
• The host and client transports are linked, so that starting or stopping either one starts or stops the other, respectively.
• Setting loop points in either application affects both applications.
• Both applications can share the same audio interface.

The original version of ReWire allowed streaming of up to 64 individual channels into the host’s mixer; ReWire2 does up to 256. You may have the option when rewiring to choose only the master mixed (stereo) outs, all available outs, or your choice of outs. (With ReWire2, it’s also possible to stream 4,080 individual MIDI channels — 255 MIDI buses with 16 channels per bus — from one application to another.)

If you choose all available outs, then instruments or tracks can rewire into channels individually, and be processed individually. For example, Project5’s Velocity drum module has five available outs to which you can assign its various drums. If you rewire these individually into a DAW, you can process, mix, and automate channel parameters (e.g., level, panning, and any automatable effects) for each out. The only downside is that enabling all available outs may really clutter your mixer, so you’ll probably want to delete any unused channels.

Another aspect of ReWire is that programs must be opened in a particular order: First the host, then any clients. Close programs in the reverse order. You won’t break anything if you don’t follow this protocol, but if you open the client first, the host will fail to see it; if you close the host first, you won’t be allowed to because it will still have an open connection with the client. Note that although many programs try to launch the client for you once you’ve selected it for rewiring, that doesn’t always work, and you may need to launch the client manually.

Let’s look at how to rewire into various host programs. We don’t have to investigate the client end of things, because opening the client is sufficient. Any editing or parameter setting is done at the host.

Incidentally, for information on rewiring with Pro Tools, see Mitch Gallagher’s Power App Alley in the January 2004 issue of EQ. Also, a big thanks to Mitch for writing the section on using Emagic Logic with ReWire.

Go to the Devices menu, which lists the various ReWire-compatible applications. Click on the application you want to rewire into Cubase, and a ReWire panel appears that shows all available client channels. Click on the buttons toward the left to enable the channels you want (note that you can rename the channel names in the right column — double-click and enter the new name).

The activated channels now show up in the mixer; in the Arrangement window, they appear in a folder track called ReWire Channels. Furthermore, with ReWire2 clients, the MIDI Output pop-up menus for MIDI tracks will display the various ReWire devices. As a result, you can route MIDI data from a track directly into the client application.

Note: If playback is inconsistent or breaks up, go Devices > Device Setup > VST Multitrack > Setup > Expert, then turn off Multiprocessing. Hit OK, Apply, then OK.

As usual, you need to load the host first.

However, DP already “knows” that ReWire applications are present, even before you load the client.

Go Project > Add Track > Aux Track to create an Aux track. Next, in the Input field, use the pop-up menu to choose the client output you want to feed into Digital Performer’s mixer. (Of course, you also need to choose a valid output.) If you want to add several sets of client outputs, create more Aux tracks and continue with assigning inputs.

Now load the client application, and press Play on either application. You should hear DP play along with the client, and the meters will indicate that the client is feeding audio into DP’s mixer.

The client will also appear as MIDI output destinations in the MIDI output assignment menus in DP’s MIDI tracks, so you can play (for example) Reason’s synths from MIDI tracks within DP, or record data in those tracks for driving the synths.

Bonus feature: ReWire MIDI ins and outs are published to all CoreMIDI-compatible software, so the client can receive MIDI data from such software as well as transmit data to it.

Go Insert > ReWire Device and choose the device you want to insert. You’ll see a list of all registered ReWire devices.

Select one, and a dialog box will pop up with check boxes for “First Synth Output” or “All Synth Outputs.” The former chooses mixed stereo outs, while the latter presents all available outs. Be careful if you choose the latter – do this with Reason, and it will add 64 channels to Sonar’s mixer. You can always delete the ones you don’t use, but still, unless you need individual outs, go for the main stereo outs.

You’ll also be asked if you want a MIDI source track. This is necessary should you want to send MIDI data to the client, e.g., control Reason’s soft synths via a MIDI keyboard. Of course, you can insert a MIDI track later, but if you do it now it will be named automatically, and be ready to go. You can also check “Open Synth Property Page” if you want to bring the client’s window to the fore, and “Open Synth Rack,” which shows a Sonar “virtual rack” of whatever synth and ReWire devices you have open.

Bonus feature: With Reason, the instrument names show up as outputs in Sonar’s MIDI Source Track.

To simply route outputs from the client into Logic, launch Logic, then launch the ReWire client. All of the available outputs from the client will automatically show up as audio objects in Logic. To use the ReWire outputs in Logic, select an audio object, and assign the desired ReWire output to it using the “Cha” flip menu. The Logic channels with ReWire inputs function like any other channels — you can have plug-ins, sends, etc., — but they have no input button.

For the complete ReWire experience, open the Environment window, then go New > Internal > Rewire.

In the ReWire object, you have three important parameters: “Dev” sets the ReWire client that’s connected to the object — all clients that are installed on your computer will show up as options here. “Bus” lets you choose among the available ReWire buses. With Reason, bus 1 allows you to address the “Live Track.” Buses 2-5 route to Reason MIDI buses A-D. To directly address the Reason instruments in the rack via MIDI, set the bus to 6. If you have more than 16 instruments in Reason, the extras can be addressed on bus 7.

“Cha” sets the MIDI channel that will be sent to the client from Logic. If the client gives names to the channels, they’ll be shown here, otherwise, you’ll see the 16 MIDI channel numbers.

The client’s outputs flow into the Live mixer channels as if they were inputs you were recording.

If you have empty tracks available for the client’s outs, fine. Otherwise, go Edit > Insert Track and insert the required number of tracks (remember, these are stereo tracks).

Once the client is open, click on the Input Type field (circled in red), and you’ll see a pop-up menu with all available ReWire clients. Next, click on the Input Channel field (circled in green) to reveal a popup menu with all available client outputs. Typically, the top item will be the client’s main stereo outs, followed by whatever individual instrument outputs are available.

Finally, click on the Monitor icon (circled in blue) so you can hear the rewired signal. Note that the channel meters will indicate the client’s levels, and also, you can process the client signals through Live’s effects, as well as send them to any aux effects via the send controls.

MIDI will generally be available for only one of the two programs at any one time. Disable MIDI for the program you’re not controlling; in Live, go Options > Preferences and set all MIDI fields to None.

Starting with v1.5, Audition added ReWire. However, it won’t pass MIDI data through to the client; for example, if you want to play the soft synths in Reason, you’ll need to record your data directly into Reason.

In most cases you won’t need to open the client after opening Audition, because Audition will do that for you. In Multitrack view, go Options > Device Properties > Rewire tab, then click “Enable Audition as a ReWire Host” (circled in red for clarity). Then, enable the devices that you want to ReWire (circled in green).

You then choose how you want the outputs to show up in Audition; there are three choices (circled in yellow).

“Insert summed stereo output into first available track” brings in the summed output, which will take up one track as Audition uses stereo tracks.

“Insert all outputs to individual tracks” brings in every one of Reason’s tracks, and that’s a lot – so if you want to go multitrack, you might instead want to check “Insert outputs manually using track device input dialogs.” This way, you can choose which client outputs show up at which Audition inputs. After making your decision, click on Launch (circled in violet) and the highlighted client will launch automatically. (Note: Some programs will need to be launched manually.)

You can enable multiple clients, but only the highlighted one will launch. After it has launched, go back to the ReWire tab, highlight the other client, then launch it.

If you decide to assign inputs manually, you’ll need to choose the Device Type (circled in red), which would be ReWire.

Next, you can specify whether the inputs will pick up the left channel, right channel, or stereo (circled in green). Once the assignments are complete, you’re good to go.

Incidentally, Audition won’t let you exit the program unless you return to the Devices Properties page and disable Audition as a ReWire host.

Bonus feature: Right-click on a ReWired track, and select “Mixdown to Track (Bounce)” to have the audio show up in the next open track.

After opening Storm, click on the ReWire Software tab (circled in blue) to show a list of ReWire clients. (If the tab doesn’t appear, go Settings > General and check “Activate ReWire mixer on launch of Storm.”) Then, drag the desired client into an empty space in the Storm rack (path shown in orange).

Use the drop-down menus (circled in red) on Storm’s ReWire “rack unit” to assign particular outputs from the ReWire client to the right and left channels of the Storm mixer, which will have dedicated a track to the ReWire device (outlined in violet).

If you want to assign more outputs to the Storm mixer from the same ReWire client, drag another instance of the client from the ReWire Software tab over to another blank space in the Storm rack. Storm will open up another channel; assign the desired client outs to the new Storm channel as described previously, using the drop-down menu.

Go Insert > Soft Synth, then click on the ReWire Devices tab. This shows a list of ReWire devices, along with their available outputs.

As soon as you select an output, this creates a Soft Synth channel in the Mixer window. Repeat this process to add as many outputs as you like (or your computer can handle).

Acid will pass through MIDI data to compatible applications. For example, if you’ve chosen a MIDI input in Acid under Options > Preferences > MIDI, and are rewiring Project5 into Acid, clicking on the MIDI icon for a Project5 channel lets you play the associated instrument from what’s feeding your MIDI interface’s input.

If you want to record that MIDI data within Acid, go Insert > MIDI Track, name the track and specify where you want to save the data, click on Record, specify MIDI as the Record Type, and set MIDI Thru to the device you want to control. Click on Start, and begin recording.

Bonus feature: Acid doesn’t care whether you close it or the client application first.