0:00/0:00
// Sunday Girl — Blondie
// 148 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 117 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(148/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.
// other · overdriven guitar
const overdriven_guitar = note("<~@44 A@2 B@2 C D E F ~@65>".pickRestart({
A: "c#4/2", B: "[g#3@47 ~]/2", C: "f#3@5 d#3 c#3@2", D: "f#3@15 d#3@3 c#3@5 ~", E: "a3", F: "b3",
})).s("gm_overdriven_guitar").gain(0.32).pan(0.3)
// other · xylophone
const xylophone = note(`<
~@84
[~@18 c#6@2 ~ c#5@2 ~]
[~@19 c#6@2 ~ e5@2]!2
[~@19 c#6@2 ~ c#5@2]!2
[~@19 c#6@2 ~ e5@2]!2
~@26
>`).s("gm_xylophone").gain(0.72).pan(0.8)
// bass · electric bass finger
const bass = note(`<
~ A B@2 A C D E F G H A B C D I J K L A@2 M N O P Q R S T U V W V X Y Z AA AB AC X Y AD AE AF AG AH AI AJ AK AL AM AN
Y AO Y AP AE AQ AR AS AC AT AU AV AE AW AS AX AY AZ BA BB AZ BC BD BE AZ@2 BB@2 BF BG BH BI BJ BK BL BB BM BN BO BP BQ
BR BS BT BU BV BW BX BY BZ CA BX CB CC CD CE CF CB CG BX CB@2 CA CH CI
>`.pickRestart({
A: "d2@7 ~@2 d2@2 ~ d2@6 a1@6", B: "d2@8 ~ d2@2 ~ d2@6 a1@6", C: "d2@6 ~@3 d2 ~@2 d2@7 ~@2 d2@2 ~",
D: "g2@6 ~@3 g2 ~@2 a2@7 ~@2 a2@3", E: "d2@7 ~@2 d2 ~@2 d2@7 ~@2 d2@3", F: "g2@7 ~@2 g2@3 a2@7 ~@2 a2@2 ~",
G: "d2@7 ~@2 d2 ~@2 d2@7 ~@2 d2@2 ~", H: "g2@7 ~@2 g2@2 ~ a2@7 ~@2 a2 ~@2", I: "d2@6 ~@3 d2@2 ~ d2@7 ~@2 d2@2 ~",
J: "g2@8 ~ g2@2 ~ a2@6 ~@3 a2@2 ~", K: "d2@7 ~@2 d2 ~@2 d2@7 ~@2 d2 ~@2", L: "g2@7 ~@2 g2@2 ~ a2@7 ~@2 a2@2 ~",
M: "g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1 ~@2 g1@2 ~ g1@2 ~",
N: "g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~",
O: "d2@2 ~ d2@2 ~ d2@2 ~ d2 ~@2 d2@2 ~ d2 ~@2 d2@2 ~ d2 ~@2",
P: "d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2 ~@2 d2@2 ~ d2@2 ~",
Q: "g1@2 ~ g1@2 ~ g1@2 ~ g1 ~@2 g1@2 ~ g1 ~@2 g1@2 ~ g1 ~@2",
R: "g1 ~@2 g1@2 ~ g1@2 ~ g1 ~@2 g1 ~@2 g1@2 ~ g1 ~@2 g1 ~@2", S: "e1@7 ~@2 e1 ~@2 e1@5 ~ e1@5 ~", T: "a1 f#2 e2 a1",
U: "b1@2 g#2@2 f#2@2 c#2 d#2", V: "e2@6 ~@3 e2 ~@2 e2@7 ~@2 e2@2 ~", W: "a1@7 ~@2 a1@2 ~ b1@7 ~@2 b1@3",
X: "a1@7 ~@2 a1@2 ~ b1@7 ~@2 b1 ~@2", Y: "e2@6 ~@3 e2 ~@2 e2@7 ~@2 e2 ~@2", Z: "a1@6 ~@3 a1@2 ~ b1@7 ~@2 b1 ~@2",
AA: "e2@7 ~@2 e2@2 ~ e2@6 b1@6", AB: "e2@7 ~@2 e2 ~@2 e2@6 b1@6", AC: "e2@7 ~@2 e2 ~@2 e2@7 ~@2 e2@2 ~",
AD: "a1@7 ~@2 a1@2 ~ b1@7 ~@2 b1@2 ~", AE: "e2@7 ~@2 e2 ~@2 e2@7 ~@2 e2 ~@2", AF: "a1@7 ~@2 a1@2 ~ b1@8 ~ b1 ~@2",
AG: "c#2@7 ~@2 c#2 ~@2 c#2@9 ~@3", AH: "c#2@7 ~@2 c#2 ~@2 c#2@10 ~@2", AI: "g#1@6 ~@3 g#1 ~@2 g#1@8 ~@4",
AJ: "g#1@7 ~@2 g#1 ~@2 g#1@10 ~@2", AK: "f#2@3 a#2@2 ~@4 c#3@3 ~@3 d#3@7 ~@2",
AL: "f#3@3 d#3@2 ~@4 c#3@3 ~@3 d#3@5 ~ g#2@3", AM: "a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2 ~@2 a2@2 ~",
AN: "b2@2 ~ b2@2 ~ b2@2 ~ b2@2 ~ b2@2 ~ b2 ~@2 b2@2 ~ b2@2 ~", AO: "a2@6 ~@3 a2 ~@2 b2@7 ~@2 b2@2 ~",
AP: "a2@7 ~@2 a2@2 ~ b2@7 ~@2 b2@2 ~", AQ: "a2@6 ~@3 a2@2 ~ b2@8 ~ b2 ~@2", AR: "e2@7 ~@2 e2 ~@2 e2@9 ~@3",
AS: "e2@7 ~@2 e2@2 ~ e2@8 ~@4", AT: "a2@7 ~@2 a2@2 ~ b2@7 ~@2 b2@3", AU: "e2@7 ~@2 e2@2 ~ e2@7 ~@2 e2@2 ~",
AV: "a2@6 ~@3 a2@3 b2@7 ~@2 b2@2 ~", AW: "a2@7 ~@2 a2@3 b2@7 ~@2 b2@2 ~", AX: "e2@7 ~@2 e2 ~@2 e2@10 ~@2",
AY: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1 ~@2",
AZ: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~",
BA: "e2@2 ~ e2@2 ~ e2 ~@2 e2 ~@2 e2@2 ~ e2@2 ~ e2@2 ~ e2 ~@2",
BB: "e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~",
BC: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~@2 a1 ~ a1@2 ~",
BD: "e2@2 ~ e2@2 ~ e2@2 ~ e2 ~@2 e2@2 ~ e2@2 ~@2 e2@2 ~ e2@2",
BE: "~ e2@2 e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~",
BF: "a1@2 ~ a1@2 ~ a1@2 ~@2 a1 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~",
BG: "a1@2 ~ a1@2 ~@2 a1@2 ~ a1@2 ~ a1@2 a1@2 ~ a1@2 ~ a1@2 ~",
BH: "e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~@2 e2@2 ~ e2@2 ~ e2@2 ~ e2 ~",
BI: "e2@2 ~@2 e2@2 ~ e2@2 ~ e2@2 ~ e2@2 e2@2 ~@2 e2@2 e2@2 ~",
BJ: "a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~",
BK: "~ a2@2 ~ a2@2 a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~@2 a2@2",
BL: "~ e2@2 e2@2 ~ e2@2 ~@2 e2@2 ~ e2@2 e2@2 ~ e2@2 ~@2 e2 ~",
BM: "a2@2 ~ a2@2 ~@2 a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2",
BN: "~ a2@2 a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~@2 a2@2",
BO: "e2@2 ~ e2@2 ~ e2 ~@2 e2@2 ~ e2@2 ~ e2@2 ~@2 e2@2 ~ e2@2", BP: "~ e2@2 ~ e2@2 e2@2 ~ e2@2 ~@5 a1@6 g#1@2",
BQ: "~ a1@5 ~ a1@2 a1@2 ~ a1@2 ~ a1@2 ~@2 a1@2 ~ a1@2", BR: "~ a1@2 ~ a1@2 a1@2 ~@2 a1@2 a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~",
BS: "e2@2 ~@2 e2@2 ~ e2@2 ~ e2 ~@2 e2@2 ~ e2@2 ~ e2@2 ~ e2@2",
BT: "~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 e2@2 ~",
BU: "a1@2 ~ a1@2 ~ a1@2 ~@2 a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2",
BV: "~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 a1@2 ~@2 a1@2 ~ a1@2",
BW: "~ e2@2 ~ e2@2 ~ e2@2 ~ e2 ~@2 e2@2 ~ e2 ~@2 e2@2 ~ e2 ~",
BX: "~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2",
BY: "~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1 ~@2 a1@2 ~ a1@2",
BZ: "~ a1@2 ~ a1 ~@2 a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2",
CA: "~ e2@2 ~ e2@2 ~ e2@2 ~ e2 ~@2 e2@2 ~ e2@2 ~ e2@2 ~ e2@2",
CB: "~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2",
CC: "~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 a1@2 ~ a1@2 ~@2 a1@2 ~ a1@2",
CD: "~ e2@2 ~ e2 ~@2 e2@2 ~ e2 ~@2 e2@2 ~ e2 ~@2 e2@2 ~ e2 ~",
CE: "e2@2 ~@2 e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2",
CF: "~ a1@2 ~ a1@2 ~ a1@2 ~ a1 ~@2 a1@2 ~ a1@2 ~ a1@2 ~ a1@2",
CG: "~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2 ~@2 e2@2 ~ e2@2", CH: "~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 e2@2 ~@2 a1@6 g#1@2",
CI: "~ a1@4 ~@19",
})).s("gm_electric_bass_finger").gain(0.72)
// chords · drawbar organ
const drawbar_organ = note(`<
~@13 A@4 B@2 C@2 D@4 E@2 F@2 G H I@4 J K@3 I@4 J L@2 M@2 N@2 O P H I@4 Q@4 I@4 R@7 S@2 T@2 S@2 U@4 V@2 ~@7 W X@6 Y@8
Z@8 AA@3
>`.pickRestart({
A: "[[a4,f#5]@2 [g4,b4] [c#5,e5] f#5@2 [g4,b4] [a4,c#5,e5], d5@3 a4@3 ~@2, ~@4 d5@3 ~]/4", // D G C#m G A
B: "[[a4,f#5]@2 [g4,b4] [a4,c#5,e5], d5@3 ~]/2", C: "[a4,d5,f#5]/2", D: "[[g4,b4] [a4,f#5], d5@95 ~]/4",
E: "[g4,b4,d5]/2", F: "[[g#4,b4] [a4,c#5], e5]/2", G: "[b4,d#5,f#5]", H: "[g#4,b4,e5]",
I: "[[e4,a4,c#5] [f#4,d#5] [g#4,e5]@2, ~ b4@3]/2", J: "[e4,a4,c#5] [f#4,b4,d#5]", K: "[g#4,b4,e5]/3",
L: "[g#4,c#5,e5]/2", M: "[g#4,b4,d#5]/2", N: "[f#4,a#4,c#5]/2", O: "[e4,a4,c#5]", P: "[f#4,b4,d#5]",
Q: "[[e4,a4,c#5] [f#4,d#5] [g#4,e5]@6, ~ b4@7]/4", // A D#m C#m
R: "[[e4,a4,c#5] [f#4,d#5] g#4@4 [a4,c#5]@4 [g#4,b4]@4, ~ b4@5 ~@8, ~ e5@6]/7", S: "[a4,c#5]/2", T: "[g#4,b4]/2",
U: "[f#5 g#5 b5@2 g#5 f#5 ~@10 [a4,c#5]@16, [g#4,b4] ~, ~@3 e5@13]/4", // A G#m
V: "[f#5@3 g#5@2 ~ b5@6 g#5@2 f#5@4 e5@30, [g#4,b4], e5@5 ~@11]/2", // G#m
W: "~@16 [a4,c#5,e5]@2 ~ [a4,c#5]@2 ~ [g#4,c#5]@2, ~@19 e5@5", // A C#5
X: "[~ [a4,c#5]@48 ~@24 f#5@3 g#5@3 b5@6 g#5@3 f#5@3 ~@6 [a4,c#5]@47, ~ e5@143, ~@49 [g#4,b4]@48 ~@47]/6", // A G#m
Y: "[~ f#5@3 g#5@3 b5@6 ~ f#5@2 ~@33 [a4,c#5]@48 f#5@3 g#5@3 b5@6 c#6@6 b5@29 ~ [a4,c#5]@47, ~ [g#4,b4]@48 ~@48 [g#4,b4]@48 ~@47, ~ e5@18 e5@78 e5@95, ~@13 g#5@3 ~@176]/8", // A G#m
Z: "[~ f#5@3 g#5@3 b5@6 g#5@3 f#5@2 ~@31 [a4,c#5]@48 f#5@3 g#5@3 b5@6 g#5@3 f#5@3 ~@30 [a4,c#5]@47, ~ e5@113 ~ e5@77, ~ [g#4,b4]@48 ~@48 [g#4,b4]@48 ~@47]/8", // A G#m
AA: "[~ f#5@3 g#5@3 b5@6 g#5@3 f#5@3 ~@30 [a4,c#5]@3 ~@20, ~ [g#4,b4]@48 ~@23, ~ e5@16 ~@2 e5@33 ~@20]/3", // A G#m
})).s("gm_drawbar_organ").gain(0.25).pan(0.7)
// chords · electric guitar muted
const electric_guitar_muted = note(`<
~ A@3 B C D C D C D E@2 C D C D C D E B F@2 C@2 F@2 G H I G J G J G J K L G J G J G J M N O@2 P Q R S G J G J G J T U
G J G J G J V W R@2 G@2 R@2 X Y Z AA AB AC AD AE AF G AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AT AU AV AW
AT AU AV AW AT AU AV AW AT AU AX AY
>`.pickRestart({
A: "d3@8 ~ d3@2 ~ d3@6 a2@6", B: "d3@8 ~ d3 ~@2 d3@6 a2@5 ~",
C: "[d3,a3] ~@2 [d3,a3] ~@2 [d3,a3] ~@2 [d3,a3] ~@2 [d3,a3] ~@2 [d3,a3] ~@2 [d3,a3] ~@2 [d3,a3] ~@2", // D5
D: "[g2,d3] ~@2 [g2,d3] ~@2 [g2,d3] ~@2 [g2,d3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2", // G5 A5
E: "d3@7 ~@2 d3 ~@2 d3@6 a2@6",
F: "[g2,d3] ~@2 [g2,d3] ~@2 [g2,d3] ~@2 [g2,d3] ~@2 [g2,d3] ~@2 [g2,d3] ~@2 [g2,d3] ~@2 [g2,d3] ~@2", // G5
G: "[e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2", // E5
H: "[a2,e3]@23 ~", I: "[b2,f#3]",
J: "[a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2", // A5 B5
K: "e3@8 ~ e3@2 ~ e3@6 b2@6", L: "e3@8 ~ e3@2 ~ e3@6 b2@5 ~", M: "[c#3,g#3]@11 ~", N: "[c#3,g#3]@23 ~",
O: "[g#2,d#3]@11 ~", P: "[f#2,c#3]@23 ~", Q: "[f#2,c#3]@7 ~",
R: "[a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2", // A5
S: "[b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2 [b2,f#3] ~@2", // B5
T: "e3@5 ~", U: "e3", V: "e3@7 ~", W: "e3@11 ~",
X: "[e2,b2] ~@2 [e2,b2] ~@2 b2 e2 ~ [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2", // E5
Y: "b2 e2 ~ [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 b2 e2 ~", // E5
Z: "[a2,e3] ~@2 [a2,e3] ~@2 a2 e3 ~ [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2", // A5
AA: "a2 e3 ~ [a2,e3] ~@2 a2 e3 ~ a2 e3 ~ [a2,e3] ~@2 [a2,e3] ~@2 a2 e3 ~ [a2,e3] ~@2", // A5
AB: "[e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@3 [e2,b2] ~ [e2,b2] ~@2", // E5
AC: "[e2,b2] ~@2 [e2,b2] ~@3 [e2,b2] ~@2 [e2,b2] ~ [e2,b2] ~@3 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~", // E5
AD: "~ [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~@2 [a2,e3] ~ e3 a2 ~ e3 a2 ~@2 [a2,e3] ~ e3 a2 ~", // A5
AE: "[a2,e3] ~@2 [a2,e3] ~@2 e3 a2 ~ e3 a2 ~ e3 a2 ~@2 [a2,e3] ~ e3 a2 ~ e3 a2 ~", // A5
AF: "[e2,b2] ~@2 b2 e2 ~ [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2 [e2,b2] ~@2", // E5
AG: "a2 c#3@2 a2 ~@2 e3@3 a2 ~@2 f#3@3 a2 ~@2 e3@3 a2 ~@2, ~@6 a2 ~@5 a2 ~@5 a2 ~@5",
AH: "c#3@3 e3@3 a2 ~@2 a2 f#3@2 a2 ~@2 e3@3 ~ c#3@3 e3@2, a2 ~@2 a2 ~@11 a2 ~@3 a2 ~@2 a2 ~",
AI: "e2 g#2@3 e2 ~ e2 b2@2 e2 ~@2 e2 f#3@2 e2 ~@2 e2 e3@2 ~ e2 ~",
AJ: "g#2@3 e2 b2@2 e2 ~@2 f#3@3 ~ e2 ~ e2 e3@3 c#3@3 e3@2, e2 ~@8 e2 ~@9 e2 ~@2 e2 ~",
AK: "~ c#3@3 a2 ~@2 e3@3 a2 ~@2 f#3@2 a2 ~@2 a2 e3@2 a2 ~@2, ~ a2 ~@5 a2 ~@5 a2 ~@10",
AL: "a2 c#3@2 a2 e3@2 a2 ~@2 a2 f#3@2 a2 ~@2 a2 e3@2 a2 c#3@2 a2 e3@2",
AM: "~ g#2@3 e2 ~@2 b2@3 e2 ~@2 f#3@3 e2 ~@2 e3@2 e2 ~@2, ~ e2 ~@5 e2 ~@5 e2 ~@5 e2 ~@4",
AN: "~ e2 ~@2 b2@2 e2 ~@3 e2 ~@5 e3@3 c#3@2 ~ a2 ~, g#2@3 ~ e2 ~@4 f#3@3 ~@4 a2 ~@2 a2 ~ e3@3",
AO: "~ a2 ~ a2 ~@3 a2 ~ a2 ~@3 f#3@2 a2 ~@2 a2 e3@2 a2 ~@2, c#3@3 ~@3 e3@3 ~@4 a2 ~@10",
AP: "~ c#3@2 e3@3 a2 ~@2 a2 f#3@3 a2 ~@2 e3@3 [a2,c#3]@2 ~ a2 ~, ~ a2 ~ a2 ~@12 a2 ~@4 e3@3", // A
AQ: "~ g#2@3 e2 ~@2 b2@2 e2 ~@3 f#3@2 e2 ~@3 e3@2 e2 ~@2, ~ e2 ~@5 e2 ~@5 e2 ~@5 e2 ~@4",
AR: "~ e2 ~ e2 b2@3 e2 ~ f#3@3 ~ e2 ~@2 e3@3 c#3@3 e3@2, g#2@3 ~@6 e2 ~@6 e2 ~@2 e2 ~@2 e2 ~",
AS: "~ c#3@2 a2 ~@3 e3@3 a2 ~@2 f#3@3 a2 ~@2 e3@3 a2 ~, ~ a2 ~@5 a2 ~@5 a2 ~@5 a2 ~@4",
AT: "~ c#3@3 e3@3 a2 ~@2 f#3@3 a2 ~@2 e3@3 c#3@3 e3@2, ~ a2 ~@2 a2 ~@5 a2 ~@5 a2 ~@2 a2 ~@2 a2 ~",
AU: "~ g#2@3 e2 ~@2 b2@3 e2 ~@2 f#3@3 e2 ~@2 e3@3 e2 ~, ~ e2 ~@5 e2 ~@5 e2 ~@5 e2 ~@4",
AV: "~ g#2@3 b2@3 e2 ~@2 f#3@3 e2 ~@2 e3@3 c#3@3 e3@2, ~ e2 ~@2 e2 ~@5 e2 ~@5 e2 ~@2 e2 ~@2 e2 ~",
AW: "~ c#3@3 a2 ~@2 e3@3 a2 ~@2 f#3@3 a2 ~@2 e3@3 a2 ~, ~ a2 ~@5 a2 ~@5 a2 ~@5 a2 ~@4",
AX: "~ g#2@3 b2@3 e2 ~@2 f#3@3 e2 ~@2 e3@3 c#3@3 e3@2, ~ e2 ~@2 e2 ~@5 e2 ~@5 a2 ~@2 a2 ~@2 a2 ~",
AY: "~ c#3@3 ~@20, ~ a2 ~@22",
})).s("gm_electric_guitar_muted").gain(0.57).pan(0.3)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~ A@3 B ~@6 C D ~@6 E F ~@6 G H I ~@6 J K ~@6 L M N@2 O P ~@8 J K ~@6 J Q ~@8 R S T U V W X Y ~@7 Z AA@2 AB@2 AC@2
AD@2 AA@2 AE@2 AC@2 AF@2 AG@2 AE@2 AA@2 AE@2 AH
>`.pickRestart({
A: "f#4@7 ~@2 f#4 ~@2 f#4@6 e4@5 ~, [d3,a3,d4]@11 ~", B: "f#4@7 ~@2 f#4 ~@2 f#4@6 e4@5 ~, [d3,a3,d4]@23 ~",
C: "[a3,d4,f#4]@7 ~", D: "[a3,d4,f#4]", E: "[a3,d4,f#4]@11 ~", F: "[a3,d4,f#4]@23 ~", G: "[e3,b3,e4]@11 ~",
H: "[a3,e4]@23 ~", I: "[b3,f#4]@23 ~", J: "[g#3,b3,e4]@11 ~", K: "[g#3,b3,e4]", L: "[c#4,e4,g#4]@23 ~",
M: "[c#4,e4,g#4]@11 ~", N: "[b3,d#4,g#4]@11 ~", O: "[a#3,c#4,f#4]@11 ~", P: "[a#3,c#4,f#4]@23 ~",
Q: "[g#3,b3,e4]@23 ~", R: "~ c#3@4 ~@2 e3@3 ~@3 f#3@3 ~@2 e3@3 ~@3", S: "c#3@3 e3@3 ~@3 f#3@4 ~@2 e3@4 c#3@3 e3@2",
T: "~ g#2@4 ~@2 b2@4 ~@2 f#3@4 ~@2 e3@5", U: "g#2@4 b2@3 ~@3 f#3@4 ~ e3@4 c#3@3 e3@2",
V: "~ c#3@4 ~@2 e3@4 ~@2 f#3@4 ~ e3@4 ~@2", W: "c#3@3 e3@3 ~@4 f#3@3 ~@2 e3@4 c#3@2 e3@3",
X: "~ g#2@4 ~@2 b2@4 ~@2 f#3@3 ~@2 e3@3 ~@3", Y: "~ g#2@3 b2@4 ~@2 f#3@3 ~@2 e3@3 c#3@3 e3@3",
Z: "~@15 [e3,a3,c#4]@3 ~ [e3,a3,c#4]@3 [e3,g#3,c#4]@2", AA: "[~ [e3,a3,c#4]@45 ~@2]/2",
AB: "[[e3,g#3,b3]@22 ~ [e3,a3,c#4]]/2", AC: "[~ [e3,a3,c#4]@46 ~]/2", AD: "[~ [e3,g#3,b3]@43 ~ [e3,a3,c#4]@3]/2",
AE: "[~ [e3,g#3,b3]@43 ~@2 [e3,a3,c#4]@2]/2", // E A
AF: "[~ [e3,g#3,b3]@38 ~ [e3,a3,c#4]@2 ~ [e3,a3]@3 [e3,g#3]@2, ~@43 c#4@5]/2", AG: "[~ [e3,a3]@46 ~, ~ c#4@42 ~@5]/2",
AH: "~ [e3,a3,c#4]@3 ~@20", // A
})).s("gm_electric_guitar_clean").gain(0.54).pan(0.8)
// drums · kick
const kick = s("bd").struct("<~ A@4 B@23 C B@15 A@6 C ~ B@32 D@2 E@5 F E@15 G E@8 H>".pickRestart({
A: "x ~@2 x!2 ~@3", B: "x!2", C: "x", D: "x!2 ~@2 x!2 ~@2", E: "~ x ~@2 x ~@8 x ~@2 x ~@7", F: "~ x ~@2 x ~@19",
G: "~@4 x ~@2 x ~@5 x ~@2 x ~@5 x ~", H: "~ x ~@22",
})).gain(0.8)
// drums · snare
const snare = s("sd").struct(`<
~ A@11 B A@7 C A@7 D A@8 B A@9 B A@2 E F A@7 B A@7 C A@15 C G H I@5 J K@15 L K@7 M ~
>`.pickRestart({
A: "~ x ~ x", B: "~@6 x ~@8 x ~ x!2 ~ x!2 ~ x", C: "~@2 x ~@2 x ~@2", D: "x ~@5 x ~@5 x ~@5 x ~ x!2 ~ x", E: "x!8",
F: "x!7 ~", G: "~@2 x!2 ~@2 x!2", H: "~@6 x ~@2 x ~@9 x ~@2 x ~", I: "~@7 x ~@2 x ~@8 x ~@2 x ~",
J: "~@7 x ~@2 x ~@5 x ~@2 x ~@2 x ~", K: "~@7 x ~@11 x ~@4", L: "~ x ~@8 x ~@8 x ~@4", M: "~@7 x ~@11 x ~@2 x ~",
})).gain(0.8)
// drums · clap
const clap = s("cp").struct("<~@21 A@7 ~@40 A@15 B ~@8 C@7 D C@7 ~ C@7 D ~>".pickRestart({
A: "~@2 x!2 ~@2 x ~", B: "~@2 x!2 ~@4", C: "~@7 x ~@2 x ~@8 x ~@4", D: "~@7 x ~@2 x ~@13",
})).gain(0.72)
// drums · hihat
const hihat = s("hh").struct("<A ~@4 B@70 C D E F G H I J K ~@8 L M N O L@20 ~>".pickRestart({
A: "~@2 x!2", B: "x!8", C: "~ x ~ x ~@2 x ~@3 x ~@2 x ~ x ~@2 x ~@2 x ~@2",
// … 29 more lines
More by Blondie
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.