GenJam: Evolutionary Computation Gets a Gig

GenJam (short for Genetic Jammer) is an evolutionary computation-based, real-time interactive jazz improvisation agent. GenJam improvises spontaneous autonomous solos and performs interactive and collective improvisation with a human performer by listening to what the human improvises, mapping what it heard to its internal chromosome representation, and using intelligent mutation and crossover operators to develop what the human plays into what it plays in response. After an overview of GenJam’s architecture in performance settings, this paper describes GenJam’s chromosome structure for representing melodic material, and explains how it interacts in real time with a human performer. Where GenJam gets its musical ideas is discussed next, followed by HCI aspects from both the audience’s and the performer’s perspectives. Finally, a discussion of GenJam as an IT application and a brief prediction of its future conclude the paper.