0:00/0:00
// Distant Early Warning — Rush
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 90 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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.
// other · piano
const piano = note(`<
~@5 A B@7 C@3 D E F G H ~@5 I@2 J K L@2 M N O P Q@2 R ~@5 S T U@4 V ~ W@3 X Y@2 Z@2 ~@4 AA AB AC@2 AD AE@2 AF@2 AG AH
AI AJ@2 ~@2 AK AL ~@8
>`.pickRestart({
A: "~@27 e4@5",
B: "[~ e4@7 e4@7 e4@3 g4@7 g4@10 ~@3 g4@3 g4@3 ~ g4@3 g4@3 g4@3 ~ g4@3 a4@3 g4@7 ~@27 g4@3 g4@3 b4@3 ~ b4@3 b4@3 b4@3 ~ b4@3 b4@7 d5@6 d5@7 g4@3 b4@3 ~ b4@3 b4@3 c5@3 ~ b4@3 a4@7 a4@3 g4@3 e4@3 ~@14 c5@3 c5@3 ~ a4@7 ~@13 c5@3 c5@3 a4@3]/7",
C: "[~ g4@3 ~@27 g4@3 e4@3 g4@7 g4@7 g4@6 g4@3 ~ a4@6 a4@10 ~@7 g4@3 e4@3 ~ g4@5]/3",
D: "~ g4@3 ~ g4@6 a4@7 g4@10 ~@4", E: "~@6 g4@3 g4@3 ~ g4@3 b4@7 b4@3 d5@6",
F: "~ d5@3 d5@3 d5@3 ~ b4@6 b4@3 ~ b4@6 c5@5", G: "~@2 a4@7 ~@3 g4@3 g4@3 ~ a4@7 ~@6",
H: "~@7 g5@3 g5@3 a5@7 c6@7 ~@5", I: "[~@5 f4@3 d5@7 d5@6 d5@3 ~ f5@6 e5@7 c5@3 ~@10 e5@7 f5@6]/2",
J: "~ e5@3 d5@3 c5@3 ~ d5@7 ~@14", K: "~@15 d5@3 ~ d5@6 d5@7",
L: "[d5@3 a5@7 g5@7 e5@3 ~@10 e5@7 f5@6 e5@3 ~ d5@3 c5@3 d5@7 ~@4]/2", M: "~@19 d5@3 ~ d5@3 d5@6",
N: "~ d5@6 d5@7 d5@3 f5@3 ~ e5@6 c5@3 ~@2", O: "~@9 e5@3 e5@3 f5@7 e5@3 d5@3 ~ c5@3", P: "d5@5 ~@11",
Q: "[~@5 d5@3 d5@7 d5@6 d5@3 ~ a5@6 g5@7 e5@3 ~@10 e5@3 ~ e5@3 f5@6]/2", R: "~ e5@3 d5@3 e5@7 d5@10 ~@8",
S: "~@19 e4@6 g4@7", T: "g4@3 g4@3 ~ g4@3 a4@7 a4@10 ~@5",
U: "[~@8 e4@3 g4@3 ~ g4@6 g4@3 ~ a4@3 g4@7 ~@20 g4@3 g4@3 b4@7 b4@3 b4@3 ~ d5@6 d5@3 ~ g4@3 b4@7 b4@6 b4@3 ~ c5@6 a4@10 g4@3 ~ g4@3]/4",
V: "a4@7 ~@13 c5@3 c5@3 ~ a4@3 g4@2", W: "[~@29 g4@7 g4@7 g4@6 g4@3 ~ a4@6 c5@10 ~@14 g4@6 g4@7]/3",
X: "g4@3 a4@7 g4@10 ~@12", Y: "[~ g4@3 ~ g4@3 b4@7 b4@3 d5@7 d5@3 d5@3 g4@3 ~ b4@6 b4@7 b4@3 c5@7 a4@6]/2",
Z: "[~@4 g4@3 g4@3 ~ a4@7 ~@13 g5@3 g5@3 a5@7 c6@7 ~@13]/2", AA: "~@29 f4@3", AB: "d5@7 d5@6 d5@3 ~ f5@6 e5@7 c5@2",
AC: "[~@11 e5@7 f5@7 e5@3 d5@3 c5@3 ~ d5@7 ~@22]/2", AD: "~@7 d5@3 ~ d5@6 d5@7 d5@3 a5@5",
AE: "[~@2 g5@7 e5@3 ~@10 e5@7 f5@6 e5@3 ~ d5@3 c5@3 d5@7 ~@12]/2",
AF: "[~@11 d5@3 ~ d5@3 d5@7 d5@6 d5@7 d5@3 f5@3 ~ e5@6 c5@3 ~@10]/2", AG: "~ e5@3 e5@3 f5@7 e5@3 d5@3 ~ c5@3 d5@8",
AH: "~@29 d5@3", AI: "d5@7 d5@6 d5@3 ~ a5@6 g5@7 e5@2", AJ: "[~@11 e5@3 ~ e5@3 f5@7 e5@3 d5@3 d5@7 a5@10 ~@16]/2",
AK: "~@17 a5@3 a5@3 a5@7 g5@2", AL: "~ f5@3 ~ g5@6 a5@3 ~ a5@3 a5@7 ~@7",
})).s("gm_piano").gain(0.46)
// other · piano
const piano_2 = note("<A@3 B@2 C ~@14 D E@2 F G H I ~@32 J K L@2 M G ~@25>".pickRestart({
A: "[~@13 g4@7 f#4@7 e4@10 g4@6 f#4@7 e4@10 g4@7 f#4@6 e4@10 g4@7 f#4@6]/3",
B: "[~ e4@10 c4@10 d4@3 ~@3 c4@10 d4@3 ~@4 d4@3 ~@4 c4@10 d4@3]/2", C: "~@3 c4@10 d4@3 ~@4 d4@3 ~@9", D: "~@27 g4@5",
E: "[~ f#4@7 e4@10 g4@7 f#4@6 e4@10 g4@7 f#4@7 e4@9]/2", F: "~ g4@6 f#4@7 e4@10 c4@8",
G: "~@2 d4@3 ~@4 c4@10 d4@3 ~@3 d4@3 ~@4", H: "c4@10 d4@3 ~@4 c4@10 d4@3 ~@2", I: "~ d4@3 ~@28", J: "~@19 g4@6 f#4@7",
K: "e4@10 g4@7 f#4@6 e4@9", L: "[~ g4@7 f#4@7 e4@10 g4@6 f#4@7 e4@10 c4@10 d4@3 ~@3]/2",
M: "~ c4@10 d4@3 ~@3 d4@3 ~@4 c4@8",
})).s("gm_piano").gain(0.46)
// other · piano
const piano_3 = note("<A@3 B@2 C ~@14 D E@2 F G H I ~@32 J K L@2 M G ~@25>".pickRestart({
A: "[~@13 d4@7 d4@7 c4@10 d4@6 d4@7 c4@10 d4@7 d4@6 c4@10 d4@7 d4@6]/3",
B: "[~ c4@10 a3@10 b3@3 ~@3 a3@10 b3@3 ~@4 b3@3 ~@4 a3@10 b3@3]/2", C: "~@3 a3@10 b3@3 ~@4 b3@3 ~@9", D: "~@27 d4@5",
E: "[~ d4@7 c4@10 d4@7 d4@6 c4@10 d4@7 d4@7 c4@9]/2", F: "~ d4@6 d4@7 c4@10 a3@8",
G: "~@2 b3@3 ~@4 a3@10 b3@3 ~@3 b3@3 ~@4", H: "a3@10 b3@3 ~@4 a3@10 b3@3 ~@2", I: "~ b3@3 ~@28", J: "~@19 d4@6 d4@7",
K: "c4@10 d4@7 d4@6 c4@9", L: "[~ d4@7 d4@7 c4@10 d4@6 d4@7 c4@10 a3@10 b3@3 ~@3]/2",
M: "~ a3@10 b3@3 ~@3 b3@3 ~@4 a3@8",
})).s("gm_piano").gain(0.46)
// other · piano
const piano_4 = note("<~@5 A@8 B@8 ~@18 C@6 D@8 E@7 ~@30>".pickRestart({
A: "[~@27 c4@76 c4@53 ~ g4@53 d4@46]/8", B: "[~@7 d4@30 ~@24 c4@53 g3@53 g4@53 ~ d4@30 ~@5]/8",
C: "[~@15 c4@80 c4@53 ~ g4@30 ~@13]/6", D: "[~@10 c4@53 c4@53 ~ g4@53 d4@53 d4@30 ~@3]/8",
E: "[~@21 c4@53 c4@53 g4@53 ~ d4@30 ~@13]/7",
})).s("gm_piano").gain(0.46)
// bass · epiano1
const bass = note(`<
A@3 B@2 C D@2 E@3 F@2 G@3 H@2 I@3 J K L M N O@2 P@2 Q R@2 S@2 T U@2 V@2 W X@2 Y@2 W X@2 Z@2 W AA@2 AB@2 AC AA@2 AD@2
AE AF@2 AG M AH AI@2 AJ AK AL AM@2 AN@2 AO AI@2 AP@2 AQ AR@2 AS@2 AT AU@2 AV@2
>`.pickRestart({
A: "[~@13 a1@7 a1@7 a1@10 a1@6 a1@7 a1@10 a1@7 a1@6 a1@10 a2@7 a2@6]/3",
B: "[~ a2@10 f1@10 g1@3 ~@3 f1@10 g1@3 ~@4 g1@3 ~@4 f1@10 g1@3]/2", C: "~@3 f1@10 g1@3 ~@4 g1@3 ~@4 a1@3 a1@2",
D: "[~ g2@3 ~ a1@3 a2@3 a1@3 ~ g2@3 a1@7 a1@3 g2@3 a1@3 ~ a2@3 a2@3 g2@3 ~ e2@3 c2@3 c2@3 ~ f2@3 c2@3 g2@3]/2",
E: "[~ g2@3 c2@3 c3@7 c3@3 b2@3 ~ b2@3 a2@3 a2@3 ~ g2@3 e2@3 g1@3 ~ g1@3 c2@3 g1@3 ~ d2@3 d2@3 g1@3 ~ e2@6 e2@3 ~ d2@3 a1@3 c2@3 ~ c2@3 d2@3 d2@3 ~ a1@3 a1@2]/3",
F: "[~ g2@3 ~ a1@3 a2@3 a1@3 ~ g2@3 a1@7 a1@3 g2@3 a1@3 ~ a2@3 a2@3 g2@3 ~ e2@3 g1@3 g1@3 ~ c2@3 g1@3 d2@3]/2",
G: "[~ d2@3 g1@3 e2@7 e2@3 d2@3 ~ a1@3 c2@3 c2@3 ~ d2@3 d2@3 a1@3 ~ a1@3 g2@3 a1@3 ~ a2@3 a1@3 g2@3 ~ a1@6 a1@3 ~ g2@3 a1@3 a2@3 ~ a2@3 g2@3 e2@3 ~ c2@3 c2@2]/3",
H: "[~ f2@3 ~ c2@3 g2@3 g2@3 ~ c2@3 c3@7 c3@3 b2@3 b2@3 ~ a2@3 a2@3 g2@3 ~ e2@3 g1@3 g1@3 ~ c2@3 g1@3 d2@3]/2",
I: "[~ d2@3 g1@3 e2@7 e2@3 d2@3 ~ a1@3 c2@3 c2@3 ~ d2@3 d2@3 a1@3 ~ a1@3 g2@3 a1@3 ~ a2@3 a1@3 g2@3 ~ a1@6 a1@3 ~ g2@3 a1@3 a2@3 ~ a2@3 g2@7 a1@5]/3",
J: "~ a1@7 ~@10 a1@7 a1@7", K: "~@9 a1@7 a1@7 ~@9", L: "~ a1@6 a1@7 ~@10 f1@8",
M: "~@2 g1@3 ~@4 f1@10 g1@3 ~@3 g1@3 ~@4", N: "f1@10 g1@3 ~@4 f1@10 g1@3 ~@2",
O: "[~ g1@3 ~@4 d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ f2@3 ~@3 e2@3 ~@4 c2@3 c2@3 ~ c2@3 c2@3 e2@3 ~@4 f2@3 ~@3]/2",
P: "[~ d2@3 d2@3 d2@3 ~ d2@3 c2@3 a1@3 ~ f1@6 g1@3 ~ a1@3 g1@7 a1@3 c2@3 d2@3 ~@4 d2@3 d2@3 ~ d2@3]/2",
Q: "d2@3 f2@3 ~@4 e2@3 ~@4 e2@3 c2@3 c2@3 ~ c2@3 e2@2",
R: "[~@5 f2@3 ~@3 d2@3 ~ d2@3 d2@3 d2@3 ~ c2@3 a1@3 f1@7 g1@3 a1@3 ~ g1@6 a1@3 ~ c2@3 d2@3 ~@3]/2",
S: "[~ d2@3 d2@3 d2@3 ~ d2@3 f2@3 ~@4 e2@3 ~@3 c2@3 ~ c2@3 c2@3 c2@3 ~ e2@3 ~@3 f2@3 ~@4 d2@3 d2@3 ~ d2@3]/2",
T: "d2@3 c2@3 ~ a1@3 f1@7 g1@3 a1@3 g1@7 a1@2",
U: "[~ c2@3 ~ d2@3 ~@3 d2@3 ~ d2@3 d2@3 d2@3 ~ f2@3 ~@3 e2@3 ~@4 e2@3 c2@3 ~ c2@3 c2@3 e2@3 ~@4 f2@3 ~@3]/2",
V: "[~ d2@3 d2@3 d2@3 ~ d2@3 c2@3 a1@3 ~ f1@6 g1@3 ~ a1@3 g1@7 a1@3 c2@3 a1@7 a1@3 g2@3 ~ a1@3]/2",
W: "a2@3 a1@3 ~ g2@3 a1@7 a1@3 g2@3 a1@3 ~ a2@3 a2@2",
X: "[~ g2@3 ~ e2@3 c2@3 c2@3 ~ f2@3 c2@3 g2@3 ~ g2@3 c2@3 c3@7 c3@3 b2@3 ~ b2@3 a2@3 a2@3 ~ g2@3 e2@3 g1@3]/2",
Y: "[~ g1@3 c2@3 g1@3 ~ d2@3 d2@3 g1@3 ~ e2@6 e2@3 ~ d2@3 a1@3 c2@3 ~ c2@3 d2@3 d2@3 ~ a1@3 a1@3 g2@3 ~ a1@3]/2",
Z: "[~ g1@3 c2@3 g1@3 ~ d2@3 d2@3 g1@3 ~ e2@6 e2@3 ~ d2@3 a1@3 c2@3 ~ c2@3 d2@3 a1@7 a1@3 g2@3 ~ a1@3]/2",
AA: "[~ g2@3 ~ e2@3 g1@3 g1@3 ~ c2@3 g1@3 d2@3 ~ d2@3 g1@3 e2@7 e2@3 d2@3 ~ a1@3 c2@3 c2@3 ~ d2@3 d2@3 a1@3]/2",
AB: "[~ a1@3 g2@3 a1@3 ~ a2@3 a1@3 g2@3 ~ a1@6 a1@3 ~ g2@3 a1@3 a2@3 ~ a2@3 g2@3 e2@3 ~ c2@3 c2@3 f2@3 ~ c2@3]/2",
AC: "g2@3 g2@3 ~ c2@3 c3@7 c3@3 b2@3 b2@3 ~ a2@3 a2@2",
AD: "[~ a1@3 g2@3 a1@3 ~ a2@3 a1@3 g2@3 ~ a1@6 a1@3 ~ g2@3 a1@3 a2@3 ~ a2@3 g2@7 a1@6 a1@7]/2",
AE: "~@10 a1@7 a1@7 ~@8", AF: "[~ a1@7 a1@7 ~@10 a1@6 a1@7 ~@10 f1@10 g1@3 ~@3]/2",
AG: "~ f1@10 g1@3 ~@3 g1@3 ~@4 f1@8", AH: "d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ f2@3 ~@3 e2@3 ~@4 c2@2",
AI: "[~ c2@3 ~ c2@3 c2@3 e2@3 ~@4 f2@3 ~@4 d2@3 d2@3 d2@3 ~ d2@3 c2@3 a1@3 ~ f1@6 g1@3 ~ a1@3 g1@6]/2",
AJ: "~ a1@3 c2@3 d2@3 ~@4 d2@3 d2@3 ~ d2@3 d2@3 f2@3 ~@2", AK: "~@2 e2@3 ~@4 e2@3 c2@3 c2@3 ~ c2@3 e2@3 ~@4 f2@3",
AL: "~@3 d2@3 ~ d2@3 d2@3 d2@3 ~ c2@3 a1@3 f1@7 g1@2",
AM: "[~ a1@3 ~ g1@6 a1@3 ~ c2@3 d2@3 ~@4 d2@3 d2@3 d2@3 ~ d2@3 f2@3 ~@4 e2@3 ~@3 c2@3 ~ c2@3 c2@3 c2@3]/2",
AN: "[~ e2@3 ~@3 f2@3 ~@4 d2@3 d2@3 ~ d2@3 d2@3 c2@3 ~ a1@3 f1@7 g1@3 a1@3 g1@7 a1@3 c2@3 ~ d2@3]/2",
AO: "~@3 d2@3 ~ d2@3 d2@3 d2@3 ~ f2@3 ~@3 e2@3 ~@4 e2@2",
AP: "[~ f2@3 e2@3 d2@7 d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 d2@3 c2@3 ~ c2@3 c2@3 c2@3 ~ c2@3 c2@3 c2@3 ~ c2@3]/2",
AQ: "d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ f1@3 f1@2",
AR: "[~ f1@3 ~ f1@3 g1@3 g1@3 ~ g1@3 g1@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 c2@3 c2@3 ~ c2@3 c2@3 c2@3]/2",
AS: "[~ c2@3 c2@3 c2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 d2@3 f1@3 ~ f1@3 f1@3 f1@3 ~ g1@3 g1@3 g1@3 ~ g1@3]/2",
AT: "d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ c2@3 c2@2",
AU: "[~ c2@3 ~ c2@3 c2@3 c2@3 ~ c2@3 c2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 f2@3 f2@3 ~ f2@3 f2@3 g2@3]/2",
AV: "[~ f2@3 e2@3 c2@3 ~ d2@3 ~@3 d2@47]/2",
})).s("gm_epiano1").gain(0.46)
// bass · epiano2
const bass_2 = note(`<
A B C D E F G H I J K G H I J K G H I J K L@2 M N O P@2 Q@2 R S T U@2 V W@2 X@2 K G H I J K G H I J K G H I J K G H I
Y Z AA@2 AB N AC AD@2 AE AF AG AH AI AJ AK AL AM@2 AJ AN AL AO@2 AJ AN AL AO@2 AP ~
>`.pickRestart({
A: "~@13 c2@3 ~@4 c2@3 ~@4 c2@3 ~@2", B: "~@5 c2@3 ~@3 c2@3 ~@4 c2@3 ~@7 c2@3 ~",
C: "~@3 c2@3 ~@3 c2@3 ~@7 c2@3 ~@4 c2@3 ~@3", D: "~ c2@3 ~@7 c2@3 ~@7 c2@3 ~@3 c2@3 ~@2",
E: "~@5 c2@3 ~@4 c2@3 ~@4 c2@3 ~@7 c2@3", F: "~@3 c2@3 ~@7 c2@3 ~@4 c2@3 c2@3 ~ c2@3 ~@2",
G: "~@8 c2@3 ~@10 c2@3 ~@8", H: "~@3 c2@3 ~@10 c2@3 ~@10 c2@3", I: "~@11 c2@3 ~@10 c2@3 ~@5",
J: "~@5 c2@3 ~@11 c2@3 ~@10", K: "c2@3 ~@10 c2@3 ~@11 c2@3 ~@2",
L: "[~ c2@3 ~@4 c2@3 ~@7 c2@3 ~@4 c2@3 ~@3 c2@3 ~@7 c2@3 ~@4 c2@3 ~@4 c2@3 ~@6]/2",
M: "~ c2@3 ~@3 c2@3 ~@4 c2@3 ~@7 c2@3 ~@5", N: "~@2 c2@3 ~@4 c2@3 ~@7 c2@3 ~@3 c2@3 ~@4",
O: "c2@3 ~@7 c2@3 ~@4 c2@3 ~@7 c2@3 ~@2",
P: "[~ c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~ c2@3 ~@3 c2@3 ~@4 c2@3 c2@3 ~ c2@3 c2@3 c2@3 ~@4 c2@3 ~@3]/2",
Q: "[~ c2@3 ~@3 c2@3 ~@4 c2@3 ~@7 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@7 c2@3 ~@4 c2@3]/2",
R: "~@3 c2@3 ~@4 c2@3 ~@4 c2@3 c2@3 c2@3 ~ c2@3 c2@2", S: "~@5 c2@3 ~@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@4",
T: "~@3 c2@3 ~@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3",
U: "[~@4 c2@3 ~@4 c2@3 c2@3 ~@4 c2@3 ~@3 c2@3 ~ c2@3 c2@3 c2@3 ~ c2@3 ~@3 c2@3 ~@4 c2@3 ~@4 c2@3]/2",
V: "~@3 c2@3 ~@7 c2@3 ~@4 c2@3 ~@4 c2@3 ~@2",
W: "[~ c2@3 ~@7 c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 c2@3 ~ c2@3 c2@3 c2@3 ~@4 c2@3 ~@3]/2",
X: "[~ c2@3 ~@3 c2@3 ~@4 c2@3 ~@7 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@10]/2",
Y: "~@5 c2@3 ~@11 c2@3 ~@3 c2@3 ~@4", Z: "c2@3 ~@7 c2@3 ~@4 c2@3 ~@3 c2@3 ~@6",
AA: "[~ c2@3 ~@4 c2@3 ~@4 c2@3 ~@7 c2@3 ~@3 c2@3 ~@4 c2@3 ~@7 c2@3 ~@7 c2@3 ~@3]/2",
AB: "~ c2@3 ~@7 c2@3 ~@3 c2@3 ~@4 c2@3 ~@5", AC: "c2@3 ~@4 c2@3 ~@3 c2@3 ~ c2@3 ~@3 c2@3 ~@4 c2@2",
AD: "[~ c2@3 ~ c2@3 c2@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@7 c2@3 ~@4 c2@3 ~@3 c2@3]/2",
AE: "~@4 c2@3 ~@7 c2@3 ~@4 c2@3 ~@3 c2@3 ~@2", AF: "~@2 c2@3 ~@4 c2@3 c2@3 c2@3 ~ c2@3 c2@3 ~@4 c2@3",
AG: "~@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@7 c2@3 ~@2", AH: "~ c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~",
AI: "~@3 c2@3 c2@3 ~@4 c2@3 ~@3 c2@3 ~ c2@3 c2@3 c2@3", AJ: "~ c2@3 ~@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~@2",
AK: "~@5 c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4", AL: "~@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@2",
AM: "[~ c2@3 ~ c2@3 c2@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@3]/2",
AN: "~@2 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@4 c2@3",
AO: "[~@5 c2@3 ~@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@3]/2",
AP: "~ c2@3 ~@3 c2@3 ~ c2@3 ~@3 c2@3 ~@12",
})).s("gm_epiano2").gain(0.41)
// bass · harpsichord
const bass_3 = note(`<
A B C D E F G H I J K G H I J K G H I J K L@2 M N O P@2 Q@2 R S@2 T U V W@2 X@2 Y Z AA AB AC Y Z AA AB AC Y Z AA AB AC
Y Z AA AB AC AD AE AF AG N AH AI@2 AJ AK AL AM AN AO@2 AP AQ@2 AR@2 AS AT AU AV@2 AW AX AY AZ ~
>`.pickRestart({
A: "~@27 d2@3 ~@2", B: "~@18 d2@3 ~@11", C: "~@9 d2@3 ~@20", D: "~ d2@3 ~@3 d2@2 d2@2 d2@2 ~@8 d2@3 ~@8",
E: "~@5 d2@3 ~@4 d2@3 ~@14 d2@3", F: "~@13 d2@3 ~@4 d2@3 ~@9", G: "~@8 d2@3 ~@21", H: "~@3 d2@3 ~@23 d2@3",
I: "~@24 d2@3 ~@5", J: "~@19 d2@3 ~@10", K: "~@13 d2@3 ~@16", L: "[~@8 d2@3 ~@20 d2@3 ~@21 d2@3 ~@6]/2",
M: "~@14 d2@3 ~@4 d2 d2@2 d2@3 ~@5", N: "~@2 d2@3 ~@4 d2@3 ~@7 d2@3 ~@3 d2@3 ~@4",
O: "d2@3 ~@7 d2@3 ~@4 d2@3 ~@7 d2@3 ~@2",
P: "[~ d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3 ~ d2@3 ~@3 d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3 ~@4 d2@3 ~@3]/2",
Q: "[~ d2@3 ~@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 ~@3 d2@3 ~ d2@3 d2@3 ~@4 d2@3 d2@2 d2 d2@2 ~@5 d2@3 ~@4 d2@3]/2",
R: "~@3 d2@3 ~@4 d2@3 ~@4 d2@3 d2@3 d2@3 ~@4 d2@2",
S: "[~@5 d2@3 ~@3 d2@3 ~@4 d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~@4 d2@3 d2@3 ~ d2@3 ~@3 d2@3 ~ d2 d2@2 d2@2 ~ d2@3]/2",
T: "~@4 d2@3 ~@4 d2@3 d2@3 ~@4 d2@3 ~@3 d2@3 ~@2", U: "~@2 d2@3 ~@4 d2@3 ~@3 d2@3 ~@4 d2@3 ~@4 d2@3",
V: "d2@3 d2@3 ~ d2@3 d2@3 ~@4 d2@3 d2@3 d2@3 ~@4 d2@2",
W: "[~ d2@2 d2@2 d2@2 ~@4 d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3 ~@4 d2@3 d2@3 ~ d2@3 ~@3 d2@3 ~@4 d2@3 ~@3]/2",
X: "[~ d2@3 ~@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 ~@3 d2@3 ~ d2@3 d2@3 ~@4 d2@3 d2@2 d2@2 ~@16]/2",
Y: "d2@3 ~@24 d2@3 ~@2", Z: "~@21 d2@3 ~@8", AA: "~@16 d2@3 ~@13", AB: "~@11 d2@3 ~@18", AC: "~@5 d2@3 ~@24",
AD: "d2@3 ~@20 d2@3 ~@6", AE: "~@15 d2@3 ~@14", AF: "~@6 d2@3 ~@4 d2 d2@2 d2@3 ~@7 d2@3 ~@3",
AG: "~ d2@3 ~@7 d2@3 ~@3 d2@3 ~@4 d2@3 ~@5", AH: "d2@3 ~@4 d2@3 ~@3 d2@3 ~ d2@3 ~@3 d2@3 ~@4 d2@2",
AI: "[~@5 d2@3 ~@3 d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3 ~ d2@3 d2@3 d2@3 ~ d2@3 ~@3 d2@3 ~ d2@3 d2@3 ~@3]/2",
AJ: "~ d2@3 d2@2 d2 d2@2 ~@5 d2@3 ~@4 d2@3 ~@3 d2@3 ~@2", AK: "~@2 d2@3 ~@4 d2@3 d2@3 d2@3 ~@4 d2@3 ~@4 d2@3",
AL: "~@3 d2@3 ~@4 d2@3 d2@3 ~ d2@3 d2@3 d2@3 ~@4 d2@2", AM: "~ d2@3 ~ d2@3 ~@3 d2@3 ~ d2 d2@2 d2@2 ~ d2@3 ~@4 d2@3 ~",
AN: "~@3 d2@3 d2@3 ~@4 d2@3 ~@3 d2@3 ~@4 d2@3 ~@3",
AO: "[~ d2@3 ~@3 d2@3 ~@4 d2@3 ~@4 d2@3 d2@3 d2@3 ~ d2@3 d2@3 ~@4 d2@3 d2@3 d2@3 ~@4 d2@3 d2@2 d2@2 d2@2 ~]/2",
AP: "~@3 d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3 ~@4 d2@2",
AQ: "[~ d2@3 ~ d2@3 ~@3 d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3 ~ d2@3 ~@3 d2@3]/2",
AR: "[~@4 d2@3 d2@3 ~@7 d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3 ~@4]/2",
AS: "d2@3 ~@4 d2@3 d2@3 d2@3 ~ d2@3 d2@3 ~@4 d2@3 ~@2", AT: "~@8 d2@3 ~@10 d2@3 ~@4 d2@3 ~",
AU: "~@3 d2@3 ~@3 d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3",
AV: "[~@4 d2@3 ~@10 d2@3 ~@4 d2@3 ~@4 d2@3 ~@3 d2@3 ~@11 d2@3 ~@10]/2",
AW: "d2@3 ~@4 d2@3 ~@3 d2@3 ~@4 d2@3 ~@4 d2@3 ~@2", AX: "~ d2@3 ~@4 d2@3 ~@4 d2@3 ~@10 d2@3 ~",
AY: "~@3 d2@3 ~@3 d2@3 ~@4 d2@3 ~@10 d2@3", AZ: "~ d2@3 d2@3 d2@3 ~ d2@3 ~@3 d2@3 ~@12",
})).s("gm_harpsichord").gain(0.51)
// other · piano
const piano_5 = note(`<
~@5 A@8 B@8 ~@5 C@2 D E F G@2 H@2 I@3 D J@6 K@8 L@7 ~@5 M N@3 O P@3 Q R S T@3 U V@3 W X Y Z@4
>`.pickRestart({
A: "[~@27 g4@76 g4@53 ~ d5@53 a4@46]/8", B: "[~@7 b4@30 ~@24 g4@53 g4@53 d5@53 ~ a4@30 ~@5]/8",
C: "[~@8 a4@3 a4@3 ~ a4@3 a4@3 a4@3 ~ a4@3 ~@3 g4@3 ~@4 g4@3 g4@3 ~ g4@3 g4@3 g4@3 ~@4 a4@3 ~@3]/2",
D: "~ a4@3 a4@3 a4@3 ~ a4@3 a4@3 ~@4 f4@11", E: "~@2 g4@13 a4@3 ~@4 a4@3 a4@3 ~ a4@3",
F: "a4@3 a4@3 ~@4 g4@3 ~@4 g4@3 g4@3 g4@3 ~ g4@3 g4@2",
G: "[~@5 a4@3 ~@3 a4@3 ~ a4@3 a4@3 a4@3 ~ a4@3 ~@3 f4@13 ~ g4@13 a4@3 ~@3]/2",
H: "[~ a4@3 a4@3 a4@3 ~ a4@3 a4@3 ~@4 g4@3 ~@3 g4@3 ~ g4@3 g4@3 g4@3 ~ g4@3 ~@3 a4@3 ~@4 a4@3 a4@3 ~ a4@3]/2",
I: "[a4@3 a4@3 ~@4 f4@13 g4@13 ~ a4@3 ~@3 a4@3 ~ a4@3 a4@3 a4@3 ~ a4@3 ~@3 g4@3 ~@4 g4@3 g4@3 ~ g4@3 g4@3 g4@3 ~@4 a4@3 ~@3]/3",
J: "[~@2 g4@13 g4@80 g4@53 ~ d5@30 ~@13]/6", K: "[~@10 g4@53 g4@53 ~ d5@53 a4@53 b4@30 ~@3]/8",
L: "[~@21 g4@53 g4@53 d5@53 ~ a4@30 ~@13]/7", M: "a4@3 a4@3 ~ a4@3 a4@3 a4@3 ~ a4@3 ~@3 g4@3 ~@4 g4@2",
N: "[~ g4@3 ~ g4@3 g4@3 g4@3 ~@4 a4@3 ~@4 a4@3 a4@3 a4@3 ~ a4@3 a4@3 ~@4 f4@13 g4@13 a4@3 ~@4 a4@3 a4@3 ~ a4@3 a4@3 a4@3 ~@2]/3",
O: "~@2 g4@3 ~@4 g4@3 g4@3 g4@3 ~ g4@3 g4@3 ~@4 a4@3",
P: "[~@3 a4@3 ~ a4@3 a4@3 a4@3 ~ a4@3 ~@3 f4@13 ~ g4@13 a4@3 ~@4 a4@3 a4@3 a4@3 ~ a4@3 a4@3 ~@4 g4@3 ~@3 g4@3 ~ g4@3 g4@3 g4@3]/3",
Q: "~ g4@3 ~@3 a4@3 ~@4 a4@3 a4@3 ~ a4@3 a4@3 a4@3 ~@2", R: "~@2 f4@13 g4@13 ~ a4@3",
S: "~@3 a4@3 ~ a4@3 a4@3 a4@3 ~ a4@3 ~@3 g4@3 ~@4 g4@2",
// … 60 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.