0:00/0:00
// Stormy Blues — Holiday Billie
// 174 bpm, 6/8, key G 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 391 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(174/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, A@4 for four bars: edit a riff to change every repeat.
// bass · electric bass finger · "BASS"
const bass = note(`<
~@2 A B C D E F G H I J K@2 L@2 M@2 N@2 O@2 P Q R@2 S@2 T U V@2 W X Y@2 Z@2 AA@2 AB@2 AC@2 AD@2 AC@2 AE@2 A B C D E F
G H I J K@2 L@2 AF@2 N@2 O@2 P Q R@2 S@2 T U V@2 W X Y@2 Z@2 AA@2 AB@2 AC@2 AD@2 AC@2 AE@2 A B C D E F G H I J K@2 L@2
AF@2 N@2 O@2 P Q R@2 S@2 T U V@2 W X Y@2 Z@2 AA@2 AB@2 AC@2 AD@2 AC@2 AE@2 A B C D E F G H I J K@2 L@2 AF@2 N@2 O@2 P
Q R@2 S@2 T U V@2 W X Y@2 Z@2 AA@2 AB@2 AC@2 AD@2 AC@2 AE@2 A B C D E F G H I J K@2 L@2 AF@2 N@2 O@2 P Q R@2 S@2 T U
V@2 W X Y@2 Z@2 AA@2 AB@2 AC@2 AD@2 AC@2 AE@2 A B C D E F G H I J K@2 L@2 AF@2 N@2 O@2 P Q R@2 S@2 T U V@2 W X Y@2 Z@2
AA@2 AB@2 AC@2 AD@2 AC@2 AE@2 AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AK AL AM AN AW AL AM AX AY AZ BA BB BC
BD BE BF BG BH BI BJ BK BL BM BN AC@2 AD@2 AC@2 AE@2 A B C D E F G H I J K@2 L@2 AF@2 N@2 O@2 P Q R@2 S@2 T U V@2 BO@8
~@2 I BP BQ BR BS BT@4 ~@4
>`.pickRestart({
A: "g1@8 ~@3 g1@5", B: "e2@8 ~@3 e2@5", C: "d2@5 e2@6 g1@5", D: "g2@10 ~ g1@5", E: "c2@4 ~@7 c2@5",
F: "a#1@5 ~@6 a#1@5", G: "a1@7 ~@4 a1@5", H: "g1@4 ~ c2@5 ~ e2@5", I: "g1@4 ~@7 g1@5", J: "e2@5 d2@5 ~ e2@4 ~",
K: "[g#1@10 ~ g#1@8 g#2@6 ~@2 g#1@5]/2", L: "[g1@5 ~@6 g1@10 g2@5 ~ d2@5]/2", M: "[g1@8 ~@3 g1@9 ~ g1@6 ~@5]/2",
N: "[c2@19 ~@2 a#1@5 ~ g1@5]/2", O: "[c2@19 ~@2 g1@4 ~@2 a#1@3 ~@2]/2", P: "c2@15 ~", Q: "c2@5 a#1@5 ~ g1@5",
R: "[c2@19 ~@2 d2@5 ~ c2@3 ~@2]/2", S: "[g1@21 g2@5 ~ g1@4 ~]/2", T: "a1", U: "a2@10 ~ a1@4 ~",
V: "[b1@19 ~@2 b1@5 ~ b2@5]/2", W: "a#1", X: "a#2@5 a#1@6 ~@5", Y: "[d2@20 ~ d2@6 a1@5]/2", Z: "[d2@20 ~ d2@9 ~@2]/2",
AA: "[d#2@20 ~ d#2@9 ~@2]/2", AB: "[d#2@23 ~@9]/2", AC: "[g1@5 g2@16 g1@5 ~ g2@4 ~]/2",
AD: "[c2@19 ~@2 e2@5 ~ c2@5]/2", AE: "[d2@7 ~]/2", AF: "[~@5 g2 ~@5 g1@9 ~ g1@6 ~@5, g1 ~@3]/2", AG: "g2@5 f2@6 e2@5",
AH: "d2@5 c2@5 ~ a#1@5", AI: "a1@5 f1@5 ~ g1@5", AJ: "a1@5 a#1@5 ~ c2@4 ~", AK: "c2@4 ~ e2@5 ~ g2@4 ~",
AL: "a#2@5 a2@5 ~ g2@5", AM: "f2@5 d#2@5 ~ d2@5", AN: "c2@5 a1@5 ~ a#1@4 ~", AO: "g1@5 d2@4 ~@2 e2@4 ~",
AP: "g2@5 e2@5 ~ g1@5", AQ: "g#1@5 d#2@5 ~ g#2@5", AR: "~@5 g#1@6 g#2@4 ~, d#2@7 ~@9", AS: "g1@5 b1@5 ~ c2@5",
AT: "d2@5 c2@5 ~ b1@5", AU: "g1@5 a2@6 g1@5", AV: "g2@5 f2@5 ~ e2@3 ~@2", AW: "c2@5 e2@6 g2@5",
AX: "c2@5 a#1@6 a1@4 ~", AY: "g1@5 b1@5 ~ d2@5", AZ: "g2@5 d2@5 ~ b1@4 ~", BA: "a1@5 c2@5 ~ e2@5",
BB: "a2@5 e2@5 ~ c2@4 ~", BC: "b1@5 d2@6 f#2@5", BD: "a2@5 f#2@5 ~ d2@4 ~", BE: "a#1@3 a1@2 a#1@5 ~ a1@5",
BF: "g1@5 a1@5 ~ g1@3 ~@2", BG: "d2@5 d1@5 ~ a1@5", BH: "b1@5 c2@4 ~@2 d2@4 ~", BI: "e2@5 f#2@4 ~@2 g2@5",
BJ: "a2@4 ~ g2@4 ~@2 f#2@3 ~@2", BK: "d#2@5 a#1@6 g1@5", BL: "d#1@5 g1@5 ~ a#1@3 ~@2", BM: "c2@5 d2@5 ~ d#2@4 ~",
BN: "d#2@5 a#1@5 ~ d#1@4 ~",
BO: "[a#2@5 f2@5 ~@22 d2@4 ~@12 d2@4 ~@12 d2@4 ~@12 d2@12 ~@4 d#2@4 ~@28, ~@11 a#1@117]/8", BP: "b1@5 d2@5 ~ g2@5",
BQ: "c2@2 ~@3 c2@4 ~@2 c2@5", BR: "e2@5 g2@6 e2@4 ~", BS: "g1@6 ~@5 g1@5", BT: "[c2@8 ~ g1@52 ~@3]/4",
})).s("gm_electric_bass_finger").gain(0.59).pan(0.6)
// chords · piano
const piano = note(`<
~@2 A@4 B@3 C D@2 E@2 F@2 G@2 H@4 I@4 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 A@4 B@3 C D@2 E@2 F@2 V@2 H@4
I@4 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 A@4 B@3 C D@2 E@2 F@2 V@2 H@4 I@4 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q@2
R@2 S@2 T@2 U@2 A@4 B@3 C D@2 E@2 F@2 V@2 H@4 I@4 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 A@4 B@3 C D@2 E@2
F@2 V@2 H@4 I@4 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 A@4 B@3 C D@2 E@2 F@2 V@2 H@4 I@4 J@2 K@2 L@2 M@2 N@2
O@2 P@2 Q@2 R@2 S@2 T@2 U@2 W X Y X Z AA AB AC AD AE AF AG AH AI AJ AK Z AA AB AC Z AA AB AC AL@2 AM@2 AN@2 AO@2 AP AQ
AR AS AT@2 AU AV R@2 S@2 T@2 U@2 A@4 B@3 C D@2 E@2 F@2 V@2 H@4 I@4 J@2 K@2 L@2 AW@2 AX@3 AY AZ ~@3 BA BB BC@2 BD BE@8
>`.pickRestart({
A: "[[g2,b3,d4]@50 ~@3 f3@10 ~, f3@23 ~@9]/4", B: "[[g3,c4,e4]@23 ~]/3", C: "~@5 [g3,a#3,e4]@5 ~@6",
D: "[[g3,b3,d4]@21 [g3,b3,d4]@10 ~, g2]/2", E: "[[g#3,c4,d#4]@21 g#3@5 ~ g#3@5, g#2@31 ~, ~@21 [c4,d#4]@10 ~]/2",
F: "[~@11 b3@5 g3@11 g3@5, g2, ~@5 g3@11 [b3,d4]@16]/2", // Bm
G: "[~@11 [f3,b3,d4]@5 [f3,b3,d4]@5 [f3,b3,d4]@5 ~ [f3,b3,d4]@2 ~@3, g2@29 ~@3]/2", // Bdim
H: "[~@48 c3@5 g3@3 ~@3 [g3,a#3]@2 ~@3, [g3,a#3,c4,e4]@52 ~@7 [c4,e4] ~@4]/4", // Gm C7 C
I: "[c3@46 ~@7 c3@6 [g3,a#3,c4,e4]@2 ~@3, [g3,a#3,c4,e4]@7 ~]/4", // C7
J: "[[g3,d4]@21 d4@5 ~ [b3,d4]@5, g2, b3@27 ~@5, ~@21 g3@11]/2", // G5 Bm
K: "[[a3,c4,e4]@11 [a3,c4,e4]@10 [a3,c4,e4]@11, a2]/2", L: "[~@21 [b3,d4,f#4]@10 ~, [b3,d4,f#4]@21 ~@11, ~ b2]/2",
M: "[~@27 a#3@3 ~@2, a#2@29 ~@3, ~@5 a#3@21 ~@6, ~@11 d4@10 d4@8 ~@3, ~@16 f4@13 ~@3]/2",
N: "[a3@21 ~@6 c4@5, [e4,g4], c4@27 ~@5, a2@7 ~@14 a3@11]/2", O: "[a3,c4,e4,g4]", P: "[g3,c4,d#4,g4]/2",
Q: "[g3@21 g3@6 c4@2 ~@3, [c4,d#4,g4]@7 ~]/2", // Cm
R: "[~@5 g3@16 ~@6 b3@5, g2, ~@5 d4@26 ~, ~@5 b3@21 ~@6, ~@21 g3@10 ~]/2", S: "[~ a#3, c3, ~@5 [g3,c4]@26 ~]/2",
T: "[~@21 d4@6 ~@5, g2@27 ~@5, ~@5 g3@22 ~@5, ~@16 b3@11 ~@5]/2",
U: "[~@16 d4@11 ~@5, d3@7 ~, ~@5 f#3@22 ~@5, ~@11 a#3@16 ~@5]/2",
V: "[~@5 [g4,d5,f5] ~@5 [f3,b3,d4]@5 [f3,b3,d4]@5 [f3,b3,d4]@5 ~ [f3,b3,d4]@2 ~@3, g2@29 ~@3]/2", // G7 Bdim
W: "[g2,d3]@3 [f3,a3] ~@10 d3 ~, [f3,a3] ~@7", X: "a3@2 ~ a3@2 ~@11, f3 ~@2 f3 ~@12",
Y: "[f3,a3]@2 ~ [f3,a3]@2 ~@9 g2 ~, g2@3 ~@13", Z: "[c3,g3]@3 [g3,a#3]@2 ~@11, a#3 ~@7",
AA: "[g3,a#3]@2 ~ [g3,a#3]@2 ~@9 c3 ~", AB: "[g3,a#3]@2 ~ a#3@2 ~@11, ~@3 g3 ~@12",
AC: "[g3,a#3]@2 ~ g3@2 ~@11, c3@3 a#3 ~@12", AD: "[f3,a3]@2 ~ a3@2 ~@4 g2 ~@6, g2@3 f3 ~@12",
AE: "[g2,a3]@2 ~ [g2,a3]@2 ~@11, f3 ~@2 f3 ~@12", AF: "[f#3,a#3]@2 ~ [f#3,a#3]@2 ~@9 g#2 ~, g#2@3 ~@13",
AG: "[f#3,a#3]@2 ~ [f#3,a#3]@2 ~@11", AH: "[f3,a3]@2 ~ a3@2 ~@11, g2@3 f3 ~@12",
AI: "[g2,a3]@2 ~ [f3,a3]@2 ~@11, f3 ~@15", AJ: "[g2,f3,a3]@7 ~", AK: "[g2,f3,a3]@2 ~@3 [f3,a3]@2 ~@9",
AL: "[g2@3 [g3,b3] ~@5 g2@2 [g3,b3,d4]@16 ~@5, ~@3 d4@2 ~@27]/2", // G
AM: "[a2@3 [a3,c4,e4] ~@3 a2 ~@3 [a3,c4,e4]@16 ~@5]/2", // Am
AN: "[~@3 [b2,a3,d4,f#4] ~@7 [b2,d4,f#4]@14 ~@7, ~@11 a3@12 ~@9]/2", // Bm7 Bm
AO: "[~@3 [d4,f4]@2 a#3@2 ~@4 [a#2,a#3,d4,f4]@16 ~@5, ~@3 a#2 ~@28]/2", AP: "~@5 [a3,d4,e4,a4] ~@10",
AQ: "~@5 [a3,d4,e4,a4]@11", AR: "~@5 [a3,d4,e4,a4] ~@8 e3 ~",
AS: "[a3,d4,e4] ~@2 e3 ~ [a3,d4,e4,a4]@4 ~@2 [a3,d4,e4,a4] ~@4, a4 ~@7", // Asus4
AT: "[[d#3,g3]@3 [a#3,d#4] ~@17 g3 ~@5 [a#3,g4] ~@4, ~@3 g4@2 ~@4 d#3@14 ~@9, ~@11 [a#3,d#4,g4]@12 ~@4 d4@2 ~@3]/2", // D# D#5 D#
AU: "~@3 g3 ~@5 d#3 ~ [a#3,g4] ~@4, [d#3,a#3,d4,g4]@5 ~@6 d#4@2 ~@3", AV: "[d#3,a#3,d#4,g4]@5 ~@3",
AW: "[[c#4,f4]@15 ~@6 [g#3,a#3]@6 f4@2 ~@3, [g#3,a#3]@9 ~@7, ~@16 [c#4,f4]@9 ~@2 c#4 ~@4]/2", AX: "[d3,c4,e4,g4] ~@3",
AY: "[d3,c4,g4]@9 ~@7, e4@7 ~@9", AZ: "[d#2,c4,d#4,g4] ~@3", BA: "[g2,g3,b3,d4]@2 ~@9 [g3,b3,d4]@3 ~@2, ~@11 g2@5",
BB: "~@5 g2@4 ~@2 [g3,b3,d4]@3 ~@2, [g3,c4,e4]@7 ~@9", // G C
BC: "[c3@5 [g3,a#3,d4]@2 ~@9 c3@4 ~ [g3,a#3,d4]@2 ~@4 [g3,a#3,d4]@3 ~@2, ~@11 [g3,a#3,d4]@8 ~@13]/2", // Gm
BD: "[g2,g3,b3] ~@3", // G
BE: "[g#3@9 ~@19 [b3,d4]@2 ~@3 [b3,d4]@4 ~@54 [d6,f6]@23 ~@14, g#2@2 ~@7 g3@28 b3@20 b4@19 d5@32 ~@20, ~@9 [b3,d4]@11 ~ f3@2 [f3,b3,d4]@3 [f3,b3,d4]@2 f3@9 d4@3 g3@3 d4@18 d5@5 [g3,g5]@32 ~@30, ~@9 g2@9 g2@4 g2@4 ~ g2@3 g2@16 g4@24 d4@32 ~@26, ~@15 d3@5 [d3,b3,d4]@4 d3@4 d3@3 [b3,d4] d3@17 b4@3 g3@2 f4@17 f5@32 ~@25]/8", // Bm Dm Bm Bdim G Bm
})).s("gm_piano").gain(0.48).pan(0.8)
// chords · overdriven guitar · "LEAD GUIT"
const overdriven_guitar = note(`<
A@2 ~ B@3 ~ C@3 ~ D E@2 F@5 G@4 H@3 I@2 J@2 K@2 L@2 M@3 N ~ O@3 ~ P ~@2 Q R S@2 ~ B@3 ~ C@3 ~ D E@2 T@2 ~@5 U V@2 W@2
X@2 J@2 K@2 L@2 M@3 N ~ O@3 ~ P ~@2 Q R S@2 ~ B@3 ~ C@3 ~ D E@2 T@2 ~@5 U V@2 W@2 X@2 J@2 K@2 L@2 M@3 N ~ O@3 ~ P ~@2
Q R S@2 Y@2 ~@3 C@3 ~ D E@2 T@2 ~@5 U V@2 W@2 X@2 J@2 K@2 L@2 M@3 N ~ O@3 ~ P ~@2 Q R S@2 ~ Z@3 ~ AA AB AC AD AE AF AG
AF AH AI AJ AK@4 AL AM AN@2 AO AP AQ AR AS@2 AT AU AV@2 AW AX AY@2 AL AZ BA BB BC BD BE BF BG@2 BH BI BJ BK BL@2 BM@2
BN@2 BO BP BQ BR BS@2 BT BU BV@2 AJ BW BX BY BZ CA CB@2 CC CD CE CF CG@2 CH@2 CI@2 CJ@2 CK@2 CL CM CN@2 CO ~@2 CP ~ CP
~ CQ ~ CQ CR CS CT CU CP CV@2 CW ~@8 CX@2 CY@2 CZ DA DB@2 DC@3 DD DE DF ~ DE ~ P ~@2 Q R S@2 ~ B@3 ~ C@3 ~ D E@2 T@2
~@5 U V@2 W@2 X@2 J@2 K@2 DG@2 DH DI@3 DJ ~@3 DK DL DM@2 DN@8 ~
>`.pickRestart({
A: "[~@16 d4@15 ~, d3@31 ~, ~@5 f#3@25 ~@2, ~@11 a#3@20 ~]/2", B: "[[a3,d4]@7 ~@3 [a3,d4]@35 ~@3]/3",
C: "[[d4,g4]@9 ~@2 [d4,g4]@37]/3", D: "[a3,d4]@9 ~ [a3,d4]@4 ~@2", E: "[[a#3,d#4]@20 ~@7 d#4@4 ~, ~@21 f4@9 ~@2]/2",
F: "[[a3,d4]@15 ~]/5", G: "[[d4,g4]@8 ~@3 [d4,g4]@48 ~@5]/4", H: "[[d4,g4]@7 ~]/3",
I: "[~@21 b3@10 ~, ~@11 g4@21, ~@16 d4@15 ~]/2", J: "[~@21 g4@11, c4]/2", K: "[~@11 b3@20 ~, ~@5 d4@25 ~@2]/2",
L: "[~@16 f4@11 ~@5, a#3@27 ~@5]/2", M: "[~@11 g4@32 ~@5, c4@35 ~@13, ~@5 e4@32 ~@11]/3", N: "[e4,g4]@15 ~",
O: "[~@8 a#4@11 ~@5, ~@11 d#4@27 ~@10]/3", P: "~@11 b3@5, ~@5 d4@11", Q: "g3@3 ~", R: "~@5 c3@5 ~ c#3@5",
S: "[d3@27 ~@5]/2", T: "[[a3,d4]@27 ~@5]/2", U: "~@5 g3@6 a#3@4 ~", V: "[c4@8 ~ c4@17 ~ d#4@5]/2",
W: "[c4@11 a#3@10 a3@11]/2", X: "[~@21 b3@10 ~, g3@31 ~, ~@11 g4@21, ~@16 d4@15 ~]/2", Y: "[c5@5 ~@3, g#4@9 ~@7]/2",
Z: "[g#4@3 ~]/3", AA: "~@9 g4@4 ~@3", AB: "d5@5 ~@4 d5@7", AC: "~@3 a#4@5 ~@3 g4@4 ~", AD: "~@11 g4@4 ~",
AE: "a#4@4 ~@3 a#4@5 ~@4", AF: "~@5 g4@3 ~ g4@4 ~@3", AG: "b4@8 ~ b4@5 ~@2", AH: "d5@10 ~ d5@5", AI: "~@5 d5@10 ~",
AJ: "a4@11 g4@3 ~@2", AK: "[f4@24 ~ a#4@2 f4@22 ~@10 f4@3 ~@2]/4", AL: "f4", AM: "~@5 a#4@5 ~ f4@4 ~",
AN: "[f4@5 ~@3]/2", AO: "c4@10 ~ g3@5", AP: "f3@4 ~ g3@10 ~", AQ: "a3", AR: "~@5 e4@4 ~@2 g4@3 ~@2",
AS: "[a#4@7 ~@4 b4@8 ~@2 g4@4 ~@2 g4@4 ~]/2", AT: "d5@4 ~ d5@3 ~@3 c5@4 ~", AU: "a#4@4 ~ a#4@3 ~@3 a4@3 ~@2",
AV: "[g4@21 e4@4 ~@2 g4@3 ~@2]/2", AW: "a#4@4 ~ a#4@4 ~@2 g4@5", AX: "e4@5 g4@6 ~@5",
AY: "[c5@9 ~@2 a#4@10 g4@5 ~ f4@3 ~@2]/2", AZ: "~@11 a#3@5", BA: "a#4@2 ~@3 a4@9 ~@2", BB: "g4@2 ~@3 f5@5 ~ g5@3 ~@2",
BC: "a#5@11 g5@5", BD: "f5@5 g5@10 ~", BE: "d4@5 f4@4 ~@2 g4@3 ~@2", BF: "~@5 f4@5 ~ d4@3 ~@2, g4@7 ~@9",
BG: "[d4@18 ~@3 e4@3 ~@3 g4@5]/2", BH: "e5@5 b4@3 ~@3 d5@5", BI: "~@5 d5@5 ~ e5@4 ~",
BJ: "~@5 e5@5 ~ d5@3 ~@2, f5@7 ~@9", BK: "d5@11 a#4@3 ~@2", BL: "[a#4@3 a4@5 ~ g4@11 ~ a#4@5 ~ g4@3 ~@2]/2",
BM: "[c5@8 ~@3 c5@8 ~@2 c5@4 ~@2 c5@3 ~@2]/2", BN: "[e5@5 b4@4 ~@2 d5@10 e5@4 ~@2 b4@4 ~]/2",
BO: "d5@4 ~ e5@3 ~@3 e5@4 ~", BP: "e5@3 ~@2 e5@4 ~@2 d5@4 ~", BQ: "b4", BR: "~@5 g5@4 ~@2 g5@3 ~@2",
BS: "[g5@20 ~ e5@5 ~ d5@3 ~@2]/2", BT: "a4@5 g4@5 ~ e4@5", BU: "g4@5 c4@3 ~@3 e4@3 ~@2",
BV: "[g4@5 c4@13 ~@9 a4@3 ~@2]/2", BW: "a#4@9 ~@2 g4@4 ~", BX: "g4@5 f4@5 ~ e4@5", BY: "d4@5 c4@5 ~ a3@2 ~@3",
BZ: "b4@7 ~", CA: "b4@11 g4@4 ~", CB: "[c5@18 ~@3 a4@5 ~ g4@4 ~]/2", CC: "c5@15 ~", CD: "c5@4 ~ c5@4 ~@2 c5@3 ~@2",
CE: "g4@15 ~", CF: "a#4@5 g4@5 ~ f4@3 ~@2", CG: "[a4@9 ~@2 a4@8 ~@2 a4@4 ~@2 a4@3 ~@2]/2", CH: "a4@7 ~",
CI: "[a#4@7 ~@4 a4@8 ~@2 g4@5 ~ f4@3 ~@2]/2", CJ: "[d#4@8 ~@3 d4@9 ~ a#3@5 ~ g3@3 ~@2]/2",
CK: "[g4@9 g5@10 ~@2 g5@6 f5@4 ~]/2", CL: "g5", CM: "~@5 a#5@5 ~ a5@5", CN: "[g5@9 ~@2 g5@9 ~ g5@9 ~@2]/2", CO: "d5",
CP: "~@5 [g3,d4,g4] ~@10", CQ: "~@5 [g3,c4] ~@10", CR: "~@5 [g3,d4,g4,a4] ~@10", CS: "~@5 [g3,d4,g4]@6 ~@5",
CT: "~@5 [g#3,g#4] ~@10", CU: "~@5 [g#3,g#4] ~@5 [g#3,d#4,g#4] ~@4", CV: "[~@5 [g3,d4,g4]@13 ~@3 [d4,g4]@9 g3@2]/2",
CW: "d4@2 ~@3 [g3,d4]@2 ~@4 g3 ~@4, ~@5 g4@4 ~@7", CX: "[~@2 g3@19 b3@5 ~@6, g2@5 ~@3]/2",
CY: "[~@11 e4@15 ~@6, a3@13 ~@3]/2", CZ: "~@5 [b3,d4,f#4] ~@8 [b3,d4,f#4] ~", DA: "~@3 [b3,d4]@9 ~@4",
DB: "[~@16 f4@11 ~@5, ~@5 a#3@21 ~@6, ~@11 d4@16 ~@5]/2", DC: "[d3,c4,e4]/3", DD: "~@5 [d3,c4,e4,g4] ~@10",
DE: "~@3 [g4,a#4,d#5] ~@7 [g4,a#4,d#5] ~@4", DF: "[g4,a#4,d#5]@15 ~", DG: "[a#3@11 ~@5]/2", DH: "[d3,g3,c4,e4] ~@7",
DI: "[g3,c4,e4] ~@7", DJ: "[g3,c4,d#4] ~@7", DK: "~@9 [e4,a#4]@5 ~@2", DL: "[e4,a#4]@10 ~ g4@4 ~",
DM: "[g4@8 ~@3 a#4@16 g4@4 ~]/2",
DN: "[[b3,d4,g4]@3 ~@11 g4@10 ~ f4@14 ~@2 g5@11 ~ g5@7 g5@19 ~@13 d5@17 f5@19, ~@9 b3@25 ~@45 g5@15 ~@34, ~@83 f5@6 f5@5 ~@34, ~@43 d5@3 ~@18]/8", // G
})).s("gm_overdriven_guitar").gain(0.42)
// chords · overdriven guitar · "LEAD GUIT" · soft notes
const overdriven_guitar_soft = note(`<
~@26 A@2 ~@2 B ~@6 C D@2 ~@2 E@2 F@2 G ~@27 A@2 ~@2 B ~@6 C D@2 ~@2 E@2 F@2 G ~@27 A@2 ~@2 B ~@6 C D@2 ~@2 E@2 F@2 G
~@27 A@2 ~@2 B ~@6 C D@2 ~@2 E@2 F@2 G ~@109 H@2 ~@2 I J ~@9 K L@2 ~ M ~@2 N@3 ~@5 E@2 F@2 G ~@27 A@2 ~@2 B ~@24
>`.pickRestart({
A: "[~@5 d4@11 ~@16, b3@21 ~@11]/2", B: "f#4@3 ~@5", C: "c4@15 ~", D: "[c4, d#4@27 ~@5]/2",
E: "[~@5 b3@21 ~@6, g3]/2", F: "[~@5 c4@18 ~@9, g3@7 ~]/2", G: "~@5 b3@6 ~@5", H: "~@5 d#4 ~@10", I: "~@5 g3@6 ~@5",
J: "g4 ~@7", K: "~@11 d4@3 ~@2", L: "[~@5 c4@20 ~@7]/2", M: "~@3 f#4@7 ~@6", N: "g4/3",
})).s("gm_overdriven_guitar").gain(0.24)
// chords · rock organ · "ORGAN"
const rock_organ = note(`<
~@2 A@4 B@4 C@2 D@2 E@4 F@8 G@2 H@2 I@2 J@2 K@4 L@4 M N M O M P Q@2 A@4 B@4 C@2 D@2 E@4 F@8 G@2 H@2 I@2 J@2 K@4 L@4 M
N M O M P Q@2 A@4 B@4 C@2 D@2 E@4 F@8 G@2 H@2 I@2 J@2 K@4 L@4 M N M O M P Q@2 A@4 B@4 C@2 D@2 E@4 F@8 G@2 H@2 I@2 J@2
K@4 L@4 M N M O M P Q@2 A@4 B@4 C@2 D@2 E@4 F@8 G@2 H@2 I@2 J@2 K@4 L@4 M N M O M P Q@2 A@4 B@4 C@2 D@2 E@4 F@8 G@2
H@2 I@2 J@2 K@4 L@4 M N M O M P Q@2 R@2 S T U V W X Y Z AA AB AC@2 AD AE AF AG AH AI AJ@3 AK AL@6 AM@2 AN AO AP AQ
AR@2 AS AT M N M O M P Q@2 A@4 B@4 C@2 D@2 E@4 F@8 G@2 H@2 I@2 AU@2 AV AW AX AY ~@4 AZ@2 BA@2 ~ BB@8
>`.pickRestart({
A: "[[g3,d5]@63 ~, [f4,a4]@61 ~@3]/4", B: "[~@16 a#4@16 a4@16 g4@11 ~@5, [c5,e5]@59 ~@5, g4@45 ~@19]/4",
C: "[[g4,b4,d5]@31 ~]/2", D: "[[g#4,c5,d#5]@31 ~]/2", E: "[g4@32 f4@18 ~@3 g4@3 ~@3 f4@3 ~@2, [b4,d5]@61 ~@3]/4",
F: "[[g4,a#4,c5,e5]@125 ~@3]/8", G: "[b4,d5,g5]/2", H: "[[c5,e5,g5]@31 ~]/2", I: "[b4,d5,f#5]/2",
J: "[[a#4,d5,f5]@29 ~@3]/2", K: "[[c5,e5,g5]@29 ~@3]/4", L: "[[c5,d#5]@59 ~@5, g5@61 ~@3]/4",
M: "~@5 g5@2 ~@9, ~@5 d5 ~@10", N: "~@5 c5@5 ~ b4@3 ~@2, [d5,g5]@11 ~@5", O: "~@5 a#4@5 ~ a4@4 ~, [d5,g5]@11 ~@5",
P: "[d5,g5]@2 ~@3 a#4@5 ~ a4@2 ~@3", Q: "[[a#4,d5]@15 ~]/2", R: "[g6@2 ~@3 g6@21 ~@6]/2",
S: "~@12 f6 ~ d6 ~, ~@11 g6@2 ~@3", T: "f6@5 d6@5 ~ f6@2 ~@3", U: "c6@2 ~ g5 ~ a#5@6 g5@4 ~, ~ b5 ~@6",
V: "g5@3 a#5 ~ g5@3 ~ a#5 ~ c6@3 ~@2", W: "d6@3 ~@2 d#6@3 ~@3 d6@3 c6@2", X: "a#5@3 c6@2 a#5@5 ~ g5@2 ~@3",
Y: "~@5 [g5,d6,g6]@5 [b5,c6,e6] [f5,g5,a5] [d5,e5] ~@3", Z: "~@5 [g5,d6,g6]@5 [b5,c6] [e5,f5,g5,a5] d5 ~@3",
AA: "~@6 g6@4 [c6,e6] [g5,a5,b5] [e5,f5] ~@3, ~@3 [g5,d6]@3 ~@2", AB: "~@5 [g5,d6,g6]@4 c6 [a5,b5] [e5,f5,g5] ~@4",
AC: "[[c6,g6]@31 ~]/2", AD: "[d6,g6]@2 ~ a#5@2 g5@5 ~ a5@2 ~@3, ~ c6 ~@6", AE: "a5@2 g5 ~@2 f4@3 ~@3 g4@3 a4 ~",
AF: "a#5@2 ~ a#5@2 a5@6 g5@5, ~ a5 ~@6", AG: "f5@3 g5@2 f5@3 ~ e5@2 d5@3 g4@2",
AH: "a#4@3 c5 ~ a#5 ~ a5 ~ a#5@2 a5@3 ~@2", AI: "g5@3 f5@2 ~@11", AJ: "[e6@3 g6@41 ~@2 g6@2]/3",
AK: "a#6@3 g6@2 a6@3 ~ g6@5 ~@2", AL: "[~@30 a5@2 b5@3 a5@2 b5@3 ~ g5@28 d5@10 ~ e5@5 g5@6 a5@3 ~@2, d6@47 ~]/6",
AM: "[a#5@2 g5@19 a5@6 ~@5, d6@15 ~]/2", AN: "~@5 [d6,g6] ~@10", AO: "d6@9 ~@2 c#6@3 c6@2, g6@15 ~",
AP: "~@11 a#5@3 a5@2", AQ: "a#5@4 ~ a5@5 ~ g5@2 ~@3", AR: "[g5@27 a#5@3 g5@2]/2", AS: "a#5@2 ~ g5@13",
AT: "d5@5 g5@5 ~ d5@3 ~@2", AU: "[[g#4,a#4,c#5,f5]@29 ~@3]/2",
AV: "[d4,g5]@6 d5@2 [a4,b4] [f4,g4] [d4,e4] ~@5, [c5,e5]@9 ~@7, ~@6 f5 ~@9", // G5 Asus2 Fsus2 Dsus2 C
AW: "g5@6 f5 d5 [a4,b4] [f4,g4] [c4,d4,e4] ~@5, [c5,e5]@9 ~@7", // Asus2 Fsus2 C
AX: "g5@6 f5 ~ [a4,b4] [f4,g4] [d4,e4] ~@5, [c5,e5]@9 ~@7, ~@7 d5@2 ~@7", // Asus2 Fsus2 Dsus2 C
AY: "g5@5 d5@2 a4 [f4,g4] [c4,d4,e4] [g3,a3,b3] ~@5, [c5,e5]@7 b4@2 ~@7, ~@5 f5 ~@10", // Fsus2 C G C
AZ: "[[g5,d6,g6]@29 ~@3, g3]/2", BA: "[~@5 d#5@6 a#4@7 ~@3 a4@4 ~@2 g4@2 ~@3, ~@5 g5@23 ~@4, ~@5 c5@4 ~@23]/2",
BB: "[[c5,g5]@6 ~@76 d6@28 ~@4 c5 ~@13, e5@4 ~@5 [b4,d5,g5]@105 ~@14, ~@15 f5@99 ~@14, ~@31 g6@5 ~@28, ~@35 f6@20 ~@9]/8", // C5 G
})).s("gm_rock_organ").gain(0.54).pan(0.2)
// drums · kick
const kick = s("bd").struct(`<
~ A B C B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D E C E D E C B D B C B D B C B D B
C B D B C F D B C B D B C B D B C B D B C B D B C B D B C B D E C E D E C B D B C B D B C B D B C B D B C F D B C B D
B C B D B C B D B C B D B C B D B C B D E C E D E C B D B C B D B C B D B C B D B C F D B C B D B C B D B C B D B C B
D B C B D B C B D E C E D E C B D B C B D B C B D B C B D B C F D B C B D B C B D B C B D B C B D B C B D B C B D E C
E D E C E D G C H D G C G D G C G D G C G D G C H D G D G D G C H D G C G D G C G D G C G D E C E D E C E D H@3 I H@3
I H@3 I H@3 I H@3 I H@3 I H@3 I H@3 I H@3 I H@3 I E C E D E C E D B C B D B C B D B C B D B C F D B C B D B C B D B C
B D B@2 D B@5 ~@4 G C D@2 G J ~ B@2 ~@2 K ~
>`.pickRestart({
A: "~@5 x ~@7 x ~@2", B: "x", C: "~@11 x ~@4", D: "~@5 x ~@5 x ~@4", E: "x ~@4 x ~@10", F: "x ~@2 x ~ x ~@10",
G: "x ~@10 x ~@4", H: "x ~@4 x ~@5 x ~@4", I: "x ~@4 x ~@3 x ~ x ~@4", J: "x ~@8 x ~@6", K: "~@15 x",
})).gain(0.66)
// drums · rim
const rim = s("rim").struct(`<
A ~@2 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@3 B ~@17 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~
B ~ B ~ B ~ B ~@17 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@9 B ~ B ~ B ~ B ~ B
~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@17 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@113 B
~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@2 B ~@22
// … 91 more lines
More by Holiday Billie
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.