Computing and displaying similarity in Beethoven’s vocal sketches and score for Leonore (1805)

Authors: Alfter, Lena Katharina

Date: Wednesday, 6 September 2023, 9:15am to 10:45am

Location: Main Campus, L 2.202 <campus:measure>


This project features a computational approach for analysing and rendering musical similarity between sketch and score of Beethoven’s ‘Gut, Söhnchen, gut’ trio from the first act of the 1805 Leonore version of his opera. Initially, both the relevant music from the sketch and the score are encoded in MEI. Using Python, information for each musical event—be it a note, a tied note, or a rest—from these XML files is extracted before further data is added to the retrieved characteristics thereby enabling these events to be mapped onto a time-axis. Subsequently, an algorithm aligns the music from the sketch and score as well as possible with the lyrics serving as checkpoints. The result of this step is a collection of coordinate pairs containing corresponding positions from both data sets. The Python program consequently calculates a similarity value for each of these coordinate pairs with regard to their pitch, octave, duration and metrical position within the bar as a Hamming distance, yielding a value between 0 and 4. This data is then plotted in the form of a heatmap-histogram-combination with the width of each data point reflecting the duration of the corresponding musical event. Finally, making use of LilyPond’s unique proportional duration notation feature, these plots are then directly embedded into a LilyPond file containing the encoded sketch transcription. This visualisation allows for an overlayed evaluation and interpretation of the relationship between the two different stages in composition. At the same time, it offers an intuitive and unbiased wide-angle perspective on the same aspect and thereby enhances not only the accessibility of a certain component of a particular musical analysis but also of the underlying primary source itself. The modular structure of this approach provides a framework with a high degree of flexibility that could be expanded upon in future applications.

Contribution Type