0:00/0:00
// Catch My Fall — Billy Idol
// 131 bpm, 4/4, key G major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 11 electric guitar muted (copy of ch 9 electric guitar muted)
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 27.
setcpm(131/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 · pad sweep
const pad_sweep = note(`<
A B C B D B C B A B C B E B C B F@2 G@2 F@2 G@2 H I H I F@2 G@2 F@2 G@2 J B C B J B C B J B C B J B C B F@2 G@2 F@2
G@2 H I H I F@2 G@2 F@2 G@2 F@2 G@2 F@2 G@2 F@2 G@2 F@2 G@2 H I H I F@2 G@2 F@2 G@2 F@2 G@2 J B C B J B C B J B C B J
B C B K@2
>`.pickRestart({
A: "g3@14 [f3,f#3] [d#3,e3]", B: "d3", C: "c3", D: "g3@13 f#3 f3 [d#3,e3]", E: "g3@14 f#3 [d#3,e3,f3]", F: "c3/2",
G: "d3/2", H: "e3", I: "a2", J: "g3", K: "[g3@19 ~@13]/2",
})).s("gm_pad_sweep").gain(0.35).pan(0.3)
// other · pad sweep · soft notes
const pad_sweep_soft = note("<~@45 A B C ~ A B D E@2 F G H@2 I@2 ~@4 J@2 K@2 L@2 M@2 ~@50>".pickRestart({
A: "~ a5 f#6 d6", B: "c6", C: "d6@11 ~@5", D: "d6@3 ~", E: "[c6@25 ~@3 c6@4]/2", F: "d6", G: "~@3 d6",
H: "[c6@23 ~@5 c6@4]/2", I: "[d6@19 ~@13]/2", J: "[c5 g5 c6 e6@2 c6 g6@2]/2",
K: "[d5@3 ~ a5@4 d6@4 f#6@8 d6@4 a6@7 ~]/2", L: "[c5@3 ~ g5@4 c6@4 e6@8 c6@4 g6@7 ~]/2",
M: "[d5@4 a5@4 d6@4 f#6@8 d6@4 a6@5 ~@3]/2",
})).s("gm_pad_sweep").gain(0.11).pan(0.3)
// bass · electric bass pick
const bass = note(`<
~@3 A B@2 C@2 D E F G H I J E K L M N O P Q R S T U V W X Y Z AA AB M AC AD@2 AE@2 AF@2 AG@2 D E AH AI D AJ AK AL AM
AN AO AP AQ AR AS AT AU AV AU AW AB AX AY AZ BA BB BC BD BE BF Z BG BE BF Z BH BE BF BI BJ BE BF Z BK AU BL BM AW BE@2
Z E BE@2 BN E BO BP BQ BR BS@2 C@2 BT@2 BU@2 BV@2 C@2 BT@2 BW@2 BX@2
>`.pickRestart({
A: "~@5 d1 e1 f#1", B: "[g1!5 b1 c2 d2@2 d2!4 e2 d2 b1]/2", C: "[c2!5 d2 e2 d2@2 d2!4 d1 e1 f#1]/2", D: "g1!7 d2",
E: "d2!7 b1", F: "c2 ~ c2@2 c2@2 c2 ~ c2@2 c2@2 c2@2 d2@2", G: "d2@2 d2@2 d2 ~ d2 ~ d2 ~ d1@2 e1@2 f#1@2",
H: "g1@2 g1 ~ g1@2 g1@2 g1@2 g1@2 g1@2 d2@2", I: "d2@2 d2@2 d2@2 d2@2 d2 ~ d2 ~ d2@2 b1@2", J: "c2!7 d2",
K: "c2@2 c2@2 c2@2 c2@2 c2@2 c2 ~ c2 ~ c2 ~", L: "c2 ~ c2@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2",
M: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", N: "d2 ~ d2 ~ d2 ~ d2 ~ d2@2 a2@2 g2@2 f#2@2",
O: "c2@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", P: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2",
Q: "d2@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", R: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ g2@2 f#2@2 d2@2", S: "e1!8",
T: "a1@2 a1 ~ a1 ~ a1@2 a1@2 a1@2 a1@2 a1@2", U: "e1 ~ e1@2 e1 ~ e1 ~ e1 ~ e1 ~ e1@2 e1@2",
V: "a1@2 a1@2 a1@2 a1 ~ a1 ~ a1 ~ a1@2 b1@2", W: "c2@2 c2@2 c2@2 c2@2 c2 ~ c2@2 c2@2 c2@2", X: "c2!5 b1 a1 g1",
Y: "d2@2 d2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 d2@2", Z: "d2!8", AA: "c2@2 c2@2 c2 ~ c2@2 c2 ~ c2 ~ c2@2 c2@2",
AB: "c2@2 c2@2 c2@2 c2 ~ c2@2 c2@2 c2@2 c2@2", AC: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d1@2 e1@2 f#1@2",
AD: "[g1@2 g1 ~ g1 ~ g1 ~ g1@2 b1@2 c2@2 d2@4 d2@2 d2 ~ d2 ~ d2@2 e2@2 d2@2 b1@2]/2",
AE: "[c2 ~ c2 ~ c2@2 c2@2 c2@2 d2@2 e2@2 d2@4 d2@2 d2@2 d2@2 d2@2 d1@2 e1@2 f#1@2]/2",
AF: "[g1 ~ g1@2 g1@2 g1@2 g1@2 b1@2 c2@2 d2@4 d2@2 d2@2 d2 ~ d2@2 e2@2 d2@2 b1@2]/2",
AG: "[c2@2 c2 ~ c2 ~ c2 ~ c2@2 d2@2 e2@2 d2@4 d2@2 d2@2 d2@2 d2@2 d1@2 e1@2 f#1@2]/2",
AH: "c2@2 c2 ~ c2 ~ c2 ~ c2 ~ c2@2 c2@2 d2 ~", AI: "d2 ~ d2@2 d2@2 d2@2 d2@2 d1@2 e1@2 f#1@2",
AJ: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2 d2@2 b1@2", AK: "c2@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 d2 ~",
AL: "d2@2 d2 ~ d2 ~ d2 ~ d2@2 d2@2 d2@2 b1@2", AM: "c2@2 c2@2 c2 ~ c2@2 c2 ~ c2@2 c2@2 c2@2", AN: "c2!7 a1",
AO: "d2@2 d2@2 d2@2 d2@2 d2 ~ d2@2 d2@2 d2@2", AP: "d2@2 d2 ~ d2@2 d2@2 d2 ~ d2@2 d2@2 b1@2",
AQ: "c2@2 c2 ~ c2 ~ c2@2 c2@2 c2@2 c2@2 c2 ~", AR: "c2 ~ c2 ~ c2@2 c2@2 c2@2 c2 ~ c2@2 a1@2",
AS: "d2@2 d2@2 d2@2 d2 ~ d2 ~ d2 ~ d2@2 d2 ~", AT: "d2@2 d2 ~ d2@2 d2 ~ d2@2 d2@2 d2@2 d1@2", AU: "e1!7 g1",
AV: "a1!7 d1", AW: "a1!7 b1", AX: "c2@2 c2@2 c2 ~ c2@2 c2@2 c2@2 c2@2 c2@2",
AY: "d2 ~ d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2@2 d2@2", AZ: "d2@2 d2 ~ d2@2 d2@2 d2@2 g2@2 a2@2 d2@2",
BA: "c2@2 c2@2 c2 ~ c2 ~ c2@2 c2@2 c2@2 c2@2", BB: "c2@2 c2@2 c2@2 c2@2 c2 ~ c2 ~ c2 ~ c2@2",
BC: "d2 ~ d2 ~ d2 ~ d2@2 d2@2 d2@2 d2@2 d2@2", BD: "d2!5 g2 a2 d2", BE: "c2!8", BF: "c2!5 g1@2 g1",
BG: "d2@2 d2@2 d2@2 d2@2 d2@2 a1@3 ~ g1@2", BH: "d2@2 d2@2 d2@2 d2@2 f#2 g2 a2@2 a2 b2 c3@2",
BI: "d2@2 d2@2 d2@2 d2@2 d2@2 d2 ~ d2@2 d2@2", BJ: "d2@2 d2@2 d2 ~ d2@2 f#2 g2 a2@2 a2 b2 c3@2",
BK: "d2!2 g2 f#2 d2 c2@2 b1", BL: "a1!8", BM: "e1@2 e1 ~ e1@2 e1@2 e1 ~ e1 ~ e1@2 g1@2",
BN: "d2 ~ d2 ~ d2@2 d2@2 d2@2 d2 ~ d2@2 d2@2", BO: "c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2 ~",
BP: "c2@2 c2 ~ c2@2 c2@2 c2@2 c2@2 c2@2 c2@2", BQ: "d2@2 d2@2 d2@2 d2 ~ d2@2 d2 ~ d2@2 d2 ~",
BR: "d2 c2 b1 a1 d2 c2 b1 a1", BS: "[g1@2 g1@2 g1@2 g1 ~ g1@2 b1@2 c2@2 d2@4 d2@2 d2@2 d2@2 d2@2 e2@2 d2@2 b1@2]/2",
BT: "[g1@2 g1@2 g1@2 g1@2 g1@2 b1@2 c2@2 d2@4 d2@2 d2 ~ d2 ~ d2@2 e2@2 d2@2 b1@2]/2",
BU: "[c2@2 c2@2 c2 ~ c2@2 c2@2 d2@2 e2@2 d2@4 d2@2 d2@2 d2@2 d2@2 d1@2 e1@2 f#1@2]/2",
BV: "[g1@2 g1@2 g1@2 g1@2 g1@2 b1@2 c2@2 d2@4 d2@2 d2@2 d2 ~ d2@2 e2@2 d2@2 b1@2]/2",
BW: "[c2@2 c2@2 c2 ~ c2 ~ c2@2 d2@2 e2@2 d2@4 d2@2 d2@2 d2@2 d2@2 d1@2 e1@2 f#1@2]/2", BX: "[g1@11 ~@5]/2",
})).s("gm_electric_bass_pick").gain(0.44)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@15 A ~ B ~ C ~ D ~ E F@3 G ~@8 H@8 I J K L M N O ~ P Q ~ R S T ~ U V@4 ~@5 W ~@20 X Y Z ~ AA ~@2 W AB AC ~@3 AD AE@6
AF@7 AG@5
>`.pickRestart({
A: "~@14 [b2,f#3] ~", B: "~@6 b3@2 a3@2 ~@2 a3@3 ~",
C: "~@2 e3 [f3,f#3]@2 ~ f#3 ~ e4@2 g3 [g#3,f4,f#4] f#4@4, ~@7 g3@3 ~ a3@4 ~", // F#maj7 C#
D: "~@8 [c#3,d3] e3@5 e3@2, ~@9 d#3 ~@6", E: "~@2 f3 f#3@3 f#3 e4 e4@2 g3 [g#3,f4,f#4] f#4@3 ~, ~@7 g3@3 ~ a3@4 ~",
F: "[~ [b3,e4]@13 ~@3 a4@11 ~@5 e4@13 ~@2, g3@13 ~@2 a3@13 ~@3 [b2,e3]@13 ~@4, ~@16 c#4@13 ~@3 g3@12 ~@4]/3", // E5
G: "~ [e4,a4]@14 ~, c#4@15 ~", // A5
H: "[~@2 g3@4 ~@12 a3@4 ~@14 d4@3 ~@7 d4@5 ~@7 e4@15 ~@9 a3@4 ~@14 d4@3 ~@7 d4@6 ~@6 e4@6, ~@6 g3@10 ~@24 d4@5 ~@59 d4@6 ~@18, ~@5 e4@8 e4@8 e4@8 ~@8 e4@8 e4@8 e4@8 ~@3]/8",
I: "~@6 g2 ~@9", J: "~@8 a3 ~@7", K: "~@10 g3 ~@5", L: "~@14 d3 ~", M: "~@6 g2 ~@7 g2 ~", N: "~@2 d3 ~@5 a3 ~@7",
O: "~@2 [c3,g3] ~@13", P: "~@4 g3 ~@9 g3 ~", Q: "~@8 d3 e3@5 e3@2, ~@9 d#3 ~@6",
R: "~@2 [e3,f3] f#3@3 f#3 ~ e4@2 g3 [g#3,f4,f#4] f#4@4, ~@7 g3@3 ~ a3@4 ~", S: "~@2 g3 ~@13",
T: "~@8 [d3,d#3] e3@5 e3@2", U: "~@10 a3 ~@5",
V: "[~ [b3,e4]@13 ~ [a3,c#4,e4]@13 ~@3 [b2,e3]@13 ~@3 [a3,c#4]@16 ~, g3@14 ~@17 g3@15 ~@18]/4", W: "g3 ~ g3 ~@13",
X: "~@2 e2 ~ e2 ~@11", Y: "~@8 a2 ~@7", Z: "~@12 g3 ~@3", AA: "~@6 a3 ~@9", AB: "~@2 a3 ~@3 a3 ~@3 a3 ~@5",
AC: "~@2 a3 ~@13", AD: "e3 f#3@5 ~@2 e4@3 [g#3,f4] f#4@4, ~ f3 ~@6 g3 ~@7",
AE: "[~@16 f#2@2 ~@28 d4@5 ~@7 e4@16 ~@8 a3@6 ~@2 e4@6, ~@10 e4@15 ~ e4@16 e4@16 ~@16 e4@15 ~@7, ~@18 e2@13 ~@5 d4@9 ~@51]/6",
AF: "[~@14 d4@6 ~@14 g3@5 ~@11 a3@6 ~@22 d4@6 ~@22 e4@6, ~@4 d4@9 ~@27 g3@6 ~@2 d3@32 ~@24 g3@6 ~@2, ~@10 e4@16 e4@16 e4@15 ~ e4@15 ~ e4@16 e4@16 ~@6, ~@68 d4@9 ~@35]/7",
AG: "[~@2 a3@5 ~@23 d4@6 ~@6 e4@26 ~@12, ~@10 e4@16 e4@15 ~@39, ~@2 d4 ~@5]/5",
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.3)
// other · electric guitar jazz
const electric_guitar_jazz = note(`<
~@8 A B C D E F C G H I J D K@2 L F M I N O P@2 L Q R@2 L S T U V W X U Y ~ Z@2 L AA AB@2 AC@2 AD@2 AE ~ AF@2 L AG AH
AI AJ@2 R@2 L Q AK AL L AM@2 ~@15 AN AO AP@2 AK AQ L AR AS AT AU AV AW AX AY W AZ U BA W BB U BC W AZ U BD W BE U BF@2
BG ~
>`.pickRestart({
A: "~@8 g3@3 a3@3 g3@2", B: "d4@3 ~@5", C: "~@3 c4 e4@2 d4 e4", D: "d4@6 ~@2 d4@2 e4@5 ~", E: "~@8 g3@3 a3@2 g3@3",
F: "d4@5 ~@11", G: "d4@5 ~@3 d4@2 e4@4 ~@2", H: "~@6 g4@4 e4@3 d4@3", I: "g4 e4@2 ~@5", J: "~@4 d4!3 e4",
K: "[~@3 g4@2 e4!2 d4@2 g4 e4@2 ~@4]/2", L: "~@4 d4 e4 d4 e4", M: "~@6 e4@2 g4@2 ~ e4@3 d4@2",
N: "~@6 d4@2 g4@3 e4@2 d4@3", O: "~@2 a3@5 b3 a3@6 ~@2", P: "[~@8 g4@3 f#4@3 e4@4 d4@2 c4@4 ~@8]/2",
Q: "d4@3 ~ d4 e4@2 ~", R: "[~@8 g4@3 f#4@3 e4@4 d4@2 c4@5 ~@7]/2", S: "d4 ~ b4!2", T: "b4@5 ~@3",
U: "~@6 d5@4 b4@3 a4@3", V: "d5@2 b4@5 ~@9", W: "~@2 b4!2", X: "b4 ~", Y: "d5@2 b4@7 ~@7",
Z: "[~@6 g3 ~ g3@2 a3@2 b3@2 g3@4 ~@2 d4@2 d4@6 ~@4]/2", AA: "d4@4 ~@4 d4@2 e4@5 ~",
AB: "[~@6 g3@2 g3@3 a3@3 g3@4 d4@6 ~@4 c4@3 ~]/2", AC: "[~@6 g3@2 e4@4 d4@2 e4@4 d4@4 ~@2 d4@2 e4@3 ~@3]/2",
AD: "[~@2 d4 g4@2 e4!2 d4@2 g4@2 e4@2 ~ a3@2]/2", AE: "d4@6 d4@2 e4@5 ~@3",
AF: "[~@3 g4@2 e4!2 d4@2 g4 d4 e4@2 g3 g3@2]/2", AG: "d4 ~@3", AH: "~@6 d4@2 g4@3 e4@3 d4@2", AI: "g4@2 ~ e4@5 ~@8",
AJ: "[~@6 d4@2 g4@3 e4@2 d4@5 a3@4 ~ b3 a3@4 ~@4]/2", AK: "~@8 g4@3 f#4@2 e4@3", AL: "d4@3 c4@4 ~@9",
AM: "[d4@4 ~@4 b4@4 b4@10 g4@9 ~]/2", AN: "~@6 e4@2 g4@3 e4@3 d4@2", AO: "g4@3 e4@8 ~@5",
AP: "[~@6 d4@2 g4@3 e4@3 d4@4 ~ b3@2 a3@10 ~, ~@9 a3 ~@6]/2", AQ: "d4@3 c4@5 ~@2 a3@4 a3 ~",
AR: "d4@2 e4@3 ~@3 d4@2 e4@4 ~@2", AS: "~@8 g4@3 g4@3 e4@2", AT: "d4@2 ~ c4@5 ~@2 a3@3 ~@3", AU: "~@3 a3 d4 e4 d4 e4",
AV: "d4@2 ~@2 d4 e4@2 ~", AW: "~@8 g4@3 f#4@3 e4@2", AX: "d4@3 c4@7 ~@6", AY: "~@8 a3 a3@2 ~@5", AZ: "b4@9 ~@7",
BA: "d5@2 b4@9 ~@5", BB: "b4@3 ~", BC: "d5@3 b4@10 ~@3", BD: "d5@3 b4@13", BE: "b4@15 ~",
BF: "[d5 b4@8 ~@3 b4@2 b4@2]/2", BG: "b4@7 ~@9",
})).s("gm_electric_guitar_jazz").gain(0.4)
// chords · sitar
const sitar = note(`<
~@28 A@2 B@2 C@2 D@2 ~@9 E F G ~ E F H I@2 J K L@2 M@2 ~@4 A@2 B@2 C@2 D@2 ~@20 A@2 B@2 C@2 D@2 A@2 B@2 ~@18
>`.pickRestart({
A: "[~@3 g6, c5, ~ g5@7, ~@8 c6@9 ~@3 c6@12, ~@3 e6@5]/2",
B: "[~@24 a6@7 ~, d5, ~@4 a5@25 ~@3, ~@8 d6@8 ~@4 d6@11 ~, ~@12 f#6@11 ~ f#6@2 ~@6]/2",
C: "[~@3 g6, c5, ~@2 g5@13 ~, ~@8 c6@10 ~@2 c6@11 ~, ~@3 e6@3 ~@2]/2",
D: "[~@12 f#6@8 ~@4 a6@5 ~@3, d5@31 ~, ~@4 a5@25 ~@3, ~@8 d6@9 ~@3 d6@9 ~@3]/2", E: "~ a5 f#6 d6", F: "c6",
G: "d6@11 ~@5", H: "d6@3 ~", I: "[c6@25 ~@3 c6@4]/2", J: "d6", K: "~@3 d6", L: "[c6@23 ~@5 c6@4]/2",
M: "[d6@19 ~@13]/2",
})).s("gm_sitar").gain(0.14).pan(0.7)
// chords · electric guitar muted
const electric_guitar_muted = note(`<
~@16 A@2 B@2 A@2 B@2 C D C D A@2 B@2 A@2 B@2 E F G H I J K L M N O P Q R S L T K L U V K L W X Y Z Y AA K L U AA AB
L@2 AA K L U AC K L U AA K L U AD@2 L U AE AF AG AH AI K AJ U AK@2 AL J AA K L AM AN U AO U AP AQ AR U AS AT AU L AV
AQ AW AX AY@2
>`.pickRestart({
A: "[c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~", // C5
B: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~", // D5
C: "[e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
D: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~", // A5
E: "d3@2 d3@2 d3@2 d3@2 g2@2 g2@2 [g2,d3]@2 [g2,d3] ~, g2!2 d3 ~", // G5
F: "[d3,a3]@2 d3@2 d3@2 d3@2 d3@2 [d3,a3]@2 [d3,a3]@2 [d3,a3] ~, ~@3 a3@2 ~@3", // D5
G: "[c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 c3@2 [c3,g3]@2 [c3,g3]@2 [c3,g3] ~", // C5
H: "[d3,a3]@2 [d3,a3]@2 [d3,a3]@2 d3@2 d3@2 [d3,a3]@2 [d3,a3]@2 [d3,a3] ~, ~@3 a3@2 ~@3", // D5
I: "[g2,d3]@2 [g2,d3]@2 [g2,d3]@2 d3@2 ~@2 g2@2 [g2,d3]@2 [g2,d3] ~, ~@3 g2@2 ~@3, ~@2 d3 ~", // G5
J: "[d3,a3]@2 d3@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3] ~", // D5
K: "[c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3] ~", L: "[d3,a3]!8",
M: "[g2,d3]@2 [g2,d3]@2 d3@2 d3@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~, ~ g2 ~@2", // G5
N: "d3@2 d3@2 [d3,a3]@2 d3@2 d3@2 [d3,a3]@2 [d3,a3]@2 [d3,a3] ~, a3@2 ~ a3@2 ~@3", // D5
O: "[c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 c3@2 c3@2 [c3,g3]@2 [c3,g3] ~, ~@2 g3 ~", // C5
P: "[d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 a3 ~", // D5
Q: "[g2,d3]@2 [g2,d3]@2 d3@2 d3@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 d3 ~, ~ g2 ~@2", // G5
R: "a3@2 a3@2 [d3,a3]@2 d3@2 d3@2 [d3,a3]@2 [d3,a3]@2 [d3,a3] ~, d3@2 ~ a3@2 ~@3", // D5
S: "[c3,g3]@4 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3] ~", // C5
T: "[c3,g3] c3!2 [c3,g3]!4 c3, ~ g3@2 ~@5", // C5
U: "[d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3] ~", V: "[c3,g3] c3 [c3,g3]!6",
W: "[d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 d3@2 [d3,a3]@2 [d3,a3] ~", // D5
X: "b2!2 [e2,b2]!4 e2@2, e2@2 ~@4 b2 ~", Y: "[a2,e3]!8", Z: "b2!2 [e2,b2]!6, e2 ~@3", AA: "[c3,g3]!8",
AB: "c3@2 c3@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3] ~", AC: "g3!2 [c3,g3]!6, c3 ~@3",
AD: "[[c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 c3@2 c3@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3] ~, ~@7 g3@2 ~@7]/2", // C5
AE: "[e2,b2] e2 [e2,b2]!2 b2!2 [e2,b2]!2, ~@2 e2 ~", // E5
AF: "[a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3] ~", AG: "b2!3 [e2,b2]!5, e2@3 ~@5",
AH: "[a2,e3]!4 e3 [a2,e3]!2 a2", AI: "[c3,g3]!5 c3!2 [c3,g3], ~@5 g3@2 ~", AJ: "[d3,a3]!2 d3!2 [d3,a3]!4, ~ a3 ~@2",
AK: "[[c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 c3@2 c3@2 c3@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3] ~, ~@7 g3@3 ~@6]/2", // C5
AL: "[d3,a3] d3!3 [d3,a3] d3 [d3,a3]!2, ~ a3 ~@2", // D5
AM: "d3@2 d3@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 d3 ~, a3 ~@3", // D5
AN: "[g2,d3]@2 ~@2 d3@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~, ~ g2@2 ~@5", // G5
AO: "g3@2 g3@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3] ~, c3 ~@3", // C5
AP: "[g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 d3 ~", // G5
AQ: "d3@2 d3@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3] ~, a3 ~@3", // D5
AR: "[c3,g3]@2 [c3,g3]@2 g3@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3] ~", // C5
AS: "d3@2 d3@2 [g2,d3]@2 d3@2 d3@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~, g2@2 ~ g2@2 ~@3", // G5
AT: "a3@2 d3@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3] ~", // D5
AU: "[c3,g3]@2 [c3,g3]@2 c3 ~ c3@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3] ~, ~ g3 ~@2", // C5
AV: "[g2,d3]@2 [g2,d3]@2 [g2,d3]@2 d3@2 d3@2 d3@2 [g2,d3]@2 d3 ~, ~@3 g2@3 ~@2", // G5
AW: "[c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 g3@2 g3@2 [c3,g3]@2 [c3,g3] ~, ~@2 c3 ~", // C5
AX: "[d3,a3]@2 [d3,a3]@2 [d3,a3]@2 a3@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3] ~", AY: "[[g2,d3]@5 ~@3]/2",
})).s("gm_electric_guitar_muted").gain(0.25).pan(0.9)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~@28 A@2 B@2 C@2 D@4 E F G H I J K ~@27 L@2 M@2 N@2 O P Q@2 R@2 S@2 T@2 ~@4 U@2 V@2 W@2 X@2 Y@2 Z@4 AA AB@3 AC AD@4 AE
AF@2 AG AH@3
>`.pickRestart({
A: "[[e3,g3,c4,e4] [e3,c4,e4]@2 [c4,e4]@2 [g3,c4,e4] [c4,e4] c4 [g3,c4] [c4,e4]!2 c4!2 [g3,c4,e4] [c4,e4]!2, c3@16 ~@10 [c3,e3]@5 ~, ~ g3@4 ~ g3@2 ~ g3@4 ~ g3@2, ~@6 e3@13 ~@13, ~@7 e4@2 ~@2 e4@2 ~@3]/2", // C C5 C
B: "[[a3,d4,f#4]!3 d4!2 [a3,d4,f#4] [d4,f#4]!2 [d4,f#4] [d4,f#4]@2 [d4,f#4]!2 [a3,d4,f#4]!2 ~, d3@7 d3@9, ~@3 [a3,f#4]@2 ~ a3@2 a3@3 a3@2 ~@3]/2", // D
C: "[[g3,c4] [g3,c4,e4]@2 e4!2 [g3,c4,e4] [c4,e4] [c4,e4]@2 [c4,e4]@2 e4!2 [c4,e4]!2 [g3,c4,e4], [c3,e3]@31 ~, ~@3 [g3,c4]@2 ~ g3@3 g3@4 g3@2 ~, ~@11 c4@2 ~@3]/2", // C5 C C5
D: "[[a3,d4,f#4]@2 [a3,d4,f#4]@4 [d3,a3,d4,f#4]@4 [d4,f#4]@2 [d4,f#4]@2 f#4@2 f#4@2 [d4,f#4]@2 f#4@2 [a3,f#4]@2 [a3,f#4]@2 [d4,f#4]@2 [d4,f#4]@2 ~@4 [b3,g4]@4 g4@2 g4@2 [b3,g4]@2 [b3,g4]@2 [b3,g4]@2 [a3,d4]@2 d4@2 d4@2 [a3,d4,f#4]@2 [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]@2 [d4,f#4] ~, d3@3 ~@2 [d3,a3]@2 [d3,a3,d4]@2 d3@10 d3@3 d3@5 d3@3 [d3,a3]@2, ~@9 a3@2 ~@2 a3@2 [g3,b3]@2 g3@4 g3@3 ~ [a3,f#4]@2 ~ a3@2 ~@2, ~@10 d4@3 ~@3 b2@7 ~@9, ~@19 b3@2 ~@11]/4", // D Em D5 D D5 G D
E: "c4 [c4,e4]@2 [c4,e4]!4 [g3,c4,e4], g3@3 g3@4 ~, ~ e3@3 e3@2 ~@2", // C
F: "[a3,d4,f#4]@2 [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~, ~ a3@4 ~@3", // D
G: "~ [g3,b3,g4]!2 [b3,g4]@2 g4!2 [b3,g4], d3@5 b3@2 ~, ~@3 g3@3 [d3,g3]@2", // G Em G5
H: "[d3,d4]@2 f#4@2 f#4@2 [a3,d4,f#4]@2 [d4,f#4]@2 ~@4 [d4,f#4] ~, a3@6 ~@2 a3@7 ~, ~ d4@2 ~@2 [d4,f#4]@2 ~, ~@3 d3", // D
I: "c4!3 [g3,e4]!2 c4 [e3,c4] [g3,c4,e4], g3@3 ~@2 [g3,e4]@2 ~, ~ e4@2 c4@2 ~@3", // C
J: "[a3,d4,f#4] [d4,f#4]@2 [d4,f#4] [a3,d4,f#4] [a3,f#4]!2 ~, ~ a3@3 d3@4, ~@5 d4@2 ~", K: "[b2,d3,g3,b3,g4] ~@3",
L: "[[g3,c4] [g3,c4,e4]@2 [g3,c4,e4]@2 [c4,e4]!2 c4 [g3,c4] [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4] [c4,e4] e4, ~@6 e3@10 e3@15 ~, ~@5 c3@10 ~, ~@5 g3@3 ~@6 g3@2, ~@7 e4@2 ~@7]/2", // C5 C C5 C
M: "[~ [d4,f#4]!4 [a3,d4,f#4] [d4,f#4]!2 [a3,d4,f#4] [a3,d4,f#4]@2 f#4!2 [a3,d4,f#4]!2 ~, ~@2 [d3,a3]@4 [d3,a3]@5 ~ d3@20, ~@6 a3@2 ~@3 [a3,d4]@2 ~@3]/2", // D D5
N: "[[g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@4 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 e4@2 [g3,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4] ~, ~@10 g3@4 g3@10 ~@2 g3@5 ~, ~@11 c4@2 ~@3]/2", // C
// … 109 more lines
More by Billy Idol
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.