Musical Novelty Search

Evolutionary Algorithms + Ableton Live

Making music with computer tools is delightful. Musical ideas can be explored quickly and composing songs is easy. Yet for many, these tools are overwhelming: An ocean of settings can be tweaked and it is often unclear, which changes lead to a great song. This experiment investigates how to use evolutionary algorithm and novelty search to help musicians find musical inspiration in Ableton Live.

Making Music With Computers

In the past 30 years, the art of making music has dramatically changed. As computers gradually conquered most aspects of the creative process, Digital Audio Workstation (DAW) Software has become the primary tool to produce music of all sorts: from Techno & Hiphop to Classical, Jazz & Doomcore.

Today, Ableton Live is as a leading DAW. It enables anyone even with just minimal training to compose professional sounding music. Simply by loading a few audio-samples or a synthesiser and then manually exploring possible combinations and settings, musical ideas start to emerge within seconds.

Ableton Live Clip View: Play on Pad1 on Channel1 + Drum1 on Channel3 + Melody6 etc.

While manual exploration is enjoyable for small collections, imagine dealing with 1000 audio-samples or synthesiser settings. As the amount of total possible combinations explodes, manually searching for desired outcomes becomes very time consuming and thus, most musical ideas remain hidden.

Evolution & Novelty Search

Using computational methods to find new music is intriguing: A algorithm could quickly search through countless sample & synth setting combinations, and give us a expansive, browsable map of truly novel musical ideas.

The basic concept of a Evolutionary Algorithm

Evolutionary Algorithms (EA) have a long history of being used for such interactive music generation experiments. They are a family of optimisation algorithms inspired by the principle of Darwinian natural selection. EA’s generate many possible solutions for a problem and then tests how well the solutions solve the problem, using a given fitness function. The fittest solutions procreate.

When thinking about using a Evolutionary Algorithm to search through musical combinations, a key question is how to define the fitness function — or how to measure what is good music. A few years ago Kenneth Stanley - a computer science professor at the University of Central Florida - published a series of papers outlining a concept which is relevant to this question: Novelty Search, a evolutionary search strategy which rewards behaving differently instead of progress to some goal.

Evolving Paintings by PicBreeder.org

In a search for novelty there is no pressure to be better —it simply rewards those solutions that are different. Novelty Search and a group of related approaches are under active development since years and have found application in painting, robotics & games. Watch Stanley’s fascinating talk “The Myth of the Objective” for further infos on the topic.

“Surprisingly, sometimes not looking for the goal leads to finding the goal more quickly and consistently” — Kenneth Stanley.

Experiment: Novelty Search Live

Novelty Search Live is a open-source tool that helps musicians find musical inspiration in Ableton Live. It uses a evolutionary algorithm to continuously evolve new audio clip and synth parameter combinations, guided exclusively by Novelty Search. Finally is takes the thousands of musical ideas it has discovered and generates a interactively browsable map with t-SNE.

While this experiment is just a quick proof of concept, it hints at the option of a musical inspiration assistant which guides the creative process.

Novelty Search Live — Features:

  • Evolve Clip Combinations, Device & Synths Parameters in realtime.
  • Explore possible combination of a live set & discover new musical ideas.
  • Play with a interactive map (T-SNE) of generated combinations.

>> Get Novelty Search Live on GitHub <<

Clip combination discovered through Novelty Search Live
Synth Presets discovered through Novelty Search Live

How does it work?

  1. Control Ableton Live from Python code via the PyLive library.
  2. Capture infos (clips/parameters/status) from Live & turn into Vector.
  3. Evolve Vector with Deap (Distributed Evolutionary Algorithms in Python) (this should be replaced with a CPPN like NEAT for better results)
  4. Use Novelty Search as fitness function, run for X generations.
  5. Send evolved vector to Ableton Live and play new music combination.
  6. Loop 3–5 until user interrupt.
  7. Show interactive T-SNE map of all evolved solutions.

Surprise, Curiosity, Motivation, Quality & Diversity

While Novelty Search is useful for musical discovery, it is clearly only part of a bigger puzzle. In the past years, researchers have come up with many improvements, extensions and new ideas going beyond pure novelty search. Here is a selection of related research, worth checking out:

Surprise Search system diagram

Final Thoughts

Novelty Search Live has transformed the way i compose music. Compared with manual processes, finding inspiration with computational assistance is joyful and often leads to unforeseeable outcomes. Combined with ideas such as surprise search and interactive training, a true musical inspiration assistant may become a reality soon. Such an assistant would allow us to compose high quality, yet unheard music much faster and inform us if what we are doing has been done a million times before. As such approaches have applications beyond just music, it is easy to imagine a world where there is an inspiration assistant for any thinkable creative processes.

Get in touch here: twitter.com/samim | http://samim.io
Sign up for the Newsletter for more experiments like this!
Map of Evolved Musical Ideas with Novelty-Search-Live

Follow up Discussion

Show your support

Clapping shows how much you appreciated samim’s story.