ChordRipple: Recommending Chords to Help Novice Composers Go Beyond the Ordinary Cheng-Zhi Anna Huang Harvard University czhuang@fas.harvard.edu David Duvenaud Harvard University dduvenaud@seas.harvard.edu Krzysztof Z. Gajos Harvard University kgajos@seas.harvard.edu ABSTRACT Novice composers often find it difficult to go beyond common chord progressions. To make it easier for composers to experiment with radical chord choices, we built a creativity support tool, CHORDRIPPLE, which makes chord recommendations that aim to be both diverse and appropriate to the current context. Composers can use it to help select the next chord, or to replace sequences of chords in an internally consistent manner. To make such recommendations, we adapt a neural network model from natural language processing known as WORD2VEC to the music domain. This model learns chord embeddings from a corpus of chord sequences, placing chords nearby when they are used in similar contexts. The learned embeddings support creative substitutions between chords, and also exhibit topological properties that correspond to musical structure. For example, the major and minor chords are both arranged in the latent space in shapes corresponding to the circle-of-fifths. Our structured observations with 14 music students show that the tool helped them explore a wider palette of chords, and to make “big jumps in just a few chords”. It gave them “new ideas of ways to move forward in the piece”, not just on a chord-tochord level but also between phrases. Our controlled studies with 9 more music students show that more adventurous chords are adopted when composing with CHORDRIPPLE. Author Keywords Music; Songwriting; Chords; Harmony; Embeddings; Creativity Support Tools, Recommender Systems, Neural Language Models ACM Classification Keywords H.5.5 [Sound and Music Computing]: Modeling, Systems INTRODUCTION Novice composers often find themselves consciously or unconsciously falling back to familiar sets of chords, because these chords are what they are “used to hearing” and where their fingers are used to falling on their instrument. In the corpus of 200 rock songs curated from the Rolling Stone Top 500 Hits [14], we see a long-tail phenomenon where a few chord Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from permissions@acm.org. IUI 2016, March 7–10, 2016, Sonoma, CA, USA. Copyright c 2016 ACM 978-1-4503-4137-0/16/03 ...$15.00. http://dx.doi.org/10.1145/2856767.2856792 progressions are used in many songs while most other chord progressions are rarely used, akin to the Zipf distribution of words in natural languages. In fact, a recent article showed that the evolution of our harmonic language, among other musical facets in contemporary western popular music, has stagnated for more than fifty years [11]. However, the challenge is often not only to find something that is novel, but to use these chords in a way that serves a personal musical impetus. In practice, novice composers often find it difficult to use more elaborate chords because they are less certain about their effects and how to integrate them into their own music in a way that feels both original and connected. To address this challenge, we are developing CHORDRIPPLE (shown in Figure 1 and short-handed as CR)—a system that helps composers be more adventurous by recommending chords that are similar to the chords that they are using thus preserving the composer’s original musical intent, but that are a little more unusual. By proposing such chords as possible alternatives to the composer’s current chord choice, the system helps the composer see less familiar chords in the light of their own musical discourse, allowing them to easily experiment with the alternatives by substituting them into the current musical context. We introduce a novel intervention called RIPPLE, which are chord recommendations that not only suggests alternative chords to the current chord but also recommends a reworking of its content. The name RIPPLE is an conceptual analogy to rippling effects, which in this case is the changing of one chord causing the change of its surrounding chords. Chord recommendations are enabled by a machine learning model that captures chord similarity based on how likely different chords are to be used in similar musical contexts. We trained this model on a corpus of 200 rock songs curated from the Rolling Stone Top 500 Hits [14]. This model allows the system to recommend chords that are novel for a particular musical context but still similar to the chords used by the composer. To evaluate how CR impacts composers’ creative process, we recruited 14 undergraduate music students, and asked them to use CR to further develop chord progressions for a piece they were working on. We observed both positive and negative impacts of the tool on the creative process. Positive impacts include the tool helping composers explore a wider palette of chords, to create chord progressions that were “fresh and different throughout”. It gave them “new ideas of ways to move forward in the piece”, not just on a chord-to-chord level but between several phrases. It encouraged them to make “big jumps 13 2 4 Figure 1. A walkthrough, starting with two chords (step 1), of how CHORDRIPPLE is used to help inspire the next chord (steps 2, 4) and for exploring substitutions (step 3, where the bottom four choices are substitutions of the second chord, which are from the RIPPLE effect of choosing the third chord. As shown, chord recommendations here include both single substitutions and also chords that change the context (what is around a chord change), namely RIPPLES. in just a few chords”. They sometimes altered their intentions of extending or closing a phrase based on the recommendations they saw. Instead of following the path of least resistance, the recommendations often made them think and work harder. However, some composers found the choices to be too many and that not all chord recommendations were always relevant to what they were trying to achieve. We propose that future systems of this kind should focus recommendations to what is most relevant under the composer’s current intentions. For example, the intention of “make it longer” versus “I’m trying to end here” would entail very different chord recommendations. As the first study was more exploratory and open-ended, we conducted a second study that was more controlled where students performed transformations on given chord sequences with three design variations of CHORDRIPPLE. We found that the presence of adventurous chord recommendations resulted in students composing more novel chord progressions. Yet we did not observe that recommending more difficult to use chords with RIPPLESallowed students to adopt more of them when compared to just recommending the chords themselves. The contributions of this paper are threefold. First, we built CR, a creativity support tool that helps composers try more adventurous options; CR supports both adding new material to an existing chord sequence and re-editing existing material (thanks to RIPPLES). Second, we adapted a machine-learning model to learn chord similarity based on actual chord usage. Third, we conducted evaluations that yielded insights into how tools like CR can be integrated into composers’ creative practice. PRIOR RESEARCH There have been a number of creativity support tools that assist novice composers in composing chord progressions. Most systems are designed to address the musical problem of harmonizing a given a melody [1, 8, 9, 13]. While these systems all use a data-driven approach, each system strives for a different goal and objective in recommending chords. For instance, [8, 13] allows users to adjust the overall “mood” quality of the accompaniment through knobs such as “happy” which adjusts the weight between the transition matrices of a hidden Markov model for the major and minor key. Users can also modify chords individually, but the recommended chords are restricted to only the most typical chords given the local musical context. [9] provided users with a novel interface with control axes that corresponded to principal components of variances of differential transition dynamics in western popular music, allowing users to more effectively explore a wide range of variations on accompaniment sequences. [1] takes a hybrid approach of also using music-theory to guide the choice of chords for accompaniment. [4] works with chord sequences by themselves and by performing nonnegative matrix factorization on a windowed transition matrix, the system allows users to interpolate between different chord progressions to create their own mix. CR instead presents a composer with sets of diverse chords that are appropriate but more rarely used in a particular musical context. The support for exploring novel and diverse inspirational examples is critical because they help users to generate more novel and diverse artifacts [6, 10, 12]. CHORDRIPPLE CR provides two mechanisms to help composers adopt novel chord choices in their compositions. First, CR recommends chord substitutions ranging from typical to adventurous (yet still musically appropriate). Second, because the change of one chord in the middle of a phrase may cause the need to change its context, (a concept we name the RIPPLE effect), the system also includes chord recommendations of varying lengths that change a chord’s surrounding chords. We designed the first mechanism to help composers create raw adventurous Chord counts material, while the second mechanism to make it easier to for composers to make adventurous revisions to existing material. Modeling chords for recommendation To build a system capable of recommending chords, we first need a model of chord transitions and similarities. To represent chords, we use chord symbols that abstract chords into attributes, such as its root, chord type (such as major, minor, diminished), inversion and bass, extensions and alterations, which can amount to many possible unique chords. Like words in natural language, the distribution of chords follows a Zipf-like distribution. For example, Figure 2 shows chord frequency in the Bach chorale corpus (BACH) in music21. A handful of chords are used very frequently, while many chords are rarely used. Modelling rarely-used chords and chord transitions is difficult. For some applications it is common to reduce the number of chords to 24, treating all chords as either major or minor rooted in one of the 12 pitch classes. However, this comes with the compromise of conflating chords that bear very different transition dynamics. For example, even though I64 is an inversion of I, it serves a very different function in a cadence. Moreover, as our goal is to make adventurous chord recommendations, we need to be able to model how rare inversions and extensions are used. Hence, we keep all the chord attributes as annotated, which for example results in 92 unique chord symbols in the BACH corpus. 200 Sorted chord counts in Bach chorale corpus 150 100 50 00 20 Chords ind4e0xed by descen6d0ing counts 80 100 Figure 2. The occurrence count distribution of chords in roman numerals used in Bach chorales as annotated by Tymoczko [15] in the music21 Bach-chorale corpus [2]. CHORD2VEC To model chord transitions and similarities, we adapt a neuralnetwork model from natural language processing known as WORD2VEC [7] to the music domain as CHORD2VEC. This model learns chord embeddings from a corpus of chord sequences, placing chords that are used in similar contexts nearby in a vector space. The learned embeddings support substitutions between semantically similar chords. This allows chords that are rarely or never seen in a particular musical context to be recommended if they are nearby in the embedding to other chords that are commonly used in that musical context. As shown in Figure 3, this model is a skip-gram neural network. Hyperparameter m specifies the dimensionality of the continuous latent embedding, and w specifies the size of the considered context. Latent embeddings of each chord are defined by matrices U , indexed by the input chord, and V , which is indexed by t + l, where −w ≤ l ≤ w indicates output chord ct+l’s relative time position in a sequence with respect to the input chord ct. ct U H Vt−1 Vt+1 . . . ct−2 ct−1 ct ct+1 ct+2 . . . Figure 3. Skipgram neural network with window size w = 1. We use ui to denote the vector representation of chord i. We use ct to refer to the chord used at time t, and uct and vct to refer to the input embedding (U ) and output embedding (V ) of the chord ct. Following [7], we define p(ct+l|ct) as the softmax of the dot product between a chord and its context, as in Eqn. (1), where −w ≤ l ≤ w. The training objective of the model is to maximize the log-likelihood of all chord sequences independently, as in Eqn. (2). Maximizing this objective has the side-effect of puttings chords used in similar contexts close to each other in the input embedding U . P (ct+l|ct) = exp vT ct+l uct |W | i=1 exp vcTi uct T L(c0 . . . cT −1) = log P (ct+l|ct) t=1 −w≤l