Chris Donahue, a Professor at Carnegie Mellon and former Google Mind research scientist, is at the forefront of applying generative transformer models (basically the technology behind ChatGPT) to music. We have been working with his group over the last year and are excited to announce that Aria, a generative AI music feature, has been integrated into Hookpad, our songwriting sketchpad.
How Aria Works
Aria is based on a state-of-the-art Anticipatory Music Transformer model that came out of Chris’ research group that was fine-tuned on Hooktheory’s own public TheoryTab database of over 50,000 popular music analyses to find patterns in melodies and chord progressions. In other words, in the same way that ChatGPT figured out how to speak English by training on the Internet, Aria has become fluent in harmonic structures and melodic ideas by training on the entire corpus of popular music as analyzed by the Hooktheory community.
How does Aria work in practice? It’s simple. As you are writing your chord progressions and melody in Hookpad, select a region of music and ask Aria for help.
Aria will suggest alternative musical ideas within the selection that go with the rest of the song. It’s great if you have a few measures you aren’t happy with to see what else is possible. Once you accept a suggestion you can edit the suggestion however you’d like and make it your own.
Aria in Action: A Case Study
Let’s look at a fun example that shows off what Aria is capable of. Listen to the 4 bars of music below. You might recognize them as the beginning of the chorus to Billy Joel’s Piano Man [the last four bars are intentionally left empty].
From here, I had Aria suggest the rest of an alternative chorus. I had it infill 4 bars at a time. I did ask it for a few different suggestions, and I did choose from the ones that sounded the best to me so there was a human element here, but, otherwise, I have not changed things at all. (You can also click on the “Original Song” tab below to see what Billy Joel actually wrote).
Musical Breakdown: What Aria Created
It’s worth briefly discussing what Aria came up with here from a musical perspective. First, Aria notices the descending bass in the preceding chord progression (C → B → A → G) and continues this common pattern. Like the original song it goes to an F chord next, but then goes to a D/F♯ chord (rather than C/E in the original song). This also creates a nice continuation of the descending baseline pattern and provides a good way to get back to G (the V). The D chord here acts as what is called a secondary dominant, and it shows up in the original song as well, however, the inverted form Aria chooses gives a decidedly different feel compared to the stronger root position dominant 7th chord chosen in the original.
The second half of the song is also interesting, though for different reasons. Aria knows that, structurally, music tends to repeat itself, so when it is asked to create the second 8 measures of music, it suggests a repetition of the first chord progression with a variations of the melodic ideas in that first phrase. In other words, Aria isn’t just suggesting random chords and musical ideas that it has seen before, it’s looking at the bigger picture of the song and suggesting things that might work in that broader context and theme.
Aria’s Limitations
Is this AI-generated variation perfect? No, I don’t think so. But on the other hand, it’s giving us some neat ideas to work with that are a great jumping off point. That’s really what a lot of composing is, listening to different things and seeing what works through trial and error.
Aria can generate ideas like this all day long.
More Ways to Use Aria: Chords, Melody, or Both
In the previous example, I had Aria generate full sections of music (both chords and melody together), but if you already have a melody worked out, Aria can help with the chord progression underneath or vice versa. In this next example, I’ve taken the existing melody for the Happy Birthday Song and left the chords out other than the first measure which I’ve seeded with more complicated chords to create the context of a more jazzy arrangement (the first measure and the melody are from Korean electronic music artist M2U). Click the suggest completion tab in the example below to see what Aria came up as a completion:
Just using the single measure as the seed, Aria does a good job suggesting a desired complex reharmonization; Aria clearly understands a lot of advanced harmony. Of course, if you give Aria a simpler context to work with it will come up with a simple recommendation. Here is the same melody but with the first chord replaced with a simpler starting point with Aria suggesting an appropriate completion using only I, IV and V chords (the 3 most important chords in music):
Versatile Styles: From Jazz to Metal
This contextual understanding allows Aria to take cues from different melodies and chord progressions to produce music in a wide variety of styles. Below are two single measure starting seeds, the first a smooth slower moving jazz feel and the second a fast moving metal beat. Again we can see that Aria is recommending appropriate completions for these very different musical ideas.
Aria is, at its core, a tool for songwriters to help them write better music. It is not a replacement for songwriting, and we are excited about Aria’s ability to give the songwriter more power and leverage in the music creation process.
Aria’s Future and Free Testing
Aria is evolving rapidly with lots of ideas in the works for improving it as well as making it faster and reducing costs. We would love to hear about ways that it could improve your songwriting workflow. The free version of Hookpad includes 10 Aria infills per day so you can test out how it works yourself at hookpad.hooktheory.com.