Randall Spangler, Rodney Goodman, Jim Hawkins
We describe a system for learning J. S. Bach's rules of musical har(cid:173) mony. These rules are learned from examples and are expressed as rule-based neural networks. The rules are then applied in real(cid:173) time to generate new accompanying harmony for a live performer. Real-time functionality imposes constraints on the learning and harmonizing processes, including limitations on the types of infor(cid:173) mation the system can use as input and the amount of processing the system can perform. We demonstrate algorithms for gener(cid:173) ating and refining musical rules from examples which meet these constraints. We describe a method for including a priori knowl(cid:173) edge into the rules which yields significant performance gains. We then describe techniques for applying these rules to generate new music in real-time. We conclude the paper with an analysis of experimental results.