Intelligent Music Software

The Impro-Visor (Improvisation Advisor) project has been developing educational software tools to help students learn to improvise music, particularly jazz. 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. Two types of advice given are: empirical advice, based on a database of stored melodies that match certain chord changes, and grammatical advice, based on a grammar that generates melodies on the fly. This free software tool has been used in classroom settings for two years and has over 650 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 2008 include:

  • The grammatical approach to melodic advice used in Impro-Visor has proven to be effective. However, we wish to sharpen this tool and provide different grammars that generate melodies in different styles. In addition to tools and techniques for hand-crafting melodic styles, we are interested in a machine learning approach to creating grammars. Based on different corpuses of melodies from specific musicians for example, we would like to learn grammars that represent the musician's style. Since the grammar is not a surface aspect of the music, learning a grammar from examples presents very challenging issues, not the least of which is the choice of an appropriate machine learning model (such as decision tree, neural network, support vector machine, inductive logic programming, or genetic programming) and training methods.

  • A second topic is to extend work begun in the previous year on style inference and extraction. 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.

  • A third topic is enhancing real-time aspects of the tool, so that it becomes 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.

Other related topics, such as music information-retrieval aspects and general computational creativity in music, are also possible.

References:

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.