GenJam is the sideman
and lead saxophonist
, and square-synth player in the Al Biles Virtual Quintet
. There's just one catch...
It's a computer program.
Developed by Al Biles, professor of Information Technology at the Rochester Institute of Technology, around 1994, GenJam is a unique computer program that learns to improvise jazz solos. Its name comes from the fact that it uses a genetic algorithm to produce its improvised tunes.
When in training mode, GenJam develops some more-or-less random groups of MIDI notes. A teacher sits at the keyboard and presses 'G' if he/she hears something that sounds good and 'B' if something sounds bad. No key pressed indicates neutrality, and repeated pressings indicate higher degrees of "goodness" or "badness." GenJam then evaluates the scores of the different licks it played -- as well as the scores of various sequences of licks -- and drops the lowest-scoring pieces while "breeding" the highest-scoring pieces to form new licks. Breeding takes two licks and combines them in various ways. Some licks are also mutated via inversion or rotation. The result is a new set of licks that GenJam uses to play a new solo, and the process repeats.
Once the teacher is satisfied that GenJam has a set of good bits of music, he or she can save that particular set as a "soloist." GenJam thus is actually like several different soloists, each one specialized for a different style of music.
As part of the Virtual Quintet, GenJam serves as the secondary soloist, supporting Biles' trumpet or mellophone. They both are backed by a three-piece rhythm section generated by the commercial program Band in a Box. The Quintet's pieces usually start and end with "head" sections, with Biles on melody and GenJam playing a preset non-improvised harmony or countermelody. Then Biles and GenJam trade solos for a while, usually a pair of 16- or 32-bar solos; they then often trade eights or fours before returning to the head section.
While Biles enjoyed trading fours and eights with GenJam, he found their musical conversations to be rather one-sided; this is understandable, because GenJam had no idea what Biles had just played, and so could not build on any musical themes he'd introduced. Thus, a few years ago, Biles enhanced GenJam with tone-recognition ability; GenJam listens to Biles' notes through a bell-mounted microphone, takes the last few notes, and uses them as a "seed" for generating its own solo. This has greatly enhanced the interplay between the two soloists.
Biles and his Virtual Quintet are occassionally hired to play gigs around the Rochester area. They have the advantage of being compact (just a trumpeter, a laptop, a MIDI box, a microphone, and speakers) and relatively cheap (with only one musician that needs to be paid!). One disadvantage over a traditional band is that the audience has nothing to watch while GenJam is soloing.
Biles also takes GenJam across the country to present at lectures, conferences, and expos. He often speaks to groups in Rochester and elsewhere, explaining the technology behind GenJam and playing a few demo tunes. In a large group, he sometimes has the audience help to train a GenJem soloist, via the use of green-and-red paddles. Biles sits at the keyboard and presses 'G' or 'B' depending on how many green or red paddles he sees. The results range from horrendous to showing good potential.
GenJam is, of course, not a commercial product. It's not for sale and only Al Biles uses it. It runs only on his PowerBook 180, due to GenJam's use of the CMU MIDI Toolkit.
GenJam's solos range from passable to really quite good. It's technically limited to a resolution of an eighth note, but some tricks are available to get around this limitation. GenJam never plays a "wrong" note, and it can swing better than most high school Jazz Ensembles.
Not bad for a computer program.
The official GenJam homepage: http://www.it.rit.edu/~jab/GenJam.html