Music composition and songwriting are often described the way other types of creativity and artistic processes are: mysterious, specialized activities that spring magically from the depths of the artist’s mind. Yet writing music is also a craft, and seemingly effortless breakthroughs are courted by skilled writers via practice, listening, analysis, and other methods.
Amadeus Code was built to be the next tool in this trade, the next supporting element to push the craft that leads to sonic art. By harnessing the fast calculations of computers and the rapid pace that algorithms can use to find novel combinations according to specific rule sets, AC is a prompt, generating new melodies and chords composers can use or discard, combine or arrange.
This is merely an extension of techniques creative people have used for eons. Creativity does not leap from nothing, but is the process of collection and selection, of building snippets and snatches into fully developed musical statements. From a folk song that becomes a symphony, to notes jotted down on a scrap of staff paper, to a hasty voice memo recorded at a bus stop, composers have been collecting ideas and using them to build masterpieces since formal composition became regular practice. AC simply adds another source of ideas to the mix.
The rules that guide our algorithm were distilled from data pulled from several centuries of popular works, from the Baroque through the top hits of the moment. This data had to be translated into units an algorithm could work with, which meant determining the smallest possible piece that still contained sufficient information to be recombined into a novel melody. In our machine learning model, we called this unit the “lick,” the atom of our song-generating system. We then assigned each lick four values that would allow us to evaluate their potential sequence in a melody, thereby generating convincing melodies successfully. These melodies are matched with chords.
Effectively, the great hit songs yet to be written are the great hits of the past–with a twist. For this reason, we took the so-called “Noisy Channel” approach, in which we told the algorithm to switch out a random lick in a hit song and replace it with another, random lick from a selection of likely replacement candidates, defined by another algorithm. We set a beginning and end for the melody; otherwise, the algorithm would generate melodies into infinity. And we made the results conform to Western notions of harmony, a key part of the recursive, self-improving side of Amadeus Code.
Recursion allows AC to expand its database with limited knowledge resources, accruing a collection of excellent, unique melody fragments to draw on. Human curation of these elements–which are kept by a user and which discarded–determines what is good. No machine can do that, of course. We are using the AC algorithm to gather the basic tendencies of melodies and chords, based on a wide range of musical styles and eras, and put this power in the hands of composers, who have always relied on outside inspiration to refine their visions. (See more details of our model here for those interested in the full complexity of song idea generation.)
The melodies Amadeus Code creates are helpmates, not replacements. Humans are the heart of creation and curation, and there is no machine that can change that. However, we feel strongly that AI has a thrilling place in the composition process, one that we hope producers, writers, and composers will adopt and adapt to their own needs and dreams.