0:00/0:00
// If I Can't Have You — Kim Wilde
// 118 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 17, 4/4 at bar 20, 2/4 at bar 48, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 3"
const piano = note(`<
A B C D E F C D E F C D E G@4 H@6 I J K L M N O P Q R S T U V S T U W X Y Z AA@2 AB A AC AD AE AF AG AH AI AJ AI AJ AI
AK B C D E F C D E AL@7 AM B C D E F C D E F C D E F C D E F C D E F C D E F C D AN ~@8
>`.pickRestart({
A: "~@12 [f6,g6,a6,b6,c7] [a5,b5,c6,d6,e6] [c5,d5,e5,f5,g5] [g4,a4,b4]", // F Am C G
B: "[a2,a3,c4,e4,f4] ~@3 [a2,a3,c4,e4] ~@2 [a2,a3,c4,e4]@2 ~ [a2,a3,c4,e4] ~ a2 ~ a2@2, ~@13 [a3,c4,e4]@2 ~", // Fmaj7 Am
C: "[g3,b3,d4]@5 ~ [g3,b3,d4] [g3,b3,d4]@2 ~ [g3,b3,e4]@2 ~@2 g2@2, g2@6 g2 ~, ~@13 [g3,b3,d4]@3", // G Em G
D: "[e2,e3,g3,b3,d4] ~@3 [e2,e3,g3,b3,d4] ~@2 [e2,e3,g3,b3,d4]@2 ~ [e2,e3,g3,b3,d4] ~ e2 ~ e2@2, ~@13 [e3,g3,b3,d4]@2 ~", // Em7
E: "[f3,a3,c4,e4]@4 ~@2 [f3,a3,c4] [f3,a3,c4,e4] [f2,f3,a3,c4,e4]@2 [f2,f3,a3,c4,e4]@2 ~@2 g2@2, f2@4 ~@2 f2 ~, ~@13 [g3,b3,d4]@3", // Fmaj7 F Fmaj7 G
F: "[a2,a3,c4,e4] ~@3 [a2,a3,c4,e4] ~@2 [a2,a3,c4,e4]@2 ~ [a2,a3,c4,e4] ~ a2 ~ a2@2, ~@13 [a3,c4,e4]@2 ~", // Am
G: "[[d3,a3,c4,d4,f4]@5 ~ [c3,g3,c4,e4]@5 ~ [g2,g3,b3,d4]@10 [g3,b3,d4]@2 [a2,g3,a3,c4,e4]@5 ~ [a#2,a3,a#3,d4,f4]@5 ~ [f2,a3,c4,f4]@16 ~@12]/4", // Dm7 C G Am7 A#maj7 F
H: "[~@4 [c3,g3,c4,e4]@15 ~ [c3,g#3,c4,f4]@15 ~ [c3,g3,c4,e4]@15 ~ [c3,g3,b3,d4]@15 ~ [c3,f3,a3,c4]@15 ~ [c3,g3,c4,e4] ~@3 [c3,g3,c4,e4] ~@2 [c3,g3,c4,e4]@2 ~ [c3,g3,c4,e4] ~]/6", // C Fm C G F C
I: "~ [c3,g3,c4,e4]@2 ~ [c3,g#3,c4,f4] ~@3 [c3,g#3,c4,f4] ~@2 [c3,g#3,c4,f4]@2 ~ [c3,g#3,c4,f4] ~", // C Fm
J: "~ [c3,g#3,c4,f4]@2 ~ [c3,g3,c4,e4] ~@3 [c3,g3,c4,e4] ~@2 [c3,g3,c4,e4]@2 ~ [c3,g3,c4,e4] ~", // Fm C
K: "~ [c3,g3,c4,e4]@2 ~ [c3,g3,b3,d4] ~@3 [c3,g3,b3,d4] ~@2 [c3,g3,b3,d4]@2 ~ [c3,g3,b3,d4] ~", // C G
L: "~ [c3,g3,b3,d4]@2 ~ [c3,f3,a3,c4] ~@3 [c3,f3,a3,c4] ~@2 [c3,f3,a3,c4]@2 ~ [c3,f3,a3,c4] ~", // G F
M: "~ [c3,f3,a3,c4]@2 ~ [g2,g3,b3,d4] ~@3 [g2,g3,b3,d4] ~@2 [g2,g3,b3,d4]@2 ~ [g2,g3,b3,d4] ~", // F G
N: "~ [g2,g3,b3,d4]@2 ~ [f2,f3,a3,c4] ~@3 [f2,f3,a3,c4] ~@2 [f2,f3,a3,c4]@2 ~ [f2,f3,a3,c4] ~", // G F
O: "~ [f2,f3,a3,c4]@2 ~ [d3,f3,a3,c4] ~@3 [d3,f3,a3,c4] ~@2 [d3,f3,a3,c4]@2 ~ [d3,f3,a3,c4] ~", // F Dm7
P: "~ [d3,f3,a3,c4]@2 ~ [f2,f3,a3,c4] ~@3 [f2,f3,a3,c4] ~@2 [f2,f3,a3,c4]@2 ~ [f2,f3,a3,c4] ~", // Dm7 F
Q: "~ [f2,f3,a3,c4]@2 ~ [d3,f3,a3,c4] ~@3 [d3,f3,a3,c4] ~@2 [g2,g3,b3,d4]@2 ~ [g2,g3,b3,d4] ~", // F Dm7 G
R: "[f6,g6,a6,b6,c7] [a5,b5,c6,d6,e6] [c5,d5,e5,f5,g5] [g4,a4,b4] [a2,a3,c4,e4,f4] ~@3 [a2,a3,c4,e4] ~@2 [a2,a3,c4,e4]@2 ~ [a2,a3,c4,e4] ~", // F Am C G Fmaj7 Am
S: "a2 ~ a2@2 [g3,b3,d4]@5 ~ [g3,b3,d4] [g3,b3,d4]@2 ~ [g3,b3,e4]@2, ~ [a3,c4,e4]@2 ~ g2@12", // G Em Am
T: "~@2 g2@2 [e2,e3,g3,b3,d4] ~@3 [e2,e3,g3,b3,d4] ~@2 [e2,e3,g3,b3,d4]@2 ~ [e2,e3,g3,b3,d4] ~, g2 ~@7, ~ [g3,b3,d4]@3 ~@12", // Em7 G
U: "e2 ~ e2@2 [f3,a3,c4,e4]@4 ~@2 [f3,a3,c4] [f3,a3,c4,e4] [f2,f3,a3,c4,e4]@2 [f2,f3,a3,c4,e4]@2, ~ [e3,g3,b3,d4]@2 ~ f2@8 ~@4", // Fmaj7 F Fmaj7 Em7
V: "~@2 g2@2 [a2,a3,c4,e4] ~@3 [a2,a3,c4,e4] ~@2 [a2,a3,c4,e4]@2 ~ [a2,a3,c4,e4] ~, f2 ~@7, ~ [g3,b3,d4]@3 ~@12", // Am G
W: "~@2 g2@2 [a#2,f3,a3,a#3,d4] ~@3 [a#2,f3,a3,a#3,d4] ~@2 [a#2,f3,a3,a#3,d4]@2 ~ [a#2,f3,a3,a#3,d4] ~, f2 ~@7, ~ [g3,b3,d4]@3 ~@12", // A#maj7 G
X: "~ [a#2,f3,a3,a#3,d4]@2 ~ [a#2,f3,a3,a#3,d4] ~@3 [a#2,f3,a3,a#3,d4] ~@2 [a#2,f3,a3,a#3,d4]@2 ~ [a#2,f3,a3,a#3,d4] ~", // A#maj7
Y: "~ [a#2,f3,a3,a#3,d4]@2 ~ [a2,e3,g3,a3,c4] ~@3 [a2,e3,g3,a3,c4] ~@2 [a2,e3,g3,a3,c4]@2 ~ [a2,e3,g3,a3,c4] ~", // A#maj7 Am7
Z: "~ [d3,f3,a3,c4,d4]@2 ~ [d3,f3,a3,c4,d4] ~@3 [d3,f3,a3,c4,d4] ~ a2 c3 [d3,a3,c4,d4,f4]@4", // Dm7
AA: "[~@2 [c3,g3,c4,e4]@5 ~ [g2,g3,b3,d4]@10 [g3,b3,d4]@2 [a2,g3,a3,c4,e4]@5 ~ [a#2,a3,a#3,d4,f4]@5 ~]/2", // C G Am7 A#maj7
AB: "[f2,a3,c4,f4]", AC: "[c3,g3,c4]@15 ~, [e4,f4] ~@15", AD: "[c3,g#3,c4,f4]@15 ~", AE: "[c3,g3,c4,e4]@15 ~",
AF: "[c3,g3,b3,d4]@15 ~", AG: "[c3,f3,a3,c4]@15 ~", AH: "[g2,g3,b3,d4]@15 ~",
AI: "[f2,f3,a3,c4] ~@3 [f2,f3,a3,c4] ~@2 [f2,f3,a3,c4]@2 ~ [f2,f3,a3,c4] ~@2 [f2,f3,a3,c4]@2 ~", // F
AJ: "[d3,f3,a3,c4] ~@3 [d3,f3,a3,c4] ~@2 [d3,f3,a3,c4]@2 ~ [d3,f3,a3,c4] ~@2 [d3,f3,a3,c4]@2 ~", // Dm7
AK: "[d3,f3,a3,c4] ~@3 [d3,f3,a3,c4] ~@2 [g2,g3,b3,d4]@2 ~ [g2,g3,b3,d4] ~ [f6,g6,a6,b6,c7] [a5,b5,c6,d6,e6] [c5,d5,e5,f5,g5] [g4,a4,b4]", // Dm7 G F Am C G
AL: "[a2,g3,a3,c4,e4] ~@3 [a2,g3,a3,c4,e4] ~@2 [a2,g3,a3,c4,e4]@2 ~ [a2,g3,a3,c4,e4] ~@2 [a#2,a3,a#3,d4,f4]@2 ~", // Am7 A#maj7
AM: "[a2,g3,a3,c4,e4] ~@3 [a2,g3,a3,c4,e4] ~@2 [a2,g3,a3,c4,e4]@3 [g3,a3,c4,e4]@2 [f6,g6,a6,b6,c7] [a5,b5,c6,d6,e6] [c5,d5,e5,f5,g5] [g4,a4,b4], ~@5 a2@2 ~", // Am7 F Am C G
AN: "[f3,a3,c4,e4]@4 ~@2 [f3,a3,c4] ~@9, f2 ~", // Fmaj7 F
})).s("gm_piano").gain(0.22).pan(0.7)
// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
~@4 A B C D E B C D E F@4 G H I H I J H I H I K L M N O P Q R S P Q R S T U V W@3 X Y Z AA Z AA AB AC AD AE AD AE AD
AF B C D E B C D E AG@7 AH ~@3 AI B C D E B C D E B C D E B C D E B C D E B C D E ~@8
>`.pickRestart({
A: "~@13 g1@2 ~", B: "a1 ~@3 a1 ~@2 a1@2 ~ a1 ~ a1 ~ c2@2", C: "g1 ~@3 g1 ~@2 g1@2 ~ a1 ~ b1 ~ g1 ~",
D: "e1 ~@3 e1 ~@2 e1@2 ~ b0 ~ e1 ~ e1@2", E: "f1 ~@3 f1 ~@2 f1@2 ~ f1 ~ g1 ~ g1@2",
F: "[d2@6 c2@6 g1@10 e1@2 a1@6 a#1@6 f1@16 f1 ~@3 f1 ~ f1 ~ f1 ~ f1 ~]/4", G: "f1@2 ~@2 c2 ~@3 c2 ~@2 c2@2 ~ c2@2",
H: "c2 ~ g1@2 c2 ~@3 c2 ~@2 c2@2 ~ g1@2", I: "f1 ~ g1@2 c2 ~@3 c2 ~@2 c2@2 ~ c2@2",
J: "g1@2 ~@2 c2 ~@3 c2 ~@2 c2@2 ~ c2@2", K: "c2 ~ g1@2 g1 ~@3 g1 ~@2 g1@2 ~ g1 ~",
L: "g1 ~ e1@2 f1 ~@3 f1 ~@2 f1@2 ~ f1@2", M: "f1 ~ c2@2 d2 ~@3 d2 ~@2 d2@2 ~ f1@2",
N: "c2 ~ f1@2 f1 ~@3 f1 ~@2 f1@2 ~ f1@2", O: "f1 ~ c2@2 d2 ~@3 d2 ~@2 g1@2 ~ g1@2",
P: "g1 ~ g1@2 a1 ~@3 a1 ~@2 a1@2 ~ a1 ~", Q: "a1 ~ c2@2 g1 ~@3 g1 ~@2 g1@2 ~ a1 ~",
R: "b1 ~ g1 ~ e1 ~@3 e1 ~@2 e1@2 ~ b0 ~", S: "e1 ~ e1@2 f1 ~@3 f1 ~@2 f1@2 ~ f1 ~",
T: "g1 ~ g1@2 a#1 ~@3 a#1 ~@2 a#1@2 ~ a#1 ~", U: "a#1 ~ d2@2 a#1 ~@3 a#1 ~@2 a#1@2 ~ a#1 ~",
V: "d2 ~ a#1 ~ a1 ~@3 a1 ~@2 a1@2 ~ a1 ~", W: "[a1 ~ c2@2 d2 ~@3 d2@2 a1@2 d2@6 c2@6 g1@10 e1@2 a1@6 a#1@6]/3",
X: "f1", Y: "f1 ~@3 f1 ~ f1 ~ f1 ~ f1 ~ f1@2 ~@2", Z: "c2 ~@3 c2 ~@2 c2@2 ~ c2@2 c2 ~ g1@2",
AA: "c2 ~@3 c2 ~@2 c2@2 ~ g1@2 f1 ~ g1@2", AB: "c2 ~@3 c2 ~@2 c2@2 ~ c2@2 g1 ~ g1@2",
AC: "g1 ~@3 g1 ~@2 g1@2 ~ g1 ~ g1 ~ e1@2", AD: "f1 ~@3 f1 ~@2 f1@2 ~ f1@2 f1 ~ c2@2",
AE: "d2 ~@3 d2 ~@2 d2@2 ~ f1@2 c2 ~ f1@2", AF: "d2 ~@3 d2 ~@2 g1@2 ~ g1@2 g1 ~ g1@2",
AG: "a1 ~ c2@2 a1 ~@2 a1 ~@2 a1 ~@2 a#1@2 ~", AH: "a1 ~ c2@2 a1 ~@2 a1 ~@2 a1 ~@5", AI: "~@10 f1@2 ~ g1@2 ~",
})).s("gm_synth_bass_2").gain(0.64)
// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
~@4 A B@2 C@2 B@2 D@2 ~@2 E@2 F G H I J K L M N O P Q@2 R@2 S T U V W T U X@4 Y ~@2 Z AA AB AC@7 AD@2 AE@2 AF@2 AG@2
B@2 D@2 ~ AH ~ A AI AH ~ AJ B@2 AG@2 B@2 C@2 B@2 AG@2 B@2 C@2 B@2 AG@2 B@2 C@2 B@2 D@2 ~@8
>`.pickRestart({
A: "~@14 [e4,g4,c5] [c4,e4,a4]", // C Am
B: "[[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 ~@4 [e4,a4,c5]@2 [e4,a4,c5] ~ [e4,a4,c5]@4 [d4,g4,b4] ~ [d4,g4,b4]@2 [b3,e4,g4] [d4,g4,b4]@2 ~ [e4,a4,c5] ~@3 [d4,g4,b4] [b3,e4,g4]]/2", // C Am G Em G Am G Em
C: "[[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~@5 [b3,e4,g4]@2 [d4,g4,b4]@2 [e4,a4,c5]@6 ~@2 c5@2 b4@2 a4@2 g4@2 [e4,g4,c5] [c4,e4,a4]]/2", // G Em G Am C Am
D: "[[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~@5 [b3,e4,g4]@2 [d4,g4,b4]@2 [e4,a4,c5]@6 ~@12]/2", // G Em G Am
E: "[~@4 [c4,f4,a4]@15 ~ [f4,a4,c5]@8 ~@4]/2", F: "c4@2 e4@2 e4@3 d4 c4@6 ~@2",
G: "d4@2 e4@2 f4 ~ f4@2 f4@2 f4@2 g4@4", H: "f4 e4@5 ~@2", I: "g4@2 g4@4 d4@2 d4@5 ~@3",
J: "g4@2 g4@4 c4 ~ c4@6 g4@2", K: "g4 f4 e4@4 ~@2",
L: "[d4,f4]@2 [e4,g4]@2 [f4,g#4]@2 [f4,g#4] ~ [f4,g#4] ~ [f4,g#4]@2 [g4,a#4]@4", M: "[f4,g#4] [e4,g4]@5 ~@2",
N: "g4@2 g4@4 d4@2 d4@7 ~", O: "g4@2 g4@4 c4 ~ c4@6 c4@2", P: "g4@2 g4@4 e4@4 d4@3 ~ [e4,g4,c5]@2",
Q: "[[e4,g4,c5] ~ [e4,g4,c5]@4 [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@2 [c4,e4,g4] ~ [d4,f4,a4]@4 [a3,d4,f4]@7 ~@5 [e4,g4,c5]@2]/2", // C Dm C Dm C Dm C
R: "[~@2 [e4,g4,c5]@3 ~ [d4,f4,a4]@2 [c4,e4,g4] ~ [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@4 [a3,d4,f4]@6 ~@2 [e4,g4,c5] [c4,e4,a4] [e4,g4,c5]@2 [e4,g4,c5]@2]/2", // C Dm C Dm C Dm C Am …
S: "[e4,g4,c5] ~@6 [e4,a4,c5]", // C Am
T: "[e4,a4,c5] ~ [e4,a4,c5]@4 [d4,g4,b4] ~ [d4,g4,b4]@2 [b3,e4,g4] [d4,g4,b4]@2 ~ [e4,a4,c5] ~", // Am G Em G Am
U: "~@2 [d4,g4,b4] [b3,e4,g4] [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~@5 [b3,e4,g4]@2", // G Em G Em
V: "[d4,g4,b4] [e4,a4,c5]@3 ~@4", // G Am
W: "~@2 [e4,g4,c5] [c4,e4,a4] [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 ~@4 [e4,a4,c5]@2", // C Am C Am
X: "[[d4,g4,b4]@2 [e4,a4,c5]@6 ~@4 e4@2 ~ f4@2 g4@2 ~ g4@6 f4 e4 f4@8 e4@2 ~ f4@2 g4@2 ~ a4@2 ~ g4@2 f4@2 ~ e4@10 f4@2]/4", // G Am
Y: "g4 f4@5 ~@2", Z: "[c4,f4,a4]@15 ~", AA: "[f4,a4,c5]@4 ~@2 [c4,e4] [e4,g4]",
AB: "[e4,g4]@3 [d4,f4] [c4,e4]@7 ~ [d4,f4]@2 [e4,g4]@2", // Em Dm C Dm Em
AC: "[[f4,g#4]@2 [f4,g#4] ~ [f4,g#4] ~ [f4,g#4]@2 [g4,a#4]@4 [f4,g#4]@2 [e4,g4]@10 ~@4 g4@2 g4@4 d4@2 d4@7 ~ g4@2 g4@4 c4 ~ c4@6 c4@2 g4@2 g4@4 e4@4 d4@3 ~@3 [e4,g4,c5] ~ [e4,g4,c5]@4 [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@2 [c4,e4,g4] ~ [d4,f4,a4]@4 [a3,d4,f4]@7 ~@5 [e4,g4,c5] ~ [e4,g4,c5]@2 [e4,g4,c5]@2]/7", // Fm Gm Fm Em C Dm C Dm …
AD: "[~@2 [d4,f4,a4]@2 [c4,e4,g4] ~ [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@4 [a3,d4,f4]@6 ~@6 [e4,g4,c5]@3 ~ [e4,g4,c5]@2]/2", // Dm C Dm C Dm C
AE: "[~@2 [d4,f4,a4]@2 [c4,e4,g4] ~ [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@4 [a3,d4,f4]@6 ~@2 [e4,g4,c5] [c4,e4,a4] [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 ~@2]/2", // Dm C Dm C Dm C Am C
AF: "[~@10 [e4,a4,c5]@2 [e4,a4,c5] ~ [e4,a4,c5]@4 [d4,g4,b4] ~ [d4,g4,b4]@2 [b3,e4,g4] [d4,g4,b4]@2 ~ [e4,a4,c5] ~@3 [d4,g4,b4] [b3,e4,g4]]/2", // Am G Em G Am G Em
AG: "[[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~@5 [b3,e4,g4]@2 [d4,g4,b4]@2 [e4,a4,c5]@6 ~@10 [e4,g4,c5] [c4,e4,a4]]/2", // G Em G Am C Am
AH: "~@2 a4@4 g4@4 a4@3 ~@3", AI: "[e4,g4,c5]!3 ~@5", AJ: "~@6 c5@2 b4@2 a4@2 g4@2 [e4,g4,c5] [c4,e4,a4]",
})).s("gm_electric_guitar_jazz").gain(0.48)
// chords · brass section · "BRASS 1"
const brass_section = note(`<
~@9 A B C D E@4 F ~@11 G ~ H@2 I J K L I J K M N O@4 P@2 ~@7 Q ~ Q ~ R A B C S A B C T ~@16 A B C S A B C S A B C S A
B C S A B C S ~@8
>`.pickRestart({
A: "~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3", // Am
B: "~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@3 [d4,g4,b4]@4", // G
C: "[e4,g4,b4,d5] ~ [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5] ~@3 [e4,g4,b4,d5] ~@3", // Em7
D: "~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5]!2 ~ a3 c4", // Fmaj7
E: "[d4@6 c4@6 g3@12 a3@6 a#3@6 f3@20 [f3,c4,a4] ~ [f3,c4,a4] ~ [f3,c4,a4] ~ [f3,c4,a4,c5,g5] ~]/4", // F
F: "[f3,c4,a4,c5,g5] ~@7", G: "~@4 d3 ~@3 d3 ~@2 d3@3 ~@2",
H: "[~@4 d3 ~@3 d3 ~@2 e3@9 ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3]/2", // Am
I: "[e4,a4,c5] ~@5 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@3", // Am G
J: "[d4,g4,b4]@4 [e4,g4,b4,d5] ~ [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5] ~@3", // G Em7
K: "[e4,g4,b4,d5] ~@5 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5]", // Em7 Fmaj7
L: "[f4,a4,c5,e5] ~@5 [e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3", // Fmaj7 Am
M: "[f4,a4,c5,e5] ~ [g4,b4,d5]@2 ~@2 [f4,a4,a#4,d5] ~@2 [f4,a4,a#4,d5] ~@2 [f4,a4,a#4,d5] ~@3", // Fmaj7 G A#maj7
N: "~@6 [f4,a4,a#4,d5] ~@2 [f4,a4,a#4,d5] ~@2 [f4,a4,a#4,d5] ~@3", // A#maj7
O: "[~@6 [e4,g4,a4,c5] ~@2 [e4,g4,a4,c5] ~@2 [e4,g4,a4,c5]@8 ~@6 a3 c4 d4@6 c4@6 g3@12 a3@6 a#3@6]/4", // Am7
P: "[f3@20 [f3,c4,a4] ~ [f3,c4,a4] ~ [f3,c4,a4] ~ [f3,c4,a4,c5,g5] ~ [f3,c4,a4,c5,g5]@2 ~@2]/2", // F
Q: "d3 ~@3 d3 ~@2 d3@3 ~@6", R: "d3 ~@3 d3 ~@2 e3@9",
S: "~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5]!2 ~@3", // Fmaj7
T: "~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5]!2 ~ [a4,b4] c5", // Fmaj7 Asus2
})).s("gm_brass_section").gain(0.56).pan(0.3)
// other · french horn · "FR.HORN"
const french_horn = note(`<
~@9 A B C D E@4 ~@4 F G@7 H I J@2 K L M@2 K N O@2 ~@2 P Q@2 R@2 ~@5 S T U V U ~ W A B X Y A B C D ~@16 A B X Y A B C Z
A B X Y A B C Z A B X Y ~@8
>`.pickRestart({
A: "e4@2 d4 c4 a3@2 e4@2", B: "d4@10 e4@3 d4@3", C: "g4@9 ~ b4@3 g4@3", D: "c5@14 a4 c5",
E: "[d5@4 c5@2 a4@2 g4@2 e4@2 d4@10 c4 d4 e4@6 f4@6 c4@20 ~@8, c#5 ~@63]/4", F: "~@2 g3 c4",
G: "[e4 g4@4 f4@4 e4@4 d4@4 c4@4 d4@4 ~@3]/7", H: "~@10 d4 [e4,f4] g4@4", I: "e4 ~@3",
J: "[~@2 a3@3 e4 d4@4 e4@2 d4 c4 a3@2]/2", K: "e4@2 d4@5 e4", L: "~ d4@3 g4@9 ~ g4@2",
M: "[~ e4@3 a4@16 e4@4 d4@2 c4@2 a3@4]/2", N: "~ d4@3 g4@9 ~ b4@2", O: "[~ g4@3 c5@16 ~@12]/2",
P: "~@6 a4 c5 d5@8, ~@8 c#5 ~@7", Q: "[c5@2 a4@2 g4@2 e4@2 d4@10 c4 d4 [e3,e4]@6 [f3,f4]@6]/2",
R: "[[c3,c4]@21 ~@11]/2", S: "~@7 [e4,f4] g4@2 f4@2 e4@4", T: "g4@5 ~@7 a3 ~@3", U: "a3@6 d4 [e4,f4] g4@4 e4@4",
V: "~@12 a3 ~@3", W: "a3@3 e4 d4@4", X: "g4@9 ~ g4@3 e4@3", Y: "a4", Z: "c5",
})).s("gm_french_horn").gain(0.32)
// other · flute
const flute = note("<~@24 A B C D@2 E F@3 ~@16 G H I J@2 K@6 ~@52>".pickRestart({
A: "~@2 g5 e5 g5@2 e5 ~ g5@2 e5 ~ g5@2 e5 ~", B: "~@2 g5 d5 g5@2 d5@2 g5@2 d5 ~ g5@2 d5 ~",
C: "~@2 f5@3 ~ f5@2 a5@2 f5 ~ a5@2 f5 ~", D: "[a5 b5@9 g5 f6 e6 f6 e6@2]/2", E: "f6@2 d6@8 e6 d6 c6@2 d6@2",
F: "[e6@2 g6@4 f6@2 e6@2 f6@2 e6@2 f6@4 d6@8 d5 f5 g5@8 ~@12]/3", G: "~@14 g5 e5",
H: "g5@2 e5 ~ g5@2 e5 ~ g5@2 e5 ~@3 g5 d5", I: "g5@2 d5@2 g5@2 d5 ~ g5@2 d5 ~@3 f5@2",
J: "[~@2 f5@2 a5@2 f5 ~ a5@2 f5 ~ a5@2 b5@18]/2",
K: "[g5@2 f6@2 e6@2 f6@2 e6@4 f6@2 d6@8 e6 d6 c6@2 d6@2 e6@2 g6@4 f6@2 e6@2 f6@2 e6@4 f6@2 d6@8 e6 d6 c6@2 d6@2 e6@2 g6@4 f6@2 e6@2 f6@2 e6@2 f6@4 d6@8 d5 f5 g5@8]/6",
})).s("gm_flute").gain(0.32).pan(0.3)
// other · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
~@68
[a4@3 ~ a4 ~@2 a4 ~@2 a4 ~@2 a#4@2 ~]!3
[a4@3 ~ a4!5 ~ a4!3 a#4@2 ~]
[a4@3 ~ a4 ~@2 a4 ~@2 a4 ~@2 a#4@2 ~]!3
[a4@3 ~ a4!5 ~ a4!3 a#4@2 ~]
~@36
>`).s("gm_epiano1").gain(0.48)
// drums · kick
const kick = s("bd").struct(`<
~@9 A@3 B C D A@7 E A@4 E A@4 E A@3 E A@3 E A@3 F E A@9 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@8 A@3 B A@3 B A@3 B A@3 B
A@3 B ~@8
>`.pickRestart({
A: "x!4", B: "x ~ x ~ x ~ x!2", C: "x ~@2 x ~ x!2 ~", D: "x ~ x!3 ~ x ~", E: "x!3 ~ x ~ x ~", F: "~ x ~ x!2 ~ x ~",
})).gain(0.64)
// drums · snare
const snare = s("sd").struct(`<
~@8 A B@3 C ~@3 D E F@21 G F@4 ~@3 H B@19 C B@7 C ~@7 A B@7 C B@7 C B@4 ~@8
>`.pickRestart({
A: "~@3 x", B: "~@4 x ~@2 x ~@4 x ~@3", C: "~@4 x ~@2 x ~@3 x!2 ~@3", D: "~@4 x!6 ~ x!3 ~ x",
E: "x!3 ~@5 x ~@2 x ~@4", F: "x ~@7 x ~@2 x ~@4", G: "x ~@7 x ~@2 x ~@3 x", H: "x!6 ~ x!3 ~ x!4 ~",
})).gain(0.56)
// drums · clap
const clap = s("cp").struct(`<
~@2 A ~ A ~ A ~ A B@3 C ~ D E F G ~ G ~ G@2 ~ G ~ G@6 H@3 I H@3 I G@4 ~ G J K ~ A ~ A ~ A@7 B@3 C B@3 C ~ A ~ A ~ A ~
A ~ A ~ A ~ A ~ A B@3 C B@3 C B@3 C B@3 C L ~@11
>`.pickRestart({
A: "~@3 x", B: "~ x!2 ~ x ~ x ~", C: "~ x!2 ~ x!3 ~", D: "~ x ~@2", E: "~ x", F: "x ~@3 x ~@2 x", G: "x",
H: "x ~@2 x!2 ~ x ~", I: "x ~@2 x!2 ~ x!2", J: "~ x ~ x", K: "~@2 x ~@2 x!2 ~", L: "~ x!2 ~@5",
})).gain(0.4)
// drums · hihat
const hihat = s("hh").struct(`<
~ A@3 B A@3 B A@3 B C A D@2 E D@18 E D@3 E D@3 C F A B A@15 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B
A@3 B ~@8
>`.pickRestart({
A: "x ~@3 x ~ x!3 ~@3 x ~@3", B: "x ~@3 x ~ x!3 ~@3 x!2 ~@2", C: "x!4", D: "x ~@3 x ~@3 x ~ x!3 ~@3",
E: "x!2 ~@2 x ~@3 x ~ x!3 ~@3", F: "x ~ x!3 ~@3 x ~@3 x ~@3",
// … 64 more lines
More by Kim Wilde
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.