0:00/0:00
// She Called Me Baby — Charlie Rich
// 94 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 58 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(94/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 · acoustic bass · "Bass"
const bass = note(`<
~ A B C D E F G H I J E K E L G M N O P Q R S E K E T I U E V W X Y Z E AA G AB AC AD E AE I AF E AG AH AI I AJ I AK I
AL AM AN@2
>`.pickRestart({
A: "f2@15 ~ f2@3 ~@2 f2@3 a1@8", B: "bb1@10 ~ d2@2 bb1@3 b1@16", C: "f2 g2", D: "c2@3 ~@13", E: "f2 c2",
F: "f2@2 c2 a1", G: "bb1 f2", H: "bb1@2 f2 bb1", I: "c2 g2", J: "c2@7 ~ d2@4 e2@4", K: "f2@3 ~@5 c2@8 d2@8 e2@8",
L: "f2@9 ~@4 f2@3 c2@7 ~ a1@8", M: "bb1@5 ~@3 bb1@4 b1@4", N: "c2@16 g2@10 ~@3 g2@3", O: "c2@10 ~@3 c2@2 ~ d2@8 e2@8",
P: "f2@11 ~@2 f2@3 c2@16", Q: "f1@11 ~@2 f1@3 g1@8 a1@8", R: "bb1 f1", S: "bb1@7 ~ bb1@4 d2@4",
T: "f2@9 ~@4 f2@3 e2@8 d2@7 ~", U: "c2 ~ c2@2 d2@2 e2@2", V: "f2@13 ~@3 g2@8 a2@8", W: "bb2@16 f2@11 g2@2 f2@3",
X: "bb1@15 ~ f2@10 ~ bb1@2 b1@3", Y: "c2@16 g2@12 ~ b1@3", Z: "c2@12 ~ c2@3 d2@8 e2@8", AA: "f1@5 ~@3 f1@8 g1@8 a1@8",
AB: "bb1@16 f2@13 e2@3", AC: "f2@13 b1@3 c2@16", AD: "f2@13 c2@3 d2@8 e2@8", AE: "f2@11 ~@2 f2@3 e2@8 d2@8",
AF: "c2@3 ~ c2@4 d2@4 e2@4", AG: "f2@10 ~@3 f2@3 g2@8 a2@8", AH: "bb1@15 ~ f2@11 g2@2 f2@3",
AI: "bb1@16 f2@8 ~@3 bb1@2 b1@3", AJ: "c2@13 ~@3 g1@5 bb1@5 ~ b1@5", AK: "c2@13 ~@3 g1@5 bb1@6 b1@5",
AL: "c2@10 ~@3 c2@3 d2@8 e2@8", AM: "f2@13 a2@3 bb2@10 ~@3 e2@3", AN: "[f2@8 d2@3 c2@2 a1@3 f1@34 ~@14]/2",
})).s("gm_acoustic_bass").gain(0.42)
// chords · piano · "Keyboard"
const piano = note(`<
~ A B C D ~@2 E F ~@2 G H I ~ J K L M N O ~@2 P Q ~@2 R S T ~ U V W X Y Z ~@2 AA AB ~@2 AC AD AE ~ AF AG AH AI AJ AK
AL@2 AM AN@2
>`.pickRestart({
A: "~@8 [a4,c5]@5 f4@2 ~ [a4,c5]@12 ~@4, ~@8 ab4 ~@7 ab4 ~@15", // Am
B: "~@4 d5@2 bb4 ~ [d5,f5]@6 ~@2, ~@8 g5@3 ~@21, ~@8 db5 ~@23", // Dm
C: "~@8 ab4 a4@4 f4@2 ~ [g4,b4]@12 ~@4, ~@8 c5@5 ~@19", D: "[c5,e5]@3 ~@13",
E: "~@16 [d5,f5]@3 ~@2 [c5,f5]@5 bb4@2 ~ [c5,f5] ~@2, ~@16 db5 ~@15", // Dm F5
F: "f5@6 ~@10 db6 d6@4 f5@2 ~ [bb5,d6]@6 ~@2, d5@3 ~@13 [e6,f6]@2 ~@14, db5 ~@31", // Bb Fmaj7
G: "~@21 f3 ~@2 [a3,c4]@3 ~@2 [g3,bb3]@3, ~@24 ab3 ~@7", H: "f3 c3 d3 e3", I: "f3@5 ~@11",
J: "~@21 [d5,f5]@5 bb4@2 ~ d5 ~@2, ~@21 db5 ~@10", K: "db5 f5@8 ~@23, d5@9 ~@23",
L: "[e4,g4,c5]@20 ~@4 [eb4,b4]@5 ~@3", M: "[d4,bb4]@25 ~@7", N: "~@16 [a5,c6]@5 f5@3 [g5,bb5]@5 f5 ~@2",
O: "[a5,c6]@5 [bb5,d6]@2 ~ [c6,eb6]@18 ~@6", P: "~@16 [ab5,a5,c6]@3 ~@2 [g5,c6]@4 ~@2 [f5,c6] ~@2 [g5,c6] ~",
Q: "~ ab5 ~@3 g3@4 a3@4 bb3@3 c4@11 ~@5, ~ [a5,c6]@10 ~@21", R: "~@16 [e6,g6]@5 g5@3 [d6,f6]@5 g5@3, ~@24 e6 ~@7",
S: "[c6,e6]@6 ~@2 [bb5,d6]@6 ~@2 [a5,c6]@7 ~ [g5,bb5]@5 ~@3, d6 ~@31", T: "[f5,a5]@13 ~@19",
U: "~@16 [db6,d6,f6]@3 ~@2 [c6,f6]@5 ~ [bb5,f6] ~@2 [c6,f6] ~, ~@16 eb6 ~@15", // Db F5 Bb5 F5
V: "~ [d6,f6]@10 ~@21, ~ [db6,eb6] ~@30", W: "[c5,e5]@21 ~@3 [b4,eb5]@5 ~@3", X: "[bb4,d5]@3 ~",
Y: "~@16 [a5,c6]@3 g5@2 f5@3 [g5,c6]@5 f5@2 ~, ~@16 ab5 ~@15", Z: "[a5,c6]@4 ~ [bb5,d6] ~@2 [c6,eb6]@20 ~@4",
AA: "~@16 [a5,c6]@3 ~@2 [g5,c6]@4 ~@2 [f5,c6] ~@2 [g5,c6] ~, ~@16 ab5 ~@15", AB: "[a5,c6]@15 ~@17, ab5 ~@31",
AC: "~@16 [e6,g6]@5 g5@3 [d6,f6]@5 g5@2 ~", AD: "[c6,e6]@6 ~@2 [bb5,d6]@6 ~@2 [a5,c6]@6 ~@2 [g5,bb5]@5 ~@3",
AE: "[f5,a5]@5 ~@11", AF: "~@15 db6 [d6,f6]@3 ~@2 f6@2 ~ f6@3 ~@2 [c6,f6] ~@2, ~@21 c6 ~@2 bb5 ~@7",
AG: "[d6,f6]@7 ~@9, db6 ~@31", AH: "[c4,e4]@21 ~@3 [b3,eb4]@5 ~@3",
AI: "[bb3,d4]@19 ~@2 [bb3,d4]@3 ~@3 [b3,eb4]@3 ~@2", AJ: "[c4,e4]@22 ~@2 [b3,eb4]@5 ~@3, f4 ~@31",
AK: "[bb3,d4]@18 ~@3 [bb3,d4]@3 ~@2 [b3,eb4]@3 ~@3", AL: "[[c4,e4]@21 ~@2 [b3,eb4]@5 ~@3 [bb3,d4]@24 ~@9]/2",
AM: "~@16 [d5,f5]@5 ~@3 [c5,f5]@5 bb4 ~@2, ~@16 db5 ~@15", // Dm F5
AN: "[~ [c5,f5]@7 [f5,a5]@5 ~@3 [a5,c6]@32 ~@16, ~ a4@33 ~@30]/2", // F5 F Am
})).s("gm_piano").gain(0.42).pan(0.3)
// chords · acoustic guitar steel · "Guitar 1"
const acoustic_guitar_steel = note(`<
~ A B C D E F G@2 H@2 I@3 J K@2 L M N@2 O@2 P@2 Q@2 R S T@2 U V W@2 X@2 Y@2 Z@4 AA AB AC@2 AD@2 AE@2 AF@2 AG@2 AH AI@2
>`.pickRestart({
A: "~ f4@5 f4@3 [c4,f4]@4 [c4,f4]@3 [eb4,f4]@5 [eb4,f4]@3 ~ [eb4,f4]@6 ~, a3@8 ~ a3@7 ~@16, ~ f3@15 [f3,a3]@8 [f3,a3]@7 ~, ~ c4@8 ~@23", // F5 Ebsus2 F
B: "[d4,f4]@5 [d4,f4]@3 [bb3,d4,f4]@7 ~ [f3,b3,d4]@5 [f3,d4]@3 [f3,b3,d4,ab4]@5 [d4,ab4]@3", // Dm Bb Bdim Dm Fdim Ddim
C: "[c4,f4]@5 [c4,f4]@3 [f3,a3,c4,f4]@7 ~ [d4,g4]@5 [d4,g4]@3 [g3,b3,d4,g4]@5 ~ g3@2, [f3,a3]@8 ~@8 [g3,b3]@8 ~@5 [b3,d4,g4]@2 ~", // F5 F G5 G F G
D: "[g3,c4,e4]@5 ~@27", // C
E: "[a3,c4]@6 [c4,f4]@3 [c4,f4]@4 f4@3 ~ f4@4 ~ c4@2 [a3,c4,f4]@5 [c4,f4] ~@2, f3@31 ~, f4@5 ~@4 a3@8 ~@15, ~@13 c4@8 f4@3 ~@8", // Am F5 F F5
F: "[eb4,f4]@5 ~ eb4@2 ~ eb4@4 ~ eb4@3 [eb4,f4]@4 [eb4,f4]@3 [a3,eb4,f4]@4 ~@4, a3@4 f3@11 ~, ~@5 f4@3 a3@8 ~ a3@7 ~@8, ~@8 f4@5 f4@3 ~@16", // Ebsus2 F7
G: "[[d4,f4]@5 f4@3 [d4,f4]@5 d4@3 ~@5 [d4,f4]@3 [d4,f4]@5 d4@3 ~ d4@4 [d4,f4]@3 [bb3,d4,f4]@5 ~@8 [d4,f4]@3 [f3,bb3,d4,f4]@5 d4 ~@2, bb3@8 bb3@8 bb3@8 bb3@13 ~@11 bb3@8 ~@8, ~@13 f4@8 ~@8 f4@8 ~@8 [d4,f4]@8 ~@11]/2", // Dm Bb Dm Bb Dm
H: "[~@5 e4@3 [g3,c4,e4]@5 c4@11 [g3,c4,e4]@5 [c4,e4]@8 [bb3,c4,e4]@3 [bb3,c4,e4]@5 ~ bb3@3 ~@4 [c4,e4]@3 [e3,bb3,c4,e4]@8, e3@3 e3@4 ~, [g3,c4]@8 ~@5 e4@8 ~@24 [c4,e4]@8 ~@11]/2", // C C7 C C7 C5 C
I: "[[a3,c4]@8 ~ [c4,f4]@4 [c4,f4]@3 ~ f4@7 ~ [c4,f4]@4 c4@11 [c4,f4]@5 c4@8 [c4,f4]@3 ~ f4@4 c4@3 ~ c4@4 [c4,f4]@3 [c4,f4]@5 c4@3 c4@5 f4@3 f4@5 f4@3, f3@39 ~ f3@32 [f3,a3]@15 ~ [f3,a3,c4]@8, f4@4 ~@5 a3@15 a3@8 ~@8 a3@16 a3@8 ~ a3@7 ~@24, ~@16 c4@8 ~@5 f4@8 ~@8 f4@3 ~@8 c4@5 f4@8 ~@8 f4@8 ~@11]/3", // Am F5 F
J: "[a3,c4]@8 [c4,f4]@5 f4@8 f4@3 [f3,a3,c4,f4]@5 ~@3, f4@5 ~@3 f3@16 ~@8, ~@8 a3@13 ~@11, ~@13 c4@11 ~@8", // Am F5 F
K: "[[bb3,d4]@7 ~ [bb3,d4,f4]@5 [d4,f4]@7 ~@4 [d4,f4]@5 f4@7 ~ f4@3 [bb3,d4,f4]@5 [bb3,d4,f4]@8 [d4,f4]@3 [f3,bb3,d4,f4]@5 ~@3, f4@4 ~@4 f3@15 f3@16 ~ f3@16 ~@8, ~@13 bb3@10 bb3@6 d4@11 ~@24]/2", // Bb Dm Bb Dm Bb
L: "~ c4@7 [c4,e4]@5 e4@8 e4@3 [g3,c4,e4]@6 ~@2, c3@29 ~@3, e3@3 ~, g3@5 ~@3 g3@16 ~@8, ~@13 c4@11 ~@8", // C
M: "~@5 [c4,e4]@3 [bb3,c4,e4]@5 [bb3,c4,e4]@8 [c4,e4]@3 [c3,e3,bb3,c4,e4]@5 ~@3, bb3 [c3,e3]@2 ~", // C C7 C C7 C
N: "[~@5 [c4,f4]@3 f4@5 ~@3 c4@5 [c4,f4]@3 [c4,f4]@5 [c4,f4]@8 c4@3 [a3,c4,f4]@5 [c4,f4]@8 [c4,f4]@3 [f3,a3,c4,f4]@4 ~@4, ~@8 [f3,a3]@16 f3@16 f3@15 ~@9, ~ c4 ~ a3 ~@4, ~@13 f4@8 ~@43]/2", // F5 F F5 F
O: "[~@5 [d4,f4]@3 [f3,bb3,d4,f4]@5 ~@4 d4@4 [d4,f4]@3 [d4,f4]@5 [d4,f4]@8 [d4,f4]@3 [bb3,d4,f4]@5 [d4,f4]@8 [d4,f4]@3 [f3,d4,f4]@4 ~@4, ~@13 bb3@10 ~@22 bb3@3 ~@16, ~@13 [d4,f4]@3 ~@48, ~@7 f3@5 [f3,bb3]@8 f3@7 ~@5]/2", // Dm Bb Dm Bb Dm Bb5
P: "[~@5 [c4,f4]@3 [a3,c4,f4]@5 [c4,f4]@8 f4@3 [a3,f4]@5 f4@8 ~ [c4,f4]@2 [c4,f4]@5 ~@8 [c4,f4]@3 [f3,a3,c4,f4]@4 ~@4, f3 f3@2 [f3,c4]@2 f3@2 ~, ~@13 a3@3 ~@29 [c4,f4]@8 ~@11, ~@6 a3 ~]/2", // F5 F F5 Dm F5 F F5
Q: "[~@5 [c4,f4]@3 [a3,c4,f4]@5 [c4,f4]@8 [c4,f4]@3 f4@4 ~@9 f4@3 [a3,c4,f4]@5 [a3,c4]@3 ~@5 [c4,f4]@3 [f3,a3,c4,f4]@4 ~@4, ~ f3@2 f3@2 f3@2 ~, ~@3 [a3,c4] a3 ~@3, ~@29 f4@8 ~@8 f4@8 ~@11]/2", // F5 F F5 F Am F5 F Am
R: "~@8 [c4,e4]@5 e4@4 ~@7 [b3,f4]@5 [b3,f4]@3, ~ [c3,e3,g3] ~ [b2,d3,g3], ~@13 c4@2 ~@17", // C Bdim C G
S: "~@5 c4@3 [bb3,c4]@5 c4@8 c4@3 [c3,e3,bb3,c4]@5 ~@3, ~ [c3,e3]@2 ~, ~@8 e4@2 ~@3 bb3@11 e4@3 ~@5", // Bbsus2 C7 C
T: "[~@5 f4@3 [c4,f4]@5 ~@8 [c4,f4]@3 [c4,f4]@5 ~ c4@2 ~@5 f4@3 f4@5 f4@7 ~ [c4,f4]@3 [f3,a3,c4,f4]@5 f4@2 ~, ~ f3@2 [f3,a3]@2 [f3,a3]@2 ~, ~@8 a3@8 a3@8 ~@8 c4@8 c4@13 ~@11, ~@13 [c4,f4]@8 ~@8 f4@8 ~@27]/2", // F5 F F5
U: "~@8 [d4,f4]@5 [d4,f4]@3 ~@5 [d4,f4]@3 [bb3,d4,f4]@5 [d4,f4]@3, ~ f3@2 f3, ~ bb3 ~@2", // Dm Bb Dm
V: "[d4,f4]@5 [d4,f4]@3 [bb3,d4,f4]@5 [d4,f4]@8 [d4,f4]@3 [f3,bb3,d4,f4]@5 ~@3, bb3@8 f3@15 ~@9", // Dm Bb Dm Bb
W: "[~@8 [g3,c4,e4]@5 c4@11 [c4,e4]@5 ~@8 [c4,e4]@3 [c4,e4]@5 [c4,e4]@8 e4@3 ~ c3@4 ~@3, ~ [c3,e3]@2 c3 c3!2 ~@2, ~@13 e4@8 ~@8 [c4,e4]@8 ~@27, ~@13 g3@3 ~@8 [e3,g3]@16 [e3,g3]@16 [e3,g3,c4,e4]@5 ~@3]/2", // C Em C
X: "[~@5 f4@3 [a3,c4,f4]@5 [a3,c4]@11 [c4,f4]@5 ~ c4@7 [c4,f4]@3 ~ [c4,f4]@4 f4@8 f4@3 [f3,a3,c4,f4]@6 ~@2, c3@8 f3@16 [f3,a3]@16 f3@15 ~@9, ~ c3 ~@6, ~@13 f4@8 ~@8 f4@8 ~@3 a3@4 ~ [a3,c4]@11 ~@8]/2", // F Am F5 F Am
Y: "[~ [bb3,d4,f4]@7 [f3,bb3,d4,f4]@5 ~ [bb3,d4]@3 [d4,f4]@4 [d4,f4]@3 d4@13 [d4,f4]@3 ~ f4@5 [d4,f4]@3 bb3@5 f4@2 ~ f4@4 ~@3, ~@13 f4@3 ~ bb3@7 f4@5 ~@11 bb3@9 f4@4 ~@11, ~@14 f3@10 [f3,bb3]@16 f3@16 [f3,bb3]@5 ~@3, ~@40 d4@5 ~@4 d4@13 ~@2]/2", // Bb Dm Bb5
Z: "[~ f4@4 ~@3 [a3,c4,f4]@5 ~ a3@2 f4@5 f4@3 [c4,f4]@5 ~ c4@2 ~@5 [c4,f4]@3 [c4,f4]@5 ~ c4@2 c4@5 [c4,f4]@3 ~ f4@5 f4@7 f4@3 ~ f4@4 ~ c4@2 ~@5 [c4,f4]@3 f4@5 ~@8 f4@3 [f3,a3,c4,f4]@5 ~ [a3,c4]@2 ~ f4@4 f4@3 ~ c4@5 ~@2, ~ f3@2 [f3,a3]@2 [c3,f3]@2 c3@4 [c3,f3,c4] c3@3 [c3,f3], ~@13 c4@11 ~@16 a3@8 a3@8 [f3,c4]@16 [f3,a3]@16 a3@16 ~@6 f3@10 ~@8, ~@13 f4@3 ~@13 f4@8 ~@8 f4@8 ~@3 a3@9 ~@7 c4@5 f4@8 ~@8 f4@8 ~@8 f4@3 c4@8 ~@8, ~@113 a3@7 [a3,f4]@5 ~@3]/4", // F F5 F Am F F5 F Dm
AA: "~ c3@7 ~ [c4,e4]@4 ~ [g3,c4]@3 ~@5 b3@2 ~ [b3,f4]@5 [b3,f4]@2, ~@8 [c3,e3,g3]@5 e4@3 ~@5 f4@3 [b2,d3,g3]@8", // C C5 Bdim C G
AB: "~@5 c4@3 [e3,bb3]@6 ~@7 c4@3 ~ [bb3,c4]@5 ~@2, ~ [c3,e3]@7 c3@16 [c3,e3]@5 ~@3, ~@8 c4@5 ~ c4@7 ~@4 e4@2 ~@5, ~@8 e4@3 ~@5 [e3,bb3]@8 ~@8", // Edim Bbsus2 C Edim
AC: "[c3@8 ~ [a3,c4,f4]@5 f4@7 f4@3 [a3,c4]@6 ~@3 a3@7 [a3,c4,f4]@6 [c4,f4]@7 [c4,f4]@3 [c3,f3,a3,c4,f4]@5 ~@3, ~ c3@2 [c3,f3]@2 [c3,f3]@2 ~, ~@9 f3@15 ~@40, ~@7 a3@5 ~@3 c4@5 ~@3 a3@5 ~@4, ~@14 c4@3 ~@7 f4@5 ~ f4@7 ~@27]/2", // F Am F F5 F F5
AD: "[~ bb3@4 ~@3 [d4,f4]@5 d4@3 [bb3,d4]@5 [d4,f4]@3 [d4,f4]@5 [d4,f4]@3 [bb3,d4]@7 ~ [d4,f4]@5 f4@3 f4@4 ~ [d4,f4]@3 [bb2,f3,bb3,d4,f4]@5 ~@3, ~ f3@2 ~@5 f3@16 f3@16 f3@16 ~@8, ~ bb3 ~ bb3 ~ bb3!2 ~, ~@13 f4@8 ~@24 d4@8 ~@11]/2", // Dm Bb Dm Bb Dm Bb
AE: "[c3@8 [c4,e4]@5 ~ c4@7 [c4,e4]@3 e4@5 ~@8 [c4,e4]@3 [g3,c4,e4]@5 ~ c4@4 ~@4 [bb3,d4]@3 ~@2 [gb3,b3,eb4]@2 ~@3, ~@8 [c3,e3,g3]@16 [c3,e3,g3]@8 ~ g3@7 [c3,e3]@9 ~@4 f3@4 ~@7, ~@13 e4@8 ~@3 c4@13 ~@27, ~@29 e4@8 ~@8 e4@4 ~@15]/2", // C Bb B C
AF: "[~ e4@2 ~@6 c4@5 c4@3 e4@2 ~@2 e4@3 e4@5 e4@3 ~@8 [c4,e4]@5 ~ c4@4 ~@4 [f3,bb3,d4]@3 ~@2 [gb3,b3,eb4]@3 ~@2, [g3,c4]@4 g3@8 [g3,c4]@6 ~@2 g3@3 ~@9]/2", // C Bb B C5
AG: "[[g3,c4,e4]@8 [c4,e4]@5 ~ [c4,e4]@3 [c4,e4]@4 e4@2 ~ e4@5 e4@3 ~ e4@2 ~@5 [g3,c4]@6 e4@2 g3@8 ~ e4@3 ~@4, ~@8 g3@15 ~ g3@16 ~@16 [g3,c4]@3 ~@5, ~@3 c4 ~@4]/2", // C C5
AH: "~ f4@4 f4@3 [f3,a3,c4,f4]@5 ~@4 f4@4 f4@3 ~ [bb3,d4,f4]@5 ~@2, a3@8 ~@9 [bb3,d4]@7 f3@5 ~@3, ~ c4@7 ~@24", // F Bb
AI: "[~ [f3,a3]@15 ~@2 f4@37 ~@9, ~ [c4,f4]@7 ~@8 f3@41 ~@7, ~@17 [a3,c4]@41 ~@6]/2", // F F5 Am
})).s("gm_acoustic_guitar_steel").gain(0.27).pan(0.6)
// chords · acoustic guitar steel · "Guitar 1" · soft notes
const acoustic_guitar_steel_2 = note(`<
~@2 A ~@3 B C@2 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 AD@2 AE AF AG B AH AI AJ N AK AL AM AN AO
AP AQ AR AS ~@2
>`.pickRestart({
A: "~ f3@15 ~@16, bb3 ~@3", B: "f3 ~@3", C: "[f3@2 ~@3 d4@3 ~@8 d4@5 ~@3 f3@32 ~@8, ~ f3@11 ~@20]/2",
D: "e4@5 ~@16 e4@3 ~@8, c3@15 ~, ~@7 g3@5 ~@4", E: "bb3@5 ~@27", F: "~ f2@4 ~ f4@3 ~@23, f-1 ~@3",
G: "~@5 f4@3 ~@9 f4@4 ~@11", H: "~@5 f4@3 ~@24, f3 ~@3", I: "f3@8 ~@13 [d4,f4]@3 ~@8", J: "bb3@7 ~@9 f2@5 ~@11",
K: "~ gb2@4 e4@3 ~@16 e3@6 ~@2, e4@5 ~@27", L: "~ e3@7 ~@13 bb3@3 ~@8, c3 ~@3, ~ c4@4 ~@27", M: "[f3,a3] ~@3, f4 ~@7",
N: "~@5 f4@3 ~@24", O: "~ f3@7 ~@9 f4@4 ~@11, [bb3,d4]@7 ~@25, f4 ~@7", P: "~@4 bb3@3 ~",
Q: "[c4,f4]@5 ~@16 [a3,c4]@3 ~@8, a3 ~@3", R: "~ a3@7 a3@5 ~@19", S: "~ f4@4 ~@27, f3 ~@3, c4@5 ~@27",
T: "c4@8 f2@6 ~@2 c4@5 ~@4 f2@3 ~ [b3,e4]@2 ~, ~@16 a3@3 ~@13", U: "~@5 [c4,e4]@3 ~@16 g2@7 ~, c3 ~@3",
V: "~@5 [e3,bb3]@3 ~@6 f2 ~ e4@2 ~@14", W: "~ c4@7 ~@18 f2@4 ~@2, f3 ~@3, a3@5 ~@27",
X: "~ [e3,bb3]@3 ~@12 [d4,f4]@5 ~@3 f2@6 ~@2, d4@3 ~@29", Y: "f3@8 ~@5 bb3@10 ~ f2@5 ~@3",
Z: "~@5 [c4,e4]@3 gb2@13 e4@3 ~@8, c3 ~@3", AA: "~@2 gb2@2 gb2@2 gb2@2 ~ gb2@6 ~ gb2@3 ~@3 c4@2 ~@8",
AB: "~ [f3,c4]@7 ~@13 f4@3 ~@8, ~ f4@4 ~@27", AC: "~@3 a3 ~@12", AD: "[~ f3@7 ~@21 f4@8 ~@27]/2",
AE: "~@5 f4@3 ~@8 a3@8 ~@8, c3, [f3,c4] ~@3", AF: "c4 ~@31", AG: "~@16 c4@5 ~@11",
AH: "~ [g3,c4]@7 ~@8 g2@14 ~@2, ~@15 b3@6 ~@11", AI: "~ bb3@5 e3@2 gb2@7 ~@2 gb2@4 ~@4 gb2@4 ~@3, ~ c4@4 ~@27",
AJ: "~ [c4,f4]@8 ~@23, f3 ~@3, ~ a3@5 ~@26", AK: "~ [bb2,d4]@2 ~@2 [d4,f4]@3 bb2@12 ~@12, ~ f4@4 ~@27",
AL: "~ f4@7 ~ bb2@7 bb2@6 ~@10", AM: "~ gb2@2 ~@2 e4@3 gb2@7 ~@17, [e3,c4] ~@3",
AN: "~@2 gb2@3 ~@4 gb2@4 ~ g3@4 ~@3 f2@4 ~@7, [c3,e3] ~@3", AO: "~@3 e4@2 ~@14 e4@2 ~@11", AP: "~@3 e4 ~@4 g3 ~@7",
AQ: "~@21 c4@2 ~@9", AR: "c4@5 ~@16 e4@3 ~@8", AS: "f3@8 ~@9 f3@7 ~@8",
})).s("gm_acoustic_guitar_steel").gain(0.13).pan(0.6)
// other · electric guitar muted · "Guitar 2"
const electric_guitar_muted = note(`<
~ 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 AD U AE AF AG E AH AI AJ AK AL AM AN AO AP AQ AR AS AT
AU AV AW AX AY AZ BA BB@2
>`.pickRestart({
A: "f2@11 ~@2 a2 ~@2 c3@8 a2@5 c3@3", B: "bb2@9 ~@4 bb2 ~@2 b2@13 e2@3", C: "f2@8 ~@3 f2@2 gb2@2 ~ g2@11 ~@2 b2@3",
D: "c3 ~@7", E: "f2@12 ~ a2 ~@2 c3@7 ~ a2@8", F: "f2@10 ~@3 a2 ~@2 c3@8 a2@5 c3@2 ~",
G: "bb2@9 ~@4 d3 ~@2 f3@7 ~ d3@8, ~@12 e3 ~@3", H: "bb2@8 ~@5 d3 ~@2 f3@8 d3@8", I: "c3@12 ~ e3 ~@2 g3@8 e3@8",
J: "c3@13 e3 ~@2 g3@8 e3@8", K: "f3@8 ~@5 a2@2 ~ c3@7 ~ a2@8", L: "f2@8 ~@5 f2 ~@2 c3@7 ~ a2@8",
M: "f2@10 ~@3 a2@2 ~ c3@7 ~ a2@2 ~ bb2@2 c3@3", N: "f2@10 ~@3 a2 ~@2 c3@8 a2@5 ~@3", O: "bb2@10 ~@3 d3 ~@2 f3@8 d3@8",
P: "bb2@12 ~@4 bb2@7 ~ b2@6 ~@2", Q: "c3@12 ~ e3 ~@2 g3@8 e3@7 ~", R: "c3@10 ~@3 c3@3 d3@8 e3@7 ~",
S: "f3@9 ~@4 c3 ~@2 c3@8 a2@5 c3@3", T: "f2@7 ~ f2@8 g2@8 a2@8", U: "bb2@9 ~@4 d3 ~@2 f3@7 ~ d3@5 f3@3",
V: "bb2@10 ~@3 bb2 ~@2 bb2@8 d3@8", W: "f2@11 ~@2 a2 ~@2 c3@7 ~ a2@5 c3@2 ~", X: "f2@5 ~@3 c3@8 d3@8 e3@8",
Y: "f3@9 ~@4 a2@2 ~ c3@8 a2@5 c3@2 ~", Z: "f2@12 ~ a2 ~@2 c3@8 a2@5 ~@3", AA: "c2@13 e2 ~@2 g2@6 ~@2 g2@7 ~",
AB: "c2@5 ~@3 c2@8 d2@8 e2@8", AC: "f2@12 ~ a2 ~@2 c3@7 ~ a2@5 c3@2 ~", AD: "f2@10 ~@3 f2@3 g2@7 ~ a2@8",
AE: "bb2@12 ~ bb2 ~@2 d3@6 ~@2 d3@8", AF: "c3@13 e3@2 ~ g3@7 ~ e3@8", AG: "c3@5 ~@3 c2@8 d2@8 e2@6 ~@2",
AH: "f2@6 ~@2 f2@8 g2@8 a2@5 ~@3", AI: "bb2@13 d3 ~@2 f3@7 ~ d3@8", AJ: "bb2@12 ~ bb2 ~@2 bb2@7 ~ d3@8, ~@24 eb3 ~@7",
AK: "c3@5 ~@3 d3@8 c3@8 a2@8", AL: "f2@8 d3@8 c3@7 ~ a2@8", AM: "f2@10 ~@3 a2 ~@2 c3@8 a2@7 ~",
AN: "f2@15 ~ c3@14 ~@2", AO: "c3@8 ~@5 e3 ~@2 g3@7 ~ g3@7 ~", AP: "c3@5 ~@3 c2@8 d2@8 e2@5 ~@3",
AQ: "f2@11 ~@2 a2 ~@2 c3@8 a2@8", AR: "f2@8 ~@5 f2@3 g2@8 a2@6 ~@2", AS: "bb2@12 ~ d3 ~@2 f3@8 d3@8",
AT: "bb2@11 ~@5 g3@8 f3@6 ~@2", AU: "c3@12 ~ e3@2 ~ g3@8 e3@7 ~", AV: "c3@12 ~ g2 ~@2 g2@5 bb2@6 b2@5", AW: "c3 g2",
AX: "c3@13 ~@3 g2@5 bb2@5 ~ b2@3 ~@2", AY: "c3@2 ~@11 e3@2 ~ g3@7 ~ e3@8", AZ: "c3@9 ~@4 c3@2 ~ d3@8 e3@7 ~",
BA: "f2@12 ~ a2 ~@2 bb2@13 e2@3", BB: "[f2@8 c3@4 ~@4 f2@31 ~@17]/2",
})).s("gm_electric_guitar_muted").gain(0.36)
// other · string ensemble 1 · "Strings 1"
const string_ensemble_1 = note(`<
A B C D E F G H I J K L M N@2 O P ~@6 Q R ~@2 S T U V W X Y ~ Z AA ~@2 Q AB ~@2 AC AD U AE W AF ~ AG AH AI AJ ~ AK
AL@2
>`.pickRestart({
A: "~@24 d6@5 a5@3", B: "c6@13 d6@3 f6@8 eb6@3 c6@2 a5@3", C: "ab5@10 ~ f5@2 g5@3 f5@8 d6@8",
D: "c6@7 ~ c6@3 a5@2 f5@3 g5@7 ~ d6@3 b5@2 g5@3", E: "c6@7 ~@25", F: "c5@3 d5", G: "c5",
H: "bb4@20 ~@4 f5@3 g5@2 d5@3", I: "g5@3 f5@29", J: "e5@2 c5 b4", K: "bb4@31 ~", L: "~@13 d5@3 c5@10 ~ f4@2 bb4@3",
M: "a4", N: "[[a4,c5]@6 [c4,a4] [bb3,g4]]/2", O: "[bb3,f4]@13 db4@3 d4@10 ~@3 db4@3", P: "d4@11 ~@21",
Q: "~@24 a5@3 g5@2 f5@3", R: "a5@3 d6@2 c6@27", S: "~@16 d6@10 ~@3 d6@3, ~@27 e6@4 ~", T: "c6@3 d6@2 c6@26 ~",
U: "d6@2 a5 f5", V: "a5@16 eb5@15 ~", W: "d5@14 ~@2 d5@5 f5@5 ~ bb5@5", X: "d6", Y: "~@19 [e3,f3] ~@12",
Z: "~@2 c6 d6", AA: "eb6@15 ~", AB: "a5@3 d6@2 c6@26 ~", AC: "~@16 d6@10 ~ e6@2 d6@3", AD: "c6@3 d6@2 c6@24 ~@3",
AE: "a5 eb5", AF: "d6@25 ~@7", AG: "~@21 d5@6 eb5@5", AH: "e5", AI: "~@21 gb5@10 ~", AJ: "g5",
AK: "~@8 c6@3 a5@2 f5@3 bb5@7 ~ d6@3 bb5@2 d6@3", AL: "[f6@25 ~@7]/2",
})).s("gm_string_ensemble_1").gain(0.25).pan(0.7)
// other · string ensemble 1 · "Strings 2"
const string_ensemble_1_2 = note(`<
~@5 A B C@2 D E F G H@2 I J ~@6 K A ~@2 L M ~@2 N O ~@2 P Q ~@2 K A ~@2 L R ~@2 N S ~ T U V W ~ X Y@2
>`.pickRestart({
A: "f4", B: "eb4@31 ~", C: "d4/2", D: "c5 g4", E: "e4@31 ~", F: "~@13 bb4@3 a4@10 ~ c4@2 g4@3", G: "f4@15 ~",
H: "[f4@6 f3 g3]/2", I: "f3@13 e3@3 f3@13 e3@3", J: "f3@7 ~@25", K: "~@3 c4", L: "~ f4", M: "e4",
N: "~@16 f3@5 bb3@6 d4@5", O: "f4@31 ~", P: "~@2 a5 bb5", Q: "c6", R: "e4@27 ~@5", S: "f4@15 ~@17",
T: "~@21 f3@6 gb3@5", U: "g3@15 ~", V: "~@21 b4@11", W: "c5", X: "c4 f4", Y: "[c4@25 ~@7]/2",
})).s("gm_string_ensemble_1").gain(0.25).pan(0.3)
// drums · kick
const kick = s("bd").struct("<~ [x!2]!3 x [x!2]!51 x ~>").gain(0.36)
// drums · snare
const snare = s("sd").struct("<~ [~@5 x ~@15 x ~@7 x ~@2]!3 ~ [~@5 x ~@15 x ~@7 x ~@2]!51 [~@5 x ~@26] ~>").gain(0.24)
// drums · clap
const clap = s("cp").struct("<~ [~@8 x ~@4 x ~@10 x ~@7]!3 ~ [~@8 x ~@4 x ~@10 x ~@7]!51 [~@8 x ~@4 x ~@18] ~>")
.gain(0.3)
// drums · splash
const splash = s("cr").struct("<~@56 [~ x] ~>").gain(0.36)
stack(
bass, piano, acoustic_guitar_steel, acoustic_guitar_steel_2, electric_guitar_muted, string_ensemble_1,
string_ensemble_1_2, kick, snare, clap, splash
)
More by Charlie Rich
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.