0:00/0:00
// Go The Distance — Michael Bolton
// 65 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 72 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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.
// chords · sitar
const sitar = note("<A B@4 ~@67>".pickRestart({
A: "~@8 d6 ~@6 d5, d6!2 ~ d6, ~ d5@2 d5@2 d5@2 d5@2 d5@2 d5@2 d5@2 ~, ~@2 a5@4 a5@3 ~ a5@4 a5@2",
B: "[d6@2 ~@12 d5@2 ~@11 a5@3 ~ d6@3 d5@2 ~@3 d6@3 d5@2 ~@8 a5@2 d5@2 ~@5 d5@2 d6@3 d5@2 ~@3 d6@2 ~@5 d5@2 ~@5 d5@2 d6@2 ~@4 d5@2 ~@15 d5@2 d5@8 ~@8, ~@2 d5@4 d5@4 d5@4 ~@4 d5@4 d5@3 d5@4 ~ d5@2 ~@6 d5@2 ~@6 d5@2 ~@2 d5@4 ~@4 d5@3 ~@9 d5@2 ~@2 d5@4 ~@4 d5@3 ~@4 d5@4 ~@4 d5@4 d5@4 d5@4 ~@19, ~@4 a5@8 a5@4 ~@4 a5@7 ~@9 a5@4 ~@4 a5@4 ~@11 a5@4 ~@5 a5@4 ~@4 a5@4 ~@3 a5@4 ~@4 a5@4 ~@4 a5@8 a5@5 ~@16, ~@8 d6@8 d6@7 d6@8 ~@16 d6@6 ~@3 d6@7 ~@17 d6@7 ~@8 d6@8 d6@9 ~@16]/4",
})).s("gm_sitar").gain(0.2)
// chords · trumpet · G F#m D
const trumpet = note(`<
[~@14 d3 a3]
[b3@8 a3@7 f#3@14 ~@3]
[~@15 a5, ~@7 d5]
[[g5,b5]@8 [c#5,a5]@7 [d5,f#5]@14 ~@3]
~@68
>`).s("gm_trumpet").gain(0.31)
// chords · overdriven guitar
const overdriven_guitar = note("<~@39 A@3 B@2 C@5 D@4 E@2 F ~@2 G@2 ~@12>".pickRestart({
A: "[~@15 d5@8 a4@8 g4@5 ~@10 c#5 d5@7 ~ a4@8 g4@5 ~@7 g4@4 f4@16 ~]/3", B: "[~@15 g4@16 a4@3 ~@13 a4@16 g4]/2",
C: "[~@15 f#4@28 ~@3 f#4@2 [e4,g#4]@7 [c#4,f#4]@8 d#4@12 ~@2 f#4@2 ~ e4@8 [c#4,f#4]@7 ~ b3@9 ~@2 d5@4 [g5,b5]@8 [e5,a5]@6 ~ e5 d5@10 ~@2 a4@4 [b4,d5,f#5]@13 f#5@2 [d5,f#5]@2, ~@44 d#4@4 ~@15 b3@16 ~@16 d#4@11 ~@31 d5@6 ~@17, ~@75 d#4@4 g#4@8 ~@18 a4@6 ~@14 f#5@2 f#5@16 ~@17]/5", // E F#5 G A5 Bm D
D: "[~@2 g5@2 f#5@2 g5@2 ~@5 d5@2 ~ d5@6 ~@2 d5@4 ~@16 e4@2 e4@2 e4@6 f#4 f#4@6 ~@8 d5@2 ~@6 a5@2 a5@31 ~@18, ~@8 g5@8 ~@6 a5@6 a5@11 ~ a4@8 ~@15 a4@9 ~@3 g5@4 ~@49, ~@10 f#5@6 ~@23 b4@2 g4@7 ~@13 g4@9 ~@58, ~@12 e5@4 ~@13 d5@18 ~@18 b4@5 ~@3 f#5@6 ~@49, ~@42 f#4@5 ~@20 c#5@4 e5@8 ~@49]/4",
E: "[~@8 f#5 ~ d5@2 ~ f#5@3 a5@29 ~@19, ~@9 e5@2 ~ e5@4 d5@21 ~@27]/2",
F: "~@9 d5@2 ~ f#5@3 ~@17, ~@7 f#5@2 ~@23, ~@8 e5@2 ~ e5@2 ~@19", G: "[~@28 c6@2 ~ a5@28 ~@5]/2",
})).s("gm_overdriven_guitar").gain(0.41)
// chords · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@40 A B@2 ~@10 C ~ D@2 ~ E ~@13>".pickRestart({
A: "~@13 d5 ~@18", B: "[~@31 f4@15 ~@18]/2", C: "~@15 g5 ~@16", D: "[~@14 g5 ~ a5@20 ~@28, ~@15 d5@16 ~@33]/2",
E: "~@16 b5@12 ~ b5@2 ~",
})).s("gm_overdriven_guitar").gain(0.26)
// chords · piano
const piano = note(`<
A B C@2 D E@2 F G H I J K L M N O P Q@2 R S@3 T U V W X Y Z@2 AA@5 AB AC@8 AD AE@2 AF@6 AG@3 AH@6 AI AJ@4 AK@3
>`.pickRestart({
A: "~@7 a5, d6!4, ~ d5@2 ~@13, ~ a5@2 a5@2 a5@2 ~", B: "d6@2 ~ a5 ~@3 a5, ~ d6!3, ~@5 a5@2 ~",
C: "~@7 a5, d6!4, ~ a5@2 a5@2 a5@2 ~", D: "~@29 a4@3, d6 d6@3, ~ a5@2 a5@5, ~@7 f#4",
E: "[[g2,d4,g4,b4]@8 [a2,c#4,e4,a4]@8 f#4@12 ~ a4@2 ~ d4@8 [a2,c#4,e4,a4]@8 f#4@12 ~@2 a4@2, ~@16 [a3,d4]@15 [g2,g4,b4]@8 ~@21 f#4@4, ~@7 f#4 ~@4 [a3,d4]@4]/2", // G A D5 G D5
F: "[g2,d4,g4,b4]@8 [a2,e4,a4,c#5]@8 ~@4 a4@3 ~@6 f#4@3, ~@16 [b2,d4,f#4,d5]@7 a2@8 ~, ~@13 d4@3", // G A Bm
G: "~@6 g4@2 ~@7 a4, [g2,b3,d4,f#4]@2 e4 [c#4,e4], ~ g3 d4@2, ~@19 e3@12 ~, ~@7 [a3,f#4]", // Gmaj7 C#m D
H: "[g2,d4,g4,b4]@8 [a2,c#4,e4,a4]@8 ~@13 c#5@2 ~, ~ [d3,d4,f#4], ~@7 d5", // G A D
I: "[g2,d4,g4,b4]@4 [a2,c#4,e4,a4]@4 ~@7 a4, ~ [b1,b2,c#4,d4], ~@3 b3, ~@7 f#4", // G A Bm
J: "[g2,d4,g4,b4]@2 [f#2,a#4,c#5]@2 ~ a4 ~ e5, ~@2 [b2,d4,f#4,d5] [a2,f#4,a4,d5]", // G F# Bm D
K: "~@7 g5 ~@7 g5, g2@3 g2 [a2,d5]@4, [b4,d5,f#5]@2 [b4,d5,f#5]@2 ~ e3@3, ~@4 g5@9 ~@3 e5@8 [a4,c#5,e5]@8, ~@7 [a3,f#5]", // D5 Bm A D
L: "[a4,d5]@2 ~ d3 ~@3 [g3,d5], [f#2,a5]@2 [e4,b4]!2, ~ [a4,d5] g2@2, ~@3 e5@5, ~@5 d3@3", // D5 G5 F#m E5 D5
M: "[a4,d5,f#5]@4 ~@7 g5@4 ~@14 g5@2 ~, a2@15 [a4,c#5]@16 ~, ~@4 e5@11 [a2,f#5]@8 g2@8 ~, ~@6 [a4,d5,f#5]@10 ~@3 e5@12 ~, ~@8 a3@8 ~@11 f#5@4 ~", // D A D
N: "[a4,d5]@4 ~@2 d3@2 ~@7 e5, [f#2,a5] g2, ~ [a4,d5] [e4,b4] [e4,b4,e5], ~@3 e5@3 ~@2, ~@5 g3@2 [g3,d5]", // D5 F#m D5 E5 G5
O: "[a4,d5,f#5]@4 ~@16 a3@4 ~@5 g5@2 ~, a2@7 [a4,c#5,e5]@5 ~@4, ~ e5@2 a3 a2@2 g2@2, ~@3 [d5,f#5]@5 ~@8, ~@3 a4 a3 g5@3 ~@6 f#5@2", // D A D
P: "~@12 d3@4 ~@13 e5@2 ~, [f#2,a4,d5,a5] g2, ~ [d4,c#5] [d4,g4] [d4,g4,b4], ~@3 b4@3 ~ [g3,d5], ~@5 d3@3", // D Dmaj7 G5 G G5
Q: "[a4@8 a4@4 a4@4 ~@30 a4@2 [g2,d4,g4,b4]@8 [a2,c#4,e4,a4]@7 ~, [b2,d5,f#5]@4 e2@6 e3 f#4 ~@4, ~ d4 g4@2 g4@2 ~@2, ~@2 d4 b3@3 ~@2, ~@4 b3 e3@2 d4@5 ~@4]/2", // G A Bm
R: "[d3,a3,d4,f#4] [c#3,c#4,e4,a4] ~ [a2,f#5] ~@3 g5, ~ [b2,f#4,b4,d5] [g2,g4,b4,f#5]@2", // D A D Bm Gmaj7
S: "[~@12 [a2,d5]@4 ~@16 [b3,g4]@16 ~@30 a4@2 [g2,d4,g4,b4]@7 ~ [a2,c#4,e4,a4]@8, e5@4 ~@8 a4@2 ~@2 g4@2 d3 f#4 ~@4, a2@3 ~ [d2,d4,d5]@8 [d2,d4,d5]@8 ~@4, [g4,b4]!2 a4 [c#4,a4]@3 ~ [c#4,a4]@3 ~@2, ~@4 a3@12 ~@4 d3@28 ~@4 d3@8 ~@3 b3@17 ~@16]/3", // D5 Em G A D G F#m
T: "a3@2 a3@2 f#4@2 ~ a4 [g2,d4,g4,b4]@4 c#4@2 c#4@2, d2 ~, d3@3 [d3,f#4] ~@2 [a2,e4,a4]@2, [d4,f#4] [a3,d4] ~@2", // G D A5 D D5
U: "~@8 f#4@3 ~@2 a4@2 ~ [d4,b4]@8 [a2,e4,a4,c#5]@8, d2 ~, [a3,d4,f#4] [a3,d4] ~@2, ~@4 d3@7 d3@4 [g2,g4]@8 ~@9, ~@3 f#4 ~@4", // G A D D5 G
V: "~@4 a4@4 ~@5 f#4@2 ~@15 f#4@2, [b1,b2,d4,f#4,d5] a2 g2@2, ~@5 d4@3 [b3,d4,f#4]@4 [b3,d4,f#4]@4, ~@5 g3@2 [g3,g4]", // Bm G
W: "e4@2 ~ [c#4,e4] ~@3 a4 [g2,d4,g4,b4]@4 [a2,c#4,e4,a4]@4, [a2,d4] ~, ~ e3@2 [e3,f#4] ~@4, ~ [a3,c#4,e4] ~@2", // C#m G A D5 Esus2 A
X: "~@6 a3@2 ~@5 c#5@2 ~ [g2,d4,g4,b4]@8 c#4@3 c#4@4 ~, d2 ~, [a3,d4,f#4]!2 ~@2, ~ d3@2 [d3,d5] ~@2 [a2,e4,a4]@2", // G D A5
Y: "b2@2 ~@5 a4 [g2,d4,g4,b4]@4 [f#2,a#4,c#5]@4, [c#4,d4] ~, ~ b2@2 [b2,f#4] ~@4, ~ b3 ~@2", // G F# Dmaj7 B5
Z: "[~@4 a4@3 ~@5 e5@3 ~ [b4,d5]@4 [b4,d5]@3 ~@6 g5@2 ~@6 a4@2 ~@6 g5@2 ~@13 [d3,e5]@4, [b1,b2,d4,f#4,d5]@7 d5@8 g2@16 a2@15 ~ [f#2,a5]@17, ~@8 [a2,f#4,a4]@8 f#5@7 f#5@8 [a4,c#5,e5]@8 ~ [a4,c#5]@7 [a4,d5]@8 ~ [a4,d5]@8, ~@20 g5@7 g3@4 ~@4 a3@8 [a3,f#5]@4 ~@4 d3@8 ~@5, ~@24 [b4,d5]@8 ~@7 e5@7 ~@18]/2", // Bm Dsus2 Bm F#m D A D5 D …
AA: "[~@14 d5@2 ~@12 [a4,d5]@3 [a4,c#5]@4 ~ a3@3 ~@6 g5@3 [a4,d5]@8 ~@4 d3@4 ~@14 e5@2 [a4,d5,f#5]@4 ~@4 a3@2 ~@19 g5@2 ~@17 [d4,g4]@8 ~@5 e5@2 ~ a4@8 a4@4 [b2,a4]@4, g2@16 a2@10 a4 g5@4 ~@12 [g3,f#5]@4 ~ d3@12 ~@8 d3@12 ~@6 [a4,d5]@4 [a4,d5,g5]@4 d5@2 ~@3 a3@4 ~@17 [d4,c#5]@8 ~@8 [d4,g4,b4]@8 ~@8 d4@8, [e4,b4,e5]@8 [e4,b4,e5]@8 [a4,d5,f#5]@5 f#5@10 ~@5 [a4,e5]@12 ~@8 [a4,d5]@8 [e4,b4]@8 [e4,b4,e5]@8 ~@4 e5@7 a3@4 [a2,a4,c#5,e5]@8 [g2,c#5,e5]@8 ~ [f#2,a4,d5,a5]@16 g2@16 b2@12 ~@4, ~@4 g3@8 [g3,c#5]@4 ~@3 e5@12 ~@4 c#5@12 ~@13 e5@12 ~@4 [g3,d5]@4 ~@6 f#5@10 ~@11 f#5@4 ~@13 b4@12 ~@8 [d5,f#5]@16, ~@22 [a4,d5] a3@8 [a2,f#5]@8 g2@8 ~ [f#2,a5]@16 g2@16 a2@13 e5@2 ~@6 a4@10 ~@12 d3@4 ~@12 [g3,d5]@4 ~@17]/5", // D5 A D5 D G5 B7 Gmaj7 D5 …
AB: "~@13 a4@2 [g2,d4,g4,b4]@9 [a2,c#4,e4,a4]@8, e2 ~, [b3,d4,g4]@8 [b3,d4,g4]@7 ~@17, ~@4 e3@7 f#4@4 ~@17, ~@3 e3 ~@4", // G A G
AC: "[[a3,d4,f#4]@4 [c#3,c#4,e4,a4]@4 ~@4 [a2,f#5]@4 ~@28 [a3,d5]@3 ~ d3@3 ~@10 d2@2 ~@14 d2@2 ~@5 d3@4 ~@19 f5@2 g5 ~ a5@4 a5@2 ~@4 c5@2 [f2,c5,f5,a5]@4 [a#4,f5]@4 ~@8 [d2,f5]@4 ~@12 a5@2 ~@10 a5@4 [c#3,a5]@4 a4@4 ~@2 [a4,g5]@2 ~@6 f#5@2 [g4,b4]@4 ~@9 e5@4 [f#4,g#4] ~@3 f#4@4 f#4@4 f#4@4 [c#5,f#5]@8 ~@6 f#4@2 [g#1,g#2,e4,g#4]@8 [a#1,a#2,c#4,f#4]@7 ~, d3@8 [b2,b4,d5]@8 g2@14 d5@12 a2@5 ~ d2@13 ~@2 d2@14 ~@2 [d2,d4,a4,d5]@8 ~ d2@16 d2@7 [f2,c5,f5]@8 f2@4 ~@4 d2@8 [a#4,g5]@8 [e2,e5]@16 c#2@16 [d2,e5,a5]@16 [g2,f#5]@16 ~ [a#1,a#2]@33 ~@15, ~@16 [b4,d5,f#5]@8 [b4,d5,f#5]@6 e5@6 a4@11 ~@4 d3@8 d3@4 [b3,g4]@8 [b3,g4]@8 ~@17 [b3,g4]@15 ~@7 c5@3 ~@10 a5@12 ~@4 e3@8 e3@4 ~@4 c#3@8 ~@8 d3@8 d3@4 ~@8 g3@8 ~@29 d#4@4 ~@16, ~@20 g3@8 [g3,g5]@4 a2@8 a3@4 ~@4 [d4,d5]@16 ~@24 [c#4,a4]@23 ~@7 [f5,a5]@5 ~@4 a#5@16 ~@8 g5@8 ~@24 g5@8 ~@4 e5@7 d5@6 [c#5,f#5]@8 [c#5,f#5]@8 ~@32, ~@34 a3@4 [c#5,e5]@10 ~@8 [c#4,a4]@8 ~@3 d3@8 d3@4 ~@12 d3@8 d3@11 ~@21 a#4 f5@7 ~@4 [a4,g5]@8 ~ a4@5 [a4,e5,a5]@10 [a4,e5]@8 ~@9 a4@8 ~@3 [g4,b4]@12 ~@17 f#4@4 ~@4 [f#4,c#5,f#5]@8 ~@16]/8", // D A D D5 F A#5 Dm F#m …
AD: "[f#3,b3]!2 [g#1,g#2,e4,g#4] [a#1,a#2,c#4,f#4], d#4 ~", // B5 C#m F#
AE: "[[f#3,b3,d#4]@8 ~@3 b2@4 ~ [b1,b2,d5,g5,b5]@7 ~ [c#3,a4,e5,a5]@7 [a4,d5]@8 ~@4 d3@4 ~ [b4,d5,f#5]@8 ~@6 b1@2, b1@16 ~@7 c#2@7 ~ [d2,f#5]@17 [b1,b2]@14 ~@2, b2@11 ~@20 d3@12 ~@17 b2@4, ~@8 [f#3,b3,d#4]@8 ~@23 [a4,d5]@8 ~@9 [b4,d5,f#5]@8]/2", // B G A D5 Bm D B D5 …
AF: "[[g4,d5,f#5]@8 ~@4 a#2@4 a2@8 ~@8 a2@3 ~@4 [d5,f#5,a5] ~@4 a1@4 [g3,b3,e4]@7 ~@4 a2@4 ~@14 g5@2 [a4,d5]@8 ~@4 [f#1,f#2]@5 [e4,b4]@8 ~@4 g2@4 ~@20 [a4,c#5,e5]@4 b4@4 ~ g5@2 ~ [a4,d5]@7 ~@4 [f#1,f#2]@4 [e4,b4]@9 ~@4 g2@4 ~@14 [d5,e5]@2, [a#1,a#2]@12 ~@4 a1@28 ~@4 a1@15 a1@16 [f#1,f#2]@12 ~@5 g1@16 a1@12 g5@4 ~@2 a2@6 ~@19 e5@12 ~ [e4,b4,e5]@8 ~@6 f#5@10, ~@8 [g4,d5,f#5]@8 d5@23 ~ [d5,f#5,a5]@8 ~@8 g3@8 ~@23 [a4,d5]@9 g2@12 ~@4 [a2,g4,d5,f#5]@8 a2@6 f#5@10 ~@4 f#5@4 ~@7 [a4,d5]@8 g2@12 ~@5 [a2,a4,d5,f#5]@6 [a4,d5]@2 a2@2 [a4,d5,g5]@6, ~@16 [f#4,a4]@12 [d4,f#4,a4]@20 a#3 ~@6 [b3,e4]@8 [a3,c#4,e4]@7 [a3,c#4,e4]@9 a5@17 ~@20 e5@10 [a4,c#5]@6 ~@11 a5@16 ~@21 e5@8 a2@4, ~@24 a2@8 ~@16 a2@11 ~@8 a2@8 [a2,f#5]@4 ~@12 e5@13 [e4,b4,e5]@8 ~@6 [g4,d5,f#5]@10 a1@8 [g1,g2,d5]@8 [f#1,f#2]@11 ~@4 g1@17 a1@16]/6", // Gmaj7 D Em D5 F# E5 A D5 …
AG: "[~@3 a2@5 b4@4 ~@2 [d5,a5]@2 [a4,d5]@7 ~@4 [f#1,f#2,e5]@4 [e4,b4,e5]@9 ~@4 g#2@4 [c#5,f#5]@6 [f#4,c#5,f#5]@2 ~@4 e5@2 ~@6 f#4@5 f#4@3 ~@2 c#5@2 [g1,g2,d4,g4,b4]@8 [a1,a2,c#4,e4,a4]@8, [a1,a4,c#5,e5]@8 [g1,g2,d5]@8 [f#1,f#2]@11 ~@4 g#1@16 ~ [a#1,a#2]@12 [a#1,a#2]@4 [b1,b2]@17 ~@15, ~@12 [b4,b5]@4 a5@16 ~@8 [e4,b4,e5]@8 c#6@14 e5@19 ~@15, ~@23 [a4,d5]@8 g#2@12 ~@13 [f#4,c#5,f#5]@6 [f#4,b4]@6 [b4,d5]@8 [f#4,b4,d5]@4 ~@16]/3", // D5 F#7 E5 F#5 G A G5 F# …
AH: "[~@12 [a2,f#5]@4 [b4,d5,b5]@8 b5@4 ~@5 [a4,e5]@7 ~@19 e5@4 g4@7 ~@13 d4@6 ~@13 a3@7 [a3,d4]@7 ~@20 d4@6 ~@14 a3@8 ~@25 g5@3, [d2,d3,a3,d4]@16 g2@12 [g2,c6]@5 [d5,a5]@7 e5@4 d5@4 [a4,c#5,e5]@7 f#5@8 [d2,d3,d5]@27 [b3,d4]@6 [g3,f#4]@6 e4@14 a3@14 e4@6 a4@20 e4@8 [a3,d4]@24 f#5@4, f#4@8 [b1,b2,f#4,b4,d5]@8 g1@47 d4@14 e4@6 a4@33 d4@14 b4@62, ~@4 [c#2,c#3,c#4,e4,a4]@12 ~@8 b4@40 ~@7 [c4,g4]@45 [d2,d3]@26 b3@50, ~@24 d5@6 b5@34 ~@13 b4@39 ~@8 [c4,g4]@18 d4@7 [g3,f#4]@43]/6", // D Bm A5 D5 C5 D5 A D …
AI: "~@8 [d4,f#4]@4 ~@3 e5, [f#2,e5,a5]@17 ~@11 d5@4, ~@8 [e4,c#5]@9 ~@7 [d4,f#4]@8, ~@3 b4@5", // D F#m7 C#m D
AJ: "[~ a4@7 a4@4 a4@4 ~@29 a4@2 ~ d4@7 [a2,c#4,e4,a4]@8 [d3,d4,f#4]@4 ~ c#4@4 [b4,d5]@2 ~@2 [a2,f#5]@4 ~@13 f#5@2 ~ b4 ~@22 [f#4,d5]@8 ~, ~ [b2,f#5]@15 d4@16 ~@11 f#4@4 ~@33 f#5@12 g5@3 a2@32 ~, ~@8 d4@7 ~ [e2,g4]@32 ~@32 [g2,b4]@16 ~@11 a4@20 ~, ~@16 b3@12 ~@35 a3 ~@16 g4@8 g4@8 e5@32, ~@24 e3@23 [g2,g4,b4]@8 ~@12 [c#3,e4,a4]@4 ~ b2@8 ~@4 g3@12 ~@3 a3@12 b4@16 ~]/4", // A D Bm D B5 Em G A
AK: "[~@11 a4@4 ~@8 e4@8 ~@9 d3@38 ~@18, [g4,d5]@15 c#3@12 ~@4 [d2,a3,d4]@46 ~@19, ~@7 d4@8 a4@17 ~@64, ~@15 e4@8 ~@9 f#4@46 ~@18, ~@19 c#2@13 ~@64]/3", // G5 D5
})).s("gm_piano").gain(0.41)
// chords · piano · soft notes
const piano_soft = note(`<
A B C@2 D E@2 ~ F G ~@3 H ~ H I ~ J@2 ~@2 K@2 ~@3 L ~ M ~@4 N O P ~@7 Q R ~@3 S T ~@2 U ~@4 V W ~@3 X Y Z@2 AA AB AC
AD@2
>`.pickRestart({
A: "~@3 d5@2 d5@2 d5@2 d5@2 d5@2 d5@2 d5", B: "~@3 d5@2 d5@2 d5 ~ d5@2 d5@2 d5@2 d5, ~ d5@2 ~@13, ~ a5@2 ~@5",
C: "~ d5@2 d5@2 d5@2 d5@2 d5@2 d5@2 d5@2 d5", D: "~ d5@2 d5@2 d5@2 d5 d5@8", E: "~ [d2,d3]", F: "~@2 d3@5 f#4 a2@8",
G: "~@16 a3@15 ~", H: "~ d3@2 ~@5", I: "~@5 a4@2 ~@9", J: "[~@7 e3@3 ~@6]/2", K: "[~@7 d3@3 ~@6]/2", L: "~@3 a3 ~@12",
M: "b1 ~", N: "~@10 d5 ~@5", O: "~@20 d3@7 ~@5", P: "~@4 g3@7 ~@21", Q: "~@16 g5 ~@15", R: "~ f#4 ~@6",
S: "~@3 a#1 ~@4", T: "~@3 a2@13 ~@16", U: "~@3 b4 ~@4", V: "~@12 a1@5 ~@15", W: "~@9 a4@7 ~@16", X: "~ b2@7",
Y: "a4@4 ~@3 g3, ~ g2, ~@5 d3@3", Z: "[~@2 d4 ~, ~@5 b2@7 ~@4, ~@7 b3@5 ~@4]/2", AA: "~@4 f#4 ~@11",
AB: "~@5 a3@3, ~@7 e4@24 ~", AC: "~@4 b3@12 ~@11 c#3@5, b2 ~", AD: "[~@6 f#3@17 ~@9, ~@3 a2@42 ~@19]/2",
})).s("gm_piano").gain(0.26)
// other · timpani
const timpani = note("<~ A B C D ~@34 E F ~@8 G@2 H@2 I J@2 ~ K L M N@3 ~@9>".pickRestart({
A: "~@15 d2", B: "d2@27 ~@5", C: "~@15 [d2,d3]", D: "d3@27 ~@5, d2 ~", E: "~@16 d2@11 ~@5", F: "~@13 d2 ~ d2@12 ~@5",
G: "~@14 a2 ~ a2@9 ~@7", H: "[~@15 f#2@8 ~@8 g2@11 ~@6 a2@7 ~@9]/2", I: "~@8 a2@3 ~ g2@2 ~@2 f#2@8 ~@8",
J: "[~@15 a2@6 ~@9 a2 a2@6 ~@11 f#2@8 ~@8]/2", K: "~@12 a#2@2 a2@2 g2@7 ~ a2@5 ~@3",
L: "d3@4 c#3@4 b2@4 a2@3 g2@9 ~@8", M: "a2@9 ~@23", N: "[~@45 a2!4 ~ a2 a2@2 d2@42 ~, d2 ~]/3",
})).s("gm_timpani").gain(0.36)
// chords · string ensemble 1
const string_ensemble_1 = note("<A@5 ~@4 B C D@2 E@7 F@4 G@4 H@2 I@4 J K@2 L M@8 N@7 O@7 P@4 ~@2 Q@5 ~>".pickRestart({
A: "[~@62 d2 d2@27 ~@36 d2 ~ d2@16 ~@16, d3@31 ~]/5", B: "[g3,b3]@7 [a3,c#4,e4]@8 [d4,f#4]@17",
C: "[g3,b3,d4]@8 [c#4,e4]@7 [d4,f#4]@17", // G C#m D
D: "[[g3,b3,d4]@7 c#4@8 ~ b3@8 [a3,f#4]@7 [d4,g4]@16 [e4,a4]@16 f#4, ~@7 f#4@16 ~@41, ~@16 d4@15 ~@33]/2", // G D G5 A5
E: "[d4@15 ~ b3@15 [a3,d4,f#4]@16 [a3,c#4,e4]@16 [a3,d4,f#4]@16 [b3,e4]@16 [a3,d4,f#4]@16 ~ [a3,e4]@15 [d4,f#4]@16 ~@16 f#4@16 [e4,g4]@16 e4@17 d4@16, ~@15 [e4,g4]@16 ~@80 c#4@16 ~@16 g4@15 ~@66, ~@144 d4@32 ~@15 b3@3 ~@14 g3@5 ~@11]/7", // D A D E5 D A5 D Em
F: "[d4@3 e4@4 ~@4 g4@6 ~@15 g4@16 f#4@24 d4@7 d4@32 ~ b4@7 [c#4,e4,a4]@9, ~@7 f#4@10 b4@18 ~@13 a4@7 ~@73]/4", // A
G: "[[a3,d4,f#4]@15 ~ g3@7 [a3,c#4,e4]@8 [a3,d4,f#4]@5 ~@11 [b3,d4,g4]@8 [a3,c#4,e4]@8 b3@15 ~@2 b3@13 ~@2 e4@5 ~@3 c#4@8 ~ g4@7 [c#4,e4,a4]@9, ~@15 [b3,d4]@8 ~@40 d4@9 ~@7 [d4,g4]@13 ~@19 [d4,b4]@8 ~@9, ~@63 f#4@4 ~@28 a4@16 ~@17]/4", // D A D G A Bm G5 G
H: "[[d4,f#4]@5 ~@11 [g4,b4]@7 [c#4,e4,a4]@8 [f#4,b4]@16 ~ b4@8 f#4@7 [b3,d4,f#4], a3@16 ~@31 g4@8 ~@9]/2", // D G A B5 Bm
I: "[~@15 [g4,b4]@16 a4@4 ~@4 c#4@5 ~@3 [d4,f#4,a4]@16 [e4,b4]@5 ~@11 d4@16 e4@16 [d4,f#4,a4]@17, ~@31 e4@16 ~@16 g4@16 a4@19 ~@30, ~@79 f#4@13 ~@3 c#4@10 ~@23]/4", // G D E5 D
J: "[g4,b4]@15 [d4,f#4,a4]@17", K: "[[c#4,e4]@15 [f#4,a4]@16 [g4,b4]@5 ~@11 [f#4,b4]@17]/2",
L: "g4@5 ~@10 d4@8 ~ e4@7 f#4",
M: "[~@3 g4@4 ~@5 b4@4 [g4,b4]@15 ~@9 c#4@7 ~ a4@31 a4@9 ~@7 d5@16 [f4,a4,c5]@15 ~ a#4@3 ~@13 [c4,e4,g4]@16 c#4@15 ~ [d4,f#4]@16 [b3,d4]@16 c#4@33 [e4,g#4]@8 [c#4,f#4]@8, ~@8 a4@8 ~@15 [e4,a4]@16 d4@31 ~ d4@32 ~@15 [d4,f4]@17 ~@113, ~@47 f#4@11 ~@101 a4@4 ~@11 a4@17 g4@3 ~@13 f#4@28 ~@21]/8", // G F C D Bm E F#5 A5 …
N: "[[b3,d#4]@15 ~ e4@8 [c#4,f#4]@7 [b3,d#4]@16 [d4,g4,b4]@8 [c#4,e4,a4]@8 [d4,f#4]@16 b4@16 a#4@17 [f#4,d5]@31 [g4,b4,d5]@16 [a4,c#5,e5]@16 [a4,d5,f#5]@16 [b4,e5]@7 ~@10 [a4,d5,f#5]@16, ~@15 g#4@8 ~@40 a4@6 ~@10 f#4@33 a4@16 ~@63 g5@17 ~@16]/7", // B F#5 B G A D G A …
O: "[[a4,c#5,e5]@8 [d5,g5,b5]@8 [a4,d5,f#5]@15 ~ g5@15 [a4,d5,f#5]@16 ~ [a4,e5]@7 ~ b4@9 ~@7 [a4,d5,f#5]@7 e5@5 ~@3 g#5@8 [c#5,f#5]@16 d5@16 ~ d5@20 ~@3 e5@4 f#5@4 g5@16 a5@28 ~@4 d5, ~@31 e5@7 ~@57 g5@2 ~@30 f#5 ~@63 e5@24 ~@9, ~@32 b4@5 ~@26 c#5@8 [g4,g5]@9 ~@47 b4@3 ~@94]/7", // A G D A5 D F#5 G
P: "[~@8 g5@5 b5@7 a5@5 d5@6 f#5@6 ~ e5@6 d5@7 ~ d5@6 ~ g5@6 b5@6 a5@7 d5@6 f#5@6 ~ e5@8 d5@21 ~@8, ~@52 d1@53 ~@23, ~@52 d2@47 ~@29]/4",
Q: "[~@31 d4@2 ~@2 e4@4 f#4@9 g4@15 a4@32 b4@16 c#4@16 d4@18 ~@15, ~@95 g4@5 ~@27 a3@10 ~@23]/5",
})).s("gm_string_ensemble_1").gain(0.15)
// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note(`<
~@8 A@2 B C@2 D ~ E F@3 ~ G H@2 I ~@4 J@2 ~@7 K ~@4 L@2 ~@11 M@2 ~@6 N ~@2 O P@4 ~
>`.pickRestart({
A: "[~@31 d4@8 ~@8 a3@17]/2", B: "~@8 a3@7 b3@16 ~", C: "[~@31 b3@16 ~@17]/2", D: "a3 ~", E: "~@15 g4@16 ~",
F: "[~@31 a3@16 ~ b3@31 b3@16 ~]/3", G: "~@17 g4@15", H: "[~@2 d4@3 ~@3]/2", I: "~@2 [d4,g4] ~", J: "~@2 d4 ~",
K: "e4@15 ~@17", L: "[~@31 e4@17 ~@16]/2", M: "[~@31 b4@5 ~@28]/2", N: "~@3 a4@20 ~@9, ~@3 a2@12 ~@17",
O: "~@16 d4@15 ~, ~@16 g3@9 ~@7", P: "[~@31 e4@32 d4@16 [e4,a4]@16 f#4@18 ~@15]/4",
})).s("gm_string_ensemble_1").gain(0.1)
// chords · tuba
const tuba = note(`<
A B A C D ~@16 E F G H ~@2 I J K@3 L@2 M ~ N O ~ P@6 Q ~ R@2 S@4 T@3 U@2 V W X Y Z AA ~@5 AB AC ~
>`.pickRestart({
A: "~@15 a4, ~@7 d4", B: "[g4,b4]@7 [c#4,a4]@9 [d4,f#4]@14 ~@2", C: "[g4,b4]@7 [c#4,a4]@9 [d4,f#4]@14 d2@2",
D: "d2@3 ~", E: "~@3 [c#4,a4]", F: "[b3,g4]@2 ~ [c#4,a4]", G: "[b3,g4]@5 ~@11 [g3,b3]@7 ~ [a3,c#4]@8",
H: "d4@13 ~@19", I: "~@16 [g4,b4]@7 [a4,c#5]@9", J: "[a4,d5]@15 [g4,b4]@9 a4@8",
K: "[b4@15 [g4,b4]@9 f#4@7 b4@16 ~@8 [g4,b4]@8 a4@4 ~@12 a4@17]/3", // G
L: "[b4@5 ~@26 c#4@10 ~@6 a4@16 ~, ~@15 a4@19 ~@30]/2", M: "b4 ~", N: "~ g4@14 b4@16 ~", O: "~@15 g4@12 ~@5",
P: "[~@16 [d4,d5]@7 [c#4,a4]@8 [b3,g4]@5 ~@9 [d4,d5]@2 [d4,d5]@8 [c#4,a4]@8 [b3,g4]@4 ~@12 [f4,a4]@16 f4@16 [e4,g4]@16 a4@3 ~@13 [d4,a4]@16 [g4,b4]@3 ~@13 f#4@17, ~@95 a#4@3 ~@94]/6", // D F#m Em D F#m Em F Em …
Q: "f#4@13 ~@19", R: "[~@16 [d4,g4]@8 a4@7 d4@16 ~@9 b4@8, ~@31 a4@5 ~@28]/2",
S: "[a#4@15 ~ f#4@32 [g4,b4]@15 a4@15 ~ [a4,d5,f#5]@16 g5@17 [a4,d5,f#5]@16, ~@15 d4@33 ~@15 c#4@4 ~@61, ~@15 a4@17 ~@63 e5@7 ~@26]/4", // G D
T: "[[a4,c#5,e5]@8 [g4,b4,d5]@7 ~ a4@15 [b4,e5]@7 ~@10 [a4,d5]@15 ~ a4@4 ~@3 [g4,b4,d5]@8 ~ d5@15 ~, ~@15 [d5,f#5]@16 g5@16 f#5@16 e5@8 ~@8 f#5@16 ~, ~@63 c#5@4 ~@29]/3", // A G E5 D5 G D
U: "[~@11 e5@4 [c#5,f#5]@16 d5@17 [g4,b4]@7 ~ a4@8, ~@31 b4@3 ~@21 c#5@8 ~]/2", V: "a4@15 [g4,b4]@17, d5 ~@7",
W: "~@15 e5@9 ~@8, ~@3 a4@29", X: "~@8 g4@5 b4@7 a4@6 d4@6, d5@7 ~@9",
Y: "~@6 e4@7 d4@7 d4@7 [c4,g4]@5, f#4@10 ~@10 a3@3 ~@9", // C5
Z: "~@2 [e4,b4]@6 [d4,a4]@6 [b3,d4]@7 ~ [a3,f#4]@5 [a3,e4]@5", AA: "~@3 d4@19 ~@10, ~@3 a3@11 ~@18",
AB: "g4@4 ~@11 [c#4,a4]@17", AC: "f#4@9 ~@7",
})).s("gm_tuba").gain(0.26)
// chords · tuba · soft notes
const tuba_soft = note("<~@24 A ~@6 B C D E ~@2 F ~@10 G ~ H I@2 ~@2 J@2 ~@12 K L ~>".pickRestart({
A: "a3@13 ~@19", B: "~@15 d4@17", C: "e4@4 ~@11 d4@16 ~", D: "~@15 d4@16 ~", E: "e4 ~@3 b4@4, ~@16 e4@11 ~@5",
F: "e4@9 ~@23", G: "~@15 b4@9 ~@8", H: "~ d4", I: "[~@31 b4@6 ~@27]/2",
J: "[~@16 a4@15 [b4,e5]@5 ~@28, ~@31 g5@2 ~@31]/2", K: "d4 ~", L: "d4@17 ~@15, a3@9 ~@23",
})).s("gm_tuba").gain(0.15)
// bass · electric bass finger
const bass = note(`<
~ A B C@2 ~@18 D E F@3 G@2 H I J@2 K L M N O P@7 Q R S T@4 U@2 V@2 W X Y@5 ~@3 Z AA@2 AB@2
>`.pickRestart({
A: "~@30 [d1,d2] ~", B: "[d1,d2]@27 ~@5", C: "[~@29 [d1,d2]@2 d1@22 ~@11, ~@31 d2@16 ~@17]/2", D: "~@2 g2 a2",
E: "d2@2 g1 a1", F: "[d2@11 d2@4 g1@8 a1@8 b1@4 ~@4 a1@9 g1@15 a1@12 a1@4 ~ g1@8 a1@8]/3",
G: "[d2@12 d2@4 g1@8 a1@7 b1@13 b1@2 a1@2 g1@8 f#1@8]/2", H: "b1@4 ~@4 a1@7 g1@12 g1@4 ~",
I: "a1@11 ~@2 g1@2 f#1@12 f#1@5, ~@11 a1@4 ~@17", J: "[g1@10 ~ g1@4 ~ a1@11 a1@2 a1@10 a1@4 ~ g1@3 f#1@12 ~ f#1@4]/2",
K: "g1@11 g1@4 ~ a1@12 a1@4", L: "a1@2 g1@2 f#1@3 f#1", M: "g1@11 g1@4 b1@12 b1@4 ~",
N: "e1@11 ~@2 f#1@2 ~ g1@7 a1@9, ~@6 e1 ~@9", O: "d2@4 c#2@4 b1@3 a1@5 g1@16",
P: "[a1@16 d1@19 d1@2 d1@10 d1@14 d1@2 d1@12 d1@3 ~ f1@12 f1@3 ~ d1@12 d1@4 e1@12 e1@2 d1@2 c#1@12 c#1@4 d1@12 d1@4 g1@12 g1@2 a1@2 ~ a#1@6 a#1@2 a#1@4 a#1 ~ a#1@7 ~@3 a#1@6 ~@2 g#1@8 a#1@8]/7",
Q: "b1@12 b1@3 g#1@9 a#1@8", R: "b1@12 b1@4 b1@7 c#2@9", S: "d2@11 d2@2 c#2@2 b1@13 b1@4",
T: "[a#1@12 a#1@4 a1@11 a1@2 a1@10 a1@7 ~@2 a1@11 a1@2 ~ a1@5 a1@4 a1@8 f#1@12 f#1@4 g1@13 g1@4 a1@12 a1@4]/4",
U: "[a1@8 g1@8 f#1@11 f#1@4 g1@12 ~ g1@4 a1@12 a1@4]/2", V: "[a1@8 g1@8 f#1@11 f#1@4 g#1@12 ~ g#1@4 a#1@12 a#1@4]/2",
W: "b1@6 b1 a1 g1@4 a1@4", X: "d2 c#2 b1 a1 g1@4", Y: "[a1@31 d1@54 d1@52 ~@23]/5", Z: "~ g1",
AA: "[a1@23 ~@8 b1@16 c#2@17]/2", AB: "[d1@35 ~@29]/2",
})).s("gm_electric_bass_finger").gain(0.36)
// drums · kick
const kick = s("bd").struct(`<
~@23 A B C A B C D C E@2 D F D C G A C E@5 A B C D F E@2 A B F G A B@2 H ~@12
>`.pickRestart({
A: "~ x", B: "x!2", C: "x ~@14 x ~@15 x", D: "~@15 x ~@16", E: "~@15 x ~@15 x", F: "x ~@15 x ~@14 x",
G: "~@16 x ~@14 x", H: "x",
})).gain(0.46)
// drums · rim
const rim = s("rim").struct("<~@23 A B C B D C E B ~@41>".pickRestart({
A: "~@25 x ~@6", B: "~ x ~ x", C: "~@8 x ~@14 x ~@8", D: "~@3 x", E: "~@7 x ~@15 x ~@8",
})).gain(0.41)
// drums · snare
const snare = s("sd").struct("<~@31 A B@3 C B D B@2 A@5 E B D C F C A B@3 C@2 B@2 ~@13>".pickRestart({
A: "~@7 x ~@15 x ~@8", B: "~ x ~ x", C: "~@7 x ~@16 x ~@7", D: "~@8 x ~@14 x ~@8", E: "~@3 x ~@8 x ~@3",
F: "~@8 x ~@4 x ~@10 x ~@7",
})).gain(0.46)
// drums · low tom
const low_tom = s("lt").struct("<~@23 A ~@3 B ~@3 A ~@3 C ~ B ~ D ~ E ~@3 F ~ G ~ H ~ I ~ J ~ K ~ J ~@14>".pickRestart({
A: "~@7 x ~@5 x ~@18", B: "~@3 x ~@4", C: "~@7 x ~@3 x ~ x ~@18", D: "~@8 x ~@3 x!2 ~@18", E: "~@7 x ~@5 x ~ x ~@16",
F: "~ x!4 ~@3", G: "~@11 x ~@3 x ~@16", H: "~@5 x!4 ~@7", I: "~@7 x ~@3 x!2 ~@2 x ~@16", J: "~@4 x ~ x!3 ~@7",
// … 43 more lines
More by Michael Bolton
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.