0:00/0:00
// Papa Loved Mama — Brooks Garth
// 150 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 89 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/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 · "Bass"
const bass = note(`<
A B C D E F G H I J K D L M N O M P Q R S P Q E T D U ~@2 V W X Y@2 Z E AA AB G AC AD W X E AE I AF AG AD AH AI D L P
Q AJ D L AK ~@2 AL AM D L Z AN AO AP D L ~@2 AQ AR D L P Q R S D L ~@2 AS Y AT AU
>`.pickRestart({
A: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 b0 b1 b0 b1!2", B: "e2 ~ e2 ~ e2 ~ e2@2 e2 ~ e2 ~ e2 ~ e2 e1",
C: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 e1 e2 e1 e2!2", D: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2",
E: "a1 ~ a1 ~ a1 ~ a1@2 a1 ~ a1 ~ a1 ~ a1 a0", F: "b1 ~ b1@2 b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 b0",
G: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", H: "c2 ~ c2 ~ c2 ~ c2@2 c2 ~ c2 ~ c2 ~ c2 c1",
I: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2", J: "e2 ~ e2 ~ e2 ~ e2 e1 e2 ~ e2 ~ e2 ~ e2@2",
K: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", L: "a1 ~ a1 ~ a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1 ~",
M: "b1 ~ b1 ~ b1 ~ b1@2 b1 ~ b1 ~ b1 ~ b1 b0", N: "b1 ~ b1 ~ b1 ~ b1 b0 b1 ~ b1 ~ b1 ~ b1 ~",
O: "c2 ~ c2 ~ c2 ~ c2 c1 c2 ~ c2 ~ c2@2 a#1 ~", P: "e2 ~ e2@2 e2@2 e2 e1 e2 ~ e2 ~ e2 ~ e2@2",
Q: "e2 ~ e2 ~ e2 ~ e2 e1 e2 ~ e2 e1 e2 ~ e2 ~", R: "a1 ~ a1 ~ a1 ~ a1 a0 a1 ~ a1 ~ a1 ~ a1@2",
S: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", T: "a1 ~ a1 ~ a1 ~ a1 a0 a1 ~ a1 ~ a1 ~ g#1 ~",
U: "a1 ~ a1 ~ a1 ~ a1@2 a1 ~ a1 ~ a1 ~ a1 ~", V: "~@12 e2 ~ e2 ~", W: "e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2@2",
X: "e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2 ~ e2 ~ e2 ~", Y: "e2 ~ e2 ~ e2 ~ e2@2 e2 ~ e2 ~ e2 ~ e2 ~",
Z: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2@2", AA: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 a0 a1 a0 a1!2",
AB: "b1 ~ b1 ~ b1 ~ b1 b0 b1 ~ b1 ~ b1 ~ b1@2", AC: "c2 ~ c2 ~ c2 ~ c2@2 c2 ~ c2 ~ c2 ~ c2 ~",
AD: "b1 ~ b1 ~ b1 ~ b1 b0 b1 ~ b1 ~ b1@2 d#2 ~", AE: "a1 ~ a1 ~ a1 ~ a1 a0 a1 ~ a1 ~ a1 ~ a#1 ~",
AF: "b1 ~ b1 ~ b1 ~ b1@2 b1 ~ b1@2 b1 ~ b1 ~", AG: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 a#1 ~",
AH: "e2 ~ e2@2 e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 e1", AI: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ g#1 ~",
AJ: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2 g#1 ~", AK: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2 d#2 ~",
AL: "e2 ~ e2 ~ f2 ~ f2 ~ f#2 ~ f#2@2 f#2 ~ f#2 ~", AM: "g2 ~ g2 ~ g#2 ~ g#2 ~ g#2 ~ g#2@2 g#2 ~ g#2 g#1",
AN: "e2 ~ e2 ~ e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2 ~", AO: "a1 ~ a1@2 a1@2 a1 a0 a1 ~ a1 ~ a1 ~ a1@2",
AP: "a1 ~ a1 ~ a1 ~ a1 a0 a1 ~ a1 a0 a1 ~ a1 ~", AQ: "e2 ~ e2 ~ f2 ~ f2 ~ f#2 ~ f#2@2 f#2 ~ f#2 f#1",
AR: "g2 ~ g2 ~ g#2 ~ g#2 ~ g#2 ~ g#2@2 g#2 ~ g#1 ~", AS: "~@8 e2 ~ e2@2 e2 ~ d#2 ~",
AT: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2!2", AU: "e2 ~ b2@2 d3 ~ e3 ~@5 e2@4",
})).s("gm_fretless_bass").gain(0.48)
// chords · piano
const piano = note(`<
A B C D E F@2 G A H@2 I@2 F@2 J K L@2 M@2 H@2 N O D@2 ~@2 P Q@2 R@2 S T U V@2 W X Y@2 Z@2 AA@2 AB AC AD@2 N O AE@2 D
AF@2 AG ~@2 AH AI AF@2 AJ@2 AK@4 ~@2 AL AM AK@2 AN@2 AO@2 AK@2 ~@2 AP R AQ AR
>`.pickRestart({
A: "[f#4,b4,d#5,f#5]", B: "[g#4,b4,d5]@9 ~ [g#4,d5] ~ [g#4,b4,d5,e5] ~ [g#4,b4,d5,e5] ~, e5@5 ~@3",
C: "g#4 ~@5 b5@7 ~@3, d5@13 ~@3, ~ g#4@6 ~, ~@4 e5@9 ~@3",
D: "[g4,a4,c#5]@9 ~ [g4,c#5] ~ [g4,a4,c#5,e5] ~ [g4,a4,c#5,e5] ~, e5@5 ~@3", // A7 Gdim A7
E: "g4 ~@5 a5@7 ~@3, c#5@13 ~@3, ~ g4@6 ~, ~@4 e5@9 ~@3",
F: "[[a4,b4,d#5,f#5]@7 ~ [a4,b4,d#5,f#5] ~@3 [a4,d#5,f#5] ~ [a4,b4,d#5,f#5]@5 ~ [a4,b4,d#5,f#5] ~ [a4,b4,d#5,f#5]@4 b2 ~ [a4,b4,d#5,f#5]@2 ~@2]/2", // B7 D#dim B7
G: "[g4,c5,e5,g5]@9 ~ [g4,c5,e5,g5] ~ c3 [g4,c5,e5,g5] ~@2", // C
H: "[[e5,g#5]@23 ~ [g#4,d5,e5]@3 e3 e5@2 g#4 ~, d5@14 ~@14 d5 ~@3]/2", // E E7
I: "[[g4,a4,c#5,e5]@19 a2 [g4,a4,c#5,e5]@3 a2 [c#5,e5] [a4,c#5,e5] ~ a2 [g4,a4,c#5,e5]@2 a2 ~, ~@12 g4 ~@3]/2", // A7 C#m A A7
J: "g4 ~@5 c6@7 ~@3, e5@13 ~@3, ~ g4@6 ~, ~@4 g5@9 ~@3",
K: "[a4,b4,d#5]@9 ~ [a4,d#5] ~ [a4,b4,d#5,f#5] ~ [a4,b4,d#5,f#5] ~, f#5@5 ~@3", // B7 Adim B7
L: "[[g#4,b4,d5,e5]@9 ~ [g#4,b4,d5,e5] ~@3 [b4,d5,e5]@9 ~@4 e5@2 ~ e5 ~, ~@14 g#4@8 ~ g#4@9, ~@12 e5 b4 ~@2, ~@25 d5@2 ~@5]/2", // E7
M: "[[g4,a4,c#5,e5]@18 [g4,a4,c#5,e5]@3 [g4,a4,c#5,e5] ~ a2 [g4,a4,c#5,e5]@2 a2 [g4,a4,c#5,e5]@2 a2 [g4,a4,c#5,e5]@2]/2", // A7
N: "[a4,c#5,e5]@13 ~ [g4,a4,c#5,e5] ~", O: "~@2 a2!2 [g4,a4,c#5,e5]@2 ~@2 [g4,a4,c#5] ~ [g4,a4,c#5,e5]@3 ~@3",
P: "~@3 [g#4,d5]", // G#dim
Q: "[[g#4,b4,d5,e5]@19 e2 [g#4,b4,d5,e5]@3 e2 [d5,e5] [b4,d5,e5] ~ e2 [g#4,b4,d5,e5]@2 e2 ~, ~@12 g#4 ~@3]/2", // E7 Dsus2 E7
R: "[b4,d5]@10 ~@4 d5 b4, g#4, e5@9 ~ e5@2 b4@2 ~@2, ~@11 d5@2 e5@2 ~", S: "~@3 e5@4 ~, ~ g#4@6 ~, ~@2 b4@5 ~",
T: "~@3 e5@4 ~, ~ g4@6 ~, ~@2 a4@5 ~", U: "[g4,a4,c#5,e5]@5 a2 [g4,a4,c#5,e5] ~",
V: "[[f#4,b4,d#5]@13 ~@5 f#3 ~ [f#4,b4,d#5] ~ f#3 ~ [f#4,b4,c#5]@4 [f#4,b4,d#5] ~@3, ~@7 [f#4,b4,c#5]@3 ~@6]/2", // B F#sus4 B F#sus4
W: "[g4,c5,e5,g5]@5 c3 [g4,c5,e5,g5] ~", X: "[d#5,f#5,b5] ~@2 [b4,d#5,f#5,b5]@4 ~",
Y: "[[b4,e5]@25 ~ e2!2 [g#4,b4,d5,e5]@2 e2 ~]/2", Z: "[[a4,e5]@25 ~ a2!2 [g4,a4,c#5,e5]@2 a2 ~]/2",
AA: "[[b4,f#5]@25 ~ b2!2 [a4,b4,d#5,f#5]@2 b2 ~]/2", AB: "[e5,g5,c6] ~@2 [c5,e5,g5,c6]@4 ~",
AC: "[b4,d#5]@10 ~@4 d#5 b4, a4, f#5@9 ~ f#5@2 b4@2 ~@2, ~@11 d#5@2 f#5@2 ~", // B
AD: "[~@2 [b4,e5,g#5] ~@3 e3 ~ [b4,e5,g#5]@2 ~@2 e3 ~@5 e3 ~ [b4,e5,g#5] ~ e3 ~ [e5,f#5] ~ e3 ~ [b4,e5,g#5] ~@3, ~@7 [b4,e5,f#5]@3 ~@2 b4 ~@3]/2", // E Esus2 E Bsus4
AE: "[~@6 e5@16 e2 ~ [g#4,d5,e5,b5]@2 e2 ~ [g#4,d5,e5,b5]@2 ~@2, ~ g#4@10 ~@5, ~@4 d5@18 ~@2 a#5 ~@7]/2", // E7
AF: "[[g4,a4,c#5,e5]@7 ~ [g4,a4,c#5,e5] ~@3 [g4,c#5,e5] ~ [g4,a4,c#5,e5]@5 ~ [g4,a4,c#5,e5] ~ [g4,a4,c#5,e5]@4 a2 ~ [g4,a4,c#5,e5]@2 ~@2]/2", // A7 C#dim A7
AG: "[g4,a4,c#5,e5]@9 ~ [g4,a4,c#5,e5] ~ a2 [g4,a4,c#5,e5] ~@2", AH: "[g#4,e5] [a4,f5] [a#4,f#5]@2",
AI: "[b4,g5] [c5,g#5] [c5,d#5,g#5,c6]@2", // Em Fm G#
AJ: "[[g#4,b4,d5,e5]@7 ~ [g#4,b4,d5,e5] ~@3 [g#4,d5,e5] ~ [g#4,b4,d5,e5]@5 ~ [g#4,b4,d5,e5] ~ [g#4,b4,d5,e5]@4 e2 ~ [g#4,b4,d5,e5]@2 ~@2]/2", // E7
AK: "[~@6 e5@16 a2 ~ [g4,c#5,e5,a5]@2 a2 ~ [g4,c#5,e5,a5]@2 ~@2, ~ g4@10 ~@5, ~@4 c#5@18 ~@2 g#5 ~@7]/2", // A7
AL: "[g#4,e5] [a4,f5] [a#4,c#5,f#5,a#5]@2", AM: "[b4,g5] [c5,g#5] [c5,g#5]@2",
AN: "[[d5,e5,b5]@23 ~ d5!2 ~ e2 [b4,d5,e5]!2 ~@2, ~@12 e5 ~@3]/2", // E7
AO: "[[e5,g5]@23 ~ [g4,c#5,e5]@3 e3 e5@2 g4 ~, c#5@14 ~@14 c#5 ~@3]/2", AP: "~ [g#4,b4,d5,e5]", AQ: "[g#4,b4,d5,e5]",
AR: "~ [g#4,b4,d5,e5] ~@5 [g#4,b4,d5,e5] ~@4 b3@4", // E7
})).s("gm_piano").gain(0.32).pan(0.1)
// chords · piano · soft notes
const piano_soft = note(`<
~ A ~ B ~ C ~@4 D ~ E C ~@2 A ~ F ~@3 D G H B@2 ~@4 I ~@2 J K ~@2 L ~ M N@2 O@2 P@2 Q ~@2 R G H ~@2 B S ~@6 S ~ C ~@12
T ~ U ~@8
>`.pickRestart({
A: "~@10 b4 ~@5", B: "~@10 a4 ~@5", C: "~@12 b4 ~@3", D: "~@14 d5 ~", E: "~@8 a4 ~@7", F: "~@12 d5 b4@2 ~",
G: "g4@13 ~@3", H: "~@6 e3 ~@2 e3 ~@6", I: "~@8 b4 ~@7", J: "~@5 d5@9 ~@2", K: "~@5 c#5@9 ~@2", L: "~@12 c#5 ~@3",
M: "b4 ~@7", N: "[[g#4,d5]@13 ~@3]/2", O: "[[g4,c#5]@13 ~@3]/2", P: "[[a4,d#5]@13 ~@3]/2", Q: "c5 ~@7",
R: "~@4 f#5 ~@7 [c#5,f#5] ~@3", S: "~@12 a4 ~@3", T: "~@7 e2 b4@2 ~@6", U: "~@14 c#5 ~",
})).s("gm_piano").gain(0.24).pan(0.1)
// chords · overdriven guitar · "Guitar"
const overdriven_guitar = note(`<
A B@2 C D E@2 F G H@2 I J E@2 F K L@2 M@2 L@2 N@2 O P ~@2 Q R@2 B S T U V W@2 X Y Z AA AB@2 AC@2 X AD AE@2 AF AG AH@2
AI AJ AK O ~@2 AL AM AN@2 R@2 AO@2 AJ AK ~@2 AP AQ AF AG AR@2 AN@2 N@2 ~@2 AS AT AU AV
>`.pickRestart({
A: "~@2 f#3 ~@2 b1 ~ f#3, b1@9 ~@3 b2@4, ~@2 b2@4 [f#3,b3]@7 ~@3", // B5
B: "~@2 [e3,b3,e4] ~@3 e2@2 [e3,b3,e4]@2 e2@4 [e3,b3,e4]@2", C: "~@4 e3@2 ~@4 a2 ~ a2 ~ e3@2, a2@6 [e3,a3]@7 ~@3",
D: "~@2 a3@2 e3@2 ~@2 a3 ~@2 a3 ~@2 a3 e3, a2@9 ~ a2@2 ~ a2@2 ~, ~@2 g3 ~@6 e3@2 ~ e3@2 ~@2",
E: "[~@2 [b2,f#3]@2 ~@4 [b2,f#3]@4 ~@2 [b2,f#3]@3 b3 f#3 ~@2 f#3 ~@5 f#3 b2 b3 ~ b2, ~@6 b1@5 ~ b1@20, ~@8 c#3 ~@10 b2@2 ~ b2@2 f#3@2 b3@2 ~@2 f#3@2, ~@20 b3@2 ~ b3@2 b2@2 ~@5]/2", // B5
F: "~@2 [c3,g3] ~ [c3,g3]@2 c2@2 ~@4 c3@2 g3 ~, c2@5 ~@3 [c3,g3]@4 ~@4, ~@5 c2@2 ~", // C5
G: "~@2 [b2,f#3,b3] ~ [b2,f#3,b3]@2 ~@2 [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~, ~@3 b1@5", // B5
H: "[~@2 [e3,b3] ~@5 [e3,b3]@4 ~@2 [e3,b3]@4 ~@4 [e3,b3]@3 e4 ~@5 b3, e2@5 ~ e2@5 ~ e2@5 ~ e2@14, ~@8 f#3 ~@17 b3@2 e4@2 e3@2, ~@27 e3@2 b3@2 ~]/2", // E5
I: "~@2 [a2,e3] ~ [a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@2 ~@2 [a2,e3]@2", // A5
J: "~@2 [a2,e3]@2 a2 ~ [a2,e3]@3 a3 e3 ~ a3 e3 ~ e3, ~@11 a2@2 ~ a2@2", // A5
K: "c#3 ~@5 b2@4 ~@2 b2@2 [f#3,b3]@2, b2@4 b1@5 ~ b1@4 ~@2, ~ f#3@2 ~@5", // B5
L: "[~@2 [e3,b3] ~@5 [e3,b3]@4 ~@6 e2@2 ~@2 e2@2 ~@6 b3@2, ~@6 e2@5 ~ e2@5 ~@7 b3@4 e3@4, ~@14 [e3,b3]@6 e3@6 e2@5 ~]/2", // E5
M: "[~@2 [a2,e3] ~@5 e3@4 a2 ~ a2@3 ~ a2 ~ a2 ~ a2@2 ~@2 a2 ~ a2@2 e3@2, ~@6 a2@5 ~@3 e3@6 ~@4 e3@5 ~@3]/2", // A5
N: "[[a2,d#3,e3]@2 ~@2 e3 ~ [a2,e3]@5 ~ a2 ~ [a2,e3]@4 a2 ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~]/2", // A A5
O: "~@2 [e3,a3] ~@3 a2@2 [e3,a3]@2 a2 ~@3 [a2,e3,a3]@2", // A5
P: "~@2 [e3,a3] ~ [a2,e3,a3]@2 a2 ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~", Q: "~@12 [e3,b3,e4]@3 ~",
R: "[~@2 [e3,b3] ~ [e3,b3]@2 e2@2 [e3,b3] ~ [e3,b3]@2 ~@2 [e3,b3]@3 ~ [e3,b3]@2 ~@2 [e3,b3]@3 e4 b3 ~ e4 b3 ~ b3, ~@3 e2@2 e2@3, ~@27 e3@2 ~ e3@2]/2", // E5
S: "~@2 [e3,b3] ~@5 e3@2 b3@2 ~@2 b3@2, e2@5 ~ e2@10, ~@4 e4@3 ~, ~@3 e3", // E5
T: "~@2 [e3,b3]@2 ~@4 [e3,b3]@7 ~, ~@6 e2@9 ~", U: "a2@2 e3 ~@7 e3@2 ~@2 e3@2, ~@6 a2@5 ~ a2@4, ~@4 a3@3 ~",
V: "~@2 [a2,e3] ~@3 a2@2 ~@2 a2 ~ a2 ~ e3 ~, ~@2 e3 ~", // A5
W: "[~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 b1 ~@4 f#3 b2 [b2,f#3], ~@14 [b2,f#3]@4 b3@4 b2@5 ~@5, ~@20 f#3@4 b3@5 ~@3]/2", // B5
X: "~@2 [c3,g3]@2 ~@4 [c3,g3]@7 ~, ~@6 c2@9 ~", Y: "~@2 [b2,f#3]@2 ~@4 [b2,f#3]@7 ~, ~@6 b1@9 ~",
Z: "~@4 [e3,b3]@2 ~@4 [e3,b3]@3 ~ [e3,b3]@2", AA: "~@2 [e3,b3]@3 ~ e2@2 [e3,b3]@2 e2@2 b3 ~ b3 ~, ~@3 e3",
AB: "[[a2,e3,a3]@2 ~@4 [a2,e3,a3]@2 ~@2 [a2,e3,a3]@2 ~@2 [a2,e3,a3]@4 ~@2 a2@2 ~@2 [a2,e3,a3]@2 a2 ~ a2 ~ e3 ~]/2", // A5
AC: "[~@4 [b2,f#3]@2 ~@4 [b2,f#3]@2 ~@2 f#3@4 b2@2 ~@2 b2@2 ~@2 b2@2 f#3@2 b2 ~, ~@14 b2@3 ~@3 f#3@4 b3@5 ~@3]/2", // B5
AD: "~@2 [b2,f#3] ~@5 b2@2 f#3@2 ~@2 f#3@2, b1@5 ~ b1@10, ~@4 b3@3 ~, ~@3 b2", // B5
AE: "[~@2 [e3,b3] ~ [e3,b3]@2 ~@2 [e3,b3] ~ [e3,b3]@2 ~@2 [e3,b3]@4 ~@2 e3@2 b3@2 e3 ~ e3@2 b3@2 e3 ~, ~@6 e2@4 ~@2 e2@5 ~ e2@12 ~@2, ~@6 e4 ~]/2", // E5
AF: "~@2 a2@3 ~ a2@2 ~@2 a2 ~@3 e3@2, ~@2 e3 a2", AG: "~@2 [a2,e3,a3] ~@7 a2@2 [a2,a3]@3 ~, ~@3 a2@2 ~@3, ~@2 e3 ~",
AH: "[[e3,b3] ~@6 b3@2 e3 b3 e3 ~ e3 b3 e3, ~@4 e2@5 ~ e2@22, ~@3 e3@4 ~@9, ~@3 b3@3 ~@6 e4@2 ~@2]/2", // E5
AI: "a2@2 e3 ~ e3@2 a2 ~ a2 ~ a2 ~ a2@2 e3 ~, ~@4 a2 ~@3 e3@4 ~@4", AJ: "a2@2 e3 ~@11 a2@2, ~@6 a2@7 ~@3, ~ e3",
AK: "~@4 e3@2 ~@4 a2 ~@3 e3@2, a3@5 ~ a3@8 ~@2, ~@2 a2@7 ~@3 a2@4",
AL: "[e3,b3,e4]@3 ~ [f3,c4,f4]@3 ~ [f#2,c#3,f#3] ~ f#2@2 [c#3,f#3]@2 [f#2,c#3,f#3] ~", // E5 F5 F#5
AM: "[g2,d3,g3]@3 ~ [g#2,d#3,g#3]@3 ~ [g#2,d#3,g3,g#3]@2 ~@2 [g#2,d#3,g#3]@2 ~@2", // G5 G#5 G#maj7 G#5
AN: "[[a2,e3] ~@4 a2@2 e3@2 a2 e3 a2 ~ a2 e3 a2, ~@4 a2@5 ~@23, ~@3 e3@3 ~@6 a3@2 ~@2]/2", // A5
AO: "[~@2 [a2,e3] ~ [a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@2 a2 ~ e3@4 a2 ~ a2@2 e3@2 a2 ~ a2@2 e3@2 a2 ~, ~@14 a2@3 ~@7 a3@4 ~@4]/2", // A5
AP: "[e3,b3,e4]@3 ~ [f3,c4,f4]@3 ~ [f#2,c#3,f3,f#3]@2 ~@2 [f#2,c#3,f#3]@2 ~@2", // E5 F5 F#maj7 F#5
AQ: "[g2,d3,g3]@3 ~ [g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3] ~ g#2@2 [d#3,g#3]@2 [g#2,d#3,g#3] ~", // G5 G#5
AR: "[[e3,a#3,b3]@2 e2@2 b3 ~ [e3,b3]@4 ~@2 e3 ~ [e3,b3]@4 ~@2 [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~, ~@10 e2@7 ~ e2@13 ~]/2", // E E5
AS: "~@8 e4 b3 e3 ~ b3 e3 e4 b3, ~@11 e4@2 ~@3",
AT: "f#3 ~@5 e3@4 ~@2 e3@2 [b3,e4]@2, e3@4 e2@5 ~ e2@4 ~@2, ~ b3@2 ~@5", AU: "[b3,e4]",
AV: "[e3,b3,e4] ~@3 [d3,a3,d4] ~ [e3,b3,e4] ~@5 [e3,b3,e4]@4", // E5 D5 E5
})).s("gm_overdriven_guitar").gain(0.48).pan(0.9)
// chords · overdriven guitar · "Guitar" · soft notes
const overdriven_guitar_soft = note(`<
A B@2 C ~ D ~ E F ~@2 G ~ D ~ E H ~ I ~ J ~ I K ~ L M ~@3 N ~ B ~ O ~ P Q ~ R F S ~ K T ~@2 R ~ U V W X Y Z AA ~ AB L
~@4 AC AD N ~ AE AF ~ AB ~@4 W X J ~ AC AD K ~@4 AG AH AI
>`.pickRestart({
A: "~@6 b2@5 ~@5", B: "e2@3 ~@9 e3 ~@3", C: "~@6 a2@3 ~@7", D: "b1 ~@15", E: "~@13 g3 ~@2", F: "b1@5 ~@11",
G: "~@9 a2 ~@6", H: "~@7 g3 ~@8", I: "~@4 b3 ~@11", J: "~@4 e3 ~@11", K: "~@4 a2 ~@11", L: "a2@3 ~@9 a2 ~@3",
M: "a2@3 ~@13", N: "~@9 e2 ~@6", O: "e2@5 ~@11", P: "a2 ~@11 e3 ~@3", Q: "~@3 b1 ~@4 b1 ~@3 b1 ~@3", R: "c2@5 ~@11",
S: "~@4 e2 ~@3", T: "~@2 e3 ~@5", U: "e2 ~@3 f#3 ~@11", V: "~@4 b3 ~@3 b3 ~@7", W: "~@12 f#3 ~@3", X: "~@12 e3 ~@3",
Y: "~@7 e3", Z: "~@6 c#4 ~@9", AA: "~@13 e3 ~@2", AB: "~@10 e2 ~@5", AC: "~@7 a2", AD: "~@6 f#3 ~@9",
AE: "a2 ~@3 b2 ~@11", AF: "~@4 e3 ~@3 e3 ~@7", AG: "~@7 c4 ~@8", AH: "e3", AI: "~@4 e3 ~ d4 ~@9",
})).s("gm_overdriven_guitar").gain(0.24).pan(0.9)
// bass · electric bass pick · "Voice 1 (Melody)"
const bass_2 = note(`<
A B C D E F G H I J C K L M N O P@2 Q R S T U V W X@2 Y Z AA@2 ~ A B C D E F G H I J C K L M N O P@2 Q R S T U V W
AB@2 AC AD AE Q R S T U V W X@2 Y Z AE Q R S T U V W X@2 Y Z AF@2 ~@2
>`.pickRestart({
A: "~@7 g2", B: "g2@2 g2@2 g2@2 g2@2 g#2@3 ~ e2@2 d2@2", C: "e2@2 d2@2 g2@5 ~ g#2@2 g#2@2 g#2@2",
D: "g2@3 ~ g#2@2 g#2@2 g#2@2 g#2@2 e2 d#2@2 c#2", E: "e2@2 e2@2 a1@7 ~@3 a1@2", F: "f#2!3 e2 f#2!3 e2",
G: "f#2!2 e2 g2 f#2!3 e2", H: "g2!3 e2 g2 e2!2 c2", I: "e2@2 b1@2 g2@2 f#2@3 ~@5 g2@2",
J: "~@2 g#2@2 g#2@3 ~ g#2@2 g#2@2 e2@2 d2@2", K: "~ e2 g2 e2 g2 e2!2 c#2", L: "e2 c#2 e2 a1@3 ~ f#2",
M: "~ f#2!5 e2 f#2", N: "~ f#2 e2 g2 f#2 e2!2 b2", O: "~@2 g2@2 g2@2 ~@2 e2@3 ~ b1@2 b1@2",
P: "[d2@8 ~@2 b1@2 d2@2 e2@15 ~@3]/2", Q: "~@7 c#3", R: "~ e3 c#3!4 ~ c#3", S: "~ c#3!2 e3@3 ~ e3",
T: "~ e2 g2 g#2 e2 b1 c#2 b1", U: "e2@2 e2@2 b1@7 ~@3 c#3@2", V: "~@2 e3@2 c#3@3 ~ c#3@2 a2@3 ~ c#3@2",
W: "~@2 b2@8 ~@2 c#3@3 ~", X: "[e3@13 ~@3]/2", Y: "e3@2 b2@2 c#3@2 g#2@2 b2@3 ~ g#2@2 f#2@2", Z: "~ e2@4 ~ f#2 e2",
AA: "[g2 e2@12 ~@3]/2", AB: "[e3@13 b2 c#3 b2]/2", AC: "e3 ~ b2!2 ~ e2 g2 e2", AD: "g#2@5 ~ f#2 e2", AE: "e2 ~@3",
AF: "[g#2@2 e2@23 ~@7]/2",
})).s("gm_electric_bass_pick").gain(0.78)
// drums · kick
const kick = s("bd").struct(`<
A B@7 C B@7 D B@3 E B C B@2 F B D F B@2 F G B@15 E B H B A B G E B E B@2 A B E B A B I B@3 E B I@2 E B D B C B@4 E C B
A J K
>`.pickRestart({
A: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~@4", B: "x!2 ~ x!3 ~ x", C: "~@4 x!2 ~@2", D: "~ x!2 ~ x!2 ~@2",
E: "x ~ x ~@3 x ~@3 x!2 ~@4", F: "x!2 ~ x ~ x ~ x", G: "x!2 ~ x ~@4", H: "~@2 x!2 ~@4 x!2 ~@4 x ~",
I: "x!2 ~ x ~ x ~@2", J: "x ~@2 x!3 ~ x", K: "~@10 x!2 ~@4",
})).gain(0.54)
// drums · snare
const snare = s("sd").struct(`<
A B@5 C B D B@7 E B F B G B D B@2 H B E H F B H I B@15 G B J B A B I G B G B@2 A B G B A B K B@3 G B K@2 G B E B D B@3
F G D F A B L
>`.pickRestart({
A: "x!2 ~@14", B: "~ x ~ x", C: "~@4 x ~@2 x ~@4 x ~@3", D: "x!3 ~ x ~ x ~@5 x ~@3", E: "x ~@5 x ~@7 x!2",
F: "~@2 x!6", G: "~@4 x ~@3 x!2 ~@2 x ~ x ~", H: "~ x!3", I: "~@4 x ~@3 x!5 ~ x ~", J: "x!2 ~@2 x!4 ~@2 x!4 ~ x",
K: "~@4 x ~@3 x ~@3 x ~ x!2", L: "x ~@2 x ~@2 x ~",
})).gain(0.54)
// drums · low tom
const low_tom = s("lt").struct("<A ~@15 B ~ C ~@8 B ~ C ~@22 A ~@7 A ~@3 A ~@11 B ~@5 C ~@2 C A ~ D>".pickRestart({
A: "~@12 x!4", B: "~@3 x", C: "~@2 x!6", D: "~ x ~@2",
})).gain(0.48)
// drums · hihat
const hihat = s("hh").struct(`<
A B@7 C B@7 A B@3 D B C B@2 D B A D B@2 D@2 B@6 E B@8 D B A B A B D@2 B D B@2 A B D B A B D B@3 D B D@3 B A B C B@4 D
C B A B F
>`.pickRestart({
A: "x!4", B: "x!8", C: "x ~ x ~ x ~ x!2", D: "x!3 ~ x ~ x ~", E: "x!3 ~ x!4", F: "x!3 ~",
})).gain(0.48)
// … 42 more lines
More by Brooks Garth
The DanceD major · 75 bpmFriends in Low PlacesA major · 100 bpmIf Tomorrow Never ComesG major · 70 bpmThe Thunder RollsD minor · 80 bpmAin't Goin' Down ('til the Sun Comes Up)G major · 168 bpmCallin' Baton RougeD major · 102 bpmAmerican Honky-Tonk Bar AssociationG major · 123 bpmThe RiverD major · 76 bpm
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.