Strudelify
Close to Me cover art

1985 · The Head On The Door

Close to Me

The Cure

KeyB majorTempo188 bpm
0:00/0:00
// Close to Me — The Cure
// 188 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 168 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(188/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 · lead 4 chiff · "CHIFFER LD"
const lead_4_chiff = note(`<
  ~@16 A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~
  E@4 F ~ F ~ E@4 F ~ F ~ A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~ E@4 F ~ F ~ E@4 F ~ F ~ A@2
  B@2 C@2 D ~ A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~ A@2 B@2 C@2 D ~
>`.pickRestart({
  A: "[[f#3,b3,d#4]@21 ~@3 [a#3,c#4,f#4]@5 ~@3]/2", B: "[[f#3,b3,d#4]@21 ~@3 [g#3,c#4,e4]@5 ~@3]/2",
  C: "[g#3,b3,d#4]/2", D: "[f#3,a#3,c#4]@3 ~@3 [f#3,a#3,c#4] ~@5 [f#3,a#3,c#4]@3 ~", E: "[[b3,e4,g#4]@23 ~@9]/2",
  F: "[b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4]@3 ~", // B
})).s("gm_lead_4_chiff").gain(0.36).pan(0.6)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@8 A B A C D E F G A B A C D E F G A B A C D E F G A B A C D E F G A B A C D E F G A B A C D E F G A B A C D E F G A
  B A C D E F G A B A C D E F G A B A C D E F G A B A C D E F G A B A C D E F G A B A C D E F G A B A C D E F G A B A C
  D E F G A B A C D E F G A B A C D E F G A B A C D E F G A B A C D E F G A B A C D E F G
>`.pickRestart({
  A: "b1@3 ~@3 b1 ~@5 b1@3 ~", B: "~@2 b1 ~ b1@3 ~ d#2 ~ d#2 ~ d#2@3 ~", C: "~@2 b1 ~ b1@3 ~ c#2 ~ c#2 ~ c#2@3 ~",
  D: "g#1@3 ~@3 g#1 ~@5 g#1@3 ~", E: "~@2 g#1 ~ g#1@3 ~ a#1 ~ a#1 ~ a#1@3 ~", F: "f#1@3 ~@3 f#1 ~@5 f#1@3 ~",
  G: "~@2 f#1 ~ f#1@3 ~ e1 ~ e1 ~ e1@3 ~",
})).s("gm_electric_bass_finger").gain(0.48)

// other · vibraphone
const vibraphone = note(`<
  ~@24 A B A B C ~ D ~ A B A B C ~ D ~ A B A B C ~ D ~ A B A B C ~ D ~ A B A B C ~ D ~ A B A B C ~ D ~ E F E F G ~ G ~ E
  F E F G ~ G ~ A B A B C ~ D ~ A B A B C ~ D ~ A B A B C ~ D ~ A B A B C ~ D ~ E F E F G ~ G ~ E F E F G ~ G ~ A B A B
  C ~ D ~ A B A B C ~ D ~ A B A B C ~ D ~ A B A B C ~ D ~
>`.pickRestart({
  A: "f#4@3 ~@3 e4 ~@5 d#4@3 ~", B: "b3@3 ~@13", C: "b4@3 ~@3 a#4 ~@5 f#4@3 ~", D: "a#4@3 ~@3 f#4 ~@5 c#4@3 ~",
  E: "e5@4 ~@2 f#5@4 ~@2 g#5@3 ~", F: "f#5@3 ~ e5@3 ~ d#5@3 ~ b4@3 ~", G: "b4@4 ~@2 c#5@4 ~@2 d#5@3 ~",
})).s("gm_vibraphone").gain(0.4).pan(0.4)

// other · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~@32 A B C D E@2 F@6 G@2 H@2 ~@8 A B C D E@2 F@6 I@2 H@2 J K J L@2 ~@3 M N@2 O@3 ~@18 P Q R S T U V@2 W@4 X U Y@2 Z AA
  AB AC@2 ~@2 AD@2 AE AF AG@2 ~ AH ~@33
>`.pickRestart({
  A: "~@4 g#4@3 ~ b4@3 ~ g#4@3 ~", B: "b4@2 g#4 ~ b4 ~ d#5@8 ~@2", C: "~@6 g#4 ~ b4 ~ c#5@3 ~ d#5@2",
  D: "~@2 d#5@3 ~ d#5@4 ~@2 g#4@3 ~", E: "[b4 ~ c#5@3 ~@5 c#5 ~ b4@7 ~@11 g#4 ~, ~@3 d#5@4 ~@9]/2",
  F: "[c#5@3 ~ c#5 ~ d#5@12 e5@2 d#5@2 c#5 ~@7 c#5@5 ~@5 d#5 ~ e5@3 ~ f#5@5 ~ b4@3 ~ d#5@3 ~ g#4 ~ b4@5 ~@3 b4 ~ d#5 ~ e5@3 ~ f#5@5 ~ b4 ~ d#5@4 ~@2 b4@3 ~]/6",
  G: "[d#5 ~ b4@3 ~@5 c#5@2 b4@7 ~@9 b4@3 ~, ~@3 d#5@4 ~@9]/2",
  H: "[c#5@3 ~ c#5 ~@21 e5 ~ d#5@3 ~, ~@3 d#5@2 ~@11, ~@2 f#5@5 ~]/2",
  I: "[d#5 ~ b4@3 ~@5 c#5@2 b4@6 ~@10 b4@3 ~, ~@3 d#5@4 ~@9]/2", J: "~@10 g#4 ~ b4 ~ g#4 ~",
  K: "b4@3 ~ g#4@3 ~ d#5@4 g#4@3 ~", L: "[b4 ~ c#5@4 ~@2 d#5@3 ~ g#4 ~@9 [c#5,e5]@4 ~@2 [d#5,f#5]@3 ~, ~@7 b4@8 ~]/2",
  M: "~@6 b4@3 ~ g#4 ~ b4@3 ~", N: "[b4 ~ b4 ~ c#5@3 ~ d#5@4 g#4@7 ~@9 b4 ~ b4 ~]/2",
  O: "[b4 ~ b4 ~ c#5 ~ d#5@3 ~ f#4 ~ g#4 ~@9 c#5@6 b4@16 ~@4, ~@7 b4@7 ~@10]/3", P: "~@6 g#4 ~ b4@3 ~ g#4@3 ~",
  Q: "b4@2 g#4 ~ b4 ~ d#5@7 ~@3", R: "~@6 d#5 ~ d#5 ~ e5@3 ~ f#5@2", S: "~@2 e5@3 ~ d#5@4 ~@2 b4@3 ~",
  T: "b4 ~ b4@3 ~ d#5@7 ~@3", U: "~@12 b4@3 ~", V: "[c#5@3 ~ c#5 ~ c#5@6 e5@12 c#5@4 b4@3 ~]/2",
  W: "[~@2 c#5@4 ~@2 c#5 ~ c#5@3 ~ c#5@5 ~ b4@3 ~ d#5@3 ~ g#4 ~ b4@5 ~@3 b4 ~ d#5 ~ e5@3 ~ d#5@5 ~ e5 ~ d#5@4 ~@2 b4@3 ~]/4",
  X: "c#5 ~ b4@3 ~ d#5@7 ~@3", Y: "[c#5@3 ~ c#5 ~ d#5@22 c#5@2 b4 ~]/2", Z: "~@10 g#4 ~ g#4 ~ g#4 ~",
  AA: "b4@3 ~ g#4@3 ~ d#5@3 ~ g#4@3 ~", AB: "~@10 b4 ~ b4 ~ b4 ~", AC: "[b4 ~ c#5@4 ~@2 d#5@3 ~ g#4 ~ b4@6 ~@12]/2",
  AD: "[~@8 b4@6 c#5@5 ~@7 b4 ~ b4 ~ b4 ~]/2", AE: "b4@3 ~ c#5@3 ~ d#5@3 ~ g#4@3 ~", AF: "~@12 b4 ~ b4 ~",
  AG: "[b4 ~ b4 ~ c#5 ~ d#5@3 ~ f#4 ~ g#4 ~ b4@8 b4@6 b4@3 ~]/2", AH: "d#5@6 c#5@6 d#5@3 ~",
})).s("gm_percussive_organ").gain(0.46)

// other · pad halo · "HALO PAD"
const pad_halo = note(`<
  ~@48 A B A B C D E ~@33 A B A B C D E ~ A B A B C D E ~ A B A B C D E ~ A B A B C D E ~@17 A B A B C D E ~ A B A B C D
  E ~ A B A B C D E ~ A B A B C D E ~
>`.pickRestart({
  A: "~@14 b6 ~", B: "a#6 ~ b6 ~ g#6 ~ b6 ~ a#6 ~ b6 ~ f#6@3 ~", C: "~@14 g#6 ~",
  D: "f#6 ~ g#6 ~ d#6 ~ g#6 ~ f#6 ~ g#6 ~ d#6@3 ~", E: "d#6@4 ~@2 c#6@4 ~@2 a#5@3 ~",
})).s("gm_pad_halo").gain(0.27)

// other · trumpet
const trumpet = note(`<
  ~@95 A ~ B C D E F G H ~@16 I J I J K ~ K ~ I J I J K ~ K ~@2 L ~ L ~ L ~@3 L ~ L ~ L ~@3 L ~ L ~ L ~@3 L ~ L ~ L ~@2
>`.pickRestart({
  A: "~@2 f#5 ~@3 f#5 ~ f#5 ~ f#5 ~ f#5@3 ~", B: "~@12 d#5@3 ~", C: "b5 ~ b5 ~@13",
  D: "~@2 b5 ~@3 b5 ~ a5 ~ g#5 ~ f#5@3 ~", E: "f#5", F: "b5 ~ b5 ~ b5@3 ~ b5@3 ~@3 b5 ~",
  G: "a#5 ~ c#6 ~@3 f#5 ~@5 c#5@3 ~", H: "c#6!4 b5 a#5 a5 g#5!2 g5 f#5 f5 c#5 c5 b4 ~", I: "~@10 f#5 ~ f#5 ~ f#5 ~",
  J: "f#5@3 ~ e5@3 ~ d#5@3 ~ b4@3 ~", K: "b4@4 ~@2 c#5@4 ~@2 d#5@3 ~", L: "b4 ~ b4 ~ b4 ~ b4 ~ d#5@3 ~ b4 ~ b4 ~",
})).s("gm_trumpet").gain(0.48).pan(0.4)

// other · alto sax
const alto_sax = note("<~@96 A B C D E F G ~@17 H I H I J ~ K ~ H I H I J ~ K ~@33>".pickRestart({
  A: "b5@3 ~@13", B: "~@12 d#5@3 ~", C: "b5 ~ b5 ~@13", D: "~@2 b5 ~@3 b5 ~ a5 ~ g#5 ~ f#5@3 ~", E: "f#5",
  F: "b5 ~ b5 ~ b5@3 ~ b5@3 ~@3 b5 ~", G: "a#5 ~ c#6 ~@3 f#5 ~@5 c#5@3 ~", H: "~@10 f#5 ~ f#5 ~ f#5 ~",
  I: "f#5@3 ~ e5@3 ~ d#5@3 ~ b4@3 ~", J: "b4@4 ~@2 c#5@4 ~@2 d#5@3 ~", K: "f#5@4 ~@2 g#5@4 ~@2 a#5@3 ~",
})).s("gm_alto_sax").gain(0.36).pan(0.6)

// chords · sitar
const sitar = note("<A@4 ~@164>".pickRestart({
  A: "[e5@13 ~@3, b4@9 ~@7, e4@5 ~@11]/4",
})).s("gm_sitar").gain(0.01)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "~ x ~@2 x ~@3",
})).gain(0.43)

// drums · snare
const snare = s("sd").struct(`<
  ~@4 A@3 B A@15 B A@15 B A@15 B A@23 B A@7 B A@7 B A@7 B A@7 B A@7 B A@3 C A@3 B A@3 C A@3 B A@3 B A@3 B A@7 B A@7 B
  A@7 B
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2", C: "~@2 x ~@2 x!3",
})).gain(0.48)

// drums · clap
const clap = s("cp").struct(`<
  ~@4 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "~@2 x!2 ~@2 x ~", B: "~@5 x!2 ~",
})).gain(0.32)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@4 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "~ x ~@2 x ~@3", B: "x ~@4 x ~@2",
})).gain(0.38)

// drums · crash
const crash = s("cr").struct("<~@167 [~@7 x]>").gain(0.43)

stack(
  lead_4_chiff, bass, vibraphone, percussive_organ, pad_halo, trumpet, alto_sax, sitar, kick, snare, clap, pedal_hat,
  crash
)

More by The Cure