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 six years and has over 7500 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 2013 include:
-
Learning Melodic Components based on Harmonic Bricks: We currently use a method for extracting grammars from a corpus of jazz solos based on clustering and hidden-markov models. The proposed research will reorganize solo generation and learning based on idiomatic harmonic bricks, as outlined in our paper A Creative Improvisational Companion Based on Idiomatic Harmonic Bricks
-
Audio Input and Enhancement 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. Initial work was done in this area in the summer of 2012 (cf. Halpern, et al. reference), but a number of interesting problems remain.
-
Other related topics: genetic and principal components approaches to improvisation, music information-retrieval aspects, and general computational creativity in music, to name a few possibilities.
References:
-
Robert Keller, Alexandra Schofield, August Toman-Yih, Zack Merritt, and John Elliott, Automating the Explanation of Jazz Chord Progressions using Idiomatic Analysis, Computer Music Journal (to appear).
-
David Halpern, Brian Howell, and Robert Keller, Application of Music Analysis Algorithms to Interactive Music, The Improvising Brain Symposium, Georgia state University (April, 2013).
-
Robert Keller, August Toman-Yih, Alexandra Schofield and Zack Merritt, A Creative Improvisational Companion Based on Idiomatic Harmonic Bricks, Proc. Third International Conference on Computational Creativity, Dublin, 2012.
-
Jon Gillick, Kevin Tang, and Robert Keller, Machine Learning of Jazz Grammars, Computer Music Journal, Fall 2010, Vol. 34, No. 3, 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, especially with Java code and the Netbeans IDE.


