0:00/0:00
// New Year's Day — U2
// 132 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(132/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 · piano · "A.PIANO 2"
const piano = note(`<
A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 D@2 E@2 D@2 F@2 A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 D@2 E@2 D@2
F@2 D@2 E@2 D@2 F@2 A B C@2 A B C@2 G@4 H@4 I@2 J@2 K L M ~@16 N O P@2 Q O R@2 D@2 E@2 D@2 F@2 D@2 E@2 D@2 F@2 A B C@2
A B S@2 T@4 U@4 V@4 ~
>`.pickRestart({
A: "~@2 [g#3,g#4]@11 ~@3", B: "~@2 [b2,b3]@13 ~", C: "[~ [d#3,d#4]@12 ~@3]/2", D: "[[f#3,f#4]@29 ~@3]/2",
E: "[[g#3,g#4]@29 ~@3]/2", F: "[[e3,e4]@7 ~]/2",
G: "[~@10 g#4@2 c#5 ~@13 b4@2 c#5@2 ~@2 d#2@32, g#2 b1 ~@2, ~@7 d#5@6 ~@2 a#4@17]/4",
H: "[~@10 g#4@2 c#5@2 ~@12 b4@2 c#5@2 ~@2 f#2@15 ~@9 b4@4 a#4@3 ~, g#2@8 b1@8 ~@8 f#2@7 ~, ~@7 d#5@6 ~@2 a#4@13 ~@4]/4",
I: "[a#4@7 ~ a#4@4 b4@2 ~@10 d#5@2 c#5@2 b4@2 ~@2, e2@7 c#5@5 ~@4, ~ e2]/2",
J: "[b4@3 ~ b4@4 a#4@3 ~ b4@2 ~@14 c#5@4, g#2@14 g#4@11 ~@7, ~ g#2]/2", K: "[f#2,a#4]@15 ~", L: "a#4 b4, f#2",
M: "[e2,c#5]", N: "[f#4,d#5] g#4 f#4 [g#4,c#5]@3 ~@2", O: "[f#4,d#5] ~ [f#4,d#5] [g#4,c#5]@4 ~",
P: "[[f#4,c#5]@2 ~ [a#4,d#5]@8 ~@5]/2", Q: "f#4 g#4 f#4 [g#4,c#5]@4 ~, d#5 ~@3",
R: "[[f#4,c#5]@2 ~ [a#4,d#5]@9 ~@4]/2", S: "[~ d#4@12 ~@3]/2",
T: "[~ g#4@4 g#4 c#5 ~@6 b4 c#5 ~@2 [d#3,d#4]@12 ~@3, ~@2 g#3@11 ~ d#5@10 ~@6 a#4@24 ~@10, ~@18 [b2,b3]@13 ~@33]/4", // D# B
U: "[~ g#4@4 g#4 c#5 ~@6 b4 c#5 ~@2 [d#3,d#4]@12 ~@3, ~@2 g#3@11 ~ d#5@12 ~@4 a#4@16 ~@18, ~@18 [b2,b3]@13 ~@33]/4", // D# B
V: "[~ g#4@4 g#4 c#5 ~@6 b4 c#5 ~@2 [d#3,d#4]@12 ~@3, ~@2 g#3@11 ~ d#5@10 ~@6 a#4@22 ~@12, ~@18 [b2,b3]@13 ~@33]/4", // D# B
})).s("gm_piano").gain(0.44).pan(0.4)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
A B C D A B C D A B C D A B C D A B C D A B C E F G H I F G J K A B C D A B C D A B C D A B C D A B C D F G H I F G J
K F G H I F G J K A B C D A B C D L M N O P Q F G J K H I F G J A B C D A B C D A B C D A B C D A B C D A B C D F G H
I F G J K F G H I F G J K A B C D A B C D A B C D A B C D A B C D R
>`.pickRestart({
A: "g#2 ~ g#2@2 b2@2 g#2 ~ g#2 ~ g#2 ~ g#2@3 ~", B: "b1 ~ b1@2 d#2@2 b1@3 ~ b1 ~ b1@2 c#2@2",
C: "d#2 ~ d#2@2 f#2@2 d#2@4 d#2 ~ d#2 ~ g#1@2", D: "d#2 ~ d#2@2 f#2@2 d#2@3 ~ d#2 ~ d#2 ~ f#2@2",
E: "d#2 ~ d#2@2 f#2@2 d#2@3 ~ d#2 ~ d#2@4", F: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~",
G: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2@2", H: "g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~",
I: "g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2@2", J: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~",
K: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2@2 f#2@2", L: "g#2 ~ g#2@2 b2@2 g#2@8 ~@2", M: "b1 ~ b1 ~ d#2@2 b1@5 ~ b1@4",
N: "d#2 ~ d#2@2 f#2@2 d#2@4 d#2 ~ d#2@2 [g1,g#1] ~", O: "d#2 ~ d#2@2 f#2@2 d#2@9 ~",
P: "g#2 ~ g#2@2 b2@2 g#2@3 ~ g#2 ~ g#2@2 g#1@2", Q: "b1 ~ b1@2 d#2@2 b1@3 ~ b1 ~ b1 ~ b1@2", R: "g#2@2 ~@2 g#1 ~@11",
})).s("gm_fretless_bass").gain(0.44)
// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
A B C D A B C D A B C D A B C D A B C D A B C D E F G H I J K L A B C D A B C D A B C D A B C D A B C D M F G H I J K
L M F G H I J K L A B C D A B C D A B C D A N O P Q R S T U V W A B C D A B C D A B C D A B C D A B C D A B C D E F G
H I J K L E F G H I J K L A B C D A B C D A B C D A B C D A B C D X
>`.pickRestart({
A: "g#3@2 g#3@2 b3@2 g#3@2 g#3@2 g#3@2 g#3@2 g#3 ~", B: "b2!2 d#3 b2!5", C: "d#3!2 f#3 d#3!5",
D: "d#3@2 d#3 ~ f#3@2 d#3@2 d#3@2 d#3@2 d#3@2 d#3@2", E: "[f#3,c#4] c#4!2 [f#3,c#4]!5, ~ f#3@2 ~@5",
F: "[f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 ~ [g3,d4], ~@7 [f#3,c#4]", // F#5 G5 F#5
G: "[g#3,d#4]!8", // G#5
H: "[g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4] [c#4,d4]", // G#5 Dmaj7
I: "c#4!2 [f#3,c#4]!6, f#3 ~@3", // F#5
J: "[f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4] [e3,f3,b3,c4]", // F#5 Cmaj7
K: "[e3,b3]!8", L: "[e3,b3]!5 b3!2 [e3,b3], ~@5 e3@2 ~", M: "c#4!3 [f#3,c#4]!5, ~ f#3@2 ~@5",
N: "b2@2 b2@2 d#3@2 b2@2 b2@2 b2@2 b2@2 b2 ~", O: "f#3!4 [f#3,c#4]!3 f#3",
P: "[f#3,c#4]@2 f#3@2 [f#3,c#4]@2 [f#3,c#4] ~ [f#3,c#4]@2 [f#3,c#4] ~ [f#3,c#4]@2 [f#3,c#4] [e3,f3,b3,c4]", // F#5 Cmaj7
Q: "e3!2 [e3,b3] e3 [e3,b3] e3 [e3,b3]!2, b3 ~@3", // E5
R: "[e3,b3]@2 [e3,b3]@2 [e3,b3]@2 [e3,b3]@2 b3@2 b3@2 [e3,b3]@2 e3 [f3,f#3], ~@2 e3 ~", // E5 F#maj7
S: "[g3,g#3,d#4] ~ [g#3,d#4]@2 g#3 ~ g#3@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2, ~ d#4 ~@2", // G#maj7 G#5
T: "[g#3,d#4]@2 g#3 ~ [g#3,d#4]@2 g#3@2 [g#3,d#4]@2 g#3@2 [g#3,d#4]@2 [g#3,d#4] g3", // G#5
U: "[f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4] ~ f#3 ~ f#3@2 f#3@2, ~@3 c#4", // F#5
V: "[f#3,c#4]@2 f#3@2 [f#3,c#4]@2 [f#3,c#4]@2 f#3@2 f#3@2 [f#3,c#4]@2 [f#3,c#4] ~, ~@2 c#4 ~", // F#5
W: "e3!2 [e3,b3]!6, b3 ~@3", X: "g#3@3 ~ g#2 ~@11",
})).s("gm_overdriven_guitar").gain(0.33).pan(0.6)
// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
~@2 A@2 ~@10 B C@4 D@2 E F G H@3 I@3 J@2 K@4 L M N O P@6 Q@2 R@4 S@2 T@2 U@2 V@2 W X Y Z AA AB AC AD AE AF AG@2 AH@2
AI AJ AK ~@13 AL AM@2 AN AO@3 AP AQ AR AS@2 AT@3 AU@2 AV AW AX AY AZ BA BB BC S@2 T@2 U@2 V@2 W X Y Z AA AB AC AD BD
AF AG@2 BE@2 BF N BG O BF BG O BF BG O BF BG O ~@2
>`.pickRestart({
A: "[~@2 a#4@23 ~@7]/2", B: "~@13 g#5@2 ~", C: "[g#5@2 ~ a#5@6 ~@3 f#5@15 ~@5]/4",
D: "[~@6 [f#4,a#4] [f#4,a#4]@5 ~ c#4 ~ c#4, ~@6 c#4@6 ~ f#3@3]/2", // F#
E: "[f#3,c#4]@3 [g3,g#3,d4,d#4] [g#3,d#4]@4 [g#3,d#4]@3 [g3,c4,c#4,d4] ~@4, ~@4 e2 ~@11", F: "~@7 [g#3,c#4,f#4,a#4]",
G: "[g#3,c#4,f#4,a#4]@2 [g#3,c#4,f#4] [g#3,c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2 [g#3,c#4,f#4,a#4]", // F# C#sus4 F#
H: "[~@28 c#4@3 ~@13 d#4@4, f#4@8 f#4@8 f#4@8 f#4@7 ~ g#4@8 g#4@8, ~@4 c#4@8 c#4@8 c#4@8 ~@3 d#4@4 ~ d#4@8 ~@4]/3",
I: "[[d#4,g#4]@2 g#4 [d#4,g#4]@3 [d#4,g#4]@2 g#4 [d#4,g#4] [d#4,g#4]@2 [d#4,g#4]@3 [d4,g4] f#4@4 ~@23 c#4@4 ~, ~@15 c#4@4 ~ c#4@8 c#4@7 ~ c#4@7 ~@5, ~@3 f#4 f#4!2]/3", // G#5 G5
J: "[~@28 f#4@2 ~ [b3,c#4,f#4], b3@12 b3@12 b3@7 ~, ~@4 f#4@11 ~ f#4@12 ~@4, ~@8 g#3@11 ~ g#3@10 ~@2]/2", // Bsus2
K: "[[f#3,b3]@21 ~@8 f#4@3, [c#4,f#4]@35 ~@7 c#4@12 c#4@9 ~, ~@23 f#4@6 ~@3, ~@50 f#3@13 ~]/4", // B5 F#5
L: "[c#4,f#4]@2 [d4,d#4,g4,g#4] ~ [d#4,g#4]@12", M: "g#3@2 ~ g#3!13", N: "g#3!9 ~ g#3 ~ g#3!4", O: "g#3!16",
P: "[g#3@2 g#4!6 [g#3,g#4] ~@5 g#3@4 ~ g#4!6 ~@7]/2", Q: "[g#3@2 g#4!6 [g#3,g#4] ~@5 g#3@4 g#4!7 ~@7]/2",
R: "[g#3@2 g#4!6 [g#3,g#4] ~@5 g#3@4 g#4!7 ~@6 g#3]/2", // G#
S: "[~@7 c#4, f#4@8 f#4@8 f#4@8 f#4@7 ~, ~ c#4@2 c#4@2 c#4@2 ~]/2",
T: "[d#4@4 ~@24 d#4@3 ~, g#4@7 ~ g#4@8 g#4@7 ~ g#4@7 ~, ~ d#4@2 d#4@2 d#4@2 ~]/2",
U: "[c#4@4 ~@24 c#4@3 ~, f#4@8 f#4@8 f#4@8 f#4@7 ~, ~@4 c#4@8 c#4@8 c#4@7 ~@5]/2",
V: "[~@8 f#4@4 [b3,f#4]@3 ~ f#4 [b3,f#4] [b3,f#4]@3 f#4 f#4@2 [b3,f#4]@4 [b3,f#4]@4, f#4 ~@3, ~@4 b3@8 ~@3 b3@2 ~@4 b3@3 ~@8]/2", // B5
W: "f#4@3 f#4 f#4@2 ~ c#4@2 f#4 f#4@2 f#4@2 f#4@2, c#4@6 f#4@3 c#4@3 c#4@4",
X: "[c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] c#4@2 [c#4,f#4]@4", // F#5
Y: "[d#4,g#4]@3 [d#4,g#4] ~ g#4 [d#4,g#4]@3 [d#4,g#4] [d#4,g#4]@2 [d#4,g#4]@3 [d#4,g#4], ~@2 [d#4,g#4] ~@5", // G#5
Z: "[d#4,g#4]@2 [d#4,g#4]@2 g#4 [d#4,g#4] [d#4,g#4]@2 [d#4,g#4]@3 [d#4,g#4] g#4@2 g#4 ~, ~@3 d#4", // G#5
AA: "[c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@3 f#4", // F#5
AB: "[c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] f#4@2 f#4@3 [c#4,f#4] [c#4,f#4]@2 c#4 ~, ~@6 c#4@5 ~@5", // F#5
AC: "b3@3 f#4 f#4@2 f#4@3 f#4 f#4@2 [b3,f#4]@3 [b3,f#4], f#4@2 ~@2 b3@5 b3@3 ~@4", // B5
AD: "[b3,f#4]@2 [b3,f#4]@2 f#4!2 f#4@2 [b3,f#4]@3 f#4 [b3,f#4]@2 ~@2, ~@5 b3@3 ~@8", // B5
AE: "[f#3,c#4,f#4]@2 [g3,d4,g4] [d#4,g#4] [g#3,d#4,g#4]@2 ~@2 [g#3,d#4,g#4]@5 [d4,g4] ~@2", // F#5 G5 G#5 G5
AF: "~@10 [g#3,d#4,g#4]@2 g#4 ~@2 [f#3,c#4]", // G#5 F#5
AG: "[[f#3,c#4,f#4]@4 [f#3,c#4,f#4]@4 [f#3,c#4,f#4]@4 ~@2 [f#3,b3,f#4]@14 ~@3 [c#4,f#4]]/2", // F#5 B5 F#5
AH: "[[f#3,c#4,f#4]@2 [g3,d4,g4] ~ [d#4,g#4]@4 [g#3,d#4,g#4]@4 ~@2 [g#3,d#4,g#4]@4 [c#4,d4,g4] ~@10 [c#4,f#4] [f#3,c#4,f#4]@2, ~ g#3@3 ~@12, ~ [d#4,g#4] ~@14]/2", // F#5 G5 G#5 G F#5 G#5
AI: "[f#3,c#4,f#4]@2 [f#3,c#4,f#4]@2 [f#3,c#4,f#4] ~@2 [f#3,c#4,f#4]", // F#5
AJ: "~ [f#3,c#4,f#4] f#4 [c#4,f#4] [f#3,c#4,f#4] ~@2 [f#3,c#4] [f#3,c#4,f#4]@3 ~@2 [f#3,c#4,f#4] [f#3,c#4,f#4]@2", // F#5
AK: "[f#3,c#4,f#4] ~ [g3,g#3,d4,d#4,g4,g#4]@2 [g#3,d#4,g#4]@4 [g#3,d#4,g#4]@3 [c#4,d4,f#4,g4] ~@4", AL: "~@3 a#5",
AM: "[a#5@2 f#5@6 a5@6 d#5@6 f#5@5 ~ c#5@6]/2", AN: "d#5@5 ~ a#4@6 a#4@4",
AO: "[a#4@2 a#4@2 a#4@8 a#5@6 g5@5 ~ g5@6 d5@5 ~ g5@6 c#5@6]/3", AP: "d#5@5 ~ a#4@10",
AQ: "~@3 f#3, ~@2 g#2@3 ~@3, ~@8 c#3@7 ~", AR: "d#3@3 f#3@3 g#3@2",
AS: "[~ c#3@3 d3@3 g#2@3 a#2@2 ~@2 f#3@2, ~@24 c#3@7 ~]/2",
AT: "[d#3@3 [f3,g3,a3] b3@4 b3@3 ~ a#3@2 f#3@7 g#3 b3@6 ~ g3 d#3@9 [f3,g3,a3] b3@4 a#3@4, ~@14 a#3 ~@9]/3", // F
AU: "[a#3@3 ~ b3@4 c#4@3 a#3@8 ~ a#3@4 a#3@4 a#3@4]/2", AV: "b3 ~",
AW: "g#3 ~@2 g#3!2 g#3@2 g#3 g#3@2 ~@2 g#3 ~ g#3!2", AX: "g#3 ~@3 g#3 ~@2 g#3!9", AY: "g#3!5 ~ g#3!10",
AZ: "g#3@2 g#3!7 ~ g#3!6", BA: "g#3 ~ g#3!14", BB: "g#3!9 ~ g#3!6", BC: "g#3!5 ~ g#3!8 g#3@2",
BD: "[f#3,c#4,f#4]@2 [g3,d4,g4] [d#4,g#4] [g#3,d#4,g#4]@2 ~@2 [g#3,d#4,g#4]@5 d4 ~@2", // F#5 G5 G#5
BE: "[[f#3,c#4,f#4]@2 [g3,d4,g4] ~ [d#4,g#4]@4 [g#3,d#4,g#4]@4 ~@2 [g#3,d#4,g#4]@4 [c#4,d4,g4] ~@13, ~ g#3@3 ~@12, ~ [d#4,g#4] ~@14]/2", // F#5 G5 G#5 G G#5
BF: "g#3@2 ~ g#3!3 ~ g#3!9", BG: "g#3!11 ~ g#3!4",
})).s("gm_overdriven_guitar").gain(0.32).pan(0.6)
// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note(`<
~@19 A@2 B ~@5 C ~@9 D E ~@2 F ~ F ~ F ~ G ~ H ~ H ~@9 I ~@3 C ~ J K C ~@3 L ~@2 M ~@25 N O ~@3 P Q R S ~ T ~ S ~@9 I
~@3 C ~ J U C ~@3 V D E W ~ D W ~ D W ~ D W ~@3
>`.pickRestart({
A: "[~@14 g#3@10 [a2,c#4] ~ a2 ~@5]/2", B: "~@11 f#3 [f3,b3] ~@3", C: "~@15 f#4", D: "~@2 g#3 ~@13",
E: "~@9 g#3 ~ g#3 ~@4", F: "~@2 g#4 ~ g#3 ~ g#3 ~@7 e4 g#3", G: "~@4 g#3 ~ g#3 ~@7 e4 g#3",
H: "~@4 g#3 ~ g#3 ~@7 e4 ~", I: "~@5 f#4 ~@2", J: "~@15 c#4", K: "~@3 g#3 ~@9 [f#3,g3,c#4,f4,f#4] e4 ~",
L: "~@2 [f#3,g3,c4,f4,f#4] ~@10 f#3 ~@2", M: "~@11 [c4,f4] [b3,d#4,e4] ~@3", N: "~@14 g3 ~", O: "~@14 e3 ~",
P: "~@8 g#3 e3 ~@6", Q: "~@10 g#3!2 ~ g#3 ~@2", R: "~ g#3!3 ~ g#3!2 ~@9", S: "~@5 g#3 ~@10", T: "~ g#3 ~@14",
U: "~@3 g#3 ~@9 [f#3,g3,c#4,f4,f#4,g4] e4 ~", V: "~@2 [f#3,g3,c4,f4,f#4] ~@13", W: "~@11 g#3 ~@4",
})).s("gm_overdriven_guitar").gain(0.16).pan(0.6)
// other · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@76 A@4 B@4 C@2 D@2 E F G@2 ~@47 A@12 ~>".pickRestart({
A: "[~@12 c#5@2 d#5@11 ~ b4@2 c#5@2 a#4@28 ~@6, ~@5 g#4@2 ~@25]/4",
B: "[~@10 g#4@2 c#5@2 d#5@11 ~ b4@2 c#5@2 a#4@24 ~@2 b4@3 ~ a#4@4]/4",
C: "[a#4@8 a#4@3 ~ b4@2 c#5@8 ~@2 d#5@2 c#5 ~ b4@4]/2", D: "[b4@4 b4@4 a#4@3 ~ b4@2 g#4@13 ~ c#5@4]/2", E: "a#4@15 ~",
F: "a#4 b4", G: "[c#5@7 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.38)
// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_3 = note(`<
~@2 A@2 ~@11 B@4 ~ C@2 ~ D@5 E F@3 G@6 H I J K L K L K L M L M N M O@7 P Q R S T U V W X Y Z AA AB AC AD AE AF AG ~@14
AH@3 AI AJ@5 AK@3 AL AM AN@2 AO AP AQ AR AS I AT I AU@7 P Q R S T U V W X Y Z AA AB AC AD AV H@2 I AW H I AW H I AW H
I AX ~
>`.pickRestart({
A: "[~@6 a#4@23 ~@3]/2", B: "[~ g#5@2 ~ g#5@4 ~@2 a#5@12 ~@6 f#5@30 ~@6]/4",
C: "[[f#4,a#4]@2 [f#4,a#4]@10 ~@2 c#4@2 ~@2 c#4@2 [f#3,c#4]@3 [g3,g#3,d4,d#4] [g#3,d#4]@4 [g#3,d#4]@3 [g3,c4,c#4,d4], c#4@12 ~@2 f#3@6 ~@4 e2 ~@7]/2", // F# F#5 D#maj7 G#5 Gsus4
D: "[~@2 [g#3,c#4,f#4,a#4]@2 [g#3,c#4,f#4,a#4]@4 [g#3,c#4,f#4]@2 [g#3,c#4,f#4,a#4]@4 [c#4,f#4,a#4]@4 [g#3,c#4,f#4,a#4]@2 ~@28 c#4@3 ~@13 d#4@4 [d#4,g#4]@2 g#4 [d#4,g#4]@3 [d#4,g#4]@2 g#4 [d#4,g#4] [d#4,g#4]@2, ~@20 f#4@8 f#4@8 f#4@8 f#4@7 ~ g#4@8 g#4@8 ~@12, ~@24 c#4@8 c#4@8 c#4@8 ~@3 d#4@4 ~ d#4@8 ~@16]/5", // F# C#sus4 F# G#5
E: "[d#4,g#4]@3 [d4,g4] f#4@4 ~@4 f#4@4, ~@3 c#4@4 ~ c#4@8", // G#5 G5
F: "[~@15 c#4@4 ~@25 b3@4, c#4@7 ~ c#4@7 ~@5 b3@12 b3@12 ~@4, ~@4 f#4@8 f#4@8 ~@4 f#4@11 ~ f#4@12, ~@28 g#3@11 ~ g#3@8]/3",
G: "[f#4@2 ~ [b3,c#4,f#4] [f#3,b3]@42 ~@16 f#4@6 [c#4,f#4]@2 [d4,d#4,g4,g#4] ~ [d#4,g#4]@12 g#3@2 ~ g#3!9, ~@4 [c#4,f#4]@35 ~@7 c#4@12 c#4@9 ~@29, ~@25 f#4@6 ~@17, ~@54 f#3@13 ~@29]/6", // Bsus2 B5 F#5 D#maj7 G#5 F#5
H: "g#3!15 ~", I: "g#3!16", J: "g#3!4 g#3@2 g#4!6 [g#3,g#4] ~@3", K: "~@2 g#3@4 ~ g#4!6 ~@3",
L: "~@4 g#3@2 g#4!6 [g#3,g#4] ~@3", M: "~@2 g#3@4 g#4!7 ~@3", N: "~@3 g#3 g#3@2 g#4!6 [g#3,g#4] ~@3",
O: "[~@3 g#3 ~@28 c#4@4 d#4@4 ~@24 d#4@3 ~ c#4@4 ~@24 c#4@3 ~@9 f#4@4, ~@4 f#4@8 f#4@8 f#4@8 f#4@7 ~ g#4@7 ~ g#4@8 g#4@7 ~ g#4@7 ~ f#4@8 f#4@8 f#4@8 f#4@7 ~ f#4@8 ~@4, ~@8 c#4@8 c#4@8 c#4@8 ~@8 d#4@8 d#4@8 d#4@8 ~@8 c#4@8 c#4@8 c#4@7 ~@9 b3@8]/7",
P: "[b3,f#4]@3 ~ f#4 [b3,f#4] [b3,f#4]@3 f#4 f#4@2 [b3,f#4]@4, ~@3 b3@2 ~@4 b3@3 ~@4", // B5
Q: "[b3,f#4]@4 f#4@3 f#4 f#4@2 ~ c#4@2 f#4 f#4@2, ~@4 c#4@6 f#4@3 c#4@3", // B5
R: "f#4@2 f#4@2 [c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] c#4@2, c#4 ~@3", // F#5
S: "[c#4,f#4]@4 [d#4,g#4]@3 [d#4,g#4] ~ g#4 [d#4,g#4]@3 [d#4,g#4] [d#4,g#4]@2, ~@4 [d#4,g#4] ~@3", // F#5 G#5
T: "[d#4,g#4]@3 [d#4,g#4] [d#4,g#4]@2 [d#4,g#4]@2 g#4 [d#4,g#4] [d#4,g#4]@2 [d#4,g#4]@3 [d#4,g#4]", // G#5
U: "g#4@2 g#4 ~ [c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2, d#4 ~@3", // F#5
V: "[c#4,f#4]@3 f#4 [c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] f#4@2 f#4@3 [c#4,f#4], ~@10 c#4@5 ~", // F#5
W: "[c#4,f#4]@2 c#4 f#4 b3@3 f#4 f#4@2 f#4@3 f#4 f#4@2, ~@4 f#4@2 ~@2 b3@5 b3@3", // F#5
X: "[b3,f#4]@3 [b3,f#4] [b3,f#4]@2 [b3,f#4]@2 f#4!2 f#4@2 [b3,f#4]@3 f#4, ~@9 b3@3 ~@4", // B5
Y: "[b3,f#4]@2 ~@2 [f#3,c#4,f#4]@2 [g3,d4,g4] [d#4,g#4] [g#3,d#4,g#4]@2 ~@2 [g#3,d#4,g#4]@4", // B5 F#5 G5 G#5
Z: "~ [d4,g4] ~@12 [g#3,d#4,g#4]@2", AA: "g#4 ~@2 [f#3,c#4] [f#3,c#4,f#4]@4 [f#3,c#4,f#4]@4 [f#3,c#4,f#4]@4",
AB: "~ [f#3,b3,f#4]@7", // B5
AC: "~@3 [c#4,f#4] [f#3,c#4,f#4]@2 [g3,d4,g4] ~ [d#4,g#4]@4 [g#3,d#4,g#4]@4, ~@3 g#3@3 ~@2, ~@3 [d#4,g#4] ~@4", // F#5 G5 G#5
AD: "~@2 [g#3,d#4,g#4]@4 [c#4,d4,g4] ~@9", // G#5 G
AE: "~ [c#4,f#4] [f#3,c#4,f#4]@2 [f#3,c#4,f#4]@4 [f#3,c#4,f#4]@4 [f#3,c#4,f#4]@2 ~@2", // F#5
AF: "~@2 [f#3,c#4,f#4]@2 ~ [f#3,c#4,f#4] f#4 [c#4,f#4] [f#3,c#4,f#4] ~@2 [f#3,c#4] [f#3,c#4,f#4]@3 ~", // F#5
AG: "~ [f#3,c#4,f#4] [f#3,c#4,f#4]@2 [f#3,c#4,f#4] ~ [g3,g#3,d4,d#4,g4,g#4]@2 [g#3,d#4,g#4]@4 [g#3,d#4,g#4]@3 [c#4,d4,f#4,g4]", // F#5 D#maj7 G#5 Dmaj7
AH: "[a#5@4 a#5@2 f#5@6 a5@6 d#5@6 f#5@5 ~ c#5@6 d#5@5 ~ a#4@6]/3", AI: "a#4@2 a#4!2 a#4@4",
AJ: "[a#5@6 g5@5 ~ g5@6 d5@5 ~ g5@6 c#5@6 d#5@5 ~ a#4@10 ~@12 f#3@4 d#3@6 f#3@6, ~@28 g#2@3 ~@9, ~@60 c#3@7 ~@13]/5",
AK: "[g#3@5 ~ c#3@6 d3@6 g#2@6 a#2@4 ~@4 f#3@4 d#3@3 [f3,g3,a3] b3@4 b3@3 ~, ~@28 c#3@7 ~@13]/3", // F
AL: "a#3@2 f#3@7 g#3 b3@6", AM: "~ g3 d#3@9 [f3,g3,a3] b3@4, a#3 ~@7",
AN: "[a#3@4 a#3@3 ~ b3@4 c#4@3 a#3@8 ~ a#3@4 a#3@4]/2", AO: "a#3 b3@2 ~", AP: "~@4 g#3 ~@2 g#3!2 g#3@2 g#3 g#3@2 ~@2",
AQ: "g#3 ~ g#3!3 ~@3 g#3 ~@2 g#3!5", AR: "g#3!9 ~ g#3!6", AS: "g#3!4 g#3@2 g#3!7 ~ g#3!2", AT: "g#3!13 ~ g#3!2",
AU: "[g#3!2 g#3@2 ~@28 c#4@4 d#4@4 ~@24 d#4@3 ~ c#4@4 ~@24 c#4@3 ~@9 f#4@4, ~@4 f#4@8 f#4@8 f#4@8 f#4@7 ~ g#4@7 ~ g#4@8 g#4@7 ~ g#4@7 ~ f#4@8 f#4@8 f#4@8 f#4@7 ~ f#4@8 ~@4, ~@8 c#4@8 c#4@8 c#4@8 ~@8 d#4@8 d#4@8 d#4@8 ~@8 c#4@8 c#4@8 c#4@7 ~@9 b3@8]/7",
AV: "~@4 g#3@2 ~ g#3!3 ~ g#3!5", AW: "g#3!4 g#3@2 ~ g#3!3 ~ g#3!5", AX: "g#3!4 ~@12",
})).s("gm_overdriven_guitar").gain(0.08).pan(0)
// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft_2 = note(`<
~@20 A B C ~@5 D ~@8 E F ~@2 G H G H G H I H I J I J ~@8 K ~@6 L M D ~@2 N O ~ P Q ~@25 R S ~@2 T U V W ~@13 K ~@6 L M
D ~@2 N E F@2 ~ E F ~ E F ~ E F ~@3
>`.pickRestart({
A: "~@2 g#3@10 [a2,c#4] ~ a2 ~", B: "~@15 f#3", C: "[f3,b3] ~@15", D: "~@3 f#4 ~@12", E: "~@6 g#3 ~@9", F: "~@15 g#3",
G: "~@6 g#4 ~ g#3 ~ g#3 ~@5", H: "~@2 e4 g#3 ~@12", I: "~@8 g#3 ~ g#3 ~@5", J: "~@2 e4 ~@13", K: "~@7 f#4",
L: "~@3 c#4 ~@3 g#3 ~@8", M: "~ [f#3,g3,c#4,f4,f#4] e4 ~@13", N: "~@6 [f#3,g3,c4,f4,f#4] ~@9", O: "~ f#3 ~@14",
P: "~@15 [c4,f4]", Q: "[b3,d#4,e4] ~@15", R: "~@2 g3 ~@13", S: "~@2 e3 ~@13", T: "~@12 g#3 e3 ~@2", U: "~@14 g#3!2",
V: "~ g#3 ~@3 g#3!3 ~ g#3!2 ~@5", W: "~@9 g#3 ~@6",
})).s("gm_overdriven_guitar").gain(0.05).pan(0)
// other · piano · "A.PIANO 2"
const piano_2 = note(`<
A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 C@8 A B@3 A B@3 A B@3 A B@3 A B@3 C@16 A B@3 A B@3 D@8 E@8 ~@15 F G@3 H@4 C@16 A
B@3 A B@3 I J@3 I K@3 I L@3 ~
>`.pickRestart({
// … 72 more lines
More by U2
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.