ImprovAid

Michael Hammond, c. 2009

ImprovAid is a small, freeware application for guitarists that uses pitch detection algorithms to accompany you as you improvise. You set the tempo and amount of silence (musical rests) manually and ImprovAid does the rest! As you improvise, you will see a "pitch class profile" (basically a bar graph) that is dynamically updated to mirror the notes you have played recently (your "macroharmony"). As you play, a subtle bed of tones accompanies you, using the current macroharmony. Pitches you play more often will be emphasized in the pitch class profile, whereas pitches that you play less often will be de-emphasized or not present at all.

Fruit-Strumen-Tation GUI

In this screenshot, we see a C Major scale represented by the pitch class profile (C is the far left value on the bar graph). Notes with higher bars are weighted more heavily by the ImprovAid virtual accompanist. As you can see in this example, C is weighted with a value of 2, D with a value of 1, E with a value of 3, G with a value of 5, A a value of 1, and B a value of 1. Apparently, the player has been favoring G in his playing, and this will be reflected by the virtual accompanist.

Fruit-Strumen-Tation GUI

Here, we see a pitch class profile with a higher degree (which can be selected using the "DEGREE" text field). Using a higher degree produces a pitch class profile with more subtlety and shades of gray between the notes. However, it also means that it takes more time to move between harmonies, whereas using a lower degree provides for quick, clean breaks between harmonies. This is just one of the options that allows the improviser more control over ImprovAid's virtual accompanist. Harmonies can also be manually altered by simply clicking in the pitch class profile window to change note weightings. The player can select to add or remove layers in the accompanist as well.


Running

To run ImprovAid, download the files, open the directory and double click the shell script titled "ImprovAid" (ImprovAid remains untested on non-Macs at this time). You should see two windows pop-up. One is the ImprovAid pitch class profile interface. The other is a special satellite application (based on the MAX_MSP fiddle object) that is only used for pitch detection functionality. To activate pitch detection, you must click the large square in this window as well as turn pitch tracking on in the ImprovAid GUI.

Fruit-Strumen-Tation GUI

Sound Samples

Bluesy Improv

In this example, I improvise around an E blues scale. Listen for a jarring, dissonant chord change in the middle of the example, and take note of how the virtual accompanist quickly accommodates the guitarist.

Chords Example

Although the pitch detection algorithm is optimized only for recognizing single notes (on guitar; but it's not half-bad at picking out whistling and singing either), polyphonic chords may be played as well. In this example, ImprovAid accompanies chordal improvisation.