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: 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 J K L G H M D E N O P Q D E N O P R S@5 T@2 U@2 T@2 V@2 T@2 U@2 T@2 V@2 W@2 X@2 Y Z AA@2 T@2 U@2
T@2 V@2 W@2 X@2 Y Z AA@2 AB AC AD AE AC AF AB AG AD AH AI AJ AK AL AM@4 AN@2 AO@2 AP@8 AQ AR AS AT AU AV AW AX AY AZ
BA BB AW BC@2 BD BA AV AW AX AY AZ BA BB AW BC@2 BD BA BE BF BG@3 BH
>`.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,g3,b3]@2 ~@4 [f3,g3,b3]@4 c3 ~ [f3,bb3,d4]@2 ~@4 [f3,bb3,d4]@3 ~ c3 ~", // G7 Bb
K: "[f3,bb3,d4]@2 ~@4 [f3,bb3,d4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@3 ~ bb2 ~", // Bb Fm
L: "[f3,ab3,c4]@2 ~@4 [f3,ab3,c4]@3 ~ g2 ~ [f3,g3,b3]@2 ~@4 [f3,g3,b3]@4 c3 ~", // Fm G7
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,ab3,c4]@2 ~@4 [f3,ab3,c4]@4 g2 ~ [f3,g3,b3]@2 ~@4 [f3,g3,b3]@4 c3 ~", // Fm G7
O: "[f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 f2 ~ [f3,a3,d4,f4]@2 ~@4 [f3,a3,d4,f4]@3 ~ f2 ~", // Bb Dm
P: "[f3,a3,d4,f4]@2 ~@4 [f3,a3,d4,f4]@4 bb2 ~ [f3,ab3,c4]@2 ~@4 [f3,ab3,c4]@4 bb2 ~", // Dm Fm
Q: "[f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 g2 ~ [f3,g3,b3]@2 ~@4 [f3,g3,b3]@4 g2 ~", // Fm G7
R: "[f3,ab3,c4]@2 ~@4 [f3,ab3,c4]@4 g2 ~ [f3,g3,b3]@2 ~@4 [f3,g3,b3]@4 g2 ~", // Fm G7
S: "[[f3,g3,b3]@3 ~ g2 ~ [f3,g3,b3]@3 ~ [f3,bb3,d4]@75 ~@3 [c3,bb3,d4,f4,a4]@31 ~]/5", T: "[[f2,g3,a3,c4]@47 ~]/2",
U: "[[f2,g3,bb3,d4]@23 ~]/2", V: "[f2,g3,bb3,d4]/2", W: "[a3 ab3 g3 ab3, [c4,e4]@23 ~]/2",
X: "[a3@12 ab3@12 g3@12 ab3@11 ~, [c4,e4]@47 ~]/2", // C
Y: "[bb3,d4,f4]@2 ~@4 [bb3,d4,f4]@3 ~@3 [a3,d4,f4]@3 ~@3 [a3,d4,f4]@3 ~@3", // Bb Dm
Z: "[g3,d4,f4] ~ [g3,d4,f4] ~ [c3,bb3,d4,f4] ~ [c3,bb3,d4,f4] ~", // G7 Bb
AA: "[[f2,a3,c4,f4]@20 ~@2 [ab2,bb3,c4,f4]@11 ~ [c3,d4,f4,a4]@13 ~]/2", // F Fm Dm7
AB: "[f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 f2 ~ [f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 bb2 ~", // F
AC: "[f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 g2 ~", // Fm
AD: "[f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 ~@2", // G7
AE: "[f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 c3 ~ [f3,bb3,d4]@3 ~ [b2,gb3,db4]@7 ~, ~@16 a3@5 ~@3", // Bb Bsus2
AF: "[f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 ~@2 [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 f2 ~", // G7 Bb
AG: "[f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 g2 ~", // Fm
AH: "[f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 c3 ~ [f3,bb3,d4]@3 ~ [b2,db4]@8, ~@8 [gb3,a3]@3 ~", // Bb Bsus2 Gbm
AI: "[f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 g2 ~", // Fm
AJ: "[f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 c3 ~ [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 f2 ~", // G7 Bb
AK: "[f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 f2 ~ [f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 ~@2", // F
AL: "[f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 ~@2", // Fm
AM: "[[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
AN: "[~ [f2,g3,a3,c4]@23]/2", AO: "[~ [f2,g3,bb3,d4]@23]/2",
AP: "[~@2 [f2,g3,a3,c4]@47 ~ [f2,g3,bb3,d4]@48 a3@12 ab3@12 g3@12 ab3@12 a3@12 ab3@12 g3@12 ab3@10, ~@49 [c4,e4]@23 ~ [c4,e4]@23]/8", // F Gm7 C
AQ: "~@2 [bb3,d4,f4]@2 ~@4 [bb3,d4,f4]@3 ~@3 [a3,d4,f4]@3 ~@3 [a3,d4,f4]@3 ~", // Bb Dm
AR: "~@2 [g3,d4,f4]@3 ~@3 [g3,d4,f4]@3 ~@3 [c3,bb3,d4,f4]@3 ~@3 [c3,bb3,d4,f4]@3 ~", AS: "~ [f2,a3,c4,f4]@10 ~",
AT: "[ab2,bb3,c4,f4]@11 ~ [c3,d4,f4,a4]@12", // Fm Dm7
AU: "~@2 [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]@3 ~@3 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4", // Fm
AW: "g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4", // G7
AX: "~@2 [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 c3 ~ [f3,bb3,d4]@3 ~ [b2,gb3,a3,db4]@6", // Bb Gbm
AY: "~@2 [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4", // Fm
AZ: "g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 ~@2 [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4", // G7 Bb
BA: "f2 ~ [f3,a3,f4]@3 ~@3 [f3,a3,f4]@4 f2 ~ [f3,a3,f4]@3 ~@3 [f3,a3,f4]@4", // F
BB: "bb2 ~ [f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4", // Fm
BC: "[~@2 [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4 c3 ~ [f3,bb3,d4]@3 ~ [b2,db4]@8 [f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4, ~@3 [gb3,a3] ~@4]/2", // Bb Bsus2 Fm Gbm
BD: "g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 c3 ~ [f3,bb3,d4]@3 ~@3 [f3,bb3,d4]@4", // G7 Bb
BE: "~@2 [f3,ab3,c4]@4 ~@2 [f3,ab3,c4]@4 bb2 ~ [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4", // Fm
BF: "~@2 [f3,g3,b3]@3 ~@3 [f3,g3,b3]@4 g2 ~ [f3,g3,b3]@3 ~@3 [f3,g3,b3]@3 ~", BG: "[[c3,f3,bb3,d4]@7 ~]/3",
BH: "~@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 O P@2
~@2 Q R S@2 R@2 S@2 T U V U W X Y Z@2 AA AB AC@2 AD AE AA AB AF AG AD AE AA AB AC@2 AD AE AA AB AF AG AD AE AH AI AJ
~@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,ab3,c4]@3 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~", // Fm
P: "[[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
Q: "~@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
R: "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
S: "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
T: "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
U: "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
V: "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
W: "a3 ~ [bb3,d4,f4]@2 ~@4 [bb3,d4,f4]@2 ~@4 [a3,d4,f4]@2 ~@4 [a3,d4,f4]@2 ~@2", // Bb Dm
X: "~@2 [g3,d4,f4]@2 ~@4 [g3,d4,f4]@3 ~@3 [g3,c4,d4,f4]@3 ~@3 [g3,c4,d4,f4]@3 ~", // G7 Gsus4
Y: "~@2 [a3,c4,f4]@19 ~@3, ~@2 f3@17 ~@5", // F
Z: "[[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
AA: "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
AB: "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
AC: "[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
AD: "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
AE: "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
AF: "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
AG: "~@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
AH: "f2 ~ [f3,ab3,c4]@3 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~ bb2 ~ [f3,ab3,c4] ~", // Fm
AI: "bb2 ~ [f3,b3,d4]@2 ~@2 [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~@3", // Bdim
AJ: "[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 ~ G H I ~ D E F ~ J K I ~ G L@2 M N ~@17 O@2 P Q ~@12 O@2 P Q ~@19 R S N T U V W X Y Z@2 AA@2
AB AC ~@32 AD AE AF
>`.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: "~@4 eb4 ~ f4@3 ~ ab4@12 f4 ~", H: "ab4@4 f4 ~ ab4@4 f4@6 ~@2 f4@2 ~@2 f4 ~", I: "c5@3 ~ ab4@6 ~@14",
J: "~@12 ab4@10 f4 ~", K: "ab4@4 f4 ~ ab4@4 f4@7 ~ f4@3 ~ f4 ~",
L: "[ab4@4 f4 ~ ab4@4 f4@22 ~@2 c4 ~ ab4@2 ~@2 ab4 ~ f4 ~ eb4 ~ c4 ~]/2",
M: "c5@2 bb4@2 ab4 ~ f4 ~ eb4 ~ c4 ~ c5@2 bb4@2 ab4 ~ f4 ~ eb4 ~ c4 ~", N: "bb4@2 a4@2 ab4 ~ g4@2 gb4@2 f4@2 ~@12",
O: "[~@6 g3 ~ a3 ~ c4 ~ d4@6 c4@12 ~@18]/2", P: "~@6 g3 ~ a3 ~ c4 ~ d4@5 ~ d4@5 ~", Q: "c4@13 ~@11", R: "~@22 c4 ~",
S: "ab4@2 ~@2 ab4@2 f4@2 eb4 ~ c4 ~ c5@2 bb4@2 ab4 ~ f4 ~ eb4@2 c4 ~", T: "~@2 d5@11 ~ d5@10",
U: "~@2 d5@5 ~ d5@11 ~ d5@4", V: "~ d5@3 c5@6 a4 c5", W: "a4@2 g4@2 f4@2 d4 ~ f4@4 d4 ~ f4@4 g4@5 ~",
X: "~@2 c4 ~ d4 ~ f4 ~ g4@4 ~@2 c4 ~ d4 ~ f4 ~ g4@4", Y: "~@2 c4 ~ d4 ~ f4 ~ g4@3 ~ g4@8 f4@2 d4@2",
Z: "[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",
AA: "[~@8 g3 ~ a3 ~ c4 ~ d4@6 c4@12 ~@16]/2", AB: "~@8 g3 ~ a3 ~ c4 ~ d4@5 ~ d4@4", AC: "~@2 c4@13 ~@9",
AD: "c4 ~ ab4@2 ~@2 ab4 ~ f4 ~ eb4 ~ c4 ~ c5@2 bb4@2 ab4 ~ f4 ~ eb4 ~",
AE: "c4 ~ c5@2 bb4@2 ab4 ~ f4 ~ eb4 ~ c4 ~ bb4@2 a4@2 ab4 ~ g4@2 gb4@2", AF: "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 ~ D 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 ~",
D: "~@2 f3 g3 a3 c4 d4@2 f4 ~ g4 ~, ~@3 d3@2 ~@19",
})).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",
// … 106 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.