Strudelify
I Know What I Like (In Your Wardrobe) cover art

Selling England by the Pound

I Know What I Like (In Your Wardrobe)

Genesis

KeyA majorTempo84 bpm
0:00/0:00
// I Know What I Like (In Your Wardrobe) — Genesis
// 84 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 12 "Roto Tom" (taiko drum patch on one pitch) is played as the kit's tom
// note: duplicate parts dropped: ch 11 "Sitar 2" sitar (copy of ch 7 "Sitar 1" sitar)
// note: Full arrangement: all 88 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass pick · "Bass"
const bass = note(`<
  ~@13 A B C A B C D E F G@2 H@2 I H J K@2 L ~@3 M N O P Q R N O S G@2 H@2 I H J T U G@2 H@2 I H J K@2 L ~@3 V W X@6 O@2
  Y O@5 Z ~@5
>`.pickRestart({
  A: "a1@7 e2", B: "a1@7 a2", C: "a1@15 ~", D: "a1@2 ~@2 a1@2 ~@12 e1 ~ f#1@2 ~@2 a1@6 ~@2", E: "a1 ~ a1@12 a2@2",
  F: "a1@8 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1 ~",
  G: "a1@3 ~@3 a1 ~ b1 ~ c#2 ~@3 c#2 ~ d2@2 e2@2 ~@2 f#2 ~ g2@4 a2@4",
  H: "d2@3 ~@3 d2 ~ e2@2 f#2@2 ~@2 f#2 ~ g2@2 a2@2 ~@2 b2 ~ c#3@4 d3@4",
  I: "a1@2 ~@4 a1 ~ b1@2 c#2@2 ~@2 c#2 ~ d2@2 e2 ~@3 f#2 ~ g2@3 ~ a2@3 ~",
  J: "a1@3 ~@3 a1 ~ b1 ~ c#2@2 ~@2 c#2 ~ d2@2 e2@2 ~@2 f#2 ~ g2@3 ~ a2@4", K: "a1@8 a2@8 a1@7 ~ a2@8", L: "a1",
  M: "~@24 a2 ~ f#2@2 ~@2 e2 ~", N: "a1@7 ~@7 a1 ~ g1@4 a1@3 ~@7 a1 ~", O: "b1@4 a1@2 ~@8 a1 ~ g1@4 a1@2 ~@8 a1 ~",
  P: "b1@3 ~ a1@3 ~@7 a1 ~ g1@4 a1@2 ~@10", Q: "a1 ~ b1@2 ~@2 f#2 ~ a2@2 ~@2 a1@12 b1@2 ~@4 a1 ~",
  R: "g1@4 a1@3 ~@7 a1@2 b1@2 ~@6 b2 ~ a2 ~@5",
  S: "b1 ~@3 a2@2 ~@2 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", T: "a1@8 a2@7 ~ c#2@8 a2@8",
  U: "d2@8 a2@7 ~ a1@3 ~ d2@2 e2@2 ~@2 f#2 ~ g2@3 ~", V: "~@30 a1 ~", W: "b1@4 a1@3 ~@7 a1 ~ g1@4 a1@3 ~@7 a1 ~",
  X: "[b1@4 a1@3 ~@7 a1 ~ g1@4 a1@3 ~@7 a2@5 ~ a1 ~@10 a1 g1@4 a1@3 ~@8 a2@5 a1@2 ~@8 a1 ~ g1@4 a1@3 ~@7 a2@5 ~ a1@2 ~@8 a1 ~ g1@4 a1@3 ~@7 a2@5 ~ a1@2 ~@8 a1 ~ g1@4 a1@3 ~@7 a2@5 ~ a1@3 ~@8 a1 g1@4 a1@3 ~@7 a1 ~]/6",
  Y: "b1@4 a1@2 ~@8 a1@2 g1@3 ~ b2 ~ b2 ~ a2 ~ a2 ~ g2@2 a1@2", Z: "b1@4 a1 ~@9 a1@2 g1@4 a1 ~@11",
})).s("gm_electric_bass_pick").gain(0.36)

// other · lead 2 sawtooth · "Synth"
const lead_2_sawtooth = note(`<
  ~@22 A B C B C@2 D E@2 F ~@2 G@2 ~@8 C B C B C@2 D H I C B C B C@2 D J E F ~@25
>`.pickRestart({
  A: "f#5@2 e5 d5, e5 ~@31", B: "c#5@2 d5 e5", C: "f#5@2 e5 d5", D: "f#5@16 g5@7 ~ a5@8", E: "a3 f3 a3 d3", F: "a3",
  G: "[~@3 a1@5]/2", H: "a5@15 ~ g5@16", I: "f#5@16 g5@15 ~", J: "a3@7 ~ f3@7 ~ a3@8 d3@8, g3 ~@31",
})).s("gm_lead_2_sawtooth").gain(0.32).pan(0.7)

// chords · drawbar organ · "Hammond"
const drawbar_organ = note(`<
  ~@13 A B A@2 B A@2 B C D@2 E@2 F G H I@2 A ~@4 A J A@2 J A J A D@2 E@2 F G H K L D@2 E@2 F G H I@2 A ~@25
>`.pickRestart({
  A: "[e4,a4,c#5]@31 ~", B: "c#5@8 d5@8 c#5@8 b4@7 ~, [d4,g4]", C: "[e4,a4,c#5] ~@7",
  D: "[[d5,f#5]@16 e5@8 d5@7 ~ c#5@16 d5@8 e5@7 ~, [g4,b4]]/2", // D G
  E: "[f#5@3 ~@13 e5@8 d5@8 c#5@16 d5@8 e5@7 ~, [f#4,a4], d5 ~@3, g5 ~@3 f#5@28 ~@32]/2", // F#m
  F: "f#5@2 e5 d5, [g4,b4]@31 ~", G: "f#5@2 e5 d5, [f#4,a4]", H: "f#5@16 g5@8 a5@5 ~@3, [g4,b4]@15 ~",
  I: "[e4,a4,c#5]@7 ~ [f4,a4,d5]@6 ~@2 [e4,a4,c#5]@7 ~ [d4,a4,b4]@7 ~", J: "[d4,g4,c#5]@31 ~",
  K: "[e4,a4,c#5]@15 ~ [e4,g4,a4,b4,d5]@14 ~@2", L: "[f#4,a4,d5]@15 ~ [g4,b4,d5]@16",
})).s("gm_drawbar_organ").gain(0.25).pan(0.2)

// chords · drawbar organ · "Hammond" · soft notes
const drawbar_organ_soft = note("<~@63 A B A C D C D C D C D C D C D C D C D C ~@5>".pickRestart({
  A: "e5@3 ~ f#5@3 ~ e5@3 ~ d5@3 ~, [a4,c#5]@15 ~", B: "e5@6 ~@2 f#5@7 ~ e5@6 ~@2 d5@7 ~, [g4,b4]@15 ~",
  C: "e5@6 ~@2 f#5@6 ~@2 e5@15 ~, [g4,b4]@31 ~", D: "e5@8 f#5@7 ~ e5@8 d5@6 ~@2, [a4,c#5]@15 ~",
})).s("gm_drawbar_organ").gain(0.14).pan(0.2)

// bass · piano · "Piano Low End"
const bass_2 = note("<~@3 A@4 B@4 ~@21 B@4 ~@47 C@4 ~>".pickRestart({
  A: "[~@21 a1@99 ~@8]/4", B: "[~@16 a1@99 ~@13]/4", C: "[~@3 a1@28 ~]/4",
})).s("gm_piano").gain(0.53).pan(0.8)

// other · overdriven guitar · "Overdrive Guitar"
const overdriven_guitar = note(`<
  ~@13 A@8 B C D C D C@2 E F@2 B ~@4 A@7 G C D C D C@2 E ~@2 C D C D C@2 E F@2 B H@6 B H@13 ~@5
>`.pickRestart({
  A: "a2@7 e3", B: "a2@31 ~", C: "f#4@2 e4 d4", D: "c#4@2 d4 e4", E: "f#4@2 g4 a4", F: "a3@8 f3@8 a3@8 d3@7 ~",
  G: "a2@29 ~@3", H: "a2@15 ~",
})).s("gm_overdriven_guitar").gain(0.2).pan(0.2)

// other · sitar · "Sitar 1"
const sitar = note(`<
  ~@13
  [c#4@4 a3@4 d4@4 a3@3 ~ c#4@4 a3@3 ~ b3@4 a3@4]!9
  ~@14
  [c#4@4 a3@4 d4@4 a3@3 ~ c#4@4 a3@3 ~ b3@4 a3@4]!8
  ~@19
  [c#4@4 a3@4 d4@4 a3@3 ~ c#4@4 a3@3 ~ b3@4 a3@4]!19
  [c#4@4 a3@4 d4@4 a3@3 ~ c#4@4 a3@3 ~ b3@4 ~@4]
  ~@5
>`).s("gm_sitar").gain(0.14).pan(0)

// other · soprano sax · "LowEnd 1"
const soprano_sax = note("<A@8 ~@25 B@3 ~@29 C@2 ~@6 D@8 ~@7>".pickRestart({
  A: "a0/8", B: "[a0@91 ~@5]/3", C: "[~@19 a1@41 ~@4]/2", D: "a1/8",
})).s("gm_soprano_sax").gain(0.16).pan(0.1)

// other · lead 8 bass lead · "LowEnd 2"
const lead_8_bass_lead = note("<A@8 ~@25 B@3 ~@36 C@8 ~@8>".pickRestart({
  A: "a0/8", B: "[a0@91 ~@5]/3", C: "[~@31 a1@225]/8",
})).s("gm_lead_8_bass_lead").gain(0.2).pan(0.9)

// other · woodblock · "Monkey Skulls"
const woodblock = note("<~@22 A B@8 ~@13 A B@8 A B@8 ~@26>".pickRestart({
  A: "e4 ~@3 e4 ~@3 e4 ~@5 e4 ~ e4 ~@5 e4 ~ a4@2 c#5@2 a4@2 ~@2",
  B: "~@4 e4 ~@3 e4 ~@5 e4 ~ e4 ~@5 e4 ~ a4@2 c#5 ~ a4@2 ~@2",
})).s("gm_woodblock").gain(0.25).pan(0.9)

// other · oboe
const oboe = note(`<
  ~@66
  [~@26 c#5 ~ d5 ~ e5@2]
  [~@26 c#5 ~ d5 ~ e5 ~]
  ~@4
  [~@26 c#5 ~ d5 ~ e5@2]!2
  ~@4
  [~@26 c#5 ~ d5 ~ e5@2]!2
  ~@8
>`).s("gm_oboe").gain(0.4).pan(0)

// chords · drawbar organ · "Hammond 2"
const drawbar_organ_2 = note("<~@67 A B A B A B A B A B A B A B A B ~@5>".pickRestart({
  A: "[e4,a4,c#5]@31 ~", B: "c#5@8 d5@8 c#5@8 b4@7 ~, [d4,g4]",
})).s("gm_drawbar_organ").gain(0.2).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~@13 A@2 B C A D E C F G H I H G I G J@2 A@2 B C A C K@2 L K@3 F G H I H G I G A@2 G H I H G I G J@2 B@20 C ~@5
>`.pickRestart({
  A: "x!2", B: "x ~@6 x!2 ~@6 x", C: "x ~@6 x!2 ~@7", D: "x ~@2 x ~@4 x ~@6 x", E: "x ~ x ~@4 x!2 ~@7", F: "x!4",
  G: "x ~@6 x!2 ~@5 x ~", H: "x ~@2 x!2 ~@2 x", I: "x ~@6 x!3 ~@4 x ~", J: "x ~@2 x!2 ~@3", K: "x!2 ~@2 x!2 ~@2",
  L: "x ~@3 x!2 ~@2",
})).gain(0.39)

// drums · snare
const snare = s("sd").struct("<~@13 A@8 B A@6 C A@6 D A@7 B A@8 E A@6 C A@6 F A@6 G E A E A@6 ~@5>".pickRestart({
  A: "~ x ~ x", B: "~@9 x!7", C: "~@2 x ~@2 x ~@2", D: "~@4 x ~@7 x!2 ~ x", E: "~@4 x ~@5 x!2 ~@4",
  F: "~@4 x ~@3 x ~@2 x ~@4", G: "~ x ~@2 x ~@3",
})).gain(0.59)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@21 [~@4 x!5 ~@7] ~@21 [~@4 x!5 ~@7] ~@44>").gain(0.33)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@8 A@5 B C@4 D E C ~@2 F ~ F ~@5 G C@4 H C@2 I J C@2 F ~ F ~ F ~@3 K@2 ~ F ~ F ~@5 G C@3 L M N C@6 ~@13
>`.pickRestart({
  A: "x!4", B: "x ~ x!6", C: "x!8", D: "x!6 ~@2", E: "x ~ x!5 ~", F: "x", G: "~@2 x!6", H: "~ x!7",
  I: "x!2 ~ x!2 ~ x ~ x ~ x ~ x ~ x ~", J: "x ~ x ~ x ~ x ~ x ~ x ~@2 x ~@2", K: "~ x!3 ~ x!3", L: "x!4 ~ x ~@2",
  M: "~@2 x ~ x ~ x ~ x ~ x ~ x ~ x!2", N: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~",
})).gain(0.39)

// drums · low tom
const low_tom = s("lt").struct("<~@12 A ~@15 B ~@22 C D ~@6 B ~@6 E ~@7 F ~ F ~@11>".pickRestart({
  A: "~@7 x", B: "~@31 x", C: "~ x ~ x", D: "~@2 x ~@4 x", E: "~@15 x", F: "~@14 x!2",
})).gain(0.52)

// drums · mid tom
const mid_tom = s("mt").struct("<~@8 A@4 B C ~@7 D ~@9 E@5 ~@7 D ~@8 F ~@9 E@4 G E@7 G E G E@6 ~@5>".pickRestart({
  A: "~@3 x", B: "~@6 x!2", C: "~ x ~@2", D: "~@14 x!2", E: "~ x ~ x", F: "~@13 x ~@2", G: "~@4 x ~@7 x!2 ~@2",
})).gain(0.66)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@12 A ~@8 B ~@6 C ~@2 D E D F E ~@7 B ~@15 C ~@6 G ~@21>".pickRestart({
  A: "~@13 x ~@2", B: "~@4 x!10 ~@2", C: "~@28 x!3 ~", D: "~@3 x", E: "~ x ~@2", F: "~ x ~ x", G: "~@7 x",
})).gain(0.33)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@18 A B ~@2 C D C E C F G ~@11 H ~@3 C D C E C F I ~@2 C D C E C F G ~@6 J ~@21
>`.pickRestart({
  A: "~@6 x!2", B: "~ x ~@6", C: "~ x!3", D: "~@2 x ~ x ~ x!2", E: "~@4 x ~@2 x!3 ~@2 x ~ x ~", F: "x!4",
  G: "~ x!2 ~ x ~@3", H: "~@3 x", I: "~ x!2 ~ x ~ x ~", J: "~@9 x ~@6",
})).gain(0.33)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@11 A B ~@9 C@6 D ~@2 E F G H I ~@8 C@7 ~ J C@6 D ~@2 K L M N ~@2 O P Q R ~@2 S ~@13
>`.pickRestart({
  A: "~@3 x ~ x ~@26", B: "~@10 x ~ x!2 ~@2", C: "~ x ~ x", D: "~@8 x ~@13 x!6 ~@4", E: "~@9 x ~ x ~@4",
  F: "~@2 x ~@3 x ~@18 x ~ x!3 ~ x", G: "x ~@8 x ~ x ~@4", H: "~ x ~ x ~@5 x ~ x ~@4", I: "~ x ~ x ~@8 x!2 ~@2",
  J: "~@10 x!2 ~@4", K: "~@12 x!2 ~ x", L: "x ~@7 x!2 ~ x!2 ~@3", M: "~@9 x ~@2 x ~@3", N: "~ x ~@2 x ~@11",
  O: "~@20 x ~ x!3 ~@2 x ~@2 x!2", P: "x ~@2 x ~@2 x!3 ~@11 x ~ x ~@5 x ~ x ~", Q: "~@4 x ~@2 x ~@2 x ~@3 x ~", R: "x",
  S: "~@3 x",
})).gain(0.39)

// drums · high tom · soft notes
const high_tom_soft = s("ht").struct(`<
  ~@10
  [~@20 x!12]
  [x!3 ~ x ~ x!2 ~@8 x ~@15]
  x
  ~@19
  [~@16 x!2 ~ x!3 ~ x!2 ~@7]
  ~@55
>`).gain(0.2)

// drums · crash
const crash = s("cr").struct(`<
  ~@13 A ~@5 B ~ A@2 ~ A ~ A ~ A C@2 A ~@4 A ~@3 D ~@2 A@2 ~ A ~ A ~ A E@2 A ~ A ~ A ~ A C@2 A ~@4 A ~@6 F A ~ A ~@10
>`.pickRestart({
  A: "x", B: "~@6 x!2", C: "x!4", D: "~@7 x", E: "x!2", F: "~ x ~@2",
})).gain(0.39)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@21 [~@4 x!12] ~@21 [~@4 x!12] ~@44>").gain(0.2)

// drums · ride
const ride = s("rd").struct("<~@29 A B ~@29 A B ~@13 A B A B@4 C ~@5>".pickRestart({
// … 99 more lines

More by Genesis