Algorithmic Composition

Description: Algorithmic composition is the composition of music using formalized methods mostly related to mathematics and programming. This course gives a brief historical background of algorithmic composition from early history to the 21st century, and focusses on current, state-of-the-art techniques, providing a brief outline of their trends in artistic applications. The use of programming for algorithmic composition will be demonstrated, and practical examples will be explored, using the SuperCollider open-source object oriented programming environment. Notions introduced are: Score and instrument, event (note), programming and representing notions from pre-digital music practice (rhythm and tempo, scales and tunings, serialism), randomness and probability, chaos and fractals, markov chains, data based strucures (data sonification), generative grammars, genetic algorithms, neural nets, and sound synthesis techniques (Unit Generators, additive and subtractive synthesis, chaotic generators, spectral modeling, physical modeling, sampling, granular synthesis). Finally, the relationship to other types of algorithmic art forms will be discussed.

Keywords: Algorithmic composition, computer art, generative systems, music programming languages, supercollider, live coding

Objectives (hour):

  1. History and principles of computer music languages: Music-N languages, HMSL, interpreted languages, graphical interface environments
  2. Client-Server principle in live sound synthesis and real time algorithmic composition. Syntax and Semantics of Object Oriented Programming environments
  3. Unit genertors in sound synthesis engines. Basic sound synthesis techniques
  4. Writing Synthesis Patches (Synthdefs)
  5. Writing algorithmic generative scores
  6. Live control via MIDI and OSC
  7. Use of Random processes and chaotic generators
  8. Demonstrations of student projects. Feedback
Prerequisites/advisable prior knowledge: Participants should have an interest in formal and algorithmic techniques for generating art. Of advantage is a background in music composition, computer programming, mathematics, or constructivist conceptual art and related algorithmic art forms. No background in programming is required, but a readiness to learn the basics of programming is important for successful attendance.

*** Participant's Equipment

Participants should bring to class their own laptop computers, (Mac or PC), and their headphones. PC users should use Linux for best results. Obtain Linux MINT XFCE installed on Linux Live USB using the LiLi app.

Evaluation feedback: Present a composition sample or a theoretical paper dealing with algorithmic compositional techniques, and using programming code or giving a historical treatment. In either case, a paper should be submitted describing the work done, in 2500 words or less.

Recommended reading list:

Hermann, T. et al. (eds). 2011. The Sonification Handbook. Berlin: Logos.
Messiaen, O. 1944. The Technique of My Musical Language. Paris: Leduc.
Miranda, E. R. 2011. Composing Music with Computers. London/NY: Routledge.
Nierhaus, G. 2009. Algorithmic Composition: Paradigms of Automated Music Generation. Wien/NY: Springer.
Wilson, S., Cottle, D. and Collins, N. (eds). 2011. The SuperCollider Book. Cambridge, MA: MIT Press.
Xenakis, I. 1990. Formalized Music: Thought and Mathematics in Composition. Stuyvesant: Pendragon.

Instructor A: Andreas Floros

Instructor B: Iannis Zannos


Back to Courses