0:00/0:00
// Under the Bridge — All Saints
// 85 bpm, 4/4, key B major. 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: Full arrangement: all 108 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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.
// bass · electric bass finger
const bass = note(`<
~@10 A@7 B@2 C@7 D@3 E F G H@3 I J K@2 L M@2 N@2 O@2 P@2 Q@2 R S T U V W X Y Z AA@6 AB@7 AC@5 AD AE@3 AF@2 AG@2 AH@2
~@7 AI AJ AK AL AM ~@9
>`.pickRestart({
A: "[~@12 c#2@4 ~@7 g#1@4 ~@8 d#2@6 b1@3 ~ c#2@5 ~ b1@2 c#2@4 ~@2 c#2@4 ~@8 g#1@4 ~@6 d#1 ~ d#1@7 ~@3 e1 ~ e1@11 ~ c#2@4 ~@8 g#1@4 ~@8 d#2@6 b1@3 ~ c#2@5 ~ b1@2 c#2@4 ~@2 c#2@4 ~@8 g#1@4 ~@6 d#1 ~ d#1@8 ~@4 e1@9 ~ d#2@2 c#2@4 ~@8 g#1@5 ~@7 d#2@6 b1@3 ~ c#2@5 ~ b1@2 c#2@5 ~ c#2@4 ~@8 g#1@4 ~@6 d#1 ~ d#1@8 ~@2 e1 ~ e1@10 ~@2 c#2@5 ~@7 g#1@5 ~@7 d#2@6 b1@3 c#2@4]/7",
B: "[~@2 b1@3 c#2@4 ~@2 c#2@4 ~@8 g#1@4 ~@5 d#1 ~ d#1@7 ~@5 e1@9 ~ d#2@2 c#2@5 ~@7 g#1@4 ~@8 d#2@6 b1@3 c#2@4 ~]/2",
C: "[~ b1@3 c#2@4 ~@2 c#2@4 ~@7 g#1@5 ~@5 d#2 ~ d#2@10 ~@2 f#1@11 ~ f#1@10 ~@2 f#1@4 ~@2 f#1@5 ~ e1@42 ~@6 c#1@6 ~@6 c#1@9 ~@3 f#1@11 ~ f#1@5 ~ f#1@5 ~ e1@42 ~@6 c#1@6 ~@6 c#1@9 ~@3 f#1@10 ~@2 f#1@4 ~@2 f#1@4 ~@2 e1@42 ~@6 c#1@6 ~@6 c#1@3]/7",
D: "[~@9 f#1@10 ~@2 f#1@5 ~ f#1@5 ~ e1@42 ~@6 c#1@6 ~@6 e1@9 ~@3 d2@24 ~@15]/3", E: "~@3 f#1@8 ~@5",
F: "~@9 d1@24 ~@5 d1@5 ~ e1@4", G: "~@8 f#1@4 ~@2 e1@4 ~@2 f#1@4 ~@2 e1@5 ~ f#1@4 ~@2 e1@5 ~@5",
H: "[~@8 c#2@4 ~@8 g#1@5 ~@7 d#2@5 b1@3 ~ c#2@5 ~ b1@2 c#2@4 ~@2 c#2@4 ~@8 g#1@5 ~@4 e1 ~@2 e1@7 ~@2 d#1 ~@2 d#1@10 ~@2 c#2@5 ~@6 g#1@5 ~@7 d#2@6 b1@3 ~ c#2@5 ~ b1@2]/3",
I: "c#2@4 ~@2 c#2@4 ~@8 g#1@4 ~@6 e1 ~ e1@7 ~@5 d#1@6",
J: "~@4 d#2@2 c#2@5 ~@7 g#1@5 ~@7 d#2@6 b1@3 ~ c#2@4 ~@2 b1@2",
K: "[c#2@4 ~@2 c#2@4 ~@8 g#1@4 ~@6 e1 ~ e1@8 ~@2 d#1 ~ d#1@10 ~@2 c#2@4 ~@8 g#1@5 ~@7 d#2@6 b1@3 c#2@4 ~@2 b1@3]/2",
L: "c#2@4 ~ c#2@4 ~@8 g#1@4 ~@6 e1 ~ e1@8 ~@4 d#1@7",
M: "[~@2 d#2@2 ~ c#2@4 ~@8 g#1@4 ~@8 d#2@5 b1@3 ~ c#2@5 ~ b1@3 c#2@4 ~@2 c#2@4 ~@8 g#1@4 ~@5 d#2 ~@2 d#2@10 ~@2 f#1@7]/2",
N: "[~@4 f#1@11 ~ f#1@5 ~@2 f#1@4 ~@2 e1@41 ~@6 c#1@6 ~@6 c#1@8]/2",
O: "[~@4 f#1@11 ~ f#1@4 ~@2 f#1@4 ~ e1@41 ~@7 c#1@6 ~@6 c#1@9]/2",
P: "[~@3 f#1@11 ~ f#1@4 ~ f#1@4 ~@2 e1@42 ~@6 c#1@6 ~@6 c#1@9 ~]/2",
Q: "[~@2 f#1@10 ~@2 f#1@4 ~@2 f#1@4 ~@2 e1@41 ~@7 c#1@6 ~@6 e1@9 ~]/2", R: "~ d2@24 ~@23", S: "~ f#1@24 ~@23",
T: "d1@12 ~@3 d1@2 ~ e1@3 ~@3", U: "f#1@4 ~@2 e1@5 ~ f#1@4 ~@2 e1@5 ~ f#1@4 ~@2 e1@5 ~@13",
V: "~@6 e1@4 ~@5 e1@4 ~@5 e1@5 ~@4 e1@5 ~@4 e1@5 ~", W: "~@3 e1@5 ~@4 e1@4 ~@5 e1@5 ~@4 e1@4 ~@5 e1@4 ~@5",
X: "c#2@5 ~@7 g#1@4 ~@8 d#2@6 b1@3 c#2@5 ~@2 b1@2 c#2@4 ~@2",
Y: "c#2@4 ~@8 g#1@4 ~@5 d#1 ~@2 d#1@8 ~@2 e1 ~ e1@10 ~@2", Z: "c#2@5 ~@7 g#1@5 ~@7 d#2@6 b1@3 c#2@5 ~ b1@3 c#2@5 ~",
AA: "[c#2@4 ~@8 g#1@4 ~@5 d#1 ~@2 d#1@8 ~@3 e1@9 ~ d#2@2 c#2@4 ~@8 g#1@5 ~@7 d#2@6 b1@3 ~ c#2@4 ~@2 b1@2 c#2@5 ~ c#2@5 ~@7 g#1@4 ~@6 d#1 ~ d#1@7 ~@3 e1 ~ e1@10 ~@2 c#2@4 ~@8 g#1@4 ~@8 d#2@6 b1@3 c#2@5 ~ b1@3 c#2@4 ~@2 c#2@4 ~@8 g#1@5 ~@4 d#1 ~@2 d#1@7 ~@4 e1@9 ~ d#2@2 c#2@5 ~@7 g#1@4 ~@8 d#2@6 b1@3 ~ c#2@5 ~ b1@2 c#2@5 ~ c#2@2]/6",
AB: "[~@10 g#1@5 ~@5 d#2 ~ d#2@10 ~@2 f#1@10 ~@2 f#1@11 ~ f#1@4 ~@2 f#1@5 ~ e1@42 ~@6 c#1@6 ~@6 c#1@9 ~@3 f#1@10 ~@2 f#1@4 ~@2 f#1@5 ~ e1@42 ~@6 c#1@6 ~@6 c#1@9 ~@3 f#1@11 ~ f#1@4 ~@2 f#1@4 ~ e1@42 ~@6 c#1@6 ~@6 c#1@9 ~@3 f#1@3]/7",
AC: "[~@8 f#1@5 ~ f#1@4 ~@2 e1@42 ~@6 c#1@6 ~@6 e1@9 ~@3 d2@24 ~@24 f#1@24 ~@23 d1@24 ~@6 d1@4 ~@2 e1@6 ~@6 f#1@4 ~]/5",
AD: "~ e1@5 ~ f#1@4 ~@2 e1@4 ~ f#1@4 ~@2 e1@5 ~@19",
AE: "[~@41 f#1@11 ~ f#1@4 ~@2 f#1@4 ~@2 e1@41 ~@6 c#1@6 ~@6 c#1@9 ~@3 f#1@8]/3",
AF: "[~@4 f#1@4 ~@2 f#1@4 ~@2 e1@41 ~@6 c#1@6 ~@6 c#1@9 ~@3 f#1@9]/2",
AG: "[~@3 f#1@5 ~ f#1@4 ~@2 e1@42 ~@5 c#1@6 ~@6 c#1@9 ~@3 f#1@10]/2",
AH: "[~@2 f#1@4 ~@2 f#1@4 ~@2 e1@42 ~@6 c#1@6 ~@5 e1@9 ~@14]/2", AI: "~@33 f#1@10 ~@2 f#1@3",
AJ: "~@3 f#1@4 ~@2 e1@39", AK: "~@9 c#1@6 ~@6 c#1@9 ~@3 f#1@10 ~@2 f#1@3", AL: "~@3 f#1@5 ~ e1@39",
AM: "~@3 c#1@2 ~@2 e1@3 ~@6",
})).s("gm_electric_bass_finger").gain(0.35)
// other · epiano1
const epiano1 = note(`<
~@10 A@8 B@8 C@8 D@2 E@3 F@2 G@2 H@2 I@2 J@2 K@2 L M N ~@2 N@3 O@8 P@8 Q@3 R@8 S@8 T@5 ~@9
>`.pickRestart({
A: "[~@12 g#5@45 ~@2 g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@3 g#5@44 ~@4 g#5@37]/8",
B: "[~@10 g#5@44 ~@27 [c#2,c#3]@2 ~ [c#2,c#3]@5 ~ [c#2,c#3]@2 ~ [c#2,c#3]@5 ~ [c#2,c#3]@5 ~ g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@3 g#5@39, ~@29 g#5@22 ~@141]/8", // C#
C: "[~@9 g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@2 g#5@44 ~@4 g#5@44 ~@3 g#5@41]/8",
D: "[~@7 g#5@45 ~@2 g#5@42]/2", E: "~ g#5@7", F: "~@5 g#5@43",
G: "[~@29 c#3@2 [c#2,c#3]@5 ~@2 c#2@2 ~ [c#2,c#3]@5 ~ c#2@5 ~ g#5@43, ~@5 g#5@45 ~@46, ~@28 c#2@2 ~@7 c#3@2 ~@7 c#3@5 ~@45]/2", // C#
H: "~ g#5@11", I: "~ g#5@15", J: "~@2 g#5@45 ~", K: "~ g#5@22 ~", L: "~ g#5@44 ~@3", M: "g#5@11 ~", N: "g#5@15 ~",
O: "[g#5@45 ~@2 g#5@45 ~@3 g#5@45 ~@3 g#5@44 ~@4 g#5@44 ~@3 g#5@45 ~@27 [c#2,c#3]@2 ~ [c#2,c#3]@5 ~ [c#2,c#3]@2 ~ [c#2,c#3]@5 ~ [c#2,c#3]@5 ~ g#5@45 ~@3 g#5@2, ~@286 g#5@45 ~@53]/8", // C#
P: "[~@46 g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@2 g#5@44 ~@4 g#5@44 ~@3 g#5@45 ~@3 g#5@45 ~@3 g#5@4]/8",
Q: "[~@44 g#5@44 ~@3 g#5@44 ~@9]/3",
R: "[~@41 g#5@44 ~@4 g#5@45 ~@2 g#5@45 ~@3 g#5@45 ~@2 g#5@45 ~@2 g#5@45 ~@3 g#5@45 ~@3 g#5@10]/8",
S: "[~@37 g#5@45 ~@3 g#5@44 ~@3 g#5@45 ~@3 g#5@45 ~@3 g#5@45 ~@2 g#5@44 ~@4 g#5@44 ~@3 g#5@14]/8",
T: "[~@11 g#5@15 ~ g#5@15 ~ g#5@15 ~ g#5@15 ~@6]/5",
})).s("gm_epiano1").gain(0.09)
// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@10 A@8 B@2 C ~@13 D E F E G H I J K ~@12 L M N O P@5 Q R ~@42>".pickRestart({
A: "[~@9 a#3@3 b3@3 ~@3 b3@12 ~@5 b3@6 a#3@3 b3@9 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@6 b3@6 a#3@3 b3@9 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@6 b3@6 a#3@3 b3@9 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@6 b3@6 a#3@3 b3@9 ~@3 a#3@3 b3@3 ~@3 b3@12 ~@3 a#3@2 b3@3 ~@3 b3@8]/8",
B: "[~@8 a#3@2 b3@3 ~@3 b3@12 ~@6 b3@6 a#3@3 b3@9 ~@3 a#3@2 ~ b3@3 ~@3 b3@12 ~@3 a#3@2 b3@3 ~@3 b3@9]/2",
C: "~@7 a#3@2 ~@39", D: "~@7 b3@3 ~@3 b3@12 ~@5 b3@6 a#3@3 b3@9",
E: "~@4 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12", F: "~@4 a#3@2 b3@3 ~@3 b3@12 ~@6 b3@6 a#3@3 b3@9",
G: "~ a#3 b3 ~ b3@4 ~@2 b3@2 a#3 b3@3", H: "~@3 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~",
I: "~@2 a#3@2 ~ b3@3 ~@3 b3@12 ~@5 b3@6 a#3@3 b3@9 ~@2", J: "~@2 a#3@2 ~ b3@3 ~@3 b3@12 ~@3 a#3@2 b3@3 ~@3 b3@12 ~@2",
K: "~ a#3 ~@22", L: "~@15 a#3", M: "b3@3 ~@3 b3@12 ~@6 b3@6 a#3@3 b3@9 ~@4 a#3@2",
N: "b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2", O: "b3 ~ b3@4 ~@2 b3@2 a#3 b3@3 ~ a#3",
P: "[b3@3 ~@3 b3@12 ~@3 a#3@3 b3@3 ~@3 b3@12 ~@3 a#3@2 b3@3 ~@3 b3@12 ~@6 b3@6 a#3@3 b3@9 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@6 b3@6 a#3@3 b3@9 ~@3 a#3@3 b3@3 ~@3 b3@12 ~@3 a#3@2 b3@3 ~@3 b3@12 ~@4 a#3@2 b3@2]/5",
Q: "~@4 b3@12 ~@6 b3@6 a#3@3 b3@9 ~@4 a#3@2 b3@2", R: "~@4 b3@12 ~@4 a#3@2 b3@3 ~@3 b3@12 ~@8",
})).s("gm_electric_guitar_jazz").gain(0.13).pan(0.3)
// chords · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note("<~@10 A@8 B@2 C ~@13 D E F E G H I J K ~@12 L M N M O@5 P Q ~@42>".pickRestart({
A: "[~@9 g3@3 g#3@3 ~@3 g#3@12 ~@5 g#3@6 g3@3 g#3@9 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@6 g#3@6 g3@3 g#3@9 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@6 g#3@6 g3@3 g#3@9 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@6 g#3@6 g3@3 g#3@9 ~@3 g3@3 g#3@3 ~@3 g#3@12 ~@3 g3@2 g#3@3 ~@3 g#3@8]/8",
B: "[~@8 g3@2 g#3@3 ~@3 g#3@12 ~@6 g#3@6 g3@3 g#3@9 ~@3 g3@2 ~ g#3@3 ~@2 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@9]/2",
C: "~@7 g3@2 ~@39", D: "~@7 g#3@3 ~@3 g#3@12 ~@5 g#3@6 g3@3 g#3@9",
E: "~@4 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12", F: "~@4 g3@2 g#3@3 ~@3 g#3@12 ~@6 g#3@6 g3@3 g#3@9",
G: "~@4 g3@2 g#3@3 ~@3 g#3@12 ~@6 g#3@6 g3@2 g#3@9 ~", H: "~@3 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~",
I: "~@2 g3@2 ~ g#3@3 ~@3 g#3@12 ~@6 g#3@6 g3@3 g#3@9 ~", J: "~@2 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@2",
K: "~ g3 ~@22", L: "~@15 g3", M: "g#3@3 ~@3 g#3@12 ~@6 g#3@6 g3@3 g#3@9 ~@4 g3@2",
N: "g#3@3 ~@3 g#3@12 ~@3 g3@3 g#3@3 ~@3 g#3@12 ~@4 g3@2",
O: "[g#3@3 ~@3 g#3@12 ~@3 g3@3 g#3@3 ~@3 g#3@12 ~@3 g3@2 g#3@3 ~@3 g#3@12 ~@6 g#3@6 g3@3 g#3@9 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@6 g#3@6 g3@3 g#3@9 ~@3 g3@3 g#3@3 ~@3 g#3@12 ~@3 g3@2 g#3@3 ~@3 g#3@12 ~@4 g3@2 g#3@2]/5",
P: "~@4 g#3@12 ~@6 g#3@6 g3@3 g#3@9 ~@4 g3@2 g#3@2", Q: "~@4 g#3@12 ~@4 g3@2 g#3@3 ~@3 g#3@12 ~@8",
})).s("gm_electric_guitar_jazz").gain(0.08).pan(0.3)
// chords · vibraphone
const vibraphone = note("<~@18 A@3 ~@19 B@3 ~@20 C@3 ~@20 D@2 E@2 ~@8 F@2 G@2 H@2 I@2 ~@2>".pickRestart({
A: "[~@10 [b3,d#4]@12 [b3,f#4]@24 [b3,d#4]@12 b3@4 a#3@4 g#3@9 e3@10 d#3@20 ~@39, ~@5 [g#3,a#3]@24 d#3@9 ~@34]/3", // B B5 B G#sus2
B: "[~@5 [b3,d#4]@12 [b3,f#4]@23 ~ d#4@11 ~@5 a#3@3 g#3@10 e3@10 ~ d#3@20 ~@43, ~@5 [g#3,a#3]@48 d#3@18 ~@73, ~@10 b3@3 b3 ~@22]/3", // B B5 G#sus2
C: "[~@23 [b3,d#4]@6 [b3,f#4]@12 [b3,d#4]@6 b3@2 a#3@2 g#3@5 e3@5 d#3@10 ~, ~@23 [g#3,a#3]@24 d#3@9 ~@16]/3", // B B5 B G#sus2
D: "[~@37 f#4@12 f#4@35 ~@12, ~@37 [f#3,g#3,d4]@48 ~@11]/2", E: "[~@3 f#4 f#4@3 ~, ~@3 [f#3,g#3,d4]@4 ~]/2",
F: "[~@11 f#4@4 f#4@12 ~@5, ~@33 [f#3,g#3,d4]@49 ~@14]/2", G: "[~@11 f#4@4 f#4@12 ~@5, ~@11 [f#3,g#3,d4]@16 ~@5]/2",
H: "[~@11 f#4@9 ~@4, ~@2 d4@3 ~, ~@8 f#4@3 ~@13, ~@33 [f#3,g#3]@47 ~@16]/2", // F#sus2
I: "[~@8 f#4@3 f#4@9 ~@4, ~@2 [f#3,g#3,d4]@3 ~]/2", // G#m7b5
})).s("gm_vibraphone").gain(0.16)
// chords · electric guitar clean
const electric_guitar_clean = note("<~@14 A ~@44 B@2 ~@47>".pickRestart({
A: "~@2 [d#4,g#4] ~ [d#4,g#4] ~@11, ~@5 b3@3 ~@3 b3@3 ~@34", // G#5
B: "[~@14 [b3,d#4,g#4] ~ [d#4,g#4] ~@15, ~@47 b3@3 ~@46]/2", // G#m G#5
})).s("gm_electric_guitar_clean").gain(0.21).pan(0.3)
// other · string ensemble 2
const string_ensemble_2 = note("<~@20 A@6 B@3 ~@13 C@8 ~@15 D@8 ~@5 E@8 ~@4 F@8 ~@10>".pickRestart({
A: "[~@3 [f#5,f#6]@32 [f#5,f#6]@32 [f#5,f#6]@29]/6", B: "[~@3 [f#5,f#6]@32 ~@13]/3",
C: "[~@5 f#6@95 [f#5,f#6]@95 [f#5,f#6]@95 [f#5,f#6]@94, ~@4 f#5@95 ~@285]/8", // F#
D: "[~@46 [f#5,f#6]@96 [f#5,f#6]@96 [f#5,f#6]@95 [f#5,f#6]@51]/8", // F#
E: "[~@41 [f#5,f#6]@95 [f#5,f#6]@95 [f#5,f#6]@95 [f#5,f#6]@58]/8", // F#
F: "[~@36 [f#5,f#6]@95 [f#5,f#6]@94 [f#5,f#6]@96 [f#5,f#6]@63]/8", // F#
})).s("gm_string_ensemble_2").gain(0.07)
// other · orchestra hit
const orchestra_hit = note("<~@32 A B C ~@3 D E F ~@13 G@2 H I H J@7 ~@42>".pickRestart({
A: "~@2 b2@3 ~@7", B: "~@7 g#2@12 ~@29", C: "~@7 b2@12 ~@29", D: "~ b2@2 ~@5", E: "~@5 g#2@12 ~@31",
F: "~@5 b2@12 ~@31", G: "g#3 ~ g#3 ~", H: "b2 ~@3", I: "g#2 ~@3",
J: "[g#2@12 ~@35 b2@12 ~@36 g#2@12 ~@36 b2@12 ~@36 g#2@12 ~@35 b2@12 ~@36 g#2@12 ~@38]/7",
})).s("gm_orchestra_hit").gain(0.21)
// chords · rock organ
const rock_organ = note(`<
~@21 A ~ A ~ A ~ A ~@15 B ~ C ~ D ~ D ~@17 E ~ E ~ F ~ G ~@6 H ~ I J@4 ~@4 K ~ L ~ M ~ M ~@10
>`.pickRestart({
A: "~@6 [b4,e5,f#5] ~@9", B: "~@13 [b4,e5,f#5]@3 ~@32", C: "~@4 [b4,e5,f#5] ~@11", D: "~@11 [b4,e5,f#5]@3 ~@34",
E: "~@7 [b4,e5,f#5]@3 ~@38", F: "~@2 [b4,e5,f#5] ~@13", G: "~@5 [b4,e5,f#5]@3 ~@40", H: "~@2 [b4,e5,f#5]@3 ~@43",
I: "~ e5@3 ~@44, [b4,f#5] ~@15", J: "[~@47 [b4,e5,f#5]@3 ~@46]/2", K: "~@44 [b4,e5,f#5]@3 ~",
L: "~@43 [b4,e5,f#5]@3 ~@2", M: "~@14 [b4,e5,f#5] ~",
})).s("gm_rock_organ").gain(0.12).pan(0.8)
// chords · rock organ · soft notes
const rock_organ_soft = note("<~@10 A@8 B@3 ~@13 C@8 ~@14 D@2 E@8 ~@42>".pickRestart({
A: "[~@12 [e4,g#4,b4,d#5]@95 [e4,g#4,b4,d#5]@96 [e4,g#4,b4,d#5]@96 [e4,g#4,b4,d#5]@85]/8", // Emaj7
B: "[~@10 [e4,g#4,b4,d#5]@95 ~@39]/3", // Emaj7
C: "[~@7 [e4,g#4,b4,d#5]@95 [e4,g#4,b4,d#5]@96 [e4,g#4,b4,d#5]@95 [e4,g#4,b4,d#5]@91]/8", D: "[e4,g#4,b4,d#5]/2",
E: "[[e4,g#4,b4,d#5]@95 [e4,g#4,b4,d#5]@96 [e4,g#4,b4,d#5]@95 [e4,g#4,b4,d#5]@96 ~@2]/8", // Emaj7
})).s("gm_rock_organ").gain(0.06).pan(0.8)
// chords · electric guitar clean
const electric_guitar_clean_2 = note(`<
~ A B C D A E F G H ~@10 I@2 J@2 I@2 K@2 L@2 M N ~@10 O@2 P@2 Q@2 R@2 S@2 T U ~@11 V@3 W@4 X@6 Y Z@2 AA@2 AB@4 ~@3 AC
AD@4 AE AF AE AG@7 AH@3
>`.pickRestart({
A: "~@36 d4@5 ~@7, ~@15 d3@26 ~@7, ~@5 d4@7 ~@4, ~@21 f#3@12 f#3@8 ~@7, ~@27 a3@14 ~@7",
B: "~@36 a#3@5 ~@7, ~@15 [f#2,c#4]@26 ~@7, ~@21 c#3@12 c#3@8 ~@7, ~@27 f#3@14 ~@7", // F#5
C: "~@15 d3@6 ~@6 a3@6 f#3@3 d4@4 ~@8, ~@5 d4@7 ~@4, ~@7 f#3@4 ~@5, ~@2 d3 ~",
D: "~@3 [d3,f#3]@4 ~@2 [e3,g#3]@4 ~@23 a#3@5 ~@7, ~@15 [f#2,c#4]@26 ~@7, ~@21 c#3@12 c#3@8 ~@7, ~@27 f#3@14 ~@7", // D E F#5
E: "~@3 c#3@3 b2@2 ~ a2@3 g#2@3 ~@21 a#3@5 ~@7, ~@3 d4@12 [f#2,c#4]@26 ~@7, ~@21 c#3@12 c#3@8 ~@7, ~@27 f#3@14 ~@7", // F#5
F: "~@3 f#3@3 e3@3 d3@3 b2@3 c#3@3 ~@9 a3@6 f#3@3 d4@4 ~@8, ~@5 d4@7 ~@4, ~@3 d3 d3@2 ~@2, ~@7 f#3@4 ~@5",
G: "~ [d3,f#3]@2 ~ [e3,g#3]@2 ~@11 a#3@2 ~@5, ~@14 [f#2,c#4]@25 ~@9, ~@20 c#3@11 c#3@7 ~@10, ~@26 f#3@13 ~@9", // D E F#5
H: "~@33 a#3@4 ~@11, ~@13 [f#2,c#4]@25 ~@10, ~@19 c#3@11 c#3@7 ~@11, ~@25 f#3@13 ~@10", // F#5
I: "[~@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4] ~@2 [e3,b3,e4] ~ [e3,b3,e4]@14 ~ [e3,b3,e4]!2 ~ [f#3,c#4,f#4] ~ [f#3,c#4,f#4]]/2", // F#5 E5 F#5
J: "[~@3 [e3,b3,e4] [f#3,c#4,f#4]!4 ~ [e3,b3,e4] ~ [e3,b3,e4]@14 ~ [e3,b3,e4]!2 ~ [f#3,c#4,f#4] ~ [f#3,c#4,f#4]]/2", // E5 F#5 E5 F#5
K: "[~@3 [e3,b3,e4] [f#3,c#4,f#4]!4 ~ [e3,b3,e4] ~ [e3,b3,e4]@14 ~ [e3,b3,e4]!2 ~ [f#3,c#4,f#4] ~@2]/2", // E5 F#5 E5 F#5
L: "[~@30 d4@5 ~@4 [d3,d4]@2 ~@4 c#3@3 b2@2 ~ a2@3 g#2@3 ~@21 a#3@5 ~@10 f#3@3, ~@9 d3@25 ~@23 [f#2,c#4]@26 ~@13, ~@3 d4@7 ~@5 d4@4 ~@13, ~@15 f#3@12 f#3@8 ~@28 c#3@12 c#3@8 ~@13, ~@21 a3@14 ~@34 f#3@14 ~@13]/2", // D F#5
M: "e3@3 d3@3 b2@3 c#3@3 ~@9 a3@6 f#3@3 d4@4 ~@10 [d3,f#3]@4, ~@3 d4@7 ~@6, ~@2 d3 d3@2 ~@3, ~@5 f#3@4 ~@7", // D
N: "~@2 [e3,g#3]@4 ~@23 a#3@4 ~@15, ~@8 [f#2,c#4]@25 ~@15, ~@14 c#3@12 c#3@7 ~@15, ~@20 f#3@13 ~@15", // E F#5
O: "[~@5 [c#4,f#4]@9 [f#3,c#4,f#4]@3 ~@6 [e3,b3,e4]@3 ~@3 [e3,b3,e4]@42 ~@2 [e3,b3,e4]@3 [e3,b3,e4]@3 ~@3 [f#3,c#4,f#4]@3 ~@3 [f#3,c#4,f#4]@3 ~@5, ~@4 f#3@9 ~@83]/2", // F#5 E5 F#5
P: "[~@4 [e3,b3,e4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 ~@3 [e3,b3,e4]@3 ~@3 [e3,b3]@42 ~@2 [e3,b3,e4]@3 [e3,b3,e4]@3 ~@3 [f#3,c#4,f#4]@3 ~@3 [f#3,c#4,f#4]@3 ~@6, ~@9 e4@14 ~@9]/2", // E5 F#5 E5 F#5
Q: "[~@3 [f#3,c#4,f#4]@9 [f#3,c#4,f#4]@3 ~@6 e4@3 ~@3 [b3,e4]@42 ~@3 [e3,b3]@2 ~ e4@3 ~@3 [c#4,f#4]@3 ~@3 [c#4,f#4]@3 ~@6, ~@20 [e3,b3]@3 ~@3 e3@42 ~@3 e4@3 [e3,b3]@3 ~@3 f#3@3 ~@3 f#3@3 ~@7]/2", // F#5 E5 F#5 E5
R: "[~@3 e4@2 ~ [f#3,c#4]@2 ~ [c#4,f#4]@2 ~ [f#3,c#4]@2 ~ [c#4,f#4]@3 ~@3 e3@3 ~@3 e3@42 ~@2 [e3,b3,e4]@3 [e3,b3,e4]@3 ~@3 [f#3,c#4,f#4]@3 ~@13, ~@2 [e3,b3]@3 f#4@3 f#3@3 f#4@3 f#3@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@42 ~@28]/2", // F#5 E5 F#5 E5
S: "[~@22 d4@4 ~@5 [d3,d4] ~@5 c#3@3 b2@3 a2@3 ~ g#2@2 ~@21 a#3@4 ~@10 f#3@3 ~ e3@2 d3@3 ~ b2@2, ~ d3@25 ~@23 [f#2,c#4]@25 ~@22, ~@2 d4@20 ~@15 d4@12 ~@47, ~@7 f#3@12 f#3@7 ~@29 c#3@12 c#3@8 ~@21, ~@13 a3@13 ~@35 f#3@13 ~@22]/2", // D F#5
T: "c#3@3 ~@9 a3@6 f#3@3 d4@4 ~@11 [d3,f#3]@4 ~@2 [e3,g#3]@4 ~@2, d4@7 ~@9, ~ d3@2 d3@4 ~@9, ~ f#3@2 ~@5", // D E
U: "~@21 a#3@5 ~@22, [f#2,c#4]@25 ~@23, ~@3 c#3@6 c#3@4 ~@11, ~@6 f#3@7 ~@11", // F#5
V: "[~@46 [f#3,c#4,f#4]@9 [f#3,c#4,f#4]@3 ~@6 [e3,b3,e4]@3 ~@3 [e3,b3,e4]@42 ~@3 [e3,b3,e4]@3 [e3,b3,e4]@3 ~@3 [f#3,c#4,f#4]@3 ~@3 [f#3,c#4,f#4]@3 ~@9 [e3,b3,e4]@2]/3", // F#5 E5 F#5 E5
W: "[~ [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 ~@3 [e3,b3,e4]@3 ~@3 [e3,b3,e4]@42 ~@3 [e3,b3,e4]@3 [e3,b3,e4]@3 ~@3 [f#3,c#4,f#4]@3 ~@3 [f#3,c#4,f#4]@3 ~@9 [f#3,c#4,f#4]@9 [f#3,c#4,f#4]@3 ~@6 [b3,e4]@3 ~@3 e4@42 ~@2 [e3,b3,e4]@3 [e3,b3,e4]@3 ~@3 [f#3,c#4,f#4]@3 ~@3 [f#3,c#4,f#4]@3 ~@9 [e3,b3,e4]@3, ~@37 e3 ~ [e3,b3]@14 ~@11]/4", // F#5 E5 F#5 E5 F#5 E5
X: "[[f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 ~@3 e3@3 ~@3 e3@42 ~@2 [e3,b3,e4]@3 [e3,b3,e4]@3 ~@3 [f#3,c#4,f#4]@3 ~@36 d4@5 ~@4 [d3,d4]@2 ~@4 c#3@3 ~ b2@2 a2@3 g#2@3 ~@21 a#3@4 ~@11 f#3@3 e3@2 ~ d3@3 b2@2 ~ c#3@3 ~@8 a3@6 f#3@3 d4@4 ~@11 [d3,f#3]@4 ~@2 [e3,g#3]@4 ~@22 a#3@4 ~@29, ~@14 [b3,e4]@3 ~@3 [b3,e4]@42 ~@30 d3@25 ~@23 [f#2,c#4]@25 ~@70 [f#2,c#4]@25 ~@28, ~@92 d4@21 ~@15 d4@12 ~@47 d4@21 ~@80, ~@98 f#3@12 f#3@8 ~@28 c#3@12 c#3@7 ~@26 d3@5 d3@12 ~@33 c#3@11 c#3@7 ~@29, ~@104 a3@14 ~@34 f#3@13 ~@28 f#3@12 ~@42 f#3@13 ~@28]/6", // F#5 E5 F#5 D E E5 F#5
Y: "~@7 f#4, ~@41 [f#3,c#4]@7", // F#5
Z: "[~@2 [f#3,c#4,f#4]@3 ~@6 [e3,b3,e4]@3 ~@3 [e3,b3,e4]@42 ~@3 [e3,b3,e4]@2 ~ e4@3 ~@3 [c#4,f#4]@3 ~@3 f#4@3 ~@8 [e3,b3,e4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@2, ~@64 [e3,b3]@3 ~@3 f#3@3 ~@3 [f#3,c#4]@3 ~@17]/2", // F#5 E5 F#5 E5 F#5 E5 F#5
AA: "[~ [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 ~@3 [e3,b3,e4]@3 ~@3 [e3,b3,e4]@42 ~@3 [e3,b3]@2 ~ e4@3 ~@3 f#4@3 ~@2 [f#3,c#4,f#4]@3 ~@9 [f#3,c#4,f#4]@9, ~@20 e4 [e3,b3] ~ [f#3,c#4] ~@8]/2", // F#5 E5 F#5 E5 F#5
AB: "[[f#3,c#4,f#4]@3 ~@6 [e3,b3,e4]@3 ~@3 [e3,b3,e4]@42 ~@3 e3@2 [e3,b3,e4]@3 ~@3 [f#3,c#4,f#4]@3 ~@3 [f#3,c#4,f#4]@3 ~@9 [e3,b3,e4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 ~@3 [e3,b3,e4]@3 ~@3 [e3,b3,e4]@42 ~@3 [e3,b3,e4]@3 [e3,b3,e4]@3 ~@3 [f#3,c#4,f#4]@3 ~@25, ~@59 [b3,e4]@3 ~@130]/4", // F#5 E5 F#5 E5 F#5 E5 F#5 E5
AC: "~@12 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]", // F#5
AD: "[~@6 [e3,b3,e4]@3 ~@3 [e3,b3,e4]@42 ~@3 e3@2 ~ e4@3 ~@2 [f#3,c#4,f#4]@3 ~@3 [f#3,c#4,f#4]@3 ~@9 [e3,b3,e4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 ~@3 e3@3 ~@3 e3@41 ~@3 [e3,b3,e4]@3 [e3,b3,e4]@3 ~@3 [c#4,f#4]@3 ~@3 [c#4,f#4]@3 ~@8 [f#3,c#4,f#4]@9 [f#3,c#4,f#4]@3 ~@3, ~@56 [b3,e4]@3 [e3,b3]@3 ~@38 [b3,e4]@3 ~@3 [b3,e4]@41 ~@12 f#3@3 ~@3 f#3@3 ~@24]/4", // E5 F#5 E5 F#5 E5 F#5 E5
AE: "~ [e3,b3,e4] ~ [e3,b3,e4]@13", // E5
AF: "~@2 [e3,b3,e4]!2 ~ [f#3,c#4,f#4] ~ [f#3,c#4,f#4] ~@3 [e3,b3,e4] [f#3,c#4,f#4]!4", // E5 F#5 E5 F#5
AG: "[~@6 [e3,b3,e4]@3 [e3,b3,e4]@3 ~@3 [f#3,c#4,f#4]@3 ~@36 d4@5 ~@4 [d3,d4]@2 ~@4 [d3,d4]@2 ~@4 [d3,d4]@2 ~@25 a#3@5 ~@10 c#3@2 ~@4 c#3@2 ~@4 d3@6 ~@6 a3@6 f#3@3 d4@4 ~@11 [d3,f#3]@4 ~@2 [e3,g#3]@4 ~@23 a#3@4 ~@11 [d3,d4] ~@5 [d3,d4] ~@25 d4@4 ~@11 c#3@3 ~ b2@2 a2@3 ~ g#2@2 ~@21 a#3@5 ~@10 f#3@3 ~ e3@2 d3@3 ~ b2@2 c#3@3 ~@9 a3@4, ~@33 d3@26 ~@22 [f#2,c#4]@26 ~@70 [f#2,c#4]@25 ~@34 a3@13 ~@35 f#3@13 ~@29 f#3@10, ~@33 d4@21 ~@75 d4@21 ~@74 d4@21 ~@15 d4@12 ~@48 d4@16, ~@39 f#3@12 f#3@8 ~@28 c#3@12 c#3@8 ~@31 d3@12 ~@33 c#3@12 c#3@7 ~@23 d3@25 ~@22 [f#2,c#4]@26 ~@38, ~@45 a3@14 ~@34 f#3@13 ~@29 f#3@12 ~@42 f#3@13 ~@28 f#3@12 f#3@8 ~@28 c#3@12 c#3@8 ~@25 d3@6 d3@7]/7", // E5 F#5 D E D F#5
AH: "[~@2 f#3@3 d4@4 ~@11 [d3,f#3]@4 ~@2 [e3,g#3]@4 ~@23 a#3@4 ~@43 a#3@4 ~@40, ~@32 f#2@25 ~@22 f#2@25 ~@40, ~@38 c#3@12 c#3@7 ~@28 c#3@12 c#3@7 ~@40, ~@44 f#3@13 ~@34 f#3@13 ~@40]/3", // D E
})).s("gm_electric_guitar_clean").gain(0.3)
// chords · distortion guitar
const distortion_guitar = note("<~@54 A@2 ~@22 B ~@29>".pickRestart({
A: "[[g3,e4,a4]@15 ~]/2", B: "[d#3,a#3,d#4]@7 ~",
})).s("gm_distortion_guitar").gain(0.01)
// drums · kick
const kick = s("bd").struct(`<
~@9 A B C D C D C D E F G H I H I H J H J K J K L M N O P Q P R S T U V W X Y Z AA AB AC AD AE AF AG ~@2 AH AI AF AJ
AK AL AK AM AN AO AP AQ AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ@3 BK BL BM BN BO BP BO BQ ~@9
>`.pickRestart({
A: "~@13 x ~@11 x ~@10 x ~@11", B: "x ~@2 x ~@2 x ~@5 x ~@20 x ~ x ~@12", C: "~@11 x ~@21 x ~ x ~@11 x",
D: "~@11 x ~@21 x ~ x ~@12", E: "~@11 x ~@20 x ~ x ~@11 x ~", F: "~@8 x ~ x ~@20 x ~@2 x ~@13",
G: "~@10 x ~@10 x ~@11 x ~@14", H: "~@3 x ~@5 x ~ x ~@4", I: "~@9 x ~@21 x ~ x ~@11 x ~@2", J: "~@3 x ~@6 x!2 ~@3 x",
K: "~@3 x ~@6 x!2 ~@4", L: "~@4 x ~@10 x!2 ~@5 x ~", M: "~@8 x ~@22 x ~@16", N: "~@7 x ~@20 x ~@2 x ~@16",
O: "~@7 x ~@20 x ~ x ~@17", P: "~@3 x ~@10 x!2 ~@5 x ~@2", Q: "~@3 x ~@10 x!2 ~@8", R: "~@2 x ~@6 x!2 ~@5",
// … 113 more lines
More by All Saints
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.