The approximate patterns in Summa

Algo Pärt

Algorithmic recomposition of compositions by Arvo Pärt.

Arvo Pärt is one of the most popular contemporary composers, known for his highly original tintinnabuli style. Works in this style are typically composed according to precise procedures and have even been described as algorithmic compositions. To understand how algorithmic Pärt’s music exactly is, this project attemps to reconstruct his compositions algorithmically. The idea is to try to reconstruct rules and use those to generate a score, which we can compare to the original. We refer to this method of musical analysis as analysis by synthesis.

The project focusses on the score of Summa, according to Pärt himself in 1994, his “most strictly constructed and most encrypted work.” The piece is analyzed and then formalized using so-called tintinnabuli processes. An implementation of the resulting algorithm generates a musi- cal score matching Summa in over 93% of the notes. Due to interdependencies between the voices, only half of the mistakes (3,5%) need to be corrected to reproduce the original score faithfully. This study shows that Summa is indeed a largely algorithmic composition.

The algorithm generating Summa is implemented in Python using music21. To make it easy to work with tintinnabuli spaces and processes, I have developed a small Python package called tintinnabulipy. It also makes it easier to plot those:

from tintinnabulipy import *
from music21.chord import Chord
from music21.scale import ConcreteScale

M = MelodicSpace(MinorScale('E2'))
T = TintinnabuliSpace(Chord('E2 G2 B2'))
M.plot(M.sequence('G3', 8), 'o-')
M.grid()

For more explanation, have a look at the notebook Tutorial.ipynb.

Read more

You can read more about this project in chapter 10 of my PhD dissertation.