0:00/0:00
// Got To Get You Into My Life (bonus track) — Earth, Wind & Fire
// 142 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 6, 4/4 at bar 7, 2/4 at bar 38, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 140 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(142/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, A@4 for four bars: edit a riff to change every repeat.
// bass · electric bass finger
const bass = note(`<
A@4 ~@15 B C D E F G B F H E F I@5 J@3 K J@3 K J@3 K J@3 L M@3 N O P Q@2 J@3 K J@3 L M@3 N O P R@2 S T U V W X Y Z AA
AB AC AD AE AF AG@5 AH@2 AI AH@3 AJ AK@3 AL@2 AM AN AO@2 AP AQ@3 AR AS AT AU AV@2 AW AX AP AQ@3 AR AS AT AU AV@2 AW AY
AZ BA BB@3 BC
>`.pickRestart({
A: "[~@23 c2@52 gb1@9 ~@12]/4", B: "~ b1@2 bb1 ~@2", C: "~@6 g1 ~@5", D: "c2 ~@5 f2@2 ~@4", E: "~@3 bb1 ~@2",
F: "~@3 g1 ~@2", G: "~@3 c2 ~@2", H: "c2 ~@2 f2 ~@2", I: "[~@5 c2@38 ~ c2@13 ~@3]/5", J: "f2 ~@4 f2 ~@2 f2 c2@2 d2",
K: "f2 ~@4 f2 ~@2 f2 c2 db2 d2", L: "f2 ~@4 f2 ~@2 g1 ab1@2 ab1", M: "a1 ~@4 a1 ~@2 a1 g1@2 ab1",
N: "a1 ~@4 a1 ~@2 ab1 a1@3", O: "bb1 ~@2 bb1 ~@2 a1 ~@2 a1 ~@2", P: "g1 ~@2 g1 ~@2 c2 ~@2 c2 ~@2",
Q: "[f2@10 ~ ab2@5 ~ c2@7]/2", R: "[f2@10 ~ ab2@6 c2@7]/2", S: "f2 ~@4 f2 ~@2 g1 ab1 ~ ab1",
T: "bb1 ~@4 bb1 ~@3 bb1@2 ab1", U: "g1 ~@4 g1 ~@2 g1 g1@3", V: "c2 ~@2 c2 ~@4 b1@4",
W: "bb1 ~@4 bb1 ~@2 ab1 bb1@2 a1", X: "g1 ~@4 c2 ~@2 c2 d2@2 c2", Y: "f2 ~@4 f2 ~@2 g1 ab1@2 a1",
Z: "bb1 ~ d1@3 eb1@3 e1 f1@2 gb1", AA: "g1 ~@4 g1 ~@2 f2 g2@2 f2", AB: "c2 ~@2 c2@2 ~ c2@2 b1@4",
AC: "bb1 ~@3 f2 ab2 bb2 ab2 f2 bb1@2 ab1", AD: "g1 ~@4 c2@2 ~ c2 d2@2 c2", AE: "f1 ~@3 g2 ab2 a2 f2 c2 ab1@2 a1",
AF: "bb1 ~@4 bb1 ~@2 ab1 bb1@2 ab1", AG: "[g1 ~@4 g1 ~@2 g1 bb1@2 c2@33 c2@5 f2 ~@4 f2 ~@2 f2 c2@2]/5",
AH: "d2 f2 ~@4 f2 ~@2 f2 c2@2", AI: "d2 f2 ~@4 f2 ~@2 f2 c2 db2", AJ: "d2 f2 ~@4 f2 ~@2 g1 ab1@2",
AK: "ab1 a1 ~@4 a1 ~@2 a1 g1@2", AL: "[ab1 a1 ~@4 a1 ~@2 ab1 a1@3 bb1 ~@2 bb1 ~@2 a1 ~@2 a1 ~]/2",
AM: "~ g1 ~@2 g1 ~@2 c2 ~@2 c2 ~", AN: "~ f2@10 ~", AO: "[ab2@6 c2@7 f2 ~@4 f2 ~@2 g1 ab1 ~]/2",
AP: "ab1 bb1 ~@4 bb1 ~@3 bb1@2", AQ: "[ab1 g1 ~@4 g1 ~@2 g1 g1@3 c2 ~@2 c2 ~@4 b1@4 bb1 ~@4 bb1 ~@2 ab1 bb1@2]/3",
AR: "a1 g1 ~@4 c2 ~@2 c2 d2@2", AS: "c2 f2 ~@4 f2 ~@2 g1 ab1@2", AT: "a1 bb1 ~ d1@3 eb1@3 e1 f1@2",
AU: "gb1 g1 ~@4 g1 ~@2 f2 g2@2",
AV: "[f2@2 c2@2 ~@4 c2@4 ~@2 c2@4 b1@7 bb1 bb1@2 ~@6 f2@2 ab2@2 bb2@2 ab2@2 f2@2 bb1@4]/2",
AW: "ab1 g1 ~@4 c2@2 ~ c2 d2@2", AX: "c2 f2 ~@4 f2 ~@2 g1 ab1 ~", AY: "c2 f1 ~@3 g2 ab2 a2 f2 c2 ab1@2",
AZ: "a1 bb1 ~@4 bb1 ~@2 ab1 bb1@2", BA: "ab1 g1 ~@4 g1 ~@2 g1 bb1@2", BB: "[c2@11 ~]/3", BC: "~@2 f1 ~@3",
})).s("gm_electric_bass_finger").gain(0.4)
// chords · epiano2
const epiano2 = note(`<
~@3 A B C D E F G H I D J K L H M D E K L N O P E K L N M Q@5 R@2 S@2 R@2 T@2 R@2 S@2 R@2 T@2 U@4 V W X@2 R@2 S@2 R@2
T@2 U@4 V W X@2 Y Z AA AB Z AC Y AD AA AB Z AE AF AG AH@4 AI@2 AJ@2 AI@2 AK@7 AL AM AN AO AP AQ AR AS AT AU AV AQ AR
AS AW AU AP AQ AR AS AT AU AV AQ AR AS AW AU AS AX AY@3 AZ
>`.pickRestart({
A: "~@12 [f3,a3,d4,f4]@3 ~@3 [f3,a3,d4,f4]@3 ~ f2 ~", // Dm
B: "[f3,a3,d4,f4]@3 ~@3 [f3,a3,d4,f4]@3 ~ f2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@3 ~ f2 ~", // Dm Fm
C: "[f3,ab3,c4]@2 ~@4 [f3,ab3,c4]@3 ~@3 [f3,g3,b3]@2 ~@4 [f3,g3,b3]@3 ~ g2 ~", // Fm G7
D: "[f3,g3,b3]@2 ~@4 [f3,g3,b3]@4 c3 ~ [f3,bb3,d4]@2 ~@4 [f3,bb3,d4]@4 c3 ~", // G7 Bb
E: "[f3,bb3,d4]@3 ~ [b2,gb3,db4]@8 [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 bb2 ~, ~@4 a3@5 ~@15", // Bb Bsus2 Fm
F: "[f3,ab3,c4]@2 ~@4 [f3,ab3,c4]@4 g2 ~ [f3,g3,b3]@2 ~@4 [f3,g3,b3]@4 ~@2", // Fm G7
G: "[f3,bb3,d4]@2 ~@4 [f3,bb3,d4]@4 f2 ~ [f3,a3,d4,f4]@2 ~@4 [f3,a3,d4,f4]@3 ~ f2 ~", // Bb Dm
H: "[f3,a3,d4,f4]@2 ~@4 [f3,a3,d4,f4]@3 ~ bb2 ~ [f3,ab3,c4]@2 ~@4 [f3,ab3,c4]@3 ~ bb2 ~", // Dm Fm
I: "[f3,ab3,c4]@2 ~@2 [f3,ab3,c4]@6 ~@2 [f3,g3,b3]@3 ~@3 [f3,g3,b3]@3 ~ g2 ~", // Fm G7
J: "[f3,bb3,d4]@2 ~@4 [f3,bb3,d4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@3 ~ bb2 ~", // Bb Fm
K: "[f3,ab3,c4]@2 ~@4 [f3,ab3,c4]@4 g2 ~ [f3,g3,b3]@2 ~@4 [f3,g3,b3]@4 c3 ~", // Fm G7
L: "[f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 f2 ~ [f3,a3,d4,f4]@2 ~@4 [f3,a3,d4,f4]@3 ~ f2 ~", // Bb Dm
M: "[f3,ab3]@2 ~@4 [f3,ab3,c4]@3 ~ g2 ~ [f3,g3,b3]@2 ~@4 [f3,g3,b3]@3 ~ g2 ~, c4 ~@23", // Fm G7
N: "[f3,a3,d4,f4]@2 ~@4 [f3,a3,d4,f4]@4 bb2 ~ [f3,ab3,c4]@2 ~@4 [f3,ab3,c4]@4 bb2 ~", // Dm Fm
O: "[f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 g2 ~ [f3,g3,b3]@2 ~@4 [f3,g3,b3]@4 g2 ~", // Fm G7
P: "[f3,g3,b3]@2 ~@4 [f3,g3,b3]@4 c3 ~ [f3,bb3,d4]@2 ~@4 [f3,bb3,d4]@3 ~ c3 ~", // G7 Bb
Q: "[[f3,g3,b3]@3 ~ g2 ~ [f3,g3,b3]@3 ~ [f3,bb3,d4]@75 ~@3 [c3,bb3,d4,f4,a4]@31 ~]/5", R: "[[f2,g3,a3,c4]@47 ~]/2",
S: "[[f2,g3,bb3,d4]@23 ~]/2", T: "[f2,g3,bb3,d4]/2", U: "[a3 ab3 g3 ab3, [c4,e4]@23 ~]/2",
V: "[bb3,d4,f4]@2 ~@4 [bb3,d4,f4]@3 ~@3 [a3,d4,f4]@3 ~@3 [a3,d4,f4]@3 ~@3", // Bb Dm
W: "[g3,d4,f4] ~ [g3,d4,f4] ~ [c3,bb3,d4,f4] ~ [c3,bb3,d4,f4] ~", // G7 Bb
X: "[[f2,a3,c4,f4]@20 ~@2 [ab2,bb3,c4,f4]@11 ~ [c3,d4,f4,a4]@13 ~]/2", // F Fm Dm7
Y: "[f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 f2 ~ [f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 bb2 ~", // F
Z: "[f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 g2 ~", // Fm
AA: "[f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 ~@2", // G7
AB: "[f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 c3 ~ [f3,bb3,d4]@3 ~ [b2,gb3,db4]@7 ~, ~@16 a3@5 ~@3", // Bb Bsus2
AC: "[f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 ~@2 [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 f2 ~", // G7 Bb
AD: "[f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 g2 ~", // Fm
AE: "[f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 c3 ~ [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 f2 ~", // G7 Bb
AF: "[f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 f2 ~ [f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 ~@2", // F
AG: "[f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 ~@2", // Fm
AH: "[[f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@3 ~ [c3,f3,bb3,d4]@63 ~@3 [c3,f3,bb3,d4,f4]@8]/4", // G7 Bb
AI: "[~ [f2,g3,a3,c4]@23]/2", AJ: "[~ [f2,g3,bb3,d4]@23]/2",
AK: "[~@2 [f2,g3,bb3,d4]@48 a3@12 ab3@12 g3@12 ab3@12 a3@12 ab3@12 g3@12 ab3@12 [bb3,d4,f4]@2 ~@4 [bb3,d4,f4]@3 ~@3 [a3,d4,f4]@3 ~@3 [a3,d4,f4]@3 ~, ~@25 [c4,e4]@23 ~ [c4,e4]@23 ~@12]/7", // Gm7 Bb Dm C
AL: "~@2 [g3,d4,f4]@3 ~@3 [g3,d4,f4]@3 ~@3 [c3,bb3,d4,f4]@3 ~@3 [c3,bb3,d4,f4]@3 ~", AM: "~ [f2,a3,c4,f4]@10 ~",
AN: "[ab2,bb3,c4,f4]@11 ~ [c3,d4,f4,a4]@12", // Fm Dm7
AO: "~@2 [f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 f2 ~ [f3,a3,f4]@3 ~@3 [f3,a3,f4]@4", // F
AP: "bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4", // Fm
AQ: "g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4", // G7
AR: "~@2 [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 c3 ~ [f3,bb3,d4]@3 ~ [b2,gb3,a3,db4]@6", // Bb Gbm
AS: "~@2 [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4", // Fm
AT: "g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 ~@2 [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4", // G7 Bb
AU: "f2 ~ [f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 f2 ~ [f3,a3,f4]@3 ~@3 [f3,a3,f4]@4", // F
AV: "bb2 ~ [f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4", // Fm
AW: "g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 c3 ~ [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4", // G7 Bb
AX: "~@2 [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@3 ~", AY: "[[c3,f3,bb3,d4]@7 ~]/3",
AZ: "~@2 [f3,c4,d4,f4,a4] ~@3", // Dm7
})).s("gm_epiano2").gain(0.35)
// chords · electric guitar muted
const electric_guitar_muted = note(`<
~@35 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 C D E D F G H@2 A@2 B@2 A@2 B@2 C D E D F G H@2 I J K L J M I J K N J M I J O@2
~@2 P Q R@2 Q@2 R@2 S T U T V W X Y@2 Z AA AB@2 AC AD Z AA AE AF AC AD Z AA AB@2 AC AD Z AA AE AF AC AD Z AG AH ~@3
>`.pickRestart({
A: "[c4,d4,a4]@3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~ f3 ~", // D7
B: "[bb3,d4,g4]@3 ~ [bb3,d4,g4] ~ f3 ~ [bb3,d4,g4] ~ f3 ~ [bb3,d4,g4] ~ f3 ~ [bb3,d4,g4] ~ f3 ~ [bb3,d4,g4] ~ f3 ~", // Gm
C: "[c4,e4,a4]@2 ~@2 [c4,e4,a4] ~ a3 ~ [c4,e4,a4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~", // Am Caug
D: "[c4,e4,g4]@3 ~ [c4,e4,g4] ~ a3 ~ [c4,e4,g4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~", // C Caug
E: "[c4,e4,a4]@3 ~ [c4,e4,a4] ~ a3 ~ [c4,e4,a4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~", // Am Caug
F: "[bb3,d4,f4] ~@2 [bb3,d4,f4] ~@2 [a3,d4,f4] ~@2 [a3,d4,f4] ~@2", // Bb Dm
G: "[g3,d4,f4]@2 ~@4 [g3,d4,f4]@3 ~@3 [g3,c4,d4,f4]@3 ~@3 [g3,c4,d4,f4]@3 ~@3", // G7 Gsus4
H: "[[a3,c4,f4]@19 ~@3 [gb3,bb3,c4,f4]@10 ~@2 [bb3,c4,d4,f4]@14, f3@17 ~@31]/2", // F Gbmaj7 Bb
I: "[a3,c4,eb4]@3 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ f2 ~", // Adim
J: "[f3,ab3,c4]@2 ~@2 [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~", // Fm
K: "[f3,b3,d4]@2 ~@2 [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~", // Bdim
L: "[f3,bb3,d4]@3 ~ [f3,bb3,d4] ~ c3 ~ [f3,bb3,d4] ~ c3 ~ [f3,bb3,d4] ~@3 [gb3,a3]@8, ~@8 db4@3 ~", // Bb Gbm
M: "[f3,b3,d4]@2 ~@2 [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,bb3,d4] ~ c3 ~ [f3,bb3,d4] ~ c3 ~ [f3,bb3,d4] ~ c3 ~", // Bdim Bb
N: "[f3,bb3,d4]@2 ~@2 [f3,bb3,d4]@2 c3 ~ [f3,bb3,d4] ~ c3 ~ [f3,bb3,d4] ~@3 [gb3,a3]@7 ~, ~@16 db4@5 ~@3", // Bb Gbm
O: "[[f3,b3,d4]@2 ~@2 [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~@3 [bb3,d4,f4]@23 ~@3]/2", // Bdim Bb
P: "~@2 [c4,d4,a4]@3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~", // D7
Q: "f3 ~ [c4,d4,a4]@3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~ f3 ~ [c4,d4,a4] ~", // D7
R: "f3 ~ [bb3,d4,g4]@3 ~ [bb3,d4,g4] ~ f3 ~ [bb3,d4,g4] ~ f3 ~ [bb3,d4,g4] ~ f3 ~ [bb3,d4,g4] ~ f3 ~ [bb3,d4,g4] ~", // Gm
S: "f3 ~ [c4,e4,a4]@2 ~@2 [c4,e4,a4] ~ a3 ~ [c4,e4,a4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~", // Am Caug
T: "a3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4] ~ a3 ~ [c4,e4,g4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~", // C Caug
U: "a3 ~ [c4,e4,a4]@3 ~ [c4,e4,a4] ~ a3 ~ [c4,e4,a4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~ a3 ~ [c4,e4,ab4] ~", // Am Caug
V: "a3 ~ [bb3,d4,f4]@2 ~@4 [bb3,d4,f4]@2 ~@4 [a3,d4,f4]@2 ~@4 [a3,d4,f4]@2 ~@2", // Bb Dm
W: "~@2 [g3,d4,f4]@2 ~@4 [g3,d4,f4]@3 ~@3 [g3,c4,d4,f4]@3 ~@3 [g3,c4,d4,f4]@3 ~", // G7 Gsus4
X: "~@2 [a3,c4,f4]@19 ~@3, ~@2 f3@17 ~@5", // F
Y: "[[gb3,bb3,c4,f4]@10 ~@2 [bb3,c4,d4,f4]@14 [a3,c4,eb4]@3 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~]/2", // Gbmaj7 Bb Adim
Z: "f2 ~ [f3,ab3,c4]@2 ~@2 [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~", // Fm
AA: "bb2 ~ [f3,b3,d4]@2 ~@2 [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~", // Bdim
AB: "[g2 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4] ~ c3 ~ [f3,bb3,d4] ~ c3 ~ [f3,bb3,d4] ~@3 [gb3,a3]@8 [f3,ab3,c4]@2 ~@2 [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~, ~@3 db4 ~@4]/2", // Bb Gbm Fm
AC: "bb2 ~ [f3,b3,d4]@2 ~@2 [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,bb3,d4] ~ c3 ~ [f3,bb3,d4] ~ c3 ~ [f3,bb3,d4] ~", // Bdim Bb
AD: "c3 ~ [a3,c4,eb4]@3 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~", // Adim
AE: "g2 ~ [f3,bb3,d4]@2 ~@2 [f3,bb3,d4]@2 c3 ~ [f3,bb3,d4] ~ c3 ~ [f3,bb3,d4] ~@3 [gb3,a3,db4]@6", // Bb Gbm
AF: "~@2 [f3,ab3,c4]@2 ~@2 [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~", // Fm
AG: "bb2 ~ [f3,b3,d4]@2 ~@2 [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~@3", // Bdim
AH: "[bb3,d4,f4]@23 ~", // Bb
})).s("gm_electric_guitar_muted").gain(0.3).pan(0.2)
// other · overdriven guitar
const overdriven_guitar = note(`<
A@3 ~ B@3 C@3 ~@3 D E F ~ D G H ~ D E F ~ I G H ~ J K@2 L M ~@17 N@2 O P ~@12 N@2 O P ~@19 Q R M S T U V W X Y@2 Z@2
AA AB ~@32 AC AD AE
>`.pickRestart({
A: "[~@21 c4@2 ab4@2 ~@2 ab4 ~ f4 ~ eb4 ~ c4 ~ c5@2 bb4@2 ab4 ~ f4 ~ eb4 ~ c4 ~ c5@2 bb4@2 ab4@2 f4 ~ eb4@2 c4@2 bb4@2 a4@2 ab4 ~ g4@2 gb4@2 f4@2 ~]/3",
B: "[~@5 f4@4 ~@3 ab4@3 ~ f4@42 ~@7 bb3@3 ~ bb3@2 ~]/3", C: "[~ bb3@3 ~ bb3@3 ~@2 ab3@44 ~@18]/3",
D: "~@4 eb4@2 f4@3 ~ ab4@12 f4 ~", E: "ab4@4 f4 ~ ab4@4 f4@7 ~ f4@4 eb4 ~", F: "f4@3 ~ ab4@6 ~@14",
G: "ab4@4 f4 ~ ab4@4 f4@6 ~@2 f4@2 ~@2 f4 ~", H: "c5@3 ~ ab4@6 ~@14", I: "~@12 ab4@10 f4 ~",
J: "~@4 eb4 ~ f4@3 ~ ab4@12 f4 ~", K: "[ab4@4 f4 ~ ab4@4 f4@22 ~@2 c4 ~ ab4@2 ~@2 ab4 ~ f4 ~ eb4 ~ c4 ~]/2",
L: "c5@2 bb4@2 ab4 ~ f4 ~ eb4 ~ c4 ~ c5@2 bb4@2 ab4 ~ f4 ~ eb4 ~ c4 ~", M: "bb4@2 a4@2 ab4 ~ g4@2 gb4@2 f4@2 ~@12",
N: "[~@6 g3 ~ a3 ~ c4 ~ d4@6 c4@12 ~@18]/2", O: "~@6 g3 ~ a3 ~ c4 ~ d4@5 ~ d4@5 ~", P: "c4@13 ~@11", Q: "~@22 c4 ~",
R: "ab4@2 ~@2 ab4@2 f4@2 eb4 ~ c4 ~ c5@2 bb4@2 ab4 ~ f4 ~ eb4@2 c4 ~", S: "~@2 d5@11 ~ d5@10",
T: "~@2 d5@5 ~ d5@11 ~ d5@4", U: "~ d5@3 c5@6 a4 c5", V: "a4@2 g4@2 f4@2 d4 ~ f4@4 d4 ~ f4@4 g4@5 ~",
W: "~@2 c4 ~ d4 ~ f4 ~ g4@4 ~@2 c4 ~ d4 ~ f4 ~ g4@4", X: "~@2 c4 ~ d4 ~ f4 ~ g4@3 ~ g4@8 f4@2 d4@2",
Y: "[c4 ~ f4@5 ~ d5@3 ~ a4 ~ d5@5 ~ c5@2 a4 a4@2 ~ d5@2 e5@2 f5@2 gb5@2 g5@2 g5@2 a5@10]/2",
Z: "[~@8 g3 ~ a3 ~ c4 ~ d4@6 c4@12 ~@16]/2", AA: "~@8 g3 ~ a3 ~ c4 ~ d4@5 ~ d4@4", AB: "~@2 c4@13 ~@9",
AC: "c4 ~ ab4@2 ~@2 ab4 ~ f4 ~ eb4 ~ c4 ~ c5@2 bb4@2 ab4 ~ f4 ~ eb4 ~",
AD: "c4 ~ c5@2 bb4@2 ab4 ~ f4 ~ eb4 ~ c4 ~ bb4@2 a4@2 ab4 ~ g4@2 gb4@2", AE: "f4@2 ~@6 f3@3 ~@13",
})).s("gm_overdriven_guitar").gain(0.4)
// other · overdriven guitar
const overdriven_guitar_2 = note("<~@93 A@4 B C@2 D E@2 F@2 ~@35>".pickRestart({
A: "[~@3 d5@11 ~ d5@11 ~ d5@5 ~ d5@11 ~ d5@5 ~ d5@6 c5@12 a4@2 c5@2 a4@2 g4@2 f4@2 d4 ~ f4@4 d4 ~ f4@4 g4@5]/4",
B: "~@3 c4 ~ d4 ~ f4 ~ g4@4 ~@2 c4 ~ d4 ~ f4 ~ g4@3",
C: "[~@3 c4 ~ d4 ~ f4 ~ g4@3 ~ g4@8 f4@2 d4@2 c4 ~ f4@5 ~ d5@3 ~ a4 ~ d5@5 ~ c5@2 a4]/2",
D: "a4@2 ~@2 e5@2 ~ f5@2 gb5@2 g5@2 g5@2 a5@9, ~@3 d5@2 ~@19", E: "[~@9 g3 ~ a3 ~ c4 ~ d4@6 c4@12 ~@15]/2",
F: "[~@9 g3 ~ a3 ~ c4 ~ d4@5 ~ d4@5 ~ c4@13 ~@8]/2",
})).s("gm_overdriven_guitar").gain(0.35).pan(1)
// other · overdriven guitar
const overdriven_guitar_3 = note("<~@35 A B C ~ A B C ~@98>".pickRestart({
A: "~ d3 f3 g3 a3 c4 d4@2 f4 ~ g4 ~", B: "g4@2 f4 ~ d4 ~ c4@2 d4 ~ a3 ~", C: "g3@3 ~",
})).s("gm_overdriven_guitar").gain(0.46).pan(0.3)
// other · trumpet
const trumpet = note(`<
A B C D ~@3 E ~@3 E ~@7 E ~@5 E ~@4 F@2 G H@2 ~@3 I ~@3 I ~@8 J K J K L M N@2 ~@3 I ~@4 J K J K L M N@2 ~@3 O ~@3 P ~
O ~@4 Q@2 R S ~@8 T@4 U V W X ~@3 Y ~@3 Z AA Y ~@5 Y ~@3 AB AA Y ~@5 AC@2 AD AE
>`.pickRestart({
A: "~@21 c4 ~ ab4", B: "~@3 ab4 ~ f4 ~ eb4 ~ c4 ~ c5 ~ bb4 ~ ab4 ~ f4 ~ eb4 ~ c4 ~ c5",
C: "~ bb4 ~ ab4 ~ f4 ~ eb4 ~ c4 ~ bb5 ~ a5 ~ ab5 ~ g5 ~ gb5 ~ f5 ~@2", D: "~@3 ab5@10 ~@11", E: "~@2 ab5@3 ~@7",
F: "[~@34 c4 ~ ab4@2 ~@2 ab4 ~ f4 ~ eb4 ~ c4 ~, ~@5 bb5@13 ~@6]/2",
G: "c5 ~ bb4 ~ ab4 ~ f4 ~ eb4 ~ c4 ~ c5 ~ bb4 ~ ab4 ~ f4 ~ eb4 ~ c4 ~",
H: "[bb5 ~ a5 ~ ab5 ~ g5 ~ gb5 ~ f5 ~@5 bb5@25 ~@7]/2", I: "~@4 f5 ~ f5 ~ d5 ~ f5 ~@5 f5 ~ g5 ~ ab5 ~ a5@2",
J: "a4 ab4", K: "g4@4 ab4 ~@3", L: "d4 ~@2 d4 ~@2 d4 ~@2 d4 ~@2", M: "d4@2 ~@4 d4@2 ~@4 f4@3 ~@3 f4@2 ~@4",
N: "[f4@19 ~@3 f4@10 ~@2 c5@13 ~]/2", O: "~@8 ab5@3 ~", P: "~@4 ab5 ~ ab5@2 f5 ~ ab5 ~@5 ab5 ~ bb5@2 b5 ~ c6 ~",
Q: "[~@46 c4 ~, ~@11 bb5@13]/2", R: "ab4@2 ~@2 ab4 ~ f4 ~ eb4 ~ c4 ~ c5 ~ bb4 ~ ab4 ~ f4 ~ eb4 ~ c4 ~",
S: "bb5 ~ a5 ~ ab5 ~ g5 ~ gb5 ~ f5 ~@5 bb5@8", T: "[~@2 a4@12 ab4@12 g4@12 ab4@3 ~@7]/2",
U: "~ d4 ~@2 d4 ~@2 d4 ~@2 d4 ~", V: "~@2 d4@2 ~@4 d4@2 ~@4 f4@3 ~@3 f4@2 ~@2", W: "~@2 f4@19 ~@3", X: "f4@5 ~ c5@6",
Y: "~@3 ab5", Z: "~@6 ab5 ~ ab5@2 f5 ~ ab5 ~@3 ab5 ~ ab5 ~ bb5@2 b5 ~", AA: "c6 ~@23",
AB: "~@6 ab5 ~ ab5@2 f5 ~ ab5 ~@5 ab5 ~ bb5@2 b5 ~",
AC: "[~@24 c4 ~ ab4@2 ~@2 ab4 ~ f4 ~ eb4 ~ c4 ~ c5 ~ bb4 ~ ab4 ~ f4 ~ eb4 ~, bb5@13 ~@11]/2",
AD: "c4 ~ c5 ~ bb4 ~ ab4 ~ f4 ~ eb4 ~ c4 ~ bb5 ~ a5 ~ ab5 ~ g5 ~ gb5 ~", AE: "f5 ~@7 [f5,f6]@4 ~@12",
})).s("gm_trumpet").gain(0.45).pan(0.3)
// other · tenor sax
const tenor_sax = note(`<
~ A B C ~@3 D ~@3 D ~ E@3 ~ F@3 ~ E@3 ~ G@3 ~ H@3 I J@2 ~@22 K@2 ~@2 L@4 M@2 ~@6 K@2 ~ N@3 ~ O@3 ~ P Q@2 ~ R@3 I S@2
~@13 T U@2 V W X ~ V W Y Z AA AB AC ~ V W X ~ V W AD Z AA AB AC ~ V W AE@2 AF AG
>`.pickRestart({
A: "~@23 c4", B: "~ bb3 ~ ab3 ~ f3 ~ eb3 ~ c3 ~ bb3 ~ a3 ~ ab3 ~ g3 ~ gb3 ~ f3 ~@2", C: "~@3 e4@10 ~@11",
D: "~@2 c4@3 ~@7", E: "[~@4 eb3@2 f3@4 ab3@18 f3@2 ab3@4 f3@19 ~@19]/3",
F: "[~@2 eb3 f3@2 ab3@9 f3 ab3@2 f3@9 c4@3 ~@7]/3", G: "[~@4 c4@6 ~@2 ab3@15 ~ f3@2 ab3@4 f3@19 ~@19]/3",
H: "[~@2 eb3 f3@2 ab3@9 f3 ab3@2 f3@13 ~@6]/3", I: "~@12 c4 ~ bb3 ~ ab3 ~ f3 ~ eb3 ~ c3 ~",
J: "[bb3 ~ a3 ~ ab3 ~ g3 ~ gb3 ~ f3 ~@5 f3@25 ~@7]/2", K: "[f3@21 ~ ab3@10 ~@2 c3@14]/2",
L: "[~@18 c4@4 bb3@14 ~@6 bb3@3 ~ c4@43 ~@7]/4", M: "[g3@7 ~]/2", N: "[~@8 eb3 f3@2 ab3@9 f3 ab3@2 f3@9 c4@3 ~]/3",
// … 93 more lines
More by Earth, Wind & Fire
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.