Modular synthesizer with four rows of modules installed. Some messy cabling connects several of the modules. You too can play the synth shown in this picture. (Seriously!)

twitch plays the synth

Archived

This information is outdated and is here for preservation purposes. Recently, I teamed up with Memorecks to make a better version of Twitch Plays the Synth. Go here for the new manual. Click here to view and interact with the stream.

Original

Ever wanted to experiment with a modular synth? Looking for a way to get into electronic music? Even if you know nothing about music, twitch plays the synth is a project that allows anyone in the world to collaborate with others to create fun and interesting new music. Everyone is welcomed to play along!

The system allows the users to create melodies and control a few functions on a modular synth using commands sent through the live-stream's chat function. Using the syntax as described below, anyone can borrow my synthesizer and help me create music!

Creating Melodies

The main function of twitch plays the synth works like a text-programmable sequencer that creates standard and microtonal melodies. Each melody is composed using intervals that are relative to a tonal center using the following syntax:

 

"!m <u/d>-<interval>-<dur> <u/d>-<interval>-<dur> <u/d>-<interval>-<dur>..."

!m 

(constant) allows the Twitch bot to recognize this as a melody

<u/d>

("u" | "d") up or down; the direction the note will travel

<interval>

the amount of half steps the note will travel; this number must not exceed the bounds of the midi chart.

<dur>

duration multiplier (0.002 - 6.0); the note will be held for a given number of beats (1 beat = 1 quarter note). The following are some examples of beat multipliers that correspond to musical notation values:

 

dotted whole note   = 6

whole note          = 4

dotted half note    = 3

half note           = 2

dotted quarter note = 1.5

quarter note        = 1

dotted eighth note   = 0.75

eighth note          = 0.5

sixteenth note      = 0.25

thirty second note  = 0.125

 

triplet examples :

 

half note triplet    = 1.333

quarter note triplet = 0.666

eighth note triplet   = 0.333

 

Example (major scale in whole notes):

    "!m u-0-4 u-2-4 u-2-4 u-1-4 u-2-4 u-2-4 u-2-4 u-1-4"

 

Example (Laura's melody):

    "!m u-10-0.333 d-6-0.333 d-4-0.333 u-10-0.666 d-3-0.666 u-8-0.666 u-9-2 d-5-2 d-3-4"

Adjusting the Tonal Center

Issuing a simple command changes the sequencer's tonal center on the fly. This can allow for one to perform chord progressions.

"!c <interval>"

!c 

(constant) allows the Twitch bot to recognize this as a tonal center change

<interval> 

the amount of half steps the tonal center will travel

 

Example (move the tonal center a 5th above the current):

"!c 8"

Adjusting the Pitch Slew Rate

Measured in milliseconds; changing the slew rate greater than zero will result in a glide effect between pitches.

"!s <millis>-<beats>"

!s 

(constant) allows the Twitch bot to recognize this as a slew change

<millis> 

0-5000; the amount of slew time in milliseconds

<beats>

beats; how many quarter notes for the change to take place; Entering '0' will change to the setting immediately

 

Example (change the slew time to 300 milliseconds over 5 beats):

"!s 300 5"

Changing the Filter Frequency

The filter frequency on the VCF may be adjusted over a set period of time or immediately using the following syntax:

"!f <amount>-<beats>"

!f

(constant) allows the Twitch bot to recognize this as a frequency change

<amount>

0-127; the amount of voltage to give to the VCF

<beats>

beats; how many quarter notes for the change to take place; Entering '0' will change to the setting immediately

 

Example (change the frequency knob to 64 over 8 beats):

"!f 64-8"

Changing the Filter Resonance

The filter resonance on the VCF may be adjusted over a set period of time or immediately using the following syntax:

"!r <amount>-<beats>"

!r

(constant) allows the Twitch bot to recognize this as a resonance change

<amount>

0-127; the amount of voltage to give to the VCF

<beats>

beats; how many quarter notes for the change to take place; Entering '0' will change to the setting immediately

 

Example (change the resonance knob to 64 over 8 beats):

"!r 64-8"

Adding FM to the VCO

Frequency modulation (FM) may be added to the voltage control oscillator. Changing the following setting will control how drastically the frequency will be modulated by the LFO:

"!y <amount>-<beats>"

!y 

(constant) allows the Twitch bot to recognize this as a frequency modulation (FM) amount change

<amount>

0-127; how drastically the frequency will be modulated by the LFO

<beats>

beats; how many quarter notes for the change to take place; Entering '0' will change to the setting immediately

 

Example (change the FM amount to 55 over 2 beats):

"!y 55-2"

Adjusting the LFO Speed

The low frequency oscillator (LFO) affects the frequency of the VCO to add frequency modulation (see above). Use the following syntax to adjust the LFO speed:

"!l <amount>-<beats>"

!l (lower-case letter 'L') 

(constant) allows the Twitch bot to recognize this as a LFO speed change

<amount>

0-127; how fast the LFO will drive the FM

<beats>

beats; how many quarter notes to for the change to take place; Entering '0' will change to the setting immediately

 

Example (change the LFO speed to 88 over 20 beats):

"!l 88-20

Changing the Tempo

The overall tempo may be adjusted over a set period of time or immediately using the following syntax:

"!t <amount>-<beats>"

!t

(constant) allows the Twitch bot to recognize this as a tempo change

<amount>

1-1000; the new tempo in BPM (beats per minute)

<beats>

beats; how many quarter notes to for the change to take place; Entering '0' will change to the setting immediately

 

Example (change the tempo to 88 BPM over 12 beats):

"!t 88-12"