An Open Design for Computer-Aided Algorithmic Music Composition
This dissertation introduces a new design for a computer-aided algorithmic music composition system. Rather than exploring specific algorithms, this study focuses on system and component design. The design introduced here is demonstrated through its implementation in athenaCL, a modular, polyphonic, poly-paradigm algorithmic music composition system in a cross-platform interactive command-line environment. The athenaCL system offers an open-source, object-oriented composition tool written in Python. The system can be scripted and embedded, and includes integrated instrument libraries, post-tonal and microtonal pitch modeling tools, multiple-format graphical outputs, and musical output in Csound, MIDI, audio file, XML, and text formats.
Software design analysis is framed within a broad historical and intertextual study of the themes, approaches, and systems of computer-aided algorithmic composition (CAAC). A detailed history of the earliest experiments, as well as analysis of the foundational CAAC systems, is provided. Common problems and interpretations of CAAC are then presented in a historical and intertextual context, drawn from the writings and systems of numerous composers and developers. Toward the goal of developing techniques of comparative software analysis, a survey of system design archetypes, based on seven descriptors of CAAC systems, is presented. With this foundation, athenaCL system components are analyzed in detail. System components are divided into abstractions of musical materials, abstractions of musical procedures, and system architecture. For each component, object models, Python examples, and diagrams are provided. Further, each component is given context in terms of its compositional implications and relation to alternative and related models from the history of CAAC.