Date

2019 12:00 AM

Major

Music and Theatre

Department

Music and Theatre

College

Liberal Arts and Sciences

Project Advisor

Christopher Hopkins

Description

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.

File Format

application/pdf

Share

COinS
 
Jan 1st, 12:00 AM

Building Algorithmic Software for Musical Harmony

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.