

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"