King's College London

Research portal

Creating improvisations on chord progressions using suffix trees

Research output: Contribution to journalArticle

Original languageEnglish
Pages (from-to)233-247
Number of pages15
JournalJournal of Mathematics and Music
Issue number3
Publication statusPublished - 2 Sep 2018

King's Authors


Technology nowadays takes an increasing part of “creativity” in live music software such as the OMax-ImproteK-Djazz improvisation environment. Specifically, Djazz implements techniques for indexing and creating improvisations using a given chord progression. It relies on a database that we call a dictionary, storing musical sequences (audio or MIDI) associated with known chord changes. We define an improvisation on a given chord progression x as a sequence obtained by concatenating musical phrases identified with factors of x that can be found in the dictionary. Given a query sequence x and a dictionary D, we present an algorithm that finds an improvisation on x with respect to D. We use the suffix tree data structure to index D and then produce a graph formulation of the problem in order to find a suitable improvisation in linear time, with respect to the length of x.

View graph of relations

© 2018 King's College London | Strand | London WC2R 2LS | England | United Kingdom | Tel +44 (0)20 7836 5454