Computational analysis of jazz improvisation

The Jazzomat workshop in Weimar

End of September, the Jazzomat project at the Hochschule für Musik, Weimar, had invited various researchers for a workshop on the computational analysis of jazz improvisation. The occasion was a presentation of their first results: hundreds of jazz solos transcribed throughout the Jazzomat project, and the release of a python based toolbox for the computational analysis of music. The workshop provided the chance for jazz researchers and computational musicologists to exchange ideas about perspectives of computational music research.

From my research on oral transmission of Dutch folk songs, I am very interested in new analytic approaches to jazz improvisation, as jazz improvisation can also be considered as an oral tradition: musical ideas are passed on between different musicians through playing together. Moreover, jazz education largely relies on studying the transcribed solos of famous performers, and imitating their melodic patterns.

It was interesting to hear presentations from jazz researchers who had not used computers for their research yet, and applied the “melospy” toolbox from Weimar to jazz improvisations. This made it possible to test existing theories on jazz style from literature, for instance John Coltrane’s use of out-of-key material compared to other performers’ tendencies. Other presenters showed how they applied machine learning methods to automatically create jazz harmonization, or how characteristic articulation techniques, such as pitch gliding and vibrato, can be captured with audio analysis.


My own contribution was a network of jazz patterns. I applied my pattern matching methods which I had evaluated on melodic segments of Dutch folk songs to the jazz improvisations. As using all transcriptions led to a too large network to interpret easily, I decided to focus on the solos by trumpeters, a choice inspired by my familiarity with this repertoire in particular, as I play the trumpet myself. I looked for corresponding melodic material between different solos, and visualized the connections using the network visualization software gephi.

The resulting network is shown in Figure 1. The network nodes are the jazz solos, named after the improviser and the song on which they improvised. The edges between the solos represent shared melodic material: if two solos are connected, they have at least one melodic pattern in common. A thicker edge implies that more melodic material is shared. The size of node labels in the visualization reflect the connectedness of a specific solo; moreover, I applied a community detection algorithm (modularity) in gephi, which finds subgroups of highly connected solos in the network.

The resulting network is a promising result in some ways: different solos by the same performer appear connected. An extreme case is the thick edge between Dizzy Gillespie’s “Groovin’ High” 1 and 2, it represents the high similarity between two takes for a solo on the same song. The size of the edge label could be read as how influential the respective jazz trumpeters are, or which of their solos might be melodically representative for a specific style – but this information needs to be taken with a pinch of salt, as of course all the transcriptions of the Weimar jazz dataset are from famous solos by famous jazz performers. The communities detected by the modularity algorithm show some sub-groups, not all of them are equally easy to interpret. However, the yellow coloured group in the network, containing trumpeters such as Freddy Hubbard, Lee Morgan and Clifford Brown, is interesting, as it mainly consists of trumpeters who would be considered as representatives of the “hardbop” style (a style predominant in the 1960s).

From this preliminary result of applying my pattern matching methods to jazz improvisation, I derive a wishlist: I would like even better and reliable ways of finding relationships between melodies from oral transmission, and I hope to be able to visualize these relationships in a better way – i.e. as an interactive network, in which clicking on the nodes also brings up notes for the melodic passages that are shared. This still requires a lot of research, but it was good to see that not only in folk song research, but also in jazz research, people are working towards these methods and goals.


Fig. 1 The network resulting from the analysis of solo transcriptions by jazz trumpeters. Improvisations are listed with the soloist and the name of the song. An edge between two solos implies that there is shared melodic material between them; thicker edges reflect that a greater amount of melodic material is shared. The size of the node labels are based on how connected the respective solos are in the network, the colours of the edges represent different communities found in the network.