Skip to content

Instantly share code, notes, and snippets.

@jordanorelli
Created May 16, 2011 19:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jordanorelli/975144 to your computer and use it in GitHub Desktop.
Save jordanorelli/975144 to your computer and use it in GitHub Desktop.
a script for playing the drum set on ronwinter.tv/drums.html
--visit ronwinter.tv/drums.html, let the swf load, start the script, and then click inside the swf to put keyboard focus on Flash. The script will take control of your keyboard and play the drumset. The timing is really crappy.
global tempo
set tempo to 120
--establish quarter note delay time
global q
set q to 60 / tempo
--establish eighth note delay time
global e
set e to q / 2
--establish sixteenth note delay time
global s
set s to e / 2
--establish thirty-second note delay time
--yeah, that seems retarded, but doing math inside
--of a musical phrase fucks with the timing, so I've
--had to settle for avoiding math at all costs.
global t
set t to s / 2
global patLoop
set patLoop to 1
do shell script "/bin/sleep 3"
tell application "System Events"
delay 0.2
--measures 1 through 4
repeat 4 times
--1 e---e
keystroke "e" & "q"
delay s
repeat 2 times
keystroke "q"
delay s
end repeat
keystroke "e" & "q"
delay s
--2 y-e-
keystroke "y" & "q"
delay s
keystroke "q"
delay s
keystroke "e" & "q"
delay s
keystroke "q"
delay s
--3 e---
keystroke "e" & "q"
delay s
repeat 3 times
keystroke "q"
delay s
end repeat
--4 y---
keystroke "y" & "q"
delay s
repeat 3 times
keystroke "q"
delay s
end repeat
end repeat
--measures 5 though 8
repeat while patLoop < 5
--1 i--e
keystroke "i" & "q"
delay s
repeat 2 times
keystroke "q"
delay s
end repeat
keystroke "e" & "q"
delay s
--2 y-e-
keystroke "y" & "q"
delay s
keystroke "q"
delay s
keystroke "e" & "q"
delay s
keystroke "q"
delay s
--3 e---
if patLoop = 4 then
keystroke "e" & "q"
delay s
keystroke "q"
delay s
keystroke "h" & "q"
delay s
keystroke "q"
delay s
else
keystroke "e" & "q"
delay s
repeat 3 times
keystroke "q"
delay s
end repeat
end if
--4
if patLoop = 1 or patLoop = 3 then
keystroke "y" & "q"
delay s
keystroke "q"
delay s
keystroke "c" & "q"
delay s
keystroke "q"
delay s
else if patLoop = 2 then
keystroke "y" & "q"
delay s
keystroke "q"
delay s
keystroke "q"
delay s
keystroke "q"
delay s
else if patLoop = 4 then
keystroke "y" & "q"
delay s
keystroke "q"
delay s
keystroke "q"
delay s
keystroke "h" & "q"
delay s
end if
set patLoop to patLoop + 1
end repeat
--measures 9 through 16
repeat 2 times
set patLoop to 1
repeat while patLoop < 5
if patLoop = 4 then
repeat 2 times
keystroke "x" & "q"
delay s
repeat 3 times
keystroke "q"
delay s
end repeat
end repeat
repeat 2 times
keystroke "x" & "q"
delay s
keystroke "q"
delay s
keystroke "x" & "q"
delay s
keystroke "q"
delay s
end repeat
else
--1 iqqe
keystroke "i" & "q"
delay s
keystroke "q"
delay s
keystroke "q"
delay s
keystroke "w" & "q"
delay s
--2 yqeq
keystroke "y" & "q"
delay s
keystroke "q"
delay s
keystroke "e" & "q"
delay s
keystroke "q"
delay s
--3 eqqq
keystroke "e" & "q"
delay s
keystroke "r" & "q"
delay s
keystroke "h" & "q"
delay s
keystroke "r" & "q"
delay s
if patLoop = 1 or patLoop = 3 then
--4 yqqq
keystroke "y" & "q"
delay s
keystroke "r" & "q"
delay s
keystroke "c" & "q"
delay s
keystroke "h" & "q"
delay s
else
keystroke "q"
delay s
keystroke "r" & "q"
delay s
keystroke "q"
delay s
keystroke "h" & "q"
delay s
end if
end if
set patLoop to patLoop + 1
end repeat
end repeat
--measures 17 and 18
set patLoop to 1
repeat while patLoop < 5
keystroke "m" & "q"
delay s
keystroke "q"
delay s
keystroke "q"
delay t
keystroke "q"
delay t
keystroke "q"
delay s
if patLoop = 1 or patLoop = 3 then
keystroke "j"
delay s
keystroke ";"
delay s
keystroke ";"
delay s
keystroke ";"
delay s
else if patLoop = 2 then
keystroke "j"
delay s
keystroke ";"
delay s
keystroke "n"
delay s
keystroke ";"
delay s
else
keystroke "j"
delay s
keystroke ";"
delay s
keystroke "n"
delay s
keystroke "g"
delay s
end if
set patLoop to patLoop + 1
end repeat
repeat 2 times
set patLoop to 1
repeat while patLoop < 5
if patLoop = 4 then
repeat 2 times
keystroke "x" & "q"
delay s
repeat 3 times
keystroke "q"
delay s
end repeat
end repeat
repeat 2 times
keystroke "x" & "q"
delay s
keystroke "q"
delay s
keystroke "x" & "q"
delay s
keystroke "q"
delay s
end repeat
else
--1 iqqe
keystroke "i" & "q"
delay s
keystroke "q"
delay s
keystroke "q"
delay s
keystroke "w" & "q"
delay s
--2 yqeq
keystroke "y" & "q"
delay s
keystroke "q"
delay s
keystroke "e" & "q"
delay s
keystroke "q"
delay s
--3 eqqq
keystroke "e" & "q"
delay s
keystroke "r" & "q"
delay s
keystroke "h" & "q"
delay s
keystroke "r" & "q"
delay s
if patLoop = 1 or patLoop = 3 then
--4 yqqq
keystroke "y" & "q"
delay s
keystroke "r" & "q"
delay s
keystroke "c" & "q"
delay s
keystroke "h" & "q"
delay s
else
keystroke "q"
delay s
keystroke "r" & "q"
delay s
keystroke "q"
delay s
keystroke "h" & "q"
delay s
end if
end if
set patLoop to patLoop + 1
end repeat
end repeat
keystroke "m"
end tell
@jordanorelli
Copy link
Author

this is the first music-related code I ever wrote. It's really heinous.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment