A major part of the appeal of sequencing software like Digital Performer, that relies on the Mac's processor for all of its MIDI and audio processing, is that it can perform amazing feats of performance under the right conditions — feats that can make hardware-based systems look severely limited. But with the flexibility of the software approach comes a variety of pitfalls: conflicts with drivers, operating systems and other software, confusion caused by the sheer open-endedness of what's on offer, and poor performance that comes from simply not using your software to its best advantage and not establishing the working practices that help you get the best from your system. It's this last issue that I'll be looking at in this month's Digital Performer Technique article, covering everything from basic configuration to sophisticated mixing solutions.
If ever there was a certainty in the world of computer-based music production, it's that you can never really have too much RAM. Everything you run on your Mac needs memory, and if the total amount required at any one time is greater than the total you've got, your Mac starts using your hard drive to make up the shortfall. This 'virtual' memory can be a life-saver, but because it's essentially mechanical it's slow. Add into the equation the fact that you may already be taxing your hard drive with audio-track playback and sample streaming, and clearly you're going to run into difficulties.
So how much RAM should you have if you're running DP as your main music app? From personal experience, I think that between 768MB and 1GB should be regarded as a minimum. This amount should allow you to run many projects in recent versions of DP under OS 10.3 or 10.4 with few problems, although 2GB or more is better, especially if you're adding a software sampler or Rewired applications.
RAM is so important that you must get enough: it's as simple as that. Try online suppliers such as Crucial (www.crucial.com) if you're unsure as to which type you should get for an existing Mac. If you're buying a new Mac and you're on a budget, you're better off getting a slightly slower processor but maxing out your RAM than getting a marginally faster chip but crippling it with insufficient memory.
Prior to OS X, Mac users would optimise their systems by carefully allocating application memory and maintaining pared-down extension sets. It was almost a point of principle to know what every extension did, so that one could keep as lean a system as possible. OS X has taken away a lot of that hassle, but it's surprising how much you can still do to ensure that it's running at its best.
First of all, check your Energy Saver settings in System Preferences and make sure that Processor Performance is set to 'Highest'. This isn't configurable on some versions of OS X with certain Macs, but if you have the option to change it, do so, or you'll be running your processor at reduced speed.
Then consider whether you have any additional elements in your system that could impair performance. Quit any applications and background processes you don't need. Turn off Appletalk, Bluetooth, Airport and any other network connections, unless you need them, unmount iDisks and any servers you're not planning to use, and disable Sharing. Some users even disable text smoothing and graphics features such as window shadows and transparency, but that's beyond the scope of this article, and maybe taking things a little too far...
Freeze Tracks: An Essential Technique For Saving Power
Freeze Tracks is actually a sophisticated shortcut. It takes plug-in-laden audio tracks or virtual instruments and records their output to new audio tracks. The original tracks are then disabled, along with the plug-ins or instruments that they hosted, and consequently you get to claw back huge amounts of processor power while leaving your sequence sounding just the same.
The disadvantage, of course, is that you can no longer tweak settings for the new, 'frozen' tracks, although MOTU make unfreezing very easy, should you ever need to revisit the originals. Freeze Tracks is also potentially time-consuming — it doesn't work faster than real time, so that it can accommodate virtual instrument and even Rewired or external audio tracks, and that can sometimes make the process a drag. Get to know Freeze Tracks, though, and you can pull off results with low-powered G4s that would embarrass the latest G5s. Here's how to freeze audio tracks:
1. Start by selecting what you want to freeze. This can be one or more soundbites, a time-range selection across one or multiple tracks, or entire tracks. Remember that since the track or tracks on which you've made your selection will be disabled after the freeze, it really only makes sense to select all their contents. To select an entire track, hit Apple-A and then click the track name in the Tracks Overview.
2. From the Audio menu, choose Freeze Selected Tracks (or hit Ctrl-Apple-F). DP creates as many new tracks as you selected and names them '[track name] freeze', then carries out the real-time bounce. When it's finished, original audio tracks have their voice allocation set to None, so that they can no longer be heard, and their plug-ins are disabled. You might consider assigning them a specific colour at this point so that their disabled status is easy to spot.
3. You can now continue to develop your project, and may never need to touch the original or frozen tracks again. However, if you do need to revisit your originals, select any part of them and go to the Audio menu while holding down the Shift key, to choose Unfreeze Selected Tracks (or just hit shift-ctrl-Apple-F). The frozen track remains in place but it 'gives back' its voice allocation.
4. At this point you can repeatedly toggle the playback status of the original frozen track by selecting any part of the original and choosing Unfreeze Selected Tracks again. If you need to 'refreeze' a track after tweaking it, first delete its existing freeze track, then repeat steps one and two above.
Working with aux and Instrument tracks is very similar, except that DP won't automatically disable the original tracks. To do this, you should set their outputs to None. Also, to freeze an Instrument track you need to first select both the Instrument track and its corresponding MIDI track (or tracks).
The one truly tweakable area of DP itself is the Configure Studio Settings dialogue box (Setup menu / Configure Audio System / Configure Studio Settings). The numbers of voices and busses you choose here mostly influence how much memory DP uses, so it makes sense to limit them to how many you'll actually use in a project. A value of 150 for the Disk read/write size is suitable for most typical voice and buss counts, but that should be increased to anywhere between 200 and 500 if you're actually working with hundreds of tracks. Small buffer-size-per-voice values (such as 150) are useful if you're trying to increase your track counts when you don't have much RAM, but they steal processor power. If you're well endowed with RAM, or don't need all that many voices, try raising this to between 300 and 600.
The other key dialogue box is Configure Hardware Driver, again accessible from the Setup menu, or from the Audio pane of DP's Control Panel transport window. The most important setting here is Buffer Size. This determines the size of the audio 'chunks' that DP works with. While larger buffers entail a much lower processor hit, they cause unworkable latency when you try to monitor audio or virtual instruments in real time via DP. It's not an uncommon approach to keep buffer size low (128 or 256 samples) during the tracking stage of your projects, then increase it as much as possible during mixing, which is generally when you need your plug-ins. However, if you have facilities for zero-latency monitoring (using a hardware mixer or suitably-equipped audio interface, for example) you may well choose to use the maximum buffer size at all times and keep DP running as efficiently as possible.
The Work Priority setting in DP 4.5 changes the way in which DP integrates with OS X's multi-threading processing. Setting it to High is recommended for users of dual-processor Macs, but the Medium setting can work best on single-processor G4s, allowing much better performance and eliminating processor spiking. If you have an older Mac, try all three settings and see which one works best for you.
Other DP Considerations
Multitrack playback inevitably takes its toll on your processor, especially when it involves lots of soundbites on each track, or lots of fades and crossfades. You can't always lower your track count, but merging soundbites or freezing complex tracks can help a great deal.
Various real-time processes also contribute to processing demands, first and foremost mix and plug-in automation. Yet again, track merging can come to the rescue here, but you can also decide not to enable automation for plug-in data types you don't need. The Automation Setup dialogue window, accessed from the Setup menu, can help with this.
If you suspect that real-time MIDI plug-ins are contributing to your CPU overhead, try applying their equivalents 'off-line' from the Region menu. If you need to keep your original data, drag it to a Clippings window before applying the Region command.
Finally, remember that having many editing and plug-in windows open will slow down DP unnecessarily, especially when they have animated elements such as level meters or other displays. Window Sets can be used to restore order, and hitting F10 to invoke OS X's Exposé feature will quickly show you how many windows you have open.
Having done all you can to optimise your system, it's time to actually use it for something! When you're actually running DP there are plenty of things that will start to use up the power you have available — plug-ins, software instruments, background and real-time processing, automation, and general project size and complexity. Here are some things to try which can help to keep it all manageable.
Audio plug-ins do maths so complicated it makes your eyes water. In terms of processor hit, the big offenders are reverbs, multi-effects (ie. plug-ins that incorporate multiple modules, such as delays, filters and distortion), phase-accurate EQs and granular synths. Multi-band processors and distortion effects can also be rather 'heavyweight', but in truth every plug-in, whether EQ, compressor or delay, needs its slice of processor time.
It seems obvious, but it's worth making sure that you're always using the most efficient and suitable plug-ins for the job. Why, for example, use a multi-band compressor on a vocal track? Or a convolving reverb just for a touch of ambience? And make sure you're not using plug-ins for the sake of it — I've seen compressors set to a 1:1 ratio being used as glorified volume controls, when pushing up the fader would have done just as well. Some plug-ins are more efficient than others too, so 'slimline' choices are obviously much better if you don't have processor power going spare.
In the case of complex plug-ins that allow parts of their processing chains to be bypassed, make sure you've turned off what you can. The shareware Reverbit, for instance, has a damping section that uses a huge amount of processor power but can be disabled if not needed. Smartelectronix's Ambience also has an overall 'Quality' parameter. Keeping this low sometimes makes little difference to the overall sound, but can massively cut CPU use.
In some instances you may consider recording 'wet' — that is, using plug-ins during tracking and recording their effects directly with your audio. You lose the flexibility to remove or change the effect once it's recorded, but for some applications it's a much better way of working. Some guitar and synth sounds, for example, seem intrinsically bound up with the effects you put on them, so it can make sense to just capture the whole shebang from the start. Then, after recording, you can disable the effects and reclaim some processor power for other tasks. For anyone who's not used to working in this way, let's just run through the steps:
1. You'll have to be set to monitor your recording through DP. You may first need to choose a low buffer size from Setup / Configure Audio System / Configure Hardware Driver.
2. From the same sub-menu, choose Input Monitoring Mode. Select 'Monitor record-enabled tracks through effects' and 'Only during recording (and punched in)'. Click OK.
3. Make sure you enable Audio Patch Thru by clicking the Consolidated Window's little headphones icon, or by choosing Audio Patch Thru from the Studio menu.
4. Create an aux track and configure it with the input(s) you're using for recording and an unused buss or buss pair (as appropriate) for the output. Create an audio track and choose this same buss or buss pair as an input. You've just created a virtual 'channel strip' between your hardware input and audio track, and now you can load up the aux track with any plug-ins you require. Your audio will be processed by these before being recorded to the audio track.5. All that remains is for you to record-enable your audio track and away you go. After you've finished, just disable the effects you chose on the aux track, which can stay in your sequence in case you need it again later.
If recording wet doesn't appeal to you, or you just need to work with plug-ins in a more conventional way, there are still many techniques you can use to keep things efficient.
If you have tracks being treated by one or two plug-ins throughout their length, and you're happy with the sound, you might try applying those plug-ins 'offline', rather than making DP continue to process them in real time. I often do this with EQ and dynamics plug-ins, but it can work with anything, really, and may be particularly useful if you need several simultaneous unusual reverb treatments on separate tracks, for example. Applied in real time, these might bring a computer to its knees, but after you've applied the effect off-line there's zero processor-hit.
Using off-line effects is very simple:
1. Select the audio that you want to apply an effect to. You could choose part of a track by selecting individual soundbites or making a time-range selection, or select an entire track by hitting Apple-A and then clicking the track name in the Tracks Overview.
2. From the Audio menu, choose Audio Plug-ins, and then the plug-in you need from the sub-menu that appears.
3. Dial in your settings, or choose a preset, and click Preview to hear how it will sound. In DP 4.5 the audio you selected is automatically looped so that you don't keep having to click Preview.
4. Enter values for Pre-roll and Post-roll, if necessary. DP will be creating a new soundbite as part of the off-line process and you may need it to be longer than the audio you originally selected. Why? Well, for example, when you're applying a long reverb to a short section of audio, unless you specify at least enough Post-roll to cover the new reverb tail, it will be truncated.
5. Finally, hit Apply. DP does its stuff and your new 'wet' soundbite replaces the audio you originally selected.
Applying plug-ins off-line is a great technique to learn, but it has a disadvantage in that it can only deal with one plug-in at a time. If you want to capture the effect of several plug-ins, it's better to set them up as normal real-time effects and then use DP's Freeze Tracks feature to bounce them to a new track. See the 'Freeze Tracks' box for more on this powerful feature.
Sharing Plug-ins Using Auxes
The one remaining 'power user' technique involves using busses and aux tracks to share single plug-ins amongst multiple tracks, and there are two basic approaches you can take to it. This is a technique that can not only save you precious processor cycles but can also make mixing easier and quicker.
The first approach involves routing multiple individual tracks to a single aux track. Any plug-ins you place on the aux track then affect all the audio tracks that feed it. I find this very useful for applying general EQ to a mix of individual drum or guitar tracks, for example. Here's how you set it up:
1. Create an Aux track. Set its output as your normal monitoring stereo pair and its input as a buss pair that you haven't used elsewhere in your sequence
2. Make the output of any tracks you want to process through the aux track plug-ins the same buss pair you chose for the aux track's input.
3. Now you can play your sequence and start placing plug-ins on the aux track. You can, of course, still utilise the audio tracks' faders and pans to control the basic mix of this 'group'.
The second approach to sharing plug-ins utilises DP's send architecture and is particularly good for adding delay and reverb effects to a mix.
1. As before, create an aux track and make its output your main output pair, but this time choose an unused buss (not buss pair) for its input. Set up your desired delay or reverb plug-in on the aux track and set its wet/dry mix 100 percent wet.
2. When you want to add this effect to an audio track in your sequence, call up the Mixing Board (shift-M), click on one of the track's send slots and choose the same buss as in step one (perhaps via the 'New Mono Bundle' sub-menu).
3. Now turn up the send level to begin to feed audio through your aux track. You can, of course, repeat steps two and three for as many audio tracks as you need.
In this example, your reverb or delay is set up as a mono-in, stereo-out effect, which means that sends from stereo audio tracks are summed to mono before being processed by it. However, you might choose to set up a true stereo aux, in case you want to process stereo audio tracks and preserve their separate channel information. DP's very flexible sends make all this easily possible.
If audio plug-ins can eat your processor alive, some virtual instruments can chew it up, spit it out and then come back for more. It's perhaps true to say that there are no really easy ways to massively reduce the processing impact of virtual instruments, except by freezing them (see 'Freeze Tracks' box), but here are a few other things to consider:
If you're pushed for power, try to use the most efficient synth or sampler designs. A 'hardwired' synth such as NI's Pro 53 or the Subtractor synth in Propellerheads' Reason is likely to be much more efficient than a modular or semi-modular design such as NI's Reaktor or Absynth, or complex emulations such as Arturia's Moog Modular V.
In the case of samplers, working with a single instance used multitimbrally may well be more efficient than using multiple instances.
Try limiting synth and sampler polyphony to the minimum you need, and watch that synth patches don't have ridiculously long amplifier release times that cause processing to continue ages after notes have stopped sounding.
On samplers, especially, don't enable filters or modulators unless you actually need them.
Be suspicious of integrated effects. These are often poorly optimised compared to DP-hosted plug-in equivalents
Keep DP's buffer size as large as possible during playback and mixing
If you're not using a synth or sampler for a while, set its track output to None. This useful technique keeps the synth accessible in your sequence and preserves all its settings, but completely removes its processor hit.