Max supports ReWire, a software protocol developed by Propellerheads that allows data transfer and remote control among audio software applications. In addition to being able to route audio between Max and ReWire compatible applications, ReWire supports sending synchronization, transport, and tempo information both to and from Max and the host application.
- Open Transport Rewire Ableton Mac
- Open Transport Rewire Ableton Machinery
- Open Transport Rewire Ableton Macro
As well as tempo and timeline sync, Rewire provides bi-directional transport linking and internal patching for audio and MIDI between apps. Reason can still send MIDI Beat Clock while synchronised to a Link network, giving you a way to include your hardware instruments in a Link jam. However, Reason can’t use Rewire and Link at the same time. I'm assuming you were expecting to open Live, open FL Studio afterward and then mash the giant ReWire button that popped up a la Windows style. That's what i expected. It certainly worked on XP and Windows 7 that way. I have used it on my Mac, but hadn't tried to ReWire since installing the Mac version.
- If you are planning to use ReWire to open an existing Project in the Client application, you should open the Client application and note the Tempo of the Project before running a ReWire session. Click on the FX button of the Track that will host the ReWire application. Select ReWire from the FX plug-in list.
- This process will open the ReWire window in Pro Tools. Step 4: Launch Ableton Live. You can confirm that Live is properly in ReWire Slave mode by starting and stopping the playback (in either program) and confirming that both transports are in sync. Step 5: In the ReWire window within Pro Tools, choose your desired Ableton Live output.
- Download Apple Open Transport for Mac to enhance networking capabilities of OS 9.1.
You can use Max as a ReWire client and route audio from Max into another application (such as Ableton Live or Digital Performer) using ad_rewire, a special audio driver.
You can also use Max as a ReWire mixer using the rewire~ object and route audio to Max from other applications.
You cannot use both the ad_rewire audio driver and the rewire~ object simultaneously; When you try to use them at the same time, you won’t get any audio output because each is waiting for the other: the ad_rewire driver is waiting for the rewire~ object to ask it for an audio stream, but the rewire~ object can't do anything unless given processing time by an audio driver.
You can also use the ad_rewire driver when creating standalone applications.
Using Max as a ReWire client
To use Max as a ReWire client and route audio to another application the Max ad_rewire driver is used.
Enabling the ad_rewire driver
- Choose Audio Status from the Options menu to show the Audio Status window. Click in the Value column for the Driver setting and choose ad_rewire from the Driver pop-up window. The ReWire driver will be selected, and you will see Max listed as a ReWire device the next time you launch your host application.
With ad_rewire selected as the audio driver for Max, there are three MSP objects you can use to provide this information and to control the host’s transport:
- The hostcontrol~ object allows you to send commands to the ReWire host to start and stop the transport, set the transport position, change the tempo, change the time signature, and set loop points.
- The hostphasor~ object will output a beat-synchronized ramp (like the phasor~ object) when the host's transport is playing,. You can use this ramp output to drive your synthesizer in a beat-synchronous fashion or to trigger events on the beat.
- The hostsync~ object provides synchronization, transport, and tempo information about the current state of the ReWire host.
Connecting from Max to a host application using ReWire
- If you have not already done so, enable the ad_rewire driver as described above.
- Start the application you want to send Max audio output to.
- Create a channel in the host application to accept input from Max
- Open your Max patch and turn on the DSP
Hosting a ReWire client
The rewire~ object is used when Max is used as a ReWire host, routing audio from other host applications to Max. The rewire~ object allows you to select a ReWire client, use the available audio outputs, send and receive MIDI messages and control the connected device’s transport controls.
Creating a connection from a ReWire client to Max
- Add a rewire~ object to your Max patch, connect the second outlet from the right to a umenu object, and add a second connection from the middle outlet of the umenu object to the rewire~ object. You will also need to add a button or loadbang object to send a bang message to the rewire~ object to populate the menu.
- Close the patch and click on the button. The umenu will be automatically populated with a listing of all available ReWire clients which can send audio to Max. Click on the umenu and select the client you want from the pop-up menu. You will see the message rewire~: opened deviceXXX in the Max Console.
Routing ReWire client audio outputs to Max outputs
- Connect the rightmost outlet of the rewire~ object in your Max patch to each of a pair of umenu and message box objects which are connected back to the rewire~ object.
- Close the patch and click on the button. The umenu objects will be automatically populated with a listing of all the ReWire audio outputs from the client application. Click on both umenu objects and select the clients you want from the pop-up menu.
- Clicking on a umenu selection will send the message map 1|2<client output> to the rewire~ object, routing the audio from the client application to the rewire~ object’s audio outlets for use in your Max patch.
In addition to routing audio from other applications through Max, the rewire~ object also lets you control the transport mechanism of any client application to which it is connected, and to send and receive MIDI messages. See the rewire~ help file and the rewire~ object Reference page for more information.
ReWire and MIDI
Rewire 2 also supports MIDI communication to and from ReWire Devices. Currently both the rewire~ object and the ad_rewire~ driver support MIDI, although they work in different ways.
When you use the ad_rewire driver, Max MIDI ports are automatically created so you can use the standard Max MIDI objects to send and receive MIDI. After you choose the ad_rewire driver in the Audio Status Window, MIDI ports will appear in the MIDI Setup window the next time it is opened.
Using MIDI with the ad_rewire driver
By default, the ad_rewire driver has two MIDI input channels and two MIDI output channels available for your use.
Setting up MIDI ports with the ad_rewire driver
- If you have not already done so, enable the ad_rewire driver as described above. Add a midiin object to your Max patch and Command-double-click (Macintosh) or Alt-double-click (Windows) on the midiin object to show the MIDI sources pop-up menu. The ReWire MIDI ports will be shown and you can choose them.
You can use the same procedure to set up an output port using the midiout object.
Adding MIDI ports to ReWire
- Choose Audio Status from the Options menu to show the Audio Status window. Double-click in the Value column for the Input Channels or Output Channels setting in the Audio Status window to get a text cursor, Type in the number of input or output channels you want followed by a carriage return. The new values will appear in the Value column, and the new number of MIDI input or output channels will be available via Max MIDI objects.
Using MIDI with the rewire~ object
When you use Max as a ReWire host using the rewire~ object, MIDI messages are automatically sent and received using the rewire~ object—it includes a dedicated outlet for MIDI messages, and you can use the midi message to the rewire~ object to send MIDI data to the ReWire clients. For more information about the format that the rewire~ object understands, see the rewire~ object Help file or the rewire~ object Reference page.
See Also
Name | Description |
---|---|
Sharing Max Patchers | Sharing Max Patchers |
Using Max with other applications | Using Max with other applications |
MIDI | MIDI |
All DAWs have their idiosyncratic nuances that make them great for some things but not so much for others. Lots of producers may have grown up using one DAW and switched to another later down the line. Some stick to one and others flit between several.
One extremely useful development by Propellerhead and Steinberg in 1998 was a software called ReWire. Originally created to connect Propellerhead’s TB/TR X0X emulator ReBirth to Cubase, it’s now an industry standard method for connecting any two DAWs capable of using it.
A full list of what DAWs can be ReWired can be found here, but the big hitters are really Logic, Ableton, Pro Tools, Reason and Cubase. ReWire requires one DAW to be a host and another to be a slave (bear in mind you can run more than one slave DAW at a time).
Some DAWs can only be hosts (Logic, Pro Tools, Cubase) and some only slaves (Reason) where as Ableton Live can be both. In this post I’m going to take you through the steps in rewiring Logic X and Ableton 9; importantly, the latter needs to be running in 64-bit mode else it won’t work. If you paid for Live, you can download the 64-bit version for free from your account on the Ableton website in your account downloads.
Why ReWire?
All DAWs do things slightly differently. Some come bundled with tonnes of really useful plugins, like Logic; some handle time stretching in a really CPU-light way, like Ableton; and some have great ways to cross-modulate synths and drum machines, like Reason.
Combining the best of all of these DAWs can lead to interesting results. I am mostly an Ableton user these days but I was predominantly using Logic for about eight or nine years before that, so I am very clear about the advantages and disadvantages of both.
Many Reason users were extremely happy with the sequencing and modular options available in their DAW of choice but begrudged the fact you couldn’t record audio – ReWire made that possible by hooking it up with Pro Tools, Logic or Cubase.
ReWire can be heavy on your CPU so this isn’t always something I reach for. Know the limitations of your music-making machine and be prepared to freeze tracks or bounce down if necessary.
Logical Progression
Probably two of the more popular sequencers for the average bedroom producer are Logic and Ableton (the latter being both PC and Mac). When rewiring the process is much the same whichever DAWs you are using, so we should be able to demonstrate the concept just fine with these two.
We’re going to be using Logic X which is 64-bit software. Ableton Live 9 can be run in either 32-bit or 64-bit and, if you’ve purchased it, both can be downloaded. It’s important that if you’re using Logic X you have the 64-bit version of Live to hand. If you want to use Logic 9 or another 32-bit DAW, you’ll need to have the 32-bit version of Live.
First things first open up Logic X, which is acting as the master DAW. I’ve just opened an empty project. In the Audio Preferences (cmd + ,) make sure that ReWire Behaviour is set to either Playback or Live Mode and not Off:
Close the preferences and hit x to open the mixer. Now click Options > Create New Auxiliary Channel Strip:
This will add a track in your mixer called Aux 1: set the input to Ableton Live > RW: Mix L/R:
Now anything that comes out of Live’s master channel will be inputted into Logic.
Open Transport Rewire Ableton Mac
Let’s open up Live (again, ensure you’re running the 64-bit version or this won’t work).
You should notice some differences: although the tempo can be adjusted, it’s greyed out because it’s taking this information from the host DAW (Logic). All transport functions like play, stop, fast forward and record will be replicated too – both DAWs in sync with each other.
Saturday Night Live
Really, you could stop here. I would recommend using Live’s Arrange view, rather than Session, but if you’re an advanced Ableton user this won’t make a difference.
Pressing play in Arrange view will behave as you might expect in Logic – if you play from bar seventeen it will play from bar seventeen – however in Session view Logic will always play from zero.
This is okay if you have a four/eight bar loop from zero in Logic and you want to use Live’s Session view attributes to audition ideas, use clip launch actions or similar. When mixing or arranging it’s certainly worth dealing with Arrange view, though.
Open Transport Rewire Ableton Machinery
You can sequence MIDI and audio in both Logic and Ableton. One limitation is that you can’t use any third party plugins in Live so Sylenth, Massive, FM8 or whatever all need to be sequenced in Logic.
Logic is sadly restricted to Audio Units, so any free VSTs are out of the question unless you have some sort of plugin wrapper (which I don’t).
If you want to take this further, you can actually output Live’s audio onto different tracks in Logic; enable the I/O tab to and click the Audio To dropdown menu. Select ReWire out and then give it a dedicated output (Bus 3/4, 5/6, 7/8 etc. etc.). Be sure you create another Auxiliary Channel Strip in Logic to receive this though, otherwise that channel will appear silent:
Reasonable Doubt
Let’s add Reason to this project. Sticking with what we’ve got already, open up Reason. You will need to run Reason in 64-bit mode, too: this can be done by finding the program in applications and cntrl + click Get Info (or cmd + i if it’s highlighted). Here, disable Open in 32-bit mode:
Straight away you should notice all the transport functions behave the same. In Logic, create an Auxiliary Channel Strip for Reason > RW: Mix L/R. In Reason you can now reroute synths, drum machines and effects to your heart’s content by hitting tab and rejigging the wires.
The Audio I/O device at the top is where you can physically route devices into Logic on separate channels trips:
MIDI ReWire
Our host DAW does not just have to receive audio from our slave DAWs, we can actually sequence MIDI (in Logic, in our example) and send it to both Ableton and Reason. You might want to do this if you prefer sequencing MIDI in this environment, or want to keep as much of the arrangement in one place as possible.
I’ve created a few instruments, an Analog synth in Live and a Thor in Reason. To send MIDI data to these, you need to an External MIDI track.
Open Transport Rewire Ableton Macro
By accessing the Library (hotkey y) we can see Ableton and Reason have cropped up in our browser. Select the instrument you want to send MIDI to (Thor, in the case of Reason or Analog in the case of Live) and program away!
Saving Your Work
Obviously if you want to return to your work it makes sense to save the Reason, Ableton and Logic projects in a sensible place (I would suggest the same folder). You should also be aware that any slave DAWs need to be closed before the master, otherwise you’ll get an error message.