0:00/0:00
// Look at Me — Geri Halliwell
// 144 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 151 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(144/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.
// other · piano
const piano = note(`<
~@21 A@4 B@4 A@4 B@4 ~@19 C@4 D@8 E@5 ~ F@8 G@6 H@6 I@8 J@2 K@6 L@2 M@8 N@6 O@2 P@5 Q@2 R@6 S T U V@7
>`.pickRestart({
A: "[[a2,a3]@20 ~ [a2,a3]@14 ~ [d2,d3]@3 [e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~]/2", // A D E D E
B: "[~@36 b2@3 c3@2 ~ b2@3 c3@2 ~@37 b2@3 c3@2 ~ b2@3 c3@2 ~, f3@95 ~]/4",
C: "[~@22 a2@20 ~ [a2,a3]@14 [d2,d3]@3 [e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~ [a2,a3]@20 ~ [a2,a3]@6, ~@11 a3@9 ~@28]/4", // A D E D E A
D: "[~@9 [d2,d3]@3 [e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~@37 b2@3 c3@2 ~ b2@3 c3@2 ~@37 b2@3 c3@2 b2@3 c3@2 ~ a2@20 ~ [a2,a3]@14 ~ [d2,d3]@3 [e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~ [a2,a3]@20 [a2,a3]@8, ~@21 f3@94 ~ a3@18 ~@58]/8", // D E D E A D E D …
E: "[~@7 [d2,d3]@3 [e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~@37 b2@3 c3@2 b2@3 c3@2 ~@55, ~@19 f3@82 ~@19]/5", // D E D E
F: "[~@11 e2@6 e2@47 ~@2 e2@44 ~@2 g2@46 ~@2 d2@32]/8", G: "[~@15 e2@47 ~@2 e2@44 ~@2 c3@34]/6",
H: "[~@2 c2@5 d2@5 ~ d2@46 ~@2 e2@47 e2@36]/6",
I: "[~@12 g2@46 ~ d2@46 ~@2 a2@47 a2@20 ~ [a2,a3]@14 ~ [d2,d3]@2, ~@77 a3@9 ~@10]/8", // A D
J: "[~ [e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~ [a2,a3]@20 ~ [a2,a3]@14 ~ [d2,d3]@2]/2", // E D E A D
K: "[~ [e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~@36 b2@3 c3@2 ~ b2@3 c3@2 ~@37 b2@3 c3@2 ~ b2@3 c3@2 ~ [a2,a3]@20 ~ [a2,a3]@14 ~ [d2,d3]@3, ~@5 f3@47 ~@20]/6", // E D E A D
L: "[[e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~ [a2,a3]@20 ~ [a2,a3]@14 ~ [d2,d3]@3]/2", // E D E A D
M: "[[e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~@37 b2@3 c3@2 ~ b2@3 c3@2 ~@48 a2@20 ~ [a2,a3]@14 ~ [d2,d3]@3 [e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~ [a2,a3]@20 [a2,a3]@14 ~ [d2,d3]@3 [e2,e3]@2, ~@9 f3@93 ~@2 a3@18 ~@70]/8", // E D E A D E D E …
N: "[~ [d2,d3]@3 [e2,e3]@2 ~@37 b2@3 c3@2 ~ b2@3 c3@2 ~@37 b2@3 c3@2 ~ b2@3 c3@2 ~ a2@20 ~ [a2,a3]@14 ~ [d2,d3]@3 [e2,e3]@2, ~@7 f3@94 ~@2 a3@18 ~@23]/6", // D E A D E
O: "[~ [d2,d3]@2 [e2,e3]@2 ~@2 [a2,a3]@20 [a2,a3]@14 ~ [d2,d3]@3 [e2,e3]@2 ~]/2", // D E A D E
P: "[[d2,d3]@3 [e2,e3]@2 ~@37 b2@3 c3@2 ~ b2@3 c3@2 ~@48 [a2,a3]@19, ~@3 f3@47 ~@10]/5", // D E A
Q: "[~@2 [a2,a3]@14 ~ [d2,d3]@3 [e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~ [a2,a3]@19]/2", // A D E D E A
R: "[~@2 [a2,a3]@14 ~ [d2,d3]@3 [e2,e3]@2 ~ [d2,d3]@3 [e2,e3]@2 ~@37 b2@3 c3@2 ~ b2@3 c3@2 ~@36 b2@3 c3@2 ~ b2@3 c3@2 ~ a2@20, ~@29 f3@94 ~ a3@18 ~@2]/6", // A D E D E
S: "~ [a2,a3]@14 ~ [d2,d3]@3 [e2,e3]@2 ~ [d2,d3]@2", T: "~ [e2,e3]@2 ~ [a2,a3]@20",
U: "~ [a2,a3]@14 [d2,d3]@3 [e2,e3]@2 ~ [d2,d3]@3", // A D E D
V: "[[e2,e3]@2 ~@37 b2@3 c3@2 ~ b2@3 c3@2 ~@49 [a2,e3]@47 ~ [a1,e4]@4 ~@17, ~@3 f3@94 ~@71]/7", // E A5
})).s("gm_piano").gain(0.46)
// bass · piano
const bass = note(`<
~@12 A B C D C D C ~@2 E F E F G H G H E F E F G H G H I J I J I J I J I K ~ L@2 M@2 N@2 O ~ P@2 Q@2 R@2 S@2 T U@2 V
W@2 X Y Z ~@78
>`.pickRestart({
A: "~@12 g#2@6 g#2@3 d#2@2 ~", B: "f2@4 ~@5 f1@3 b1@3 c2@3 c2@3 f1@3", C: "~ f1 g#1 f1 b1 c2 b1 c2",
D: "f1@4 ~@5 f1@3 b1@3 c2@3 c2@3 f1@3", E: "a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@3",
F: "~@3 a1@2 ~ c2@3 a1@2 ~ d1@3 e1@2 ~ d1@3 e1@2 ~", G: "f1@7 ~@2 f1@2 ~ b1@3 c2@4 ~@2 f1@3",
H: "~@3 f1@4 ~@2 f1@2 ~ b1@3 c2@3 b1@3 c2@2 ~", I: "a1@3 ~@3 c2@3 a1@2 ~ d1@3 e1@4 ~@2 a1@3",
J: "~ a1 c2 a1 d1 e1 ~ e1", K: "~@3 a1@3 c2@2 a1@3 d1@3 e1@3 ~@3 e1@3 ~",
L: "[~@23 f1@4 ~@5 f1@3 b1@3 c2@3 c2@3 f1@3 ~]/2",
M: "[~@2 f1@3 g#1@3 f1@3 b1@3 c2@3 b1@3 c2@3 f1@4 ~@5 f1@3 b1@3 c2@3 c2@3 f1@3 ~]/2",
N: "[~@2 f1@3 g#1@3 f1@3 b1@3 c2@3 b1@3 c2@3 f1@4 ~@5 f1@3 b1@3 c2@2 c2@3 f1@3 ~@2]/2",
O: "~ f1@3 g#1@3 f1@3 b1@3 c2@3 b1@3 c2@3 ~@2", P: "[~@22 a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~]/2",
Q: "[~ a1@2 ~ c2@2 a1@2 ~@2 d1@2 e1@2 ~ d1@3 e1@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~@2]/2",
R: "[a1@2 ~ c2@3 a1@2 ~ d1@3 e1@2 ~ d1@3 e1@2 ~ f1@7 ~@2 f1@2 ~ b1@3 c2@4 ~@2 f1@3 ~@3]/2",
S: "[f1@4 ~@2 f1@2 ~ b1@3 c2@3 b1@3 c2@2 ~ f1@7 ~@2 f1@2 ~ b1@3 c2@4 ~@2 f1@3 ~@3]/2",
T: "f1@4 ~@2 f1@2 b1@3 c2@3 b1@3 c2@2 ~ a1@4",
U: "[~@2 c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@3 e1@2 ~ d1@3 e1@2 ~ a1@4]/2",
V: "~@2 c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~ a1@2",
W: "[~ c2@3 a1@2 ~ d1@3 e1@2 ~ d1@3 e1@2 ~ f1@7 ~@2 f1@2 ~ b1@3 c2@4 ~@2 f1@3 ~@3 f1@2]/2",
X: "~@4 f1@2 ~ b1@2 c2@3 b1@3 c2@2 ~ f1@6", Y: "~@3 f1@2 ~ b1@3 c2@4 ~@2 f1@3 ~@3 f1@3", Z: "~@3 f1@4 ~@17",
})).s("gm_piano").gain(0.35)
// bass · synth bass 2
const bass_2 = note(`<
~@100 A@2 B@2 C D E D F@2 G@2 H D E I@2 J@2 K L@2 M@2 N O P Q R S T U@6 V@2 W X@2 Y@2 Z AA AB AA AC ~ AD
>`.pickRestart({
A: "[~@10 a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@2]/2",
B: "[~ e1@2 ~ d1@3 e1@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@2]/2",
C: "e1@2 ~@2 d1@3 e1@2 f1@7 ~@3 f1@2 b1@3", D: "c2@4 ~@2 f1@3 ~@3 f1@4 ~@2 f1@2 ~ b1@3",
E: "c2@3 b1@3 c2@2 ~ f1@7 ~@2 f1@2 ~ b1@3",
F: "[c2@3 b1@3 c2@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@3]/2",
G: "[e1@2 ~ d1@3 e1@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@3]/2",
H: "e1@2 ~ d1@3 e1@2 ~ f1@7 ~@2 f1@2 ~ b1@3",
I: "[c2@4 ~@2 f1@3 ~@2 f1@4 ~@2 f1@2 ~ b1@3 c2@3 b1@3 c2@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@4]/2",
J: "[~@2 g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@3 e1@2 ~ d1@3 e1@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@4]/2",
K: "~@2 g1@3 a1@4 ~ a1@2 ~ c2@3 a1@2 ~ d1@3 e1@2",
L: "[~ d1@3 e1@2 ~ f1@7 ~@2 f1@2 ~ b1@3 c2@4 ~@2 f1@3 ~@3 f1@4 ~@2 f1@2 ~ b1@3 c2@2]/2",
M: "[~ b1@3 c2@2 ~ f1@7 ~@2 f1@2 ~ b1@3 c2@4 ~@2 f1@3 ~@3 f1@4 ~@2 f1@2 ~ b1@3 c2@2]/2",
N: "~ b1@3 c2@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@5", O: "~ g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@2 e1@2 ~",
P: "~ d1@3 e1@2 a1@5 ~ c2@3 a1@2 ~ a1@5 ~", Q: "g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@3 e1@2 ~",
R: "d1@3 e1@2 ~ f1@7 ~@2 f1@2 ~ b1@3 c2@3", S: "~@3 f1@3 ~@3 f1@4 ~@2 f1@2 ~ b1@3 c2@3",
T: "b1@3 c2@2 ~ f1@7 ~@2 f1@2 ~ b1@3 c2@3",
U: "[~@2 f1@3 ~@3 f1@4 ~@2 f1@2 ~ b1@3 c2@3 b1@3 c2@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@3 e1@2 ~ d1@3 e1@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@3 e1@2 ~ d1@3 e1@2 ~ f1@7 ~@2 f1@2 ~ b1@3 c2@4]/6",
V: "[~@2 f1@3 ~@3 f1@4 ~@2 f1@2 ~ b1@3 c2@3 b1@3 c2@2 ~ f1@7 ~@2 f1@2 ~ b1@2 c2@4 ~]/2",
W: "~ f1@3 ~@3 f1@4 ~@2 f1@2 ~ b1@3 c2@3 b1@2",
X: "[~ c2@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~@2 a1@2 ~ c2@3 a1@2 ~ d1@3 e1@2 ~ d1@2]/2",
Y: "[~ e1@2 ~ a1@5 ~ c2@3 a1@2 ~ a1@5 ~ g1@3 a1@4 ~@2 a1@2 ~ c2@2 a1@2 ~@2 d1@2 e1@2 ~ d1@3]/2",
Z: "e1@2 ~ f1@7 ~@2 f1@2 ~ b1@3 c2@4 ~@2", AA: "f1@3 ~@3 f1@4 ~@2 f1@2 ~ b1@3 c2@3 b1@3",
AB: "c2@2 ~ f1@7 ~@2 f1@2 ~ b1@3 c2@4 ~@2", AC: "c2 ~@11", AD: "~@3 a1@5 ~@16",
})).s("gm_synth_bass_2").gain(0.3).pan(0.3)
// other · piano
const piano_2 = note(`<
~ A B C ~ D E D E D E ~ F G H G H G H ~ I ~@18 J K L M N M N O ~ P Q R Q R S T ~@17 U V@2 ~@23 W X Y ~@15 Z@2 AA AB AC
AD AE AF AG AH@2 AI AJ AK AL@3 ~@15 AM AN AO
>`.pickRestart({
A: "[a2,a3] ~ [c3,c4] [a2,a3] [d#3,d#4] [e3,e4] ~@2", B: "~@7 [a2,a3]",
C: "~@3 [a2,a3]@3 [c3,c4]@3 [a2,a3]@3 [d#2,d#3]@6 [e2,e3]@5 ~", // A C A D# E
D: "[a2,a3] ~ [c3,c4] [a2,a3] [d#3,d#4] [e3,e4] ~ [a2,a3]", // A C A D# E A
E: "~@3 [a2,a3]@3 [c3,c4]@3 [a2,a3]@3 [d#2,d#3]@3 [e2,e3]@5 ~ [e2,e3]@3", // A C A D# E
F: "~@16 b5 [d6,e6] [e6,g6,c7]@6, ~@16 c6@2 f6 ~@5", // Dsus2 C
G: "[f5,g#5,c6]@3 ~@9 [f5,g#5,c6]@3 [f5,g#5,c6]@2 ~@4 [g#5,c6,f6]@2 ~", // Fm
H: "~@3 [f5,g#5,c6]@2 ~@7 [f5,g#5,c6]@3 ~@3 [f5,g#5,c6]@2 ~@4", // Fm
I: "~@15 e5 [f5,g5,a5] [b5,c6,d6] d6!2 [b5,c6] [f5,g5,a5] [c5,d5,e5] b4, ~@9 e6 ~@2", J: "~@7 [a3,a4]",
K: "~@3 [e4,a4,e5]@3 ~@3 [e4,a4,e5]@3 [a3,e4,e5]@3 [e4,e5]@2 ~ [a3,e4,e5]@3 [e4,e5]@2 ~", // A5 E A5 E
L: "[c5,e5,a5]@3 ~@3 [c5,e5,a5]@3 ~@2 a5 [d5,f#5,b5]@7 ~@2 [c5,e5,a5]@3, ~@6 a#5 ~@5", // Am Bm Am
M: "~@3 [c5,e5,a5]@4 ~@2 [c5,e5,a5] ~ a#5 [d5,f#5,b5]@5 ~ [d5,f#5,b5]@5 ~, ~@11 a5@2 ~@11", // Am Bm
N: "[c5,e5,a5]@3 ~@3 [c5,e5,a5]@3 ~@2 a5 [d5,f#5,b5]@7 ~@2 [c5,e5,a5]@3, ~@11 a#5@2 ~@11", // Am Bm Am
O: "~@3 [c5,e5,a5]@4 ~@2 [c5,e5,a5] ~ a#5 [d5,f#5,b5]@5 ~ [f#5,b5]@4 ~@2, ~@11 a5@2 ~@4 d5@5 ~@2", P: "~@23 g6",
Q: "~@2 d#6 ~@5 [g5,c6,d#6]@2 ~@7 [g5,c6,d#6]@2 ~ [g5,c6,d#6]@2 ~@2, ~ f6@2 ~@21", // Cm
R: "~@11 [g5,b5,d6]@5 ~ [g5,b5,d6]@4 ~@2 g6", S: "f6@2 d#6 ~@5 [g5,c6,d#6]@2 ~@7 [g5,c6,d#6]@2 [g5,c6,d#6]@2 ~@3",
T: "~@10 [g5,b5,d6]@5 ~ [g5,b5,d6]@4 ~@4", U: "~@6 [a2,a3] ~",
V: "[[c3,c4]@3 [a2,a3]@3 [d#3,d#4]@3 [e3,e4]@3 ~@2 [a2,a3]@3 ~@3 [a2,a3]@3 [c3,c4]@3 [a2,a3]@3 [d#2,d#3]@3 [e2,e3]@5 ~ [e2,e3]@3 [a2,a3]@3 ~@4]/2", // C A D# E A C A D# …
W: "~@10 [a2,a3]@3 ~@3 [g2,g3]@3 [e2,e3]@3 [d2,d#3]@2", // A G E D#maj7
X: "~ [e2,e3]@4 ~@2 [a2,a3]@3 ~@3 [a2,a3]@3 [c3,c4]@3 [a2,a3]@3 [d2,d3]@2", Y: "~ [e2,e3]@3 [d2,d3]@3 [e2,e3]@2 ~@15",
Z: "[~@8 d6@29 ~ c6 ~@2 d6@6 c6]/2", AA: "~@2 d6@3 c6 ~@2 d6@16", AB: "~ c6@2 ~@2 d6@3 ~@2 d#6@3 ~@3 d6@4 ~@2 c6@2",
AC: "~ d6@3 c6@2 ~ d6 ~@2 g5 ~ d6 c6@2 g5 d6@2 ~ g5 ~@2 c6@2, ~@9 c6@2 ~@7 c6@2 ~ d6@2 ~",
AD: "g5 d6@2 ~ g5 ~@2 d#6@2 ~ d6@2 ~ g5 ~@2 c6@2 g5 d6@2 ~ g5 ~, ~@3 c6@2 ~ d6@2 ~@4 c6@2 ~ d6@2 ~@4 c6@2 ~",
AE: "~ c6@2 g5 d6@2 ~ d6 ~@2 a5 ~ d6 ~ a5 ~ d6@2 ~ a5 d6@2 ~ a5, d6@2 ~@4 c6@2 ~ c6@2 ~@2 c6@2 ~@3 c6@2 ~@2 c6@2",
AF: "~ c6@3 d6@2 ~ g6@5 ~ f6@4 ~@2 d#6@3 f6@2", AG: "~ d#6@3 d6@2 ~ e6@3 d6 c6 ~ d6@2 ~ c6!2 ~ d6@2 ~ c6 d6",
AH: "[~@2 d6 ~ c6!2 ~ d6 d#6 ~ c6 d6@3 ~@2 c6 d6@4 c6 ~ d6@2 ~ d6 c6 ~ c6 ~ d6@3 c6 d6@3 c6 d6@2 c6@2 ~ d6@2 ~ c6]/2",
AI: "d6 ~ c6 c6@2 ~ e6@3 d6@2 c6 c6@2 ~@4 d6@3 d6 c6 ~",
AJ: "~@5 b5 c6@2 ~ c6@2 ~ c6@2 ~ c6@2 ~@2 f5 ~@2 f5 ~, ~@18 g5@2 ~ g5@2 ~",
AK: "~ g5@2 a5 g5 ~@2 a5 ~@2 a5 ~@2 c6@2 ~ c6 ~ [c6,d#6]@3 d6 ~@2, a5@2 ~@4 c6@2 ~ c6@2 ~ d6@2 ~ d6@2 ~@7", // Cm
AL: "[[c6,d#6]@3 d6 ~@3 d6 ~ d#6 d6 ~@2 d6@2 e6!2 ~@2 d6 c6 ~ c6 g6@2 ~ f6 ~ d6 g6@6 f6@6 d#6@6 d6@6 e6@6 ~@13, ~@6 c6@4 ~@2 [c6,d#6]@3 ~@6 d6@2 ~@2 d6@2 ~@45, ~@3 d#6 ~@5 f6 ~@26]/3", // Cm
AM: "~@3 [a2,a3]@3 ~@3 [g2,g3]@3 [e2,e3]@3 [d2,d#3]@3 [e2,e3]@4 ~@2", // A G E D#maj7 E
AN: "[a2,a3] ~ [a2,a3] [c3,c4] [a2,a3] [d2,d3] [e2,e3] [d2,d3]", AO: "[e2,e3] ~@11",
})).s("gm_piano").gain(0.2)
// chords · drawbar organ
const drawbar_organ = note("<~@25 A@4 ~@4 A@4 ~@11 B C@4 D E@2 F ~@3 G A@3 H ~@3 I J K A L ~@78>".pickRestart({
A: "[d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2", // Fm7
B: "~@23 [g5,d6,g6]", // G5
C: "~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6]", // G5
D: "~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~ [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~", // G5
E: "~ [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~", // G5
F: "~ [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@2 [g5,d6,g6] ~@7", // G5
G: "~@21 [d#6,f6,g#6] ~@2", // Fm7
H: "[d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~ f6 [d#6,g#6] ~ [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@6", // Fm7 G#5 Fm7
I: "~@19 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~", // Fm7
J: "~ [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~", // Fm7
K: "~ [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~ f6 [d#6,g#6] ~ [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2", // Fm7 G#5 Fm7
L: "[d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@2 [d#6,f6,g#6] ~@8", // Fm7
})).s("gm_drawbar_organ").gain(0.26)
// other · trombone
const trombone = note("<~@74 A@6 B@8 C@6 D@4 E@3 ~@4 F@4 ~@4 G@4 ~@4 H@4 I@4 J@4 K@4 L@4 M@4 N@5 O>".pickRestart({
A: "[~@8 a2@9 a2@48 ~ e2@43 ~@3 g2@32]/6", B: "[~@3 f3@11 ~ f#3@43 ~@5 a2@48 e2@43 ~@4 c3@22 a3@11 ~]/8",
C: "[~@2 a3@9 ~@2 a3@45 ~@3 a2@48 e2@35]/6", D: "[~@12 g2@33 ~@2 f3@11 ~ f#3@37]/4", E: "[g#3@11 ~ a3@44 ~@16]/3",
F: "[~@3 c4 ~@2 d4@2 ~ d4@72 ~@15]/4", G: "[~@3 c4 ~@2 d4@2 ~ d4@71 ~@16]/4", H: "[~ c4 ~@2 d4@2 ~ d4@72 ~@17]/4",
I: "[~ c4 ~@2 d4@2 ~ d4@71 ~@18]/4", J: "[c4 ~@2 d4@2 ~ d4@72 ~@17 c4]/4", K: "[~@2 d4@2 ~ d4@72 ~@18 c4]/4",
L: "[~@2 d4@2 ~ d4@71 ~@18 c4 ~]/4", M: "[~ d4@2 ~ d4@72 ~@17 c4 ~@2]/4", N: "[d4@2 ~ d4@72 ~ a3@44]/5",
O: "~@3 a3@4 ~@17",
})).s("gm_trombone").gain(0.59)
// chords · piano
const piano_3 = note(`<
~@13 A ~ A ~ A ~@3 B C B D E F E F B D B D E F E F ~@4 B D B D B D ~ G@6 ~@2 H I J K L M N M O P@2 Q R S T U ~@28 V W
V W X Y Z Y AA AB AA AB Z Y Z AC AD AE AD AF AG AH AG AH AI AJ AK AL AM AN AM AO AP AQ AP AQ AR AO AR AS AT AU AT AU
AV AW AV AW ~@2 AX
>`.pickRestart({
A: "[f2,c3,g#3,c4,f4,g#4]@5 ~@19", B: "[e3,g3,a3,c4] ~ [e3,g3,a3,c4] ~@4 [e3,g3,a3,c4]",
C: "~@3 [e3,g3,a3,c4]@2 ~@7 [e2,e3,b3,d4,f#4]@4 ~@2 [e2,e3,b3,d4,f#4]@4 ~@2", D: "~@3 [e3,g3,a3,c4]@2 ~@19",
E: "[f3,g#3,c4,d4] ~ [f3,g#3,c4,d4] ~@4 [f3,g#3,c4,d4]", F: "~@3 [f3,g#3,c4,d4]@2 ~@19",
G: "[~@23 [f2,c3,g#3,c4,f4,g#4]@5 ~@20]/2", H: "~@11 [e3,g3,a3,c4]",
I: "~@4 [e3,g3,a3,c4]@3 ~@12 [e3,g3,a3,c4]@3 ~@2", J: "~ [e3,g3,a3,c4]@2 ~@18 [e3,g3,a3,c4]@3",
K: "~ [e3,g3,a3,c4] ~@4 [e3,g3,a3,c4] ~", L: "[e3,g3,a3,c4]@2 ~@19 [f3,g#3,c4,d4]@3",
M: "~ [f3,g#3,c4,d4] ~@4 [f3,g#3,c4,d4] ~", N: "[f3,g#3,c4,d4]@2 ~@19 [f3,g#3,c4,d4]@3",
O: "[f3,g#3,c4,d4]@2 ~@18 [e3,g3,a3,c4]@3 ~", // Dm7b5 Am7
P: "[~@2 [e3,g3,a3,c4]@3 ~@12 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@2 ~@19 [e3,g3,a3,c4]@3 ~]/2", // Am7
Q: "~@2 [e3,g3,a3,c4]@3 ~@12 [e3,g3,a3,c4]@3 ~@2 [e3,g3,a3,c4]@2", R: "~@19 [f3,g#3,c4,d4]@3 ~@2",
S: "~ [f3,g#3,c4,d4]@3 ~@12 [f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@2", T: "~@6 [f3,g#3,c4,d4] ~",
U: "[f3,g#3,c4,d4]@3 ~@12 [f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@2 ~", V: "~@10 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@3 ~@5",
W: "~@7 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@2 ~@9", X: "~@10 [f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@3 ~@5",
Y: "~@6 [f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@2 ~@10", Z: "~@3 [f3,g#3,c4,d4] ~ [f3,g#3,c4,d4] ~@2",
AA: "~@3 [e3,g3,a3,c4] ~ [e3,g3,a3,c4] ~@2", AB: "~@6 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@2 ~@10",
AC: "~@6 [f3,g#3,c4,d4]@3 ~@2 [f3,g#3,c4,d4]@2 ~@11", AD: "~@8 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@3 ~@7",
AE: "~@5 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@2 ~@11", AF: "~@5 [e3,g3,a3,c4]@3 ~@2 [e3,g3,a3,c4]@2 ~@12",
AG: "~@7 [f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@3 ~@8", AH: "~@4 [f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@2 ~@12",
AI: "~@7 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@3 ~@8", AJ: "~@4 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@2 ~@12",
AK: "~@7 [e3,g3,a3,c4]@3 ~@2 [e3,g3,a3,c4]@3 ~@9", AL: "~@3 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@2 ~@13",
AM: "~@2 [f3,g#3,c4,d4] ~ [f3,g#3,c4,d4] ~@3", AN: "~@3 [f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@2 ~@13",
AO: "~@2 [f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@2 ~@14", AP: "~@5 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@3 ~@10",
AQ: "~@2 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@2 ~@14", AR: "~@5 [f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@3 ~@10",
AS: "~ [f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@2 ~@15", AT: "~@4 [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@3 ~@11",
AU: "~ [e3,g3,a3,c4]@3 ~@3 [e3,g3,a3,c4]@2 ~@15", AV: "~ [f3,g#3,c4,d4] ~ [f3,g#3,c4,d4] ~@4",
AW: "[f3,g#3,c4,d4]@3 ~@3 [f3,g#3,c4,d4]@2 ~@16", AX: "~ [e3,g3,a3,c4] ~@6",
})).s("gm_piano").gain(0.26).pan(0.4)
// other · trombone
const trombone_2 = note("<~@74 A@6 B@4 C@8 D@8 ~@51>".pickRestart({
A: "[~@11 e3@5 ~ e3@34 ~@2 c4@12 b3@45 ~@2 c4@32]/6", B: "[~@3 c4@11 ~ d4@45 ~@3 e3@33]/4",
C: "[~@3 c4@11 b3@45 ~@3 c3@23 ~ e3@11 g3@11 ~ f#3@46 ~@2 e3@34 ~]/8",
D: "[c4@12 b3@45 ~@3 c4@34 ~ c4@11 ~ d4@45 ~@2 a3@38]/8",
})).s("gm_trombone").gain(0.54)
// chords · piano
const piano_4 = note(`<
~@13 A B A B A B ~@2 C D C D E F E F C D C D E G H G ~@4 I J I J I J ~ K@2 L@4 M ~ N@2 O P Q R S R T U@2 V W X Y Z AA
~@27 AB AC@2 AD@2 AE AF AG AH AI AJ AK@2 AG AL AM AN@2 AO@2 AP AQ AR AQ AS AT AU AV AW AX AY AZ@2 BA@2 BB@2 BC@2 BD@2
BE@2 BF@2 BG BH BG ~@2 BI
>`.pickRestart({
// … 530 more lines
More by Geri Halliwell
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.