0:00/0:00
// Countdown — Rush
// 134.2 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 8 "Bass Track" named as a bass, played on electric bass finger (its lead 2 sawtooth patch is not one)
// note: Full arrangement: all 172 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(134.2/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.
// bass · electric bass finger · "Bass Track"
const bass = note(`<
A@63 B@2 C@3 D@6 E@3 F G@2 H@8 I@2 J K L@2 M@6 N@3 O P Q@2 R S T U@2 V W@2 X Y Z AA AB AC AD AE@5 AF@8 AG@4 AH AI@5
AJ@2 ~@25
>`.pickRestart({
A: "[e1,e2] ~@2 [e1,e2]@4 ~@2 [e1,e2]@4 ~@2 [e1,e2]@4 ~@2 [e1,e2] ~@2", // E
B: "[[e1,e2] ~@2 [e1,e2]@4 ~@2 [e1,e2]@4 ~@2 [e1,e2]@4 ~@2 [e1,e2] ~ d2@24 ~]/2", // E
C: "[b2@23 c3@24 b2@10 a2@8 g2@6 ~]/3", D: "[d2@23 b2@24 c3@24 c2@24 e2@49]/6",
E: "[a1@47 g1@5 ~@2 g1@5 ~ g1@5 g1@4 ~@3]/3", F: "g1@5 g1@4 ~@3 g1@4 ~@2 g1@4 ~@2",
G: "[a1@8 a1@14 a1@9 a1@7 a1@6 a1@3 e1]/2",
H: "[~ e1@3 e1@3 ~ e1@11 e1@3 e1@8 e1@7 e1@6 e1@4 a1@8 a1@12 a1@27 f1@5 ~@2 f1@4 ~@2 f1@4 ~@2 f1@4 ~@2 f1@4 ~@2 f1@4 ~@3 f1@4 ~@2 f1@4 ~ c2@9 c2@14 c2@24 ~@2]/8",
I: "[~@8 [a3,d4]@14 ~@3 b3@21 ~@2, ~@4 d3@19 ~, ~@8 g3@7 ~]/2", J: "[c3,f3,a3]@11 ~", K: "[g3,b3]@5 ~, d3@11 ~",
L: "[d4@11 [g3,b3]@10 ~@3, d3@15 ~, a3@5 ~@7]/2", // G
M: "[~ [a2,e3]@3 ~@7 g2@8 ~ [a2,e3]@14 [f2,c3]@34 ~ [g2,d3]@8 [a2,e3]@16 [f2,c3]@32 [g2,d3]@9 [a2,e3]@10, ~@11 c3@5 ~@128]/6", // A5 F5 G5 A5 F5 G5 A5
N: "[~@5 [f2,c3]@34 [g2,d3]@8 [a2,e3]@23 e2@2]/3", O: "~ e2@6 e2@6 e2@6 e2@3 ~ e2",
P: "~@2 e2@4 ~@2 e2@5 e2@6 ~ e2@2 ~ e2", Q: "~@2 e2@5 ~ e2@5 ~ e2@5 e2@3 e2@2", R: "~@2 e2@4 ~@2 e2@5 e2@6 e2@3 e2@2",
S: "~@2 e2@5 ~ e2@5 e2@6 ~ e2@3 e2", T: "~@2 e2@5 ~ e2@5 ~ e2@5 ~ e2 ~@2 e2", U: "~@2 e2@5 ~ e2@5 ~ e2@5 e2@3 ~ e2",
V: "~@2 e2@4 ~@2 e2@5 ~ e2@5 e2@3 ~ e2", W: "[~@2 e2@5 ~ e2@5 ~@2 e2@4 e2@3 ~ e2@2 ~@2 e2@4 ~ e2@5 ~@2 e2@8 ~]/2",
X: "~ [e1,f1] ~ e1@5 e1@7 e1@6 e1@2 ~", Y: "~ e1 ~@2 e1@4 e1@6 e1@6 e1@2 ~@2",
Z: "e1 ~@2 e1@4 ~@2 e1@5 e1@5 ~ e1 ~@2 e1", AA: "~@2 e1@4 ~@2 e1@4 ~@2 e1@5 ~ e1 ~@2 e1",
AB: "~@2 e1@5 ~@2 e1@5 ~ e1@5 ~ e1 ~ e1", AC: "~@3 e1@5 e1@4 ~@2 e1@5 e1@2 ~@2 e1",
AD: "~@2 e1@5 ~ e1@5 ~@2 e1@5 ~ e1 ~ e1",
AE: "[~@2 e1@4 ~@2 e1@5 ~ e1@4 ~@2 e1 ~@2 e1@3 ~@21 b2@24 c3@23 ~ b2@9 a2@8 g2@7 ~]/5",
AF: "[d2@23 b2@24 c3@23 c3@24 ~ e2@23 e2@10 e2@8 ~ e2@6 a2@47 g2@2]/8",
AG: "[~@5 g2@5 ~ g2@5 ~ g2@4 ~@2 g2@11 g1@6 g2@4 ~@3 a2@9 a1@6 a2@6 ~ a1@2 a2@5 a2@4 a1@6 a2@8 e2@2]/4",
AH: "~ e2@2 ~ e2@3 e2@6 e2@5 ~ e2@3 e2@2",
AI: "[~ e1@3 e2@4 e1@6 e2@9 a1@2 a1@3 a1@3 ~ a1@23 a1@9 ~ a1@5 f1@5 ~@2 f1@5 ~ f1@4 ~@2 f1@4 ~@2 f1@4 ~@2 f1@5 ~ f1@4 ~@2 f1@4 ~@3]/5",
AJ: "[e1 ~@8 c1@13 c2@6 ~@3 c2@6 c1@2 ~@4 c1@2 ~@3, ~@29 c1@4 ~@6 c2@6 ~@3]/2",
})).s("gm_electric_bass_finger").gain(0.36)
// bass · electric bass finger
const bass_2 = note(`<
~@64 A B C D E F G H I@2 J@2 K@2 J L M N O@2 P Q R S T U V W T X@8 Y@8 Z@5 AA@8 AB AC AD AE@8 AF@8 AG@5 AH@8 AI@8 AJ@8
AK@2
>`.pickRestart({
A: "d2 ~@2 d2@3 c#2@3 d2@6 c#2@3 d2@3 a1@3", B: "g1 ~@2 g1@3 f#1@3 g1@6 f#1@3 g1@3 f#1@3",
C: "f1 ~@2 f1@3 e1@3 f1@6 e1@3 f1@3 f#1@3", D: "g1!2 f#1 g1@2 f#1 g1 c#2", E: "d2!2 c#2 d2@2 c#2 d2 a1",
F: "g1!2 f#1 g1@2 f#1 g1 f#1", G: "f1!2 e1 f1@2 e1 f1 g1", H: "c2!8", I: "e2!8", J: "a1!8", K: "g1!4",
L: "a1 b1 c#2 d2 e2 d2 c#2 d2", M: "e2!3 e2@2 e2!3", N: "e2 d2!2 d2@2 e2@2 b1",
O: "[a1!2 g#1 a1@2 g2 d2 f#2@2 d2 a1 e2@3 b1 a1]/2", P: "f1 ~ f1 ~ f1 e1 f1 ~", Q: "f1 ~ f1 ~ f1 e1 f1 g1",
R: "c2@3 c2@3 c2 g1", S: "c2!2 b1 c2@5", T: "d2@3 d2@3 d2@2", U: "g1@3 g1@3 g1@2", V: "f1@3 f1@3 f1@2",
W: "g1@3 g1@3 c2@2",
X: "[g1@8 g1@9 g1@6 f1@12 g1@9 a1@15 f1@9 f1@3 c2@3 b1@3 a1@3 f1@12 g1@9 a1@15 f1@9 f1@3 c2@3 b1@3 d2@3 f1@12 g1@9 a1@15 f1@3 b1@3 a1@3 g1@3 c2@3 b1@3 a1]/8",
Y: "[~@2 f1@12 g1@3 g1@3 ~@3 a1@21 e1@3 [e1,e2]@3 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]@3 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]@3 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]@3 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]@3 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]@3 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]]/8", // E
Z: "[~@2 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]@3 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]@3 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]@3 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]@3 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 [e1,e2]]/5", // E
AA: "[~@2 [e1,e2]@6 [e1,e2]@6 [e1,e2]@6 [e1,e2]@3 e1@9 e1@3 e2@9 e2@3 e2@9 e2@3 e2@3 e1@6 e1@3 e1@9 e1@3 e2@9 e1@3 e1@9 e2@3 e2@3 e1@6 e1@3 e1@9 e1@3 e2@9 e1@3 e2@9 e2@3 e2@3 e1@6 e1@3 e1@9 e1@3 e2@9 e2@3 e2]/8", // E
AB: "~@8 e2@3 e2@3 e1@6 e1@3 d2", AC: "~@2 d2@3 c#2@3 d2@6 c#2@3 d2@3 a1@3 g1",
AD: "~@2 g1@3 f#1@3 g1@6 f#1@3 g1@3 f#1@3 f1",
AE: "[~@2 f1@3 e1@3 f1@6 e1@3 f1@3 f#1@3 g1@3 g1@3 f#1@3 g1@6 f#1@3 g1@3 c#2@3 d2@3 d2@3 c#2@3 d2@6 c#2@3 d2@3 a1@3 g1@3 g1@3 f#1@3 g1@6 f#1@3 g1@3 f#1@3 f1@3 f1@3 e1@3 f1@6 e1@3 f1@3 g1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 a1]/8",
AF: "[~@2 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 g1@6 g1@6 g1@6 g1@6 g1@6 g1@6 g1@6 g1@6 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 b1@3 c#2@3 d2@3 e2@3 d2@3 c#2@3 d2@3 e2@3 e2@3 e2@3 e2@6 e2@3 e2@3 e2@3 e2@3 d2@3 d2@3 d2@6 e2@6 b1@3 a1]/8",
AG: "[~@2 a1@3 g#1@3 a1@6 g2@3 d2@3 f#2@6 d2@3 a1@3 e2@9 b1@3 a1@3 f1@3 ~@3 f1@3 ~@3 f1@3 e1@3 f1@3 ~@3 f1@3 ~@3 f1@3 ~@3 f1@3 e1@3 f1@3 g1@3 c2@9 c2@9 c2@3 g1@3 c2]/5",
AH: "[~@2 c2@3 b1@3 c2@15 d2@9 d2@9 d2@6 g1@9 g1@9 g1@6 f1@9 f1@9 f1@6 g1@9 g1@9 c2@6 d2@9 d2@9 d2@6 g1@9 g1@9 g1@6 f1@9 f1@9 f1@6 g1]/8",
AI: "[~@8 g1@9 c2@6 d2@9 d2@9 d2@6 g1@9 g1@9 g1@6 f1@9 f1@9 f1@6 g1@9 g1@9 c2@6 d2@9 d2@9 d2@6 g1@9 g1@9 g1@6 f1@9 f1@9 f1@6 g1]/8",
AJ: "[~@8 g1@9 c2@6 f1@12 g1@9 a1@15 f1@9 f1@3 c2@3 b1@3 a1@3 f1@12 g1@9 a1@15 f1@9 f1@3 c2@3 b1@3 d2@3 f1@12 g1@9 a1@15 f1@3 b1@3 a1@3 g1@3 c2@3 b1@3 a1]/8",
AK: "[~@2 f1@12 g1@3 g1@3 ~@3 a1@10 ~@15]/2",
})).s("gm_electric_bass_finger").gain(0.64)
// chords · pad poly
const pad_poly = note(`<
~@48 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 E F G H E F G I J K L@2 M@2 N O P Q R@2 S@2 T@2 U@2 V@2 W@2 X@4 ~@8 Y@2 Z@7 AA@3
AB@8 AC@8 AD@8 AE@5 ~@11 AF@2 ~@2 AG ~@9
>`.pickRestart({
A: "[[e3,b3,d4]@15 e3]/2", B: "[[a3,c#4,e4]@15 e3]/2", C: "[[g3,b3,d4]@15 e3]/2", D: "[[d3,f#3,a3]@15 e3]/2",
E: "[f#3,a3,d4,d5]", F: "[d4,g4,b4,b5]", G: "[f4,a4,c5,c6]", H: "[g4,b4,b5]@3 [a4,a5]@3 [g4,g5]@2, d4@3 ~",
I: "[c4,e4,g4,c6]", J: "[e4,e5]@7 [e4,e5]", K: "[e4,e5]", L: "[e3,a3,c#4]!8", M: "[g3,b3,d4] [d3,g3,b3]",
N: "[e3,a3,c#4]@3 [e3,a3,c#4] e4@2 a3@2", O: "[e3,a3,c#4]@3 [e3,a3,c#4] e4@2 c#4@2", P: "e4@3 e4@3 d4 e4",
Q: "e4@2 [d4,e4] [d4,e4]@2 [d4,e4]@3", R: "[[e3,a3,c#4]!3 [e3,a3,c#4]@2 b3@2 [a#3,c#4]@2 a3 e3 e4@2 b3 a3 e3]/2",
S: "[a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~", T: "[g3,c4,d4,e4]@3 [g3,c4,d4,e4]@5",
U: "[d5@3 a4@3 d4@2 d5@3 a4@3 d4@3 d5@3 d4@3 b4@3 ~ g4@2 d4@3 b4@3 g4@3 d4@3 b4@2 ~ g4@2 f4 ~, ~@43 a4@2 ~@3]/2",
V: "[c5@2 a4@3 f4@3 c5@3 a4@3 f4@3 c5@3 f4@3 b4@3 g4@3 d4@3 b4@3 g4@3 d4@3 ~@2 g4@5, ~@41 b4@2 ~@5, ~@21 a4 ~@2]/2",
W: "[d5@3 a4@2 d4@3 ~ d5@2 a4@3 d4@3 d5@3 d4@3 b4@3 g4@3 d4@3 b4@3 g4@3 d4@3 ~ a4 ~@2 f4@2 ~, ~@41 b4@3 g4@2 ~@2]/2",
X: "[c5@15 ~]/4", Y: "[~@23 [e3,b3,e4]@25]/2",
Z: "[~@22 [e3,a3,c#4]@46 ~@3 [d3,b3]@46 ~@2 [d3,f#3,a3]@45 ~@4, ~@71 g3@44 ~@53, ~@71 c4@2 ~@95]/7", // A G D
AA: "[~@4 e4@43 a3@25, e3, b3@44 ~@3 c#4@23 ~@2]/3",
AB: "[c#4@19 ~@4 [d3,b3]@46 ~@2 [d3,f#3,a3]@48 [f#3,a3,d4,d5]@24 [d4,g4,b4,b5]@24 [f4,a4,c5,c6]@24 [d4,g4,b4,b5], ~@23 g3@42 ~@127]/8", // G D G F G
AC: "[~@8 [a4,a5]@9 [g4,g5]@6 [f#3,a3,d4,d5]@24 [d4,g4,b4,b5]@24 [f4,a4,c5,c6]@24 [c4,e4,g4,c6]@24 [e4,e5]@21 [e4,e5]@3 [e4,e5]@24 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]]/8", // A G D G F C E A
AD: "[~@2 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [g3,b3,d4]@12 [d3,g3,b3]@12 [g3,b3,d4]@12 [d3,g3,b3]@12 [e3,a3,c#4]@9 [e3,a3,c#4]@3 e4@6 a3@6 [e3,a3,c#4]@9 [e3,a3,c#4]@3 e4@6 c#4@6 e4@9 e4@9 d4@3 e4@3 e4@6 [d4,e4]@3 [d4,e4]@6 [d4,e4]@9 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@3 [e3,a3,c#4]@6 b3@6 [a#3,c#4]@4]/8", // A G A Dsus2 A A#m
AE: "[~@2 a3@3 e3@3 e4@6 b3@3 a3@3 e3@3 [a3,c4]@3 ~@3 [a3,c4]@3 ~@3 [a3,c4]@3 ~@3 [a3,c4]@3 ~@3 [a3,c4]@3 ~@3 [a3,c4]@3 ~@3 [a3,c4]@3 ~@3 [a3,c4]@3 ~@3 [g3,c4,d4,e4]@9 [g3,c4,d4,e4]@15 [g3,c4,d4,e4]@9 [g3,c4,d4,e4]@15 ~]/5", // Am C
AF: "[~@19 [a1,b1,c2,d2] ~ [e2,f2,f#2,g2,g#2,a2,b2] [a#2,c3,c#3,d3,d#3,e3,f3,f#3,g3,g#3,a3,a#3,b3] [c4,c#4,d4,d#4,e4] ~ c5@6 ~@17, ~@23 a4@4 ~@21, ~@23 [f4,g4]@2 b4@4 ~@19]/2", // D7 E Fsus2
AG: "~@9 [f2,g2,a2,b2] [c3,d3,e3,f3] [g3,a3,b3,c4,d4] ~ e4 c5@3 ~@7, ~@13 [a4,b4]@4 ~@7, ~@13 [f4,g4]@2 ~@9", // G7 Dm7 G Asus2 Fsus2
})).s("gm_pad_poly").gain(0.32)
// other · pad poly
const pad_poly_2 = note("<~@146 A@5 B@5 C@4 D@2 E@7 ~@3>".pickRestart({
A: "[~@23 d5@3 a4@3 d4@3 d5@3 a4@3 d4@3 d5@3 d4@3 b4@3 g4@3 d4@3 b4@3 g4@3 d4@3 b4 ~ a4 g4 ~ f4 c5@3 a4@3 f4@3 c5@3 a4@3 f4@3 c5@3 f4@3 b4@3 g4@3 d4@3 b4@3 g4@3 d4@3 b4 ~ a4 g4@3 ~]/5",
B: "[d4@2 a3@3 ~ d3@2 d4@3 a3@3 d3@3 d4@3 d3@3 b3@3 g3@3 d3@3 b3@3 g3@3 d3@3 b3 ~ a3 g3 ~ f3 c4@5 ~@4 e4@3 f4@4 ~ g4@4 a4@3 b4@3 ~ c5@2 d5@3 e5@3 d5@3 c5@3 b4@3 g4@3 a4@9 g4@5 ~ f4@5 e4@3 ~ g4, ~@26 d4@3 ~@31]/5",
C: "[~ e4@2 g4 f4 ~ e4 a4 f4 ~ e4 d4@12 g4@2 f4@2 ~ a4@2 ~ f4 ~ b4@2 a4 g4 c5@2 b4 a4 ~ d5@2 c5 b4 ~@2 d5@2 ~ f5@2 e5 ~ d5 ~@2 c6@10 a5 ~ b5 c6@5 b5@3 a5@4 b5@5 a5@4 g5@3 ~, f4@2 ~@25 e4@2 ~ g4@2 ~@15 e5@2 ~ c5@2 ~@44]/4",
D: "[e5@4 f5@4 g5@3 f5@3 e5@3 d5@3 e5 f5 e5 d5@8 c5 d5 c5@7 ~ b4@6 d5]/2",
E: "[c5@2 b4@2 ~ d5 c5 ~ f5 e5 d5@2 ~ c6@141 ~@14, ~@2 e5 ~@81]/7",
})).s("gm_pad_poly").gain(0.44)
// other · electric guitar clean
const electric_guitar_clean = note("<~@94 A@2 B@7 ~@60 A@2 C@7>".pickRestart({
A: "[~@5 [b2,b3]@3 [a2,a3]@3 [g2,g3]@3 [f2,f3]@3 [b2,b3]@9 [e2,e3]@3 [b2,b3]@3 [g2,g3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [g2,g3]@3 ~]/2", // B A G F B E B G …
B: "[~@2 [e2,e3]@3 [b2,b3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [a2,a3]@3 [g2,g3]@3 [f2,f3]@3 [b2,b3]@9 [e2,e3]@3 [b2,b3]@3 [g2,g3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [g2,g3]@3 ~@3 [e2,e3]@3 [b2,b3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [a2,a3]@3 [g2,g3]@3 [f2,f3]@3 [b2,b3]@9 [e2,e3]@3 [b2,b3]@3 [g2,g3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [g2,g3]@3 ~@3 [e2,e3]@3 [b2,b3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [a2,a3]@3 [g2,g3]@3 [f2,f3]@3 [b2,b3]@24 ~@4]/7", // E B F B A G F B …
C: "[~@2 [e2,e3]@3 [b2,b3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [a2,a3]@3 [g2,g3]@3 [f2,f3]@3 [b2,b3]@9 [e2,e3]@3 [b2,b3]@3 [g2,g3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [g2,g3]@3 ~@3 [e2,e3]@3 [b2,b3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [a2,a3]@3 [g2,g3]@3 [f2,f3]@3 [b2,b3]@9 [e2,e3]@3 [b2,b3]@3 [g2,g3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [g2,g3]@3 ~@3 [e2,e3]@3 [b2,b3]@3 ~@3 [f2,f3]@3 [b2,b3]@3 [a2,a3]@3 [g2,g3]@3 [f2,f3]@3 [b2,b3]@13 ~@15]/7", // E B F B A G F B …
})).s("gm_electric_guitar_clean").gain(0.26)
// drums · kick
const kick = s("bd").struct(`<
~@14 A ~@9 B@16 C@7 D B@7 E B F B C G C G H I@2 J K I@2 J L M N M O P Q P R S T U V W@2 T ~ I X I@3 Y Z AA AB AC AD AE
AF AG AH AI@11 AJ AK AL AK AM AK AN AK AO AP@2 AQ@2 AP@2 AR AS AT AU AV AS AW AX AW AY AZ BA BB BC BD BE BA AS AP BF
AP@3 BF AP@3 BF AP@3 BF AP@2 Z AA AB AC AD AE AF AG ~
>`.pickRestart({
A: "x", B: "x!2 ~ x ~ x ~ x", C: "~@3 x ~ x ~ x", D: "~@3 x ~ x ~@2", E: "x!2 ~ x ~@3 x", F: "~@2 x!2 ~ x ~ x",
G: "x ~@2 x ~@3 x", H: "~ x ~ x ~ x ~ x", I: "x ~@8 x ~@5 x!2 ~@7", J: "x ~@8 x ~@5 x!2 ~@4 x ~@2",
K: "x ~@2 x ~ x ~ x", L: "~ x!7", M: "x!5 ~ x!2", N: "~ x!2 ~ x ~ x ~", O: "~ x!3 ~@4", P: "x ~@2 x!2 ~",
Q: "x ~@3 x ~@7 x ~@3 x ~@2 x ~@4", R: "x ~ x ~@2 x ~@6", S: "~ x!2 ~@2 x ~@2", T: "x ~@2 x ~ x ~@2",
U: "~ x!3 ~ x ~@2", V: "~ x!3 ~ x ~ x", W: "~@10 x ~@4 x ~@5 x ~@2", X: "x ~@8 x ~@3 x ~ x!2 ~@7",
Y: "x ~@7 x ~@2 x ~@11 x", Z: "~@11 x ~@2 x ~@5 x ~@3", AA: "~@2 x ~@8 x ~@12", AB: "~@2 x ~@5 x ~@11 x ~@2 x",
AC: "~@5 x ~@5 x ~@8 x ~@3", AD: "~@7 x ~@5 x ~@3 x ~@6", AE: "~@5 x ~@2 x ~@5 x ~@5 x ~@3",
AF: "~@5 x ~@9 x!2 ~@3 x ~@2 x", AG: "~@2 x ~@17 x ~@2 x", AH: "~@5 x", AI: "~@4 x ~@2 x ~@2 x ~", AJ: "~@8 x ~@14 x",
AK: "~@2 x ~@2 x", AL: "~@8 x ~@5 x ~@5 x ~@2 x", AM: "~@2 x ~@2 x ~@8 x ~@2 x ~@5 x",
AN: "~@2 x ~@5 x ~@5 x ~@5 x ~@2 x", AO: "~@14 x ~@2 x ~@2 x ~@2 x", AP: "~@8 x ~@5 x ~ x ~@6 x",
AQ: "~@8 x ~@5 x ~ x ~@3 x ~@2 x", AR: "~@4 x ~@2 x!2 ~ x ~", AS: "~@23 x",
AT: "~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~@3", AU: "~@2 x ~@2 x ~@5 x ~@11 x",
AV: "~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@6", AW: "~@11 x ~@4 x ~@6 x", AX: "~@4 x ~@6 x ~@4 x ~@2 x ~@3 x",
AY: "~@4 x ~@3 x ~@4 x ~@3 x ~@6", AZ: "~@2 x ~@2 x ~@8 x ~@8 x", BA: "~@4 x ~@2 x ~@4",
BB: "~@2 x ~@2 x ~@2 x ~@5 x ~@9", BC: "~@2 x ~@2 x ~@2 x ~@5 x ~@5 x ~@3", BD: "~@5 x ~ x ~@2 x ~",
BE: "~@10 x ~@3 x ~@5 x ~@2 x", BF: "~@8 x ~@4 x!2 ~ x ~@6 x",
})).gain(0.69)
// drums · snare
const snare = s("sd").struct(`<
~@3 A ~ B C D E F G H I J K L M N@7 ~@7 O ~@8 P@7 Q O@7 R O S O S O S O T U@3 V U@3 W B I B X U Y U Z AA AB AC@2 AD@2
U I U@3 AE U AF AG AH AI AJ AK AL AM AN AO AP@11 AQ AL AR AL AS AL AR AL AT AG@6 AU AV AW ~ AW ~ AG AX AG AY AZ BA
BB@2 BC BD AG AR AG@3 BE AG@3 BE AG@3 BE AG@3 BE AG AH AI AJ AK AL AM AN ~
>`.pickRestart({
A: "~@4 x ~@2 x", B: "~@5 x ~@2", C: "~ x ~@5 x", D: "~ x!2 ~ x!2 ~ x", E: "x ~@6 x", F: "x ~@2 x ~@8 x!5 ~@4 x ~@2",
G: "x ~@20 x!2 ~", H: "x!2 ~ x!5 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~@2", I: "x", J: "~@12 x!10 ~@2", K: "x ~@20 x!3",
L: "x ~@2 x ~@2 x ~@5 x!2 ~ x!2 ~ x!2 ~ x ~@2", M: "~ x ~ x ~ x ~ x", N: "x!2 ~ x ~ x ~ x", O: "~ x",
P: "x!3 ~ x ~ x ~", Q: "x ~@2 x ~@2 x ~@5 x ~@5 x ~@2 x!2 ~", R: "~@12 x ~@2 x!2 ~ x ~@5", S: "x!2",
T: "x ~@5 x ~@5 x ~@4 x!2 ~@5", U: "~ x ~ x", V: "~@6 x ~@6 x ~@4 x ~@5", W: "x ~@2 x!5",
X: "x ~@9 x ~ x ~@2 x!2 ~@2 x ~ x!2 ~", Y: "~@3 x ~@5 x ~ x", Z: "~@6 x ~@5 x ~@2 x!2 ~@2 x ~ x ~@2",
AA: "x ~@2 x ~@2 x ~", AB: "~@2 x!2 ~@5 x ~@2", AC: "x ~@2 x", AD: "x!4", AE: "~@6 x ~@6 x ~@4 x ~@2 x!2 ~",
AF: "~@5 x ~@18", AG: "~@5 x ~@11 x ~@6", AH: "~@5 x ~@11 x ~@2 x ~@2 x", AI: "~@5 x ~@8 x ~@9", AJ: "~ x ~@5 x ~@4",
AK: "~@2 x ~@2 x ~@5 x ~@11 x", AL: "~@11 x ~@11 x", AM: "~@11 x ~@5 x ~@6", AN: "~@5 x ~@2 x ~ x ~@2 x!2 ~@9",
AO: "~@23 x", AP: "~@2 x ~@2 x ~@5 x ~@5 x ~@5 x", AQ: "~@2 x ~@2 x ~@4 x!2 ~@2 x ~@2 x ~@6", AR: "~@11 x ~@12",
AS: "~@10 x!2 ~@12", AT: "~@5 x ~@5 x ~@12", AU: "~@5 x ~@11 x ~@5 x", AV: "~@8 x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~",
AW: "~@7 x ~@4", AX: "~@5 x ~@11 x ~@4 x ~", AY: "~@5 x ~@4 x ~@3 x ~@4 x ~@3 x", AZ: "~@8 x ~@8 x ~@6",
BA: "~@4 x!2 ~@11 x ~@5 x", BB: "~@17 x ~@5 x", BC: "~@5 x ~@5 x ~@5 x ~@5 x", BD: "~@5 x ~@5 x ~@5 x ~@6",
BE: "~@5 x ~@7 x ~@3 x ~@2 x ~ x ~",
})).gain(0.69)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@3 A ~ B C D E F ~ G ~ H ~@57 I ~@21 G ~@2 J ~@33 K ~@34 J ~@6>".pickRestart({
A: "~@9 x!3 ~ x ~ x!2 ~ x ~@5", B: "~@18 x!5 ~", C: "x!2 ~@20 x ~", D: "x ~@12 x ~@2 x ~ x!2 ~@4", E: "~@11 x",
F: "~ x ~@16 x!2 ~@4", G: "~@7 x ~@4", H: "~@3 x!9 ~@12", I: "~ x!2 ~@5", J: "~ x ~@10", K: "~@2 x ~ x!2 ~ x ~@16",
})).gain(0.38)
// drums · low tom
const low_tom = s("lt").struct("<~@73 A ~@13 A ~@5 B ~@38 C ~ D ~@11 E ~@25>".pickRestart({
A: "~@21 x!2 ~", B: "~@17 x ~@2 x ~@3", C: "~@14 x ~@2 x ~ x!2 ~ x ~", D: "~@19 x!2 ~ x ~", E: "~@10 x!2",
})).gain(0.69)
// drums · hihat
const hihat = s("hh").struct(`<
~@24 A B@15 C@10 D C@3 D E C@2 D C@3 D E ~@7 D ~@4 F C D E ~@3 G ~@51 H I J I ~@3 K ~@29
>`.pickRestart({
A: "~@7 x", B: "x ~@6 x", C: "x!8", D: "~ x!7", E: "x!5 ~@3", F: "~@2 x!6", G: "~ x ~@2",
H: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", I: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3",
J: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", K: "~@5 x ~@18",
})).gain(0.61)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@24 [~@2 x!2] [~ x!3]!15 ~@23 [~@5 x!3] ~@7 x ~@100>").gain(0.08)
// drums · mid tom
const mid_tom = s("mt").struct("<~@73 A ~@13 B ~@13 C ~@29 D E ~ F ~@7 G ~@3 H ~@23 C ~>".pickRestart({
A: "~@12 x ~@2 x!2 ~@2 x ~@4", B: "~@16 x ~ x!2 ~@4", C: "~@19 x ~@4", D: "~@23 x", E: "~ x ~",
F: "~@2 x ~@5 x ~@5 x ~@2 x ~@6", G: "~ x ~@4", H: "~@16 x!2 ~ x ~@4",
})).gain(0.69)
// drums · open hat
const open_hat = s("oh").struct("<~@24 [~@3 x ~ x ~@2] [~ x ~ x ~ x ~@2]!15 ~@43 [~ x ~@6] ~@58 [~ x ~@10] ~@29>")
.gain(0.61)
// drums · high tom
const high_tom = s("ht").struct("<~@73 A ~@13 B ~@13 C ~@31 D ~@12 E ~@23 C ~>".pickRestart({
A: "~@3 x ~@4", B: "~@9 x!2 ~@2 x ~ x ~@8", C: "~@16 x!2 ~@6", D: "~@20 x ~@2 x", E: "~@7 x!2 ~@4 x!2 ~@9",
})).gain(0.69)
// drums · crash
const crash = s("cr").struct(`<
~@3 A ~@2 B ~ C ~ C ~ C ~ C ~@9 D ~@6 E ~@4 C ~ C ~@10 F C E C F C E C F C E C F C ~ C ~@3 C ~@2 C G C G C@2 ~ C ~ H I
J H F ~ C ~ K L@2 F C M N ~ O P Q ~ R S ~@4 M ~@7 M@2 P ~ T ~ U ~ T ~@3 M ~@2 M@2 V M P M ~ M ~@2 W O X O P Y ~ M Z@3
V Z@3 V Z@3 V Z@3 V N ~ O P Q ~ R S ~
>`.pickRestart({
A: "~@7 x", B: "~ x ~@6", C: "x", D: "x!2 ~@6", E: "~ x", F: "~@5 x ~@2", G: "x ~@4 x ~@2", H: "~@3 x ~@4",
// … 30 more lines
More by Rush
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.