Back

SOULS

Role · Interactive music system: design, prototyping, composition

With · Sia & David OReilly

Platforms · Web · Interactive characters

2021–2022 Music Design

Problem

SOULS is a collection of 10,000 interactive characters by Sia and David OReilly, each one alive with its own ambient music and responsive to its own emotional states. Ten thousand characters can't each get a composition, so instead of writing 10,000 soundtracks I designed the rules that generated them: a musical language of 21 recorded loops whose combinations, transpositions, and transitions give every character a distinct sonic identity.

SOULS character

Design decision

A language instead of a score

The vocabulary started in a notebook: 21 chords, all trichords, three notes each, labeled M, m, and Q for major, minor, and quartal. Overlap the right trichords and you get seventh chords, ninth chords, four-note quartal stacks: a vocabulary small enough to record as 21 ambient loops and large enough to reach extended harmony. Those loops, transposed and combined, are the raw material every character draws its identity from.

Notebook spread titled '21 chords for SOULS': a numbered list on the left mapping new chord numbers to old ones, and hand-drawn staff notation on the right, each trichord labeled M, m, or Q

The notebook page: 21 trichords for SOULS, each labeled M, m, or Q (major, minor, quartal).

Design decision

Making transitions disappear

The harder problem was making the transitions disappear, so a character could wander between harmonies without the listener hearing where one recording ends and another begins. The system grew out of an email thread with David in December 2021 about how to blend looped ambiences: a naive crossfade dips in loudness at the midpoint and announces every transition, so I designed a constant-power blend that keeps the combined energy level, and the ear hears one continuous texture changing color rather than two files trading places.

I sent David the idea as Sharpie sketches, then built it as a series of JavaScript and Web Audio interaction tests, extending the blend from two recordings to a whole family of chords spread along a single continuous control.

Sharpie sketch comparing two crossfade shapes: a rectangle with straight diagonal lines crossing in an X labeled as the normal crossfade, and a rectangle with two cosine-shaped curves labeled constant power crossfade

The December 2021 sketch I emailed David: a linear crossfade (labeled, in my handwriting, "normal, shitty crossfade") against the "constant power" curves that keep loudness level through the transition.

Diagram of three overlapping volume triangles labeled sample 1, sample 2, and sample 3 above a horizontal slider with a handle, showing how one slider position mixes adjacent samples

The cleaned-up version: overlapping volume envelopes for adjacent recordings along a single slider, so one continuous control moves through the whole set.

Sharpie sketch of six overlapping volume triangles numbered 0 through 5 arranged along a slider from 0 to 1, with a dB scale from full volume to silence

The six-way version: a whole family of chords spread along one control, each rising as its neighbor falls away.

Handwritten math on an index card: a triangle plotted on x and y axes with apex at point (c,d), and a four-part piecewise function defining the rising edge, falling edge, and zero regions

Working the volume curves out on an index card before writing any code.

Design decision

Closing the circle

The order of the chords mattered as much as the recordings. A control that wraps around needs a loop, and six diatonic triads sit on the circle as an open arc: pass the last one and the music jump-cuts back to the first. So I arranged all seven diatonic triads so that every neighboring pair already shares two of its three notes while the third moves by a single scale step, and the seventh chord, the diminished triad everyone else throws away, connects the end of the chain back to the beginning. Every position on the circle is a blend of two close relatives, so the harmony never lurches no matter where the character wanders.

Six chord circles labeled Dm, F, Am, C, Em, G clustered along the top of a large circle, leaving most of the circle empty: an open arc that does not close the loop

Six chords on the circle leave an open arc: the loop doesn't close.

Graph of seven chords arranged evenly around a circle: em, G, b diminished, dm, F, am, C, with lines connecting each neighboring pair

The diagram I sent David on December 6, 2021: all seven triads around the circle, each line connecting two chords that share two of their three notes. The b° closes the loop so the blend can wrap around with no seam.

Iteration

The first full set of loops didn't survive review. David flagged three chords as "too haunting," and my own verdict on the rest was that they were too bombastic and cinematic for characters meant to be lived with, so I re-recorded the entire set end to end before launch.

Outcome

The collection launched in July 2022, credited "music by Nathan Turczan," and reached #3 on Billboard's monthly ranking of top-selling digital collectibles in music, with coverage in Forbes and Designboom.