King's College London

Research portal

Creating improvisations on chord progressions using suffix trees

Research output: Contribution to journalArticlepeer-review

Original languageEnglish
Pages (from-to)233-247
Number of pages15
JournalJournal of Mathematics and Music
Issue number3
Published2 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

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