First seen on their Rebirth software synth, Steinberg/Propellerhead's Rewire technology not only provides a means of getting software from multiple manufacturers to work together, it also arguably makes the 'studio-in-a-PC' a workable reality for the first time. Martin Walker unravels its complexities...
Now that computers are powerful enough to run real-time software synthesizers and samplers in real time, many musicians using Macs and PCs are intrigued by the possibility of running an all-in-one computer studio, incorporating a software MIDI + Audio sequencer alongside these applications -- indeed, the feasibility of this approach was the subject of last month's PC Musician feature. If you read that feature, you'll know that this way of working is a theoretical possibility, given sufficient processing power. This is a big 'given', however, and there are various other practical problems too, such as latency (see the aforementioned feature for more on this). However, the specific problem that concerns us in this article is that of interfacing with the world outside the computer. It can be extremely difficult to get several applications to talk to the same audio output device or soundcard simultaneously, since each one requires audio playback facilities (incidentally, this is the subject of the PC Musician feature this month, starting on page 140!). Some PC-based musicians have worked round this limitation by installing several soundcards, so that they can allocate one to each application, but even this doesn't solve all the problems.
Thankfully, some developers are beginning to cater for the all-in-one studio by providing ways to integrate several applications. Rewire is one technology that seems to have come to the rescue, along with VST 2.0 (see box), although several other manufacturers are also working on their own solutions. These include Digidesign, with their new DirectControl protocol for slotting stand-alone software synths and samplers into TDM Pro Tools systems, and MOTU, with AudioTap, which allows integration of Mac-based Sound Manager applications into Digital Performer.
A Spot Of Rewire-ing
Propellerhead Software first came to public attention with their excellent Recycle sample loop manipulation package, which brought them into collaboration with Steinberg. Their next endeavour was Rebirth, an accurate software simulation of two Roland TB303 and one TR808 modules in a single streamlined package. This was (and is still) a major success -- you can see our review of the original version in SOS August '97, and of the updated 2.0 version in the more recent SOS November '98.
Given the previous collaboration, it wasn't surprising when Steinberg announced a new technology to let Cubase VST and Rebirth co-exist more peacefully. Rewire is a way to transfer audio between two applications in real time; they term it 'the software equivalent of a multi-channel audio cable'. Up to 64 independent audio channels can now be passed from Rebirth into Cubase, so that you can apply plug-in effects and EQ to them individually.
This is a huge step forward, and overcomes one of the major limitations of most software synths and samplers. Previously, the only way to apply different EQs or effects to individual sounds was to go through all the rigmarole of routing them to different outputs on the soundcard. The beauty of the Rewire approach is that you simply don't need a multi-output soundcard of any description -- each Rewire-enabled application can pass up to 64 audio streams into Cubase VST, effectively giving you the equivalent of a 64-output synth or sampler!
Transport control can also take place from any Rewired product, so that everything starts and stops with sample-accurate synchronisation. This means that when working inside Rebirth you can start and stop your entire song (including the VST tracks) using its transport bar, and when working with other MIDI or audio tracks inside VST you can do the same thing for the Rebirth tracks from the VST transport bar.
Connecting several applications using Rewire may also reduce the overall load on your computer's processor, and it may let you run the Rewired applications using less RAM -- unless you take advantage of the RAM you gain back to run lots of extra plug-ins, that is!
In January of this year, Steinberg and Propellerhead announced jointly that they were opening the Rewire protocol for general use by other developers, with no licence fee at all. Not surprisingly, given its advantages for VST users, other products are now being developed to take advantage of this technology. Bitheadz' Retro AS1 software synth and Unity DS1 soft sampler for Mac are already Rewire-compatible, and the PC versions will follow shortly. However, the opening up of Rewire technology doesn't only allow developers to plumb third-party products into Cubase VST -- There are several differences between Rewire and VST 2.0 Instruments. The main one is that Rewire applications can also run in stand-alone mode, whereas VST instruments are always launched and run from within Cubase VST. The user interface of the VST Instrument is a single window, just like that of any other plug-in, but the user Interface of a Rewire-compatible product can be anything the developer desires. The latency of VST 2.0 Instruments is exactly that of the soundcard when used for normal audio work. If you have one with low-latency ASIO drivers then you'll be pleased; if not then real-time performances will probably be out. Mind you, ASIO latency values seem to be dropping rapidly in all the cards released recently, which should benefit both VST Instruments and Rewire applications. New products will probably be easier to implement as VST Instruments, since only a single .dll 'engine' file is needed, whereas developers with existing products are likely to choose the Rewire route, since they already have a stand-alone product. More complex designs may also benefit from having a custom-designed interface and being Rewired.
Rewire Vs. VST v2.0
Another new technology is Steinberg's VST 2.0, provided in the latest Cubase VST v3.7 for Windows and v4.1 for Mac. This update to the original VST plug-in format adds MIDI control. This not only gives you the capability to change effect settings in real time using MIDI controllers and therefore add automation, but also opens the way for complete synths to be designed as plug-ins, since they can now be 'played' using any MIDI keyboard. As I mentioned in July's PC Notes, Steinberg themselves have launched a range of 'Virtual Studio Instruments' using VST 2.0 technology, the first being based on the Minimoog.
There are several differences between Rewire and VST 2.0 Instruments. The main one is that Rewire applications can also run in stand-alone mode, whereas VST instruments are always launched and run from within Cubase VST. The user interface of the VST Instrument is a single window, just like that of any other plug-in, but the user Interface of a Rewire-compatible product can be anything the developer desires. The latency of VST 2.0 Instruments is exactly that of the soundcard when used for normal audio work. If you have one with low-latency ASIO drivers then you'll be pleased; if not then real-time performances will probably be out. Mind you, ASIO latency values seem to be dropping rapidly in all the cards released recently, which should benefit both VST Instruments and Rewire applications.
New products will probably be easier to implement as VST Instruments, since only a single .dll 'engine' file is needed, whereas developers with existing products are likely to choose the Rewire route, since they already have a stand-alone product. More complex designs may also benefit from having a custom-designed interface and being Rewired.
Before the release of Rewire, sync'ing Rebirth and Cubase VST using MIDI was rather convoluted, requiring either multi-client MIDI drivers, multi-client overlay utilities like Hubi's Loopback, or even multiple MIDI ports (Propellerhead maintain extensive FAQs for both Mac and PC if you are still using pre-Rewire versions of Rebirth). However, using both applications together with Rewire is comparatively simple.
You first launch Cubase, and then open up the Rewire window from the Cubase Audio menu. Any combination of the available Rewire inputs can be enabled by clicking on its green 'Active' button, and you can also rename them by clicking in the Label column -- the new name will appear in the Cubase mixer channel. In the case of Rebirth you can simply use its combined stereo output, or the individual outputs from each 303, the 808, and 909, or access the six individual instuments from the 808 and 909. This Mix routing is cleverly programmed so that as you activate individual instruments, they are removed from the mixed inputs, which always carry all the sounds except those separately activated. In addition, some of the level, pan and effect options within Rebirth are replaced by those in VST -- the details are expained in the Rebirth manual.
There are a total of 18 Rewire inputs coming into Cubase (you can see the entire set in the main screenshot, left). Cubase should also be set to 44.1kHz operation -- Rebirth only supports this sample rate -- but then most people are likely to use this setting anyway. You also need to make sure that the 'Play in Background' option in the VST Preferences window is active; otherwise, communication between the two applications will be lost. The correct order for quitting is Rebirth first, then Cubase. If you aren't running a Rewire application with Cubase, you can reduce your processor overhead slightly by disabling all Rewire inputs.
Rebirth songs are still composed using its own front-panel controls, but while you do this any other Cubase tracks will be playing along in sync -- Cubase is always the Master as far as tempo is concerned. Similarly, once you have Rebirth sounds programmed, they will play back in perfect sync when you are working inside Cubase on MIDI or audio tracks. In the Cubase mixer, Rewire channels appear in red, and can take advantage of all the normal features such as EQ, insert and channel effects, and automation. You can also route them to any available hardware outputs, and all unmuted Rewire channels are included when you mix down using the Export Audio function.
The Dark Side
Of course, no technology is perfect, and when I contacted various third-party developers with existing software synth or sampler applications and asked them about their attitudes to Rewire I got a mixed reaction. Some, like Bitheadz, were immediately enthusiastic about adding Rewire compatibility to their products. Their main reservations are that Rewire takes a lot of processor overhead, and that until multiple Rewire applications were supported no-one could run Unity and Retro together. This is apparently now available in Cubase v4.1 for Mac and v3.7 on the PC.
Other developers were more guarded, and latency was quoted as the main problem. Rebirth is largely programmed using the mouse or computer keyboard, and MIDI is only used for synchronisation to other DISADVANTAGES
The Main Points At A Glance
Provides each software synth and sampler with up to 64 outputs.
Each output can have EQ and effects added separately in a host application like Cubase VST.
Rewire applications stay in perfect sample-accurate sync with the host sequencer.
Linked transport controls let you navigate through a song from any Rewire application.
Multiple Rewire applications can use the same soundcard with no conflicts.
Latency may be higher using a Rewire application than a stand-alone version.
Rewire takes some processor overhead, although running two applications together may result in less resources being used overall.
I installed the latest 2.0.1 PC version of Rebirth, and tried adjusting the Audio Card Buffer value in its Preferences window -- the fastest response I managed with any of my soundcards was about 40 milliseconds. This felt fine with Rebirth, and is no cause for concern, but would be far too high for a performance synth or sampler. However, when paired with a Rewire host such as Cubase VST, this adjustment is greyed out, and the latency then depends on the combination of the Rewire application, Rewire connection (Propellerhead told me that this only imposes a delay of about 64 samples, or 1.45 milliseconds), Cubase VST, the soundcard drivers, and the operating system.
Many developers spend a considerable amount of time perfecting their stand-alone applications so that they can (with the right sort of soundcard) achieve latencies lower than 10 milliseconds. The software then feels as responsive as any MIDI hardware synth when being played. For instance, Seer Systems' Reality is capable of very low latency values with a wide variety of soundcards (although no actual figures are quoted). Native Instruments' Generator can work down to 10mS with many soundcards. Nemesys claim a typical latency with their Gigasampler of between five and eight milliseconds.
We will have to wait and see what typical latency figures are achieved when more Rewire-enabled products are available, but Propellerhead certainly have a commitment to reducing latency so that Rewire can be used for playing more software synths 'live'. They have apparently already managed a latency figure of three milliseconds using a MOTU 2408 on the Mac with a new Rewire product 'in development'.
Rewire technology is already starting to benefit many musicians, by letting them finally run software synths and samplers with Cubase VST or other Rewire-compatible hosts like Opcode's Vision DSP and Studio Vision. The only current fly in the ointment is that latency values are largely set by the soundcard drivers, which can restrict the real-time playability. Rewire v2 is in development, and will be capable of 256 audio channels per Rewire application, along with an unlimited number of MIDI streams.
As more and more cards arrive that can manage lower latency values (like the 3mS achieved by RME's Hammerfall 9652 card), Rewire is likely to be taken on board by many more third-party developers and gain wider acceptance. However, it's still only six months since Rewire 'went public', and Propellerhead are to be firmly congratulated on spearheading this integration.