Harmony
Manual · version 0.1
Up to four harmony voices from a lead vocal, in the same singer's voice. The voices follow a key and scale, or the notes you play on a MIDI track. The singer's vibrato, scoops and drift stay in every voice; only the interval is replaced. The aim is backing harmonies that sit under the lead without drawing attention to themselves.

Where it goes
On the lead vocal track, in an Audio FX slot: Audio Units > e-thomsen > Harmony. Logic lists it with the other audio effects. It also takes MIDI in, which gives it the Side Chain menu with the MIDI symbol at the top right of the plugin header; that menu is how the notes of another track reach it in MIDI mode.
The voices are made from the mono sum of the lead and panned. It runs mono in with mono or stereo out, and stereo in with stereo out. A mono vocal track in Logic gets a mono-to-stereo insert; a mono output is the plain sum, with no pan.
The latency is 55.8 ms at any sample rate. It is reported to Logic, which compensates it on playback. When you monitor through it while recording, the voices are late, so record the lead dry and add Harmony afterwards. Four voices use about 3.5 % of one core at 48 kHz. The window is 1200 x 500 at 100 %, wider than the other plugins, so that four voice strips, the lead and the global knobs fit beside the display and the loudness panel.
Controls
| Control | What it does |
|---|---|
| MODE | SCALE or MIDI, default SCALE. SCALE: the voices follow the key and scale, so a 3rd up is a major or minor third depending on where in the scale the singer is. MIDI: the voices sing the notes held on the track chosen in the side-chain MIDI menu. |
| KEY, SCALE | C to B, default C. Major, natural minor, harmonic minor, dorian, mixolydian, major pentatonic or minor pentatonic, default major. Greyed in MIDI mode. In the pentatonic scales the singer is read against the five notes, and the intervals are counted in the full major or natural minor scale, so a 3rd stays a 3rd. |
| ON | Per voice. Voice 1 is on, voices 2 to 4 are off. |
| Interval | Per voice, in SCALE mode, in scale steps: octave, 6th, 5th, 4th or 3rd down, unison, and 3rd, 4th, 5th, 6th or octave up. Defaults: voice 1 a 3rd up, voice 2 a 3rd down, voice 3 a 5th up, voice 4 an octave down. In MIDI mode the box shows the note the voice is singing. |
| LEVEL | Per voice, -24 to +6 dB, default -6. |
| PAN | Per voice, 100 L to 100 R. Defaults 40 L, 40 R, 70 L and 70 R. Constant power, 0 dB in the centre. |
| FORMANT | Per voice, -4 to +4 semitones, default 0. At 0 the voice keeps the singer's vowel and voice. Up sounds smaller and brighter, down bigger and darker. |
| SOLO | Per voice and on the lead. Exclusive: soloing one voice mutes the other voices and the lead. It is there for printing the voices one at a time. |
| Lead LEVEL | Off to 0 dB, default 0. The lowest position is off. The lead strip also holds the IN and OUT peak meters. |
| HUMANISE | 0 to 100 %, default 40. Each voice gets its own timing per phrase (up to ±20 ms at 100 %), a slow pitch drift (up to ±8 cents, over 1 to 3 s), its own vibrato depth (0.7 to 1.2 times the singer's at 100 %) and a slow ±1 dB level drift. It is seeded, so every playback and every bounce is the same. |
| FRICATIVES | -24 to 0 dB, default -6. The level of the unshifted consonants, breaths and noises in each voice. |
| OUTPUT | -12 to +12 dB, default 0. |
| BYPASS | Plain. The lead passes, delayed by the latency, and the voices fade out over 20 ms. |
Every switch crossfades or glides. A note change in a voice glides over 25 ms; ON, SOLO and BYPASS fade over 20 ms.
The display
The last six seconds. The lead's pitch is a white line on a note grid with the scale notes banded, each sounding voice is a line in its own colour (voice 1 amber, 2 blue, 3 green, 4 red), and stretches with no pitch are shaded. Under it, the status line: "following C major: lead on E4, voices G4, C4", "MIDI: 2 notes held" or "no pitch: unvoiced". The loudness panel measures the output.
Working with it
- Insert it on the lead vocal and set KEY and SCALE to the song. Voice 1 sings a 3rd up from the start.
- Switch on more voices and choose their intervals. Shifts within about ±5 semitones sound best; octave voices sound more processed.
- Set LEVEL and PAN per voice. The formants stay where the singer's are, so the harmonics of a shifted voice fall elsewhere on the vowel's resonances, and a voice at 0 dB measured 2.2 to 2.6 dB under the lead. The default of -6 dB allows for that.
- To separate a voice from the lead, move its FORMANT a little: down (-1) on a voice under the lead, up on a voice above it.
- Set HUMANISE for how loosely the voices sit against the lead, and FRICATIVES for how much of the consonants and breaths each voice carries.
- When the harmony should follow chords instead of the scale, switch to MIDI and route a MIDI track to it as described below.
Routing MIDI to it in Logic
- Insert Harmony in an Audio FX slot of the vocal track.
- Make a software instrument track for the harmony notes and leave its instrument slot empty, or pull its fader down, so the notes do not sound on their own.
- In the Harmony window, open the Side Chain menu in the plugin header (top right, with the MIDI symbol) and choose that instrument track. Its notes now reach Harmony.
- Set MODE to MIDI. Play or draw the harmony notes on the instrument track: chords, not melodies of their own. The held notes are sorted low to high and given to the voices that are ON, in order, so voice 1 gets the lowest. A voice with no note is silent, with a 20 ms fade. The sustain pedal holds notes. Velocity is ignored.
Printing the voices to their own tracks
An effect cannot output separate tracks in Logic, which is why each voice has a SOLO.
- SOLO voice 1 in the plugin, not with the track's solo button.
- Select the vocal region and use Bounce in Place (Control-B), with Include Audio Effects on and the source set to Leave. The new track is voice 1, time-aligned.
- SOLO voice 2 and repeat, and so on. In MIDI mode, keep the instrument track playing as the side chain while you bounce.
- When all voices are printed, remove Harmony from the vocal track or bypass it, and mix the printed voices like any backing vocals.
If a printed voice comes out silent in MIDI mode, the side-chain MIDI did not reach the offline bounce. Bounce that voice in real time instead: File > Bounce > Project or Section, with Real-time selected.
Under the hood
The lead's mono sum is high-passed at 60 Hz, decimated to about 16 kHz and tracked with YIN every 2.5 ms, over a 20 ms comparison window plus up to one 70 Hz period. The range is 70 Hz to 1 kHz. Two rules guard against octave errors. If a dip twice as deep sits at two or three times the lag, the longer lag is taken, because the first dip then came from a strong 2nd or 3rd harmonic on a formant. A jump of about an octave from the previous frame is only believed after 40 ms. The lag is refined on the full-rate signal, and a 3-frame median smooths the pitch. A frame is voiced when the aperiodicity is under 0.25 (0.35 to stay voiced) and the level above -55 dBFS.
The sung pitch is read as the nearest scale note in SCALE mode, or the nearest semitone in MIDI mode, with 40 ms of hysteresis. Each voice's shift is its target note minus that note, so the singer's deviation from the note stays in the voice.
The voices are made with TD-PSOLA. Pitch marks sit on the peaks of each period of the lead, low-passed at 1.5 kHz. For each voice, Hann-windowed grains around the marks are placed at the new spacing and overlap-added. FORMANT shortens each grain and resamples it, which moves the envelope. Unvoiced stretches go to each voice unshifted at the FRICATIVES level, crossfaded over 8 ms at the borders with the voiced ones.
The latency adds up as 20 ms for the earliest a voice may be with HUMANISE, 21.4 ms for the pitch marks and the analysis grain around them (1.5 times the longest period), 14.3 ms for the output grain (one longest period) and 4 samples: 2679 samples at 48 kHz, 2461 at 44.1 kHz and 5354 at 96 kHz.
Limits: one singer. A doubled vocal, a vocal with reverb printed on it or two singers confuse the pitch tracker. In SCALE mode a new sung note is taken once the pitch has stayed nearer to it for 40 ms, so scoops and vibrato do not flicker the harmony. With the lookahead the interval changes 25 ms after the singer crosses into the new note and then glides over 25 ms; in between, the voice moves in parallel with the singer, so very fast runs lag a little. TD-PSOLA keeps the vowel's envelope only as finely as the lead's harmonics sample it. On a low voice the formants stay within 1.4 %; on a high voice with narrow formants the valley between the first two formants partly fills in.