Strudelify

Gemini Dream

The Moody Blues

KeyE♭ majorTempo129 bpm
0:00/0:00
// Gemini Dream — The Moody Blues
// 129.2 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 131 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(129.2/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 · distortion guitar · "Guitar"
const distortion_guitar = note(`<
  ~@5 A@2 B@2 C@2 D E F@2 G H I J K L M N O P Q R S T U V W X@7 Y Z AA M AB AC AD AE AF AG AH AI AJ AK AL@2 AM AN AO@3
  AP@4 AQ AR AS AT AU AV AW@7 AX@6 AY@3 AZ@3 BA BB BC BD BE@7 BF@4 BG@8 ~@3 BH@8 ~@8
>`.pickRestart({
  A: "[~@15 g3@2 f3@2 eb3@2 c3@2 ~ c3@3 ~@21, ~@23 bb2@2 ~@23]/2",
  B: "[~@15 g3@3 ~ eb3@2 c3@2 ~ c3@3 ~@12 c3@3 db3@3 d3@3, ~@18 f3@2 ~@3 bb2@2 ~@23]/2",
  C: "eb3@10 ~@5 c3@3 db3@3 d3@3", D: "eb3@10 ~@6 c3@7 ~", E: "g3@2 f3@2 ~ eb3@2 c3@2 bb2@2 c3@3 ~ c3@2 db3@3 ~ d3@3",
  F: "eb3@10 ~@5 c3@2 db3@3 ~ d3@3", G: "eb3@10 ~@5 c3@7 ~@2", H: "g3@3 f3@2 eb3@2 c3@2 bb2@2 c3@3 ~ a2@2 bb2@3 ~ b2@3",
  I: "~@6 [g3,bb3,eb4]@3 g3@2 ~@4 c3@2 db3@3 ~ d3@3, c3@3 [bb3,eb4]@3 ~@2", // Eb Eb5
  J: "eb3@9 [bb3,eb4]@6 [c3,c4]@2 db3@3 ~ d3@3", K: "~@2 [a3,eb4] ~@2 c3@2 c4, eb3@3 [a3,eb4]@3 ~@2",
  L: "[bb3,eb4] c4 ~ f3@2 eb3@2 c3@2 ~ c3@3 ~@2 c3@2 db3@3 ~ d3@3, g3@3 c4@6 bb2@2 ~@13", // Eb5
  M: "~@6 [bb3,eb4]@3 ~@6 g3@2 gb3@3 ~ f3@3, eb3@3 [bb3,eb4]@3 ~@2", // Eb5
  N: "~@6 [bb3,eb4]@3 bb3@3 bb3@3 [c3,c4]@2 db3@3 ~ d3@3, eb3@3 eb4@2 ~@3", // Eb5 C
  O: "~ [a3,eb4]!2 c4 ~@2 c4!2, eb3@5 ~ [a3,eb4]@3 ~@3, ~@15 c3@7 ~@2", // Adim
  P: "[g3,bb3,eb4]@3 [f3,c4]@2 ~@2 c3@2 bb2@2 c3@3 ~ g3@2 gb3@3 ~ f3@3, ~@5 eb3@3 ~@16, ~ c4 ~@2", // Eb F5
  Q: "~@6 [g3,bb3,eb4]@6 ~@3 c3@2 db3@3 ~ d3@3, eb3@5 ~ [g3,bb3,eb4]@3 ~@3", // Eb
  R: "~@6 [g3,bb3,eb4]@3 [g3,bb3,eb4]@6 [g3,c4]@2 gb3@3 ~ f3@3, eb3@5 ~@7", // Eb C5
  S: "~@3 c4@3 [g3,a3,eb4]@3 c4@3 ~@3 c3@2 db3@3 ~ [d3,c4]@3, eb3@5 ~ [g3,a3,eb4]@3 ~@3", // Am7b5 D7 Am7b5
  T: "[g3,bb3,eb4]@3 c4@3 c4@6 ~@3 g3@2 gb3@3 ~ f3@3, eb3@5 ~@7", // Eb
  U: "~@6 [g3,bb3,eb4]@3 ~@6 c3@2 db3@3 ~ d3@3, eb3@3 [g3,bb3,eb4]@3 ~@2", // Eb
  V: "~@3 c4@3 [g3,bb3,eb4]@3 c4@3 [g3,bb3,eb4]@3 [g3,c4]@2 gb3@3 ~ f3@3, eb3@5 ~@7", // Eb C5
  W: "f2 [f2,g3,a3,eb4]!2 [f2,c4] f2!3 [f2,c4], eb3@5 ~ [g3,a3,eb4]@3 ~@3", // F7 F5 Am7b5
  X: "[[a2,a3,c4,e4]@3 [a2,a3,c4,e4]@3 [a2,a3,c4,e4]@3 [a2,a3,c4,e4]@3 [a2,a3,c4,e4]@3 [a2,d4]@3 [a2,c4]@3 a2@3 eb2@3 eb2@3 eb2@3 eb2@3 [eb2,b3,e4,a4]@3 [eb2,g4]@3 [eb2,e4]@3 eb2@3 f2@3 f2@3 f2@3 f2@3 [g2,b3,d4,a4]@3 g2@3 g2@3 g2@3 e2@3 e2@3 e2@3 e2@3 [a1,c4,e4,a4]@3 [a1,g4]@3 [a1,e4]@3 a1@3 f2@3 f2@3 f2@3 f2@3 [g2,a4]@3 [g2,g4]@3 [g2,e4]@3 [g2,e3,d4]@3 [c2,c4]@3 ~@3 [f3,d4]@3 [f3,d4]@3 [f3,d4]@3 [c3,f3,d4]@2 ~ [f3,d4]@3 d3@3 [bb3,g4]@3 ~@3 [g3,bb3,eb4]@6 ~@3 c3@2 db3@3 ~ d3@3, ~@7 [g3,b3]@5 ~@27 g3@2 ~@6 [f3,d4]@2 ~@3 [g3,bb3,eb4]@2 ~@2, ~@21 e4@6 d4@9 ~@9 [c4,f4,g4]@6 [c4,f4,a4]@9 ~@3 [b3,d4,a4]@6 [b3,e4,g4]@15 ~@9 [c4,f4,g4]@6 [c4,f4,a4]@9 [b3,d4]@6 ~@6 eb3@6 ~@11 db3@3 ~@4 eb3@10 ~@14]/7", // Am D5 Am Esus4 Eb Emaj7 G Am …
  Y: "~@6 [g3,bb3,eb4]@3 [bb3,eb4]@6 [g3,c4]@2 gb3@3 ~ f3@3, eb3@3 g3 ~@4", // Eb Eb5 C5
  Z: "~@6 [g3,a3,eb4]@3 ~@6 c3@5 ~ c4@3, eb3@3 [g3,a3,eb4]@3 ~@2", // Am7b5
  AA: "[bb3,eb4] c4 ~ f3@2 eb3@2 c3@2 bb2@2 c3@3 ~ c3@2 db3@3 ~ d3@3, g3 c4@2 ~@5", // Eb5
  AB: "~@6 [g3,bb3,eb4]@3 bb3@3 bb3@3 [g3,c4]@2 gb3@3 ~ f3@3, eb3@3 [g3,eb4]@2 ~@3", // Eb C5 Cm
  AC: "~ [g3,a3,eb4]!2 [g3,c4] ~@2 c4!2, eb3@5 ~ [g3,a3,eb4]@3 ~@3, ~@15 c3@5 ~@4", // Am7b5 C5 Am7b5
  AD: "[g3,bb3,eb4]@3 [f3,c4]@2 ~@2 c3@2 bb2@2 c3@3 ~@10, ~@5 eb3@3 ~@16, ~ c4 ~@2", // Eb F5
  AE: "f2!2 [f2,e3,a3,db4] [f2,a3] f2!3 [f2,a3], ~@2 [e3,a3,db4] ~", // A F A
  AF: "[a2,f3,a3,d4] [a2,d4] [a2,e4] a2!2 [a2,e4] a2!2, ~@3 [a3,d4,f4]@2 ~ [f3,a3,d4]@2", // Dm D5 A5 Dm
  AG: "eb2 [eb2,g3] [eb2,d3,g3,b3] [eb2,g3] [eb2,d3,g3,b3] [eb2,b3] [eb2,a3] [eb2,g3]", // Eb G Eb G Abm Ebdim Eb
  AH: "[f2,g3,c4,e4] [f2,d4] [f2,c4] f2 g2 [g2,c4] g2!2, ~@3 [d3,a3,d4]@2 ~@3", // C Dm F5 C5 D5
  AI: "e2 [e2,a3] [e2,e3,a3,db4] [e2,a3] a1!3 [a1,a3], ~@2 [e3,a3,db4] ~", // A5 A A5 A
  AJ: "f2!2 [f2,d4] f2 g2 [g2,e4] g2!2, [f3,a3,d4]@2 ~ [a3,d4,f4]@2 ~ [f3,a3,d4]@2", // Dm C Dm
  AK: "c2 [d3,g3,b3]!2 g3 [d3,g3,b3]!2 ~ b3", // G
  AL: "[[e3,b3,e4]@3 [e3,b3,e4]@3 d4@3 b3@3 [e3,b3,d4]@3 [e3,b3,e4]@3 d4@3 b3@2 [e3,c4,e4]@3 [e3,c4,e4]@3 [e3,b3,d4]@3 [e3,a3,c4]@3 ~@13]/2", // E5 E7 E5 C E7 Am
  AM: "~@5 [bb3,eb4]@3 ~@7 c3@2 db3@3 d3@3 ~, eb3@5 ~@7, ~@5 g3@6 g3@6 ~@7, ~@8 [bb3,eb4]@9 ~@7", // Eb5
  AN: "~@5 [g3,bb3,eb4]@3 [bb3,eb4]@6 ~ g3@2 gb3@3 f3@3 ~, eb3@5 ~@7, ~@8 g3@3 ~@3 c4@3 ~@7", // Eb Eb5
  AO: "[~@5 [g3,a3,eb4]@3 c4@3 ~@4 c3@5 c4@3 g3 g3@2 ~ f3@2 [eb3,c4]@2 ~@2 bb2@2 c3@3 ~ c3@2 db3@3 d3@3 ~ eb3@10 ~@5 g3@2 gb3@3 f3@3 ~, eb3@10 ~ [a3,eb4]@6 ~@6 [bb3,eb4]@3 c4@3 ~@3 c4@9 d4@6 [bb3,eb4]@6 ~@6 [bb3,eb4]@6 ~@7, ~@8 g3@9 ~@14 c3@2 ~@39]/3", // Am7b5 Cm Adim Eb5
  AP: "[~@5 [g3,bb3,eb4]@3 c4@3 ~@4 g3@2 [gb3,bb3,eb4]@3 [f3,c4]@3 ~@3 g3@3 [g3,a3,eb4]@3 [g3,c4]@3 ~@4 c3@5 c4@3 g3 g3@2 [f3,c4]@3 [eb3,bb3]@2 ~@2 bb2@2 c3@3 [c3,f3]@3 [db3,f3]@3 d3@3 ~@6 g3@6 ~@3 c3@3 db3@3 d3@3 ~, eb3@10 ~ [bb3,eb4]@6 ~@6 [a3,eb4]@6 ~@6 [g3,a3,eb4]@6 ~@6 [bb3,eb4]@3 ~@6 c4@3 ~@13 eb3@10 ~@14, ~@8 g3@6 ~@10 eb3@10 ~@21 c3@2 ~@11 f3@6 ~@9 g3@6 ~@7]/4", // Eb Ebm F5 Am7b5 C5 F5 Eb5 F5 …
  AQ: "~@5 g3@3 g3@3 ~@3 g3@3 gb3@3 f3@3 ~, eb3@5 ~@7",
  AR: "~@5 [g3,a3]@3 ~@7 c3@5 ~@3 g3, eb3@5 ~@7, ~@8 [g3,a3]@9 ~@7", // Gsus2
  AS: "g3@2 f3@2 ~ eb3@2 c3@2 bb2@2 c3@3 c3@3 db3@3 d3@3 ~", AT: "eb3@10 ~@4 g3@3 gb3@3 f3@3 ~",
  AU: "~@5 g3@3 g3@6 g3@3 gb3@3 f3@3 ~, eb3@5 ~@7",
  AV: "~@2 [g3,a3]@3 [g3,a3]@3 g3@3 ~@4 c3@5 ~@3 g3, eb3@10 ~ [g3,a3]@6 ~@7", // Gsus2
  AW: "[g3@2 f3@2 ~ eb3@2 c3@2 ~ c3@3 ~@10 f2@3 f2@3 [f2,e3,a3,db4]@3 [f2,a3]@3 f2@3 f2@3 f2@3 [f2,a3]@3 [a2,f3,a3,d4]@3 [a2,d4]@3 [a2,e4]@3 a2@3 a2@3 [a2,e4]@3 a2@3 a2@3 eb2@3 [eb2,g3]@3 [eb2,d3,g3,b3]@3 [eb2,g3]@3 [eb2,d3,g3,b3]@3 [eb2,b3]@3 [eb2,a3]@3 [eb2,g3]@3 [f2,g3,c4,e4]@3 [f2,d4]@3 [f2,c4]@3 f2@3 g2@3 [g2,c4]@3 g2@3 g2@3 e2@3 [e2,a3]@3 [e2,e3,a3,db4]@3 [e2,a3]@3 a1@3 a1@3 a1@3 [a1,a3]@3 f2@3 f2@3 [f2,d4]@3 f2@3 g2@3 [g2,e4]@3 g2@3 g2@3 c2, ~@9 bb2@2 ~@24 [e3,a3,db4]@6 ~@15 [a3,d4,f4]@6 ~@3 [f3,a3,d4]@6 ~@33 [d3,a3,d4]@6 ~@21 [e3,a3,db4]@6 ~@6 [f3,a3,d4]@6 ~@3 [a3,d4,f4]@6 ~@3 [f3,a3,d4]@6 ~]/7", // A F Dm D5 A5 Eb G Eb …
  AX: "[~@2 [d3,g3,b3]@3 [d3,g3,b3]@3 g3@3 [d3,g3,b3]@3 [d3,g3,b3]@3 ~@3 b3@3 [e3,b3,e4]@3 [e3,b3,e4]@3 d4@3 b3@3 [e3,b3,d4]@3 [e3,b3,e4]@3 d4@3 b3@3 [e3,c4,e4]@3 [e3,c4,e4]@3 [e3,b3,d4]@3 ~@6 f3@3 ~@12 g3@6 ~@3 c3@3 db3@3 d3@3 [g3,bb3,eb4]@6 [g3,a3]@3 g3@3 [g3,bb3,eb4]@3 [g3,c4]@3 gb3@3 f3@3 ~@3 c4@3 [g3,a3,eb4]@3 [g3,a3,c4]@3 ~@4 c3@5 c4@3 [g3,bb3,eb4], ~@56 [e3,a3,c4]@9 ~@6 eb3@10 ~@2 g3@6 ~@6 eb3@10 ~@14 eb3@10 ~@15, ~@77 [bb3,eb4,g4]@18 ~@6 [bb3,eb4]@6 a3@6 ~@18 [g3,a3,eb4]@6 ~@7]/6", // G E5 E7 E5 C E7 Eb Gsus2 …
  AY: "[~ c4 f3@2 ~ [eb3,a3]@2 ~@3 c3@3 ~ c3@3 db3@3 d3@3 ~@6 [g3,bb3,eb4]@3 g3@6 g3@3 gb3@3 f3@3 ~@3 c4@3 [g3,a3,bb3,eb4]@3 [g3,c4]@3 [g3,bb3,eb4]@3 [g3,c4]@3 gb3@3 f3@3 ~, ~@2 c4@5 c3@2 bb2@2 ~@12 eb3@10 ~@14 eb3@10 ~@15, ~@8 a3@9 ~@15 [bb3,eb4]@9 ~@6 a3@6 ~@6 a3@6 ~@7]/3", // Ebdim Eb C5 Eb C5 Eb5
  AZ: "[~@2 c4@3 [g3,a3,eb4]@3 c4@3 [g3,a3,eb4]@6 ~@3 c4@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 d4@3 c4@3 [g3,b3]@27 ~, eb3@9 ~@35 e4@6 ~@22]/3", // Am7b5 Am G
  BA: "~@5 a3@3 a3@9 f4@3 f4@3 ~, ~@5 [bb2,f3]@12 [g3,b3]@6 ~", BB: "~@5 [e3,g3,b3]@9 g4@3 g4@3 f4@3 ~, ~@17 c4@6 ~",
  BC: "~@5 [c3,f3,a3]@9 a4@6 g4@3 ~, ~@14 [b3,e4]@9 ~", BD: "~@5 [d3,g3,b3]@12 [b3,d4,a4]@3 g4@3 ~",
  BE: "[~@2 a3@3 a3@3 ~@3 [b3,d4,a4]@3 [b3,d4,a4]@6 [b3,e4,g4]@15 [c4,e4,a4]@3 g4@3 e4@3 [c4,f4,g4]@6 [c4,f4,a4]@9 a4@3 g4@3 e4@3 [e3,d4]@3 eb3@6 [f3,d4]@3 [f3,d4]@3 [f3,d4]@3 [a2,f3,d4]@3 [bb2,f3,d4]@3 b2@3 ~@3 [g3,eb4]@3 g3@3 g3@3 ~@3 c3@3 db3@3 d3@3 ~@6 [g3,bb3,eb4]@3 [g3,bb3,eb4]@6 [c3,c4]@3 db3@3 d3@3 ~@6 [g3,a3,eb4]@6 ~@3 c3@6 c4@3 [g3,bb3,eb4], ~@2 [c4,f4,a4]@9 a3@6 ~@42 [b3,d4]@6 ~@3 g3@6 ~@18 [f3,d4]@6 ~@3 [bb3,eb4]@6 [g3,bb3,eb4]@6 ~@42 [g3,a3,eb4]@6 ~@7, ~@71 c4@3 ~@21 c3@10 ~@14 eb3@10 ~@14 eb3@10 ~@15]/7", // Bm7 Em Am Csus4 F E7 Dm Bb …
  BF: "[~ c4 f3@2 eb3@2 c3@2 bb2@2 c3@3 ~ c3@3 db3@3 d3@3 ~@6 [g3,bb3,eb4]@3 g3@6 g3@3 [gb3,g3,bb3,eb4]@3 f3@3 ~@6 [g3,bb3,eb4]@3 [g3,bb3,eb4]@6 [c3,c4]@3 db3@3 d3@3 ~@3 [g3,a3,eb4]@3 [g3,a3,eb4]@3 c4@3 ~@6 c4@3 c4@3 [g3,bb3,eb4], ~@2 c4@6 ~@15 eb3@9 [bb3,eb4]@9 ~@3 [g3,bb3,eb4]@9 ~@30 [g3,a3,eb4]@6 ~@7, ~@47 eb3@10 ~@14 eb3@10 ~@5 c3@7 ~@3]/4", // Eb C Am7b5 Eb Eb5 Eb Am7b5
  BG: "[~@2 [f3,c4]@2 ~ bb3@2 ~ [bb2,c4]@2 c3@3 ~ [g3,d4,bb4]@3 gb3@3 f3@3 ~@6 g3@6 ~@3 c3@3 db3@3 d3@3 ~@6 g3@3 g3@5 ~ g3@3 gb3@3 f3@3 ~@6 g3@3 ~@6 c3@3 db3@3 d3@3 [bb3,c4]@15 g3@2 gb3@3 ~ f3@3 ~@6 g3@3 ~@6 c3@2 db3@3 ~ d3@3 ~@6 g3@3 ~@3 g3@3 g3@2 gb3@3 ~ f3@3 f2@3 [f2,g3]@3 [f2,g3]@3 f2@3 ~@13, ~@4 eb3@3 c3@2 ~@14 eb3@10 ~@2 g3@6 ~@6 eb3@10 ~@14 eb3@10 ~@2 g3@6 ~@6 eb3@10 ~@14 eb3@10 ~@14 eb3@10 ~@14 eb3@10 ~@15, ~@95 g3@3 ~@30 g3@9 ~@55]/8", // F5 Bbsus2 Gm Bbsus2 Fsus2
  BH: "[~@14 a2@2 bb2@3 ~ b2@3 ~@6 g3@3 g3@2 ~@4 c3@3 db3@3 d3@3 eb3@10 ~@5 c3@3 db3@3 d3@3 eb3@10 ~@5 c3@7 ~@2 g3@3 f3@2 eb3@2 c3@2 bb2@2 c3@3 ~ c3@2 db3@3 ~ d3@3 eb3@10 ~@5 g3@2 gb3@3 ~ f3@3 eb3@10 ~@5 c3@2 db3@3 ~ d3@3 eb3@10 ~@15, ~@23 c3@10 ~@159]/8",
})).s("gm_distortion_guitar").gain(0.24).pan(0.8)

// chords · pad metallic · "Guitar"
const pad_metallic = note("<~@126 A@5>".pickRestart({
  A: "[~@5 g3@3 ~@6 [bb4,d5]@3 [bb4,d5]@3 ~@33 gb2 ~@66, ~@13 f3@105 ~@2, ~@7 f2@40 ~@13, ~@20 [bb4,d5]@99 ~]/5", // Bb
})).s("gm_pad_metallic").gain(0.24).pan(0.8)

// bass · slap bass 2 · "Bass"
const bass = note(`<
  A B C B C B C B C B@2 D C B@2 D C B@2 D C B@2 D C B@2 D C B@2 D E F G H G I B@2 D C B@2 D C J K L M J K N O@8 P@8 Q@8
  R@8 S@8 T@8 U@4 V@5 W@5 X@6 W@5 Y@5
>`.pickRestart({
  A: "~@3 f1 g1 bb1 c2 eb2", B: "c2!8", C: "c2!3 f1 g1 bb1 c2 eb2", D: "f2!8", E: "a2!8", F: "eb2!8", G: "f2!4 g2!4",
  H: "e2!4 a1!4", I: "c2!2 ~ f1 g1 bb1 c2 eb2", J: "a1!2 b1!2 db2!2 a1!2", K: "d2!2 e2!2 f2!2 d2!2",
  L: "g2!2 f2!2 e2!2 d2!2", M: "c2!2 bb1!2 a1!2 g1!2", N: "g2!8",
  O: "[ab2@3 ab2@3 ab2@3 ab2@3 ab2@3 ab2@3 ab2@3 ab2@2 a2@3 a2@3 a2@3 a2@3 a1@6 ~@6 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 c2@3 c2@3 c2@3 f1@3 g1@3 bb1@3 c2@3 eb2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 f2]/8",
  P: "[~@2 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 c2@3 c2@3 c2@3 f1@3 g1@3 bb1@3 c2@3 eb2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 c2@3 c2@3 c2@3 f1@3 g1@3 bb1@3 c2@3 eb2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 f2]/8",
  Q: "[~@2 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 c2@3 c2@3 c2@3 f1@3 g1@3 bb1@3 c2@3 eb2@3 a1@3 a1@3 b1@3 b1@3 db2@3 db2@3 a1@3 a1@3 d2@3 d2@3 e2@3 e2@3 f2@3 f2@3 d2@3 d2@3 g2@3 g2@3 f2@3 f2@3 e2@3 e2@3 d2@3 d2@3 c2@3 c2@3 bb1@3 bb1@3 a1@3 a1@3 g1@3 g1@3 a1@3 a1@3 b1@3 b1@3 db2@3 db2@3 a1@3 a1@3 d2@3 d2@3 e2@3 e2@3 f2@3 f2@3 d2@3 d2@3 g2]/8",
  R: "[~@2 g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 ab2@3 ab2@3 ab2@3 ab2@3 ab2@3 ab2@3 ab2@3 ab2@3 a2@3 a2@3 a2@3 a2@3 a1@6 ~@6 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 c2@3 c2@3 c2@3 f1@3 g1@3 bb1@3 c2@3 eb2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2]/8",
  S: "[~@2 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 f2@3 f2@3 f2@3 f2@3 g2@3 g2@3 g2@3 g2@3 e2@3 e2@3 e2@3 e2@3 a1@3 a1@3 a1@3 a1@3 f2@3 f2@3 f2@3 f2@3 e2@3 e2@3 e2@3 e2@3 g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 f2]/8",
  T: "[~@2 f2@3 f2@3 f2@3 g2@3 g2@3 g2@3 g2@3 e2@3 e2@3 e2@3 e2@3 a1@3 a1@3 a1@3 a1@3 f2@3 f2@3 f2@3 f2@3 g2@3 g2@3 g2@3 g2@3 c2@3 c2@3 ~@3 f1@3 g1@3 bb1@3 c2@3 eb2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 c2@3 c2@3 c2@3 f1@3 g1@3 bb1@3 c2@3 eb2@3 bb2]/8",
  U: "[~@2 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 eb3@3 eb3@3 eb3@3 eb3@3 eb3@3 eb3@3 eb3@3 eb3@3 c2@3 c2@3 c2@3 f1@3 g1@3 bb1@3 c2@3 eb2@3 ~]/4",
  V: "[~@2 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 c2@3 c2@3 c2@3 f1@3 g1@3 bb1@3 c2@3 eb2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2]/5",
  W: "[~@2 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 [f1,f2]@24 [g1,g2]@24 [bb1,bb2]@27 [bb1,g3]@3 [bb1,f3]@3 ~@3 [bb1,eb3]@3 [bb1,c3]@3 ~@3 [bb1,bb2]@3 [bb1,g2]@3 ~]/5", // F G Bb Eb Bb5 Eb5 Bbsus2 Bb …
  X: "[~@2 [bb1,f2]@3 [bb1,eb2]@3 ~@3 bb1@3 ~@3 bb1@3 ~@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 c2@3 c2@3 c2@3 f1@3 g1@3 bb1@3 c2@3 eb2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2]/6", // Bb5 Eb5
  Y: "[~@2 [bb1,f2]@3 [bb1,eb2]@3 ~@5 bb1@93 ~@14]/5", // Bb5 Eb5
})).s("gm_slap_bass_2").gain(0.45)

// other · brass section · "Brass"
const brass_section = note("<~@6 A@5 B C@3 D E@2 ~@113>".pickRestart({
  A: "[~@9 c5@38 ~ c5@26 ~ c5 b4 c5@2 ~@2 c5 ~ c5@3 eb5@32 ~@2, ~@9 g5@73 b4@2 ~@36, ~@16 [c6,eb6]@11 ~@13]/5", // Cm
  B: "~@3 c5 b4 c5@2 b4 ~@4 c5 b4 ~ b4 ~@8, ~@7 c5 ~@4",
  C: "[~@3 c5 b4 c5@2 b4 ~@4 c5 b4 ~ b4 ~@11 c5 b4 c5@2 ~@2 c5 ~ c5@3 eb5@32 ~@2, ~@14 c5@2 ~ eb4@16 ~ b4@2 ~@36]/3",
  D: "~@3 c5 b4 c5@2 b4 ~@4 c5 ~ b4!2 ~@8, ~@7 c5 ~@4",
  E: "[~@3 c5 b4 c5@2 b4 ~@4 c5 ~ b4!2 ~@2 eb4@18 ~@12, ~@7 c5 ~@16]/2",
})).s("gm_brass_section").gain(0.23).pan(0)

// other · lead 5 charang · "Rhythm"
const lead_5_charang = note(`<
  ~@2 A B C B C B C B@2 D C B@2 D C B@2 D C B@2 D C B@2 D C B@2 D E F G H G I B@2 D C B@2 D C J K L M J K N O@8 P@8 Q@8
  R@8 S@8 T@8 U@4 V@5 W@5 X@6 W@5 Y@5
>`.pickRestart({
  A: "~@3 f3 g3 bb3 c4 eb4", B: "c4!8", C: "c4!3 f3 g3 bb3 c4 eb4", D: "f4!8", E: "a4!8", F: "eb4!8", G: "f4!4 g4!4",
  H: "e4!4 a3!4", I: "c4!2 ~ f3 g3 bb3 c4 eb4", J: "a3!2 b3!2 db4!2 a3!2", K: "d4!2 e4!2 f4!2 d4!2",
  L: "g4!2 f4!2 e4!2 d4!2", M: "c4!2 bb3!2 a3!2 g3!2", N: "g4!8",
  O: "[ab4@3 ab4@3 ab4@3 ab4@3 ab4@3 ab4@3 ab4@3 ab4@2 a4@3 a4@3 a4@3 a4@3 a3@6 ~@6 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 c4@3 c4@3 c4@3 f3@3 g3@3 bb3@3 c4@3 eb4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 f4]/8",
  P: "[~@2 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 c4@3 c4@3 c4@3 f3@3 g3@3 bb3@3 c4@3 eb4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 c4@3 c4@3 c4@3 f3@3 g3@3 bb3@3 c4@3 eb4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 f4]/8",
  Q: "[~@2 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 c4@3 c4@3 c4@3 f3@3 g3@3 bb3@3 c4@3 eb4@3 a3@3 a3@3 b3@3 b3@3 db4@3 db4@3 a3@3 a3@3 d4@3 d4@3 e4@3 e4@3 f4@3 f4@3 d4@3 d4@3 g4@3 g4@3 f4@3 f4@3 e4@3 e4@3 d4@3 d4@3 c4@3 c4@3 bb3@3 bb3@3 a3@3 a3@3 g3@3 g3@3 a3@3 a3@3 b3@3 b3@3 db4@3 db4@3 a3@3 a3@3 d4@3 d4@3 e4@3 e4@3 f4@3 f4@3 d4@3 d4@3 g4]/8",
  R: "[~@2 g4@3 g4@3 g4@3 g4@3 g4@3 g4@3 g4@3 ab4@3 ab4@3 ab4@3 ab4@3 ab4@3 ab4@3 ab4@3 ab4@3 a4@3 a4@3 a4@3 a4@3 a3@6 ~@6 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 c4@3 c4@3 c4@3 f3@3 g3@3 bb3@3 c4@3 eb4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4]/8",
  S: "[~@2 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 a4@3 a4@3 a4@3 a4@3 a4@3 a4@3 a4@3 a4@3 e4@3 e4@3 e4@3 e4@3 e4@3 e4@3 e4@3 e4@3 f4@3 f4@3 f4@3 f4@3 g4@3 g4@3 g4@3 g4@3 e4@3 e4@3 e4@3 e4@3 a3@3 a3@3 a3@3 a3@3 f4@3 f4@3 f4@3 f4@3 e4@3 e4@3 e4@3 e4@3 g4@3 g4@3 g4@3 g4@3 g4@3 g4@3 g4@3 g4@3 f4]/8",
  T: "[~@2 f4@3 f4@3 f4@3 g4@3 g4@3 g4@3 g4@3 e4@3 e4@3 e4@3 e4@3 a3@3 a3@3 a3@3 a3@3 f4@3 f4@3 f4@3 f4@3 g4@3 g4@3 g4@3 g4@3 c4@3 c4@3 ~@3 f3@3 g3@3 bb3@3 c4@3 eb4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 c4@3 c4@3 c4@3 f3@3 g3@3 bb3@3 c4@3 eb4@3 bb4]/8",
  U: "[~@2 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 eb5@3 eb5@3 eb5@3 eb5@3 eb5@3 eb5@3 eb5@3 eb5@3 c4@3 c4@3 c4@3 f3@3 g3@3 bb3@3 c4@3 eb4@3 ~]/4",
  V: "[~@2 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 c4@3 c4@3 c4@3 f3@3 g3@3 bb3@3 c4@3 eb4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4]/5",
  W: "[~@2 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 [f3,f4]@24 [g3,g4]@24 [bb3,bb4]@27 [bb3,g5]@3 [bb3,f5]@3 ~@3 [bb3,eb5]@3 [bb3,c5]@3 ~@3 [bb3,bb4]@3 [bb3,g4]@3 ~]/5", // F G Bb Eb Bb5 Eb5 Bbsus2 Bb …
  X: "[~@2 [bb3,f4]@3 [bb3,eb4]@3 ~@3 bb3@3 ~@3 bb3@3 ~@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 c4@3 c4@3 c4@3 f3@3 g3@3 bb3@3 c4@3 eb4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4]/6", // Bb5 Eb5
  Y: "[~@2 [bb3,f4]@3 [bb3,eb4]@3 ~@5 bb3@93 ~@14]/5", // Bb5 Eb5
})).s("gm_lead_5_charang").gain(0.21)

// chords · overdriven guitar · "Lead Guitar"
const overdriven_guitar = note("<~@33 A@5 ~@24 B@3 C@5 ~@34 D@7 E@4 F@7 E@4 G@5>".pickRestart({
  A: "[~@4 [b3,e4,a4] g4 e4 [c4,f4,g4]@2 [c4,f4,a4]@3 [b3,d4,a4] [b3,d4,a4]@2 [b3,e4,g4]@5 [c4,e4,a4] g4 e4 [c4,f4,g4]@2 [c4,f4,a4]@3 a4 g4 e4 [e3,d4] eb3@2 ~@6, ~@28 [b3,d4]@2 ~ g3@2 ~@7, ~@32 c4 ~@7]/5", // Esus4 Csus4 F Bm7 Em Am Csus4 F …
  B: "[~@14 [bb4,d5]@3 [bb4,d5]@3 [bb4,d5]@3 [g4,bb4,c5,eb5]@12 [eb5,g5]@3 [d5,f5]@3 [c5,eb5]@3 [eb5,g5]@11 ~ [eb5,g5]@9 [c5,eb5]@3 [eb5,g5]@3 ~, ~@44 c6@23 ~@5]/3", // Bb Cm7 Eb Dm Cm Eb Cm Eb
  C: "[~@2 [eb5,g5]@3 [d5,f5]@3 [d5,f5]@3 [c5,eb5]@3 [c5,eb5]@3 [bb4,d5]@3 [bb4,d5]@3 [eb4,g4,bb4,c5]@15 c5 ~ d5 eb5 ~ f5 eb5 ~ d5 [g4,bb4,c5,eb5]@12 [f5,ab5]@3 [eb5,g5]@3 [c5,eb5]@3 [eb5,g5,bb5,c6]@12 [c5,eb5]@3 [eb5,g5]@3 [d5,f5]@3 [c5,eb5]@3 [a4,c5,eb5,g5]@6 [eb5,g5]@3 [d5,f5]@3 [d5,f5]@3 [c5,eb5]@3 [c5,eb5]@3 [bb4,d5]@3 [g4,bb4,c5,eb5]@3 ~]/5", // Eb Dm Cm Bb Cm7 Fm Eb Cm …
  D: "[~@14 [d4,bb4]@3 [d4,bb4]@3 [d4,bb4]@3 [eb4,g4,bb4,c5]@12 [g4,eb5]@3 [f4,d5]@3 [eb4,c5]@3 [bb4,c5,eb5,g5]@12 [eb4,c5]@3 [g4,eb5]@3 [f4,d5]@3 [eb4,c5]@3 [g4,a4,c5,eb5]@6 [g4,eb5]@3 [f4,d5]@3 [f4,d5]@3 [eb4,c5]@3 [eb4,c5]@3 [d4,bb4]@3 [d4,bb4]@3 [c4,eb4,g4]@15 ~ g4 ~ [bb4,c5] d5 ~ c5 bb4 ~ [eb4,g4,bb4,c5]@12 [g4,eb5]@3 [f4,d5]@3 [eb4,c5]@3 [bb4,eb5,g5]@12 [c5,eb5]@9 eb4@3 g4@3 ~, ~@140 c5@3 ~@25]/7", // Gm Cm7 Cm Dm Cm Cm7 Cm Dm …
  E: "[~@2 eb5@3 d5@3 d5@3 c5@3 c5@3 bb4@3 [d4,g4,eb5]@6 eb5@3 d5@3 d5@3 c5@3 c5@3 bb4@3 [f4,bb4]@3 ~@3 eb5@3 d5@3 d5@3 c5@3 c5@3 bb4@3 g4@27 ~, ~@22 eb5@3 ~@23]/4", // Ebmaj7 Bb5
  F: "[~@14 [bb4,d5]@3 [bb4,d5]@3 [bb4,d5]@3 [g4,bb4,c5,eb5]@12 [eb5,g5]@3 [d5,f5]@3 [c5,eb5]@3 [eb5,g5]@10 ~@2 [eb5,g5]@9 c5@3 eb5@3 ab4@3 g5@3 [d5,f5]@3 [d5,f5]@3 eb5@3 [c5,eb5]@3 [bb4,d5]@3 [bb4,d5]@3 [eb4,g4,bb4,c5]@15 ~ c5 ~ [d5,eb5] f5 ~ eb5 d5 ~ [eb4,g4,bb4,c5]@12 [g4,eb5]@3 [f4,d5]@3 [eb4,c5]@3 [bb4,c5,eb5,g5,c6]@11 ~ [c5,eb5]@9 eb4@3 g4@3 ~, ~@44 c6@12 ~@15 [c5,eb5]@6 ~@91, ~@22 eb6@3 ~@59]/7", // Bb Cm7 Eb Dm Cm Eb Dm Cm …
  G: "[~@5 g3@3 ~@6 [bb4,d5]@3 [bb4,d5]@3 [bb4,d5]@99 ~, ~@13 f3@105 ~@2]/5", // Bb
})).s("gm_overdriven_guitar").gain(0.36).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@16 B A@19 C A@15 D E F@6 G A F@16 E F@16 E F@7 G F@6 H@2 E I J F@6 H@2 E I K ~@4
>`.pickRestart({
  A: "x!2", B: "~ x", C: "x", D: "x ~@11 x ~@10 x", E: "~@23 x", F: "~@11 x ~@11 x", G: "~@11 x ~@12", H: "~@7 x",
  I: "~@2 x ~@5 x ~@2 x ~@5 x ~@2 x ~@3", J: "~@2 x ~@2 x ~@5 x ~@5 x ~@5 x", K: "~@2 x ~@2 x ~@7 x ~@10",
})).gain(0.37)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@15 B C A@19 D A@15 E F G@7 H I G@15 F G@16 J G@7 H I G@5 K ~@3 L G@6 K ~@8
>`.pickRestart({
  A: "x!8", B: "x!4 ~@4", C: "~@8 x!3 ~ x ~@2 x ~@2 x ~@2 x ~@2", D: "x!2 ~@6",
  E: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x", F: "~@2 x ~@2 x ~@2 x ~@14 x",
  G: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", H: "~@2 x ~@2 x ~@2 x ~@15",
  I: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", J: "~@2 x ~@20 x", K: "~ x ~@10", L: "~@23 x",
})).gain(0.37)

// drums · low tom
const low_tom = s("lt").struct("<~@79 [~@15 x!3 ~@3 x!3] ~@51>").gain(0.37)

// drums · mid tom
const mid_tom = s("mt").struct("<~@54 [~@7 x] ~@24 [~@7 x] ~@51>").gain(0.37)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@15 B ~@7 A ~@7 C ~@4 A ~@7 B ~@8 A ~@7 B ~@6 D ~@25 D ~@8 A ~@5 E C D F G ~@6 E C D F H ~@4
>`.pickRestart({
  A: "x", B: "~ x ~@22", C: "~@7 x", D: "~@23 x", E: "x ~@6 x", F: "~@2 x ~@5 x ~@2 x ~@5 x ~@2 x ~@3",
  G: "~@2 x ~@2 x ~@5 x ~@5 x ~@5 x", H: "~@2 x ~@2 x ~@7 x ~@10",
})).gain(0.37)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~ A@36 B A@15 C D E@24 D E@16 F E@14 G ~@3 H E@6 G ~@8>".pickRestart({
  A: "x!8", B: "x!2 ~@6", C: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x", D: "~@2 x ~@2 x ~@2 x ~@14 x",
  E: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", F: "~@2 x ~@20 x", G: "~ x ~@10", H: "~@23 x",
})).gain(1.42)

stack(
  distortion_guitar, pad_metallic, bass, brass_section, lead_5_charang, overdriven_guitar, kick, snare, hihat, low_tom,
  mid_tom, crash, cabasa
)

More by The Moody Blues