Archive for February 26, 2016

Rendering Virtual Instrument Tracks to Save Processing Power and Decrease Load Times

virtual violin“Virtual instruments” are a powerful tool in today’s computer-based composer’s tool bag. Back in the dark ages (i.e. when I was a kid, when I didn’t yet own a computer) if you wanted to record, for example, a violin, you had to have a violin and a violinist. But in 2016 you can buy a library of stringed instrument samples including a wide variety of playing techniques (arco, pizzicato, spiccato, sul ponticello, etc.) so that a pretty convincing violin recording can be made, even if there’s no violin or violinist anywhere in the room. Hence, the term “virtual.” In all fairness to violinists, the real deal still far surpasses the virtual one, but the latter can suffice for a composer to hear their work and get quick answers to questions like “how would this part sound an octave higher?” or “what if the cello doubled this part?” not to mention “what if we add sleigh bells and an oud?”

It is a very powerful tool indeed. But “powerful” also means literally computing power. My studio computer has more processing power than the whole world did at the time of the Apollo moon landing, but it’s not an infinite amount of power. Once you have 30 tracks of virtual instruments, convolution reverb putting those tracks on the stage of the Konzerthausorchester Berlin, some multiband parametric EQs, and autotune on the lead vocals, my 2012 era Mac Pro begins to sweat like the forehead of a 1969 rocket scientist operating his slide rule as the LEM approaches the surface of the moon. Dropouts and other nasty artifacts start appearing in the audio, and eventually the dreaded “you are running out of processing power” alert appears.

The other problem with virtual instruments is that they can take up a lot of disk space. My favorite grand piano library, for example, came on 32 double-sided DVDs and took a whole weekend to install. When you open a Pro Tools session that uses this library, even though only a small fraction of the whole library has to be loaded for that session, you might be staring at a progress indicator for five minutes.

So if you use a lot of virtual instruments, you’ll be doing a lot of waiting for samples to load, and you’ll want to keep your system resources monitor open at all times to make sure you don’t run into the “out of processing power” error. The ugly truth is that even before you actually run out of resources, software can start to behave erratically, and it might even crash before you have a chance to know that you’re running low.

The solution is called “rendering,” which is the process of turning virtual instrument tracks into audio tracks. Compared to virtual instrument tracks, audio tracks take far less processor power, and they take almost no time to load, due to the magic of nonlinear editing. That’s because when playing back audio tracks your digital audio workstation doesn’t actually load the audio; instead it loads a list of audio file names and pointers into those files specifying where to start and stop playing.

Here’s how I convert a virtual instrument track into an audio track in Pro Tools; maybe there’s an easier way to do it, like maybe your software has a “render virtual instruments” function… that would be nice. (Avid, are you listening?)

  1. Route the virtual instrument track’s output to a bus that you’re not currently using for anything else.
  2. Create an audio track whose input is that bus. Set its output to your main outputs. What I like to do is rename the virtual track to have a “v” at the start of the name and name the corresponding audio track without the v. For example “vViolin” and “Violin.”
  3. Move (not copy) any plugins such as EQ, reverb, compression, etc. from the virtual instrument track to the audio track.
  4. Set the virtual instrument track’s playback level to +0 dB.
  5. Turn off any automation (level, panning, etc.) on the virtual instrument track.
  6. Set the audio track to record. Set the virtual instrument track to play.
  7. Play through the whole song, or only the sections where the virtual instrument is playing, while the audio track is recording.
  8. Confirm that there’s a waveform on the audio track corresponding to everywhere where there’s midi data on the virtual instrument track.
  9. Copy any automation from the virtual track to the audio track
  10. Play back the audio track to make sure it sounds the same as the virtual instrument track.
  11. Disable and hide the virtual instrument track.

You can do this for any virtual instrument track that no longer needs to be edited. If however you discover that you need to make a change that can’t be made in the audio track (for example, you need to change a note), then you can reactivate the virtual track (you’ll have to wait for the virtual instruments to load), make the edit, and then repeat the above process.

Rendering a virtual instrument track isn’t something you’ll typically do until late in the song production, perhaps right before you officially go into “mixing mode.” At that point all the parts are probably locked down, and there’s no need to change the actual notes that were played.

Of course, who knows, maybe in the future our computers will be so powerful that we won’t need to worry about this. But given the history of computing, I wouldn’t be surprised if future composers look back at us like we do to those NASA engineers in 1969. And I can’t even imagine the software that will be pushing their computers to the limit.