When creating a web audio interface, my primary goal, above clarity or depth of control, is immersiveness. Can the user get lost in the experience, even if they don’t entirely understand how it works?
I love composing with phrases of different lengths because it provides the most variation with the fewest notes. Just a few seconds of a few different loops at different lengths repeating out of phase can play for hours without repeating. It’s just a matter of finding a few samples that sound nice out of phase, and adding some simple adjustable parameters to make the experience interactive.
In this piece, three different synthesizers cycle through different parts of a six-octave pentatonic scale in different patterns. Because each instrument covers a different array of notes with a different pattern (one alternates up through the lowest octave, another alternates down through the next two octaves up, and a third cycles through a random walk of the top three octaves). The playback rate of each pattern is then mapped to a slider, where each instrument can be adjusted from 1/4-16x its original speed. The result is an endless cascade of strange inverted chords and melodies in shifting interlocking rhythms.
Syncing animations with the music in a satisfying way was a complicated process, so again I went with atmosphere over accuracy. The flashing colors and pulsing circles are mapped to the amplitude and phrase position of the various synth patterns; although, as with the sounds, it all blends together into a dreamy wash.
source code: https://editor.p5js.org/mhorwich/sketches/HJkp693t7