Strudelify

Love Me Two Times

The Doors

KeyE minorTempo120 bpm
0:00/0:00
// Love Me Two Times — The Doors
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 89 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.

// chords · electric guitar jazz · "Gtr Chords - G27"
const electric_guitar_jazz = note(`<
  A B C D C E A B C F@2 G H@6 I@4 J@2 K@8 L M L N O@2 L M P@8 Q R Q R S T Q U V@4 W@8 X Y@3 Z@5 AA AB@3 AC AD@2 AE AF
  AG@2 ~
>`.pickRestart({
  A: "~@5 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~", B: "e2@2 ~@3 e2@3 g3 ~@7 e2@2 ~@3 e2@3 g3 ~@7",
  C: "e2@2 ~@3 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~", D: "e2@2 ~@3 e2@3 g3 ~ g3 ~@5 e2@2 ~@3 e2@3 g3 ~@7",
  E: "a2@5 ~@3 a2@8 a4@5 g4@3 e4@4 g4@4", F: "[[b1,b2,f#3,b3,d#4]@48 ~@8 [b1,b2,f#3,b3,d#4]@7 ~]/2",
  G: "[a2,e3,a3,c#4]", // A
  H: "[[a2,e3,a3,c#4]@5 ~ [e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 ~ [e3,a3,c#4]@5 ~@6 [d3,g3,b3,g4]@9 ~@6 [d4,f#4]@9 ~@7 [a#3,c4,e4]@9 ~@6 [b2,d#3,a3,b3,f#4]@9 ~@7 [d4,e4,g4]@36 ~ b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ e2@2 ~@3 e2@3 g3 ~@7 e2@2 ~@3 e2@3 b2@5 e3@2 ~@2, ~@5 a2@6 ~@10 a2@6 [a2,e3,a3,c#4]@8 ~@12 [d3,a3]@9 ~@7 [c3,e3]@9 ~@120, ~@32 [g2,b2]@9 ~@53 [e2,e3]@36 ~@62]/6", // A G D C7 B7 Em7 A D5 …
  I: "[~@4 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ e2@2 ~@3 e2@3 g3 ~ g3 ~@5 e2@2 ~@3 e2@3 g3 ~@7 e2@2 ~@3 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ a2@8 a2@8 a4@4 g4@3 e4@5 g4@4 ~]/4",
  J: "[~@4 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ e2@2 ~@3 e2@3 g3 ~@7 e2@2 ~@3 e2@3 g3 ~@7 e2]/2",
  K: "[~@4 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ [b1,b2,f#3,b3,d#4]@48 ~@8 [f#3,b3,d#4]@7 ~ [e3,a3,c#4]@31 ~ [e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 ~ [e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 ~@7 g4@7 ~@7 [a3,d4,f#4]@7 ~@9 [e3,a#3,c4,e4]@7 ~@9 [a3,b3,f#4]@8 ~@7 [e2,e3,g#3,d4,e4,g4]@35, ~@86 [b1,b2]@7 ~ a2@32 a2@6 ~@10 a2@6 ~@5 [a2,e3,a3,c#4]@6 [b2,d3,g3,b3]@7 ~@7 d3@8 ~@8 c3@8 ~@8 [b2,d#3]@8 ~@43, ~@79 g2@4 ~@45]/8", // B A D C7 B7 E7 B A …
  L: "~@2 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ e2@2 ~", M: "~@2 e2@3 g3 ~@7 e2@2 ~@3 e2@3 g3 ~@7 e2@2 ~",
  N: "~@2 e2@3 g3 ~ g3 ~@5 e2@2 ~@3 e2@3 g3 ~@7 e2@2 ~",
  O: "[~@2 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ a2@8 a2@4 ~@4 a4@5 g4@3 e4@4 g4@4 ~@3]/2",
  P: "[~@2 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ [b1,b2,f#3,b3,d#4]@48 ~@8 [b1,b2,f#3,b3,d#4]@7 ~ [a2,e3,a3,c#4]@32 [a2,e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 ~ [e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 ~@7 [b3,g4]@12 ~@2 [a3,d4,f#4]@8 ~@9 e4@8 ~@7 [b2,d#3,a3,b3,f#4]@8 ~@7 [e2,e3,g#3,d4,e4,g4]@32 ~@5, ~@135 a2@6 ~@10 a2@6 [b2,d3,g3]@12 ~@19 [c3,e3,a#3,c4]@8 ~@60, ~@38 [e3,a3,c#4]@2 ~@3 d3@3 ~@18, ~@157 g2@8 ~@91]/8", // B A Em D B7 E7 G C7 …
  Q: "~ b2@2 d3@5 ~ b2@2 e3@5 ~ b2@2 d3@5 ~ e3@2 e2@2 ~@3",
  R: "~@3 g3 ~ g3 ~@5 e2@2 ~@6 g3 ~@7 e2@2 ~@3, ~ e2@4 ~@12 e2@4 ~@11",
  S: "~ b2@2 d3@5 ~ b2@2 e3@5 ~ b2@2 d3@5 ~ e3@2 a2@5", T: "~@3 a2@8 a4@5 g4@3 e4@5 g4@5 ~@3",
  U: "~@3 g3 ~@7 e2@2 ~@6 g3 ~@7 e2@2 ~@3, ~ e2@4 ~@12 e2@4 ~@11",
  V: "[~ b2@2 d3@5 ~ b2@2 e3@5 ~ b2@2 d3@5 ~ e3@2 ~ [f#3,b3,d#4]@48 ~@8 [f#3,b3,d#4]@7 ~ [e3,a3,c#4]@31 ~ [e3,a3,c#4]@4, ~@27 [b1,b2]@48 ~@8 [b1,b2]@7 ~ a2@32 a2@5]/4", // B A B
  W: "[~ [a2,e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 ~ [e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 ~@7 g4@9 ~@5 [a3,d4,f#4]@9 ~@7 [e3,a#3,c4,e4]@9 ~@7 [a3,b3,f#4]@9 ~@6 [e2,e3,d4,e4,g4]@36 ~ b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ e2@2 ~@3 e2@3 g3 ~@7 e2@2 ~@3 e2@3 b2@5 e3@2 ~@6 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ e2@2 ~@3 e2@3 g3 ~ g3 ~@5 e2@2 ~@3 e2@3 g3 ~@7 e2@2 ~@3 b2, ~@11 a2@6 ~@5 [a2,e3,a3,c#4]@6 [b2,d3,g3,b3]@9 ~@5 d3@9 ~@7 c3@9 ~@7 [b2,d#3]@9 ~@173, ~@27 g2@8 ~@221]/8", // A D C7 B7 Em7 A G B
  X: "~@2 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ a2@6",
  Y: "[~@2 a2@8 a4@5 g4@3 e4@4 g4@4 ~@5 b2@3 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~ e2@2 ~@3 e2@3 g3 ~@7 e2@2 ~@3 e2@3 g3 ~@7 e2@2 ~@3 b2]/3",
  Z: "[~@2 d3@5 b2@3 e3@5 b2@3 d3@5 e3@2 ~@2 [b3,d#4]@48 ~@7 [b1,b2,f#3,b3,d#4]@7 ~ [a2,e3,a3,c#4]@32 [a2,e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 ~ [e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 [a2,e3,a3,c#4]@5 ~@7 [b3,g4]@5, ~@13 [b1,b2,f#3]@24 ~@29 a2@3 ~@5 a2@3 [g2,b2,d3,g3]@3, ~@149 [e3,a3,c#4]@8 ~@3]/5", // B A Em B5 G A
  AA: "~@9 [d3,a3,d4,f#4]@8 ~@9 e4@6, ~@25 [c3,e3,a#3,c4]@7", // D C7
  AB: "[~@9 [b2,d#3,a3,b3,f#4]@8 ~@7 e4@32 e4@5 d4@6 b3@5 a3@6 g3@5 ~ e3@4 ~ [d3,g3,b3,g4]@7, ~@6 [e2,e3,g#3,d4,g4]@9 ~@7 [g2,b2]@2]/3", // B7 G E7 G
  AC: "~@8 [d4,f#4]@7 ~@9 [a#3,c4,e4]@7 ~, ~@7 [d3,a3]@8 ~@8 [c3,e3]@8 ~", // D C7 D5 C
  AD: "[~@7 [b2,d#3,a3,b3,f#4]@8 ~@8 [g#3,d4,e4,g4]@36 ~@5, ~@11 [e2,e3]@18 ~@3]/2", // B7 E7 E
  AE: "~@24 g4@7 ~, ~@11 g2@4 ~, ~@23 [b2,d3,g3,b3]@7 ~@2", // G
  AF: "~@6 [a3,d4,f#4]@7 ~@9 [e3,a#3,c4,e4]@7 ~@3, ~@5 d3@8 ~@8 c3@8 ~@3", // D C7
  AG: "[~@6 [a3,b3,f#4]@8 ~@7 [e2,e3,g#3,d4,e4,g4]@36 ~@7, ~@5 [b2,d#3]@8 ~@51]/2", // B7 E7 B
})).s("gm_electric_guitar_jazz").gain(0.55).pan(0.8)

// chords · electric guitar jazz · "Gtr Chords - G27" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~ A ~ B ~@3 A ~@9 C ~ D ~@3 E ~@9 F ~ G ~@3 F ~@9 H ~ H ~@3 I ~@9 J ~ K ~@3 L ~@17
>`.pickRestart({
  A: "~@9 g#3 g3 g#3 ~@13 g#3 g3 g#3 ~@4", B: "~@9 g#3 ~ g#3 ~@13 g#3 g3 g#3 g3 ~@3", C: "~@8 g#3 g3 g#3 ~@21",
  D: "~@8 g#3 ~ g#3 ~@13 g#3 g3 g#3 ~@5", E: "~@8 g#3 g3 g#3 ~@13 g#3 g3 g#3 ~@5",
  F: "~@6 g#3 g3 g#3 ~@13 g#3 g3 g#3 ~@7", G: "~@6 g#3 ~ g#3 ~@13 g#3 g3 g#3 ~@7",
  H: "~@4 g#3 ~ g#3 ~@13 g#3 g3 g#3 ~ g3 ~@7", I: "~@4 g#3 g3 g#3 ~@13 g#3 g3 g#3 ~@9", J: "~@3 g#3 g3 g#3 ~@26",
  K: "~@3 g#3 ~ g#3 ~@13 g#3 g3 g#3 ~@10", L: "~@3 g#3 g3 g#3 ~@13 g#3 g3 g#3 ~@10",
})).s("gm_electric_guitar_jazz").gain(0.31).pan(0.8)

// bass · electric bass finger · "Bass - G34"
const bass = note(`<
  ~ A@4 B C A@2 D@2 E F G@3 H@3 I@2 J K H L M N O@5 P@3 Q@2 R S P T U V R W@2 X Y Z AA Z AA AB AC AD AA AE AF AG AH AI
  AJ AK AL@8 AM@6 AN AO AP@4 AQ AR@5
>`.pickRestart({
  A: "e1@3 ~@2 e1@3 e1@3 ~@2 e1@3 e1@3 ~@2 e1@3 e1@3 ~@2 e1@3",
  B: "a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@5 a1@3", C: "a1@5 a1@3 a1@5 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3",
  D: "b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3",
  E: "a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3", F: "a1@4 ~ a1@4 ~@2 a1@4 ~ a1@4 ~ a1@4 ~@2 a1@4 ~",
  G: "[g2@6 ~ b2@5 d3@2 ~ d2@6 ~@2 f#2@5 a2@2 ~ c2@6 ~ e2@5 g2@2 ~ d2@6 ~@2 f#2@5 a2@2 ~ e2@6 ~@2 e2@3 ~@3 e2@2 e2@3 ~@3 e2@2 e2@3 ~@3 e2@2 e2@2]/3",
  H: "~@4 e2@2 e2@3 ~@3 e2@2 e2@3 ~@3 e2@2 e2@3 ~@3 e2@2 e2@2",
  I: "[~@4 e2@2 e2@3 ~@3 e2@2 e2@3 ~@3 e2@2 e2@5 ~ e2@2 e2@5 ~ e2@2 e2@5 ~ e2@2 e2@3 ~@3 e2@2 e2@3 ~@3 e2@2 a1@2]/2",
  J: "~@4 a1@2 a1@3 ~@3 a1@2 a1@3 ~@3 a1@2 a1@3 ~@3 a1@2 a1@2",
  K: "~@4 a1@2 a1@3 ~@3 a1@2 a1@3 ~@3 a1@2 a1@3 ~@3 a1@2 e2@2",
  L: "~@4 e2@2 e2@3 ~@3 e2@2 e2@3 ~@3 e2@2 e2@3 ~@3 e2@2 b1@2",
  M: "~@4 b1@2 b1@3 ~@3 b1@2 b1@3 ~@3 b1@2 b1@3 ~@3 b1@2 b1@2",
  N: "~@4 b1@2 b1@3 ~@3 b1@2 b1@3 ~@3 b1@2 b1@3 ~@3 b1@2 a1@2",
  O: "[~@4 a1@2 a1@3 ~@3 a1@2 a1@3 ~@3 a1@2 a1@3 ~@3 a1@2 a1@4 ~@2 a1@4 ~ a1@4 ~ a1@4 ~@2 a1@4 ~ a1@4 ~ g2@6 ~@2 b2@4 d3@2 ~ d2@6 ~@2 f#2@5 a2@2 ~ c2@6 ~@2 e2@5 g2@2 ~ d2@6 ~@2 f#2@4 a2@2 ~@2 e2@6 ~@2 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3]/5",
  P: "~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3",
  Q: "[~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@5 e2@3 e2@5 e2@3 e2@5 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 a1@3]/2",
  R: "~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3",
  S: "~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 e2@3",
  T: "~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 b1@3",
  U: "~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3",
  V: "~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 a1@3",
  W: "[~@2 a1@4 ~ a1@4 ~@2 a1@4 ~ a1@4 ~ a1@4 ~@2 g2@6 ~ b2@5 d3@2 ~ d2@6 ~ f#2@6 a2@2 c2@5]/2",
  X: "~@3 e2@5 g2@2 ~ d2@6 ~@2 f#2@5 a2@2 ~ e2@5", Y: "~@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2",
  Z: "~ e1@2 e1@3 ~@3 e1@2 e1@3 ~@3 e1@2 e1@3 ~@3 e1@2 e1@3 ~@2, e2@3 ~@29",
  AA: "~ e1@2 e1@3 ~@3 e1@2 e1@3 ~@3 e1@2 e1@3 ~@3 e1@2 e1@3 ~@2",
  AB: "~ e1@2 e1@3 ~@3 e1@2 e1@3 ~@3 e1@2 e1@3 ~@3 e1@2 a1@3 ~@2",
  AC: "~ a1@2 a1@3 ~@3 a1@2 a1@3 ~@3 a1@2 a1@5 ~ a1@2 a1@5",
  AD: "~ a1@2 a1@5 ~ a1@2 a1@3 ~@3 a1@2 a1@3 ~@3 a1@2 e1@3 ~@2",
  AE: "~ e1@2 e1@3 ~@3 e1@2 e1@3 ~@3 e1@2 e1@3 ~@3 e1@2 b1@3 ~@2",
  AF: "~ b1@2 b1@3 ~@3 b1@2 b1@3 ~@3 b1@2 b1@3 ~@3 b1@2 b1@3 ~@2",
  AG: "~ b1@2 b1@3 ~@3 b1@2 b1@3 ~@3 b1@2 b1@3 ~@3 b1@2 a1@3 ~@2",
  AH: "~ a1@2 a1@3 ~@3 a1@2 a1@3 ~@3 a1@2 a1@3 ~@3 a1@2 a1@4 ~", AI: "~ a1@4 ~ a1@4 ~ a1@4 ~@2 a1@4 ~ a1@4 ~ g2@5",
  AJ: "~@3 b2@4 d3@2 ~ d2@6 ~@2 f#2@5 a2@2 ~ c2@6", AK: "~@2 e2@5 g2@2 ~ d2@6 ~@2 f#2@4 a2@2 ~@2 e2@6",
  AL: "[~@2 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@5 e2@3 e2@5 e2@3 e2@5 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 e2@3 ~@2 e2]/8",
  AM: "[~@2 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 b1@3 ~@2 b1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@3 ~@2 a1@3 a1@4 ~ a1@4 ~ a1@4 ~@2 a1@4 ~ a1@4 ~ a1@4 ~@2 g2@6]/6",
  AN: "~ b2@5 d3@2 ~ d2@6 ~ f#2@6 a2@2 c2@6 ~@2", AO: "e2@5 g2@2 ~ d2@6 ~@2 f#2@5 a2@2 ~ e2@6 ~@2",
  AP: "[e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@3 ~@2 e2@3 e2@5 d2@6 b1@5 a1@6 g1@5 ~ e1@4 g2@6 ~ b2@5 d3@2 ~ d2@6 ~@2 f#2@5 a2@2 ~ c2@6 ~ e2@5 g2@2 ~ d2@6 ~@2 f#2@5 a2@2 ~ e2@6 ~@2 e2@2]/4",
  AQ: "~@4 e2@2 e2@3 ~@3 e2@2 e2@3 ~@3 e2@2 e3@5 d3@5",
  AR: "[~ b2@5 a2@6 g2@5 ~ e2@4 g2@6 ~@2 b2@4 d3@2 ~ d2@6 ~@2 f#2@5 a2@2 ~ c2@6 ~@2 e2@5 g2@2 ~ d2@6 ~@2 f#2@4 a2@2 ~@2 e1@31 [e1,e2]@24 ~@20, ~@85 b2@48 ~@27]/5", // E
})).s("gm_electric_bass_finger").gain(0.49).pan(0.3)

// chords · rock organ · "Organ - G19"
const rock_organ = note("<~@9 A@2 B C D@5 ~@10 E@5 ~@43 F G H@3 I J@3 K L@3>".pickRestart({
  A: "[b4,d#5,f#5,b5]/2", B: "~ a5@30 ~, [a4,c#5,e5]@29 ~@3",
  C: "[a4,c#5,e5,a5]@4 ~@2 [a4,c#5,a5]@4 ~ [a4,c#5,a5]@4 ~ [a4,c#5,a5]@4 ~ [a4,c#5,e5,a5]@4 ~ [a4,c#5,e5,a5]@4 ~@2, ~@6 e5@2 ~@3 e5@2 ~@3 e5@2 ~@14", // A
  D: "[g4@6 ~ b4@5 d5@2 ~ d4@6 ~@2 f#4@5 a4@2 ~ c4@6 ~ e4@5 g4@2 ~ d4@6 ~@2 f#4@5 a4@2 ~ [e4,g4,e5]@88 ~@10]/5", // Em
  E: "[~@32 g6@7 ~@7 [a5,d6,f#6]@8 ~@8 [e5,a#5,c6,e6]@8 ~@8 [a5,b5,f#6]@8 ~@7 [e4,e5,g#5,d6,e6,g6]@56 ~@11, ~@31 [b4,d5,g5,b5]@8 ~@6 d5@8 ~@8 c5@8 ~@8 [b4,d#5]@8 ~@75]/5", // D C7 B7 E7 G B
  F: "~@27 [b5,g6]@5, ~@13 [b4,d5,g5]@3", G: "~@9 [d5,a5,d6,f#6]@8 ~@9 e6@6, ~@25 [c5,e5,a#5,c6]@7",
  H: "[~@9 [b4,d#5,a5,b5,f#6]@8 ~@7 [e4,e5,g#5,d6,e6,g6]@56 ~@9 [d5,g5,b5,g6]@7, ~@11 b4]/3", // B7 E7 G
  I: "~@8 [d6,f#6]@7 ~@9 [a#5,c6,e6]@7 ~, ~@7 [d5,a5]@8 ~@8 [c5,e5]@8 ~", // D C7 D5 C
  J: "[~@7 [b4,d#5,a5,b5,f#6]@8 ~@8 [g#5,d6,e6,g6]@56 ~@9 g6@7 ~, ~@22 [e4,e5]@56 ~@9 [b4,d5,g5,b5]@8 ~]/3", // B7 E7 E G
  K: "~@3 [a5,d6,f#6]@4 ~@4 [e5,a#5,c6,e6]@4 ~, ~@5 d5@8 ~@8 c5@8 ~@3", // D C7
  L: "[~@6 [a5,b5,f#6]@8 ~@7 [e4,e5,g#5,d6,e6,g6]@56 ~@19, ~@5 [b4,d#5]@8 ~@83]/3", // B7 E7 B
})).s("gm_rock_organ").gain(0.32).pan(0.6)

// chords · rock organ · "Organ - G19"
const rock_organ_2 = note("<~@47 A@2 B C@2 D@8 E@5 ~@24>".pickRestart({
  A: "[~@27 b5@23 [f5,a5] [c5,d5] [g4,a4,b4] [e4,f4] ~@3 e5@3 g5@4, ~@3 e5@48 ~@13, ~@19 g5@32 ~@13]/2", // F Csus2 G Fmaj7
  B: "e5@4 a5@2 ~@2 b5@3 a5@3 e5@2 a5@2 ~ e5@3 g5@2 e5@3 g5@5, ~@3 e5@3 ~@10",
  C: "[~ e5@2 a5@3 ~@2 b5@3 a5@5 ~ a5@2 g5@5 e5@3 b5@2 ~@3 a5@3 g5@3 e5 ~@4 b5@3 ~@2 a5@2 ~ g5@5 ~@3 a5@3 ~@2, ~@6 e5@17 ~@6 e5@5 ~@6 e5@15 ~ e5@7 ~, ~@17 g5 ~@46]/2",
  D: "[e5@3 g5@5 e5@3 g5@3 e5@3 a5@2 e5@3 ~@5 a#5 b5@7 a5@5 g5@3 a5@4 ~ b5@8 ~@3 d6@9 b5@7 c#6 d6@4 b5@3 ~@2 b5@6 ~@48 e5@10 [g5,a5,b5,c6] [d5,e5,f5,g5,a5] [f4,g4,a4,b4,c5] e4 ~@2 d#6 e6@7 ~@8 a#5 b5@4 ~@12 a#5 ~@6 a5@5 a#5 ~@2 c#6 d6@4 b5@3 a5@5 b5@3 g#5 a5@7 g5@5 e5@8 d5@3 ~ e5 ~ d5 ~@2 [d5,e5] ~ e5 ~@2 [e5,g5,b5] ~, ~@22 g5@5 ~@32 c#6 ~@23 d6@4 ~@4 e6@57 ~@15 d6@16 ~@77, ~@24 e5@115 ~@117, ~@107 b5@42 ~@30 b5@16 ~@5 b5@5 ~@51, ~@123 g5@26 ~@107]/8", // Cmaj7 Dm F Dsus2 Em
  E: "[~ [e5,g5,b5] ~ [e5,g5,b5] ~@2 [e5,g5,b5] ~@2 [e5,g5,b5] ~ [e5,g5,b5] ~@2 [e5,g5,b5] ~@2 [e5,g5,b5] ~ [f5,g5] [a5,b5,c6] [d6,e6,f6] [g6,a6] [b6,c7] d7 f7 ~@2 [e6,f6,g6,a6,b6,c7] d6@13 b5@8 a5@8 g5@16 f#5@8 ~@8 d#5 ~@17 d5@2 ~ d5 ~@2 d5 ~ d5 ~@2 d5 ~@2 d5 ~ d5 ~@2 d5 ~@2 d5 ~@29, ~@41 d5@7 ~@32, ~@18 e5@13 ~]/5", // Em Fsus2 Am Dm Gsus2 Cmaj7
})).s("gm_rock_organ").gain(0.49).pan(0.3)

// chords · rock organ · "Organ - G19" · soft notes
const rock_organ_soft = note(`<
  ~@56
  [~@19 d6@2 ~@11]
  ~@7
  [~@5 d5 ~@2 d5 ~ d5 ~@2 d5 ~ d5 ~@2 d5 ~@2 d5 ~ d5 ~@2 d5 ~@5]
  ~@24
>`).s("gm_rock_organ").gain(0.29).pan(0.3)

// chords · rock organ · "Organ - G19"
const rock_organ_3 = note("<~@48 A@4 B@4 C@5 ~@28>".pickRestart({
  A: "[~@7 e5@25, ~@27 [g5,b5]@101]/4", B: "[~@28 e5@61 ~@3 [e5,g5,b5]@36, ~@27 [a4,c5]@61 ~@40, ~@28 d5 ~@99]/4",
  C: "[~@27 [b4,d#5,f#5]@63 ~@2 [c#5,d5]@3 ~ c#5@60 ~@4, ~@92 [a4,e5]@65 ~@3, ~@23 d#5 ~@16]/5", // B Dmaj7 A5
})).s("gm_rock_organ").gain(0.26).pan(0.7)

// drums · rim
const rim = s("rim").struct(`<
  ~ A@11 B C D E@13 F ~ G H@13 I J K L M@12 N O P O@12 Q R ~ S T U ~ V W X ~ Y ~@2
>`.pickRestart({
  A: "x!2", B: "x ~@4 x ~@5 x ~@4 x ~@5 x ~@4 x ~@4", C: "x ~@6 x ~@7 x", D: "~@15 x", E: "~@7 x ~@7 x",
  F: "~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@6", G: "~@29 x ~@2", H: "~@13 x ~@15 x ~@2",
  I: "~@2 x ~@4 x ~@5 x ~@5 x ~@4 x ~@7", J: "~@5 x ~@14 x ~@3 x ~@7", K: "~@3 x ~@15 x ~@7 x ~@4",
  L: "~@3 x ~@15 x ~@12", M: "~@11 x ~@15 x ~@4", N: "~ x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4", O: "~@5 x ~@7 x ~@2",
  P: "~@13 x ~@2", Q: "~@10 x ~@15 x ~@4 x", R: "~@4 x ~@5 x ~@5 x ~@4 x ~@10", S: "~@3 x", T: "~ x ~ x", U: "~ x ~@2",
  V: "~@11 x ~@4", W: "~@6 x ~@15 x ~@4 x ~@4", X: "~ x ~@4 x ~@5 x ~@5 x ~@13", Y: "~@21 x ~@10",
})).gain(0.51)

// drums · kick
const kick = s("bd").struct("<~@14 [~@7 x ~@8] [~@3 x ~@12] ~@46 [~@5 x ~@10] [~ x ~@14] ~@25>").gain(0.65)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@11 ~ B C D E@12 ~ E@2 F@13 ~@3 G@13 ~ H I J K@12 ~ L M N@3 O P@3 Q ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@8 x ~@14 x ~@8", C: "~@7 x ~@15 x ~@4 x ~@3", D: "~@11 x ~@4", E: "~@3 x ~@7 x ~@4",
  F: "~@5 x ~@15 x ~@10", G: "~@3 x ~@15 x ~@12", H: "~@2 x ~@6 x ~@6", I: "~@2 x ~@15 x ~@4 x ~@8", J: "~@9 x ~@6",
  K: "~ x ~@7 x ~@6", L: "~@2 x ~@14 x ~@14", M: "~ x ~@15 x ~@14", N: "x!2", O: "x ~@7 x ~@6 x", P: "~@7 x ~@7 x",
  Q: "~@7 x ~@8",
})).gain(0.51)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~ A@11 ~@2 B C@12 D E F G@13 H ~@2 I J K L K L@8 M ~@2 N O@12 P N Q R S T U V W X Y Z ~@2
>`.pickRestart({
  A: "x ~@4 x ~@10 x ~@4 x ~@10", B: "~@15 x", C: "~@2 x ~@4 x ~@2 x ~@4 x", D: "~@2 x ~@4 x ~@2 x ~@5", E: "~@31 x",
  F: "~@4 x ~@9 x ~@4 x ~@9 x ~@2", G: "~@2 x ~@10 x ~@4 x ~@10 x ~@2", H: "~@2 x ~@10 x ~@4 x ~@13", I: "~@27 x ~@4",
  J: "x ~@10 x ~@4 x ~@10 x ~@4", K: "x!2 ~@9 x ~@5 x ~@9 x ~@4", L: "~ x ~@9 x ~@5 x ~@9 x ~@4",
  M: "~ x ~@9 x ~@5 x ~@14", N: "~@26 x ~@4 x", O: "~@10 x ~@4 x ~@10 x ~@4 x", P: "~@10 x ~@4 x ~@16",
  Q: "~@9 x ~@4 x ~@9 x ~@5 x ~", R: "~@9 x ~@3 x ~@10 x!2 ~@3 x ~@2", S: "~@8 x ~@4 x ~@10 x ~@5 x ~",
  T: "~@8 x ~@5 x ~@10 x ~@3 x ~@2", U: "~@8 x ~@4 x ~@9 x ~@4 x ~@3", V: "~@7 x ~@4 x ~@9 x!2 ~@4 x ~@3",
  W: "~@3 x ~@2 x ~@4 x ~@2 x ~", X: "~@6 x ~@5 x ~@10 x ~@4 x ~@3", Y: "~@6 x ~@4 x ~@9 x ~@4 x ~@5",
  Z: "~@5 x ~@4 x ~@10 x ~@10",
})).gain(0.51)

// drums · open hat
const open_hat = s("oh").struct("<~ A@11 ~@3 B@13 ~ C D@14 ~@3 E@13 ~@3 F@13 ~ G H I@2 J K L M N O ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@3 x ~@7 x ~@4", C: "~@7 x ~@14 x ~@9", D: "~@5 x ~@15 x ~@10", E: "~@3 x ~@15 x ~@12",
  F: "~ x ~@7 x ~@6", G: "~@2 x ~@14 x ~@14", H: "~ x ~@15 x ~@14", I: "x!2", J: "~ x ~@14 x ~@14 x",
  K: "~@15 x ~@14 x ~", L: "~@7 x ~@7 x", M: "~@14 x ~@16 x", N: "~@14 x ~@14 x ~@2", O: "~@13 x ~@18",
})).gain(0.58)

// drums · china
const china = s("cr").struct(`<
  ~@12 A B C ~@13 D E ~@14 F G H G ~@12 I H J ~@12 K L ~@2 M N O@2 P Q R S ~@2
>`.pickRestart({
  A: "~@6 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4", B: "x!2", C: "x ~@15 x ~@14 x", D: "~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@6",
  E: "x", F: "~@2 x ~@4 x ~@5 x ~@5 x ~@4 x ~@4 x ~@2", G: "~@12 x ~@14 x ~@4", H: "~@11 x ~@15 x ~@4",
  I: "~@2 x ~@3 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4", J: "~@11 x ~@14 x ~@5", K: "~@31 x", L: "~@4 x ~@5 x ~@5 x ~@4 x ~@10",
  M: "~@24 x ~@4 x ~@2", N: "~@3 x ~@4 x ~@5 x ~@5 x ~@3 x ~@7", O: "~@8 x ~@14 x ~@8", P: "~@22 x ~@4 x ~@4",
  Q: "~ x ~@4 x ~@5 x ~@5 x ~@3 x ~@9", R: "~@6 x ~@14 x ~@10", S: "~@6 x ~@14 x ~ x ~@8",
})).gain(0.58)

stack(
  electric_guitar_jazz, electric_guitar_jazz_2, bass, rock_organ, rock_organ_2, rock_organ_soft, rock_organ_3, rim,
  kick, snare, pedal_hat, open_hat, china
)

More by The Doors