PitchLoop89 is a pitch shifting effect for the Ableton Live digital audio workstation (DAW), inspired by an early digital effects processor, enhanced with a few contemporary features, and implemented in Max4Live. It can be downloaded directly from Ableton and is included in Live 11 Suite.

Basic Structure and Concept

PitchLoop89 contains two independent pitch shifting delays. Pitch shifting is achieved by using the digital equivalent of a tape loop with one head for recording and two moving heads for playback. If the playback head is moving along with the tape, pitch goes down, if it moves in the opposite direction, pitch goes up. Of course one cannot do this for a longer time: the play head would either need to go beyond the recording head, thus attempting to listen 'to the future'.
Or it would need to go further back then the total length of the loop. To avoid that, only a portion of time is played back, and then the delay jumps back to its beginning. To make this smooth, the effect uses a crossfade between two independent playback circuits per channel.
The position and movement of these virtual playback heads define the sonic character of the pitch shifting and the overall delay. The implementation of this principle in PitchLoop89 adds a lot to this basic concept, and turns it a flexible sound design and performance tool.

Global Functions

The two pitch shifting units can be operated completely independent, or as one stereo effect. To simplify editing, a Link ('V') control automatically copies all parameter changes on the left channel to the right channel. But not the other way round. This allows to set common values for both, using the upper (left) channel, and then create derivations for the right one where desired.

A global Bandwidth ('B/W') control defines the recording and playback sample rate. This has implications for the maximum delay length, the momentary values for the playback controls and for the upper frequency limit of the processing (20kHz, 10kHz, 5kHz). In the 20kHz setting the un-pitched delay line has a length of two seconds per channel.

The historical reason for the existence of this parameter is the limited available RAM in the hardware, which is not an issue anymore today, but since switching the sample rate creates interesting octave jumps, that function is also available here. It also leads to potentially interesting sonic artefacts due to low sample rate.

The content of each channel can be 'frozen' using the Hold ('oo'). What you hear in that mode is a (crossfading) loop defined by the Position and Segment parameter. In normal and in frozen operation that segment can also be played backwards with the Back toggle. To simplify working with shorter rhythmical delays a Short function is available.

Just like the hardware it is inspired by, PitchLoop89 allows to do 'signal informed crossfades' between Segments. This is done when Xing is active. In this mode, the algorithm constantly adapts the actual Segment length to find the best possible transition point for pitches signals. Usually the fade between segments is quite short, but for some materials a longer fade is desirable, which can be enabled using Fade. However, when this functiion is active, it will require longer minium delay times.


Pitch Shifting

Pitch shifting is achieved by controlling the Pitch and Fine parameters. Pitch has a range of -24 to +24 semitones. Fine allows for tuning continuously in a range of +/-1 semitone.

Pitch shifting cannot be done without changing the sound. This is part of the game, and in PitchLoop89 the type of sound change depends strongly on the following parameters: Segment, Xing, and Fade.

Vibrato can be added using a dedicated LFO with a choice of a bipolar sine wave or unipolar (upwards only) square wave, with a range of up to 12 semitones.

The resulting pitch including the effect of the vibrato LFO is shown in a numerical display.


Delays and Position

The distance between the virtual record head and the playback unit is defined with the Position parameter, but since the playback for pitch shifting has to be done in short slices (see above), a second parameter is needed: Segment, which defines the length of each slice. Short duration of segments sound very different than longer ones, and the perceived quality of the pitch shifting depends very largely on the Segment size, depending on material. Small settings are typically more useful for pitching rhythmical material, whilst long settings might work best for textures.


Position LFO and Display

The position of each slice can be modulated with two different sources: Random and LFO. Random modulates slice position randomly. Small values slightly 'smear' the signal, which might sound more natural, whilst larger settings have a more granular effect. The LFO offers plenty of waveforms including a smooth random movement 'Move'. Its effect is highly dependent on the settings of the other parameters, and all sorts of subtle or drastic oddities can be achieved.
When Hold is active, the device acts like a looping and crossfading sampler where Position defines the start point and Segment the loop length. Thus, LFO and modulation of Position can be used for rough time stretching or wavetable-like effects. In non-hold operation it is possible to momentary 'warp'incoming material.
The center bar graph display and the numberical displays show the current position, this includes all modulations and the internal corrections needed to allow click-free playback. When changing Pitch or using Fade those corrections which lead to longer minimum delays can be drastic. You can also observe the fluctuations in delay time when Xing is enabled.

Filtering and Feedback

The output of each delay line is processed with two Filters, a Low Cut (or high pass) filter, and a High Cut (or low pass) filter. They can be quite essential for shaping the sound and they are located inside the feedback path, thus being applied recursively when feedback happens.

The Feedback parameter re-routes the output signal of the pitch shifter back to the input, and the destination is defined by the chosen Routing option:

L/R means each pitch shifter feeds back to its own input. This makes them compeltely independent. Sum combines both feedback signals and sends them back to both inputs. Cross routes the signal from the left channel to the input of the right one and vice versa. These options allow to build complex cascades of pitched feedbacks. Try!

Each pitch shifter also has its own Output level control and both share a common Stereo parameter.


Historical Background

PitchLoop89 is partially inspired by the DHM 89 B2 pitch shifting delay unit, made in 1978 by the french company Publison. It does an amazing job with very limited hardware, it does not even have a CPU, all functions are carried out with a mix of analog VCAs, logic gates, counters. Tons of TTL chips, 071s and 4066s inside. It came with an additional unit, the KB 2000, which did allow to play the pitch on a keyboard, and added features like time-stretch playback.
Quite unbelievable for that time and massively in use by the composers at INA/GRM and many others. The charm of it in 2019 is its immediate simplicity (no computer means no menus!) Some of the most beautiful features are a byproduct of the technology, like the octave jumps when switching sample rate / memory time.
I wanted to port the essence of it into a plugin, and whilst doing so I came up with a lot of new ideas. The resulting MaxForLive device offers several options not available within the original hardware. And of course you can use multiple instances without the need to sell your house to afford it, and you do not have to worry about it breaking and almost no one can repair it anymore.

Credits

PitchLoop89 has been developed by Robert Henke. User Interface design by Eric Carl @ Ableton together with Robert Henke. PitchLoop89 is part of the Live11 core library. Special thank you to Jonathan Prager for making sure my original hardware DHM 89 is working fine :-)
.