0:00/0:00
// One — U2
// 108 bpm, 4/4, key E minor. 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: duplicate parts dropped: ch 3 acoustic guitar steel (copy of ch 2 "MarcEboy" electric guitar clean)
// note: Full arrangement: all 181 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(108/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
const piano = note(`<
~@29 A@2 B C D E F G H I J K L@2 M@3 ~@3 N O P Q R S T U V W U X@2 Y Z@4 ~@8 AA@2 Y AB@2 Y AC@3 ~@27 AD AE AF AE AG
~@3 AD AH AI AH AJ@2 ~@56
>`.pickRestart({
A: "[f#4@3 f#4 f#4@2 f#4@3 f#4@3 g4@6 f#4@3 f#4@9 ~@6 f#4@3 f#4 f#4@2 f#4@3 f#4@3]/2", B: "g4@2 f#4 d4 d4@2 ~@2",
C: "f#4@3 f#4 f#4@2 f#4@3 d4@3 e4@6 f#4@3 f#4 g4@2", D: "f#4@6 ~@3 a4@3 b4@3 b4 b4@2 b4@3 a4@3",
E: "g4@3 f#4@3 f#4@6 ~@6 f#4@3 f#4 f#4@2", F: "f#4!2 g4@2 f#4 f#4@3",
G: "~@6 f#4@3 f#4 f#4@2 f#4@3 f#4@3 g4@6, ~@18 f#4 ~@5", H: "f#4 d4 d4@2 ~@2 f#4!2", I: "f#4 d4 e4@2 f#4 f#4@3",
J: "~@6 b4@3 b4 b4@2 b4@3 a4@3 g4@3 f#4@3", K: "f#4@2 g4@3 a4 b4 a4", L: "[g4@2 f#4@2 g4 a4@5 ~ a4 d5@2 c#5@2]/2",
M: "[d5 d5@11]/3", N: "~@12 f#4@3 f#4 f#4@2 f#4@3 f#4@3", O: "g4@2 f#4 f#4@3 ~@2", P: "f#4!4 g4@2 f#4 d4",
Q: "d4@2 ~ d4 f#4!3 d4", R: "e4@6 f#4@3 f#4 g4@2 f#4@6 ~@6", S: "b4@3 b4 b4@2 b4@3 a4@3 g4@3 f#4@3 f#4@6",
T: "~@6 f#4@3 f#4 f#4@2 f#4@3 f#4@3 g4@6", U: "f#4@3 f#4@9 ~@6 b4@3 b4 b4@2",
V: "b4!2 c#5@2 b4 f#4 f#4@2, ~@6 b4 ~@17", W: "~@6 f#4@3 f#4 f#4@2 f#4@3 d4@3 e4@6",
X: "[b4 a4 g4 f#4 f#4@2 g4@3 a4 b4 a4 g4@2 f#4@2]/2", Y: "g4 a4@5 ~ a4", Z: "[d5 c#5 d5 d5@11 ~@2]/4",
AA: "[~@6 g4@3 a4 b4 a4 g4@2 f#4@2]/2", AB: "[d5@2 c#5@2 d5@2 g4@3 a4 b4 a4 g4@2 f#4@2]/2",
AC: "[d5 c#5 d5 d5@6 ~@3]/3", AD: "~@6 e5@3 e5@3 ~@3 e5@3 e5 e5@2 e5@3",
AE: "e5@3 ~@3 e5 e5@2 e5@3 e5@3 ~@3 e5!2 ~ e5@3", AF: "e5@3 f5@3 e5!2 ~ e5@3 e5@3 ~@3 e5!2 ~ e5@3",
AG: "e5@3 e5@3 ~ d#5@2 e5@9 ~@6, ~@3 e5 ~@8", AH: "e5@3 ~@3 e5 e5@2 e5@3 e5@3 ~@3 e5 e5@2 e5@3",
AI: "e5@3 f5@3 e5 e5@2 e5@3 e5@3 ~@3 e5 e5@2 e5@3", AJ: "[e5@3 e5@3 g5 g5@28 ~@13, ~@7 e5 ~@40]/2",
})).s("gm_piano").gain(0.49)
// chords · electric guitar clean · "MarcEboy"
const electric_guitar_clean = note(`<
A@2 B@2 C@2 D@2 E F G H I J K ~ L M N O P@2 Q ~@5 R S T U V W X N L Y Z@2 AA AB@2 AC@4 ~@2 AD AE S AF AG@2 L AH AI O
AJ@3 AK AL@4 AM@2 AN AO AP@2 AQ AR AS@2 AT AU@2 AT AU@2 AV AW@9 AX@3 AY@2 AZ AY@2 BA@3 BB BC@2 BD@4 BE BF BE BF BG BH
BI BH BJ BF BE BF BK BL@3 BM BN BO BL@3 BP BQ BO BL@4 BR BS BT BS BU BV BW BV BX BY BZ BY CA ~@5 CB CC CD CE CF CC CD
CC CG CH BL@3 CI CJ CK CL CM CN CO CP CQ CR
>`.pickRestart({
A: "[~@15 e3 f#3@2 a3@2 ~ b3@15 ~@3 d4 c#4@2 b3@3 ~@3]/2",
B: "[~ c#4@2 a3@3 ~@3 d4@3 ~ c#4@2 b3@21 ~@3 f#4 e4@2 ~ e4@2 d4 ~@2, d4 ~@5 d4 ~@14 d4 ~@2]/2",
C: "[d4 c#4 g3 a3 c#4@2 ~ g3@2 a3@3 b3@18 b3@3 c#4 d4@2 c#4@12, ~@3 b3 ~@20]/2",
D: "[b3@3 c#4@3 ~ c#4@2 a3@3 b3@24 ~@12, ~@3 d4 ~@20]/2", E: "~@15 [f#4,b4,d5] ~@2 b5@3 ~@3, ~@5 f#5 ~@2",
F: "~ g5@2 f#5 g5@2 d5@18, a5 ~@11", G: "~@3 d4 c#4@2 d4@3 ~@4 d4@2 e4@3 ~@3 f#4 e4@2, ~@6 e4 ~@5",
H: "f#4 ~ g4!2 f#4@4", I: "~@3 b3 d4@2 ~ g4@2 a4 ~@3 d4@2 f#4 g4@2 b4@2 ~ b3 d4@2, ~@3 f#4 ~@2 b3 ~@5",
J: "~ b4@2 c#5@3 d5@3 e5@3 d5@3 c#5@3 b4@3 c#5@3, f#4@2 ~@4 c#5 ~@2 d5 ~@14", K: "c#5@2 d5 b4@9",
L: "b2@3 f#3@3 b2@3 d3 d3@2 f#3@3 d3@3 g2@3 f#3@3", M: "g2@3 d3@3 f#3!2 ~ d3@3 b2@3 f#3@3 b2@3 d3 d3@2",
N: "f#3@3 d3@3 g2@3 f#3@3 g2@3 d3@3 f#3 f#3@2 d3@3", O: "b2@3 f#3@3 b2@3 d3 d3@2 f#3@3 d3@3 a2@3 f#3@3",
P: "[a2@3 d3@3 f#3!2 ~@4 g2@3 f#3@3 g2@3 d3 d3@2 f#3@3 d3@3 e2@3 f#3@6 e3@3 f#2@3 c#3@3, ~@9 g3@21 ~@3 e3 ~@14]/2",
Q: "g2 d3!2 g2 a2 e3 ~@2", R: "~@6 b2 f#3", S: "b2@3 d3 d3@2 f#3@3 d3@3 g2@3 f#3@3 g2@3 d3@3",
T: "f#3 f#3@2 d3@3 b2@3 f#3@3 b2@3 d3 d3@2 f#3@3 d3@3", U: "g2 f#3 g2 d3 [a2,d3]@2 b2 f#3",
V: "b2@3 d3 d3@2 f#3@3 d3@3 a2@3 f#3@3 a2@3 d3@3", W: "f#3!2 ~@4 g2@3 f#3@3 g2@3 d3 d3@2 f#3@3 d3@3, ~ g3@7",
X: "e2@3 b2 ~@2 f#2@3 b2 ~@2 b2@3 f#3@3 b2@3 d3 d3@2", Y: "g2@3 d3@3 [a2,d3]@6 b2@3 f#3@3 b2@3 d3 d3@2",
Z: "[f#3@3 d3@3 a2@3 f#3@3 a2@3 d3@3 f#3 f#3@2 ~@3 g2@3 f#3@3 g2@3 d3 d3@2 f#3@3 d3@3 e2@3 b2 ~@2, ~@7 g3@7 ~@2]/2",
AA: "f#2@3 b2 ~@2 [g2,d3,g3]@9 [a2,e3,a3]@3 [b2,f#3,b3]@3 [a2,e3,a3]@3", // G5 A5 B5 A5
AB: "[[g2,d3,g3]@2 [f#2,c#3,f#3]@2 [b2,f#3,b3]@2 [a2,e3,a3]@3 [b2,f#3,b3] [c#3,g#3,c#4] [b2,f#3,b3] [a2,e3,a3]@2 c3@2]/2", // G5 F#5 B5 A5 B5 C#5 B5 A5
AC: "[c#3 d3@12 ~@3]/4", AD: "~@6 b2@3 f#3@3 b2@3 d3 d3@2 f#3@3 d3@3",
AE: "g2@3 f#3@3 g2@3 d3@3 f#3 f#3@2 d3@3 b2@3 f#3@3", AF: "[a2,d3]@6 b2@3 f#3@3 b2@3 d3 d3@2 f#3@3 d3@3",
AG: "[a2@3 f#3@3 a2@3 d3@3 f#3 f#3@2 ~@3 g2@3 f#3@3 g2@3 d3 d3@2 f#3@3 d3@3 e2@3 b2 ~@2 f#2@3 b2 ~@2, ~@5 g3@7 ~@4]/2",
AH: "g2@3 d3@3 f#3 f#3@2 d3@3 b2@3 f#3@3 b2@3 d3 d3@2", AI: "f#3 d3 g2 f#3 g2 d3 [a2,d3]@2",
AJ: "[a2@3 d3@3 f#3 f#3@2 ~@3 g2@3 f#3@3 g2@3 d3 d3@2 f#3@3 d3@3 e2@3 b2 ~@2 f#2@3 b2 ~@2 [g2,d3,g3]@9 [a2,e3,a3]@3 [b2,f#3,b3]@3 [a2,e3,a3]@3 [g2,d3,g3]@6 [f#2,c#3,f#3]@6, ~@3 g3@7 ~@14]/3", // G5 A5 B5 A5 G5 F#5
AK: "[b2,f#3,b3]@2 [a2,e3,a3]@3 [b2,f#3,b3] [c#3,g#3,c#4] [b2,f#3,b3]", // B5 A5 B5 C#5 B5
AL: "[[a2,e3,a3]@6 c3@6 c#3@6 d3@66 ~ f#4@2 d4 f#4@2 a4@6, ~@42 a4 ~@5]/4", // A5
AM: "[a4@3 g4@3 f#4@3 e4@3 f#4@3 g4 f#4@2 d4@12 d5@3 c5@3 b4@3 a4@3 b4@3 c5@3]/2",
AN: "g4@12 ~ f#5@2 d5 f#5@2 a5@6, ~@6 a5 ~@5", AO: "a5@3 g5@3 f#5@3 g5 f#5@2 d5@6 d5@3 f#5@3",
AP: "[g5@3 a5@3 b5 a5 g5 b5 a5 g5 b5 a5 g5 f#5 g5@2 ~ f#5@2 d5@15 ~@6 [d4,g4]@6, ~@9 e5 ~@14]/2", // G5
AQ: "[d4,g4] g4 f#4 [d4,f#4] [g4,c5]!4, ~ d4@2 ~@5", // G5 D C5
AR: "[g4,b4]@3 ~@3 c6 a5 f5 c6 a5 f5 c6 a5 f5 c6 a5 f5 c6 a5 f5 c6 a5 f5", // G
AS: "[~ f5@2 e5@3 ~ f5@2 e5@9 [g2,d3,g3]@9 [a2,e3,a3]@3 [b2,f#3,b3]@3 [a2,e3,a3]@3 [g2,d3,g3]@6 [f#2,c#3,f#3]@6, [e5,c6] ~@2 [e5,c6] ~@20]/2", // G5 A5 B5 A5 G5 F#5 C
AT: "[g2,f#3,b3]@2 [a2,e3,a3]@3 [b2,f#3,b3] [c#3,g#3,c#4] [b2,f#3,b3]", // Gmaj7 A5 B5 C#5 B5
AU: "[[a2,e3,a3]@2 [b2,f#3,b3]@2 [c#3,g#3,c#4]@2 [g2,d3,g3]@3 [a2,e3,a3] [b2,f#3,b3] [a2,e3,a3] [g2,d3,g3]@2 [f#2,c#3,f#3]@2]/2", // A5 B5 C#5 G5 A5 B5 A5 G5 …
AV: "[g2,f#3,b3]@2 [e3,a3]@3 [d3,g3] [e3,a3] [f#3,a3]", // Gmaj7 A5 G5 A5 F#m
AW: "[[g3,b3]@6 [g3,b3]@3 [a3,c4]@3 [g3,b3]@6 [b3,d#4,f#4]@12 [b3,d#4,f#4]@6 ~ a3@2 g3@15 [e3,a3]@9 [d3,g3]@3 [e3,a3]@3 [f#3,a3]@3, ~@18 b3 ~@17]/3", // G Am G B A5 G5 A5 F#m
AX: "[[g3,b3]@6 [g3,b3]@3 [a3,c4]@3 [g3,b3]@6 [b3,d#4,f#4]@12 [b3,d#4,f#4]@6 ~ a3@2 g3@15 [e3,g3]@3 [e3,g3]@3 [e3,g3]@3 [e3,a3]@3 [e3,g3]@3 d3@3, ~@18 b3 ~@17]/3", // G Am G B Em A5 Em
AY: "[[d3,f#3]@3 [d3,f#3]@3 [d3,f#3]@3 [d3,g3]@3 [d3,f#3]@6 [b2,f#3,b3]@9 f#2@3 [b2,f#3,b3]@3 f#2@3 [c3,g3,c4]@3 [c3,g3] [c3,g3]@2 [c3,g3,c4]@3 g2@3]/2", // D G5 D B5 C5
AZ: "[c3,g3,c4] g2 [e3,g3]!3 [e3,a3] [e3,g3] d3", // C5 Em A5 Em
BA: "[[c3,g3,c4]@3 g2@3 [e2,e3,g3]@48 e2!6 [e2,b2,e3]@3 ~@3 e2!6]/3", // C5 Em E5
BB: "[e2,b2,e3]@3 ~@3 e2!6 [e2,b2,e3]@3 ~@3 e2!6", BC: "[e2,b2,e3]@3 ~@3 e2!6 [e2,b2,e3]@6 e2!6",
BD: "[b2,e3]@3 [c3,f3]@3 e2!6 [e2,b2,e3]@6 e2!6", BE: "[b2,e3]@3 [c3,f3]@3 e2!6 [b2,e3]@3 ~@3 e2!6",
BF: "[b2,e3]@3 ~@3 e2!6 [b2,e3]@3 ~@3 e2!6", BG: "[b2,e3]@3 [c3,f3]@3 e2!6 e3@6 e2!6", BH: "e3@3 f3@3 e2!6 d3@6 e2!6",
BI: "d3@3 f3@3 e2!6 e3@6 e2!6", BJ: "d3@3 b2@3 e2!6 [b2,e3]@3 ~@3 e2!6",
BK: "[b2,e3]@3 [c3,f3]@3 e2!6 [b2,e3]@3 e2!6 [b2,e3]@3", BL: "e2!3 [c3,f3]@3 e2!6 [b2,e3]@3 e2!6 [b2,e3]@3",
BM: "e2!3 [c3,f3]@3 e2!6 e2@2 ~ e2!6 e2@2 ~", BN: "e2!3 e2@2 ~ e2!6 e2@2 ~ e2!7 ~@2",
BO: "e2!12 [b2,e3]@3 e2!6 [b2,e3]@3", BP: "e2!3 [c3,f3]@3 e2!6 e2@2 ~ e2!7 ~@2", BQ: "e2!3 e2@2 ~ e2!7 ~@2 e2!7 ~@2",
BR: "e2!3 [c3,f3]@3 e2!6 [e2,b2,e3]@3 [e2,b2,e3]@3 e2!6", // F5 E5
BS: "[e2,b2,e3]@3 [e2,b2,e3]@3 e2!6 [b2,e3]@3 [c3,f3]@3 g2!6", // E5 F5
BT: "[g2,d3,g3]@3 [g2,d3,g3]@3 e2!6 [e2,b2,e3]@3 [e2,b2,e3]@3 e2!6", // G5 E5
BU: "[g2,d3,g3]@3 [g2,d3,g3]@3 g2!6 [g2,d3,g3]@3 [g2,d3,g3]@3 g2!6", // G5
BV: "[g2,d3,g3]@3 [g2,d3,g3]@3 g2!6 [d3,g3]@3 [d#3,g#3]@3 f2!6", // G5 G#5
BW: "[f2,c3,f3]@3 [f2,c3,f3]@3 g2!6 [g2,d3,g3]@3 [g2,d3,g3]@3 g2!6", // F5 G5
BX: "[f2,c3,f3]@3 [f2,c3,f3]@3 g2 g2@2 [g2,d3,g3]@3 g2!2 ~ [g2,d3,g3]@3 g2!2 ~ [g2,d3,g3]@3", // F5 G5
BY: "g2!2 ~ [g2,d3,g3]@3 f2!6 [f2,c3]@3 [f2,c3]@3 f2!6", // G5 F5
BZ: "[f2,c3]@3 [f2,c3]@3 g2!2 ~ [g2,d3,g3]@3 g2!2 ~ [g2,d3,g3]@3 g2 g2@2 [g2,d3,g3]@3", CA: "[f2,c3]!2 ~@6",
CB: "~@6 [e4,g4]!3 [d4,f#4]@3 [b3,d4]@3 [f#4,a4]!3 [e4,g4]@3 [b3,e4]@3", // Em D Bm F#m Em E5
CC: "[g4,b4]!3 [f#4,a4]@3 [g4,b4] [f#4,a4] [e4,g4] [f#4,a4]@3 [f#4,a4] [e4,g4] [d4,f#4] [e4,g4]@3 [e4,g4] [d4,f#4] [c#4,e4] [d4,f#4]@3", // G F#m G F#m Em F#m Em D …
CD: "[d4,f#4] [c#4,e4] [b3,d4] [c4,e4]@3 [e4,g4]!3 [d4,f#4]@3 [b3,d4]@3 [f#4,a4]!3 [e4,g4]@3 [b3,e4]@3", // D C#m Bm C Em D Bm F#m …
CE: "[g4,b4]!3 [f#4,a4]@3 [g4,b4] [f#4,a4] [e4,g4] [f#4,a4]@3 [f#4,a4] [e4,g4] [d4,f#4] [e4,g4]@3 [a4,c5] [g4,b4] [f#4,a4] [g4,b4]@3", // G F#m G F#m Em F#m Em D …
CF: "[g4,b4] [f#4,a4] [e4,g4] [f#4,a4]@3 [e4,g4]!3 [d4,f#4]@3 [b3,d4]@3 [f#4,a4]!3 [e4,g4]@3 [b3,e4]@3", // G F#m Em F#m Em D Bm F#m …
CG: "[d4,f#4] [c#4,e4] [b3,d4] [c4,e4]@3 [c#4,e4] [b3,d4] [a3,c#4] [b3,d4]@3 [b3,d4] [a3,c#4] [g3,b3] [a3,c#4]@3 [a3,c#4] [g3,b3] [f#3,a3] [g3,b3]@3", // D C#m Bm C C#m Bm A Bm …
CH: "[f#3,b3] [e3,a3] [d3,g3] [f#3,a3]@3 e2!6 [b2,e3]@3 e2!6 [b2,e3]@3", // B5 A5 G5 F#m E5
CI: "e2!3 [c3,f3]@3 g2!2 ~ [g2,d3,g3]@3 g2!2 ~ [g2,d3,g3]@3 g2!2 ~ [g2,d3,g3]@3", // F5 G5
CJ: "g2 g2@2 [g2,d3,g3]@3 e2!6 [b2,e3]@3 e2!6 [b2,e3]@3", // G5 E5
CK: "e2!3 [c3,f3]@3 g2 g2@2 [g2,d3,g3]@3 g2!2 ~ [g2,d3,g3]@3 g2!2 ~ [g2,d3,g3]@3", // F5 G5
CL: "g2!2 ~ [g2,d3,g3]@3 e2!6 [e2,b2,e3]@3 [e2,b2,e3]@3 f2!2 ~ [f2,c3,f#3]@3", // G5 E5 F
CM: "f2!2 ~ [f2,c3,f#3]@3 e2!6 [e2,b2,e3]@3 [e2,b2,e3]@3 f2 f2@2 [f2,c3,f#3]@3", // F E5 F
CN: "f2!2 ~ [f2,c3,f#3]@3 e2!6 [e2,b2,e3]@3 [e2,b2,e3]@3 f2!2 ~ [f2,c3,f#3]@3", // F E5 F
CO: "f2 f2@2 [f2,c3,f#3]@3 e2!6 [e2,b2,e3]@3 [e2,b2,e3]@3 g2!2 ~ [g2,d3,g3]@3", // F E5 G5
CP: "g2!2 ~ [g2,d3,g3]@3 g2 g2@2 [g2,d3,g3]@3 g2!2 ~ [g2,d3,g3]@3 e2!6", // G5
CQ: "[b2,e3]@3 e2!6 [b2,e3]@3 e2!3 [c3,f3]@3 [e2,b2,e3]!6", CR: "[e2,b2,e3]@2 ~ [e2,b2,e3]!7 ~@14",
})).s("gm_electric_guitar_clean").gain(0.49)
// other · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~@22 A B@2 C D@2 E ~@14 F G H I G J K ~@13 A B@2 C B@2 C B@2 C B@2 L ~@7 M N O P N O P N O P N O Q ~@85
>`.pickRestart({
A: "~@6 d3 d4", B: "[a3@3 d4@6 d4@3 e4@3 d4 e4 d4 c4 d4 c4 b3@6 b3@3 a3@6 a3@3 b3@3 c4@6]/2",
C: "b3@2 g3@2 b3 g3 d3 d4", D: "[a3@3 d4@6 d4@3 e4@3 d4 e4 d4 c4 d4 c4 b3@6 b3@3 a3@6 a3@3 b3@3 c4@3 b3@3]/2",
E: "a3 g3 c3 ~", F: "~@2 d3 d4 a3 d4@2 d4", G: "e4@3 d4 e4 d4 c4 d4 c4 b3@6 b3@3 a3@6", H: "a3 b3 c4@2 b3@2 g3@2",
I: "b3 g3 d3 d4 a3 d4@2 d4", J: "a3 b3 c4 b3 a3@2 g3@2", K: "c3 ~@3", L: "b3@2 g3@2 b3 g3 ~@2",
M: "~@6 [a2,e3] [a2,e3]@2 [a2,e3] [a2,e3]@2 [a2,e3]@3 b2@3 c3@3 a2@3", N: "[g2,d3]@2 [g2,d3]!4 [b2,f#3] f#2",
O: "[b2,f#3]@3 f#2@3 [b2,f#3]@3 f#2@3 ~ a2@2 g2@3 [c3,g3]@3 g2@3, ~@6 [b2,g3] ~@5", // B5 C5 Em
P: "[c3,g3]@3 a2@3 [a2,e3] [a2,e3]@2 [a2,e3] [a2,e3]@2 [a2,e3]@3 b2@3 c3@3 a2@3", Q: "[c3,g3] a2 ~@6",
})).s("gm_acoustic_guitar_steel").gain(0.49)
// other · overdriven guitar
const overdriven_guitar = note("<~@135 A B C D E F@2 G H I J K@2 L M N O P Q R@3 S T ~@22>".pickRestart({
A: "~@6 [g5,b5] [e5,b5] [e5,g5] [g5,b5] [e5,b5] [e5,g5] [g5,b5] [e5,b5] [e5,g5] [e5,b5] [g5,b5] [e5,g5] [e5,c6] [g5,c6] [e5,g5] [e5,c6] [g5,b5] [e5,g5]", // G E5 Em G E5 Em G E5 …
B: "[e5,c6] [g5,c6] [e5,g5] [e5,c6] [g5,c6] [e5,g5] [d5,f#5] [b4,f#5] [b4,d5] [d5,f#5] [b4,f#5] [b4,d5] [d5,f#5] [b4,f#5] [b4,d5] [d5,f#5] [b4,f#5] [b4,d5] [d5,g5] [b4,g5] [b4,d5] [d5,g5] [b4,g5] [b4,d5]", // C C5 Em C C5 Em D B5 …
C: "[d5,g5] [b4,g5] [b4,d5] [d5,g5] [b4,g5] [b4,d5] [c5,e5] [a4,e5] [a4,c5] [a4,e5] [c5,e5] [a4,c5] [a4,e5] [c5,e5] [a4,c5] [a4,e5] [c5,e5] [a4,c5] [c5,f5] [a4,f5] [a4,c5] [c5,f5] [a4,f5] [a4,c5]", // G5 Em Bm G5 Em Bm C A5 …
D: "[c5,f5] [a4,f5] [a4,c5] [a4,f5] [c5,f5] [a4,c5] [b4,e5] c#5 e5 b4 [a4,e5] ~ [b4,e5]@2 [a4,e5]@2 [g4,e5]@2 [a4,e5]@2 [g4,e5]@2 [f#4,e5]@2", // F5 Dm Am Dm F5 Am E5 A5 …
E: "[g4,e5]@2 [f#4,e5]@2 [e4,e5]@2 b4!7 b4@2 f#5!3 g5!3 a5!3", // C F#7 E
F: "[d5!3 a5!3 d6@6 d6@3 d6@12 e5 g5 ~ a5 g5 e5 d5 e5 f#5 [g5,a5] [e5,g5] ~ d5 e5 f#5 [g5,a5] [e5,g5] ~ c5 e5 f#5]/2", // Gsus2 Em Gsus2 Em
G: "[g5,a5] [e5,g5]@2 e5 f#5 g5 a5 g5 [d5,e5] e5 f#5 g5 a5 g5 [d5,e5] g5 a5 ~ b5 [g5,a5] d5 b5 [g5,a5] d5", // Gsus2 Em Dsus2 Gsus2
H: "[a5,b5] [d5,g5] ~ [a5,b5] [d5,g5] ~ b5 a5 d5 b5 a5 d5 b5 a5 d5 b5 a5 g5 ~ g5 ~ f5 g5@2, ~@9 f5 ~@2", // Asus2 G5 Asus2 G5
I: "f5 g5 ~@2 g5 ~ a#5 g5 ~@2 g5 ~ a#5 g5@2 f5 g5 ~ b5 a5 g5 a5@3, ~@3 f5@2 ~@4 f5@2 ~@13",
J: "a5 g5 f#5 g5@3 f#5 e5 d5 e5@3 [d5,e5] [c5,d5] ~ d5@3 [c5,d5] [b4,c5]@2 c5@3", // Dsus2 Csus2 Cmaj7
K: "[[b4,c5] [a4,b4] ~ b4 a4 g4 a4 g4 e4 g4 e4 g4 a4 ~ a4 ~ a4 ~ a4 ~ b4@8 [e4,g4] ~ g4@2 e4@2 g4@2 e4@2 d#4@2 d4@2 b3@2 a#3@2 a3@2]/2", // Cmaj7 Asus2 Em
L: "g3@6 g4 g4@2 [a#4,d5]@3 g4!2 ~ [a#4,d5]@3 g4!2 ~ [g#4,d5]@3", M: "g4!2 ~ [a#4,d5]@3 [c5,e5]@9 [c5,e5]@9",
N: "[c5,e5] [a#4,d5] g4 [b4,d5]@3 g4!2 ~ [a4,d5]@3 g4!2 ~ [a4,d5]@3 g4 [c5,e5]@3 [c5,e5] ~", // C A# Bm D5 C
O: "[b4,d5]@4 d4 ~@2 g5 ~ f5 g5@2 f5 g5 ~@2 g5 ~ f5 g5 ~@2 g5 ~, ~@6 f5@2 ~@7 f5@2 ~@4 f5@2 ~", // Bm
P: "f5@6 g2!6 g2@2 ~ g2!6 f#2!3", Q: "f#2!3 e2!9 [b2,e3]@3 e2!6 [b2,e3]@3",
R: "e2!3 [c3,f3]@3 e2!6 [b2,e3]@3 e2!6 [b2,e3]@3", S: "e2!3 [c3,f3]@3 e2!6 e2@2 ~ d3!6 c#3!3", T: "c3!3 b2!3 ~@18",
})).s("gm_overdriven_guitar").gain(0.49)
// bass · electric bass pick
const bass = note(`<
~@15 A B@2 C D@2 E F G H I G H J@2 K L@2 M N C O P Q R S T@2 U V W X V Y Z AA@2 AB AC@2 AD@2 AE AF@2 AG@2 AH AI AJ H I
G H I G H I G H AK@2 AH AL@2 AH AL@2 AM AN AO AP AQ AR AS AN AT AS AQ AR AU AV@2 AU AW AX AY@3 AZ BA@2 BB@4 BC AZ BC
AZ BD BE BF BE BG AZ BC AZ BH BI@3 BJ BK BL BI@3 BM BN BL BI@3 BO BP BQ BR BQ BS BT BU BT BV BW BX BW BY BZ BI@3 CA BZ
BI@12 CB CC CD CE CF CG CH CI CJ CK
>`.pickRestart({
A: "~ b1 ~ b1 ~ b1 ~ b1", B: "[b1@2 b2 b1 c2 b1 g1@3 g1 e1 f#1 b1@2 b2 b1]/2", C: "c2 b1 g1@3 g1 e1 f#1, b1 ~@23",
D: "[b1@6 b2@3 b1@3 c2@3 b1@3 a1@9 a1@3 ~ g2 ~ e2@3 g1@9 g1@3, ~@12 b1 ~@17 a2@2 ~@16]/2",
E: "~ f#1@2 g1@3 e1@9 e1@3 f#1@3 c#2@3, e1 ~@11", F: "g1@2 d2 g1 a1 e2 d2 a2", G: "d2 d3 e2 c2 g1@2 g2 g1",
H: "a1 g1 f1@2 f2 f1 f2 f1", I: "e1 b1 e2 b1 e2 b1 d2 a2", J: "[e1@3 e1 c2@2 b1@3 b2 c2 b1 g1@3 g1, ~@12 b1 ~@35]/2",
K: "e1 f#1 b1 b2@2 b1 c2 b1", L: "[g1@6 g1@3 a1@3 d2@6 b1@9 b1@3 ~ c2@2 b1@3 a1@9 a1@3, ~@12 b1 ~@17 b1@2 ~@16]/2",
M: "~ g2 ~ e2@3 g1@9 g1@3 ~ f#1@2 g1@3, a2 ~@8 e1 ~@2", N: "e1@3 b1 ~@2 f#1@3 b1 ~@2 b1@6 b2@3 b1@3",
O: "b1@3 b1 c2 b1 g1@2, ~@12 b1 ~@11", P: "g1 a1 d2@2 b1@3 b1, ~@6 b1 ~@17",
Q: "c2@3 b1@3 a1@9 a1@3 ~ g2@2 e2@3, b1 ~@17 a2@2 ~@4", R: "g1@9 g1@3 ~ f#1@2 g1@3 e1@6, ~@6 e1 ~@5",
S: "f#1 e1 g1@3 a1 b1 a1", T: "[g1@2 f#1@2 b1@2 a1@3 b1 c#2 b1 a1@2 c2 g2]/2", U: "c#2 g#2 d2@2 a2 d2 e2 c2",
V: "g1@2 g2 g1 a1 g1 f1@2", W: "f2 f1 f2 f1 e1 b1 e2 b1", X: "e2 b1 d2 a2 d2 d3 e2 c2", Y: "f2 f1 f2 f1 e1@3 e1",
Z: "c2@2 b1@3 b2 c2 b1, b1 ~@23", AA: "[g1@3 g1 e1 f#1 b1 b2@2 b1 c2 b1 g1@2 g1 a1]/2",
AB: "d2@6 b1@9 b1@3 ~ c2 ~ b1@3, b1 ~@17 b1@2 ~@4",
AC: "[a1@9 a1@3 ~ g2@2 e2@3 g1@9 g1@3 ~ f#1@2 g1@3 e1@3 b1 ~@2 f#1@3 b1 ~@2, ~@6 a2 ~@8 e1 ~@8]/2",
AD: "[b1@2 b2 b1 c2 b1 g1@3 g1 e1 f#1 b1@3 b1, ~@12 b1 ~@35]/2", AE: "c2 b1 g1@2 g1 a1 d2@2, b1 ~@17 b1 ~@5",
AF: "[b1@9 b1@3 c2@3 b1@3 a1@9 a1@3 ~ g2@2 e2@3 g1@9 g1@3, ~@12 b1 ~@17 a2@2 ~@16]/2",
AG: "[~ f#1@2 g1@3 e1@6 f#1@3 e1@3 g1@9 a1@3 b1@3 a1@3 g1@6 f#1@6, e1 ~@23]/2", AH: "b1@2 a1@3 b1 c#2 b1",
AI: "a1@2 c2 g2 c#2 g#2 d2@2", AJ: "a2 d2 e2 c2 g1@2 g2 g1", AK: "[e1 b1 e2 b1 e2 b1 g1@3 a1 b1 a1 g1@2 f#1@2]/2",
AL: "[a1@2 b1@2 c#2@2 g1@3 a1 b1 a1 g1@2 f#1@2]/2", AM: "b1@2 a1@2 d2 a1!2 d2", AN: "g1!3 d2 g1 e1 b1@2",
AO: "b1 e1 b1 e1 c2@2 c2 f1", AP: "c2 e1 a1!2 d2 a1 d2 a1", AQ: "g1!3 a1 g1 e1 b1@2",
AR: "b1@3 e1@3 b1@3 a1@3 c2@3 c2 c2@2 c2@3 f1@3", AS: "c2 e1 a1 d2 a2 d2 a1 e1", AT: "b1 e1 b1 e1 c2!3 f1",
AU: "c2@2 e2!3 a2 e2 a1", AV: "[d2!3 a2 d2@2 b1@3 e1 b1 a1 c2!3 f1]/2", AW: "d2!3 a2 d2@2 b1@2",
AX: "b1@3 a1@3 b1@3 a1@3 c2@3 c2 c2@2 c2@3 f1@3", AY: "[c2@3 e1@3 [e1,e2]@48 e1!6 [e1,e2]@3 ~@3 e1!6]/3",
AZ: "[e1,e2]@3 ~@3 e1!6 [e1,e2]@3 ~@3 e1!6", BA: "[e1,e2]@3 ~@3 e1!6 [e1,e2]@6 e1!6",
BB: "e1@3 f1@3 e1!6 [e1,e2]@6 e1!6", BC: "e1@3 f1@3 e1!6 [e1,e2]@3 ~@3 e1!6", BD: "e1@3 f1@3 e1!6 e2@6 e1!6",
BE: "e2@3 f2@3 e1!6 d2@6 e1!6", BF: "d2@3 f2@3 e1!6 e2@6 e1!6", BG: "b1@3 f1@3 e1!6 [e1,e2]@3 ~@3 e1!6",
BH: "e1@3 f1@3 e1!6 b1@3 e1!6 b1@3", BI: "e1!3 c2@3 e1!6 b1@3 e1!6 b1@3",
BJ: "e1!3 c2@3 [e1,e2]!6 [e1,e2]@2 ~ [e1,e2]!6 [e1,e2]@2 ~", // E
BK: "[e1,e2]!3 [e1,e2]@2 ~ [e1,e2]!6 [e1,e2]@2 ~ [e1,e2]!7 ~@2", BL: "[e1,e2]!6 e1!6 b1@3 e1!6 b1@3",
BM: "e1!3 c2@3 [e1,e2]!6 [e1,e2]@2 ~ [e1,e2]!7 ~@2", BN: "[e1,e2]!3 [e1,e2]@2 ~ [e1,e2]!7 ~@2 [e1,e2]!7 ~@2",
BO: "e1!3 c2@3 [e1,e2]!7 ~@2 [e1,e2]!7 ~@2", BP: "[e1,e2]!6 e1!6 [e1,e2]@3 [e1,e2]@3 e1!6",
BQ: "[e1,e2]@3 [e1,e2]@3 e1!6 e1@3 f1@3 g1!6", BR: "g1@3 g1@3 e1!6 [e1,e2]@3 [e1,e2]@3 e1!6",
BS: "g1@3 g1@3 g1!6 d2@3 d2@3 g1!6", BT: "d2@3 d2@3 g1!6 d2@3 d#2@3 f1!6", BU: "f1@3 f1@3 g1!6 d2@3 d2@3 g1!6",
BV: "f1@3 f1@3 e1 e1@2 g1@3 e1!2 ~ g1@3 e1!2 ~ g1@3", BW: "e1!2 ~ g1@3 f1!6 f1@3 f1@3 f1!6",
BX: "f1@3 f1@3 e1!2 ~ g1@3 e1!2 ~ g1@3 e1 e1@2 g1@3", BY: "f1@3 f1@3 g1!6 g1@2 ~ d2!6 c#2!3",
BZ: "c2!3 b1!3 e1!6 b1@3 e1!6 b1@3", CA: "e1!3 c2@3 e2!6 e2@2 ~ d2!6 c#2!3",
CB: "e1!3 c2@3 e1!2 ~ g1@3 e1!2 ~ g1@3 e1!2 ~ g1@3", CC: "e1 e1@2 g1@3 e1!6 b1@3 e1!6 b1@3",
CD: "e1!3 c2@3 e1 e1@2 g1@3 e1!2 ~ g1@3 e1!2 ~ g1@3", CE: "e1!2 ~ g1@3 e1!6 [e1,e2]@3 [e1,e2]@3 f1!2 ~ f1@3",
CF: "f1!2 ~ f1@3 e1!6 [e1,e2]@3 [e1,e2]@3 f1 f1@2 f1@3", CG: "f1!2 ~ f1@3 e1!6 [e1,e2]@3 [e1,e2]@3 f1!2 ~ f1@3",
CH: "f1 f1@2 f1@3 e1!6 [e1,e2]@3 [e1,e2]@3 g1!2 ~ g1@3", CI: "g1!2 ~ g1@3 g1 g1@2 g1@3 g1!2 ~ g1@3 e1!6",
CJ: "b1@3 e1!6 b1@3 e1!3 c2@3 [e1,e2]!6", CK: "[e1,e2]@2 ~ [e1,e3]!7 ~@14",
})).s("gm_electric_bass_pick").gain(0.49)
// drums · kick
const kick = s("bd").struct(`<
~@7 A B@6 C D E F G E F H I J K L J M N J O P J Q R S T U V W X Y Z K AA AB K AC AD AE C J K AA AF W AG AH W F AI AJ
AK AL J K AC AM M AC J AN AO AP AQ AC AJ AK AL AJ AK AR AS X Y AJ AT AU@2 AV AJ@2 AW AJ@2 AX@27 AY AZ BA BB BA BC ~ BD
BA BB BA BE ~ BD BA BF BA BC BG BH BI BJ BK BJ BL BJ BM BN BM BN BE BD BA BO BA BE BP BQ BR BS BQ BR BT BU BV BW BX@3
// … 90 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.