FIG. 1: Harmony Engine's user interface is centered around a 5-channel mixer, with harmony setup and preset controls on the right and voicing controls at the top
and bottom.

Antares Harmony Engine 1.0 and Zplane Vielklang 1.1.2 apply different strategies to perform the same musical task: generating harmony parts from solo vocal leads. Although their approaches differ, they share the goal of offering an automatic solution, together with options to take complete control. Both programs do an excellent job.

Harmony Engine is a plug-in effect, and Vielklang is a plug-in instrument. Both are cross-platform and come in VST, RTAS, and AU formats. Harmony Engine may be purchased as a download from Antares or in a box from authorized dealers, and it uses Pace iLok copy protection. Vielklang is purchased and downloaded directly from Zplane and is password protected.

Although harmonization is a computationally intensive process, my dual 2 GHz Power Mac G5 easily handled each plug-in in isolation. With most DAWs offering some form of track freezing, you can use either product within a project, even on a moderately powerful machine.

Different Strokes

To generate a viable harmony part, you need to start with a clean solo (not merely monophonic) lead. For convenience, I'll call it the melody. The melody is not restricted to vocals, but both plug-ins' settings are vocal oriented, and they work best with vocals. You should apply de-essing, noise reduction, compression, pitch correction, and EQ as needed to clean up the track before harmonizing. Special effects such as reverb, chorus, and delay should come after harmonization.

The biggest difference between Harmony Engine and Vielklang is how they handle the melody. Harmony Engine takes real-time audio input and generates its harmony parts on the fly (see Fig. 1). Vielklang loads the melody into its own memory for analysis before harmonization. At first glance, that might seem like a huge difference, but when you consider that the melody needs to be carefully prepared for best results, it doesn't make that much difference whether you load an audio file into the plug-in or place it on a DAW track for processing. You can sing or play a part directly into Harmony Engine, which is useful. On the other hand, Vielklang gives you a piano-roll-style graphic of the melody and harmony parts that you can manipulate directly. The program also has its own time-stretching to follow your host's tempo changes. Most important, by analyzing the melody in advance, Vielklang can apply voice-leading and voice-arranging algorithms to generate its harmonies (see Fig. 2).

Harmony Engine generates as many as four harmony parts, which it outputs in mono, stereo, or on five separate channels (one for each part and one for the melody). In the hosts that I used, Ableton Live 7 and Apple Logic Pro 8, the output options were more limited. Live supports only separate-channel output, and you need to route those outputs manually (see the online bonus material at emusician.com). Logic supports only stereo output.

With Vielklang you choose either 2- or 4-part harmony (which can include the melody), and you get a stereo mix or a separate stereo output for each part. Both plug-ins offer various methods to generate the harmony parts, and both provide humanization controls such as pitch and time randomization, legato glide, and so on. Vielklang lets you shift formants. Harmony Engine's formant correction is automatic, but it lets you adjust throat size using Antares Avox Throat Modeling technology.

Harmony Engine

The first step in using Harmony Engine is to select the manner in which harmonies are generated, or a Harmony Control mode. Two Interval modes let you choose the pitch interval relative to the melody for each harmony part. In Fixed Interval mode, the interval is measured in semitones, whereas in Scale Interval mode, it is measured in scale degrees. In the latter case, you specify the root and type of scale (C major, for example). That's the fastest way to generate scale-corrected harmony parts, but because the parts move in parallel, it's not the most interesting.

In Chord Degrees mode and Chord Names mode, you specify the chord either by scale degree and inversion or by name. For instance, you could specify a Dm7 as built on the second degree of the C major scale (in Chord Degrees) or as a minor seventh chord whose root is D (in Chord Names). In these modes, you select a range and spread for the voices, but Harmony Engine chooses the specific notes.

FIG. 2: Vielklang's piano-roll-style editor (center) and mixer (bottom) are color coded, with the melody always in orange. Harmony and Snapshot controls appear on the right.

Three MIDI modes let you select the chord notes using your MIDI keyboard. In Chord Via MIDI mode, Harmony Engine uses the pitch classes (note names) of the held notes but, as in the Chord modes, chooses the notes based on the specified range and spread. In MIDI Omni mode, the chord is made from the held notes, but you can't predict which Harmony Engine voice plays which note. For that, you use MIDI Channels mode, in which a note's MIDI channel routes it to a specific voice. (MIDI Channels mode is not supported in Live 7.) The Interval and Chord modes are the easiest to use, but the MIDI modes give you more control.

The Interval and Chord modes may sound a little inflexible, but 15 harmony presets let you change chords on the fly. Presets save all Harmony Control settings except scale roots and types, which are purposely omitted to allow the same batch of presets to serve different scales. You use plug-in host automation to recall presets and scales, and thereby make Harmony Engine follow your song. It would be nice to be able to recall presets with MIDI Note or Control Change messages.

His Master's Voice

Harmony Engine gives you a fair amount of control over the voices it creates. Each voice has its own mixer channel. Beyond the standard mixing controls (mute, solo, pan, and volume), you get a Throat Length slider and four vibrato controls. Throat length has an effect on gender and vocal quality similar to, but subtler than, formant shifting.

You use the vibrato controls to set the rate, predelay, and amount of vibrato and tremolo. Because each voice has independent settings, the generated vibrato and tremolo can be very effective, but they may conflict with natural vibrato, so they need to be used with care. Alternatively, use the Naturalize control in the Humanize section to dial back natural vibrato and other pitch gestures in the melody. The Humanize section is also where you introduce random variations in pitch and timing of the harmony voices.

Two other voicing controls, Glide and Freeze, round out the voice settings. Glide induces portamento between legato notes. Freeze locks in the formants or the formants and the pitch of the harmony voices. The latter is useful for holding a chord with the harmony voices while the melody moves on, and of course you can automate the Freeze buttons. You get six voice presets, and as with the harmony presets, you use host automation to make voice presets follow your song.

Vielklang

FIG. 3: Vielklang chooses chords based on its melody and scale analysis, but you can change the chord selection manually.

As mentioned, you need to prepare the melody beforehand and load it into Vielklang's memory. If you want the same instance of Vielklang to harmonize separate melody clips, you must first combine them in a single audio file. You do not, however, need to have the timing of the clips within that audio file match their timing in your project. Vielklang lets you create segments within the audio file and store them, along with all harmony settings, in Snapshots, which you trigger manually. If you do preserve the timing, you have the option of letting Vielklang follow the host's transport rather than triggering the clips manually.

You get 32 Snapshots, and you can freely assign MIDI Note messages to trigger them. Use your host's preset load and save operations to store complete Vielklang setups, which include voice settings and all Snapshots. The Snapshot system is convenient for triggering different segments within the audio file, and for triggering the same segment with different harmony settings.

Vielklang analyzes your melody for harmonic content. It then assigns a root and scale and corrects the melody to that scale. But you can change the scale settings as well as turn scale correction off.

Harmonic Solutions

Harmony parts can be generated by two different methods: Parallel and Intelligent. Parallel harmony corresponds to Harmony Engine's Scale Interval mode. You select the intervals, and then get scale-corrected parallel harmony. Intelligent harmony uses the melody along with voice-leading algorithms to create chords within the chosen scale. You can change each chord individually (see Fig. 3). When you have something that's close to what you want, switch to Edit mode and change or mute individual notes in the piano-roll display.

Like Harmony Engine's, Vielklang's voice settings are independent of the harmony settings, and they are not saved with Snapshots. In addition to mixing controls, you can introduce random variations in timing, smooth out pitch transitions, set the amount of pitch quantization, choose the formant shift, and apply a different fixed delay to each voice. You use your host's plug-in preset-management system to save and recall full setups, which include all Snapshots, audio files, and voice settings. (I was occasionally prompted to locate the audio file when recalling a preset, so keep it handy.)

One reward for spending the extra time it takes to compile, trim, and load audio files is the option to save the results directly from the plug-in, rather than bouncing tracks in your host. Furthermore, you can export the harmony parts as MIDI files and use those to play other synths or samplers. If your host supports it, you can even drag-and-drop MIDI parts directly to MIDI tracks.

Perfect Partners

Harmony Engine and Vielklang are different enough from each other to justify your having both if you frequently generate harmony parts and you have the budget. Harmony Engine is the quicker of the two to set up and a bit easier to use. Vielklang gives you more precise control, MIDI triggering of Snapshots, and the aforementioned export options.

The generated harmonies of both plug-ins sound very good when heard in context. Because no amount of formant shifting or throat modeling can turn a soprano into a baritone, the parts in isolation can sound a bit unnatural. That's not their intended use, but listening to the individual parts is a great way to tweak them (see Web Clips1and2).

Both companies offer downloadable demos, and if you need to choose just one program, it's worth your time to try them both out. You'll quickly discover which conforms best to your work methods.

Len Sasso is an associate editor of EM. For an earful, visit his Web site atwww.swiftkick.com.