Rick Wakeman Solo Medley: Catherine of Aragon Catherine Howard Montreux Jig Jane Seymour
KeyG minorTempo102 bpm
0:00/0:00
// Rick Wakeman Solo Medley: Catherine of Aragon Catherine Howard Montreux Jig Jane Seymour — Yes
// 102 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 2, 4/4 at bar 3, 5/4 at bar 16, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(102/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 · "PRG.CHANGE"
const bass = note(`<
A B C D E@3 F G@2 ~ H@8 I J K L@2 M N@2 ~@23 O@2 P Q@2 R@2 S T U V W@2 X Y Z AA AB AC@4 AD@2 ~@6 AE@3 AF AG@5 AH@2
AI@3 ~
>`.pickRestart({
A: "~@5 d3@3", B: "~ c3@3 ~ g2@2 ~", C: "~ d2@3 ~ d3@3", D: "~ c3@3 ~ g2@3",
E: "[~@2 d2@6 bb1@2 ~ a1@13 bb1@2 ~ a1@13 bb1@2 ~ a1@5]/3", F: "g1@2 ~ f1@5 d3 bb2 g2 e2 ~ d2 bb1 ~",
G: "[g1 ~ e1 ~ a1@16 ~@12]/2", H: "[~@3 a1 d2@7 a1 d2@7 a2 d3@10 db2@4 g1@4 ab1@4 db2@4 a1@6 a1@2 d2@10]/8",
I: "db2 g1", J: "ab1 db2", K: "a1", L: "bb1@2 ~ a1@13", M: "bb1@2 ~ a1@5 g1@2 ~ f1@5",
N: "[d3 bb2 g2 e2 ~ d2 bb1 ~ g1 ~ e1 ~ a1@12 ~@8]/2", O: "[~@8 bb1@11 bb1 a1@7 a1 d2@3 a1]/2", P: "g1@11 g1 f1@4",
Q: "[~ bb1 ~ c2 d2 bb1 ~ d2 eb2@7 f2@4 eb2 d2@3 b2@2 a2@3 f2@3 d2]/2",
R: "[c2@8 c2 eb2 ~ c2 bb1@7 eb2 f2@3 g2 a2@8]/2", S: "~ eb2 ~ eb2 d2@8 d2@3 gb2", T: "g2@7 g2 f2@3 d2 eb2@3 g2",
U: "~@3 eb2 c2@3 c2 bb1@8", V: "~ f1 ~ g1 bb1@7 bb1 ~@3 f1", W: "[bb1@7 f2@4 d2 bb1@7 bb1 f1 g1 ~ f1 bb1@7 a1]/2",
X: "g1@3 f1 bb1@7 bb1 ~@3 f1", Y: "bb1", Z: "b1", AA: "c2@7 g1", AB: "c2", AC: "db2", AD: "[d2@5 ~@3]/2",
AE: "[~@6 bb1@2 ~ a1@13 bb1@2 ~ a1@13 bb1@2 ~ a1@5 g1@2]/3", AF: "~ f1@5 d3 bb2 g2 e2 ~ d2 bb1 ~ g1 ~",
AG: "[e1 ~ a1@4 d2@32 d1@32 d2@4 ~@2 d2@2 ~@2]/5", AH: "~@3 d2@2 ~ d2 ~", AI: "[~@3 d2@17 ~@4]/3",
})).s("gm_electric_bass_finger").gain(0.44)
// chords · piano · "PRG.CHANGE"
const piano = note(`<
A@2 B@2 C@3 D E@7 F@2 G H I J K L M N O@2 ~@23 P@4 Q R@2 S T@3 U@3 V W X Y Z AA AB AC AD@4 AE@7 AF AG@5 AH AI AJ@4
>`.pickRestart({
A: "[~@8 g4 ~ d3@2 ~@2 f4 ~ c4@2 ~ c4 d4 ~@2 d3 c4 ~ [d2,g3]@2 bb3 ~@2 d3, ~@8 d5@6 c5@5 ~@13, ~@8 [d2,d3]@2 d4@4 ~@7 e4@3 g4@4 ~ c4@3, ~@9 a4@5 ~ g4@4 ~@3 bb3@2 ~ d4@3 [d3,f4]@4, ~@6 d3@2 ~ d2 [d2,a4]@2 d2 ~@2 f3]/2", // G5 D Dm D5
B: "[g3 ~ d3@2 ~@2 g4 ~ d4@2 ~ d4 f4 ~@2 d3 d2@2 d4 ~ [d3,bb3]@2 ~ bb3 c4 ~ [d2,g3]@2 bb3 ~ f3 [d3,f3], d4@4 ~@2 d5@5 ~ c5@6 ~ e4@4 ~@2 d4@3 ~ c4@2 ~, d2@2 ~@5 a4@4 ~@2 g4@5 a4@5 ~ g4@4 ~@4, ~ a3@3 d3@4 ~@2 d2@2 d3@2 c4@4 d3@2 ~@2 d3@2 ~@4 [d3,f4]@3 ~]/2", // Gm G5 Dm
C: "[g3 ~ d3@2 d3@4 a4 bb4 f4 [g4,c5]@2 e4 g4 a4 [g4,a4] e4 g4 a4 c5 a4 g4 e4 a4 bb4 f4 [a2,a3,g4,c5]@13 a4 bb4 f4 [g4,c5]@3 a4 [e4,g4], d4 ~@5, ~ a3@7 [bb2,bb3,d5]@2 ~ [a2,a3]@13 [bb2,bb3,d5]@2 ~@14 [bb2,bb3,d5]@2 ~ [a2,a3]@5]/3", // C5 Gsus2 Am7 C5 Em Bb A Bb …
D: "f4 g4 d4 [f2,f3,e4,a4]@5 [d4,d5] [bb3,bb4] [g3,g4] [e3,e4] ~ [d3,d4] [bb2,bb3] ~, [g2,g3,bb4] ~@7", // Fmaj7 D Bb G E D Bb Gm
E: "[[g2,g3] ~ [e2,e3] ~ [a1,a2]@20 d4@2 a3 d4 bb3 d4 g3 d4 a3 d4 f3 d4 g3 d4 [a1,a2,e3] d4 ~ d4 a3 d4 bb3 d4 g3 d4 a3 d4 f3 d4 g3 d4 [a0,a1,e3] d4 d3 d4 a3 d4 bb3 d4 g3 d4 a3 d4 f3 d4 g3 d4 [a0,a1,e3] d4 d3 d4 a3 d4 bb3 d4 g3 d4 a3 d4 f3 d4 g3 d4 [a0,a1,e3] d4 [d5,f5] a4 f4 e5 a4 f4 f5 a4 f4 e5 a4 f4 d5 a4 f4 a4 c5 a4 f4 a4 bb4 d4 g4 bb4, ~@24 [d2,d3]@13 ~@3 [d2,d3]@13 ~@3 [d1,d2]@13 ~@3 [d1,d2]@13 ~@3 [d1,d2]@12 ~@12]/7", // G E A A5 Dm D
F: "[d5 bb4 [g4,bb4] d4 g4 bb4 eb4 g4 eb5 bb4 g4 eb4 ~ c4 eb4 ab4@2 c4 [eb4,ab4] eb4 c5 f4 ab4 c5 f5 c5 [ab4,c5] [f4,ab4] d5 e4 g4 a4, ~@6 c5 ~@9]/2", // Gm Ab5 Ab Fm
G: "e4 g4@2 g4 a4 d5 g4 a4 d5 g4 a4 g4 f5 a4 f4 g5", H: "a4 f4 f5 a4 f4 e5 a4 f4 d5 a4 f4 a4 c5 a4 f4 a4",
I: "bb4 d4 g4 bb4 d5 bb4 [g4,bb4] d4 bb4 g4 eb4 g4 [eb4,eb5] bb4 g4 eb4", // Gm Eb
J: "c5 c4 eb4 ab4 [eb4,ab4] [c4,eb4] eb4 ab4 f4 ab4 f5 c5 [ab4,c5] [f4,ab4] ab4 c5", // Ab5 Cm Ab Fm
K: "d5 e4 g4 a4 e4 g4@2 a4 g4 e4 e5 e4 f5 e4 db5 e4", L: "[a4,d5] bb4 f4 [a2,a3,g4,c5]@13, [bb2,bb3] ~@7",
M: "[a4,d5] bb4 f4 [g4,c5]@2 e4 g4 a4 [g4,a4] e4 g4 a4 c5 a4 g4 e4, [bb2,bb3]@2 ~ [a2,a3]@12 ~", // D5 C5 Gsus2 Bb A
N: "[a4,d5] bb4 f4 [a2,a3,g4,c5]@5 f4 g4 d4 [f2,f3,e4,a4]@5, [bb2,bb3] ~@3 [g2,g3,bb4] ~@3", // D5 Am7 Fmaj7 Bb Gm
O: "[[d3,bb4] [bb2,g4] [g2,e4] [e2,c4] ~ [d2,bb3] [bb1,g3] ~ [g1,e3] ~ [e1,c3] ~ [a1,a3]@12 ~@8]/2", // Gm Eb C Gm Eb C A
P: "[~@8 [bb2,f3,bb3,d4]@12 [gb3,a3,c4,d4]@7 ~ [c4,gb4]@3 d4 bb3@12 [f3,d4]@7 f4 [ab4,d5]@3 bb4 g4@3 bb4 [g4,g5]@4, ~@5 d3@3 ~@6 eb3@2, ~@27 a3@7 ~@10 bb3@12 ~@8]/4", // Bb D7 Cdim Dm Abdim G
Q: "bb4 g4 ~ eb5 [b4,f5]@4 b4@4 b4@3 d5, eb4 d4@3", // Bdim
R: "[eb5@3 c5 [g4,eb5]@8 ~@4 db4@3 ~ db4 eb4 ~@2 [a3,eb4]@3 ~ c4 eb4 ~ c4, c4@12 bb3@7 bb3@4 bb3@3 ~ a3@3 ~@2]/2", // Cm Adim
S: "eb4 gb4 ~ a4 gb4@3 eb4 c4@3 a3 gb3@4, ~ d4@3",
T: "[[bb3,d4]@4 d4 bb3 ~ d4 [a3,c4,f4]@3 g3 [db4,eb4]@12 bb3@5 ~ d4 ~ f4 d4 bb4 d4 [bb3,g4]@2 eb4 ~ eb4 g4 eb4 g4 bb3 eb4@2 eb4, [d3,g3]@8 ~@21 bb3@2 bb3@3 ~@2 bb2@12, ~@13 bb3 ~@2]/3", // Bb F Dbsus2 Eb G5
U: "[d4 f4 bb4 f4 bb4 d5 f5@2 [bb4,d5] [f4,bb4] bb4 d5 g4 bb4 g5 g4 bb4 eb5 [bb4,eb5] g4 bb4 eb5 g5 eb5 f5 c5 a4 c5 a4 f4 c4 a3@2 c4 a3 f3 eb4 bb3 g3 g4 bb3 g3 eb4 bb3 g3 eb4 bb3 g3, [bb2,bb3]!2 [bb2,bb3] [bb1,bb2]]/3", // Bb Bb5 Eb5 Bb
V: "[f3,bb3,d4]@2 d3 f3 bb3 d3 f3 bb3 d3 f3 bb3 f3 d4 f3 bb3 f3, [bb1,bb2]", // Bb
W: "[g3,b3,d4]@4 b3 g3 b3 d4 f4 b3 d4 f4 b4 d4 g4 f4, [b1,b2]", // G B
X: "[g3,c4,eb4]@2 c4 eb4 g4 eb4 c4 eb4 g4 eb4 c4 eb4 c4!2 eb4 c4, [c2,c3]", // Cm C
Y: "ab3@2 c4 ab3 eb4 c4 eb4 c4 eb4 gb4 eb4 c4 eb4 c4 ab3 eb4, [c2,c3]", // C
Z: "db4 ab3 db4 e4 ab3 db4 e4 ab3 db4 e4 ab3 db4 e4 ab3 db4 e4, [db2,db3]", // Db
AA: "e4 e5 a4 e4 e5 a4 e4 e5 a4 e4 e5 a4 e4 e5 a4 e4, db3, db2@3 db2@3 db2@2",
AB: "db4 ab4 db5 e5 db5 ab4 db4 ab3 db4 e4 ab4 db5 e5 db5 ab4@2, [db2,db3]@3 [db2,db3]@3 [db2,db3]@2", // Db
AC: "a4 db5 e5 db5 e5@2 a4 g4@2 g4 e4@2 e5 a4 e4@2, db2@3 [db2,db3]@5, db3 ~@3", // Db
AD: "[f5 a4 f4 e5 a4 f4 f5 a4 f4 e5 a4 f4 d5 a4 f4 c5 a4 f4 c5 a4 bb4 d4 g4 bb4 d5 bb4 [g4,bb4] d4 bb4 g4 eb4 g4 eb5 bb4 g4 eb4 c5 c4 eb4 ab4 [eb4,ab4] [c4,eb4] eb4 ab4 f4 ab4 f5 c5 [ab4,c5] [f4,ab4] ab4 c5 d5 e4 g4 a4 g4 a4 db5 g4 a4 d5 g4 a4, [d2,d3]@10 [g2,g3]@4 [g2,g3]@4 [ab2,ab3]@4 ~@4 a2@3 ~@3, [f3,a3,d4]@8 ~@14 db3@4 ~@3 a3@3]/4", // Gm Ab5 Cm Ab Fm D G Ab …
AE: "[e5 g4 a4 f4 f5 a4 f4 e5 a4 f4 d5 a4 f4 c5 a4 f4 d5 [f4,a4] c5 a4 f4 a4 bb4 d4 g4 bb4 d5 bb4 [g4,bb4] d4 g4 bb4 eb4 g4 [eb4,eb5] bb4 g4 eb4 c5 c4 eb4 ab4 [eb4,ab4] [c4,eb4] eb4 ab4 f4 ab4 f5 c5 [ab4,c5] [f4,ab4] ab4 c5 d5 e4 g4 a4 e4 g4 db5 e4 g4 a4 e4 g4 a4 g4 e4@2 a4 bb4 f4 [g4,c5]@2 e4 g4 a4 [g4,a4] e4 g4 a4 c5 a4 g4 e4 a4 bb4 f4 [a2,a3,g4,c5]@13 [a4,d5] bb4 f4 [a2,a3,g4,c5]@5 f4 g4, ~@4 d3@18 [g2,g3]@8 [g2,g3]@8 [ab2,ab3]@8 [db3,db4]@8 a3@16 [bb2,bb3,d5]@3 [a2,a3]@13 [bb2,bb3,d5]@3 ~@13 [bb2,bb3]@3 ~@5 [g2,g3,bb4]@2]/7", // F Gm Eb Ab5 Cm Ab Fm C5 …
AF: "d4 [f2,f3,e4,a4]@5 [d3,d5] [bb2,bb4] [g2,g4] [e2,e4] ~ [d2,d4] [bb1,bb3] ~ [g1,g3] ~", // Fmaj7 D Bb G E D Bb G
AG: "[[e1,e3] ~ [a1,a2]@4 ~ d5 a4 d5 bb4 d5 g4 d5 a4 d5 f4 d5 g4 d5 e4 d5 ~ d5 a4 d5 bb4 d5 g4 d5 a4 d5 f4 d5 g4 d5 e4 d5 d4 d5 a4 d5 bb4 d5 g4 d5 a4 d5 f4 d5 g4 d5 e4 d5 d4 d5 a4 d5 bb4 d5 g4 d5 a4 d5 f4 d5 g4 d5 e4 d5!2 [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6], ~@6 [d3,d4]@14 [a2,a3]@2 [d3,d4]@16 [d2,d3]@31 ~@3 a5@2 b5@2 g5@2 a5@2]/5", // E A D A D
AH: "~ [d5,d6] ~ [d5,d6] ~ [d5,d6] d5 [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6], gb5 g5 e5 ~ a5 b5 g5 a5", // D
AI: "~ [d5,d6] ~ [d5,d6] ~ [d5,d6] d5 [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6], gb5 g5 e5 ~ a4 b4 g4 a4", // D
AJ: "[~ [d5,d6] ~ [d5,d6] ~ d6 ~@7 d5 ~@12 e4 db4 ~@6 a3@2 ~@2 db4 ~@2 [d3,gb4,d5]@20 ~@3, gb4@2 g4@2 e4@7 d5 g5@2 d5 g4 d4 b3 g3 d4 b3@2 db4@3 db4@2 e4@4 db4 e4@8 ~@24, ~@5 d5 d4 g5 b5@13 g3@2 g3@5 db4@2 a3@3 db4@4 a3@3 ~@24, ~@6 [b2,d3,d6]@16 [d2,a2,d3,e3]@18 [d2,d4]@21 ~@3, ~@6 g3@3 d5 b4@12 ~@2 a3@5 g3@7 g3@4 ~@24]/4", // D Bm Dsus2 D
})).s("gm_piano").gain(0.56).pan(0.6)
// chords · rock organ · "PRG.CHANGE"
const rock_organ = note("<A B C@2 D@3 E F@2 ~ G H I ~@8 J@2 K L@2 ~@45 M@2 ~@6 N@3 O P ~@3 Q@4 ~@3>".pickRestart({
A: "~@8 [g5,d6] a5 d5@4 [f5,c6] g5", B: "c5@3 c5 [d5,a5] e5 bb4@2 [c5,g5] d5 g4@2 [bb4,f5] c5 f4@2",
C: "[[g4,d5] a4 d3@2 d3@2 [g5,d6] a5 d5@3 d5 [f5,c6] g5 c5@4 [d5,a5] e5 bb4@3 bb4 [c5,g5] d5 g4@2 [bb4,f5] c5 f4!2]/2", // G5 F5 D5 C5 Bb5
D: "[[g4,d5] a4 d3@2 ~@2 d5 f5 [a5,d6] bb5 f5 [g5,c6]@12 ~ [a5,d6] bb5 f5 [g5,c6]@12 ~ [a5,d6] bb5 f5 [g5,c6]@5, ~ d3 ~@10]/3", // G5 D5 C5 D5 C5 D5 C5
E: "[f5,bb5] g5 d5 [e5,a5]@4 [e5,g5] [bb5,d6] bb5 g5 e5 ~ d5 bb4 ~", F: "[g4 ~ e4 ~ [g4,bb4,db5,e5]@20 ~@8]/2",
G: "~@2 [d5,f5] [g5,bb5]", H: "[f5,a5] [e5,g5] [d5,f5] [g5,bb5]", I: "[f5,a5] [e5,g5] ~@2",
J: "[a5,d6] bb5 f5 [g5,c6]@13", K: "[a5,d6] bb5 f5 [g5,c6]@3 [g5,a5] [e5,g5] [f5,bb5] g5 d5 [e5,a5]@4 e5",
L: "[[g5,bb5,d6] bb5 g5 e5 ~ d5 bb4 ~ g4 ~ e4 ~ [g4,bb4,db5,e5]@12 ~@8]/2", M: "[[f4,a4,d5]@5 [g4,bb4,d5]@2 ~]/2",
N: "[~@6 [a5,d6] bb5 f5 [g5,c6]@12 ~ [a5,d6] bb5 f5 [g5,c6]@12 ~ [a5,d6] bb5 f5 [g5,c6]@3 [g5,a5] [e5,g5] [f5,bb5] g5]/3", // D5 C5 D5 C5 D5 C5 Gsus2 Em …
O: "d5 [e5,a5]@4 e5 [g5,bb5,d6] bb5 g5 e5 ~ d5 bb4 ~ g4 ~", P: "e4 ~ [g4,bb4,db5,e5]@4 ~@10",
Q: "[~@3 [gb4,a4,d5]@8 [a4,d5,gb5]@8 [d5,gb5,a5]@8 [b4,d5,g5]@2 ~@3]/4", // D G
})).s("gm_rock_organ").gain(0.5).pan(0.4)
// chords · rock organ · "PRG.CHANGE" · soft notes
const rock_organ_soft = note("<~@9 A B C ~ D@6 E F G ~@51 H@2 ~@20>".pickRestart({
A: "~@3 [g5,bb5]", B: "[f5,a5] [e5,g5] [d5,f5] [g5,bb5]", C: "[f5,a5] [e5,g5] ~@2",
D: "[~@2 [f4,a4,d5]@5 [d4,g4,bb4]@2 [eb4,g4,bb4]@2 [c4,eb4,ab4]@2 [db4,f4,ab4]@2 [a3,e4,g4]@4 [f4,a4,d5]@5]/6", // Dm Gm Eb Ab Db A7 Dm
E: "[g4,bb4,d5]@2 [g4,bb4] [g4,bb4,eb5]", F: "[c5,eb5,ab5] [db5,f5,ab5]", G: "[e5,g5]",
H: "[~@3 [g4,bb4,eb5]@2 ~@3]/2", // Eb
})).s("gm_rock_organ").gain(0.14).pan(0.4)
// other · rock organ · "PRG.CHANGE"
const rock_organ_2 = note("<~@5 A B ~@4 C D E ~@8 F ~@58 G H ~@12>".pickRestart({
A: "~@13 e5 c6 a5", B: "[g5,a5] [e5,g5] [d5,eb5,a5] c5 a4 g4 e4 a3 ~@8", C: "~@8 f4 f5 c5 f5 d5 f5 bb4 f5",
D: "c5 f5 a4 f5 bb4 f5 g4 f5 f4 f5 c5 f5 d5 f5 bb4 f5", E: "c5 f5 a4 f5 bb4 f5 g4 f5 ~@8",
F: "~@6 c5 d5 eb5 e5 g5 a5 c6 a5 g5 e5", G: "~@11 e5 c6 a5 [g5,a5] [e5,g5]", H: "[d5,eb5] c5 a4 g4 e4 a3 ~@10",
})).s("gm_rock_organ").gain(0.56).pan(0.4)
// other · electric guitar clean · "PRG.CHANGE"
const electric_guitar_clean = note("<~@7 A B ~@16 C ~@57 D E ~ F G H I@2 J ~@3>".pickRestart({
A: "~@8 d5 bb4 g4 e4 ~ d4 bb3 ~", B: "g3 ~ e3 ~@13", C: "d5 bb4 g4 e4 ~ d4 bb3 ~ g3 ~ e3 ~@5",
D: "~@6 d5 bb4 g4 e4 ~ d4 bb3 ~ g3 ~", E: "e3 ~@15", F: "~@8 c5 g5 d5 g5 bb4 g5 c5 g5",
G: "a4 g5 bb4 g5 g4 g5 f4 g5 c5 g5 d5 g5 bb4 g5 c5 g5", H: "a4 g5 bb4 g5 g4 g5 d4@2 a4@2 b4@2 g4@2 a4@2",
I: "gb4 g4 e4 d4 a4 b4 g4 a4", J: "gb4 g4 e4 ~@5",
})).s("gm_electric_guitar_clean").gain(0.24).pan(0.6)
// chords · acoustic guitar steel · "PRG.CHANGE"
const acoustic_guitar_steel = note("<~@50 A@2 B@2 C D@3 E@2 F G@2 H ~@23 I J@4 ~@3>".pickRestart({
A: "[~@12 [bb2,f3,bb3,d4,f4,bb4]@7 [bb2,f3,bb3,d4,f4,bb4] [a2,d3,a3,d4,gb4,a4]@4 [a2,d3,a3,d4,gb4,a4]@4 [a2,d3,a3,d4,gb4,a4]@3 ~]/2", // Bb D
B: "[[g2,d3,g3,bb3,d4,g4]@5 ~@2 [g2,d3,g3,bb3,d4,g4] [g2,d3,g3,bb3,d4,g4]@4 [f2,bb2,f3,bb3,d4,f4]@8 [f2,bb2,f3,bb3,d4,f4] ~@3 [eb2,bb2,eb3,g3,bb3,eb4]@7 [bb2,eb3,g3,bb3,eb4]]/2", // Gm Bb Eb
C: "[eb2,bb2,eb3,g3,bb3,eb4] ~@3 [d2,g2,d3,g3,b3,d4]@4 [d2,g2,d3,g3,b3,d4]@3 [g2,d3,g3,b3,d4] [d2,g2,d3,g3,b3,d4]@3 ~", // Eb G
D: "[[g2,c3,g3,c4,eb4]@7 [g2,c3,g3,c4,eb4] [g2,c3,g3,c4,eb4]@4 [eb2,bb2,eb3,g3,bb3,eb4]@8 [bb3,eb4]@4 [eb3,a3,c4,gb4]@11 [eb3,a3,c4,gb4] [a2,d3,a3,d4,gb4]@7 [a2,d3,a3,d4,gb4]!2 ~@3]/3", // Cm Eb Eb5 Ebdim D
E: "[[g2,d3,g3,bb3,d4,g4]@4 [g2,d3,g3,bb3,d4,g4]@3 [g3,bb3,d4,g4] [f2,c3,f3,a3,c4,f4]@4 [g2,eb3,g3,bb3,eb4,g4]@7 [eb4,g4] [g2,eb3,g3,bb3,eb4,g4]@3 [bb3,eb4,g4] [bb2,f3,bb3,d4,f4,bb4]@7 [bb3,d4,f4,bb4]]/2", // Gm F Eb Bb
F: "[bb2,f3,bb3,d4,f4,bb4] ~@3 [bb2,eb3,bb3,eb4,g4,bb4]@7 [eb4,g4,bb4] [bb2,eb3,bb3,eb4,g4,bb4] ~@3", // Bb Eb
G: "[[bb2,f3,bb3,d4,f4,bb4]@7 [bb2,f3,bb3,d4,f4,bb4]!2 ~@3 [bb2,eb3,bb3,eb4,g4,bb4]@7 [g4,bb4] [bb2,eb3,bb3,eb4,g4,bb4] ~@3 [a2,f3,a3,c4,f4,a4]@7 [f3,a3,c4,f4,a4]]/2", // Bb Eb Gm Eb F
H: "[a2,f3,a3,c4,f4,a4] ~@3 [bb2,eb3,bb3,eb4,g4,bb4]@12", I: "~@3 a2!3 d3 d4 a3 d4 bb3 d4 g3 d4 a3 d4",
J: "[f3 d4 g3 d4 e3 d4!11 d4!16 d4!16 d4!6 ~@10, ~@3 [d3,f3,a3]@3 [d3,f3,a3]@5 [d3,f3,a3]@3 [d3,f3,a3]@5 [d3,f3,a3]@3 [d3,f3,a3]@5 ~@5]/4", // Dm
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.6)
// chords · acoustic guitar steel · "PRG.CHANGE" · soft notes
const acoustic_guitar_steel_2 = note("<~@53 A B ~ C ~ D E F ~ G ~@32>".pickRestart({
A: "~@15 eb2", B: "~@11 d2 ~@3 [d2,g2,d3,g3,b3,d4]", C: "~ [eb2,bb2,eb3,g3] ~@2", D: "~@7 [g2,d3] ~@8",
E: "~@3 [g2,eb3,g3,bb3] ~@3 [g2,eb3,g3] ~@7 [bb2,f3]", F: "~@11 [bb2,eb3,bb3] ~@4",
G: "~@3 [bb2,eb3,bb3,eb4] ~@11 a2", // Eb5
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.6)
// chords · flute · "PRG.CHANGE"
const flute = note("<~@50 A@2 B@3 C@3 D@3 E@3 ~@31>".pickRestart({
A: "[~@2 [bb4,d5]@3 [a4,d5]@3]/2", B: "[[bb4,d5,g5] [bb4,d5,f5] [bb4,eb5,g5] [b4,d5,f5]]/3",
C: "[[g4,c5,eb5] [bb4,db5,eb5] [a4,eb5] [a4,c5,d5]]/3", // Cm Eb7 Adim D7
D: "[[g4,bb4,d5]@4 [a4,c5]@2 [g4,bb4] [eb4,g4]@2 bb4 [bb4,eb5] [g4,bb4] [bb4,d5,f5]@6 [bb4,eb5,g5]@6]/3", // Gm Am Gm Eb Eb5 Gm Bb Eb
E: "[[bb4,d5,f5] [bb4,eb5,g5] [a4,c5,f5] [g4,bb4,eb5]]/3", // Bb Eb F Eb
})).s("gm_flute").gain(0.15)
// other · lead 2 sawtooth · "PRG.CHANGE"
const lead_2_sawtooth = note("<~@26 A@2 B@7 C D@3 E@2 F@6 G@4 ~@44>".pickRestart({
A: "[~@8 d3@12 d3 c3 b2 a2 g2@6 a2@2]/2",
B: "[b2@3 c3@3 d3@2 eb3@14 c3@2 ab2@12 ab2 bb2 ab2@2 g2@6 bb2@4 d3@2 f3@4 eb3@6 d3@4 c3@4 bb2@2 ab2@12 ab2 bb2 ab2@2 a2@14 db3@2 d3@6 f3@2]/7",
C: "e3 d3@2 b2 g2@4", D: "[a2@2 b2@3 c3 ~ d3 eb3@14 d3@2 ab2@12 ab2 bb2 ab2@2 g2@6 bb2@2]/3",
E: "[d3 f3@2 bb2 c3@5 c3@2 bb2 ab2@4]/2",
F: "[ab2@2 bb2@4 ab2@2 a2@14 g3@2 f3@2 e3@2 d3@6 c3@2 b2@2 a2@2 g2@10 g2 a2 b2 c3 d3@2 eb3@12 eb3@2 g2@2 ab2@14 c3@2 bb2@4 g2@4]/6",
G: "[f3@3 bb2 eb3@3 d3@2 c3@2 bb2 ab2@3 ab2@2 g2@3 f2@7 ~@5]/4",
})).s("gm_lead_2_sawtooth").gain(0.25).pan(0.6)
// other · epiano1 · "PRG.CHANGE"
const epiano1 = note("<~@35 A@2 B@2 C@3 ~ D@2 E@2 F@4 ~@44>".pickRestart({
A: "[~@4 d5 c5 b4 a4 b4 d5 g4@14 ~@8]/2", B: "[~@4 eb5 d5 [bb4,c5] ab4 g4@2 [ab4,c5]@14 ~@8]/2",
C: "[~@4 bb4 ab4 g4 f4 eb4@16 ab4@16 ~@8]/3", D: "[~@4 g5 f5 e5 d5!2 b4 a4 g4 g5@12 ~@8]/2",
E: "[~@5 eb5 d5 c5 bb4 ab4 g4 f4@13 ~@8]/2", F: "[~@2 g4 bb4 c5@2 c5@13 eb5 c5 c5@7 ~@4]/4",
})).s("gm_epiano1").gain(0.15).pan(0.6)
// chords · string ensemble 1 · "PRG.CHANGE"
const string_ensemble_1 = note("<~@26 A@8 B@8 C@7 D@2 ~@13 E F G H I J I J K@2 ~@21>".pickRestart({
A: "[~@2 [a3,d4,f4]@4 [b3,d4,g4]@4 [bb3,d4,eb4,g4]@4 [g3,ab3,c4,eb4]@4 ~@3 f4 [g3,bb3,c4,eb4]@4 [ab3,c4,eb4]@4 [a3,d4,e4]@2, ~@9 [g3,bb3,d4]@2 ~@5]/8", // Dm G Ebmaj7 Abmaj7 Cm7 Ab Asus4 Gm
B: "[[a3,db4,e4]@2 [a3,d4,f4]@4 [b3,d4,g4]@4 [bb3,d4,eb4,g4]@4 [g3,ab3,c4,eb4]@4 ~@3 f4 [g3,bb3,c4,eb4]@4 [ab3,c4,eb4]@4 [a3,d4,e4]@2, ~@9 [g3,bb3,d4]@2 ~@5]/8", // A Dm G Ebmaj7 Abmaj7 Cm7 Ab Asus4 …
C: "[[a3,db4,e4]@2 [a3,d4,f4]@4 [b3,d4,g4]@4 [bb3,d4,eb4,g4]@4 [g3,ab3,c4,eb4]@4 ~@3 f4 [g3,bb3,c4,eb4]@4 [ab3,c4,eb4]@2, ~@9 [g3,bb3,d4]@2 ~@3]/7", // A Dm G Ebmaj7 Abmaj7 Cm7 Ab Gm
D: "[~ [a3,c4,eb4,f4]@2 ~]/2", E: "[bb3,d4,f4]", F: "[b3,d4,g4]", G: "[c4,eb4,g4]", H: "[c4,eb4,ab4]",
I: "[db4,e4,ab4]", J: "[db4,e4,g4,a4]", K: "[[d4,f4,a4]@5 ~@3]/2",
})).s("gm_string_ensemble_1").gain(0.24).pan(0.4)
// drums · kick
const kick = s("bd").struct("<A B@3 C@3 D E ~@13 D@2 F G ~@54 H@2 I J K ~@3 L@3 K ~@3>".pickRestart({
A: "~@5 x ~@2", B: "~ x ~@3 x ~@2", C: "~@8 x ~@2 x ~@4", D: "x ~@2 x ~@12", E: "~ x ~@2",
F: "x ~@2 x ~@4 x ~@2 x ~@4", G: "~@3 x", H: "~@6 x ~@2 x ~@6", I: "~@6 x ~@2 x ~@4 x ~", J: "~ x ~@14",
K: "~@3 x ~@4", L: "~@3 x ~@2 x ~",
})).gain(0.52)
// drums · snare
const snare = s("sd").struct("<~@4 A B@2 C ~@14 D@2 E F ~@54 G H G I ~@6 J@2 ~@3>".pickRestart({
A: "~@2 x ~ x!3 ~@2 x!2 ~@5", B: "~@9 x!2 ~@5", C: "~ x!2 ~@5 x!2 ~@6", D: "~ x!2 ~@13", E: "~ x!2 ~@6 x!2 ~@5",
F: "x!2 ~@14", G: "~@7 x!2 ~@7", H: "~ x", I: "x ~@5 x!2 ~@8", J: "~@4 x!2 ~@10",
})).gain(0.33)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@81 [~@7 x ~@8] [~@15 x] ~@7 [~@3 x ~@12]!2 ~@3>").gain(0.2)
// drums · hihat
const hihat = s("hh").struct("<A@2 B A C D E F ~@14 G@2 H ~@57 I D ~@4 J K@2 L ~@3>".pickRestart({
A: "x!16", B: "x!2 ~@10 x!4", C: "~ x ~@14", D: "~ x ~@2", E: "x!2 ~@2", F: "~@3 x ~@4", G: "~@3 x", H: "~@3 x ~@3 x",
I: "~ x ~@4 x ~", J: "~@3 x ~ x ~ x", K: "~ x ~ x ~ x ~ x", L: "~ x ~@6",
})).gain(0.33)
// drums · low tom
const low_tom = s("lt").struct("<~@8 [~ x ~@6] ~@16 [~@5 x ~@2] ~@58 [x!2 ~@6] ~@10>").gain(0.52)
// drums · mid tom
const mid_tom = s("mt").struct("<A ~@6 B C ~@4 D ~@3 E ~@7 F ~@45 G C ~@10 H ~ I ~ J@5 ~@3>".pickRestart({
A: "~@5 x!4 ~@7", B: "~@10 x!2 ~ x!2 ~", C: "x", D: "~@6 x!2 ~@8", E: "~@8 x!4 ~@4", F: "~@2 x!2 ~ x!2 ~ x ~@7",
G: "~@13 x!3", H: "~@8 x!2 ~ x!2 ~ x ~", I: "~ x ~@2", J: "~@3 x!3 ~@10",
})).gain(0.26)
// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<[~@2 x!3 ~@11] ~@12 [x!6 ~@10] ~@3 [~@6 x!2 ~@8] ~@53 [~@10 x!3 ~@3] ~@23>")
.gain(0.07)
// drums · open hat
const open_hat = s("oh").struct("<~@4 x!2 ~@16 [~ x]!2 ~@57 [~@7 x] ~@13>").gain(0.33)
// drums · crash
// … 18 more lines
More by Yes
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.