0:00/0:00
// True Love — Patsy Cline
// 102 bpm, 3/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 121 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(102/3)
// 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
const bass = note(`<
A@4 B@6 ~@11 C D E F G@2 D H@2 D E I J@2 D K L M N O P Q R S C D E T U@2 D T V@2 D W X Y N Z X AA R S C D E AB U@2 AC
T AD@2 D AE AF AG AH AI AJ AK AL AM AN AO AP AI AJ AQ AR AS AT AU AV AW AX AY AZ BA BB AG BC BD BE BF BG BH BE BI BG
BJ BK@8
>`.pickRestart({
A: "[~@9 f#2@44 c#2@4 f#2@34 ~@2 f#2@3]/4", B: "[~ c#2@4 f#2@3 ~ f#2@44 c#2@4 f#2@40 d#2@3 ~ d#2@3 ~ c#2@26 ~@13]/6",
C: "c#2", D: "f#2", E: "g2", F: "c#2@5 f2", G: "[g#2@10 d#2 g#2]/2", H: "[c#2@9 ~ c#2@12 ~@2]/2",
I: "c#2@5 ~ c#2@2 f2@2 f#2@2", J: "[g#2@10 g#2 d#2]/2", K: "c#2@4 ~ c#2", L: "f#2@5 a2", M: "b2@5 f#2",
N: "e2@4 e2 d#2", O: "c#2@5 e2", P: "f#2@4 f#2 a2", Q: "b2@15 ~ b2@4 a2@4", R: "g#2@11 ~", S: "g#2@15 ~ g#2@8",
T: "c#2@11 ~ c#2@4 f2@4 f#2@4", U: "[g#2@19 ~ g#2@2 d#2@2]/2", V: "[g#2@21 ~ g#2@2]/2", W: "c#2@5 c#2",
X: "f#2@4 a2 f#2", Y: "b2@4 b1 f#2", Z: "c#2@4 c#2!2", AA: "b2@15 ~ b2@4 b1@4", AB: "c#2@7 ~ c#2@4 c#2@4 f2@4 f#2@4",
AC: "f#2@5 d#2", AD: "[g#2@19 ~ g#2@2 g#2@2]/2", AE: "c#2!3", AF: "e2@19 ~ e2@4", AG: "a2@5 e2", AH: "a#2@5 e2",
AI: "b2 g#2 e2@2 c#2 e2", AJ: "b1@5 f#2", AK: "b2@2 b1 c#2 d#2 b1", AL: "a1@4 c#2 d#2",
AM: "e2@7 ~ c#2@4 d#2@4 e2@4 f#2@4", AN: "e2@5 g#2", AO: "a2@4 e2 c#2", AP: "a#2@4 e2 b1", AQ: "b2@4 b1 b2",
AR: "a2@16 a1@3 ~ a2@4", AS: "e2@2 e2!2 g2 g#2", AT: "a1@4 c3 c#3", AU: "d3 d2 d3", AV: "g2@15 ~ g2@4 f#2@4",
AW: "e2@4 b2@4 e3@8 e2@3 ~ g2@4", AX: "a1@4 c2 c#2", AY: "d2@4 a1 d2", AZ: "b1@7 ~ b1@8 b1@6 ~@2",
BA: "b1@4 f#1@4 b1@8 b1@7 ~", BB: "e2", BC: "a#2", BD: "e2@4 g#2 a2", BE: "b2", BF: "b1", BG: "a2",
BH: "e2@11 ~ e2@4 g#2@4 a2@4", BI: "b1@15 ~ b1@4 b2@4", BJ: "e2@3 e2 g#1 a1", BK: "[b1@49 a1@52 e1@75 ~@16]/8",
})).s("gm_acoustic_bass").gain(0.45)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
A B@2 C@2 B@2 D E@3 F@6 G@4 H I J K L@2 M N O@4 P@2 Q R S@2 T@2 U@2 V@2 W I J K X Y Z AA AB Y Z AC S@2 T@2 U@2 AD@2 W
I J K X Y Z AA AB Y Z AC ~@24 AE AF AG AH AI AJ AK AL AM AJ AK AN AO@2 AP@5 ~
>`.pickRestart({
A: "~@3 c4@4 g#3", B: "[~ c4@8 a#3@24 c4@15]/2", C: "[~ c#4@8 a#3@24 c4@12 g#3@3]/2", D: "~ c#4@8 a#3@15",
E: "[~@27 c#4@9 ~@18 g#4@14 c#3@4, ~@9 g#2@25 ~@2 g#2@33 ~@3, ~@13 c#3@23 ~@4 d#3@29 ~@3, ~@18 f3@17 ~@14 d#4@20 ~@3, ~@11 g#3@7 ~@4 [g#3,c4]@12 ~@2]/3", // G#
F: "[~@8 d#4@5 f4@8 ~@4 f3@5 c#3@6 g#3@7 ~@38 c#4@4 ~@17 d#4@26 ~@12 g#3@4, ~ g#3@20 g#2@44 g#2@11 ~ g#3@9 ~@7 f#3@35 [c#4,f4]@15 ~, ~@4 c#4@17 d#4@48 c#3@16 f#2@46 ~@13, ~@43 c4@30 f3@12 ~@4 c#3@41 ~@2 c#3@12, ~@61 c#2@25 ~@11 a3@33 ~@6 f3@8]/6", // C#
G: "[~ [c#4,f4]@8 f4@4 ~@17 c#4@4 ~@17 c#4@10 [g#2,d#3,g#3,c4]@35, ~@9 a#3@12 f3@12 ~ a#3@13 f#3@12 ~@37, ~@13 a#2@21 ~@4 f#2@26 ~@32, ~@13 c#4@13 a#3@7 ~ d#4@43 ~@19, ~@17 c#3@17 f#3@8 c#3@21 ~@33]/4", // C# G#
H: "f3@7 ~@9 c#4@8, g#3 ~@7 f3@16, ~ g#3", I: "a#3@2 ~ a#3 c#4@2, f#3@3 ~ f#3@8",
J: "g3@3 ~@3 a#3@2 c#4@4, e3, ~ g3@2", K: "[f3,g#3]@8 ~@8 c#4@3 ~ c#4@4, ~ f3@2, ~ g#3",
L: "[[d#3,c4]@8 ~@8 c4@16 ~@4 g#3@4 c4@7 ~, ~@8 d#3@21 ~@19, ~@6 g#3@8 ~@2 f#3@7 ~]/2", // Cm
M: "~@16 c4@5 ~@3, f#3@23 ~, d#4@2 ~, ~@12 g#3@11 ~", N: "[f3,g#3]@5 ~@5 c#4@2, c#4@2 g#3, ~ f3",
O: "[c#4@8 ~@8 c#4@16 ~@4 a#3@3 ~@5 a#3@4 g3@11 ~@13 g#3@8 ~@4 g#3@4 c#4@8, f3@2 ~@6 f3@17 ~@7 f#3@17 ~@11 g3@12 ~@8 f3@16, ~@12 g#3@13 ~@15 c#4@22 ~@2 c#4@16 ~@16]/4",
P: "[c4@2 ~ c4 ~@4 g#3 f#3 ~ c4, g#3@5 ~@3 g#3@22 ~@10 g#3@8, ~@4 d#4@7 ~]/2", Q: "~@5 c4, f#3, d#4@5 ~, ~@2 g#3",
R: "[f3,c#4]", S: "[~@2 a3@2 ~@4 g#4@8 [d#4,f#4]@7 ~, g#4@3 e4@5 ~@4, ~ c#4 ~@4]/2",
T: "[~@4 f#4@4 e4@3 d#4, f#4@3 d#4@8 ~, ~ g#3@3 ~@8, ~@2 b3@3 ~@7]/2",
U: "[~ g#3 a3 c#4 g#4@4 [d#4,f#4]@4, e4@11 ~@5]/2", V: "[~ g#4 [g#3,c4,f#4], ~ g#3@5 ~@6, ~ c4@2 ~@3, ~ d#4 ~@2]/2",
W: "[f3,g#3] ~ c#4, ~ f3@2, ~ g#3", X: "d#4@4 g#3@2 d#4@5 ~, g#3 ~@23", Y: "d#4@2 g#3 c4 d#4@2",
Z: "[f#3,c#4]@4 f#3@2 c#4@5 ~", AA: "[f3,c#4]@12 f3@4 g#3@4 c#4@3 ~", AB: "[g#3,d#4]@4 g#3@2 d#4@5 ~",
AC: "c#4@7 ~@5, f3@11 ~@13", AD: "[~ g#4 ~, ~ g#3@5 ~@6, ~ c4@2 ~@3, ~ d#4 ~@2]/2",
AE: "[g#3,b3]@8 g#3 ~@7 e4@8, ~ b3", AF: "c#4@8 ~@8 e4 ~@7, a3@3 ~ a3@8, ~ c#4",
AG: "a#3@6 ~@10 e4 ~@7, g3, ~ a#3@2, ~ c#4", AH: "[g#3,b3]@8 g#3 ~@7 e4@3 ~ e4@4, ~ b3",
AI: "f#4@4 b3@2 f#4@5 ~, b3 ~@23", AJ: "f#4@2 b3 d#4 f#4@2", AK: "[a3,e4]@4 a3@2 e4@5 ~",
AL: "[g#3,e4]@12 g#3@4 b3@4 e4@3 ~", AM: "[b3,f#4]@4 b3@2 f#4@5 ~", AN: "e4@7 ~@5, g#3@11 ~@13",
AO: "[~ f#4@45 ~@2, [b3,d#4]@47 ~]/2", // B
AP: "[~@2 e4@51 ~@3 e4@55 ~@9, a3@51 ~@2 g#3@58 ~@9, ~ c#4@51 ~@2 b3@57 ~@9]/5",
})).s("gm_acoustic_guitar_steel").gain(0.4).pan(0.4)
// chords · pad warm
const pad_warm = note("<~@8 A@8 B@5 C D E F@2 G@2 H C D E F@2 G@2 H ~@76 I@8>".pickRestart({
A: "[~@9 c#5@27 c5@34 ~@43 c5@20 g#4 ~@39 d#4@19, ~@9 g#4@124 c#4@41 ~@18, ~@78 f#4@17 ~]/8",
B: "[~@8 c#4@25 ~@52 c4@27 ~@8, ~@8 f4@50 d#4@55 ~@7, ~@33 a#3@53 ~@34]/5", C: "g#3", D: "a#3", E: "g3", F: "g#3/2",
G: "f#3/2", H: "f3", I: "[b3@24 a3@23 ~@10 b5@43 ~ [e3,e5]@76 ~@15, f#5@19 ~@45, ~@49 a3@53 ~@90]/8",
})).s("gm_pad_warm").gain(0.25).pan(0.1)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
~@21 A B C A D@2 B E A B C A D@2 B F G@2 H@2 I@2 J@5 K L@2 M N L@2 M O P@2 Q@2 R@2 S T U V@2 W@3 X Y@3 X Z AA@2 AB AC
AD AE AF AG@3 AB AC AD AE AH AI AJ@2 AK@2 AL@4 AM@3 AN AO@2 AP@2 AQ@4 AR@8
>`.pickRestart({
A: "c#2", B: "f#2", C: "g2", D: "g#2/2", E: "c#2@7 ~",
F: "~@16 [c#5,c#6] [d5,d6] [d#5,d#6] [e5,e6] [f5,f6] [f#5,f#6] [g5,g6]@2, c#2", // C# D D# E F F# G
G: "[f#2@5 a2 ~@2 [f#6,f#7]@2 [f#2,e6,e7]@2, [g#6,g#7]@2 ~, ~@3 b2@2 ~]/2", // F# F#7 G#
H: "[e2@5 d#2 ~@2 [e6,e7]@3 [e2,d#6,d#7], [f#6,f#7]@2 ~, ~@6 c#2@5 ~]/2", // E Emaj7 F#
I: "[f#2@5 a2 ~@2 [d#6,d#7]@3 [c#6,c#7], [e6,e7]@11 ~@5, ~ b2]/2", // D# C# E
J: "[[d#6,d#7]@31 f5 e5 d#5 d5 c#5 [b4,c5] a#4 a4 ~ [f#4,g4] f4 e4 d#4 [c#4,d4] c4 b3 ~ g#3@20 ~@4 f#2@24 g2@24, g#2@23 ~ c#2@12 ~@24, ~@39 g#4@2 ~@6 a#3@2 ~@19 c#4@52, ~@48 a3 ~@71]/5", // D# Cmaj7 Gmaj7 Dmaj7
K: "c#2@4 f2 f#2, g#4", L: "[g#2,g#3,c4]/2", M: "[f#2,f#3,a#3]", N: "c#2@4 f2 f#2, [c#3,g#3]",
O: "~@2 [c#5,c#6] [d#5,d#6] [e5,e6] [f#5,f#6], [c#2,c#3,g#3]", // C# D# E F# C#5
P: "[f#1@5 a1 ~@2 [f#5,f#6]@3 [e5,e6], [g#5,g#6]@2 ~, ~ b1]/2", // F# E G#
Q: "[e1@5 d#1 ~@2 [e5,e6]@3 [e1,d#5,d#6], [f#5,f#6]@2 ~, ~@6 c#1@5 ~]/2", // E Emaj7 F#
R: "[f#1@4 a1 f#1 ~@2 [d#5,d#6]@3 [c#5,c#6], [e5,e6]@2 ~, ~ b1]/2", S: "[g#1,d#5,d#6]", T: "[g#2,f#4,g#4]",
U: "c#2@5 f2, [g#3,g#4]", V: "[f#2 g2, [a#3,a#4]]/2", W: "[c#2@4 f2 f#2 g#2@10 g#1@2, [g#3,g#4]]/3",
X: "[f#1,a#3,a#4]", Y: "[c#1@4 f1 f#1 g#1@12, [g#3,g#4]]/3", Z: "[c#1,g#3,g#4]",
AA: "[e1@3 ~ [d#5,d#6] [c#5,c#6], [e5,e6]@2 ~, ~ a1]/2", AB: "[a#4,a#5]@2 [c#5,c#6], a#1",
AC: "b1 g#1 e1@2 c#1 e1, [b4,b5]@11 ~", AD: "[b0,b4,b5]", AE: "[b1,a4,a5]", AF: "[a1,c#5,c#6]",
AG: "[[b4,b5]@11 ~@17 [d#5,d#6]@4 [c#5,c#6]@4, e1@2 a1, ~@3 [e5,e6]@4 ~@2]/3", AH: "[a1,c#5,f#6]",
AI: "e1@4 g1 g#1, [b4,e6]@23 ~", AJ: "[a1@4 c2 c#2 ~@5 [e4,e6], [g4,g6]@31 f#6@13 ~@4, ~@3 d2@2 d1, ~@8 f#4@3 ~]/2",
AK: "[g1@20 f#1@4 ~@8 e4@11 ~ g1@4, [f#4,f#6]@31 e6@12 [d4,d6]@5, ~@6 e1@5 ~]/2", // F# D
AL: "[a1@16 c2@4 c#2@4 ~@4 [d4,d6]@15 ~ c4@3 ~ b1@24 [b0,a3]@24, [e4,e6]@29 ~@14 c6@4 b5@24 ~@25, ~@24 d2@24 b3@47 ~]/4", // D B7 E
AM: "[[e1,g#3,b3]@23 ~ a1@23 ~@21 d#5@2 c#5@2, ~@23 c#4@49, ~@23 a3@24 g3@25, ~@47 e5@21 ~@4, ~@2 a#1]/3", // E
AN: "e1@4 g#1 a1, [g#3,b3,b4]", AO: "[[b1,b3,b4] [b0,a3,a4], f#6]/2",
AP: "[[a1,a3]@6 e1@4 g#1 a1, e6@47 ~, ~@8 g#3@7 ~]/2", // A
AQ: "[[b1,b3]@6 b0@6 a1@6 e1@4 g#1 a1, f#6 e6, ~@24 a3@47 ~ g#3@24]/4", AR: "[b1@49 a1@52 [e1,b3,g#4,e6]@77 ~@14]/8",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.6)
// other · french horn
const french_horn = note(`<
~@21 A B C A ~ D@2 E A B C A ~ D@2 E F G H@2 I@2 J@2 ~@12 F G H@2 I@2 K L K L M N O@2 L K P@2 Q@2 K F M K R@2 F N K F
M K R@2 F S ~@28
>`.pickRestart({
A: "f3", B: "f#3", C: "e3", D: "f#4/2", E: "f4", F: "a3", G: "~ b3 a3", H: "[g#3@41 ~@3 g#3@4]/2",
I: "[a3@31 ~ b3@12 a3@4]/2", J: "[g#3@9 ~@7]/2", K: "g#3", L: "a#3", M: "g3", N: "g#3@23 ~", O: "c4/2", P: "d#4/2",
Q: "[c#4@11 ~]/2", R: "f#3/2", S: "g#3 ~@2",
})).s("gm_french_horn").gain(0.3).pan(0.7)
// chords · pad halo
const pad_halo = note("<A@8 ~@113>".pickRestart({
A: "[~@3 [d#3,g#3]@8 [c#3,f#3]@8 [d#3,g#3]@8 [c#3,f#3]@8 [d#3,g#3]@8 [c#3,f#3]@8 [d#3,g#3]@8 [c#3,f#3]@5]/8", // G#5 F#5 G#5 F#5 G#5 F#5 G#5 F#5
})).s("gm_pad_halo").gain(0.35)
// other · vibraphone
const vibraphone = note(`<
A B A C A B A C ~@29 D E F G H@2 I J ~@4 K L M ~ N O P Q D R F G H@2 I J ~@4 K L M ~ N O P ~ S@2 T U V@2 W X Y@2 Z AA
AB AC W AD AE AF AG AH AI AJ AK AL ~@4 AM AN AO ~ AP AQ AO ~ AR AS AT@5 ~
>`.pickRestart({
A: "~@9 c7@8 ~@7", B: "~@9 a#6@8 ~@7", C: "~ c#7@8 a#6@8 ~@7", D: "g#6", E: "~@8 f#6@5 ~@3 e6@5 ~@3", F: "f#6@23 ~",
G: "~@8 e6@11 ~ d#6@3 ~", H: "[e6@28 ~@4 d#6@11 ~ c#6@2 ~@2]/2",
I: "d#6@4 g#4@3 ~ c6@3 ~ d#5 ~@3 [g#5,g#6]@3 ~@5, ~@8 c5 ~@15", J: "~@8 [g#5,g#6]@2 ~@6 [g#5,g#6]@3 ~@5",
K: "[d#5,d#6]@2 ~@8 f6 ~, ~@20 f5 ~@3", L: "[f#5,f#6]@3 ~@5 [c5,c6]@4 ~@12", M: "[c#5,c#6] ~",
N: "[d#5,d#6]@3 ~@7 [f5,f6] ~", O: "[f#5,f#6]@4 ~@4 [c5,c6]@5 ~@11", P: "[c#5,c#6]@7 ~",
Q: "~@8 c#6@2 ~@2 d#6 ~@3 e6 ~@3 f#6 ~@3", R: "~@2 f#6@3 e6", S: "[[e6,e7]@31 ~ [d#6,d#7]@7 ~ [c#6,c#7]@7 ~]/2",
T: "[a#5,a#6]@2 [c#6,c#7]", U: "[b5,b6]@19 ~@5", V: "[[b4,b5]@22 [a4,a5]@21 ~@5]/2", W: "[c#5,c#6]@23 ~",
X: "[b4,b5]@17 ~@7", Y: "[[e6,e7]@28 ~@4 [d#6,d#7]@5 ~@3 [c#6,c#7]@4 ~@4]/2", Z: "[a#5,a#6]@3 ~ [c#6,c#7] ~",
AA: "b6@7 ~, b5@3 ~", AB: "[b4,b5]@23 ~", AC: "[a4,a5]@5 ~", AD: "[b4,b5]@2 ~",
AE: "[e5,e6]@7 ~ [c5,c6]@3 ~ [d5,d6]@2 ~@2 [e5,e6]@2 ~@2 [f#5,f#6]@3 ~", // E C D E F#
AF: "[g5,g6]@6 ~@2 [f#5,f#6]@11 ~ [e5,e6]@3 ~", // G F# E
AG: "[f#5,f#6]@7 ~ [b4,b5]@3 ~ [c5,c6]@3 ~ [d5,d6]@2 ~@2 e6@3 ~, ~@20 e5 ~@3", // F# B C D
AH: "[f#5,f#6]@6 ~@2 [e5,e6]@10 ~@2 [d5,d6]@3 ~", // F# E D
AI: "[e5,e6]@7 ~ [a4,a5]@2 ~@2 [b4,b5]@2 ~@2 [c5,c6]@2 ~@2 [d5,d6]@2 ~@2", // E A B C D
AJ: "[e5,e6]@6 ~@2 [d5,d6]@10 ~@2 c6@3 ~, ~@20 c5 ~@3", AK: "[b4,b5]@6 ~@2 [b4,d#5,b5]@5 ~@3 [b4,d#5,b5]@6 ~@2",
AL: "[d#5,b5]@6 ~@2 [d#5,b5,d#6]@5 ~@3 [d#5,b5,d#6]@6 ~@2", AM: "[f#5,f#6]@19 ~ [g#5,g#6]@3 ~",
AN: "[a5,a6]@4 [d#5,d#6]@7 ~", AO: "[e5,e6]", AP: "[f#5,f#6]@20 [g#5,g#6]@3 ~", AQ: "[a5,a6]@7 ~ [d#5,d#6]@14 ~@2",
AR: "[f#5,f#6]@9 ~ [g#5,g#6]@2", AS: "[a5,a6]@8 [d#5,d#6]@15 ~", AT: "[~ [e5,e6]@49 ~@3 [e5,e6]@53 ~@14]/5",
})).s("gm_vibraphone").gain(0.35).pan(0.3)
// chords · tremolo strings
const tremolo_strings = note("<~ A@2 B@2 A@4 ~@112>".pickRestart({
A: "[~@3 [c5,c#5]@8 ~@5]/2", B: "[~@3 [c5,c#5,f5]@8 ~@5]/2",
})).s("gm_tremolo_strings").gain(0.09)
// chords · vibraphone
const vibraphone_2 = note(`<
A B C D E F B C G H@2 I J@2 K@3 L M N O@2 P Q@2 R@2 P Q@2 R@2 P Q@2 R@2 P Q@2 R@2 P Q@2 S@2 P T@2 S@2 P T@2 S@2 P T@2
S@2 P T@2 S@2 P T@2 S@2 P T@2 U@2 P T@2 U@2 P T@2 U@2 P T@2 U@2 P T@2 U@2 P T@2 U@2 P T@2 U@2 P V@2 W@2 P X@2 Y@2 Z AA
AB AC
>`.pickRestart({
A: "~@11 c8 e7 g7 a7!2 g7 [g7,b7] c8 [f7,b7] ~ [e7,f7,a7] b7 g7, ~@13 f7@2 ~@9", // G Fdim Fmaj7
B: "b7 g7 c8 e7 b7 f7 b7 g7 a7 g7 ~ f7 [e7,b7] c8 [e7,b7] ~ [f7,g7,b7] ~ [g7,a7] a7 f7 ~ e7 c8, ~@10 b7@2 ~@9 b7@2 ~", // E5 G7 Gsus2
C: "c8 f7 b7 f7 a7 g7 [f7,a7] e7 ~@2 a7 f7 c8 [g7,c8] b7 ~ [f7,b7] f7 a7 ~ g7 [f7,a7] ~ g7, ~@4 g7 ~@7, ~@9 e7@2 ~@8 e7@2 ~@3", // F C5 Fdim F
D: "[g7,b7] b7 ~ f7 a7 [f7,b7] ~ g7 c8 ~ [e7,c8] f7 b7 f7 [g7,b7] a7 ~ [g7,a7] ~ b7 ~ e7 c8 [e7,c8], ~@3 f7 ~@5 f7 ~@2", // G Fdim C G Gsus2 C
E: "f7@2 b7 a7 ~ [g7,a7] [f7,b7] f7 ~ f7 b7 g7 a7 ~ [g7,b7] e7 c8 e7 [f7,b7] a7 ~ a7@2 [g7,b7], ~ g7 ~@2 c8 ~@5 g7 ~", // Gsus2 Fdim G Fdim G
F: "[f7,c8] e7 f7@2 b7 g7@2 a7 f7 c8 ~ c8 e7 g7 a7!2 g7 [g7,b7] c8 [f7,b7] ~ [e7,f7,a7] b7 g7, ~@2 c8 ~@10 f7@2 ~@9", // F5 G Fdim Fmaj7
G: "[g7,b7] b7 ~ f7 a7 [f7,b7] ~ g7 c8 ~ [e7,c8] f7 b7 ~ [g7,b7] a7 ~ g7 f7@2 b7 e7 ~ c8, ~@6 f7@2 ~@5 f7@2 ~@3 a7 ~@5", // G Fdim C G
H: "[[e7,c8]@2 ~ b7 ~ a7@2 [g7,a7] ~ b7 f7!2 b7 ~ g7 a7 g7 b7 e7 c8 ~ b7 f7 g7@2 ~ b7@2 f7@2 e7 f7@3 ~ g7@3 ~ a7@2 f7@2 ~ c8 ~ c8 ~, ~@2 f7@2 g7@2 ~@2 f7@2 ~ c8@2 ~@7 e7@2 ~ a7 ~ a7@2 ~ c8 ~@2 c8 ~@2 b7@2 ~@12, ~@26 g7 ~@21]/2", // C Gsus2
I: "e7 g7 a7 g7 [g7,b7] c8 [f7,b7] ~ [e7,a7] f7 [g7,b7] b7 ~ g7 ~ e7 ~ f7 ~ [g7,b7] a7 g7 ~ f7, f7 ~@6 c8 b7 ~@2 b7", // G Fdim A5 G
J: "[b7 [e7,c8] e7 b7 [f7,b7] g7 ~ [g7,a7]@2 a7 ~ b7@2 ~ c8!2 ~@3 f7@2 a7@2 a7 f7@2 ~@5 c8 g7 c8 b7 [f7,b7] f7 a7 ~@2 [f7,g7] a7 ~ g7!2 b7 f7 a7, ~@10 f7@2 ~ e7@2 ~@2 f7@2 ~@4 g7@2 ~ e7@2 e7@2 f7@2 ~@7 e7@2 ~@7, ~@18 b7@2 ~@7 g7@2 a7@2 ~@12 b7@2 ~@3]/2", // C Fdim Gsus2 Fdim Fsus2
K: "[~ [f7,b7] ~ g7 c8 ~ [e7,c8] [f7,b7] ~ f7 [g7,b7] a7 g7 a7 ~ b7 e7 c8 e7 c8 ~ b7 ~ a7@2 [g7,a7] b7 f7 ~ f7 b7@2 ~ a7@2 b7@2 ~ c8 e7@2 f7 a7 g7@2 a7@2 ~@2 c8 ~@2 f7@3 b7 g7@2 a7 f7 c8 ~ c8 e7 ~ [g7,a7] a7 g7 [g7,b7] c8 f7 b7, ~@2 f7@2 ~@10 f7@2 ~@4 f7@2 g7@2 ~ f7@2 ~@2 c8@2 ~ g7@2 ~ g7 ~ e7@2 ~@2 b7@2 ~@4 [g7,b7]@2 ~@23, ~@48 f7@2 ~ [e7,c8]@2 ~@11 f7@2 ~@6]/3", // Fdim C Fdim G Gsus2 G C
L: "[e7,a7] f7 [g7,b7] ~ b7 g7 c8 e7 b7 f7 b7 g7 a7 b7@2 f7 [e7,b7] c8 [e7,b7] ~ [f7,b7] g7 a7!2, ~@13 g7 ~@8 g7@2", // A5 G E5 Fdim
M: "f7 ~ e7 c8!2 ~ [f7,b7] f7 a7 ~ [g7,a7] f7 e7 ~@2 a7 ~ c8 [g7,c8] ~ b7 f7!2 a7, ~ b7@2 ~@10 g7@2 ~@6 b7@2 ~, ~@7 e7 f7 ~@3", // Fdim Gsus2 C5
N: "~@2 [f7,g7] a7@2 g7 ~ g7 b7 ~ f7 a7@2 b7@2 ~@2 c8@2 ~ c8 f7 b7@2, ~ e7@2 ~@3 b7@2 ~@5 f7 ~ f7@2 ~@3 e7@2 ~@2, ~@8 g7 ~@3", // Fsus2
O: "[f7@2 b7 a7@2 ~@2 f7@2 b7@2 e7@2 c8 [e7,c8] ~ b7 ~ a7 ~ [f7,g7,a7] b7 f7 c8@2 b7 g7 a7 g7 b7 e7 [e7,c8] ~ [f7,b7] a7 ~@2 [g7,b7] f7 c8 e7 f7@2 b7 g7@2 a7 f7, ~@2 g7@2 ~@2 [g7,a7]@2 ~@7 f7@2 g7@2 ~@4 f7 ~@11 g7@2 ~@11, ~@36 a7@2 ~@3 c8 ~@6]/2", // C F C Fdim G Gsus2
P: "c8 ~ c8 e7 g7 a7!2 g7 [g7,b7] [f7,c8] b7 e7 [f7,a7] b7 g7 b7 g7 c8 e7 b7 f7 b7 g7 a7, ~@2 f7 ~@9", // G F5 F
Q: "[g7 f7 ~ [e7,b7] c8 [e7,b7] ~ [f7,g7,b7] a7 g7 a7 f7 ~ e7 c8!2 f7 [f7,b7] a7 ~ [g7,a7] f7 e7 ~ e7@2 f7 c8 [g7,c8] b7 ~ [f7,b7] f7 a7 ~ [f7,g7] a7 ~ g7 [g7,b7] b7 ~ f7 a7 [f7,b7] ~ g7 c8, b7@2 ~@10 b7@2 ~@9 g7@2 ~@9 e7@2 ~@9 f7@2 ~, ~@24 a7 ~@23]/2", // E5 G7 Fdim Gsus2 C5 Fdim Fsus2 G …
R: "[~ [e7,c8] f7 b7 f7 [g7,b7] a7 ~ [g7,a7] ~ b7 e7 ~ c8 [e7,c8] ~ b7 ~ a7 ~ [f7,g7,a7] b7 f7 c8@2 b7 g7 a7 g7 b7 e7 [e7,c8] ~ [f7,b7] a7 ~@2 [g7,b7] f7 c8 e7 f7@2 b7 g7@2 a7 f7, ~@9 f7@2 ~@4 f7@2 g7@2 ~@4 f7 ~@11 g7@2 ~@11, ~@36 a7@2 ~@3 c8 ~@6]/2", // C G Gsus2 C F C Fdim G
S: "[~ [e7,c8] f7 b7 f7 [g7,b7] a7 ~ [g7,a7] ~ b7 e7 ~ c8 [e7,c8] ~ b7 ~ a7 ~ [f7,g7,a7] b7 f7 c8@2 b7 g7 a7 g7 b7 e7 [e7,c8] ~ [f7,b7] a7 ~@2 [g7,b7] f7 c8 e7 f7@2 b7 g7@2 [f7,a7] ~, ~@9 f7@2 ~@4 f7@2 g7@2 ~@4 f7 ~@11 g7@2 ~@11, ~@36 a7@2 ~@3 c8 ~@6]/2", // C G Gsus2 C F C Fdim G …
T: "[g7 f7 ~ [e7,b7] c8 [e7,b7] ~ [f7,g7,b7] a7 g7 a7 f7 ~ e7 c8!2 f7 [f7,b7] a7 ~ [g7,a7] f7 e7 ~ a7 f7 ~ c8 [g7,c8] b7 ~ [f7,b7] f7 a7 ~ [f7,g7] a7 ~ g7 [g7,b7] b7 ~ f7 a7 [f7,b7] ~ g7 c8, b7@2 ~@10 b7@2 ~@9 g7@2 ~@23, ~@24 e7@2 ~@8 e7@2 ~@9 f7@2 ~]/2", // E5 G7 Fdim Gsus2 C5 Fdim Fsus2 G …
U: "[~ [e7,c8] f7 b7 f7 [g7,b7] a7 ~ [g7,a7] ~ b7 e7 ~ c8 [e7,c8] ~ b7 ~ a7 ~ [f7,g7,a7] b7 f7 c8@2 b7 g7 a7 g7 b7 e7 [e7,c8] ~ [f7,b7] a7 ~@2 [g7,b7] f7 c8 e7 f7@2 g7@2 ~ [f7,a7] ~, ~@9 f7@2 ~@4 f7@2 g7@2 ~@4 f7 ~@11 g7@2 ~@11, ~@36 a7@2 ~@3 c8 ~ b7 ~@4]/2", // C G Gsus2 C F C Fdim G …
V: "[g7 f7 ~ [e7,b7] [e7,c8] b7 ~ [f7,g7,b7] a7 g7 a7 f7 ~ e7 c8!2 f7 [f7,b7] a7 ~ [g7,a7] f7 e7 ~ a7 f7 ~ [g7,c8] c8 b7 ~ [f7,b7] f7 a7 ~ [f7,g7] a7 ~ g7 [g7,b7] b7 ~ [f7,a7] ~ [f7,b7] ~ g7 c8, b7@2 ~@10 b7@2 ~@9 g7@2 ~@23, ~@24 e7@2 ~@8 e7@2 ~@9 f7@2 ~]/2", // E5 C G7 Fdim Gsus2 C5 Fdim Fsus2 …
W: "[~ [e7,c8] [f7,b7] ~ f7 [g7,b7] a7 ~ [g7,a7] ~ b7 e7 ~ c8 [e7,c8] ~ b7 ~ a7 ~ [f7,g7,a7] b7 f7 c8@2 b7 g7 a7 g7 b7 e7 [e7,c8] ~ [f7,b7] a7 ~@2 [g7,b7] f7 c8 e7 f7@2 g7@2 ~ [f7,a7] ~, ~@9 f7@2 ~@4 f7@2 g7@2 ~@4 f7 ~@11 g7@2 ~@11, ~@36 a7@2 ~@3 c8 ~ b7 ~@4]/2", // C Fdim G Gsus2 C F C Fdim …
X: "[g7 f7 ~ [e7,b7] [e7,c8] b7 ~ [f7,g7,b7] a7 g7 a7 f7 ~ e7 c8!2 f7 [f7,b7] a7 ~ [g7,a7] f7 e7 ~ e7@2 f7 c8 [g7,c8] b7 ~ f7!2 a7 ~ g7 [f7,a7] ~ g7 b7@2 b7 f7 a7 f7 ~@2 g7, b7@2 ~@10 b7@2 ~@9 g7@2 ~@9 e7@2 ~@3 g7 ~@6 f7@2, ~@24 a7 ~@6 b7@2 ~@12 b7@2 ~]/2", // E5 C G7 Fdim Gsus2 C5 F
Y: "[c8 ~ [e7,c8] [f7,b7] ~@2 [g7,b7] a7 ~ [g7,a7] f7@2 b7 e7 c8 e7 ~@2 b7 ~ a7@2 [g7,a7] ~ b7 f7!2 b7@2 ~ a7 g7 b7 e7 c8 e7 b7 f7 g7@2 ~ [g7,b7] f7 c8 e7 f7@2 ~, ~@5 f7@2 ~@9 c8@2 ~@8 c8@2 ~@17 c8 ~@2, ~@17 f7@2 g7@2 ~@2 f7@2 ~@4 g7@2 ~@7 a7 ~ a7@2 ~@6]/2", // C Fdim G Gsus2 G
Z: "g7@2 a7 f7 ~ c8 ~ c8 e7 g7 a7!2 g7 b7 [g7,c8] f7 b7 e7 [f7,a7] b7 g7 b7 ~ g7, b7 ~@8 f7@2 ~@13", // C5 F
AA: "c8 e7 b7 f7 b7 g7 a7 g7 ~ f7 [e7,b7] c8 e7 b7 [f7,b7] g7 a7 ~ a7 f7 ~ e7 c8!2, ~@8 b7@2 ~@7 g7@2 ~ b7@2 ~@2", // E5 Fdim
AB: "f7 [f7,b7] a7 ~ [g7,a7] f7 e7 ~@2 a7 f7 c8 [g7,c8] b7 ~ [f7,b7] f7 a7 ~ [f7,g7] a7 ~ g7 [g7,b7], ~@7 g7@2 ~@15, ~@4 e7 ~@4 e7 ~@2", // Fdim Gsus2 C5 Fdim Fsus2 G
AC: "b7 ~ f7 a7 [f7,b7] ~ g7 c8 ~@16, ~@5 f7@2 ~@17", // Fdim
})).s("gm_vibraphone").gain(0.24)
// other · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
A B@2 C D E F G H ~@30 I J K L M N ~@14 I J K L M N ~@12 O@2 K O ~@4 O@2 K O ~@32
>`.pickRestart({
A: "~@13 d#5!2 ~ d#5!3 ~ d#5!3 ~", B: "d#5!4 ~ d#5!5 ~ d#5!4 ~ d#5!3 ~ d#5!3 ~",
C: "d#5!4 ~ d#5!5 ~ d#5!4 ~ d#5 f#5!2 ~ f#5!3 ~", D: "f#5!4 ~ f#5 f5!3 d#5 ~ d#5!4 ~ d#5!3 ~ d#5!3 ~",
E: "d#5!4 ~ d#5!5 ~ d#5!4 ~ d#5 c#5!2 ~ c#5!3 ~", F: "c#5!2 d#5!2 ~ d#5!2 c#5!2 c5 ~ c5!4 ~ c5!3 ~ c5!3 ~",
G: "c5!4 ~ c5!4 a#4 ~ a#4!4 ~ a#4!3 ~ a#4!3 ~", H: "a#4!4 ~ a#4!4 ~@15", I: "~@20 b4@3 ~",
J: "c#5!2 ~ c#5!3 ~ c#5!3 ~ c#5!3 ~ c#5!3 ~ c#5 b4!2 ~ b4", K: "c#5!2 ~ c#5!3 ~ c#5!3 ~ c#5!3 ~ c#5!3 ~ c#5!3 ~ c#5",
L: "c#5!2 ~ c#5 b4!2 ~ b4!3 ~ b4!3 ~ b4!3 ~ b4 a4!2 ~ a4", M: "g#4!2 ~ g#4!3 ~ g#4!3 ~ g#4!3 ~ g#4!3 ~ g#4!3 ~ g#4",
N: "g#4@5 ~@19", O: "e5!2 ~ e5!3 ~ e5!3 ~ e5!3 ~ e5!3 ~ e5!3 ~ e5",
})).s("gm_acoustic_guitar_steel").gain(0.06).pan(0.3)
// other · orchestral harp
const orchestral_harp = note("<~ A B C D E F G@2 ~@112>".pickRestart({
A: "~@17 g#4 ~ c5 d#5 g#5 d#5@2", B: "c5 g#4 ~ c5 d#5 g#5 ~ d#5 c5 g#4 ~ c5 d#5 ~ g#5 d#5 c5 g#4@2 c5 d#5 g#5 d#5 ~",
C: "c5 g#4 ~ c5 d#5 g#5 d#5@2 c5 g#4@2 ~ d#5 g#5 d#5 ~ c5 g#4@2 c5 ~ d#5 g#5 d#5, ~@11 c5@2 ~@11",
D: "c5 g#4@2 c5 ~ [d#5,g#5] ~@18", E: "~@14 g#4 a#4 c5 c#5 ~ d#5 g#5 d#5 c#5 ~",
F: "c5 a#4 g#4 g#5 ~ d#5 c#5 c5 a#4 g#4 ~ g#5 d#5 c#5 c5 a#4 g#4 ~ g#5 d#5 c#5 ~ c5 a#4",
G: "[g#4 g#5 ~ d#5 c#5 c5 ~ a#4 g#4 g#5 d#5 c#5 ~ c5 a#4 g#4 ~ g#5 d#5 c#5 ~ c5 a#4 g#4@2 ~@23]/2",
// … 140 more lines
More by Patsy Cline
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.