MainStage and Reason, Part One: ReWire
- February 9th, 2010
- Write comment
As many of you know, I was a Sonar user for many years. I drifted away from Sonar after version 4, and I never really replaced it with another DAW. Even for my last album, I used only Reason and Audition–no true multitrack DAW.
Shortly after the release of my album, I finally had some time to sit and play around with some new tools. Eventually I settled on Apple Logic. I’ve been a Logic user since version 6, and am generally quite pleased.
New to Logic 8 is an app called MainStage. Its goal is to be to live performance what Logic is for recording. MainStage has a fantastic on-stage interface and is the sort of app that could truly revolutionize live performance. But so far, there have been several complaints:
1. No ReWire support.
2. No midi out.
3. No way to route audio from an external application
4. Audio tracks mute when changing patches
5. General system instability.
There’s not a whole lot I can do about #5–except hope Apple gets their act together. However, this is the first in a four-part series to address the problems in MainStage (I hope you’re reading this, Apple) and how to overcome them. At the end you should have a fully-functional Reason stack, controllable from MainStage, that routes back to MainStage for effects processing. I finally got everything working this weekend (although I’m still sorting out some minor annoyances), and I’m happy to report I did my first live show with MainStage/Reason this weekend. If you have external/outboard MIDI gear, you also need to overcome #2 and #4, so this series should get you up and running as well. Aparrently I am the only person on the entire Internet to figure out how to get everything up, so you know I’m going to milk this for all it’s worth.
Special note: Some of this stuff isn’t for the faint of heart. My day job is a software developer, and I’ve had to do some extensive programming to get everything working. Hats off to the open-source projects I modified–the Apple open source community is fantastic.
The first complaint is a lack of ReWire support. ReWire is basically a glorified way to link two DAWs. In practice, it’s used to link Reason to a host DAW that supports audio (e.g. Logic, Cubase, etc.) To implement ReWire, you have to either be a “host” or a “slave.”
To be a fully-compliant ReWire host, you have to have a sequencer. However, MainStage is built for live performance, and has no sequencer (if it did, it would be Logic). Since MainStage would just be ignoring transport messages, it’s impossible for it to be fully ReWire-compliant. Furthermore, the ReWire protocol is only available under NDA. Since I’m under NDA with Propellerhead (for a different technology), I can say from experience that they are notoriously strict. I really doubt they would let anyone (even Apple) implement a non-compliant version.
There are some merits to being a ReWire slave application. MainStage could be used from within Logic, for example, or some other pro audio DAW. That would open up some creative doors. On the other hand, a ReWire slave can’t accept audio data from another slave, so it would be useless for getting Reason set up with MainStage.
There is a third possibility: a third-party developer could write a ReWire host as an Audio Unit software instrument plugin. I don’t have the ReWire docs, so I’m not sure what the feasibility of this would be. I would imagine that we would be talking upwards of 200 hours for me to code and support it, but it would be something I would consider if there were enough people willing to shell out for a license. If this interests you, shoot me an e-mail.
In summary, ReWire support in MainStage is non-existent, and I don’t expect that to change any time soon–MainStage simply doesn’t fit the ReWire “roles” very well, and Propellerhead doesn’t like bending the rules. However, we can accomplish much of what ReWire does without actually implementing it–it *is* possible to get outboard MIDI gear and Reason fully working in MainStage. We’ll examine the first steps for how in the next part!
Original post by Drew Crawford