Type to Rhythm Machine

Interactive Live Stream and How to Use It

Perfect Circuit · 12/02/19

We're running an interactive live stream on our YouTube channel—the Type to Rhythm Machine. So if you need a break from holiday shopping, you can take some time to turn text into musical patterns. Just hop over to this video, start typing in the chat window, and watch and listen as the patterns before you change.

If you've been following us for a while, you might remember that we did a similar project last year, in which a 0-Coast and Magneto were randomized by incoming YouTube chat messages. We decided to take this idea a bit further, providing more extensive and deterministic control of an entire setup's worth of instruments. This stream will work fine with just about any incoming text—though emojis and some special characters are not recognized. Feel free to type away and hear what any given text sounds like...or read on to see how you can take more exact control of the instruments at hand.

What's in the Setup?

For this setup, we're using a Moog Grandmother, Behringer RD-8, Roland Boutique JU-06A, Erica Pico System III, and a Make Noise Mimeophon. Each of these instruments has its own role: the Grandmother produces basslines, the JU-06A produces pads, the RD-8 produces rhythms, and the Pico System and Mimeophon work together to produce lead sounds and ambience. These are all mixed together using an SSL SiX and then sent to the live stream.

This combination makes for a well-rounded setup that covers a broad range of tones and textures.

How Does it Work?

We're using Cycling 74's Max 8 (and its built-in node.js functionality) to constantly read new YouTube comments. These comments are sent into Max and converted into eight-track MIDI sequences which collectively control all of the instruments in the setup. We're not making use of the devices' internal sequencers/arpeggiators/etc.—all control originates from the chat messages.

The sequences are generated by analyzing the content of up to eight individual "words" within a comment. Each of the first eight words of a comment corresponds to a specific instrument or group of sounds; words beyond the eighth are ignored. Characters within a word are mapped to specific pitches or rests, and the contents of a word are repetitively "spelled" over and over in order to produce a sequence.

To further explain, let's consider the phrase "Robert Moog and Don Buchla changed electronic music forever." First, the phrase is broken apart into individual words and assigned to instruments based on their position within the phrase.

  • "Robert" : the first word is assigned to the Grandmother. The word has six characters, so it will create a pattern that repeats every six 16th notes. Letters correspond to specific pitches and rests.
  • "Moog" : the second word is assigned to the RD-8 kick, creating a pattern that repeats every four 16th notes.
  • "and" : the third word is assigned to the RD-8 snare. "and" produces a pattern of three 16th notes.
  • "Don" : the fourth word is assigned to the RD-8's open and closed hat sounds.
  • "Buchla" : the fifth word is assigned to the JU-06A. "Buchla" produces a six-note pattern.
  • "changed" : the sixth word is assigned to the RD-8s other percussion sounds. "changed" produces a seven-note pattern.
  • "electronic" : the seventh word is assigned to the Pico System III, producing a melodic sound. "electronic" produces a ten-note pattern.
  • "music" : the eighth word is used to randomize the Mimeophon, which is directly processing the Pico System III. "music" produces a five-note randomization pattern.
  • "forever." : this word has no impact, as everything past the eighth word is discarded.

Since every word is "spelled" and translated into notes/rests at sixteenth-note intervals, there is no strict meter in place...and polyrhythms are easily possible. If you type a comment in which every word is the same length, you'll get consistent repeating patterns, but keeping the length of individual words different will result in evolving, interlocking rhythms.

For the sake of producing generally "listenable" results, all pitches have been locked to a minor scale. This keeps things sounding generally melodic, but things can still get pretty crazy—try different combinations of words or phrases to see what happens. Shorter words will result in shorter patterns; longer words will result in longer patterns; and of course, there's no penalty for gibberish. That is to say, typing "aoiusdf*&(#&$^(@HSDO" might sound every bit as good as typing an actual word—just try things out and see what happens.

Note: YouTube's automatic comment filtering is a bit weird! Sometimes completely harmless comments get flagged for review and don't show up on our end—so if you notice that your comment hasn't come through, feel free to try typing something else.

For Those Who Want to Know More

This is a Google Sheet that contains a legend for what each character means within each word. Note that for the most part, every other character in the list is interpreted as a rest, giving relatively equal probability that any given character will or will not produce sound.

For the Grandmother, JU-06A, and Pico System III, lowercase letters produce an ascending minor scale and rests. Capital letters produce the same notes an octave higher than their lowercase counterparts. Numbers and special characters continue the scale into higher octaves. We've set the Grandmother to operate primarily in the bass range, the JU-06A to operate in the mid range, and the Pico System III to produce relatively high pitches—they're all displaced from one another by an octave or two.

For the RD-8's kick and snare, characters each correspond to a trigger or a rest. There's no pitch variation here...just "on/off" control. For the RD-8's hats, characters are interpreted as rests, open hat triggers, or closed hat triggers. For the percussion, characters are interpreted as rests, hi/mid/low tom triggers, rim shot triggers, cowbell triggers, or clap triggers. There's a slightly higher probability of rim shots than the other sounds...because I like rim shot sounds.

For the Mimeophon, characters correspond to randomization triggers or rests. These follow the same pattern as the other "on/off" style channels. The Mimeophon is only applied to the Pico System III, turning it into a somewhat glitcher, more ambient textural sound.

If you want to "solo" a particular instrument, you can insert a "rest" character as a placeholder. For instance, the letter "b" is a rest on all instruments—so if you wanted to just sequence the Pico System III, for instance, you could type "b b b b b b alligator". If you want to hear the same sequence with a four-on-the-floor kick pattern, you could change it to "b abbb b b b b alligator". If you wanted to add a snare on every other beat, you could type "b abbb bbbbabbb b b b alligator". Note: some special characters (such as semicolons, for instance) are interpreted as "skip instrument" commands—so there are plenty of ways to mute specific instruments if needed.

Similarly, if you type fewer than eight words, all instruments beyond the last word will be silent. So the comment "alligator" will produce only a Moog bassline; "alligator pear", on the other hand, will produce a polyrhythmic bass and kick pattern.

We've had a blast putting together this experiment, and hope you'll enjoy playing our setup from the comfort of your home or office. Feel free to hang out and try different combinations of letters and words, and feel free to let us know some of the best comments you come up with!