The Genome Audio Tool

A look at the new project I’m working on, a desktop app for generating evolving musical compositions.

--

Early brainstorm sketch that led to the concept

I’ve started work on a new audio software project!

The working title is simply, Genome, and it is a music sequencing tool that is inspired by the evolutionary processes of mutation and selection. With this project, I will be maintaining a development log, in hopes of distilling the concepts, motivations, challenges and technical details throughout the entire process, from concepts to coding and ultimately release. I hope that these entries will provide helpful insights for future users and possibly even collaborators. Let’s get to it…

So, what is the Genome Audio Sequencer?

At its core, the Genome is similar to a traditional step sequencer, like one you might find in software such as Ableton Live or Logic. However, Genome is different. The overarching concept is that with Genome you can create sequences of music or sound that evolve from one sequence into another.

Sketch of mutations from one genome (musical block) to another

At present, I’m planning for it to be a stand alone desktop app used to create background soundscapes for focus and creativity. There is no plan for it to be a VST plugin, it won’t have MIDI and it isn’t necessarily meant to integrate with other products. That may change in the future though.

Grey-box wireframe of the main Genome Features

Above is an initial sketch of Genome that I’ve been working on over the last few days. The main objective of this sketching activity is to get all the main features and ideas into one design to begin thinking about how each component will interact. The concept for this instrument sort of came into my mind all at once, so this has been a good way for me to get everything “down on paper”. This is only a wireframe, the actual design will continue to change as I get into coding the U.I. It’s likely that each section in the sketch above will be in its own view, rather than all sharing the same space. Next I’ll break down each “module” of the instrument.

Gene Sequences, Genes and Nucleotides

The gene sequence editor

In the upper left of the sketch, there is the gene sequence editor. Each sequence contains a variable number of genes and each gene has six nucleotides (think GTAC). Each gene represents a single musical note in the sequence and the nucleotides each represent some sonic character of the note. During the evolution process, both genes and nucleotides are subject to mutate. I’ll get more into the specifics of mutation and evolution in a future article.

An Entire Genome

The genome editor

The lower part of the sketch contains the genome editor. A genome is a collection of sequences. The length of a genome is variable and since gene sequences are also variable, a sequence will repeat if the length of the entire genome is longer than the sequence. Notice also that sequences can be offset at their beginning. I think that this will make for interesting rhythmic possibilities. Also in this section, the user can choose a tempo and a musical scale or chord cluster for the genome to play in. I’m not sure just yet how the scales will be arranged. That is a concept that needs to be explored further.

The Evolver

The evolver interface

In the upper right of the sketch, you can see a section called the Evolver. This is effectively the “player” section that runs the audio and mutates the sequences over time. Once the user has created a library of genomes, they can rearrange the ordering of them, press play and the evolver will start at the top of the list and evolve through the entire collection.

At the moment, I’m thinking that mutations will occur after each sequence has completed once, but it could be interesting to experiment with shorter spans of time, such as on each note, or just even randomly.

I think there could be some nice opportunities for creating interesting visualizations of mutations occurring in this section.

Let the Coding Begin!

There is a lot going on in these sketches and much work to be done to realize this idea. I’m starting with creating the data model and working out just how the evolution process will work. I plan to write another article once I’ve got a good handle on that. Stay tuned!

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Jeremy Brown
Jeremy Brown

Written by Jeremy Brown

Software Engineer, originally from the U.S. and now living and working in Vienna, Austria. I write about Programming, Music, Machine Learning & NLP

No responses yet

Write a response