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:

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.