Building Algorithmic Software for Musical Harmony

Gruman, Benjamin
Journal Title
Journal ISSN
Volume Title
Source URI
Research Projects
Organizational Units
Music and Theatre
Organizational Unit
Journal Issue

This project implements an algorithmic process of musical harmonization in software, using traditional species counterpoint described in Johann Joseph Fux’s Gradus ad Parnassum (1725) as a model. The purpose is to provide a prototype for software with which a user will explore alternate harmonic theories and facilitate the production of a musical composition. The limit set for the prototype is to encapsulate the fundamental principles of two-part, first-species counterpoint in Gradus ad Parnassum, by which a composer adds a rule-based second melody, the counterpoint, to a provided fixed melody, the cantus firmus. For the software implementation, the algorithm constructs a counterpoint for any cantus firmus by arranging hypothetical notes into a graph, with edge magnitudes chosen to reflect the allowance of and preference for certain motions between notes, adapting Dijkstra’s Shortest Path First algorithm to choose a valid path. The technical implementation involves programming the algorithm in JavaScript embedded in the Max 8 audiovisual programming environment to provide the user interface and musical sound. The project sets the foundation for further explorations of musical graph theory and algorithmically generated harmony that will expand to more complex textures.