Intelligent Music Software
The Intelligent Music Software project has has been researching development of educational software tools to help students learn to improvise music, particularly jazz, although not limited to it. Our approach is to aid the student in constructing melodies similar to ones that could be improvised, in order to get a better understanding of harmony and its relationship to melody construction. One such tool, Impro-Visor has been used in classroom settings for five years and has over 900 registered users at present. In addition to its primary function, it provides a microcosm of examples for software development, including knowledge representation and real-time execution of music accompaniment.
Possible problems for the summer 2012 include:
Use of harmonic idioms as a way of structuring and learning melodic phrases: This in a melodic extension of the "Lego Brick" approach introduced by Conrad Cork in the UK. By learning in this context, we mean both human learning and machine learning.
Novel melodic entry methods: Impro-Visor has a mode in which melodies can be sketched by drawing contours on the staff. We think this approach could be improved by drawing on a melodic grid, which also highlights certain aspects of chord structure.
Enhancing Real-Time Aspects of Impro-Visor: We would like Impro-Visor to become a better companion for accompanying and trading melodies with the user. Ideally, the real-time improvisor would emulate the thought processes of a human improvisor at a macro scale. Many of the features of the tool are capable of working in real-time, but there are ergonomic interface and knowledge-representation issues to be researched.
Inferring Chord Changes: The Impro-Visor tool provides automatic accompaniment in specific styles based on chord progressions, but creating and editing styles by hand is labor-intensive. Progress was made on extracting style rules from MIDI files using data-mining techniques, but there is further work that can be done. For example, we currently require a lead-sheet file parallel to the MIDI file to indicate chord changes. It would be nice not to require the latter, which would entail inferring the chord changes from MIDI.
Other topics, as suggested by participants, may be explored.
References:
-
Robert Keller, Stephen Jones, David Morrison, Belinda Thom, and Aaron Wolin, A computational framework enhancing jazz creativity, ECAI '06 (European Conference on AI) Workshop proceedings, Riva del Garda, Italy, August, 2006.
-
Robert Keller and David Morrison, A grammatical approach to automatic improvisation, SMC '07 (Sound and Music International Conference), Lefkada, Greece, July, 2007.
-
Robert Keller, Martin Hunt, Stephen Jones, David Morrison, Aaron Wolin, and Steve Gomez, Blues for Gary: Design Abstractions for a Jazz Improvisation Assistant, ENTCS (Electronic Notes in Theoretical Computer Science), Volume 193, (November 2007), Pages 47-60.
-
Jon Gillick, Kevin Tang, and Robert Keller Machine Learning of Jazz Grammars, Computer Music Journal, Volume 34, No. 3 (Fall 2010), Pages 56-66.
Mentor: Professor Robert Keller
Professor Keller has been on the faculty of Harvey Mudd College since 1991, having previously held faculty positions with Princeton University, the University of Utah, and the University of California, Davis, as well as having worked in the software industry and with various government laboratories. He has broad interests in computer science, and teaches in areas such as computability and logic, software development, and neural networks. He is an active jazz musician and plays the piano and trumpet in bands in southern California. He also teaches a course in jazz improvisation at the Claremont Colleges.
Required Background
Students should have some background in artificial intelligence or machine learning. Some knowledge of music theory is essential, and being a performer of jazz or popular music is very helpful. Students should be reasonably proficient in software development. Skills in developing Java code are helpful.

