EWILogic Header White
Screenshot 2018-01-29 01.38.20

Harmonic Rotator

Here's a video of me playing around with a MIDI script sent to me by Robby Kilgore. This script is a "harmonic rotator" that emulates the voice rotation function of the classic Oberheim Xpander analog synth. This rotator function is most notably used to its fullest extent by Saxophonist and EWI-ist Michael Brecker.

What is a "harmonic rotator" you ask?

I first became interested in random harmonic generation when I heard some early computer music while in college. I found it interesting and unique in that while it was unpredictable, when the programming was handled in the correct way, the resulting “music” - if randomly generated sound can be called that - had the potential to be mesmerizing. In 1987 Michael Brecker released his album “Michael Brecker” and one of the hallmark sounds on that disc was his use of the EWI (Electronic Wind Instrument) and synthesis to create an amazing palette of sounds. One of the most interesting things he did was to use a feature of the Oberheim Xpander module to randomly rotate through a series of harmonies. It works something like this:

The Xpander had a setting called “Rotate Mode” with 6 voice polyphony. Michael was able to turn that into an amazing harmonic tool by creating two zones on the synth, one with two “static” voices set to re-trigger and one with four rotating voices in rotate mode.

Oberheim Xpander Rotate Mode:

Screenshot 2018-01-29 01.38.20

Voice 1 & 2 are static intervals set in semitones above or below the input note. Assuming a C3 is played, the static output would be C3 and G3 (seven semitones above C3 or +7). Every time C3 is pressed, the static voices will sound the parallel 5th C & G.

The rotating voices are set (relative to C3) to -10 (D2), -7 (F2), -8 (E2) and -2 (Bb2). Every time C3 is pressed the static 5th plays as well as one of the rotating voices in sequence.


Play middle C (C3) four times:
Voices 1 and 2 always play a parallel 5th C & G
Voices 3, 4, 5, and 6 play in rotation D, F, E, Bb Output would be [DCG], [FCG], [ECG], [BbCG]

And there ya have it, harmonic rotation. This can be an extremely powerful performance tool and when done randomly can be an amazingly creative a powerful compositional device. With patience and time spent working out harmonies, you can get some amazingly fresh sounding harmonic progressions out of this thing.

Playing around with Robby Kilgore's rotator script in Logic

logic environment

Beginning steps for an EWI Environment

Watch the videos for this tutorial: Part 1A | Part 1B | Part 1C

Your EWI is a MIDI device, even if it has a self contained sound generator or sound source module. MIDI (Musical Instrument Digital Interface) is an industry-standard protocol that enables electronic musical instruments (synthesizers, drum machines), computers and other electronic equipment (MIDI controllers, sound cards, samplers) to communicate and synchronize with each other.


Create a Volume to Modulation CC Transformer Switch

Watch the video for this tutorial: HERE

Create a copy of your Kill Vol object either by selecting it and going to EDIT> Copy and then EDIT> Paste or simply OPTION + Drag the object and it will duplicate itself. Once you have your duplicate, unpack it by dragging the resize box to open it up a little bit and then double clicking inside the widget.


Create a Pitchbend Kill Switch

Watch the video for this tutorial: HERE

Now weʼre going to build a pitchbend kill switch. This is great if youʼre driving more than one sound source at a time and want one to react to pitchbend and the other to not. By using two different MIDI channel strips, you can set one to allow pitchbend to pass through and kill the pitchbend on the second path. Itʼs a great effect for guitar sounds.

Hi Lo

Create a Range Limiting Environment Object

To continue with our environment, weʼre going to move into a little bit deeper water. Up until now weʼve created simple objects to control a single parameter with a simple on/off switch like interface. This week weʼre going to build a range limiting widget that will allow you to limit the note range your output destinations will react to.