0:00/0:00
// First Time — The Kelly Family
// 69 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 73 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(69/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 · fretless bass · "FRETLESS"
const bass = note(`<
~@13 A@8 B C D E F G@3 H I J@2 K L M@3 N@3 O P@5 Q@2 R S T U V W X Y R S T U V W X Y Z AA AB AC AD AE AF AG
>`.pickRestart({
A: "[d2@47 b1@48 g1@48 a1@48 d2@48 b1@47 ~ g1@48 a1@46 ~@3]/8", B: "d2@16 ~@2 d2 ~@2 d2@20 ~ d2@5 ~",
C: "b1@17 ~ f#1 ~@2 b1@20 ~ b1@6", D: "g1@17 ~@4 g1@20 ~ g1@6", E: "a1@18 a1 ~@2 a1@21 d2@4 ~@2",
F: "~ d2@15 ~ d2 ~@3 d2@19 ~@2 d2@6",
G: "[b1@17 ~@4 b1@19 ~ b1@6 g1@16 ~@2 g1 ~@3 g1@19 ~@7 a1@17 ~@2 a1 ~@2 a1@19 ~@2 a1@5 ~]/3",
H: "d2@16 ~@4 d2@20 ~ d2@6 ~", I: "~@18 f#1 ~@2 b1@19 ~ b1@6 ~",
J: "[g1@16 ~ g1 ~@2 g1@19 ~@2 g1@6 a1@17 ~@2 a1 ~@2 a1@19 ~ a1@5 ~@2]/2", K: "d2@16 ~ d2 ~@3 d2@19 ~ d2 ~@6",
L: "b1@16 ~@5 b1@20 b1@6 ~",
M: "[g1@15 ~@2 g1 ~@2 g1@26 ~ a1@17 ~ a1 ~@3 a1@20 a1@3 b1 ~@2 d2@17 ~@2 d2 ~@2 d2@20 d2@6 ~]/3",
N: "[b1@16 ~ f#1 ~@2 b1@19 ~@2 b1@6 g1@17 ~@2 g1 ~@2 g1@19 ~ g1@6 a1@17 ~@2 a1 ~@2 a1@20 ~ a1@4 ~@2]/3",
O: "d2@17 ~ d2 ~@2 d2@25 ~@2",
P: "[d2@17 ~@3 d2@25 ~@2 b1@17 ~ b1 ~@2 b1@26 ~ b1@18 ~@4 b1@25 ~ g1@17 ~@2 g1 ~@2 g1@19 ~ g1@3 ~@3 b1@17 ~@5 b1@25 ~@2]/5",
Q: "[a1@16 ~@2 a1 ~@2 a1@25 ~ a1@17 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~@2 a1@2 ~ a1@4 ~@2]/2",
R: "d2@16 ~@2 d2 ~@2 d2@20 ~ d2@3 c#2@3", S: "b1@18 b1 ~@2 b1@19 ~@2 b1@3 a1@2 ~", T: "g1@17 ~ g1 ~@2 g1@20 ~ g1@6",
U: "a1@20 ~ a1 ~@2 a1@17 ~ a1@6", V: "d2@17 ~ d2 ~@2 d2@19 ~@2 d2@3 c#2@2 ~", W: "b1@18 b1@2 ~ b1@19 ~@2 b1@3 a1@2 ~",
X: "g1@17 ~ g1@2 ~ g1@20 ~ g1@6", Y: "a1@20 ~ a1@17 ~ a1@8 ~", Z: "d2@16 ~ d2 ~@2 d2@22 ~@6", AA: "b1@19 ~@2 b1@26 ~",
AB: "g1@17 ~ g1 ~@2 g1@22 ~@5", AC: "a1@17 ~ a1 ~@2 a1@22 ~@2 a1@3", AD: "d2 ~@20 d2@18 a1@3 b1@3 a1@3",
AE: "d2 ~@2 d2@13 ~@5 d2@18 a1@3 b1@3 a1@3", AF: "d2@2 ~@16 d2 ~@2 d2@18 a1@3 b1@3 a1@3",
AG: "d2 ~@2 d2@13 ~@5 d2@17 ~ a1@3 ~@6",
})).s("gm_fretless_bass").gain(0.4)
// bass · fretless bass · "FRETLESS" · soft notes
const bass_soft = note("<~@23 A ~@2 B C ~ D E ~@3 F ~@7 D ~ B G F ~@18 H ~ I ~ J K L K>".pickRestart({
A: "~@18 g1 ~@29", B: "~@18 b1 ~@29", C: "~@42 g1@5 ~", D: "~@17 d2 ~@30", E: "b1@5 ~@11", F: "~@17 b1 ~@30",
G: "~@45 a1 ~@2", H: "~@11 d2", I: "~@44 g1@3 ~", J: "~@3 d2@11 ~@4 d2 ~@29", K: "~@18 d2 ~@29", L: "~@3 d2@13 ~@32",
})).s("gm_fretless_bass").gain(0.2)
// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@13 A@3 B C@3 B C@3 B C@3 B C@3 B C@3 B D@3 E ~@24 F G H I J@4>".pickRestart({
A: "[a3@47 ~@49 g3@48, d4@47 ~, f#3@95 ~@49, ~@16 b3@31 ~]/3", B: "[e3,a3,c#4]",
C: "[a3 ~@95 g3@48, d4@47 ~, f#3@95 ~@49, ~@16 b3@31 ~]/3",
D: "[~ a3@47 ~@49 g3@47, ~ d4@141 ~@2, ~ f#3@95 ~@48, ~@49 b3@93 ~@2]/3", E: "~ [e3,a3,c#4]@47", F: "[a3,d4,f#4]",
G: "[b3,d4,f#4]", H: "[g3,b3,d4]", I: "[a3,c#4,e4]", J: "[[a3,d4,f#4]@47 ~]/4",
})).s("gm_string_ensemble_2").gain(0.11)
// chords · piano · "A.PIANO 2"
const piano = note(`<
A B C D E@2 C D F@2 G H I@2 G H I@2 G H J@4 K L@2 M N O@2 P Q R@2 S T@3 U V W X Y Z AA@3 AB AC AD AE AF AG AH AI AJ AC
AD AE AF AG AH AI AJ ~@8
>`.pickRestart({
A: "~@15 d5", B: "~@7 a5, d4@39 g5@8 ~, f#5@36 f#5@11 ~, ~@6 a4@12 ~@6 a4@23 ~, ~@12 d5@18 d5@17 ~",
C: "~@7 [f#4,f#5], d5@12 ~ e5@3, b3@24 b3@23 ~, ~ f#4@2 ~@5, ~ b4@2 [b4,d5]", D: "~@4 f#4@8 f#4@3 d5, b4@23 ~, g3 ~",
E: "[~@36 a4@8 ~ a4@4 ~@41 a5@6, c#5@46 ~@8 a4@12 ~@6 a4@15 g5@8 ~, a3@18 e5@28 ~@3 f#5@35 f#5@11 ~, ~@12 d5@34 ~@14 d5@18 d5@17 ~, ~@12 a4@12 a3@22 ~@3 d4@47]/2",
F: "[~@36 a4@8 ~ a4@4 ~@41 a4@6, c#5@46 ~@3 f#4@35 f#4@3 g4@8 ~, a3@18 e5@28 ~@14 d4@18 d4@17 ~, ~@12 d5@34 ~@8 a3@12 ~@6 a3@23 ~, ~@12 a4@12 a3@22 ~@3 d3@47]/2",
G: "~@7 [f#3,f#4], d4@12 ~ e4@3, b2@24 b2@23 ~, ~ f#3@2 ~@5, ~ b3@2 [b3,d4]", H: "~@4 f#3@8 f#3@3 d4, b3@23 ~, g2 ~",
I: "[~@36 a3@8 ~ a3@4 ~@41 a4@6, c#4@46 ~@8 a3@12 ~@6 a3@15 g4@8 ~, a2@18 e4@28 ~@3 f#4@35 f#4@11 ~, ~@12 d4@34 ~@14 d4@18 d4@17 ~, ~@12 a3@12 a2@22 ~@3 d3@47]/2",
J: "[~@36 a3@8 ~@94 a3@5 ~@43 b3@6, c#4@45 a3@5 ~@10 a3@19 a3@11 a3@8 ~@4 a3@12 a3@12 a3@12 ~@36 b3@12 ~@6, a2@9 e4@14 ~@73, ~@6 d4@17 ~@7 [d4,f#4]@12 [d4,f#4]@12 [d4,f#4]@12 [d4,f#4]@12 [d4,f#4]@12 [d4,f#4]@6, ~@12 a3@12 a2@22 ~@2 d2@21 d2@26 b2@21 ~ b2@26 ~ g2@21 g2@27]/4", // D
K: "~@12 [c#4,e4]@2 a3 ~, a2@7 a2@8 ~, ~ a3@2 ~@2 a3@2 ~, ~ [c#4,e4]@2 ~", // C#m
L: "[[a3,d4]@11 ~@20 a3@5 a3@6 [a3,a4]@5 ~ [b3,d4]@21 ~@21 [a3,f#4]@6, f#4@36 [d4,f#4]@11 ~@22 d4@15 [b3,d4]@11 ~, d2@21 d2@26 b2@21 ~ b2@26 ~, ~@12 a3@19 ~@47 a3@9 e4@8 ~]/2", // D5 A Bm D Bm
M: "g3@2 ~@4 b3!2, d4, g2@7 g2@9, b3 ~ f#4@6, ~@3 g3",
N: "a3@2 a3@2 [a3,d4]@2 ~@4 a3@3 a3!2 ~, [a2,c#4]@6 c#4@9 ~, ~@6 e4@7 e4@2 ~, ~@7 a2@8 ~", // D5 A
O: "[a3@12 a3@9 a3@10 a3@5 ~@6 [a3,a4]@5 ~ [b3,d4]@21 ~@21 [a3,f#4]@6, [d2,d4,f#4]@21 d2@26 b2@21 ~ b2@26 ~, ~@21 [d4,f#4]@15 [d4,f#4]@11 ~@25 f#4@18 ~@6, ~@13 a3@2 ~, ~@84 [b3,d4]@11 ~]/2", // A Bm D Bm
P: "[g2,g3,d4]@7 [g3,d4]@5 b3@2 b3@2, b3@2 ~@5 [g2,f#4]@9, ~@7 b3@3 ~@2 [g3,d4]@4", // G5 Gmaj7 G5
Q: "a3@2 a3@2 [a3,d4]@2 ~@7 a3!2 ~, [a2,c#4]@6 c#4@9 ~, ~@6 e4@7 e4@2 ~, ~@7 a2@8 ~", // D5 A
R: "[~ [f#4,a4]@9 ~@2 [f#4,b4]@6 [d4,f#4,a4]@17 ~ [d4,a4]@3 f#4@3 [d4,g4]@3 [d4,f#4,a4]@8 ~ f#4@4 ~@2 [d4,b4]@6 [d4,f#4,a4]@19 ~@2 [d4,f#4,a4]@8 ~, ~ d4@4 ~@7 d4@3 ~@45 f#4@2 ~@34]/2", // F#m B5 D D5 G5 D G D
S: "~@12 b3@19 ~@5 [b3,d4,f#4]@11 ~, ~@11 [d4,f#4]@18 ~@19", // Bm D
T: "[~@12 [a3,c#4,e4]@19 ~@5 [a3,c#4,e4]@6 ~@3 [a3,d4]@13 ~@2 [f#4,b4]@6 [f#4,a4]@17 ~ a4@3 f#4@2 ~ g4@2 ~ a4@14 ~ [f#4,b4]@6 [f#4,a4]@19 ~@2 [f#4,a4]@8 ~, ~@31 f#4@3 ~@14]/3", // A D5 B5 F#m B5 F#m
U: "~@11 [g3,b3,d4]@20 ~@5 [g3,b3,d4]@12", V: "~@12 [e3,a3,c#4]@20 ~@4 [e3,a3,c#4]@11 ~",
W: "[d4,f#4,a4]@32 ~@4 f#4@3 a4@3 b4@3 a4@3", X: "[f#4,a4,d5]@19 ~@29",
Y: "[f#4,a4,e5]@9 ~@2 [a4,d5]@21 ~@4 b4@3 d5@3 e5@3 d5@2 ~, ~@11 f#4@17 ~@20", Z: "[b4,d5,f#5]@18 ~@24 e5@2 ~ f#5@3",
AA: "[g5@10 ~ f#5@4 ~@3 e5@23 ~ d5@2 ~@3 f#5@10 ~@3 e5@6 d5@14 ~@3 d5@11 ~ a4@17 ~@5 [a3,a4]@15 ~@3 [a3,a4]@6 ~@2 a4]/3", // A
AB: "a5@2 ~ a5@2 ~ a5@2 ~ [a4,a5]@2 ~ [a4,a5]@2 ~ a5@2 ~ a5@2 ~ a5@2 ~ a5@2 ~ a5@2 ~ a5@2 ~ a5@2 ~ a5@2 ~ [a4,a5] ~@2 a5@2 ~ [a4,a5]@2 ~, ~@15 a4 ~@2 a4 ~@2 a4 ~@2 a4 ~@2 a4 ~@2 a4 ~@2 a4 ~@2 a4 ~@5 a4 ~@5", // A
AC: "[a3,d4,f#4]@18 ~@2 [a3,d4,f#4]@17 ~@2 [a3,d4,f#4]@6 ~@3", AD: "[b3,d4,f#4]@19 ~@2 [b3,d4,f#4]@24 ~@3",
AE: "[b3,d4]@18 ~@3 [b3,d4]@16 ~@2 [b3,d4]@9", AF: "[a3,c#4,e4]@25 ~@2 [a3,d4,e4]@11 ~ [a3,c#4,e4]@6 ~@3",
AG: "[a3,d4,f#4]@18 ~@3 [a3,d4,f#4]@17 ~ [a3,d4,f#4]@6 ~@3", // D
AH: "[d4,f#4]@18 ~@3 [b3,d4,f#4]@17 ~ [b3,f#4]@7 ~@2, ~@13 d4 ~@2", // D Bm B5
AI: "[b3,d4]@15 ~@6 [b3,d4]@25 ~@2, ~@21 g3@20 ~@7", // Bm
AJ: "[a3,c#4,e4]@19 ~@2 [a3,c#4,e4]@5 ~ [a3,d4,e4]@5 ~ [a3,d4]@2 ~ [a3,d4]@3 c#4@6 ~@3, ~@33 e4 ~@2 e4@9 ~@3", // A Asus4 D5
})).s("gm_piano").gain(0.19)
// chords · piano · "A.PIANO 2" · soft notes
const piano_soft = note(`<
~ A B C D A B C D E F G H E F G H E F G H I ~ J K L M N O P Q R S T U ~@3 V ~@6 W ~@2 X ~@7 Y ~@7 Y ~@8
>`.pickRestart({
A: "~@3 a4 ~@4", B: "~@18 f#4@12 f#4@11 ~@7", C: "~@6 d4@12 ~@12 d4@12 d4@5 ~, ~@3 d4@2 ~@3, ~@12 g3@11 ~",
D: "~@3 e4@12 e4@8 ~", E: "~@3 a3 ~@4", F: "~@18 f#3@12 f#3@11 ~@7",
G: "~@6 d3@12 ~@12 d3@12 d3@5 ~, ~@3 d3@2 ~@3, ~@12 g2@11 ~", H: "~@3 e3@12 e3@8 ~",
I: "~@6 d3@6 ~@6 d3@3 ~@9 d3@17 ~", J: "~ b3@2 b3@2 ~@3", K: "~@18 a3@7 ~@23",
L: "~@6 d3@6 ~@6 d3@3 ~@18 g4@6 f#3@2 ~, ~@12 d4@21 d3@14 ~", M: "~@2 a3@4 ~ b3@5 ~@4, ~@3 a3@2 ~@3",
N: "~ b3!2 b3@2 b3 ~@2, ~ g3@2 ~", O: "~@12 b3@6 a3@7 ~@23", P: "~@6 d3@6 ~@6 d3@3 ~@18 g4@8 ~, ~@6 a3 ~",
Q: "~@6 a3@12 ~@6 [b3,d4]@9 ~@6 e4@6 d3@2 ~, ~@18 a3@12 ~@3 f#3@14 ~", R: "~@2 b3@4 b3 ~@3 b3@2 ~@4",
S: "~@18 a3@7 ~@5 a3@9 ~@9", T: "~@2 d4 ~@13", U: "~ a4 ~@6, ~@5 d4@4 ~@39", V: "~@3 f#4@2 ~@19", W: "~@45 e5@2 ~",
X: "~@3 a4@2 ~ a4 ~@41", Y: "~@39 a3@5 ~@4",
})).s("gm_piano").gain(0.1)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
~@12 A@5 B@5 C@3 D E@3 D E@3 F G H I F J H I K L M N O P Q R S T H U V W H U V T H U V W H U F X H U F Y ~@2
>`.pickRestart({
A: "[~@49 f#4@41 ~@7 f#4@41 ~@6 [d4,f#4]@40 ~@9 a4@43 ~@2 a2 [a2,d3,f#3], ~@46 a2@43 ~@5 b2@44 ~@54 [c#4,e4]@45 ~@3, ~@47 [d3,f#3]@43 ~@5 [d3,f#3,b3]@43 ~@4 d3@41 ~@7 c#3@46 ~@4, ~@48 [a3,d4]@41 ~@7 d4@40 ~@7 [g3,b3]@42 ~@6 [e3,a3]@46 ~@3]/5", // D C#m D Bm D5 G A5
B: "[~ f#4@41 ~@7 f#4@41 ~@6 [d4,f#4]@40 ~@9 a4@43 ~@5 f#4@9 ~@2 [a3,d4,f#4]@5 ~@4 [d3,a3]@9 [d3,a3]@6 [d3,a3,d4,f#4]@2 ~ [a3,d4,f#4]@9, d4@41 ~@6 [d3,f#3,b3]@43 ~@4 d3@41 ~@7 c#3@46 ~@3 [a2,d3]@8 ~@41, a3@9 ~@37 b2@44 ~@54 [c#4,e4]@45 ~@3 [a3,d4]@9 ~@12 d4@15 ~@12, ~@48 d4@40 ~@7 [g3,b3]@42 ~@6 [e3,a3]@46 ~@15 d3@8 ~@28]/5", // D D5 D Bm D5 C#m D5 G …
C: "[~ f#4@11 ~ f#4@5 f#4@3 [b2,f#3,b3,d4]@5 ~ [f#3,b3]@6 ~@3 [b2,f#3,b3]@3 f#3@8 ~ [d3,b3,d4]@12 [b2,d3,b3,d4,f#4]@5 ~ [d4,f#4]@2 ~ [b2,d3,b3]@6 d3@6 d3@2 ~ [d3,b3,d4,f#4]@2 ~ d3@8 ~ [e3,a3,c#4,e4]@12 [a2,e3,a3,c#4,e4]@6 a3@3 [a2,e3,a3,c#4,e4]@3 [a2,e3,a3]@3 [e3,a3]@5 ~ [e3,a3]@2 ~ [a2,e3,a3,c#4,e4]@3 [e3,a3,c#4]@9, [b2,f#3,b3,d4]@12 [b2,f#3]@5 ~@4 f#4@15 ~@3 d4@5 ~@24 [d4,f#4]@9 ~@9 [d4,f#4]@10 ~@32 c#4@3 ~@13, ~@39 b3@3 ~@5 b2@12 ~@6 [b2,d3]@3 ~@15 b2@11 ~ a2@12 ~@37, ~@29 b3 ~@18]/3", // Bm B5 G Bm D Bm A A5 …
D: "~ f#4@11 [a3,d4,f#4]@5 ~@4 [a2,d3,a3]@9 [a2,d3,a3]@6 [a2,d3,a3,d4,f#4] ~@2 [a3,d4,f#4]@9, [a2,a3,d4]@12 a2 ~@35, d3@8 ~@4 d3@8 ~ d4@15 ~@12", // D D5 D D5
E: "[~ f#4@11 ~ f#4@5 f#4@3 ~@6 [f#3,b3]@6 ~@3 [f#2,b2,f#3,b3]@3 f#3@8 ~ [d3,b3,d4]@12 [b2,d3,b3,d4]@5 ~ [d4,f#4]@2 ~ [g2,b2,d3,b3]@6 d3@6 d3@2 ~ [d3,b3,d4,f#4]@2 ~ d3@8 ~ [e3,a3,c#4,e4]@11 ~ [a2,e3,a3,c#4,e4]@6 a3@3 [a2,e3,a3,c#4,e4]@3 [a2,e3,a3]@3 [e3,a3]@5 ~ [e3,a3]@2 ~ [a2,e3,a3,c#4,e4]@3 [e3,a3,c#4]@9, [f#2,b2,f#3,b3,d4]@12 [f#2,b2,f#3]@5 ~@4 f#4@15 ~@3 d4@5 ~@24 [d4,f#4]@9 ~@9 [d4,f#4]@10 ~@32 c#4@3 ~@13, ~@21 [b2,f#3,b3,d4]@5 ~@13 b3@3 ~@23 [b2,d3]@3 ~@19 b3@3 ~@54, ~@22 f#2@14 ~@11 [f#2,b2]@12 ~ [g2,f#4]@9 ~@14 [g2,b2]@11 ~ [e2,a2]@12 e2@24 ~@13]/3", // B5 G Bm D G Bm A A5 …
F: "[a3,d4,f#4]@12 [d4,f#4] ~@5 [a3,d4] ~ f#4 a3@9 a3@6 [d4,f#4]@3 [a3,d4,f#4] ~@8, ~@12 a3@5 ~@4 d4@15 a3 ~@11", // D D5 D
G: "[b3,d4,f#4]@12 [b3,f#4] ~@4 b3 d4@3 [b3,d4]@6 [b3,d4,f#4] ~@5 b3 ~@2 [b3,d4,f#4]@3 b3@3 b3 ~@5, ~@18 f#4 ~@2 f#4 ~@17 f#4@5 ~@4, ~@39 d4 ~@8", // Bm B5 Bm
H: "[b3,d4,f#4]@12 [b3,d4] ~@5 [b3,d4,f#4] ~@2 [d4,f#4] ~@4 b3 d4 ~ f#4 ~@2 b3 ~@3 [b3,d4,f#4]@3 [b3,d4,f#4] ~ b3 ~@6, ~@12 f#4@6 ~@3 b3@5 ~@22", // Bm D Bm
I: "[a3,c#4,e4]@12 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@2 [a3,c#4,e4]@3 [a3,c#4] ~ c#4 a3 ~@5 [a3,c#4]@3 [a3,c#4,e4]@2 e4 a3@9, ~@39 c#4 ~@8", // A
J: "[b3,d4,f#4]@12 b3@5 b3 d4@3 [b3,d4]@6 [b3,d4,f#4] ~@5 b3 ~@2 [b3,d4,f#4]@3 b3@3 b3 ~@5, ~@12 f#4 ~@5 f#4 ~@2 f#4 ~@17 f#4@5 ~@4, ~@39 d4 ~@8", // Bm
K: "~ [d3,a3,d4,f#4]@5 [d3,a3,f#4]@6 [d3,a3,d4,f#4]@5 ~ a3@2 ~@4 a3@2 [d3,a3,d4]@3 [d3,a3]@6 ~ [a3,d4,f#4]@2 ~ d3@2 ~ [a3,d4]@2 ~ d3@3, ~@3 d4 ~@6 d4@3 ~@8 f#4@3, ~@20 [a3,f#4]@3 ~@15 [a3,d4,f#4]@3 ~@3 [a3,d4]@3 ~, ~@21 d3@5 ~@9 d3@3 ~@3 d3@3 ~@4", // D D5 D D5 D D5
L: "[d3,a3,d4,f#4]@5 ~ a3@2 ~@4 [a3,d4,f#4]@6 a3@2 ~ [d3,a3]@5 ~ [d3,a3]@5 [d3,a3,d4]@3 ~ d4@2 ~ d3@2 ~ a3@2 ~ d3@3, ~@5 d3@3 ~@4 d3@5 ~@3 [d4,f#4]@6 f#4@9 ~ f#4@6 ~@6, ~@26 d4@5 ~@4 [d3,a3]@3 [a3,d4]@3 d3@3 a3@4", // D D5 D D5
M: "[f#3,b3,f#4]@9 [f#3,b3,d4]@3 [d4,f#4]@6 b3@2 ~ [f#3,b3]@3 f#3@2 ~ [f#3,b3]@5 ~ f#3@2 ~ b3@2 ~ f#3@2 ~ [b3,d4,f#4]@6, d4@8 ~@4 [f#3,b3]@5 ~@3 f#4@6 ~@10 [d4,f#4]@6 ~@6, ~@21 d4@5 d4@6 [b3,d4]@3 f#3@3 ~@3 f#3@6 ~", // B5 Bm D B5 Bm B5 D Bm
N: "[f#3,b3]@5 [f#3,b3]@3 [f#3,b3,d4]@3 ~ [b3,d4,f#4]@5 ~ f#4@2 ~ [f#3,b3]@2 ~@3 [f#3,d4]@6 [f#3,b3,d4]@3 ~ [f#3,d4,f#4]@2 ~ [f#3,b3]@2 ~ [b3,d4,f#4]@2 ~ [f#3,b3]@3, f#4@12 ~@8 f#4@15 ~@9 [d4,f#4]@4, d4@8 ~@3 f#3@6 [b3,d4]@3 d4@5 ~ b3@3 ~@6 b3@3 [d4,f#4]@3 f#3@3 ~@4", // B5 Bm B5 D Bm D B5 Bm …
O: "[b3,g4]@3 b3@3 [g3,b3]@3 [g3,b3]@3 [g3,b3]@2 b3@6 ~ g3@3 g3@2 ~ g3@5 [g3,b3]@3 ~ [g3,b3,g4]@2 g3@3 g3@2 ~ b3@4, g3@3 g4@3 g4@4 ~@14, ~@14 g3@3 ~@3 [b3,g4]@6 [b3,g4]@6 ~@6 [b3,g4]@5 ~@5", // Em G Em
P: "[d4,f#4]@5 ~ f#4@6 [b3,f#4]@8 ~ [f#3,b3]@3 [f#3,b3]@2 ~ [f#3,b3]@5 ~ [f#3,b3]@3 [f#3,b3,d4,f#4]@2 ~ [f#3,b3,d4]@3 f#3@3 f#3@3, ~@5 b3@6 ~@10 d4@5 d4@6 [d4,f#4]@4 ~@6 [b3,d4,f#4]@6, ~@5 d4@2 ~@5 d4@2 ~@7 f#4@11 ~@6 f#4@4 ~@6", // D B5 Bm D Bm
Q: "c#4@2 ~ c#4@3 [e3,a3,c#4,e4]@6 [a3,c#4]@2 ~ c#4@3 [e3,a3]@3 [e3,a3]@3 [e3,a3]@2 ~ [e3,a3]@3 [e3,a3,e4]@2 ~ [e3,a3,c#4]@3 [e3,a3,c#4,e4] ~@2 [e3,a3,c#4,e4]@3 [a3,c#4,e4] ~@2 [e3,a3,c#4]@3, [e3,a3,e4]@2 ~@2 [e3,e4]@2 ~ e4@3 ~@6, ~@21 c#4@5 c#4@3 ~@13 e3@3 ~@3", // A A5 A A5 E
R: "[e3,e4]@6 [e3,a3,c#4,e4]@3 [e3,a3,c#4,e4]@3 [e3,a3,c#4,e4] ~@2 [e3,a3,c#4,e4]@3 [e3,a3]@3 [e3,a3,c#4,e4]@3 [a3,c#4,e4] ~@2 [e3,a3,c#4,e4]@3 [a3,c#4,e4] ~@2 [e3,a3,c#4,e4]@3 [a3,c#4,e4] ~@2 [e3,a3,c#4,e4]@3 [e3,a3,c#4,e4] ~@2 [e3,a3,c#4,e4]@3, [a3,c#4] ~@17 [c#4,e4] ~@5 e3@3 ~@3 e3@3 ~@3 e3@3 ~@9", // E A A5 A C#m
S: "[d4,f#4]@12 [d4,f#4] ~@5 [a3,d4,f#4] ~ f#4 a3@9 a3@6 [d4,f#4]@3 [a3,d4,f#4] ~@8, a3 ~@11 a3@5 ~@4 d4@15 a3 ~@11", // D
T: "[d4,f#4]@12 [d4,f#4] ~@4 b3 d4@3 [b3,d4]@6 [b3,d4,f#4] ~@5 b3 ~@2 [b3,d4,f#4]@3 b3@3 b3 ~ [d4,f#4] ~@3, ~@12 b3@5 ~ f#4 ~@2 f#4 ~@17 f#4@5 ~@4, ~@39 d4 ~@8", // D Bm D
U: "[a3,c#4,e4]@12 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@2 [a3,c#4,e4]@3 [a3,c#4,e4] ~ c#4 a3 ~@5 [a3,c#4]@3 [a3,c#4,e4]@2 e4 a3@9, ~@39 c#4 ~@8", // A
V: "[a3,d4,f#4]@12 [d4,f#4] ~@5 [a3,d4,f#4] ~ f#4 a3@9 a3@6 [d4,f#4]@3 [a3,d4,f#4] ~@8, ~@12 a3@5 ~@4 d4@15 a3 ~@11", // D
W: "[b3,d4,f#4]@12 [b3,d4,f#4] ~@4 b3 d4@3 [b3,d4]@6 [b3,d4,f#4] ~@5 b3 ~@2 [b3,d4,f#4]@3 b3@3 b3 ~ [d4,f#4] ~@3, ~@18 f#4 ~@2 f#4 ~@17 f#4@5 ~@4, ~@39 d4 ~@8", // Bm D
X: "[b3,d4,f#4]@12 [b3,d4,f#4] ~@4 b3 d4@3 [b3,d4]@6 [b3,d4,f#4] ~@5 b3 ~@2 [b3,d4,f#4]@3 b3@3 b3 ~@5, ~@18 f#4 ~@2 f#4 ~@17 f#4@5 ~@4, ~@39 d4 ~@8", // Bm
Y: "[a3,d4,f#4] [a3,d4,f#4]@14 ~", // D
})).s("gm_acoustic_guitar_steel").gain(0.06).pan(0.8)
// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
~@21 A B C D E F G H E F G H I J ~ K I J ~ K L M N O P Q R ~@17 I S ~@2 I ~@3
>`.pickRestart({
A: "~@18 [a3,d4,f#4]@2 f#4@15 ~@4 d3@9", // D
B: "~@12 [b3,d4]@5 ~ [b2,b3,d4]@3 ~@6 [b2,d4]@6 [f#3,b3]@3 d4@3 ~@5 d4@4, ~@17 f#3@4 ~@15 f#4@12, ~@39 b2@8 ~, ~@7 b3", // Bm B5
C: "~ f#4@8 d3@3 ~@6 b3@2 ~@13 b2@3 ~@6 b3@6, ~@26 [b3,d4]@6 b3@3 ~@13, ~@9 b2@2 ~@5, ~@29 f#4@6 ~@13", // Bm
D: "~@18 [c#4,e4]@3 ~@3 c#4@2 ~ [a2,c#4]@6 a2@2 ~@4 a2@9, ~@17 [a2,e3]@4 ~@3 e4@12 ~@2 e4@9 ~", // C#m A A5
E: "~@18 [a3,d4,f#4]@2 f#4@15 ~@4 [a2,d3]@9", // D D5
F: "~@12 [b3,d4]@5 ~ [b2,b3,d4]@3 ~@6 [b2,d4]@6 [f#3,b3]@3 d4@3 ~@5 d4@4, ~@17 [f#2,f#3]@4 ~@15 f#4@12, ~@39 [f#2,b2]@8 ~, ~@7 b3", // Bm B5 F# B5
G: "~ f#4@8 d3@3 ~@6 b3@2 ~@13 b2@3 ~@6 b3@6, ~@26 [b3,d4]@6 b3@3 ~@13, ~@27 [g2,b2]@8 ~@13, ~@29 f#4@6 ~@13", // Bm G
H: "~@18 [c#4,e4]@3 ~@3 c#4@2 ~ [a2,c#4]@6 a2@2 ~@4 a2@9, ~@17 [a2,e3]@4 ~@3 e4@11 e2@12 ~, ~@38 e4@9 ~", // C#m A A5
I: "~@18 f#4 ~@29", J: "~@12 d4 ~@31 [d4,f#4] ~@3", K: "~@24 e4 ~@23",
L: "~@9 d4@3 ~@6 [d4,f#4]@2 ~@9 d4@6 ~@13, ~@17 d3@3 ~@4 f#4@12 ~@12", // D
M: "~@6 d4@2 [d3,a3,d4]@3 ~@7 d4@3 ~@21 d4@2 d4@4, ~@6 f#4@6 ~@5 d3@3 ~@22 f#4@6", // D5
N: "~@18 f#3@3 ~@3 b3@2 f#4@9 ~@3 b3@3 ~@7", O: "~@17 f#3@3 ~@3 [f#3,b3]@3 ~@3 b3@3 ~@16",
P: "~@2 g4@3 ~@12 g3@3 ~@12 g4@3 ~@9 g4@4", Q: "~@8 d4@3 ~@3 d4@4 b3@3 ~@27",
R: "~@15 a3@3 [c#4,e4]@3 ~@9 c#4@2 e4@3 ~@13", S: "~@44 [d4,f#4] ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.03).pan(0.8)
// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
~@33 A@2 B C D E F G H@2 I@2 J K L@2 M N O P M N O P M N O P M N O P Q R S T ~@4
>`.pickRestart({
A: "[f#5,a5]@23 ~", B: "[d5,g5]@15 ~", C: "[g5,b5]@6 [e5,a5]@17 ~", D: "[f#5,a5]@47 ~", E: "[f#5,b5]@23 ~",
F: "[g5,b5]", G: "[a5,c#6]@47 ~", H: "[[d4,f#4,a4,d5,f#5,a5]@95 ~]/2", I: "[[b4,d5,f#5,b5]@95 ~, f#4@15 ~]/2",
J: "[d4,g4,g5]@47 ~", K: "[d4,f#4,b4,d5,f#5,b5]@47 ~", L: "[~@48 [c#5,c#6]@47 ~, [a4,a5]@95 ~]/2", M: "[d5,f#5,a5]",
N: "[d5,f#5,b5]", O: "[b4,d5,g5]", P: "[a4,c#5,e5]", Q: "[d4,f#4,a4]@23 ~", R: "[d4,f#4,b4]", S: "[b3,d4,g4]@47 ~",
T: "[c#4,e4,a4]", // A
})).s("gm_drawbar_organ").gain(0.08).pan(0.7)
// other · bassoon
const bassoon = note("<~ A B C D ~@31 E F G H I ~@8 J K@4 L M@2 J K@4 L N@2 O@2 C P@3 ~@2>".pickRestart({
A: "~ f#5@34 ~ f#5@3 ~ g5@3 a5@5", B: "d5@33 ~@2 d5@3 ~ e5@3 f#5@5 ~", C: "b4@3 d5", D: "~ a4@46 ~", E: "~@6 f#5 g5",
F: "a5@5 ~ a5@5 b5@6 a5@24 f#5@3 g5@3 ~", G: "a5@5 ~ a5@6 b5@6 a5@18 f#5@3 e5@3 d5@5 ~",
H: "d5@6 b4@5 ~ b4@5 b4@18 ~ d5@11 ~", I: "a4", J: "a5@5 ~ a5@5 b5@6 a5@24 ~ f#5@3 g5@3",
K: "[a5@5 ~ a5@6 b5@6 a5@29 g4@36 b4@10 ~@2 b4@6 ~ a4@30 f#5@6 g5@5 a5@5 ~ a5@6 ~ b5@6 a5@23 ~ f#5@2 g5@3 ~]/4",
L: "a5@5 ~ a5@6 b5@6 a5@18 f#5@3 e5@3 d5@6", M: "[g5@35 d5@12 e5@37 f#5@6 g5@5 ~]/2",
N: "[g5@35 d5@12 e5@31 c#5@6 d5@6 e5@5 ~]/2", O: "[a4@47 d5@24 ~ f#5@9 e5@9 d5@6]/2",
P: "[a4@36 g4@11 f#4@76 ~@21]/3",
})).s("gm_bassoon").gain(0.3)
// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@44 A@4 B C D E F C G H F C D E F C G H F I@2 ~@6>".pickRestart({
A: "[~@48 d4@43 ~@5 d4@40 ~@9 a3@43 ~@4, ~@45 d3@45 ~@3 d3@43 ~@6 [a2,c#3]@47 ~@3, ~@46 g3@44 ~@4 f#3@42 ~@8 e3@45 ~@3, ~@47 b3@43 ~@5 b3@41 ~@56]/4", // A
B: "~@18 [a2,e3]@3 [a2,e3] ~@2 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3", // A5
C: "[d3,a3]@47 ~", D: "[b2,f#3]@7 ~", E: "[g2,d3]", F: "[a2,e3]@47 ~", G: "[b2,f#3]@47 ~", H: "[g2,d3]@15 ~",
I: "[[a2,d3]@55 ~@41]/2", // D5
})).s("gm_overdriven_guitar").gain(0.06)
// chords · overdriven guitar · "OVERDRIVE" · soft notes · A5
const overdriven_guitar_soft = note(`<
~@48
[[a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3] ~@2 e3@3 [a2,e3]@3 ~@30, ~@12 a2 ~@35]
~@24
>`).s("gm_overdriven_guitar").gain(0.04)
// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note("<~@49 A@2 B@5 C A@2 B@5 C ~@8>".pickRestart({
A: "[~@23 e4@18 d4@30 ~ e4@18 d4@5 ~]/2",
B: "[b3@34 ~@2 b3@18 a3@21 b3@3 c#4@2 ~ d4@2 ~ e4@3 f#4@3 g4@5 a4@24 e4@18 d4@30 ~ e4@18 d4@5 ~ b3@33 ~@3 b3@12, ~@191 a3@2 ~@47]/5",
C: "a3@27 b3@3 c#4@2 ~ d4@3 e4@3 f#4@2 ~ g4@2 ~@4",
})).s("gm_overdriven_guitar").gain(0.32).pan(0.9)
// drums · kick
const kick = s("bd").struct(`<
~@13
[x!2 ~@4 x!2 ~@7 x]!35
[x ~@10 x ~@3 x]
[x!2 ~@4 x!2 ~@7 x]!15
// … 51 more lines
More by The Kelly Family
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.