0:00/0:00
// I Need You — America
// 66 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 20, 4/4 at bar 20, 3/4 at bar 35, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 53 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(66/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("<~@18 A B@2 C@2 D E F G@8 H@5 I@2 J@2 K@3 L M N O P@3>".pickRestart({
A: "~@15 d2@5 ~ d2@3", B: "[~@3 d2@2 e2@9 ~@3 e2@9 ~@3 a1@14 ~@4 a1@2 ~@4 a1@20 ~@4 a1@16 ~ a1@2]/2",
C: "[~@4 a1@16 ~ a1@3 ~ g1@3 e1@16 ~@2 e1@4 ~ g1@9 ~@3 g1@11 ~ c2@15 ~@3 c2@2 ~]/2",
D: "~@3 c2@10 ~ c2@3 ~@3 c2@3 b1@2 ~ a1@14 ~@3 a1@3 ~@2", E: "~ a1@11 ~ a1@10 ~@2 a1@16 ~@3 a1@3 ~",
F: "~ a1@17 ~ g1@6 e1@16 ~ e1@6",
G: "[g1@12 a1@6 b1@5 ~ c2@14 ~@4 c2@3 ~@2 c2@10 ~@3 c2@11 f1@15 ~@3 f1@3 ~@3 f1@12 f2@6 e2@6 d2@17 a1@6 d2@10 ~@2 d2@12 g1@15 ~@2 g1@3 ~@3 g1@11 ~@2 g1@8 f#1@2 ~ e1@15 ~@3 e1@3 ~@2 e1@16 ~@3 e1@3 ~@2 b1@15 ~@3 b1@3 ~@3 b1@10 ~@2 b1@3 a1@8 ~ g1@15 ~@3 g1@2 ~@3 g1@10 ~@2 b1@11 ~ c2@10 ~ c2@3 ~@3 c2@12]/8",
H: "[~@6 a1@10 ~@2 a1@2 ~@4 a1@18 g1@13 ~@5 g1 ~@5 g1@10 ~@2 g1@10 ~@2 e1@12 ~@5 e1@3 ~@2 e1@16 ~@3 e1@3 ~@2 b1@15 ~@3 b1@3 ~@3 b1@10 ~@2 b1@3 a1@9 g1@15 ~@3 g1@2 ~@3 b1@10 ~@2 b1@11 ~ c2@9]/5",
I: "[~@2 c2@3 ~@3 c2@17 ~ a1@10 ~@2 a1@2 ~@4 a1@18 g1@13 ~@5 g1 ~@5 g1@10]/2",
J: "[~@2 g1@10 ~ e1@12 ~@6 e1@3 ~@2 e1@16 ~@3 e1@3 ~@2 b1@15 ~@3 b1@3 ~@3 b1@10 ~@2]/2",
K: "[b1@3 a1@9 g1@15 ~@3 g1@2 ~@3 g1@10 ~@2 b1@11 ~ c2@10 ~ c2@3 ~@3 c2@17 ~ a1@10 ~@2 a1@2 ~@3 a1@19 g1@13 ~]/3",
L: "~@4 g1 ~@5 g1@10 ~@2 g1@10 ~ e1@15", M: "~@3 e1@3 ~@2 e1@15 ~@4 e1@3 ~@2 b1@15 ~",
N: "~@2 b1@3 ~@2 b1@10 ~@3 b1@3 a1@9 g1@15 ~", O: "~@2 g1@2 ~@3 g1@10 ~@2 b1@11 ~ c2@10 ~ c2@3 ~@3",
P: "[c2@17 ~ a1@10 ~@2 a1@2 ~@3 a1@19 g1@13 ~@5 g1 ~@4 g1@48 ~@19]/3",
})).s("gm_electric_bass_finger").gain(0.27)
// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@10 A@2 B C D E B F G ~@10 H@3 I J K L M@2 N@2 O P Q R@7 S T ~>".pickRestart({
A: "[~@45 d4@2 e4@6 ~ g4@27 ~@3 d4@8 e4@4]/2", B: "g4@8 g4@2 ~@2 g4@9 b4@3 g4@7 ~@3 g4@2 e4@9 d4@3",
C: "e4@6 f#4@20 ~@10 [d4,b4]@3 [e4,c5]@9", // G C
D: "[g4,d5]@7 ~@2 [g4,d5]@2 ~ [g4,d5]@9 [b4,d5]@3 [g4,d5]@7 ~@2 [g4,d5]@3 [e4,c5]@9 [d4,b4]@3", // G5 Bm G5 C G
E: "[e4,c5]@6 [f#4,d5]@17 ~@13 d4@4 e4@8", F: "e4@2 f#4@5 ~ [d4,f#4]@4 [e4,g4]@4", G: "[f#4,a4]@5 ~@3",
H: "[~@19 d4@2 e4@6 ~ g4@27 ~@2 d4@8 ~ e4@3 g4@8 g4 ~@3 g4@9 b4@3 g4@7 ~@2 g4@3 e4@9 d4@3 e4@5 f#4@20 ~@2]/3",
I: "~@8 [d4,b4]@3 [e4,c5]@9 [g4,d5]@7 ~@2 [g4,d5]@2 [g4,d5]@9 [b4,d5]@3 [f#4,d5]@5", // G C G5 Bm D
J: "~@4 [f#4,d5]@3 [e4,c5]@9 ~ b4@2 [e4,c5]@6 [g4,d5]@13 ~@10, ~@16 d4@3 ~@29", // D C G5
K: "~@4 b4@2 c5@5 d5@12 ~@16 g4@3 a4@6", L: "b4@14 ~@16 d4@8 e4@3 g4@7",
M: "[~ g4 ~@3 g4@9 b4@3 g4@7 ~@2 g4@3 e4@9 d4@3 e4@5 f#4@20 ~@10 [d4,b4]@3 [e4,c5]@9 [g4,d5]@7 ~]/2", // G C G5
N: "[~ [g4,d5]@2 [g4,d5]@9 [b4,d5]@3 ~ [f#4,d5]@7 ~ [f#4,d5]@3 [e4,c5]@9 ~ b4@2 [e4,c5]@6 [g4,d5]@13 ~@14 b4@2 c5@5 d5@12 ~@5, ~@12 d4 ~@19]/2", // G5 Bm D C G5
O: "~@11 g4@3 a4@6 b4@14 ~@14", P: "~@2 d4@8 e4@4 g4@6 ~ g4 ~@3 g4@9 b4@3 g4@7 ~@2 g4@2",
Q: "~ e4@9 d4@3 e4@5 f#4@20 ~@10",
R: "[[d4,b4]@3 [e4,c5]@9 [g4,d5]@7 ~ [g4,d5]@2 ~ [g4,d5]@9 [b4,d5]@3 [f#4,d5]@7 ~@2 [f#4,d5]@3 [e4,c5]@9 ~ b4@2 [e4,c5]@6 [g4,d5]@13 ~@14 b4@2 c5@5 d5@12 ~@16 g4@3 a4@6 b4@14 ~@16 d4@8 e4@4 g4@7 g4 ~@2 g4@9 b4@4 g4@7 ~@2 g4@3 e4@9 d4@3 e4@5 f#4@20 ~@10 [d4,b4]@3 [e4,c5]@9 [g4,d5]@7 ~ [g4,d5]@2 ~ [g4,d5]@9 [b4,d5]@3 [f#4,d5]@7 ~@2 [f#4,d5]@3 [e4,c5]@9 [d4,b4]@3 [e4,c5]@6 [g4,d5]@11, ~@56 d4@3 ~@277]/7", // G C G5 Bm D C G5 G …
S: "~@16 b4@2 c5@5 d5@12 ~@13", T: "~@3 g4@3 a4@6 b4@14 ~@22",
})).s("gm_electric_guitar_jazz").gain(0.27).pan(0.4)
// chords · piano
const piano = note("<~ A B C D E B C D F G H I J K L M N O P@4 Q R S T U@8 V@6 W X@8 Y Z@2>".pickRestart({
A: "~ a2 ~ a2 ~ a2 ~ a2, [e3,a3,c#4,e4]@11 ~ [e3,a3,c#4,e4]@11 ~ [e3,a3,c#4,e4]@11 ~ [e3,a3,c#4,e4]@10 ~@2", // A
B: "~ a2 ~ a2 ~ a2 ~ a2, [e3,g#3,c#4,e4]@10 ~@2 [e3,g#3,c#4,e4]@11 ~ [e3,g#3,c#4,e4]@12 [e3,g#3,c#4,e4]@10 ~@2", // C#m
C: "~@6 e2@6 ~@6 e2@6 [g2,e3,g3,b3,d4]@11 ~ [g2,e3,g3,b3,d4]@10 ~@2, [e3,g3,b3,d4]@11 ~ [e3,g3,b3,d4]@10 ~@26", // Em7
D: "[e3,g3,c4,e4]@11 ~@7 c2@3 ~@3 [c2,e3,g3,c4,e4]@10 ~@2 [c2,e3,g3,c4,e4]@11 ~, c2 ~@2, ~@12 [e3,g3,c4,e4]@11 ~@25", // C
E: "~ a2 ~ a2 ~ a2 ~ a2, [e3,a3,e4]@11 ~ [e3,a3,c#4,e4]@11 ~ [e3,a3,c#4,e4]@11 ~ [e3,a3,c#4,e4]@10 ~@2", // A5 A
F: "~@6 f2@6 ~@29 f2@3 e2@4, [f3,a3,c4,e4]@10 ~@2 [f3,a3,c4,e4]@11 e4@10 ~@3 [c4,e4]@8 ~@4, ~@18 f2@10 ~ f2@10 ~@9, ~@24 [f3,a3,c4]@10 ~ [f3,a3]@8 ~@5", // Fmaj7 C F
G: "[d2,d3,a3,c4]@10 ~@2 d2@5 ~ d2@6 ~@6 d2@6 ~@5 d2@6 ~, f#3@23 ~@25, ~@12 [d3,a3,c4]@11 ~ [d3,f#3,a3,c4]@11 ~ [d3,f#3,a3,c4]@11 ~", // D7
H: "~ g2 ~ g2 ~ g2 ~ g2, [g3,b3,d4,g4]@11 ~ [g3,b3,d4,g4]@11 ~ [g3,b3,d4,g4]@10 ~@2 [g3,b3,d4,g4]@10 ~@2", // G
I: "~ e2 ~ e2 ~ e2 ~ e2, [e3,g3,b3,e4]@5 ~ [e3,g3,b3,e4]@5 ~ [e3,g3,b3,e4]@5 ~ [e3,g3,b3,e4]@5 ~", // Em
J: "~@6 b1@6 ~@6 b1@6 [d3,f#3,b3,d4]@7 ~@5 [d3,f#3,a3,b3,d4]@9 ~@3, [d3,f#3,b3,d4]@10 ~@2 [d3,f#3,b3,d4]@11 ~@8 b1@13 ~@4", // Bm Bm7 Bm
K: "[g3,b3,e4,g4]@5 ~ [g3,b3,e4,g4]@3 g2@3 [g3,b3,d4,e4,g4]@5 ~@4 d2@3, g2@3 ~@3 d2@4 ~@2, ~@18 [g3,b3,d4,e4,g4]@5 ~", // Em Em7
L: "[g3,b3,d4,f#4]@10 ~@8 g2@3 ~@3 [g3,b3,d4,f#4]@10 ~@2 [g3,b3,d4,f#4]@9 ~@3, g2@16 ~@8 g2@17 ~@7, ~@6 [g3,b3,d4,f#4]@5 ~@13", // Gmaj7
M: "[e3,g3,b3,e4]@10 ~@8 e2@6 ~@6 e2@6 ~@6 e2@5 ~, e2@6 [e3,g3,b3,e4]@5 ~ [e3,g3,b3,e4]@5 ~ [e3,g3,b3,e4]@5 ~", // Em
N: "[b1,d3,f#3,b3,d4]@5 ~ [b1,d3,f#3,b3,d4]@11 ~@7", O: "~@31 f#3@10 ~ [d3,f#3,a3]@6, ~@15 [d3,a3]@5 ~@4",
P: "[~@3 [d3,a3]@3 [e3,g#3,b3]@10 ~ [e3,g#3,b3]@10 ~@8 a2@6 ~@6 a2@6 ~@6 a2@6 ~@6 a2@6 ~@5 a2@6 ~@6 a2@6 ~@6 a2@6 ~@6 a2@6 ~@17 e2@6 [g2,e3,g3,b3,d4]@11 ~ [g2,e3,g3,b3,d4]@10 ~@2 [e3,g3,c4,e4]@10 ~@2 [e3,g3,c4,e4]@6 c2@3, ~@29 [e3,a3,e4]@11 ~ [e3,a3,c#4,e4]@11 ~ [e3,a3,c#4,e4]@11 ~ [e3,a3,c#4,e4]@10 ~@2 [e3,g#3,c#4,e4]@10 ~ [e3,g#3,c#4,e4]@11 ~ [e3,g#3,c#4,e4]@12 [e3,g#3,c#4,e4]@10 ~@2 [e3,g3,b3,d4]@11 d4@10 ~@47, ~@130 e2@6 [e3,g3,b3]@10 ~@25 c2@12 ~@9]/4", // D5 E Em7 C A5 A C#m Em7 …
Q: "~@3 [c2,e3,g3,c4,e4]@10 ~@2 [c2,e3,g3,c4,e4]@10 ~@7 a2@6 ~@6 a2@4, ~@26 [e3,a3,e4]@11 ~ [e3,a3,c#4,e4]@10", // C A5 A
R: "~@8 a2@6 ~@6 a2@6 ~@17 a2@5, ~@2 [e3,a3,c#4,e4]@11 ~ [e3,a3,c#4,e4]@10 ~@2 [e3,g#3,c#4,e4]@10 ~ [e3,g#3,c#4,e4]@11, ~@4 a2 ~", // A C#m
S: "~@7 a2@6 ~@6 a2@6 ~@6 e2@6 ~@5 e2@6, ~ [e3,g#3,c#4,e4]@12 [e3,g#3,c#4,e4]@10 ~@2 [e3,g3,b3,d4]@11 ~ [e3,g3,b3,d4]@10 ~", // C#m Em7
T: "~ [e3,g3,b3,d4]@11 [g2,e3,g3,b3,d4]@10 ~@2 [e3,g3,c4,e4]@10 ~@8 c2@3 ~@3, g2@10 ~@14 c2@12 [e3,g3,c4,e4]@11 ~", // Em7 C
U: "[[c2,e3,g3,c4,e4]@10 ~@2 [c2,e3,g3,c4,e4]@10 ~@7 f2@6 ~@23 [f3,a3,c4,e4]@6 f2@3 e2@3 ~ [d3,a3,c4]@10 ~@7 d2@6 ~@6 d2@6 ~@5 d2@6 ~@6 g2@7 ~@6 g2@5 ~@7 g2@5 [g3,b3,d4,g4]@7 g2@5 ~@6 e2@6 ~@6 e2@6 ~@6 e2@6 ~@5 e2@5 ~@7 b1@6 ~@6 b1@6 [d3,f#3,b3,d4]@7 ~@5 b3@3 a3@8 ~ [g3,b3,d4,g4]@10 ~@7 g2@6 [g3,b3,d4,f#4]@10 ~@8 b2@6 [c3,g3,c4,d4,e4,g4]@15 ~@3 [c3,g3,c4,d4,e4,g4]@15 ~@3 a3@15 ~@2 [a2,e3,g3,a3,c4,e4]@15 ~@3 [g3,b3,d4,g4]@6, ~@23 [f3,c4,e4]@10 ~@2 [f3,a3,c4,e4]@11 e4@10 ~@26 d2@5 ~@156 b1@12 ~@129, ~@24 a3@10 ~@7 f2@10 ~ f2@10 ~@8 d2@8 ~@4 d3@10 ~@2 [d3,f#3,a3,c4]@11 ~ [d3,f#3,a3,c4]@11 ~@48 [e3,g3,b3,e4]@10 ~@2 [e3,g3,b3,e4]@10 ~@2 [e3,g3,b3,e4]@10 ~@2 [e3,g3,b3,e4]@9 ~@2 [d3,f#3,b3,d4]@10 ~@2 [d3,f#3,b3,d4]@10 ~@14 [d3,f#3,d4]@9 ~@3 g2@12 ~@11 b2@12 ~@47 [a2,c4,e4,g4]@17 ~@25, ~@47 [f3,a3,c4]@10 ~@14 f#3@22 ~@25 [g3,b3,d4,g4]@11 ~ [g3,b3,d4,g4]@10 ~@2 [g3,b3,g4]@10 ~@120 [g3,b3,d4,g4]@9 ~@14 [g3,b3,d4,f#4]@10 ~@79, ~@83 [a3,c4]@10 ~@48 d4@10 ~@233]/8", // C Fmaj7 D7 G Bm G Gmaj7 C …
V: "[~@6 [g3,b3,d4,g4]@10 ~@2 [g3,b3,d4,g4]@11 ~ [g3,b3,d4,g4]@10 ~@7 e2@6 ~@6 e2@6 ~@6 e2@6 ~@5 e2@5 ~@7 b1@6 ~@6 b1@6 [d3,f#3,b3,d4]@7 ~@5 [d3,f#3,a3,b3,d4]@9 ~@3 [g3,b3,d4,g4]@10 ~@7 g2@6 ~ d4@10 ~@7 b2@6 [c3,g3,c4,d4,e4,g4]@15 ~@3 [c3,g3,c4,d4,e4,g4]@15 ~@3 [a2,a3,c4]@15 ~@2 [a2,e3,g3,a3,c4,e4]@15 ~@3 [g3,b3,d4,g4]@10 ~@2 [g3,b3,d4,g4]@10 ~@2 [g3,b3,d4,g4]@10, ~@41 [e3,g3,b3]@9 ~@3 [e3,g3,b3,e4]@10 ~@2 [e3,g3,b3,e4]@10 ~@2 [e3,g3,b3,e4]@9 ~@2 [d3,f#3,b3,d4]@10 ~@2 [d3,f#3,b3,d4]@10 ~@9 b1@12 ~@5 g2@12 ~@11 b2@15 ~@114, ~@42 e4@9 ~@97 [g3,b3,d4,g4]@9 ~@2 [g3,b3,f#4]@9 ~@3 [g3,b3,d4,f#4]@10 ~@37 [e4,g4]@17 ~@53]/6", // G Bm Bm7 G C Am Am7 G …
W: "~@2 [g3,b3,d4,g4]@10 ~ [e3,g3,b3,e4]@6 e2@6 ~@6 e2@6 ~@6 e2@5, ~@25 [e3,g3,b3,e4]@10 ~@2 [e3,g3,b3,e4]@10 ~", // G Em
X: "[~@6 e2@5 ~@7 b1@6 ~@6 b1@6 [d3,f#3,b3,d4]@7 ~@5 [d3,f#3,a3,b3,d4]@9 ~@3 [g3,b3,d4,g4]@10 ~@7 g2@6 [g3,b3,d4,f#4]@10 ~@8 b2@6 [c3,g3,c4,d4,e4,g4]@15 ~@3 [c3,g3,c4,d4,e4,g4]@15 ~@3 a3@15 ~@2 [a2,e3,g3,a3,c4,e4]@15 ~@3 [g3,b3,d4,g4]@10 ~@2 [g3,b3,d4,g4]@10 ~@2 [g3,b3,d4,g4]@11 ~ [g3,b3,d4,g4]@10 ~@7 e2@6 ~@6 e2@6 ~@6 e2@5 ~ g3@5 e2@5 ~@7 b1@6 ~@6 b1@6 ~@12 [d3,f#3,a3,b3,d4]@9 ~@3 [g3,b3,d4,g4]@10 ~@7 g2@6 [g3,b3,d4,f#4]@10 ~@8 b2@6 [c3,g3,c4,d4,e4,g4]@15 ~@2, ~ [e3,g3,b3,e4]@9 ~@2 [d3,f#3,b3,d4]@10 ~@2 [d3,f#3,b3,d4]@10 ~@9 b1@12 ~@5 g2@12 [g3,b3,d4,g4]@9 ~@2 b2@12 [g3,b3,d4,f#4]@10 ~@37 [a2,c4,e4,g4]@17 ~@66 [e3,g3,b3,e4]@10 ~@2 [e3,g3,b3,e4]@10 ~@2 [e3,g3,b3,e4]@10 ~ [e3,b3,e4]@9 ~@3 [d3,f#3,b3,d4]@10 ~@2 [d3,f#3,b3,d4]@10 ~@2 [d3,f#3,a3,b3,d4]@10 ~@14 g2@12 [g3,b3,d4,g4]@9 ~@2 b2@12 [g3,b3,d4,f#4]@10 ~@19, ~@151 b1@6 ~@35]/8", // Bm Bm7 G Gmaj7 C Am7 G Bm7 …
Y: "~ [c3,g3,c4,d4,e4,g4]@15 ~@2 [a2,a3,c4,e4,g4]@17 ~ [a2,e3,g3,a3,c4,e4]@12", // C Am7
Z: "[~@6 [g3,b3,d4,g4]@10 ~@2 [g3,b3,d4,g4]@10 ~@2 [g3,b3,d4,g4]@47 ~@19]/2", // G
})).s("gm_piano").gain(0.23).pan(0.3)
// chords · epiano2
const epiano2 = note("<~@4 A@3 B C D E F G H I J K L M N@5 O P@8 Q@5 R@6 S@6 T U@2>".pickRestart({
A: "[~@50 a4@18 ~@22 e4@26 ~@7 a4@3 ~@6 e4@6 c#4@5 ~, ~@46 a3@21 ~@5 a3@8 ~ c#4@14 ~@28 c#4@7 ~@14, ~@47 c#4@29 ~@2 e4@6 a3@27 ~@9 a3@23 ~, ~@49 e4@21 ~@5 a4@13 ~@38 g#4@10 ~@8]/3",
B: "~@12 e5@2 ~@4 b4@3 ~@4 e4@16 ~@7, b3@20 ~ g4@19 ~@8, ~@7 d5@5 d4@8 ~@4",
C: "~@6 g5@6 e5@9 c5@3 b4@7 ~@4 e4@9 ~@4, c4@37 ~@11, e4@31 g4@16 ~",
D: "~@6 f5@3 e5@3 ~@6 a4@5 ~, f3@47 ~, ~@2 a3@13 ~, ~@8 c5@7 ~",
E: "~ e5 f#5 e5 d5 c5 a4 g4 f#4@4 e4@4, [f#3,a3]@47 ~", F: "~@6 d5@5 g4@26 ~@11, [g3,b3]@19 ~@5, ~@2 b4@11 ~@3",
G: "~@24 e4@13 ~@11, ~@5 [g3,b3]@34 ~@9, ~@2 [b4,e5]@5 ~, ~@18 g4@23 ~@7", // G E5
H: "~@24 a4@19 ~@5, ~@3 [f#3,b3]@6 [d4,f#4]@14 ~, ~@4 [b4,d5]@11 ~", // B5 D Bm
I: "~@18 b4@6 g4@17 ~@7, ~@5 e5@13 ~@30, ~@6 d5@5 ~@13",
J: "~@18 a4@5 ~, ~@3 d5@5 ~ g4@6 ~@9, ~@12 b4@17 ~@19, ~@12 d4@11 ~",
K: "~@24 e4@13 ~@11, ~@3 [g3,b3]@17 ~@4, ~@2 [b4,e5]@5 ~, ~@18 g4@23 ~@7", // G E5
L: "~@13 f#4@24 ~@11, [b4,d5]@37 ~@11, ~@6 [f#3,b3]@31 ~@11, ~@12 [d4,a4]@25 ~@11", // Bm B5 D5
M: "~@30 [a4,d5,a5]@11 ~ [a4,d5,a5]@6", // D5
N: "[~@6 [b4,g#5]@11 ~ [b4,d5,g#5]@11 a5@47 ~ g#5@47 g5@47 e5@47 ~@2 a4@18 ~@2, ~@5 d5@11 ~@203 e4@20 ~]/5", // E G#dim
O: "~@20 e4@25 ~@3, ~@2 a3@6 e4@6 a3@27 ~@7, ~@5 a4@13 ~@30, ~@11 c#4@14 ~@23",
P: "[~@4 a4@3 ~@6 e4@6 c#4@5 ~@12 e5@3 ~@4 b4@3 ~@3 e4@16 ~@13 g5@6 e5@9 c5@3 b4@6 ~@5 e4@9 ~@15 f5@6 e5@6 ~@12 a4@10 ~@5 e5@2 f#5@3 e5@3 d5@3 c5@3 a4@3 g4@3 f#4@12 e4@12 ~@5 d5@6 g4@26 ~@34 e4@13 ~@34 a4@19 ~@16 d5@7 b4@5 g4@5, ~ a3@22 ~@2 b3@20 ~@3 d4@16 ~@8 c4@36 ~@12 f3@47 [f#3,a3]@46 ~ [g3,b3]@38 ~@14 [g3,b3]@34 ~@14 [f#3,b3]@15 ~@55, ~@4 c#4@7 ~@35 g4@19 ~@7 e4@31 ~@22 a3@38 ~@116 g4@23 ~@24 [d4,f#4]@27 ~@31, ~@7 g#4@10 ~@22 d5@10 ~@53 g4@16 ~@25 c5@21 ~@55 b4@32 ~@22 [b4,e5]@30 ~@17 [b4,d5]@33 ~@8 e5@13 ~@10]/8", // F#m G B5 D E5 Bm
Q: "[~@19 [g4,c5,e5]@15 ~@3 [c5,e5]@15 ~@2 [e4,a4,c5]@15 ~@4 a4@15 ~@2 [g4,b4]@17 g2@2 ~@5 g2@16 ~@31 e4@13 ~@34 a4@19 ~@10 e5@3, ~@36 g4@16 ~@20 [e4,c5]@15 ~@3 g2@13 ~@10 [d4,b4]@23 ~@6 [g3,b3]@34 ~@14 [f#3,b3]@15 ~@35, ~@149 [b4,e5]@30 ~@17 [b4,d5]@33 ~@11, ~@155 g4@23 ~@24 [d4,f#4]@27 ~@11]/5", // C Am G C G B5 E5 Bm …
R: "[~@3 d5@7 b4@6 g4@16 ~@7 [g4,c5,e5]@15 ~@3 [c5,e5]@15 ~@2 [e4,a4,c5]@15 ~@4 a4@15 ~@2 [g4,b4]@17 g2@2 ~@5 g2@16 ~@31 e4@13 ~@34 a4@19 ~@10 e5@6 d5@7 b4@5 g4@13, ~@56 g4@16 ~@20 [e4,c5]@15 ~@3 g2@13 ~@10 [d4,b4]@23 ~@6 [g3,b3]@34 ~@14 [f#3,b3]@15 ~@63, ~@169 [b4,e5]@30 ~@17 [b4,d5]@33 ~@39, ~@175 g4@23 ~@24 [d4,f#4]@27 ~@39]/6", // C Am G C G B5 E5 Bm …
S: "[~@11 [g4,c5,e5]@15 ~@3 [c5,e5]@15 ~@2 [e4,a4,c5]@15 ~@3 [e4,a4,c5]@15 ~@3 [g4,b4]@17 g2@2 ~@5 g2@16 ~@31 e4@13 ~@34 a4@19 ~@10 e5@6 d5@7 b4@5 g4@16 ~@8 [g4,c5,e5]@15 ~@2, ~@28 g4@16 ~@38 g2@13 ~@10 [d4,b4]@23 ~@6 [g3,b3]@34 ~@14 [f#3,b3]@15 ~@91, ~@141 [b4,e5]@30 ~@17 [b4,d5]@33 ~@67, ~@147 g4@23 ~@24 [d4,f#4]@27 ~@67]/6", // C Am G C G B5 E5 Bm …
T: "~ [c5,e5]@15 ~@2 [e4,a4,c5]@15 ~@3 [e4,a4,c5]@12, g4 ~@2", // C Am
U: "[~@6 [g4,b4]@17 g2@2 ~@5 g2@16 ~@50, ~@6 g2@13 ~@10 [d4,b4]@49 ~@18]/2", // G
})).s("gm_epiano2").gain(0.23).pan(0.7)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note("<~@19 A@7 B@4 C D E F@2 G@3 H I@2 J K L M N O P Q R@4>".pickRestart({
A: "[~@29 [a3,b3,c#4,e4]@16 ~@2 [c#4,e4]@3 ~@21 a3@3 ~@2 [g#3,e4]@12 ~ e4@4 ~ e4@5 ~@7 e4@6 g#3@6 e4@6 ~@23 [g3,b3,d4]@9 ~@3 [g3,b3,d4]@6 g4@6 ~@6 c4@6 e4@3 ~@3 [g3,c4,e4]@9 ~@2 [g3,e4]@3 ~@3 g3@6 [c4,e4]@6 ~@6 c#4@6 e4@4 ~@2 e4@5 ~ c#4@6 e4@6 c#4@6 e4@3 ~@26 c#4@6 ~@12 g#3@6 ~@8 e4@4 g4@11, ~@53 [a3,e4]@10 ~@2 e4@10 ~@13 g#3@4 ~@2 g#3@3 ~@27 g3@17 g4@20 ~@116 g#4@18 ~@41, ~@59 c#4@33 ~@8 c#4@24 ~@6 b3@15 ~@26 g3@15 ~@32 a3@14 ~@4 [a3,a4]@28 ~ a3@14 ~@16 a3@13 ~@5 [e3,g3]@23, ~@133 d4@12 ~@55 c4@6 ~@65 c#4@6 ~@41 d4@17 ~, ~@136 e4@10 ~@60 e4@4 ~@64 e4@6 ~@3 e4@14 ~@4 e4@12 ~@23]/7", // A C#m G C A5 A Em
B: "[~@11 b3@7 g3@5 ~@21 g4@4 ~@12 e4@5 c4@5 ~@25 [c4,e4]@9 ~@2 [c4,e4]@10 ~@21 [c4,f#4]@23 ~@12 [g3,b3,d4]@4 ~@8 [g3,b3,d4]@4 ~@4, ~ g3@13 ~@10 e3@43 ~@15 c3@34 ~@13 d3@29 ~@34, ~@6 d4@17 ~@7 c4@23 g4@15 ~@20 a3@28 ~@16 a3@29 ~@31, ~@36 g3@32 ~@17 f3@31 ~@15 f#3@28 ~@33, ~@41 e4@7 b4@18 ~@70 d4@23 ~@33]/4", // C Cdim G
C: "~@4 [g3,b3]@5 ~@6 [g3,b3,d4]@5 ~@7 [g3,b3,e4]@4 ~@8 [g3,b3,e4]@4 ~@5, ~@3 d4@5 ~@40", // G Em
D: "~@3 [g3,b3,e4]@4 ~@8 [g3,b3,e4]@4 ~@7 [b3,d4]@5 ~@7 [f#3,b3,d4]@4 ~@6, ~@26 f#3@3 ~@19", // Em Bm
E: "~@2 [f#3,b3,d4]@4 ~@8 [f#3,b3,d4]@4 ~@8 [g3,b3,d4]@3 ~@9 [g3,b3,d4]@4 ~@6", // Bm G
F: "[~ [g3,b3,d4]@5 ~@7 [g3,b3,d4]@4 ~@8 [g3,c4,e4]@4 ~@8 [g3,c4,e4]@16 ~@19 [g3,a3,c4,e4]@16 ~@8]/2", // G C Am7
G: "[[g3,b3,d4]@4 ~@8 [g3,b3,d4]@5 ~@7 [g3,b3,d4]@5 ~@7 [g3,b3]@4 ~@7 [g3,b3,e4]@4 ~@8 [g3,b3,e4]@4 ~@8 [g3,b3,e4]@4 ~@8 [g3,b3,e4]@4 ~@8 [b3,d4]@5 ~@6 [f#3,b3,d4]@4 ~@8 [f#3,b3,d4]@4 ~@8 [f#3,b3,d4]@4 ~@8 [g3,b3,d4]@2, ~@35 d4@4 ~@56 f#3@3 ~@46]/3", // G Em Bm G
H: "~@10 [g3,b3,d4]@4 ~@7 [g3,b3,d4]@5 ~@7 [g3,b3,d4]@4 ~@8 [g3,c4,e4]@3", // G C
I: "[~@9 [g3,c4,e4]@16 ~@19 [g3,a3,c4,e4]@16 ~@8 [g3,b3,d4]@4 ~@8 [g3,b3,d4]@5 ~@7 [g3,b3,d4]@4]/2", // C Am7 G
J: "~@8 [g3,b3]@4 ~@7 [g3,b3,e4]@4 ~@8 [g3,b3,e4]@4 ~@8 [g3,b3,e4]@4 ~, ~@7 d4@4 ~@37", // G Em
K: "~@7 [g3,b3,e4]@4 ~@7 [b3,d4]@5 ~@7 [f#3,b3,d4]@4 ~@8 [f#3,b3,d4]@4 ~@2, ~@6 f#3 ~@9", // Em Bm
L: "~@6 [f#3,b3,d4]@4 ~@8 [g3,b3,d4]@3 ~@9 [g3,b3,d4]@4 ~@7 [g3,b3,d4]@5 ~@2", // Bm G
M: "~@5 [g3,b3,d4]@4 ~@8 [g3,c4,e4]@4 ~@8 [g3,c4,e4]@16 ~@3", N: "~@4 [g3,a3,c4,e4]@4 ~@2 [g3,b3,d4] ~",
O: "~@4 [g3,b3,d4]@5 ~@7 [g3,b3,d4]@5 ~@6 [g3,b3,d4]@4 ~@8 [g3,b3,e4]@4 ~@5", // G Em
P: "~@3 [g3,b3,e4]@4 ~@8 [g3,b3,e4]@4 ~@8 [g3,b3,e4]@4 ~@7 [b3,d4]@5 ~@5, ~@38 f#3@3 ~@7", // Em Bm
Q: "~@2 [f#3,b3,d4]@4 ~@8 [f#3,b3,d4]@4 ~@8 [f#3,b3,d4]@4 ~@8 [g3,b3,d4]@3 ~@7", // Bm G
R: "[~@2 d4@4 ~@7 [g3,b3,d4]@5 ~@7 [g3,b3,d4]@4 ~@8 [g3,c4,e4]@4 ~@11 g4@16 ~@18 e4@16 ~@6 [g3,b3,d4]@4 ~@8 [b3,d4]@3 ~@4 g4@44 ~@21, ~ [g3,b3]@4 ~@42 g3@17 ~@18 g3@16 ~@22 g3@2 ~ g3@48 ~@21, ~@49 c4@16 ~@18 a3@16 ~@27 d4@47 ~@19, ~@50 e4@16 ~@19 c4@16 ~@23 b3@48 ~@20]/4", // G C G Bm G
})).s("gm_acoustic_guitar_nylon").gain(0.15).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~@19 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC N AD AE AF ~
>`.pickRestart({
A: "~@17 x ~@11 x ~@17 x", B: "~@5 x ~@17 x ~@4 x ~@17 x ~", C: "~@4 x ~@17 x ~@5 x ~@16 x ~@2",
D: "~ x ~@5 x ~ x ~@5 x", E: "~@3 x ~@16 x ~@5 x ~@17 x ~@3", F: "~@2 x ~@17 x ~@5 x ~@16 x ~@4",
G: "~ x ~@17 x ~@5 x ~@17 x ~@4", H: "x ~@2 x!2 ~@2 x", I: "x ~@16 x ~@2 x ~@2 x ~@17 x ~@5 x",
J: "~@17 x ~@5 x ~@16 x ~@5 x ~", K: "~@11 x ~@5 x ~@5 x", L: "~@3 x ~@3 x ~@3 x ~@3 x",
M: "~@9 x ~@10 x ~@11 x ~@11 x ~@3", N: "~@8 x ~@11 x ~@11 x ~@10 x ~@4", O: "~@7 x ~@11 x ~@11 x ~@5 x ~@10",
P: "~ x ~ x!2 ~@2 x", Q: "~@6 x ~@11 x ~@10 x ~@11 x ~@6", R: "~@5 x ~@11 x ~@11 x ~@11 x ~@6",
S: "~ x ~@2 x ~@2 x ~@2 x ~", T: "~@4 x ~@10 x ~@11 x ~@11 x ~@8", U: "~@3 x ~@5 x ~@17 x ~@10 x ~@5 x ~@3",
V: "~@7 x ~@5 x ~@5 x ~@4", W: "~ x ~@12 x ~@10 x ~@11 x ~@10", X: "~ x ~@10 x ~@11 x ~@11 x ~@11",
Y: "x ~@11 x ~@11 x ~@10 x ~@11 x", Z: "~@11 x ~@11 x ~@5 x ~@16 x ~", AA: "~@5 x ~@2 x ~@8 x ~@5 x",
AB: "~@10 x ~@10 x ~@10 x ~@12 x ~@2", AC: "~@9 x ~@11 x ~@10 x ~@11 x ~@3", AD: "~@7 x ~@11 x ~@11 x ~@11 x ~@4",
AE: "~ x ~@16 x ~@11 x ~@5 x ~@11", AF: "~@6 x ~@11 x ~@10 x ~@18",
})).gain(0.23)
// drums · rim
const rim = s("rim").struct("<~@19 A B C D E F G H I J K ~@23>".pickRestart({
A: "~@41 x ~@6", B: "~@17 x ~@22 x ~@7", C: "~@2 x ~@2 x", D: "~@5 x ~@7 x ~@2", E: "~@7 x ~@11 x ~@4",
F: "~@14 x ~@22 x ~@10", G: "~@13 x ~@23 x ~@10", H: "~ x ~ x", I: "~@12 x ~@22 x ~@12", J: "~@11 x ~@22 x ~@13",
K: "~@5 x ~@18",
})).gain(0.27)
// drums · snare
const snare = s("sd").struct("<~@19 A ~@9 B C D E F ~ G H I J ~ K L M N O P Q R S T ~ U ~>".pickRestart({
A: "~@11 x ~@2 x ~@33", B: "~@34 x ~@2 x ~@2 x ~@2 x ~@4", C: "~@3 x!4 ~@4 x!4 ~",
D: "~@9 x ~@2 x ~@2 x ~@2 x ~@13 x ~@2 x ~@2 x ~@2 x ~@6", E: "~@8 x ~@2 x ~@2 x ~@2 x ~@14 x ~@2 x ~ x ~@2 x ~@7",
F: "~@7 x ~@2 x ~@2 x ~@2 x ~@31", G: "x ~@11 x ~@10 x ~@11 x ~@12",
H: "~@5 x ~@2 x ~@2 x ~@2 x ~@14 x ~@2 x ~@2 x ~@2 x ~@9", I: "~@4 x ~@2 x ~@2 x ~@2 x ~@14 x ~@2 x ~@2 x ~@2 x ~@10",
J: "~@4 x ~@2 x ~@2 x ~ x ~@14 x ~@2 x ~@2 x ~@2 x ~@11", K: "~@5 x ~@2 x ~@2 x",
L: "~@7 x ~@17 x ~@2 x ~@2 x ~@2 x ~@13", M: "~ x ~@2 x ~@2 x ~ x ~@14 x ~@2 x ~@2 x ~@2 x ~@14",
N: "x ~@2 x ~@2 x ~@2 x ~@14 x ~ x ~@2 x ~@2 x ~@14 x", O: "~@2 x ~@2 x ~@2 x ~@39", P: "~@5 x",
Q: "~@4 x ~@10 x ~@11 x ~@17 x ~@2", R: "x ~@2 x ~@2 x ~@14 x ~ x ~@2 x ~@2 x ~@14 x ~@2 x",
S: "~@2 x ~@2 x ~@14 x ~@2 x ~@2 x ~@2 x ~@13 x ~@2 x ~", T: "~ x ~@2 x ~@14 x ~@2 x ~@2 x ~@2 x ~@19", U: "~ x!2 ~",
})).gain(0.18)
// drums · low tom
const low_tom = s("lt").struct("<~@19 A ~@13 B C ~@4 D ~@4 E F ~@3 G H ~@2>".pickRestart({
A: "~@13 x ~@10", B: "~@28 x ~@2 x ~@16", C: "~@5 x!2 ~@9", D: "x ~@2 x ~@31 x ~@2 x ~@9", E: "~@20 x ~@2 x ~@24",
F: "~@7 x ~@2 x ~@37", G: "~@40 x ~@2 x ~@4", H: "~@9 x!2 ~@5",
})).gain(0.27)
// drums · hihat
const hihat = s("hh").struct("<~@19 A B C D E F G H I ~@25>".pickRestart({
A: "~@29 x ~@5 x ~@5 x ~@5 x", B: "~@5 x ~@5 x ~@5 x ~@10 x ~@5 x ~@5 x ~@5 x ~",
C: "~@4 x ~@5 x ~@5 x ~@11 x ~@5 x ~@5 x ~@4 x ~@2", D: "~ x ~ x ~ x ~@3 x ~ x ~ x ~ x",
E: "~@3 x ~@5 x ~@4 x ~@11 x ~@5 x ~@5 x ~@5 x ~@3", F: "~@2 x ~@5 x ~@5 x ~@11 x ~@4 x ~@5 x ~@5 x ~@4",
G: "~ x ~@5 x ~@5 x ~@11 x ~@5 x ~@5 x ~@5 x ~@4", H: "x!3 ~ x!4", I: "x!3 ~@5",
})).gain(0.23)
// drums · mid tom
const mid_tom = s("mt").struct("<~@19 A B C D E F G H I J K ~@3 L M ~@3 N O ~@4 P Q ~@3 R S ~@2>".pickRestart({
A: "~@23 x ~@24", B: "~@11 x ~@11 x ~@24", C: "~@5 x ~@5 x ~@12", D: "~@3 x ~@3 x ~@8", E: "~@9 x ~@10 x ~@27",
F: "~@2 x ~@2 x ~@6", G: "~@7 x ~@11 x ~@28", H: "~ x ~ x ~@4", I: "~@6 x ~@10 x ~@30", J: "~@5 x ~@11 x ~@30",
K: "~ x ~@2 x ~@7", L: "~@25 x ~@22", M: "~ x ~@2", N: "~@15 x", O: "~@2 x", P: "~@17 x ~@30", Q: "~ x ~@10",
R: "~@37 x ~@10", S: "~ x",
})).gain(0.23)
// drums · open hat
const open_hat = s("oh").struct("<~@19 A B C D A@2 E F G ~@25>".pickRestart({
A: "~@5 x ~@6", B: "~@23 x ~@24", C: "~@11 x ~@12", D: "~@7 x ~@8", E: "~@19 x ~@28", F: "~@3 x ~@4",
G: "~@17 x ~@30",
})).gain(0.18)
// drums · crash
const crash = s("cr").struct("<~@33 A B ~@4 C ~@4 D E ~@4 F ~@2>".pickRestart({
A: "~@37 x ~@10", B: "~ x", C: "~@9 x ~@34 x ~@3", D: "~@29 x ~@18", E: "~ x ~", F: "~ x ~@34 x ~@11",
})).gain(0.23)
// drums · ride
const ride = s("rd").struct("<~@27 A B C ~@4 D E ~@4 F G ~@3 H I ~@4 E ~>".pickRestart({
A: "~@23 x ~@5 x ~@5 x ~@5 x ~@5 x", B: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~",
C: "~@2 x ~@2 x ~@2 x ~@15", D: "~@7 x", E: "~@6 x ~@11 x ~@10 x ~@18", F: "~@7 x ~@5 x ~@5 x ~@4", G: "~ x ~@46",
H: "~@17 x ~@5 x", I: "~@10 x ~@10 x ~@26",
})).gain(0.23)
// drums · tambourine
const tambourine = s("tb").struct("<~@27 A B C D E F G ~ H I J K ~@2 L M N O ~ P Q R S ~@3>".pickRestart({
A: "~@23 x ~@5 x ~@5 x ~@5 x ~@5 x", B: "~@11 x ~@5 x ~@5 x ~@10 x ~@5 x ~@5 x ~",
C: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", D: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
// … 29 more lines
More by America
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.