Abstract
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.
Original language | English |
---|---|
Pages (from-to) | 233-247 |
Number of pages | 15 |
Journal | Journal of Mathematics and Music |
Volume | 12 |
Issue number | 3 |
DOIs | |
Publication status | Published - 2 Sept 2018 |
Externally published | Yes |
Keywords
- chord progression
- chords
- decomposition
- F1.1
- F4.3
- improvisation
- open music
- suffix tree