0:00/0:00
// Silent Night — Cash Johnny
// 93 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 84 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(93/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 · piano
const piano = note(`<
A@2 B C@2 D E@3 F@3 G@3 H@2 I J@2 K L@3 E@3 F@3 G@3 H@2 I J@2 K M@2 N O@2 P Q R@5 S@3 T@3 U@2 V W@2 X Y Z@5 S@3 T@3
U@2 V AA@3 AB@3
>`.pickRestart({
A: "[e4@5 ~ e4@5 ~ [g#3,b3,e4]@4 g#2@2 [f#2,c#4]@10 f#2@2 [a3,b3,c#4,e4]@4 f#2@2 [b3,d#4]@11 ~, b3@11 ~@7 [a3,e4]@5 ~@13 e2@8 ~@4, ~@36 g#3@5 ~@7]/2", // E F#5 A B A5
B: "[g#3,b3,d#4]@2 e2 [a3,b3,c#4,e4]@5 f#2 [a3,b3,c#4,e4]@2 f#2, ~@2 f#2@3 ~@3", // G#m A
C: "[[g#3,b3,e4]@5 g#2 [g#3,b3,e4]@2 g#2 [f#3,d#4]@5 b2 [b3,d#4]@2 b2 [a3,b3,c#4,e4]@5 a2, g#2@8 ~@10 b3@12 f#3@3 ~@15, ~@18 b2@8 ~@10 a2@9 ~@3]/2", // E D#m B A
D: "[a3,b3,c#4,e4]@4 a2@2 [f#3,b3,d#4]@5 ~@7 [f#3,b3,d#4]@4 b2@2, ~@2 [f#3,b3,d#4] ~, ~@4 b2 ~", // A B
E: "[[b3,e4]@10 ~@6 b3@2 e4@12 ~@4 f#4@2 [e2,g#3,e4]@6 ~@6 e4@2 ~@4 [b3,b4]@5 ~ [b3,b4]@4 ~@2 [b3,b4]@4 ~@2, e2@15 ~@3 e2@18 ~@10 e2@4 ~@2 e2@11 ~ e2@7 ~, ~@12 e4@6 b3@9 ~@3 b3@11 ~@31, ~@32 e4@4 g#4@15 ~@21]/3", // E5 E B
F: "[b3@5 ~ b3@5 ~@3 d#4@2 f#4@2 [f#3,a3,d#4]@6 [a3,d#4]@4 ~@2 [a3,d#4]@4 b2 ~ e4@12 ~@4 f#4@2 [b3,e4,g#4]@5 ~ b3@5 ~ b3@4 ~@2, b4@11 ~@13, b2@9 ~@3 b3@12 ~@12 b3@10 ~@4 e4@4 ~@6 [e4,b4]@10 ~@2, ~@18 b2@11 ~@7 e2@18 g#2@16 ~@2]/3", // D#dim Adim E E5
G: "[c#4@6 ~@8 a4@2 c#5 ~ b4@2 ~@2 a4@7 ~ [c#4,a4]@4 e4@2 b3@5 ~ b3@4 ~@2 [b3,e4]@4 e2 ~ e4@6 b3@4 e4@2 [g#2,b3,e4,g#4]@5 ~, a2@18 a2@7 ~@11 e2@13 ~@5 [e2,e3]@11 ~@7, a4@9 ~@9 e5@10 ~@44, ~@6 a3@20 ~@10 e4@10 e3@4 ~@4 b3@3 ~@15, ~@10 c#5@4 ~@13 g#4@4 ~@5]/3", // F#m E5 E
H: "[c#4@6 ~@8 a4@2 c#5 ~ b4@2 ~@2 a4@7 ~ [c#4,a4]@4 e4@2 [e4,g#4]@10 ~@2, a2@18 a2@7 ~@11 e2@8 ~@4, a4@9 ~@9 e5@10 ~@20, ~@6 a3@20 ~@10 b3@5 ~@7, ~@5 c#5@2 ~@5]/2", // F#m E
I: "[b3,e4,g#4]@3 ~@3 [b3,b4]@9 ~@3 [g#3,e4,g#4]@5 ~, ~@4 e2@13 ~@7, ~@6 e4@11 ~@7", // E B C#m
J: "[[b2,b3,f#4]@13 ~ b2@2 [b3,d#4,f#4]@2 [a3,d#4,f#4]@10 ~@2 [a3,d#4,f#4]@3 ~ b2 ~@7 e4@4 e3@2, ~@9 b2@7 ~@2 e2@6, ~@18 [b3,g#4]@5 ~]/2", // B5 B D#dim E
K: "[b3,e4,g#4] ~ e1@5 ~, ~ [e2,e3]@4 ~", // E
L: "[[g#3,b3,e4]@5 ~ b3@4 e2@2 [g#3,b3,e4]@4 e2@2 [f#3,a3,d#4]@10 ~@2 [f#3,a3,d#4]@4 b2@2 [g#3,b3,e4]@14 ~@22, e2@4 ~@5 b2@4 ~ b2@2 ~@2 e2@6 ~@12]/3", // E D#dim E
M: "[[g#3,b3,e4]@5 ~ b3@4 e2@2 [g#3,b3,e4]@4 e2@2 [f#3,a3,d#4]@10 ~@2 [f#3,a3,d#4]@4 b2@2 e4@5 ~ e4@5 ~, e2@8 ~@10 b2@8 ~@2 b2@4 ~@4 b3@11 ~]/2", // E D#dim
N: "[g#3,b3,e4]@2 g#2 [f#2,c#4]@5 f#2 [a3,b3,c#4,e4]@2 f#2, ~@6 [a3,e4]@5 ~@13", // E F#5 A A5
O: "[[b3,d#4]@11 ~ [g#3,b3,d#4]@4 e2@2 [a3,b3,c#4,e4]@10 f#2@2 [a3,b3,c#4,e4]@4 f#2@2 [g#3,b3,e4]@10 g#2@2, e2@8 ~@10 f#2@9 ~@9 g#2@8 ~@4, g#3@5 ~@43]/2", // B G#m A E
P: "[g#3,b3,e4]@2 g#2 [f#3,d#4]@5 b2 [b3,d#4]@2 b2, ~@2 b3@4 f#3 ~, ~@3 b2@4 ~@5", // E D#m B
Q: "[a3,b3,c#4,e4]@10 a2@2 [a3,b3,c#4,e4]@4 a2@2 [f#3,b3,d#4]@5 ~, a2@3 ~@5", // A B
R: "[~@6 [f#3,b3,d#4]@4 b2@2 [b3,e4]@10 ~@6 b3@2 e4@12 ~@4 f#4@2 [e2,g#3,e4]@6 ~@6 e4@2 ~@4 [b3,b4]@5 ~ [b3,b4]@4 ~@2 [b3,b4]@4 ~@2 b3@5 ~ b3@5 ~@3 d#4@2 f#4@2 [f#3,a3,d#4]@6 [a3,d#4]@4 ~@2 [a3,d#4]@4 b2 ~, [f#3,b3,d#4]@6 ~@18 e4@6 b3@9 ~@3 b3@11 ~@43 b3@12 ~@12, ~@4 b2@4 ~@4 e2@15 ~@3 e2@18 ~@10 e2@4 ~@2 e2@11 ~ e2@7 ~ b2@9 ~@9 b2@11 ~@7, ~@44 e4@4 g#4@15 ~@21 b4@33 ~@3]/5", // B E5 E B D#dim Adim B
S: "[e4@12 ~@4 f#4@2 [b3,e4,g#4]@5 ~ b3@5 ~ b3@4 ~@2 c#4@6 ~@8 a4@2 c#5 ~ b4@2 ~@2 a4@7 ~ [c#4,a4]@4 e4@2, e2@18 g#2@16 ~@2 a2@18 a2@7 ~@11, b3@10 ~@4 e4@4 ~@6 [e4,b4]@10 ~@2 a4@9 ~@9 e5@10 ~@8, ~@21 a3@10 ~@5, ~@7 c#5 ~]/3", // E F#m E5
T: "[b3@5 ~ b3@4 ~@2 [b3,e4]@4 e2 ~ e4@6 b3@4 e4@2 [g#2,b3,e4,g#4]@5 ~ c#4@6 ~@8 a4@2 c#5 ~ b4@2 ~@2 a4@7 ~ [c#4,a4]@4 e4@2, e2@13 ~@5 [e2,e3]@11 ~@7 a2@18 a2@7 ~@11, e4@10 e3@4 ~@4 g#4@8 ~@10 a4@9 ~@9 e5@10 ~@8, ~@18 b3@3 ~@21 a3@20 ~@10, ~@7 c#5 ~]/3", // E5 E F#m E
U: "[[e4,g#4]@10 ~@2 [b3,e4,g#4]@3 ~@3 [b3,b4]@9 ~@3 [g#3,e4,g#4]@5 ~ [b2,b3,f#4]@12, e2@8 ~@8 e2@13 ~@19, b3@5 ~@13 e4@11 ~@19]/2", // E B C#m B5
V: "~@2 b2@2 [b3,d#4,f#4]@2 [a3,d#4,f#4]@10 ~@2 [a3,d#4,f#4]@3 ~ b2 ~, ~@3 b2@7 ~@2", // B D#dim
W: "[~@6 e4@4 e3@2 [b3,e4,g#4]@3 ~ e2@2 [b3,e4,g#4]@11 ~ [c#4,e4,a4]@4 ~@2 [g#3,b3,e4]@5 ~ b3@4 e2@2, e2@13 ~@5 e2@14 ~@4 e2@8 ~@4, [b3,g#4]@5 ~@3 e3@8 ~@8]/2", // E A E
X: "[g#3,b3,e4]@2 e2 [f#3,a3,d#4]@5 ~ [f#3,a3,d#4]@2 b2, ~@3 b2@4 ~ b2@2 ~@2", Y: "[g#3,b3,e4]@7 ~@5, e2 ~",
Z: "[~@12 [b3,e4]@10 ~@6 b3@2 e4@12 ~@4 f#4@2 [e2,g#3,e4]@6 ~@6 e4@2 ~@4 [b3,b4]@5 ~ [b3,b4]@4 ~@2 [b3,b4]@4 ~@2 b3@5 ~ b3@5 ~@3 d#4@2 f#4@2 [f#3,a3,d#4]@6 [a3,d#4]@4 ~@2 [a3,d#4]@4 b2 ~, ~@12 e2@15 ~@3 e2@18 ~@10 e2@4 ~@2 e2@11 ~ e2@7 ~ b2@9 ~@9 b2@11 ~@7, ~@24 e4@6 b3@9 ~@3 b3@11 ~@43 b3@12 ~@12, ~@44 e4@4 g#4@15 ~@21 b4@33 ~@3]/5", // E5 E B D#dim Adim
AA: "[[c#4,e4]@6 c#4@4 ~@2 g#3@5 ~ [c#2,c#4,e4]@16 ~@2 [e2,b3,e4]@18 [b2,d#4,f#4]@16 ~@2, c#2@5 ~@19, ~@3 e4@5 ~@28, ~@5 c#3@4 ~@27]/3", // C#m E5 B
AB: "[e3 ~@5 b3@3 g#3@2 ~ [b2,f#3,a3,e4]@8 [e2,e3,g#3,b3,e4]@51 ~, [e2,e4] ~@5, g#3@5 ~@7 c#4@6 ~@54, ~@3 e3@7 ~@62]/3", // Bsus4 E
})).s("gm_piano").gain(0.33).pan(0.6)
// chords · piano · soft notes
const piano_soft = note(`<
A B ~@4 C D E F G H ~@2 I ~ J ~@4 K ~@2 C D E F G H ~@2 I ~ J ~@4 K L M N ~@3 O@2 P Q@2 R ~@2 S ~@2 T ~@3 D ~@2 O@2 P
Q@2 R ~@2 S ~@2 T ~@8
>`.pickRestart({
A: "g#3@4 ~@2 g#3@4 g#2@3 ~@5 b3@5 ~", B: "[a3,b3,e4]@2 ~@7 g#3@2 e2", C: "~@5 e3@4 ~@3", D: "~@9 [g#3,e4]@2 ~",
E: "g#3 ~@23", F: "~@5 b2@4 ~@3", G: "~@2 f#3 f#3@2 ~@7", H: "b3 ~@5", I: "~@4 e3 ~@19", J: "~@18 b3@3 ~ e2@2",
K: "~@3 [g#3,e4]@2 ~@7", L: "~@6 g#3@2 ~ g#3@2 g#2", M: "~@6 b3@5 ~ [a3,b3,e4]@4 ~@8", N: "~@3 g#3@2 e2 ~@6",
O: "[~@11 e3@4 ~@9]/2", P: "~@6 [g#3,e4]@4 ~@2 g#3 ~@11", Q: "[~@11 b2@4 ~@5 f#3 f#3@2 ~]/2", R: "~@3 b3 ~@2",
S: "~@16 e3 ~@7", T: "~@6 b3@3 ~ e2@2 ~@12",
})).s("gm_piano").gain(0.22).pan(0.6)
// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
A@3 B@2 C ~@20 D ~ E F ~ G H@2 ~ I ~ E J K@3 L@3 M@2 ~@19 N O ~ P Q@2 R@2 S T U ~ V@3 W@3
>`.pickRestart({
A: "[~@24 b4@6 c#5@5 ~ [d#4,g#4,b4]@15 ~@3 c#5@6 d5@6 d5@5 ~, ~@18 [a4,e5]@17 ~@37]/3", // G#m A5
B: "[d5@15 ~@3 [b4,d#5]@17 ~ [a4,c#5]@5 ~ [a4,c#5]@4 b4@2]/2", C: "a4@4 ~@2 f#5@5 ~ f#5@3 ~ f#5@2 d#5@4 ~@2",
D: "~@6 b4@5 ~ b4@5 ~ b4@5 ~", E: "~@12 [e4,g#4]@11 ~", F: "[e4,g#4]@6 [f#4,a4]@12 [f#4,a#4]@5 ~", G: "~@2 g#4 a4",
H: "[b4@6 g#4@3 ~ f#4@8 d#4@17 ~@13]/2", I: "~@6 b4@5 ~ b4@5 ~ b4@4 ~@2", J: "[e4,g#4]@5 ~ [f#4,a4]@12 ~@6",
K: "[[g#4,e5]@11 ~ [g#4,e5]@5 ~ [a4,f#5]@16 ~@2 [e4,g#4]@17 ~ [e4,a4]@17 ~]/3", // C#m D E A5
L: "[b4@17 ~ [a4,c#5]@17 ~ [g#4,e5]@17 ~ c#5@5 ~ c#5@6 b4@6, d#4@5 ~@19]/3", M: "[b4@5 ~ b4@6 a4@6 f#4@14 ~@16]/2",
N: "~@18 b4@5 ~", O: "b4@5 ~ b4@5 ~@13", P: "[e4,g#4]@17 ~ [e4,g#4]@6",
Q: "[[f#4,a4]@6 [g#4,b4]@6 [a4,c#5]@31 ~@5]/2", R: "[[b4,e5]@17 ~ [g#4,b4]@11 ~ [g#4,c5]@5 ~ [a4,c#5]@10 ~@2]/2",
S: "[a4,c#5]@5 ~ [c#5,e5]@6 [b4,d#5]@6 [a4,c#5]@6", T: "[g#4,b4]@5 ~ [e4,g#4]@2", U: "g#4@4 f#4@2 e4@3 ~@15",
V: "[[g#4,e5]@18 [g#4,e5]@15 ~@3 [e4,g#4]@17 ~ [a3,f#4]@17 ~]/3", W: "[[e4,g#4]@11 ~ [f#4,a4]@8 ~ [e4,g#4]@50 ~]/3",
})).s("gm_electric_guitar_jazz").gain(0.53)
// other · electric guitar jazz
const electric_guitar_jazz_2 = note(`<
A@3 B@2 C ~@17 D E ~ F ~@8 G ~@8 H I@2 ~@16 J K ~@2 L ~@7 M N@2 ~@6
>`.pickRestart({
A: "[f#4@18 e4@15 ~@3 g#4@15 ~@3 [e4,a4]@6 [g4,b4]@6 [g4,b4]@5 ~]/3", B: "[~@18 f#4@13 ~@5 e5@5 ~ e5@6]/2",
C: "c#5@5 ~ [b4,d#5]@5 ~ [b4,d#5]@4 c#5@2 b4@3 ~@3", D: "~ b3 e4 b4", E: "f#4@5 ~@3",
F: "~@4 b3@2 f#4@5 ~ f#4@6 e4@3 ~@3", G: "~@6 f#4@5 ~ f#4@6 e4@3 ~@3", H: "~@6 e5@5 ~ e5@6 d#5@5 ~",
I: "[e5@5 ~ e5@6 c#5@4 ~@2 [b4,d#5]@16 ~@14]/2", J: "~@3 b3", K: "e4@3 b4@8 ~", L: "~@3 f#4@8 ~, b3@11 ~",
M: "~@18 [f#4,b4]@5 ~", N: "[b4@5 ~ b4@4 ~@2 [d#5,f#5]@16 ~@20]/2",
})).s("gm_electric_guitar_jazz").gain(0.33)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@46 A B C@2 D E@2 F G@2 H I@2 J K@2 L M ~@20>".pickRestart({
A: "~@8 g#3@2 a3@2 b3@9 ~ c#4@2", B: "b3@5 ~ g#3@13 ~@5",
C: "[b3@10 c#4@2 b3@6 g#3@13 ~@5 f#4@10 ~@2, ~@36 f4 ~@11]/2", D: "f#4@4 f4 e4 d#4@15 ~@3",
E: "[e4@4 ~@2 e4@3 ~ e4@2 e4@3 ~ e4@2 b3@13 ~@5 [a3,c#4]@11 ~, g#3@3 ~ [e3,g#3]@27 ~@17]/2", // A E
F: "[a3,c#4]@5 ~ [c#4,e4]@11 ~ [b3,d#4]@3 ~ [a3,c#4]@2", // A C#m B A
G: "[[g#3,b3]@9 ~ a3@2 [g#3,b3]@5 ~ [e3,g#3]@14 ~@4 [a3,c#4]@10 ~@2, ~@9 c#4@2 ~@37]/2", // G#m E A
H: "[a3,c#4]@5 ~ [b3,d4]@8 ~ [b3,d#4]@2 ~ [a3,c#4]@5 ~", // A Bm B A
I: "[[g#3,b3]@9 ~ [a3,c#4]@2 [g#3,b3]@5 ~ [e3,g#3]@14 ~@4 [a3,f#4]@10 ~@2]/2", // G#m A G#m E D
J: "[a3,f#4]@5 ~ [c#4,a4]@9 ~ f#4@2 [a3,d#4]@4 ~@2", K: "[[g#3,e4]@7 [a3,f#4] [a#3,g4] [b3,g#4]@7 ~@2 e4@3 b3@3]/2",
L: "g#3@6 b3@9 ~ a3@2 f#3@6", M: "~@5 g#3 ~@2 e4@4, e3, ~ a3, ~@7 b3@5",
})).s("gm_acoustic_guitar_steel").gain(0.57)
// bass · electric bass finger
const bass = note(`<
A@3 B@3 C@3 D@2 E F@3 G@2 H I@2 J K@3 C@3 D@2 L F@3 G@2 H I@2 J M@3 N@3 O@3 P@3 Q R@2 S@3 T U V W X Y Z AA@2 P@3 Q R@2
S@3 T U V AB@3 AC@3
>`.pickRestart({
A: "[g#1@15 ~ g#1@2 f#1@14 ~@2 f#1@2 e1@15 ~ e1@2 f#1@14 ~@2 f#1@2]/3",
B: "[g#1@14 ~@2 g#1@2 b1@18 a1@15 ~ a1@2 b1@10 ~@2 b1@5 ~]/3", C: "[e1@17 ~ e1@16 e2@2 e1@17 ~ e1@18]/3",
D: "[b1@16 ~@2 b1@15 ~ b1@2 e1@12]/2", E: "e2 e1 f#1 g#1", F: "[a1@17 ~ a1@15 ~@3 e1@17 ~ e1@12 g#1@5 ~]/3",
G: "[a1@16 a1 ~ a1@11 ~ a1@6 e1@11 ~]/2", H: "e1@4 ~@2 e2@5 ~ d#2@6 c#2@5 ~",
I: "[b1@10 ~@2 b1@5 ~ b1@17 ~ e1@11 ~]/2", J: "e1 ~@3", K: "[e1@11 ~ e1@6 b1@11 ~ b1@5 ~ e2@18 b1@6 c#2@6 d#2@5 ~]/3",
L: "e2@6 e1@6 f#1@5 ~ g#1@6", M: "[e1@11 ~ e1@6 b1@10 ~@2 b1@6 g#1@15 ~ g#1@2 f#1@14 ~@2 f#1@2]/3",
N: "[e1@15 ~ e1@2 f#1@14 ~@2 f#1@2 g#1@14 ~@2 g#1@2 b1@18]/3",
O: "[a1@15 ~ a1@2 b1@10 ~@2 b1@5 ~ e1@17 ~ e1@16 e2@2]/3", P: "[e1@17 ~ e1@18 b1@16 ~@2 b1@15 ~ b1@2]/3",
Q: "e1@2 e2 e1", R: "[f#1@5 ~ g#1@6 a1@17 ~ a1@15 ~@3]/2", S: "[e1@17 ~ e1@12 g#1@5 ~ a1@16 a1 ~ a1@11 ~ a1@6]/3",
T: "e1@11 ~ e1@4 ~@2 e2@5 ~", U: "d#2@6 c#2@5 ~ b1@10 ~@2", V: "b1@5 ~ b1@17 ~", W: "e1@11 ~ e1@6 ~@6",
X: "~@12 e1@11 ~", Y: "e1@6 b1@11 ~ b1@5 ~", Z: "e2@3 b1", AA: "[c#2@6 d#2@5 ~ e1@17 ~ e1@16 e2@2]/2",
AB: "[c#2@12 c#2@5 ~ c#2@17 ~ e2@18 b1@17 ~]/3", AC: "[e1@11 ~ b1@8 e1@51 ~]/3",
})).s("gm_electric_bass_finger").gain(0.38)
// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
A@2 B C@2 D E@3 F@3 G H@2 I@2 J K@3 L M@2 E@3 N@3 O H@2 I@2 J P@3 L Q R S@2 T U@3 V@2 W X@2 Y Z@2 AA AB@3 AC@2 AD AE@3
V@2 W AF@2 AG AH@2 AA AB@3 AI@3 AJ@3
>`.pickRestart({
A: "[[g#3,b3,e4]@5 ~ [g#3,b3,e4]@4 g#2@2 [g#3,b3,e4]@4 g#2@2 [a3,b3,c#4,e4]@5 ~@5 f#2@2 [a3,b3,c#4,e4]@4 f#2@2 [g#3,b3,d#4]@5 ~ d#4@4 e2@2, g#2@8 ~@10 f#2@8 ~@10 e2@9 ~@3]/2", // E A G#m
B: "[g#3,b3,d#4]@4 e2@2 [a3,b3,c#4,e4]@5 ~ [a3,b3,c#4,e4]@4 f#2@2 [a3,b3,c#4,e4]@4 f#2@2, ~@3 f#2@4 ~@5", // G#m A
C: "[[g#3,b3,e4]@5 ~ [g#3,b3,e4]@4 g#2@2 [g#3,b3,e4]@4 g#2@2 [f#3,b3,d#4]@5 ~ [b3,d#4]@4 b2@2 [f#3,b3,d#4]@4 b2@2 [a3,c#4,e4]@5 ~ [a3,c#4,e4]@4 a2@2, g#2@4 ~@5 b2@4 ~@5 a2@4 ~@2]/2", // E B A
D: "[a3,c#4,e4]@4 a2@2 [f#3,d#4]@4 ~@2 [f#3,d#4]@4 ~@2 [f#3,b3,d#4]@4 b2 ~, ~@3 b2@4 ~ b2@2 ~@2", // A D#m B
E: "[[g#3,b3,e4]@5 ~ e4@3 ~@3 g#3@3 ~ g#3@2 [g#3,b3,e4]@5 ~ [b3,e4]@4 ~@2 [g#3,e4]@4 e3@2 [g#3,b3,e4]@5 ~ [b3,e4]@4 ~@2 e4@5 ~ [b3,e4]@4 ~@6 [b2,e3]@2 [g#3,b3,e4]@4 e3@2, e2@16 ~@2 e2@14 ~@4 [e2,b2]@8 ~@2 [e2,b2,e3]@7 ~ e2@18, ~@5 e3@4 ~@5 e3@2 ~@20, ~@2 e4 ~@9, ~@12 b3 ~@35 g#3@2 ~@22]/3", // E E5 C#m E E5 E E5
F: "[b2@6 f#3@4 b2@2 [f#3,b3,d#4]@4 ~@2 [a3,d#4]@10 b2@2 [f#3,a3,b3,d#4]@4 b2@2 g#3@5 ~ b3@4 ~@2 [b3,e4]@4 e3@2 [b3,e4]@10 e3@2 g#3@4 e3@2, [a3,d#4]@11 ~@7 f#3@4 ~@14 e4@10 e3@4 ~@22, f#3@4 ~@12 b2@9 ~@11 e2@16 ~@2 e2@18, ~@24 g#3 ~@2 g#3@2 ~@4 [b3,e4]@3]/3", // B Adim B7 E5 Adim E5
G: "a2@3 a3@2 a2 a3@2 a2 [a3,c#4,e4]@2 ~, [b3,c#4,e4]@10 ~@2 [b3,c#4,e4]@6 b3 ~@5, a3@2 ~@7 a2@3", // A C#m7
H: "[[a3,c#4,e4]@2 a2 [c#4,e4]@2 a2 [b3,e4]@5 ~ g#3 ~@5 [b3,e4]@2 e3 [g#3,b3,e4]@2 [e2,e3], ~@6 a3@3 ~@3 e2@16 g#3@6 e3@5 ~@9, ~@12 g#3@4 ~@6 e3@8 e2@13 ~@5, ~@2 [b3,e4] ~]/2", // A C#m E5 E E5
I: "[a2@6 c#4@4 a2@2 [b3,c#4,e4]@4 a2@2 [a3,c#4]@5 ~ c#4@4 a2@2 [a3,c#4,e4]@4 a2@2 [g#3,b3]@5 ~@5 e2@2, e4@5 ~@4 e4@5 ~@4 e4@5 ~, a3@4 ~@8 a3@3 ~@3 a2@8 ~@10 e2@7 ~@5]/2", // C#m7 A G#m
J: "[g#3,b3,e4]@2 e2 [g#3,b3,e4]@2 ~ b3@2 ~ [g#3,b3,e4]@2 [e2,e3], ~@3 [e2,e3]@4 ~ [e2,e3]@2 ~@2", // E
K: "[[f#3,a3,d#4]@5 ~ [a3,d#4]@4 ~@2 [f#3,a3,d#4]@4 b2@2 f#3@4 ~@2 f#3@4 b2@2 [f#3,a3,b3,d#4]@4 b2@2 [g#3,e4]@4 ~@2 [g#3,b3,e4]@4 ~@2 [b3,e4]@4 g#3 ~ [e2,b3,e4,g#4]@15 ~@3, b2@8 ~@2 b2@4 ~@4 [a3,b3,d#4]@11 ~@17 e3@8 ~@18, ~@9 b2@4 ~@5 e2@7 ~@11, ~@24 g#3 ~@11]/3", // D#dim Adim D#dim B7 C#m E E5 E …
L: "[g#3,b3,e4]@4 ~@2 e4@4 [e2,e3]@2 [g#3,b3,e4]@3 ~ e3@2 [f#3,b3,d#4]@4 ~@2, [e2,e3]@4 ~@5 [b2,a3]@3", // E B E B7
M: "[[b3,d#4]@4 b2@2 [f#3,b3,d#4]@4 b2@2 [g#3,b3,e4]@5 ~ e4@4 ~@2 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@6 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3, ~@6 a3@3 ~@3 e2@6 ~@4 [b2,e3]@4 ~@2 [e2,b2,e3]@11 ~ [e2,e3]@6 ~@2]/2", // B E E5 E
N: "[b2@6 f#3@4 b2@2 [f#3,b3,d#4]@4 ~@2 [a3,d#4]@10 b2@2 [f#3,a3,b3,d#4]@4 b2@2 g#3@5 ~ b3@4 ~@2 [b3,e4]@4 e3@2 [b3,e4]@10 e3@2 [g#3,b3,e4]@4 e3@2, [a3,d#4]@11 ~@7 f#3@4 ~@14 e4@10 e3@4 ~@22, f#3@4 ~@12 b2@9 ~@11 e2@16 ~@2 e2@18, ~@24 g#3 ~@2 g#3@2 ~@7]/3", // B Adim B7 E5 E Adim
O: "a2@3 a3@2 a2 a3@2 a2 [a2,c#4]@3, [b3,c#4,e4]@10 ~@2 [b3,c#4,e4]@6 b3 ~@5, a3@2 ~@7 [a3,e4]@2 ~", // A C#m7 A5
P: "[[f#3,a3,d#4]@5 ~ [a3,d#4]@4 ~@2 [f#3,a3,d#4]@4 b2@2 f#3@4 ~@2 f#3@4 b2@2 [f#3,a3,b3,d#4]@4 b2@2 [g#3,e4]@4 ~@2 [g#3,b3,e4]@4 ~@2 [b3,e4]@4 g#3@2 [e2,b3,e4,g#4]@15 ~@3, b2@8 ~@2 b2@4 ~@4 [a3,b3,d#4]@11 ~@17 e3@8 ~@18, ~@9 b2@4 ~@5 e2@7 ~@11, ~@24 g#3 ~@11]/3", // D#dim Adim D#dim B7 C#m E E5 E …
Q: "[b3,d#4]@4 b2@2 [f#3,b3,d#4]@4 b2@2 [g#3,b3,e4]@5 ~ [g#3,b3,e4]@4 g#2@2, ~@6 a3@3 ~@3 g#2@8 ~@4", // B E
R: "[g#3,b3,e4]@4 g#2@2 [a3,b3,c#4,e4]@5 ~@5 f#2@2 [a3,b3,c#4,e4]@4 f#2@2, ~@3 f#2@4 ~@5", // E A
S: "[[g#3,b3,d#4]@5 ~ d#4@4 e2@2 [g#3,b3,d#4]@4 e2@2 [a3,b3,c#4,e4]@5 ~ [a3,b3,c#4,e4]@4 f#2@2 [a3,b3,c#4,e4]@4 f#2@2 [g#3,b3,e4]@5 ~ [g#3,b3,e4]@4 g#2@2, e2@9 ~@9 f#2@8 ~@10 g#2@8 ~@4]/2", // G#m A E
T: "[g#3,b3,e4]@4 g#2@2 [f#3,b3,d#4]@5 ~ [b3,d#4]@4 b2@2 [f#3,b3,d#4]@4 b2@2, ~@3 b2@4 ~@5", // E B
U: "[[a3,c#4,e4]@5 ~ [a3,c#4,e4]@4 a2@2 [a3,c#4,e4]@4 a2@2 [f#3,d#4]@4 ~@2 [f#3,d#4]@4 ~@2 [f#3,b3,d#4]@4 b2 ~ [g#3,b3,e4]@5 ~ e4@3 ~@3 g#3@3 ~ g#3@2 [g#3,b3,e4]@5 ~ [b3,e4]@4 ~@2 [g#3,e4]@4 e3@2, a2@4 ~@5 b2@4 ~ b2@2 ~@2 e2@8 ~ e2@7 ~@2, ~@23 e3@4 ~@5 e3@2 ~@2, ~@8 e4 ~@3, ~@48 b3 ~@23]/3", // A D#m B E E5 C#m
V: "[[g#3,b3,e4]@5 ~ [b3,e4]@4 ~@2 e4@5 ~ [b3,e4]@4 ~@6 [b2,e3]@2 [g#3,b3,e4]@4 e3@2 b2@6 f#3@4 b2@2, [e2,b2]@8 ~@2 [e2,b2,e3]@7 ~ e2@18 f#3@4 ~@8, ~@12 g#3@2 ~@22 [a3,d#4]@11 ~]/2", // E E5 E E5 Adim
W: "[f#3,b3,d#4]@2 ~ [a3,d#4]@5 b2 [f#3,a3,b3,d#4]@2 b2, ~@4 b2@9 ~@11, ~@3 f#3@2 ~@7", // B Adim B7
X: "[g#3@5 ~ b3@4 ~@2 [b3,e4]@4 e3@2 [b3,e4]@10 e3@2 g#3@4 e3@2 a2@6 a3@4 a2@2, e2@8 ~ e2@9 ~@6, e4@5 e3@2 ~@11 a3@2 ~@4, ~@6 g#3 ~@2 g#3@2 ~@4 [b3,e4]@3 [b3,c#4,e4]@5 ~]/2", // E5 C#m7
Y: "a3@2 a2 [a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 a2 [c#4,e4]@2 a2, [b3,c#4,e4] a2 ~@2, ~@6 b3 ~@11 a3@3 ~@3", // A C#m C#m7
Z: "[[b3,e4]@10 ~@2 g#3@3 ~@9 [b3,e4]@4 e3@2 [g#3,b3,e4]@4 [e2,e3]@2 a2@6 c#4@4 a2@2, e2@16 g#3@6 e3@5 ~@9 a3@4 ~@8, g#3@4 ~@6 e3@8 e2@13 ~@17, ~@6 [b3,e4]@6 ~@6 e4@5 ~]/2", // E5 E E5
AA: "[b3,c#4,e4]@4 a2@2 [a3,c#4]@5 ~ c#4@4 a2@2 [a3,c#4,e4]@4 a2@2, a3@3 ~@3 e4@10 ~@8, ~@3 a2@4 ~@5", // C#m7 A
AB: "[[g#3,b3]@5 ~@5 e2@2 [g#3,b3,e4]@4 e2@2 [g#3,b3,e4]@4 ~@2 b3@4 ~@2 [g#3,b3,e4]@4 [e2,e3]@2 [f#3,a3,d#4]@5 ~ [a3,d#4]@4 ~@2 [f#3,a3,d#4]@4 b2@2 f#3@4 ~@2 f#3@4 b2@2 [f#3,a3,b3,d#4]@4 b2@2, e4@10 ~@44 [a3,b3,d#4]@11 ~@7, e2@7 ~@11 [e2,e3]@8 ~@2 [e2,e3]@4 ~@4 b2@8 ~@2 b2@4 ~@4 b2@8 ~@10]/3", // G#m E D#dim Adim D#dim B7 E
AC: "[[g#3,e4]@4 ~@2 [g#3,b3,e4]@4 ~@2 [b3,e4]@4 g#3@2 [e2,b3,e4,g#4]@15 ~@3 [g#3,b3,e4]@4 ~@2 e4@4 [e2,e3]@2, e2@7 ~@11 [e2,e3]@4 ~@2, ~@5 e3@4 ~@15, ~@6 g#3 ~@17]/2", // C#m E E5 E
AD: "[g#3,b3,e4]@3 ~ e3@2 [f#3,a3,b3,d#4]@5 ~ [b3,d#4]@4 b2@2 [f#3,a3,b3,d#4]@4 b2@2, ~ b2 ~@2", // E B7 B B7
AE: "[[g#3,b3,e4]@5 ~ e4@4 ~@2 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@6 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@5 ~ e4@3 ~@3 g#3@3 ~ g#3@2 [g#3,b3,e4]@5 ~ [b3,e4]@4 ~@2 [g#3,e4]@4 e3@2, e2@6 ~@4 [b2,e3]@4 ~@2 [e2,b2,e3]@11 ~ [e2,e3]@6 ~@2 e2@16 ~@2 e2@14 ~@4, ~@23 e3@4 ~@5 e3@2 ~@2, ~@8 e4 ~@3, ~@48 b3 ~@23]/3", // E E5 C#m E5 E
AF: "[g#3@5 ~ b3@4 ~@2 [b3,e4]@4 e3@2 [b3,e4]@10 e3@2 [g#3,b3,e4]@4 e3@2 a2@6 a3@4 a2@2, e2@8 ~ e2@9 ~@6, e4@5 e3@2 ~@11 a3@2 ~@4, ~@6 g#3 ~@2 g#3@2 ~@7 [b3,c#4,e4]@5 ~]/2", // E5 E C#m7
AG: "a3@4 a2@2 [a3,c#4,e4]@5 ~ [a3,c#4,e4]@4 a2@2 [c#4,e4]@4 a2@2, [b3,c#4,e4] a2 ~@2, ~@6 b3 ~@11 a3@3 ~@3", // A C#m C#m7
AH: "[[b3,e4]@5 ~ g#3 ~@5 [b3,e4]@2 e3 [g#3,b3,e4]@2 [e2,e3] a2@3 c#4@2 a2, e2@16 g#3@6 e3@5 ~@9 a3@4 ~@8, g#3@4 ~@6 e3@8 e2@13 ~@17, ~@6 [b3,e4]@6 ~@6 e4@5 ~]/2", // E5 E E5
AI: "[[c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@4 ~@2 [c#4,e4,g#4]@4 ~@2 [c#3,c#4,e4,g#4]@15 ~@3 [g#3,b3,e4]@15 ~@3 [b2,f#3,a3,d#4]@15 ~@3, c#3@8 ~@2 c#3@7 ~@19 e2@18 ~@18]/3", // C#m E B7
AJ: "[~ e3 [g#3,b3,e4] e3 ~@3 e4@16 ~, e2@7 ~@5 [b2,a3,b3,c#4,e4]@7 f#3@50 ~@3, ~@6 e3@17 ~, ~@20 [g#3,b3]@49 ~@3]/3", // E A G#m
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.8)
// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_3 = note(`<
~ A ~@2 B C D E F G H I ~ J I K L M N O ~ P Q@2 D E F G H I ~ J I K L M N O ~ P R S T ~ U V W X Y@2 U Z AA ~ AB AC AD
T AE ~ AF AG AH AI AJ X Y@2 U Z AA ~ AB AC AD T AE ~@4 AK ~@2
>`.pickRestart({
A: "[a3,b3,c#4,e4]@4 ~@14 [g#3,b3]@5 ~", B: "f#3@5 ~@19", C: "~@6 b3@5 ~ b3@5 ~@7", D: "~@6 [g#3,b3]@3 ~@9 b2 ~@5",
E: "g#3@2 ~@7 g#3@2 ~, ~@14 e3@7 ~@3", F: "b3@4 g#3@2 ~@6 [b3,e4]@5 ~@7, ~@3 g#3@5 ~@4", G: "~@3 b3@2 ~@7",
H: "f#3@5 ~@7 c4@2 ~@4 g#3@3 ~@3", I: "~@3 g#3 ~@2", J: "~@18 g#3@5 ~", K: "[b2,b3,c#4]@5 ~ [a3,b3]@4 ~@14",
L: "a3@5 ~@13 [g#3,b3]@5 ~", M: "~@12 [g#3,e4]@5 ~@7", N: "~@3 f#3@2 ~@7", O: "~@3 b3 ~@2",
P: "~@3 [g#3,b3]@2 ~@3 e2 ~@3", Q: "[[f#3,a3]@2 ~@7 [g#3,b3]@2 e2@2 ~@11]/2", R: "[f#3,a3] ~@5",
S: "~@3 [a3,b3,c#4,e4] ~@2", T: "~@6 [g#3,b3]@5 ~@13", U: "~@12 f#3@5 ~@7", V: "~@18 b3@5 ~",
W: "b3@5 ~@13 [g#3,b3]@3 ~@3", X: "~@6 b2 ~@5 g#3@4 ~@8",
Y: "[~@6 g#3@4 ~@2 b3@4 g#3@2 ~@6 [b3,e4]@5 ~@13 b3@4 ~@2, ~@2 e3@7 ~@9 g#3@10 ~@20]/2", Z: "c4@2 ~@4 g#3@3 ~@15",
AA: "g#3 ~@5", AB: "~@6 g#3@5 ~@13", AC: "g#3@4 ~@8 [b2,b3,c#4]@5 ~ [a3,b3]@4 ~@2", AD: "~@12 a3@5 ~@7",
AE: "[g#3,e4]@5 ~@13 f#3@4 ~@2", AF: "b3 ~@5", AG: "~@9 [g#3,b3]@2 ~", AH: "~@2 e2 ~@3 [f#3,a3]@2 ~@4",
AI: "~@3 [g#3,b3]@2 e2@2 ~@5", AJ: "~@6 [g#3,b3] ~", AK: "~@3 e2 ~@4",
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.8)
// drums · kick
const kick = s("bd").struct(`<
A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B
C A B C A B C A B C A B C A B C A B C A B C D ~@2
>`.pickRestart({
A: "x ~@2 x", B: "~ x", C: "~ x ~@2", D: "x",
})).gain(0.33)
// drums · clap
const clap = s("cp").struct(`<
A B C A B C A B C A B C A B C A B C A B D A B C A B C A B C A B C A B C A B D A B C A B C A B C A B C A B C A B C A B
C A E C A B C A B C A B C A B C A B C A E C ~@3
>`.pickRestart({
A: "~ x!2 ~", B: "x!2 ~ x", C: "x ~ x!2", D: "x", E: "~@3 x",
})).gain(0.28)
// drums · open hat
const open_hat = s("oh").struct("<~@20 A ~@17 A ~@21 B ~@17 B ~@2 C ~@2>".pickRestart({
A: "~ x ~@2", B: "~@3 x", C: "x ~@8 x ~@10 x ~@3",
})).gain(0.33)
// drums · ride
const ride = s("rd").struct("<A@20 B A@17 B A@21 C D A@16 C D A E ~@2>".pickRestart({
// … 8 more lines
More by Johnny Cash
I Got Stripes1959 · D♭ major · 207 bpmThe Ways Of A Woman In Love1958 · B♭ major · 182 bpmRing Of FireG major · 100 bpmI Walk The LineF major · 105 bpmA Boy Named SueB♭ major · 200 bpmBallad Of A Teenage QueenB major · 95 bpmFolsom Prison BluesF♯ major · 100 bpmGuess Things Happen That WayB♭ major · 148 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.