0:00/0:00
// Love Is All Around — Wet Wet Wet
// 85 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 85 bars on a 16-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.
// chords · piano · "A.PIANO 2"
const piano = note(`<
~ A@2 B@2 C D@2 E@2 F G H I J K L M N O@2 ~ P Q P R S Q T U V W X Y Z AA AB@2 AC@2 AD AE AF AG J K L M N O@2 ~ P Q P R
S Q T U AH U AI W X Y AJ W X Y AJ W X Y AJ W X Y AJ W X Y AJ W AK
>`.pickRestart({
A: "[[f3,a3,c4]@3 ~ [f3,a3,c4]@2 f3 [f3,a3,c4] [f3,bb3,d4]!2 ~ f3 [f3,bb3,d4]@2 f3 ~ [f3,c4,eb4]@3 ~ [f3,c4,eb4]@2 [c4,eb4] f3 [f3,bb3,d4]!2 ~ f3 [f3,bb3,d4]@2 f3 [f3,bb3,d4], f2@31 ~, f1@15 ~ f1@15 ~]/2", // F Bb F7 Cm Bb
B: "[[f3,a3,c4]@3 ~ [f3,a3,c4]@2 f3 [f3,a3,c4] [f3,bb3,d4]!2 ~ f3 [f3,bb3,d4]@2 f3 ~ [f1,f3,c4,eb4]@16, f2@31 ~, f1@15 ~@17]/2", // F Bb F7
C: "[f4,bb4,d5]@3 ~ [f4,bb4,d5]@4 [g4,bb4,c5,eb5]@4 [g4,bb4,c5,eb5]@4, bb2 c3", // Bb Cm7
D: "[[eb3,g4,bb4]@4 ~@2 eb3@2 a4@3 ~@3 f4@2 [bb4,d5]@2 f4@2 c4@2 bb3@2 [g4,bb4,c5,eb5]@4 [g4,bb4,c5,eb5]@4, eb5@3 ~ [g4,bb4,eb5]@4 f5@8 ~@16, ~@4 [f3,f4]@3 bb2@3 ~@2 [c3,c4]@4, ~@12 a4@4 f4 ~@3 [f4,bb4,d5]@4 ~@8]/2", // Eb Bb Cm7 Eb F C Bb
E: "[[eb3,g4,bb4]@4 ~@2 eb3@2 [f4,a4]@4 ~@4 [f4,bb4,d5]@3 ~ [f4,bb4,d5]@4 [g4,bb4,c5,eb5]@4 [g4,bb4,c5,eb5]@4, eb5@3 ~ [g4,bb4,eb5]@4 f5@8 ~@16, ~@4 f3@3 bb2@3 ~@2 c3@4, ~@3 [f4,c5] ~@4]/2", // Eb F Bb Cm7 Eb F5
F: "[eb3,g4,bb4]@2 ~ [eb3,g5] [f4,a4,f5]@2 [f4,c5,eb5]@2, eb5@3 ~ [g4,bb4,eb5]@4 f3@8", // Eb F F7 Eb
G: "[f4,bb4,d5]!2 [g4,bb4,c5,eb5]!2, bb2@7 ~ c3@8", // Bb Cm7
H: "[eb3,g4,bb4]@2 ~ eb3 a4!2 ~ f3, eb5@3 ~ [g4,bb4,eb5,g5]@4 f5@8, ~@2 [f3,f4] [f4,c5]", // Eb F F5
I: "[f4,bb4,d5]@3 ~ [f4,bb4,d5]@4 [c3,bb3,eb4,f4,g4,bb4]@8, bb2@7 ~@9", // Bb Cm7
J: "[eb3,bb3,eb4]@2 ~ [eb3,bb4] [c4,f4,a4]@2 ~ eb3, g4@3 ~ [bb3,eb4,g4]@4 f3@6 ~@2, ~@3 [c4,f4,bb4]", // Eb5 F Eb Fsus4
K: "[f4,bb4,d5]!2 [g4,bb4,c5,eb5]!2, bb2 c3", // Bb Cm7
L: "[eb3,g4,bb4]@2 ~ eb3 [f4,a4]@2 [f4,c5]@2, eb5@3 ~ [g4,bb4,eb5]@4 [f3,f5]@8", // Eb F F5 Eb F
M: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@4 [c4,eb4,g4,bb4]@4 [c4,eb4,g4,bb4]@4, bb2 c3", // Bb Cm7
N: "[eb3,g4,bb4]@4 ~@2 eb3@2 [f4,a4]@3 ~ [f4,a4,c5]@4, eb5@3 ~ [g4,bb4,eb5]@4 [f3,f5]@8", // Eb F Eb F
O: "[[f4,bb4]@2 [f4,d5] ~ [c4,f4,c5]@2 [bb3,f4,bb4]@2 [c4,c5]@2 [g3,g4]@2 [f3,f4]@2 eb4@4 bb3@2 [bb3,eb4,g4]@2 ~@2 [c4,f4]@2 [f2,f3,a3,c4,f4]@2 ~@4, bb2@7 ~ c3@6 eb3@9 [f3,a3]@2 ~@7, d4 ~ d4@2 ~@20 f2 ~@7]/2", // Bb5 Dm F5 Bb5 C G F Eb …
P: "[eb3,eb4,g4,bb4,eb5]@4 [eb3,bb4,eb5]@2 ~@2 eb2 ~ [g4,bb4,eb5,g5]@4 [g4,bb4,eb5,g5]@2, eb2@7 eb3@2 ~ [eb2,eb3]@6, ~@4 [g4,g5] ~ [f4,bb4,d5,f5]@4 ~@6", // Eb Eb5 Eb G Bb
Q: "[c3,bb4,d5,f5]@2 [bb4,c5,eb5]@2 [c3,bb4,d5,g5]@2 ~ c3 c2 ~ [c2,c3,g4,bb4,c5,eb5,g5]@6, c2@7 ~@9, [g4,g5] ~ [g4,g5] ~ [g4,f5] ~ [g4,bb4,c5,eb5,g5]@4 ~@6", // Bb Cm7 Gm Cm7 G G7 Cm7
R: "[bb3,d5]@2 [f4,bb4] ~ [bb3,g4,bb4,eb5]@2 [f4,c5] ~ bb2 ~ [bb2,bb3,f4,bb4,d5,f5]@6, bb2@7 bb3@2 ~@7, [f4,bb4] ~ d5@2 ~@2 [bb4,d5]@4 ~@6", // Bb Bb5 Eb F5 Bb Bb5 Bb
S: "[eb3,g4,bb4,eb5,g5]@4 [eb3,bb4,eb5]@2 ~@2 eb2 ~ [g4,bb4,eb5,g5]@4 [g4,bb4,eb5,g5]@2, eb2@7 eb3@2 ~ [eb2,eb3]@6, ~@4 [g4,g5] ~ [f4,bb4,d5,f5]@4 ~@6", // Eb Eb5 Eb G Bb
T: "[c4,eb4,g4,bb4]@4 c3@2 [c4,eb4,g4,bb4] c3 c2 ~@3 [c4,eb4,g4,bb4]@4, c2@7 ~@3 [c2,c3]@6, c3@3 ~@5 [c4,eb4,g4,bb4]@4 ~@4", // Cm7 C Cm7
U: "[f3,a3,c4]@3 ~ [f3,a3,c4]@2 ~ [f2,f3,a3,c4] [f3,bb3,d4]@2 [f3,a3,c4]@2 [f3,bb3,d4]@3 ~, f2@6 ~@4 f2@5 ~", // F Bb F Bb
V: "[f3,c4,eb4]@2 ~@2 [f3,c4,eb4]@3 ~ [f2,f3,c4,eb4]@8, f2@7 ~@9", // F7
W: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [c4,eb4,g4,bb4]@2 ~@2 [c4,eb4,g4,bb4]@3 ~, [bb1,bb2]@7 ~ [c2,c3]@7 ~", // Bb Cm7 Bb C
X: "[eb4,f4,g4,bb4] ~ [eb4,f4,g4,bb4] ~ [c4,f4,bb4] ~ [c4,bb4] [c4,a4], [eb2,eb3]@7 ~ [f2,f3]@7 ~, ~@3 f4", // Eb Fsus4 C7 F Eb F
Y: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [c4,eb4,g4,bb4]@3 ~ [c4,eb4,g4,bb4]@3 ~, [bb1,bb2]@7 ~ [c2,c3]@7 ~", // Bb Cm7 Bb C
Z: "[eb4,f4,g4,bb4] ~ [eb4,f4,g4,bb4] ~ [c4,f4,a4] ~ [c4,f4,bb4]@2, [eb2,eb3]@7 ~ [f2,f3]@8", // Eb F Fsus4 Eb F
AA: "bb2 ~@3 [c3,g4,bb4,c5,eb5]@4, bb3 ~@15", // Cm7
AB: "[eb3@5 ~ eb3@2 f3@6 ~@2 [f4,bb4,d5]@8 [c3,g4,bb4,c5,eb5]@8, [g4,bb4,eb5] [f4,a4,f5] ~@2, ~@7 bb2@3 ~@6]/2", // Bb Cm7 Eb F
AC: "[[g4,bb4,eb5]@6 eb3@2 f3@6 ~@2 [f4,bb4,d5]@7 ~ [c3,g4,bb4,c5,eb5]@8, eb3@5 ~@3 [f4,a4,f5]@8 ~@16, ~@7 bb2@3 ~@6]/2", // Eb Bb Cm7 F
AD: "[g4,bb4,eb5]@3 [eb3,g5] f3@2 f3@2, eb3@5 ~@3 [f4,a4,f5]@7 ~", AE: "[bb2,f4,bb4,d5]@7 ~ [c3,g4,bb4,c5,eb5]@8",
AF: "[eb3,g4,bb4]@2 ~ eb3 [f3,f4,a4]@2 ~ f3, eb5@3 ~ [g4,bb4,eb5,g5]@4 f5@8, ~@3 [f4,c5]", // Eb F Eb F5
AG: "[bb2,f4,bb4,d5]@7 ~ [c3,bb3,eb4,f4,g4,bb4]@8", // Bb Cm7
AH: "[f3,c4,eb4]@3 ~ [f3,c4,eb4]@2 ~ [f2,f3,c4,eb4] [f3,bb3,d4]@2 [f3,a3,c4]@2 [f3,bb3,d4]@3 ~, f2@6 ~@4 f2@5 ~", // F7 Bb F Bb
AI: "[f2,f3,c4,eb4]@15 ~", // F7
AJ: "[eb4,f4,g4,bb4] ~ [eb4,f4,g4,bb4] ~ [c4,f4,bb4] ~ [c4,f4,bb4]@2, [eb2,eb3]@7 ~ [f2,f3]@8", // Eb Fsus4 Eb F
AK: "[eb4,f4,g4,bb4] ~ [eb4,f4,g4,bb4] ~@5, [eb2,eb3]@7 ~@9", // Eb
})).s("gm_piano").gain(0.24).pan(0.3)
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
~ A@2 B@2 C D E F C D E D E D G D H D I J K L M L N L M O P B Q R S T U V W X Y Z AA D AB AC AD D H AC I J AE L AF L N
L M O P AG AH AI Q R S AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB
>`.pickRestart({
A: "[f1@31 ~]/2", B: "f1@15 ~", C: "bb1@7 ~ c2@7 eb1", D: "eb1@6 ~ eb1 f1 ~ f1@2 ~@2 f1 ~", E: "bb1@7 ~ c1@8",
F: "eb1@6 ~ eb1 f1 ~ f1@6", G: "bb1@7 ~ c2@6 ~ eb1, ~@8 bb1 ~@7", H: "bb1@6 ~ c1 c1@7 c1",
I: "bb1@7 ~ c2@2 g1@2 f1@2 eb1@2", J: "eb1@6 ~ eb1 f1 ~ f1@2 ~@4",
K: "~@2 g1 [ab1,a1] f1 ~ f2@3 ~ ab2 a2 ~ f2 c2 ~, ~@6 eb2 ~@9", L: "eb1@6 ~ eb1!2 ~ eb1@5 ~",
M: "c1@6 ~ c1!2 ~ c1@5 ~", N: "bb1@6 ~ bb1!2 ~ bb1@5 ~", O: "c1@4 c2@3 c1!2 ~ c1@2 g1@4", P: "f1@6 ~ f1!2 ~ f1@5 ~",
Q: "bb1@6 ~ bb1 c2@6 d1!2", R: "eb1@5 ~ eb1!2 f1@4 f1 g1 bb1 g1", S: "bb1@6 ~ bb1 c2@6 g1 f1",
T: "eb1@5 ~ eb1!2 f1@2 g2@2 f2!2 c2@2, ~@10 f2 ~@5", U: "bb1@4 ~@3 bb1 c2@7 ~", V: "eb1@6 ~ eb1 f1 ~ f1@5 ~",
W: "bb1@6 ~ bb1 c2 ~ c2@5 ~", X: "eb1@6 ~ eb1 f1 ~ f1@2 f1 g1 bb1 g1", Y: "bb1@6 ~ bb1 c2@6 ~ eb1",
Z: "eb1@6 ~ eb1 f1 ~ f1@2 ~@2 f1@2", AA: "bb1@5 ~@2 f1 c1@6 c1@2", AB: "bb1@6 ~ f1 c1@5 ~ g1 f1",
AC: "eb1@6 ~ eb1 f1 ~ f1!3 ~ f1 ~", AD: "bb1@7 ~ c2@5 ~ g1 f1, ~@8 bb1 ~@7",
AE: "f1 ~ ab2 a2 f2 eb2 f3@9 ~, ~@6 eb3 ~@9", AF: "c1@6 ~ c1!2 ~ c1@4 g1 f1",
AG: "f1@4 f2@3 c1 f1 ~ f2@4 [b2,c3] [g2,a2]", AH: "f1@4 f2@3 f1!2 ~ f1@2 f2@2 [f1,gb1] [g1,ab1,a1,bb1]",
AI: "f2@15 ~", AJ: "eb1@5 ~ eb1!2 f1 ~ f1@2 f1 g1 bb1 g1", AK: "bb1@6 bb1 f1 c1@6 d1!2",
AL: "eb1@5 ~ eb1!2 f1 ~ f1@2 ~@2 f1@2", AM: "bb1@5 ~ bb1 f1 c1@6 g1 f1", AN: "eb1@5 ~ eb1!2 f1 ~ f1 ~ f1@2 f1@2",
AO: "bb1@6 bb1 f1 c2 ~ c2@4 g1 f1", AP: "eb1 ~ eb1@4 eb1!2 f1 ~ f1@4 f1 g1", AQ: "bb1@5 ~ bb1!2 c2@2 c2@2 g1@3 f1",
AR: "eb1@5 ~ eb1!2 f1 ~@2 b2 [c3,db3] ~ f1@2, ~@5 f1 d3 ~", AS: "bb1@6 bb1 f1 c1@2 c1@2 c3@2 c1!2",
AT: "eb1@2 eb1@2 eb2@2 eb1!2 f1 ~ f1@2 f2@2 f1 g1", AU: "bb1@5 ~ bb1 f1 c1@2 c1@2 c2@2 g1 f1",
AV: "eb1@2 eb1@2 eb2@2 eb1!2 f1 ~ f1 ~ f1@2 f1@2", AW: "bb1@6 bb1 f1 c1@2 c1@2 c3 c1 c1@2",
AX: "eb1@6 eb1!2 f1 ~ f1@2 f2@2 f1 g1", AY: "bb1 ~ bb1@3 ~ f1 bb1 c2@2 c2@2 c3@2 g1 f1",
AZ: "eb1@2 eb1@2 eb2@2 eb1!2 f1 ~ f1 ~ f1!2 f1@2", BA: "bb1@6 bb1 f1 c1@2 c1@2 c2@2 c1!2",
BB: "eb1@2 eb1@2 eb2@2 eb1!2 f1 ~ f1@2 f2@2 f1 ~",
})).s("gm_electric_bass_finger").gain(0.39)
// bass · electric bass finger · "FINGERDBAS" · soft notes
const bass_soft = note("<~@6 A B ~@2 A B C B A B A D A B ~@15 E ~@3 F ~ E C D A B A D A B ~@10 G H ~@23>".pickRestart({
A: "~@15 [gb1,g1,ab1]", B: "a1 ~@15", C: "~@14 gb1 [g1,ab1]", D: "a1 ~@5 bb1 ~@9", E: "~@6 bb1 ~@9",
F: "~@6 bb1 ~@7 eb1 ~", G: "~@15 f2", H: "e2 ~@15",
})).s("gm_electric_bass_finger").gain(0.2)
// chords · string ensemble 1 · "+ORCHESTRA"
const string_ensemble_1 = note(`<
~ A@4 ~@8 B@2 C@2 B@2 D@3 E ~@5 F B@2 G H I J K ~@7 B@2 C@2 B@2 L@3 M N O P ~@2 F Q@4 G R S T U V W X Y@8 G R W Z G R
>`.pickRestart({
A: "[f2,f4]/2", B: "[[f3,f4]@31 ~]/2", C: "[[f3,d4,f4]@4 [g3,g4]@4 [bb3,bb4]@7 ~, ~@4 eb4@11 ~]/2",
D: "[[bb2,f3,bb3,f4]@4 c4@3 ~ [eb3,bb3,bb4]@4 ~@2 [f4,f5]@10, ~ [c3,g3,g4] ~@4, ~@7 eb4@5 ~@12]/3", // Bb5 Eb5 F C5
E: "[eb4,eb5] ~@15", F: "[c3,c4]@6 [d3,d4] [eb3,eb4], ~@12 [db3,db4] ~@3",
G: "[bb2,f3]@2 ~@2 [bb2,f3]@2 ~@2 [c3,eb3,eb4,g4]@2 f4@2 bb3 c4@3, [d4,f4]@8 ~@2 d4 ~ [c3,g3,eb4]@3 ~", // Bb5 Cm Dm Cm
H: "[eb3,bb3,eb4,f4] ~ [eb3,bb3,eb4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~, bb4@3 a4", // Ebsus2 F5
I: "[bb2,f3] ~ [bb2,f3] ~ [c3,g3,eb4,g4] d4 [c3,g3,bb3,g4] c4, [d4,f4] ~", // Bb5 Cm C7 Dm
J: "[eb3,eb4,g4]@2 ~@2 [eb3,eb4,g4]@3 ~ [a4,bb4]!4 [f3,c4,g4]@4, bb3, ~@2 d4 ~, ~@4 f3 ~@3", K: "[bb2,f3,f4] ~@3",
L: "[[bb2,f3,bb3,f4]@7 ~ c4@6 ~@2 [eb3,bb3,bb4]@8 ~@4 [f4,f5]@19 ~, ~@7 c3@7 eb4@10 ~@24, ~ [g3,g4] ~@4]/3", // Bb5 Eb5 F G
M: "[c4,f4,a4,f5] [bb3,eb4,g4,eb5]@4 ~@2 [g4,bb4,eb5]", N: "[f4,a4,d5]@2 [eb4,g4,c5]@2 [f4,a4,d5] ~ [eb4,g4,c5]@10",
O: "bb4@3 g4", P: "f4@15 ~", Q: "[[f3,f4]@63 ~]/4",
R: "[eb3,bb3,eb4,f4] ~ [eb3,bb3,eb4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4,a4] g4, ~ bb4@5 ~@2", // Ebsus2 F5 F
S: "[bb2,f3]@2 ~@2 [bb2,f3]@2 ~@2 [c3,g3,eb4]@2 d4@2 [c3,g3,bb3]@2 eb4 d4, f4@7 ~, d4 ~", // Bb5 Cm C7
T: "eb4 d4 ~@2 [eb3,eb4,g4]@3 ~ [f3,c4,f4,bb4]@2 ~@2 [f3,c4,g4,bb4]@2 ~@2, [eb3,f4] bb3@7", // Eb Fsus4 Ebsus2
U: "[bb2,f3,d4] ~ [bb2,f3,d4] ~ [c3,g3,eb4,g4] ~ [c3,g3,eb4] g4, f4@4 ~ f4@2 ~", // Bb Cm
V: "[eb3,bb3,eb4] ~ [eb3,bb3,eb4] bb4 [f3,c4,a4] g4 [f3,c4,g4] f4, f4@3 ~@5", // Eb5 F Fsus2
W: "[bb2,f3] ~ [bb2,f3] ~ [c3,g3,eb4,f4] d4 [c3,g3,bb3,f4] c4, [d4,f4] ~", // Bb5 Cm Csus4 Dm
X: "[eb3,eb4,g4] ~ [eb3,eb4,g4] [g4,bb4] [f3,c4,f4,a4] [g4,bb4] [f3,c4,g4,c5] [f4,bb4], bb3", // Eb Gm F Gm Fsus2 Bb5
Y: "[[bb2,f3,d4] ~ [bb2,f3,d4] ~ [c3,g3,eb4] ~ [c3,g3,eb4] ~ [eb3,bb3,eb4,f4] ~ [eb3,bb3,eb4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [bb2,f3,d4] ~ [bb2,f3,d4] ~ [c3,g3,eb4] ~ [c3,g3,eb4] ~ [eb3,bb3,eb4,f4] ~ [eb3,bb3,eb4,f4] bb4 [f3,c4,f4,a4] bb4 [f3,c4,f4,c5] bb4, bb4@27 ~@5]/4", // Bb Cm Ebsus2 F5 Bb Cm Ebsus2 F …
Z: "[eb3,eb4,f4]@2 ~@2 [eb3,eb4,g4]@3 ~ [f3,c4,f4,bb4]@2 ~@2 [f3,c4,g4,bb4]@2 ~@2, bb3", // Ebsus2 Eb Fsus4
})).s("gm_string_ensemble_1").gain(0.4)
// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
~@4 A ~@16 B C@4 D@2 ~ E@2 F G H@2 I ~@15 B C@4 D@2 ~ J@4 F G H@2 F G H@2 F G H@2 F G H@2 F G H@2 F K
>`.pickRestart({
A: "[f4,c5,f5,a5]", B: "~@3 [a5,b5,c6] [d6,e6,f6,g6,a6,bb6] [b5,c6,d6,e6,f6,g6] [f5,g5,a5] [b4,c5,d5,e5] ~@8",
C: "[bb5 c5 ~ [d5,f5], [eb5,g5]@3 ~, ~@32 bb5@31 ~]/4", D: "[[eb5,bb5] [eb5,c6], g5]/2",
E: "[[a4,c5]@3 ~ [a4,c5]@3 ~ [bb4,d5]@2 [a4,c5]@2 [bb4,d5]@3 ~ [c5,eb5]@16, f4]/2", F: "d5@4 eb5 d5 c5@2",
G: "bb4@2 ~ a5, f5, bb5@3 ~, ~ c5", H: "[d5@4 eb5 d5 ~@8 c6@2, ~@3 bb4@3 c5@2, ~ f5, ~@4 bb5@3 ~]/2", I: "bb5 ~@15",
J: "[[a4,c5]@3 ~ [a4,c5]@3 ~ [bb4,d5]@2 [a4,c5]@2 [bb4,d5]@3 ~ [c5,eb5]@3 ~ [c5,eb5]@3 ~ [bb4,d5]@2 [a4,c5]@2 [bb4,d5]@3 ~ [a4,c5]@3 ~ [a4,c5]@3 ~ [bb4,d5]@2 [a4,c5]@2 [bb4,d5]@3 ~ [f5,c6,f6]@6 [a5,b5] [a4,b4,c5,d5,e5,g5] g4 ~@7, f4]/4", // Am Bb Am Bb Cm Bb Am Bb …
K: "bb4@8 ~@4 a5@3 ~, f5, bb5@3 ~, ~ c5",
})).s("gm_rock_organ").gain(0.2)
// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
A@3 B@2 ~@10 C@2 D ~@2 E F G H I J K L@2 M N ~@19 E F G H I O K L@2 P Q R S T U T U T U T U V W X Y Z AA AB AC AD AE
AF AG AH AI
>`.pickRestart({
A: "[~@8 [c4,f4]@6 ab3 f3@6 [g3,b3]!2 [f3,a3], ~@5 [f2,c3,f3,a3]@4 ~@7]/3", B: "[[a3,c4,f4]@6 ~ f5@9, ~@3 c5@5]/2",
C: "[~@8 bb4@5 ~ f4 d4, ~@7 f4@6 ~@3]/2", D: "bb3", E: "~@10 [d4,f4]@2 [f4,a4,d5] ~@3",
F: "[c4,eb4]@2 [eb4,g4,c5] ~@3 [bb3,d4]@2 [d4,f4,bb4] ~ [ab3,c4]@2 [c4,eb4,ab4] f3 eb3@2", G: "[bb3,eb4,g4,bb4]",
H: "[c3,g3,c4]@14 c3 [g3,c4]", I: "[eb3,bb3,eb4]@15 ~", J: "[bb2,f3,bb3]@8 bb2 c3 d3 c3 [f3,bb3,c4]@2 [f3,g3] d3",
K: "[eb3,bb3,eb4]@14 eb3 [bb3,eb4]", L: "[c3,g3,c4]@15 ~", M: "[f2,c3,f3]", N: "f4@15 ~",
O: "[bb2,f3,bb3]@6 c3 d3 [f3,bb3]@2 c3 d3 [f3,bb3]@2 g3 f3", P: "[f2,c3,f3]@11 f3 a3 c4 d4 [a3,c4]",
Q: "[f3,a3,c4,f4]@14 [a3,c4,f4] f3", R: "a3@2 f3@4 [f3,c4] f3 ab4@2 ab4@2 [g4,ab4] f4 g4 f4", S: "[c5,f5]",
T: "bb2@8 c3@6 g2 f2", U: "eb3 f3", V: "bb2@8 c3@2 eb4 d4 eb4 d4 bb3 c4",
W: "f3!2 bb3 ~ f3 g3 bb3 c4 f4!3 g4 f4 eb4 d4 c4", X: "[f3,bb3]@5 ~ [f3,bb3] f3 [g3,c4]@4 bb3@4",
Y: "f4@2 eb4 [eb4,f4] d4 c4 eb4 d4 c4 bb3 g3 f3 [f3,bb3]!4", Z: "d4@3 bb3 c4 bb3 g3 bb3",
AA: "c4 [c4,d4] bb3 [bb3,c4] eb3@2 bb3!2 ~ c4 [f3,c4,d4]@2 [f4,g4] [a4,bb4] b4 [c5,db5], ~@4 [f3,bb3] ~@3", // Csus2 Bbsus2 Dm7 Fsus2 Bbmaj7 Dbmaj7 Bb5
AB: "d5@10 d5 [db5,d5] f5@2 eb5 d5", AC: "eb5 d5 c5 bb4@2 f4 g4 bb4@2 f4 bb4 bb4@2 f4 c5 bb4",
AD: "c5@11 ~ c5 bb4 c5 g4", AE: "bb4@6 g4 f4 [c4,d4] f4!3 c4 bb3 c4@2", AF: "bb3@9 f3 g3 bb3 [f3,g3] bb3 c4 d4",
AG: "c4 d4 c4 bb3 c4@3 bb3!2 f3!7", AH: "[bb3,f4]@8 g4@2 f4@2 eb4@3 g3", AI: "[bb3,f4] ~",
})).s("gm_distortion_guitar").gain(0.36).pan(0.4)
// chords · pad metallic · "METAL PAD"
const pad_metallic = note("<~@13 A B A C A B A D ~@22 A B A C A B A D ~@34>".pickRestart({
A: "[f5,d6]@7 ~ [g5,c6,eb6]@8, bb5@15 ~", B: "[g5,bb5,eb6]@7 ~ [a5,c6]@8, ~@7 f6@8 ~",
C: "[g5,bb5]@2 ~ f6, eb6@3 ~, ~ [f5,c6]", D: "[g5,bb5,eb6]@7 ~@9",
})).s("gm_pad_metallic").gain(0.19)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
~ A B C D E F@2 G H I@2 G J K@2 G L M@2 N O P Q R S T Q U V W X Y X Y Z F@2 G H I@2 G J K@2 G L M@2 AA O P Q R S T Q U
V AB V D X AC X AC X Y X Y X AC X AC X AC X AC X AC X AC X AD
>`.pickRestart({
A: "[f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [a3,c4,f4] [a3,c4] [f3,bb3,d4] [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4], ~@3 f3", // F Am Bb
B: "[f3,c4,eb4,f4]@4 [f3,c4,eb4,f4]@2 [c4,eb4,f4] [c4,eb4] [f3,bb3,d4] [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [f3,bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4]", // F7 Cm Bb
C: "[f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [a3,c4,f4] [f3,a3,c4] [f3,bb3,d4] [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4], ~@3 f3", // F Bb
D: "[f3,c4,eb4,f4]@15 ~", E: "~ bb3 c4 bb3 c4 g3@2 eb4, bb2@4 c3@3 ~",
F: "[~@2 eb4 ~ eb4@2 d4 ~ c4@2 bb3@4 ~@4 d4@2 [c4,d4] c4 bb3 ~ c4@2 g3@4 eb4@2, eb3@4 [f2,eb3]@3 d4@2 ~@7, ~@8 bb2@4 c3@3 ~]/2", // Csus2 F7
G: "~@2 eb4@2 eb4@2 d4 ~ c4@2 bb3@2 a3@2 f3@2, eb3@4 [f2,eb3]@3 ~", // F7
H: "~@2 d4@2 [c4,d4] c4 bb3 [b3,c4] c4@2 g3@4 eb4@2, bb2@4 c3@3 ~", // Csus2 Cmaj7
I: "[~@2 eb4 ~ eb4@2 d4 ~ c4@2 bb3@4 ~@4 [bb3,d4]@2 [c4,d4] c4 bb3 [b3,c4] c4@2 g3@4 eb4@2, eb3@4 [f2,eb3]@3 d4@2 ~@7, ~@8 bb2@4 c3@3 ~]/2", // Bb Csus2 Cmaj7 F7
J: "~ [f3,d4] [f3,c4] [f3,bb3] [eb3,c4] ~ bb3 eb4, bb2@4 c3@3 ~, ~@5 f3@2 ~", // Dm F5 Bb5 Cm
K: "[~@2 eb4 ~ eb4@2 d4 ~ c4@2 bb3@4 ~@4 d4@2 [c4,d4] c4 bb3 ~ c4@2 g3@4 eb4@2, eb3@4 [f3,f4]@3 d4@2 ~@7, ~@8 bb2@4 c3@3 ~]/2", // Csus2 F
L: "~ [f3,bb3] [f3,c4] bb3 c4 g3@2 eb4, bb2@4 c3@3 ~", // Bb5 F5
M: "[~@2 eb4 ~ eb4@2 d4 ~ c4@2 bb3@4 ~@4 [f3,d4]@2 [f3,c4,d4] c4 bb3 ~ c4@2 g3@2 f3@2 [bb3,eb4]@2, eb3@4 [f2,eb3]@3 d4@2 ~@7, ~@8 bb2@4 c3@3 ~]/2", // Dm Dm7 Eb5 F7
N: "~@2 bb3@2 ~ [a3,d4] [g3,ab3,c4,db4] ~ [c4,f4]@2 [d4,eb4,e4] f4 [f4,a4,d5] ~@3, eb3@6 ~ [c3,f3,a3]@3 ~@6, ~@2 [g3,bb3,eb4] ~@5", // D5 Dbmaj7 F5 Dm F Eb
O: "[c4,db4,d4] eb4 [eb4,g4,c5] ~@3 [b3,c4,db4,d4] ~ [d4,f4,bb4] ~ [a3,bb3,b3,c4] ~ [c4,eb4,ab4] ~ [c3,db3,d3,eb3] ~", // Cm Bb Ab
P: "[eb3,g3,bb3,eb4,g4]@4 [eb3,g3,bb3,eb4,g4]@2 [eb3,g3,bb3,eb4,f4] ~@3 [eb3,bb3,eb4,g4] ~@3 [g3,bb3,eb4,g4]@2", // Eb
Q: "[g3,bb3,f4]@2 [g3,c4,eb4]@2 [bb3,d4,f4]@2 [g3,c4,eb4]@4 [g3,c4,eb4]@2 ~@2 [eb3,g3,c4] [g3,c4,eb4]", // Gm7 Cm Bb Cm
R: "[eb3,g3,bb3,eb4,g4]@4 [eb3,g3,bb3,eb4,g4]@2 [g3,bb3,d4,f4] ~@3 [eb3,bb3,eb4,g4] ~@3 [eb3,g3,bb3] [g3,bb3,eb4]", // Eb Gm7 Eb
S: "[f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@2 [g3,bb3,eb4,f4]@2 [f3,bb3,d4,f4]@4 [bb3,d4,f4]@2 ~@2 [f3,bb3] [f3,bb3,d4]", // Bb Eb Bb Bb5 Bb
T: "[eb3,g3,bb3,eb4,g4]@4 [eb3,g3,bb3,eb4,g4]@2 [eb3,g3,bb3,d4,f4] ~@3 [eb3,bb3,eb4,g4] ~@3 [g3,bb3,eb4,g4]@2", // Eb Ebmaj7 Eb
U: "[c3,g3,c4,eb4]@2 [c3,g3,c4,eb4]@2 [c3,g3,bb3,f4]@2 [c3,g3,c4,eb4]@4 [g3,c4,eb4]@2 [g3,eb4,g4]@2 [c3,g3,c4] [g3,c4,eb4], ~@12 c4 ~@3", // Cm Csus4 Cm C5 Cm
V: "[f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [a3,c4,f4] [a3,c4] [f3,bb3,d4] [f3,bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4], ~@3 f3", // F Am Bb
W: "[f3,c4,eb4,f4]@4 [c4,eb4]@2 [c4,eb4]!2 [f3,eb4]@8, ~@2 [f3,f4]@2 [c4,f4]@3 ~", // F7 Cm F7 F F5
X: "[f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [bb3,d4,f4] [bb3,d4] [g3,bb3,eb4,f4]@4 [bb3,eb4,f4]@2 [bb3,eb4] [bb3,eb4,f4], ~@3 g3", // Bb Eb Bbsus4 Eb5 Bbsus4
Y: "[g3,bb3,eb4,f4]@4 [bb3,eb4]@2 [bb3,eb4]!2 [f3,bb3,eb4,f4]@4 [a3,eb4]@2 [a3,eb4] [a3,eb4,f4], ~ [g3,f4] ~ [f3,f4]", // Eb Eb5 Ebsus2 Adim F7 G7 F
Z: "bb3!2 c4 bb3 c4 g3@2 eb4, bb2@4 c3@3 ~, [f3,d4] ~@3", // Dm
AA: "~@2 bb3@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [c3,f3,a3,c4,f4]@2 [d4,eb4,e4] f4 [f4,a4,d5] ~@3, eb3@3 ~@5", // Eb F Dm
AB: "[f3,c4,eb4,f4]@4 [c4,eb4]@2 [c4,eb4]!2 [f3,bb3,d4] [f3,bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4], ~ [f3,f4] ~ f3", // F7 Cm Bb F
AC: "[g3,bb3,eb4,f4]@4 [bb3,eb4]@2 [bb3,eb4]!2 [f3,bb3,eb4] [f3,bb3,eb4,f4]@2 [bb3,eb4] [bb3,c4,f4]@2 [a3,c4] [a3,c4,f4], ~ [g3,f4] ~ f3", // Eb Eb5 Ebsus2 Eb5 Bbsus2 Am F G7
AD: "[g3,bb3,eb4,f4]@4 [bb3,eb4]@2 [bb3,eb4]!2 [f3,bb3,eb4] [f3,bb3,eb4,f4]@2 [bb3,eb4] [bb3,c4,f4]@2 [a3,c4] ~, ~ [g3,f4] ~ f3", // Eb Eb5 Ebsus2 Eb5 Bbsus2 Am G7
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.8)
// other · koto · "+TAISHO"
const koto = note("<~@15 A B ~@2 C ~@17 A B ~@2 A B ~@2 A B ~@2 C ~@35>".pickRestart({
A: "~@2 [c3,d3] ~ c3 [c3,d3] bb2 ~ c3 ~ g2 ~@3 eb3 ~", B: "~@2 eb3 ~ eb3 ~ d3 ~ c3 ~ bb2 ~ a2 ~ bb2 ~",
C: "~@2 [c3,d3] ~ c3 [c3,d3] bb2 ~ c3 ~ g2 ~ f2 ~ eb2 ~", // Csus2
})).s("gm_koto").gain(0.32).pan(0.3)
// drums · kick
const kick = s("bd").struct(`<
~ A ~ A@2 B C B C B C B C B C B C B C B C ~ C@8 D B C B@3 C B C B C B C B C B C B C B C A C@10 A E C B C B C B@2 C F
C@3 G C D C@3 H C@2
>`.pickRestart({
A: "x", B: "x!2", C: "x ~@3 x!2 ~@2", D: "x ~@6 x ~@8", E: "x ~@2 x!2 ~@3", F: "x!2 ~@2 x!2 ~@2",
G: "x ~ x ~@5 x ~ x ~@2 x ~@2", H: "x ~@7 x ~@2 x ~@4",
// … 80 more lines
More by Wet Wet Wet
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.