Strudelify
Break On Through (to the Other Side) cover art

1967 · The Doors

Break On Through (to the Other Side)

The Doors

KeyE minorTempo120 bpm
0:00/0:00
// Break On Through (to the Other Side) — The Doors
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "basstrack" named as a bass, played on electric bass finger (its piano patch is not one); ch 3 "organchord" named as an organ, played on drawbar organ (its music box patch is not one)
// note: Full arrangement: all 109 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · "basstrack"
const bass = note("<A@8 B@2 C@2 D@6 A@4 B@2 C@2 D@14 A@4 B@2 C@2 D@14 A@4 B@2 C@2 D@14 A@16 E@8 F>".pickRestart({
  A: "[[e1,e2]@2 b1@2 [d1,d2]@2 a1 [e1,e2]@2 [e1,e2]@2 b1 [d1,d2]@2 a1@2]/2", // E D E D
  B: "[[e1,e2]@2 b1@2 [d1,d2]@2 a1 [d1,e2]@2 [d1,e2]@2 b1 [d1,d2]@2 [e1,e2]@2]/2", // E D Dsus2 D E
  C: "[d1,g1,d2]@3 [d1,g1,d2] ~ d1 d1@2", D: "e1 b1 d2 e2", E: "[e1,e2] b1 [d1,d2] a1", F: "[e1,e2] ~@3",
})).s("gm_electric_bass_finger").gain(0.18)

// chords · drawbar organ · "organchord"
const drawbar_organ = note(`<
  ~@5 A B@2 C@2 D@2 E F E F G H ~ A B@2 C@2 D@2 E F E F G H I@2 J@2 I@2 J@2 ~ A B@2 C@2 D@2 E F E F G H K@8 ~ A B@2 C@2
  D@2 E F E F G H K@8 L M L M L M L M N@8 O@8 P
>`.pickRestart({
  A: "~@5 [b3,b4]!3", B: "[[b3,e4,b4]@2 [b3,e4,b4]@2 [b3,e4,b4]@2 [b3,e4,b4] [b3,e4,b4]@3 ~@6]/2",
  C: "[[b4,d5]@2 [g4,b4]@2 [b4,d5]@2 [a4,c#5] [g4,b4]@3 ~@6]/2", D: "[d4,f#4,d5]@2 b4 [d4,f#4]@4 ~, ~@3 d5@3 ~@2",
  E: "[g4,d5,g5] [g4,d5,g5]@2 [e4,b4,e5] [e4,b4,e5]@2 [g4,d5,g5] [b4,e5]", // G5 E5 G5 E5
  F: "[g4,d5,g5] [g4,d5,g5]@2 [e4,b4,e5]@2 b4 e4@2", G: "[d4,b4,d5] [d4,b4,d5]@2 [e4,b4,e5] [e4,b4,e5]@2 [e4,b4]!2",
  H: "b4 a4 g4 e4 e4@4, e4@3 ~@5",
  I: "[[b4,d5,e5]@2 [b4,d5,e5]@2 [b4,d5,e5] [b4,d5,e5]@2 [b4,d5,e5]@2 [b4,d5,e5]@2 [b4,d5,e5] [b4,d5,e5]@2 [b4,d5,e5]@2]/2", // E7
  J: "[~@3 e5 [f#5,g5,b5]!2 ~ [f#5,g5,b5]@2 [f#5,g5,b5]@2 e5 [f#5,g5,b5]@2 d5@2]/2", // Gmaj7
  K: "[~@4 [e5,g5] [e5,g5]@2 [g5,b5]@2 [g5,b5]@2 [g5,b5] [f#5,a5]@2 [e5,g5]@2]/2", // Em G F#m Em
  L: "~@2 [e4,b4,d5,e5]@3 [e4,b4,d5,e5]@3", M: "[e4,b4,d5,e5]@3 [e4,b4,d5,e5]@3 ~@2",
  N: "[[e4,e5]@2 [e4,e5]@2 [e4,e5]@2 [e4,e5] [e4,b4,e5]@2 [e4,b4,e5]@2 [e4,b4,e5] [e4,a4,e5]@2 [e4,a4,e5]@2, ~@7 a#4 ~@8]/2", // E E5 A5
  O: "[e4,b4,d5,e5] [e4,b4,d5,e5]@2 [e4,b4,d5,e5]@3 ~@2", P: "e4@7 ~, b4@3 ~, d5@5 ~@3, e5 ~",
})).s("gm_drawbar_organ").gain(0.04)

// 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 ~@10
>`.pickRestart({
  A: "x!2", B: "~ x",
})).gain(0.15)

// drums · snare
const snare = s("sd").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 ~@10
>`.pickRestart({
  A: "~ x ~ x", B: "~ x ~ x ~@2 x ~",
})).gain(0.15)

// drums · ride
const ride = s("rd").struct(`<
  ~@2 A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A
  B A C A B A C ~@43
>`.pickRestart({
  A: "x ~@6 x!2 ~@7", B: "x ~@6 x!2 ~@3 x ~@3", C: "x ~@2 x!2 ~ x ~",
})).gain(0.26)

stack(bass, drawbar_organ, kick, snare, ride)

More by The Doors