Do you use a software studio with plug-in effects but crave the effects quality that your favourite hardware processor used to provide? You can have the best of both worlds, as we explain.
Despite the best efforts of software developers, some types of effect are still difficult to replicate properly inside a home computer. Examples include analogue EQ, preamps featuring valves and transformers, and some classic compressors. To mimic analogue circuitry, one must model it as a set of digital algorithms that exactly duplicate the interactions of the original components. This takes a lot of computation.
Even that staple studio effect, digital reverb, still leaves something to be desired when recreated in much of our current software. The best real-time reverbs still tend to be sold as rackmount boxes running advanced algorithms in dedicated DSP (Digital Signal Processing) chips. In theory, even the most expensive rackmount models could theoretically be recreated in native processing versions (using the processing power of the computer rather than dedicated DSP chips), but there are two practical obstacles.
The first is piracy. Few companies that have devoted many years to perfecting their top-end 'hardware' reverb algorithms would relish the prospect of an identical-sounding plug-in equivalent that they had developed being 'cracked' and passed around the world within a few days of its release. The second is processing power. In order to duplicate the smooth and dense reverb tails found on top hardware reverbs, you generally need a lot of processing power, and few musicians are nowadays prepared to devote 50 percent (or more) of their PC's CPU power to a single effect.
So to gain access to high-quality and/or exotic processing, it may be necessary to look beyond purely native software processing. We can do this in a couple of ways. The first is to consider investing in some sort of DSP assistance for your PC's processor — a soundcard or computer hardware add-on system that will provide or support dedicated DSP effects. Examples of such systems include Yamaha's DSP Factory card, Creamware's Pulsar system, and TC Electronics' Powercore DSP card, all of which (along with other alternatives) I'll be taking a look at in next month's PC Musician feature. This month, though, I want to concentrate on the other alternative for increasing the effects potential of your computer music studio: the good old-fashioned dedicated external effects processor, usually found in a rackmount case, that you can connect to your software studio via analogue or digital means.
Many thousands of musicians already have various 'outboard' effects that they still use regularly, probably in conjunction with an analogue mixer. Many others have abandoned hardware in favour of a totally software-based studio, which means that there are loads of hardware bargains to be had on the second-hand market. Also, as mentioned previously, despite the advances in computer-based effects, many of the 'creme de la creme' and vintage effects can only be bought in stand-alone hardware boxes.
Consequently, I've recently been asked by a number of computer musicians whether or not they can plumb external hardware effects into their computers, to get the best of both worlds. This is not a completely hassle-free scenario, since you get none of the internal routing and automatic latency compensation provided by computer-based DSP solutions. Such latency compensation depends on knowing buffer sizes and other plug-in delays, and hence the exact latencies involved. After plumbing in external hardware, while your PC may still compensate for the soundcard buffer delays, once your signals leave the computer any additional delay information can't be automatically determined.
Instead you have to connect external audio hardware using either analogue or digital cables (depending on what type of I/O is available on the outboard device), set up their routing by hand in your MIDI + Audio sequencer, and compensate by hand for whatever latency you find (although you can take some measurements to help you — see 'Measuring Real-World Effect Loop Latency' box).
The first requirement for integrating hardware processing is a spare soundcard input and output to act as an effect send and return. It's normally easier to make these sends stereo, since that's the way most soundcard drivers operate (although in many cases a mono send will be sufficient, since so many hardware effects provide mono-in/stereo out capability). Those whose soundcards are surround-capable, but are only currently wired to stereo speakers, can use the rear soundcard outputs, although any line-level output will do. We'll start by running through the necessary analogue connections, before moving on to the procedure for those with digital interfacing on their effect box.
- First, connect the output you're designating as effect send to the input of your hardware effect, and the effect output to your spare soundcard line-level input. This establishes your send/return loop.
- Next, you need to make sure that this input and output pair are enabled in your MIDI + Audio application. For instance, in Cubase VST or SX 1.x, you need to launch the VST Outputs window, click on the Activate Bus switch for the stereo output you're going to use, and activate the input pair from the VST Inputs window. In Cubase SX 2.x you do the same by launching the VST Connections window and using the 'Add Bus' button on both the Inputs and Outputs pages. While you're there, rename the busses as something more obvious like 'Ext FX Snd' and 'Ext FX Rtn', as this will make later routing much easier to follow. The new output channels will automatically appear in the main Cubase SX 2.x mixer, but are only visible in the VST Outputs window in VST and SX 1.x.
- Now we can use the input/output pair to create an external effect send, by re-routing the output of one of the VST Send Effects to this new buss. Again, in Cubase use the VST Send Effects window in VST and SX 1.x, or navigate to the right-hand end of the SX 2.x mixer to find the FX channels, and then choose the new 'Ext FX' buss in the routing box (you'll probably find that it currently reads Master or Bus 1).
- SX 2.x will let you use the new routing without having a plug-in in the effect slot, but VST and SX 1.x make life slightly more complicated: in these cases we have to choose a plug-in as a 'dummy' for the slot, to enable the signal to be routed onwards. Make sure the one you choose has a bypass button or can be set to fully 'dry', so that the audio signals aren't altered in any way.
- Another routing approach is to use a Group track as the effect send and route the output of this to the 'Ext FX Snd' output buss. The advantage of this method for Cubase VST and SX 1.x users is that the effect send is now in stereo (send effects in these older versions of Cubase are mono in/stereo out, a limitation that was removed in Cubase SX 2.x). A stereo send may prove useful to those with stereo in/stereo out hardware effects. However, even Cubase SX 2.x users benefit from a second advantage, which is that the Group channel fader acts as an extra master send level to your hardware effects.
- If you want to use an insert effect (such as compression, distortion or EQ) on a particular track, rather than a send effect (such as reverb or chorus), just route the output of the appropriate audio track directly to the 'Ext FX Snd' bus, where it will be sent in stereo to your external hardware.
- It's time to enable input monitoring so that you can hear the effect return. To do this, we first need to create a new audio track, label it 'FX Return', and make sure its output routing is set to Bus 1 (the Master analogue output of the soundcard), so that we don't end up creating any feedback loops to the 'Ext FX Snd' output, and its input routing to 'Ext FX Rtn'.
- Now we need to enable the most appropriate type of input monitoring. On Cubase this is probably 'Manual', so you can turn the hardware effects mix contribution on or off using the Monitor button on the FX Return audio track. Tape Machine-style isn't appropriate, since the effects would disappear during playback, and using 'While Record Enabled' is complicated by the fact that the Record Enable button has a habit of switching itself back off in various circumstances.
Sonar 3's new bussing structure makes it painless to add external processors. As you would expect, you need a card with additional ins and outs (digital and/or analogue, depending on what gear you want to connect) to interface with the hardware, but otherwise all routing can be done within Sonar.
- First, make sure that any drivers feeding the external ins and outs are enabled. I use Creamware's PowerPulsar, so I've patched channel 8 (stereo) of the ASIO output module to the Creamware audio interface's stereo analogue out, whilst the card's stereo analogue in feeds channel 8 (also stereo) of the ASIO input module. To enable the drivers for these channels, go Options / Audio / Drivers; highlight the drivers that communicate with your audio interface's I/O.
- Next, create a send buss. Right-click in the buss pane, select 'Insert Bus', then name it to avoid confusion (for example, 'To External Effect'). Assign the buss Output field to the driver that feeds the external analogue output.
- If you want to send a track's signal to the external effect, right-click on a blank spot in the track (Tracks Pane or Console View) and select 'Insert Send', then choose the desired buss (in this case, 'To External Effect'). This creates a send control to the buss. To send some signal to the external effect, just turn up this control, as the buss out dumps directly to the effect input.
- Our final step is to add an effects return. Probably the easiest approach is to create a dedicated FX Return track, so right-click on a blank space in the Tracks Pane or Console View and select 'Insert Audio Track'. Set the track's Input field to whatever input is being fed by the external audio input (in my setup mentioned above, it's ASIO channel 8), and make sure Input Echo is set to 'On'. Now all that's left is to compensate for any delays due to the signal going out of the audio interface, through an effect, then back into the system. There are a few ways to deal with this:
- If the effect can blend dry and processed sound, turn down the volume of the original track(s) feeding the effect, set the Send to pre-fader, and listen only to the effects return. To compensate for the latency compared to the non-processed tracks, go Process / Slide and slide the track(s) being processed forward in time (to the left) by whatever amount compensates for the delay.
- If the effect provides processed sound only, I usually 'clone' the tracks to be processed, feed the clones to the external effects buss using a pre-fader send, and turn down their volumes so they don't contribute anything to the mix. The original (non-cloned) tracks provide the dry sound; bring up the effects return level for the desired amount of effect, then slide the cloned tracks ahead in time to compensate for any delays.
- A final option is to simply record the audio produced by the effect into the FX Return track, and slide that track ahead while mixing, to compensate for any delay. You may need to do this anyway if you want to use lots of external effects, but don't have enough I/O to handle them all in real time. Insert one effect at a time, record the results, then move on to the next effect. Craig Anderton
Once you've got your routing sorted out, it only remains to deal with whatever audio delays have accrued during the outward and return journeys. You can measure these delays accurately by using the guidelines in the latency measurement box I mentioned earlier.
In the case of insert effects such as exciters, exotic compression, distortion from stomp boxes and the like for guitar tracks, and high-quality analogue EQ, only the returning signal will be required, since the entire track signal should be sent direct to the 'Ext FX Snd' buss, as previously described. You can even send multiple audio tracks to the external insert effect if appropriate, as long as any other required plug-in effects are applied individually to each track first, so that the external insert is the final one in the chain. In your sequencer you'll have to drag the original track or tracks backwards by your measured delay in samples, so that the return arrives exactly in time with the rest of the track.
The most popular external hardware effect is likely to be reverb, and happily this presents the fewest problems re. latency, since in real life a pre-delay of 10ms or more is nearly always required to simulate the time it takes for the initial reflections to start arriving back at the listener's ears — and this could mask any latency effects. Once you know your loop delay, simply subtract this from the reverb's pre-delay parameter setting, or (in many cases) just ignore the extra delay, especially if you're working with individual buffer latencies of 6ms or less. However, if you ignore the extra delays, do make sure that the return signal is set to fully 'wet' so that you don't get a second dry signal that may be slightly out of sync with the original track.
Reliably getting dry and wet signals to remain in perfect, sample-accurate sync when one of them is being sent via a convoluted signal path like this is probably the most difficult thing to achieve, which makes using external send effects such as chorus more difficult. Unless you really do want to apply a send effect other than reverb to multiple tracks, the safest approach is to stick with insert routing, so that the dry and treated signals both have exactly the same path and therefore remain perfectly in sync.
By the way, if you want to apply the same hardware insert effect with different settings to multiple tracks, don't forget that you can 'print' an individual effects track with the desired mix of wet and dry signals as a new audio track, mute the original, and then re-route the effects to treat other tracks, one at a time.
Back in SOS September 2002 I described a way to measure the real-world latency of your soundcard. Many musicians think that their audio latency is simply the value displayed in their MIDI + Audio sequencer application, solely due to the soundcard's buffer size and sample rate. For instance, with a 256-sample buffer running at 44.1kHz, the displayed latency would be 256/44100, or 5.8ms (commonly rounded up to 6ms for display purposes).
However, this figure doesn't include the extra delays due to A-D (Analogue to Digital) and D-A (Digital to Analogue) conversion, which can typically be a millisecond each, plus any extra internal buffering or extra DSP processing that may take place on the soundcard, which may add a further 1ms in each direction on some soundcards (see PC Musician in SOS October 2002 for more details).
When you've also got a digital effects unit in your send/return loop, you must add its A-D and D-A delays to the equation, along with any other internal processing delays, but aside from this you can still use a similar method to measure the overall real-world latency.
Once you've set up your routing between software and hardware effects processor, as described in the main text, just create an audio file lasting a few seconds with a single 1ms-wide full-height pulse at the beginning of it, as shown in the accompanying screen, using the pencil tool in an audio editor (I described exactly how in PC Notes October 2002), and place this audio file in your original track. Then start recording from just before the pulse, in the audio track you've designated as 'FX Return', so that you capture it on the return journey after its loop through the converters and effects unit.
Your sequencer will most likely apply delay compensation to the recording, just as with any other input signal, so it won't matter what soundcard buffer setting you have, since this will be automatically accounted for. Only the extra 'path time' will show up in the 'FX Return' recording, as a delay between the original and return tracks. You can then enter a negative delay value by hand for the FX Return track, to exactly line up the pulse in the original and treated tracks. Your future recorded effects tracks should then remain in perfect sync, whatever soundcard buffer size you use.
Of course, you won't hear this sync while monitoring the effects in real time, since delay compensation can't be applied in this situation. In the case of an insert effect, the easiest way to combat this is to enter the appropriate negative delay for the original track, so that the return is heard exactly on cue while monitoring.
As an alternative to interfacing external effects boxes via analogue connections, you might find you can connect digitally, as many modern rack units also offer digital I/O as an option. In a fairly large studio where a central word clock generator is being used, this is pretty simple to set up, as the central generator is already designated as the master, but I suspect most readers of this feature will simply be wanting to plumb in one unit such as a Lexicon reverb, and will not have a central word clock generator. In this case it will be necessary to define which is to be the master device and which the slave.
- First, enable an S/PDIF output and input on your soundcard, to use as 'Ext FX Snd' and 'Ext FX Rtn', as with the analogue approach. Stick with the usual 'Internal Clock' setting for your soundcard, so that it provides the clock signal for the external effect unit
- Set the external effect to 'External Clock', to sync with the incoming signal from your soundcard.
Some musicians have tried the alternative approach of setting the effects unit to its internal clock setting, to act as master, and the soundcard to external clock, to act as slave, but although this works with some units (for instance, those from TC Electronic), Lexicon gear apparently expects an external clock as soon as you activate its digital input, so it can't act as the Master clock generator with these connections.
Using a digital connection will avoid passing the audio through two sets of A-D and D-A converters, with their combined delays, but the soundcard buffers and other much smaller internal delays on the soundcard will still need to be compensated for, as described in the main text.