Strudelify

The Other Side of Life

The Moody Blues

KeyG majorTempo139 bpm
0:00/0:00
// The Other Side of Life — The Moody Blues
// 139.1 bpm, 12/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/8 at bar 1, 12/8 at bar 2) are rendered on a constant 12/8 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 "Power Drum" synth drum (copy of ch 11 "Synth Drum 2" melodic tom)
// note: Full arrangement: all 158 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(139.1/6)

// 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 · "Bass"
const bass = note(`<
  A@8 B@8 C@8 D@8 E@5 F@4 G H I G J K G L J K M@3 N O G@2 N O G P Q O G@2 N O G F@6 R@3 S@3 H G H G H I G F@4 G H I G J
  K G L J K M@3 H G H T U V W X@4 W U V W Y Z W AA Y Z AB@2 AC AD AE W@2 AF AE W AC AD AE W@2 AF AE W AA@8 W@6
>`.pickRestart({
  A: "[~ e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3]/8",
  B: "[~ e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 [e3,g5]@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 c3@2 d3@2 g2@2 g2@2 g2@2 b2@2 d3@2 e3@2 g2@2 g2@2 g2@2 b2@2 c3@2 d3@2 a2@2 a2@2 a2@2 e3@2 g3@2 a3@2 a2@2 a2@2 a2@2 e3@2 g3@2 a3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 g2@2 g2@2 g2@2 b2@2 d3@2 e3@2 g2@2 g2@2 g2@2 b2@2 d3@2 e3]/8", // Em
  C: "[~ a2@2 a2@2 a2@2 e3@2 g3@2 a3@2 a2@2 a2@2 a2@2 e3@2 g3@2 a3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2@2 a2]/8",
  D: "[~ f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 d2@48 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 d2@2 d2@2 d2@2 b2@2 d3@2 e3@2 d2@2 d2@2 d2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3@2 e2@2 e2@2 e2@2 b2@2 d3@2 e3]/8",
  E: "[~@2 d2@4 d2@4 d2@4 b2@4 d3@4 e3@4 d2@4 d2@4 d2@4 b2@4 d3@4 e3@4 e2@4 e2@4 e2@4 b2@4 d3@4 e3@4 e2@4 e2@4 e2@4 b2@4 d3@4 e3@4 d2@4 d2@4 d2@4 b2@4 d3@4 e3@4 d2@4 d2@4 d2@4 b2@4 d3@4 e3@4 e2@4 e2@4 e2@4 b2@4 d3@4 e3@4 d2@4 d2@4 d2@4 b2@4 d3@4 e3@4 e2@4 e2@4 e2@4 b2@4 d3@3 e3@4 e2@4 e2@4 e2@4 b2@4 d3@4 e3@3]/5",
  F: "~ a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@3",
  G: "~ e2@4 e2@4 e2@4 b2@4 d3@4 e3@4 e2@4 e2@4 e2@4 b2@4 d3@4 e3@3",
  H: "~ d2@4 d2@4 d2@4 b2@4 d3@4 e3@4 d2@4 d2@4 d2@4 b2@4 d3@4 e3@3",
  I: "~ e2@4 e2@4 e2@4 b2@4 d3@4 e3@4 d2@4 d2@4 d2@4 b2@4 d3@4 e3@3",
  J: "~ a1@4 a1@4 a1@4 e2@4 g2@4 a2@4 a1@4 a1@4 a1@4 e2@4 g2@4 a2@3",
  K: "~ b1@4 b1@4 b1@4 f#2@4 a2@4 b2@4 b1@4 b1@4 b1@4 f#2@4 a2@4 b2@3",
  L: "~ c2@4 c2@4 c2@4 g2@4 b2@4 c3@4 c2@4 c2@4 c2@4 g2@4 b2@4 c3@3",
  M: "[~ c2@96 e2@4 e2@4 e2@4 b2@4 d3@4 e3@4 e2@4 e2@4 e2@4 b2@4 d3@4 e3@3]/3",
  N: "~ g2@4 g2@4 g2@4 b2@4 d3@4 e3@4 g2@4 g2@4 g2@4 b2@4 d3@4 e3@3",
  O: "~ a2@4 a2@4 a2@4 e3@4 g3@4 a3@4 a2@4 a2@4 a2@4 e3@4 g3@4 a3@3",
  P: "~ e2@4 e2@4 e2@4 b2@4 d3@4 e3@4 e2@4 e2@4 e2@4 b2@4 c3@4 d3@3",
  Q: "~ g2@4 g2@4 g2@4 b2@4 d3@4 e3@4 g2@4 g2@4 g2@4 b2@4 c3@4 d3@3",
  R: "~ f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@3",
  S: "[~ d2@96 e2@4 e2@4 e2@4 b2@4 d3@4 e3@4 e2@4 e2@4 e2@4 b2@4 d3@4 e3@3]/3",
  T: "~ e2@4 e2@4 e2@4 b2@4 d3@4 e3@4 e2@4 e2@3 e2@4 b2@4 d3@4 e3@4", U: "d2!3 b2 d3 e3 d2!3 b2 d3 e3",
  V: "e2!3 b2 d3 e3 d2!3 b2 d3 e3", W: "e2!3 b2 d3 e3 e2!3 b2 d3 e3", X: "a2!12", Y: "a1!3 e2 g2 a2 a1!3 e2 g2 a2",
  Z: "b1!3 f#2 a2 b2 b1!3 f#2 a2 b2", AA: "c2!3 g2 b2 c3 c2!3 g2 b2 c3", AB: "c2/2", AC: "e2!3 b2 d3 e3 e2!3 b2 c3 d3",
  AD: "g2!3 b2 d3 e3 g2!3 b2 c3 d3", AE: "a2!3 e3 g3 a3 a2!3 e3 g3 a3", AF: "g2!3 b2 d3 e3 g2!3 b2 d3 e3",
})).s("gm_electric_bass_finger").gain(0.36).pan(0.2)

// other · acoustic guitar steel · "Guitar2"
const acoustic_guitar_steel = note(`<
  ~ A@8 B@2 ~@41 C D E F G D E F G D E F G D E F H ~@58 I J K L M J N O P J Q R S J K L T ~@14
>`.pickRestart({
  A: "[~@23 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 e2@2 e2@2 e2@2 ~@2 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 e2@2 e2@2 e2@2 ~@2 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 e2@2 e2@2 e2@2 ~@2 e2]/8",
  B: "[~ e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 e2@2 e2@2 e2@2 ~@2 e2@2 e2@2 ~@2 e2@2 ~@4 e2@2 e2@2 ~@2 e2@2 ~@5]/2", C: "~@15 e2",
  D: "~ e2@4 ~@4 e2@4 ~@8 e2@4 e2@4 ~@4 e2@4 ~@8 g2@3", E: "~ g2@4 ~@4 g2@4 ~@8 g2@4 g2@4 ~@4 g2@4 ~@4 a2@4 a2@3",
  F: "~ a2@4 ~@4 a2@4 ~@8 a2@4 a2@4 ~@4 a2@4 ~@8 e2@3", G: "~ e2@4 ~@4 e2@4 ~@8 e2@4 e2@4 ~@4 e2@4 ~@8 e2@3",
  H: "~ e2@4 ~@4 e2@4 ~@8 e2@4 e2@4 ~@4 e2@4 ~@11", I: "~@11 e2", J: "e2 ~ e2 ~@2 e2!2 ~ e2 ~@2 g2",
  K: "g2 ~ g2 ~@2 g2!2 ~ g2 ~ a2!2", L: "a2 ~ a2 ~@2 a2!2 ~ a2 ~@2 e2", M: "e2 ~ e2 ~@2 e2!2 ~ e2 ~@2 e2",
  N: "g2@2 ~@2 g2@2 ~@2 b5@2 [g2,f#5]@2 [g2,d5]@3 ~ g2@2 ~@2 a2@2 a2@2", O: "a2 ~ a2 ~ b3 [a2,c4] a2 ~ [a2,b3] c4 ~ e2",
  P: "e2 ~ e2 ~@2 e2!2 ~ e2 ~@2 e2, g3 ~", Q: "g2 ~ [g2,g3] ~@2 g2!2 ~ g2 ~ a2!2, ~ a3 g3 d3",
  R: "a2 ~ a2 ~@2 a2!2 ~ a2 b3 c4 e2", S: "e2 ~ e2 ~@2 e2!2 ~ e2 ~@2 e2, b3 a3 g3 ~",
  T: "e2 ~ [e2,b4,e5] ~@2 e2 [e2,b4,e5] ~ e2 [b4,e5] ~@2", // E5
})).s("gm_acoustic_guitar_steel").gain(0.5).pan(0.7)

// chords · lead 2 sawtooth · "Synth String"
const lead_2_sawtooth = note(`<
  ~@18 A B C@3 B D@2 E@3 F G F H F I J@2 K L M@2 N O P@2 Q R S T Q R U@3 ~@26 N O N V N W X@2 K L Y@2 N O Z@2 Q R S T Q
  R AA@2 N O AB V N AC AD@2 AE AF AG@2 AH AI AD@2 AJ AK AL AM AJ AK AN@2 ~@30
>`.pickRestart({
  A: "~ [g4,c5,d5]@6 [g4,c5,d5]@6 [g4,c5,d5]@6 [g4,c5,d5]@4 ~", B: "~ [f#4,c5,d5]@4 ~@2 [f#4,b4]@4 [f#4,a4]@12 ~",
  C: "[~ [c4,d4,g4,a4]@6 ~@4 [c4,d4,g4,a4]@8 ~@4 [c4,f#4]@26 [g4,c5,d5]@6 [g4,c5,d5]@6 [g4,c5,d5]@6 [g4,c5,d5]@4 ~, ~@23 a4@6 ~@43]/3", // Csus2 Cdim Gsus4
  D: "[~ [c4,f4,a4]@6 ~@4 [c4,f4,a4]@8 ~@4 [c4,f4,a4]@8 ~@4 [f4,a4,c5]@8 ~@5]/2", // F
  E: "[~@2 [c4,f4,a4]@12 ~@8 [c4,f4,a4]@16 ~@8 [d4,f#4,a4]@71 ~@27]/3", F: "~ [b4,e5,g5]@6 ~@6 [g4,b4,e5]@6 ~@5",
  G: "~ [f#4,a4,e5]@4 [f#4,a4,e5]@6 [f#4,a4,e5]@8 ~@5", H: "~ [d4,f#4,a4]@6 ~@6 [d4,f#4,a4]@6 ~@5",
  I: "~ [f#4,a4,e5]@4 [f#4,a4,e5]@6 [f#4,a4,e5]@6 ~@7", // F#m7
  J: "[~@2 [b4,e5,g5]@12 ~@12 [f#4,a4,e5]@12 ~@8 [g4,b4,e5]@12 ~@11 [g4,b4,e5]@12 ~@15]/2", // Em F#m7 Em
  K: "~ [g4,c5,d5]@12 [g4,c5,d5]@12 [g4,c5,d5]@12 [g4,c5,d5]@8 ~@3", L: "~ [f#4,d5]@8 ~@4 [f#4,b4]@8 [f#4,a4]@16 ~@11",
  M: "[~ [c4,d4,g4,a4]@12 ~@8 [c4,d4,g4,a4]@16 ~@8 [c4,f#4,a4]@8 [f#4,c5,d5]@8 [f#4,c5,d5]@12 ~@4 [f#4,c5,d5]@4 ~@4 [f#4,c5,d5]@8 ~@3]/2", // Csus2 F#dim D7
  N: "~ [b4,e5,g5]@12 ~@12 [g4,b4,e5]@12 ~@11", O: "~ [f#4,a4,e5]@8 [f#4,a4,e5]@12 [f#4,a4,e5]@16 ~@11",
  P: "[~ [b4,e5,g5]@12 ~@12 [f#4,a4,e5]@12 ~@8 [g4,b4,e5]@12 ~@16 [g4,b4,e5]@8 [g4,b4,e5]@15]/2", // Em F#m7 Em
  Q: "~ [c4,e4,a4]@8 [c4,e4,a4]@16 [c4,e4,a4]@8 [c4,e4,a4]@15", // Am
  R: "~ [d4,f#4,b4]@8 [d4,f#4,b4]@16 [d4,f#4,b4]@8 [d4,f#4,b4]@15", // Bm
  S: "~ [g4,b4,e5]@8 [g4,b4,e5]@16 [g4,b4,e5]@8 [g4,b4,e5]@15", // Em
  T: "~ d5@4 g4@4 d5@4 c5@4 g4@4 c5@4 b4@4 g4@4 b4@4 g4@4 e4@4 g4@3", U: "[~ [e4,g4,c5]@96 ~@47]/3",
  V: "~ [d4,f#4,a4]@12 ~@12 [d4,f#4,a4]@12 ~@11", W: "~ [f#4,a4,e5]@8 [f#4,a4,e5]@12 [f#4,a4,e5]@12 ~@15",
  X: "[~ [b4,e5,g5]@12 ~@12 [f#4,a4,e5]@12 ~@8 [g4,b4,e5]@12 ~@39]/2", // Em F#m7 Em
  Y: "[~ [c4,d4,g4,a4]@12 ~@8 [c4,d4,g4,a4]@16 ~@8 [c4,f#4,a4]@8 [f#4,c5,d5]@8 [f#4,c5,d5]@12 ~@4 [f#4,c5,d5]@4 d5@4 [f#4,c5,d5]@8 b4@3]/2", // Csus2 F#dim D7
  Z: "[~ [b4,e5,g5]@12 ~@12 [f#4,a4,e5]@12 ~@8 [g4,b4,e5]@8 ~@43]/2", AA: "[~ [e4,g4,c5]@95]/2",
  AB: "~ [e5,g5]@12 ~@12 [g4,b4,e5]@12 ~@11, ~ b4@8 ~@39", AC: "[f#4,a4,e5]@2 [f#4,a4,e5]@3 [f#4,a4,e5]@3 ~@4",
  AD: "[[b4,e5,g5]@3 ~@3 [f#4,a4,e5]@3 ~@2 [g4,b4,e5]@3 ~@10]/2", // Em F#m7 Em
  AE: "[g4,c5,d5]@3 [g4,c5,d5]@3 [g4,c5,d5]@3 [g4,c5,d5]@2 ~", AF: "[f#4,d5]@2 ~ [f#4,b4]@2 [f#4,a4]@4 ~@3",
  AG: "[[c4,d4,g4,a4]@3 ~@2 [c4,d4,g4,a4]@4 ~@2 [c4,f#4,a4]@2 [f#4,c5,d5]@2 [f#4,c5,d5]@3 ~ [f#4,c5,d5] ~ [f#4,c5,d5]@2 ~]/2", // Csus2 F#dim D7
  AH: "[b4,e5,g5] ~ [g4,b4,e5] ~", AI: "[f#4,a4,e5]@2 [f#4,a4,e5]@3 [f#4,a4,e5]@4 ~@3",
  AJ: "[c4,e4,a4] [c4,e4,a4]@2 [c4,e4,a4] [c4,e4,a4]@2", AK: "[d4,f#4,b4] [d4,f#4,b4]@2 [d4,f#4,b4] [d4,f#4,b4]@2",
  AL: "[g4,b4,e5] [g4,b4,e5]@2 [g4,b4,e5] [g4,b4,e5]@2", AM: "d5 g4 d5 c5 g4 c5 b4 g4 b4 g4 e4 g4", AN: "[e4,g4,c5]/2",
})).s("gm_lead_2_sawtooth").gain(0.24).pan(0.6)

// chords · percussive organ · "Organ"
const percussive_organ = note(`<
  ~@61 A B C D@3 C A E F G@3 F H@2 I@3 J K J L J K M@3 N O P J K Q@3 ~@7 J K J L J R S@2 T U V W X R S@2 ~@38
>`.pickRestart({
  A: "~ [g3,b3,e4]@47", B: "~ g4@12 a4@8 [g4,b4]@16 a4@8 g4@3, ~ [b3,d4]@20 d4@27", C: "~ [c4,e4,a4]@47",
  D: "[~ [g3,b3,e4]@96 g4@12 a4@8 [g4,b4]@16 a4@8 g4@3, ~@97 d4@47, ~@97 b3@20 ~@27]/3", E: "~ [g4,c5,d5]@47",
  F: "~ [c5,d5]@8 c5@4 b4@8 a4@27, ~ f#4@47", G: "[~ [c4,d4,f#4,a4]@96 [g4,c5,d5]@47]/3",
  H: "[~ [c4,f4,a4]@68 [f4,a4,c5]@27]/2", I: "[~ [c4,f4,a4]@44 [d4,f#4,a4]@75 ~@24]/3",
  J: "~ [b4,e5,g5]@24 [g4,b4,e5]@23", K: "~ [f#4,a4,e5]@47", L: "~ [d4,f#4,a4]@47",
  M: "[~ [b4,e5,g5]@24 [f#4,a4,e5]@20 [g4,b4,e5]@52 [g4,c5,d5]@47]/3", N: "~ d5@8 c5@4 b4@8 a4@27, ~ f#4@47",
  O: "~ [c4,d4,g4,a4]@47", P: "~ [f#4,c5,d5]@47", Q: "[~ [b4,e5,g5]@24 [f#4,a4,e5]@20 [g4,b4,e5]@52 ~@47]/3",
  R: "[f#4,a4,e5]", S: "[[b4,e5,g5]@6 [f#4,a4,e5]@5 [g4,b4,e5]@13]/2", T: "[g4,c5,d5]", U: "d5@2 c5 b4@2 a4@7, f#4",
  V: "[c4,d4,g4,a4]", W: "[f#4,c5,d5]", X: "[b4,e5,g5] [g4,e5], ~@6 b4@5 ~",
})).s("gm_percussive_organ").gain(0.2).pan(0.4)

// other · melodic tom · "Synth Drum 2"
const melodic_tom = note("<~@27 A@3 ~@48 B C ~@78>".pickRestart({
  A: "[~ c3@2 ~@2 d#3@2 ~@2 d#3@2 c3@2 c3@2 ~@2 d#3@2 ~@2 c3@2 b2@2 d3@2 d#3@2 d3@2 c3@2 c3@2 c3@2 d#3@2 d#3@2 d#3@2 f2@2 e2@2 d#2@2 ~@23]/3",
  B: "~ c3@4 ~@4 d#3@4 ~@4 d#3@4 c3@4 c3@4 ~@4 d#3@4 ~@4 c3@4 b2@3",
  C: "~ d3@4 d#3@4 d3@4 c3@4 c3@4 c3@4 d#3@4 d#3@4 d#3@4 f2@4 e2@4 d#2@3",
})).s("gm_melodic_tom").gain(0.64).pan(0)

// other · distortion guitar · "Guitar3"
const distortion_guitar = note(`<
  ~ A@8 B@8 C@8 D@2 ~@25 E F G H I F G H I F G H I F G H J K@5 L M@2 N ~@25 O P Q R S T U V W ~@15 X Y Z AA AB Y Z AA AB
  Y Z AA AB Y Z AA AC ~@14
>`.pickRestart({
  A: "[~@23 e2@2 e2@10 ~@12 e2@2 e2@10 ~@12 e2@2 e2@10 ~@12 e2@2 e2@10 ~@12 e2@2 e2@10 ~@12 e2@2 e2@10 ~@12 e2@2 e2@10 ~@12 e2]/8",
  B: "[~ e2@10 ~@12 e2@2 e2@10 ~@12 g2@2 g2@10 ~@12 a2@2 a2@10 ~@12 e2@2 e2@10 ~@12 e2@2 e2@10 ~@12 g2@2 g2@10 ~@12 a2@2 a2@10 ~@12 e2]/8",
  C: "[~ e2@10 ~@12 a2@2 a2@10 ~@12 a2@2 a2@10 ~@12 a2@2 a2@10 ~@12 a2@2 a2@10 ~@12 a2@2 a2@10 ~@12 a2@2 a2@10 ~@12 f2@2 f2@10 f2@2 f2@10 f2]/8",
  D: "[~ f2@10 f2@2 f2@10 f2@2 f2@10 f2@2 f2@10 ~]/2", E: "~@15 e2", F: "~ e2@20 ~@24 g2@3", G: "~ g2@20 ~@24 a2@3",
  H: "~ a2@20 ~@24 e2@3", I: "~ e2@20 ~@24 e2@3", J: "~ e2@20 ~@24 a2@3", K: "~ a2@20 ~@24 a2@3",
  L: "~ a2@20 ~@24 f2@3", M: "~ f2@20 f2@4 f2@20 f2@3", N: "~ f2@20 f2@4 f2@20 ~@3", O: "~@15 g4",
  P: "~ b4@16 a4@4 g4@4 b4@12 ~@4 a4@4 b4@3", Q: "~ d5@8 d5@8 d5@4 b4@4 d5@16 ~@4 b4@3",
  R: "~ g5@6 ~@2 f#5@6 ~@2 a4@6 ~@2 g4@6 ~@2 e5@6 ~@2 d5@6 ~", S: "~ f#4@36 ~@8 g5@3",
  T: "~ b5@16 a5@4 g5@4 a5@7 b5@8 a5@4 b5@4", U: "d6@2 d6@2 d6 b5 d6@3 ~@2 d5", V: "g5@2 g5 f#5@2 f#5 e5@2 e5 d5@2 d5",
  W: "e5", X: "~@11 e2", Y: "e2@5 ~@6 g2", Z: "g2@5 ~@6 a2", AA: "a2@5 ~@6 e2", AB: "e2@5 ~@6 e2", AC: "e2@5 ~@7",
})).s("gm_distortion_guitar").gain(0.2).pan(0.7)

// other · koto · "FX2"
const koto = note("<~@13 [~@15 e5@2 b4@2 d5@4 ~] ~@144>").s("gm_koto").gain(0.37).pan(0.1)

// other · epiano2 · "Piano"
const epiano2 = note("<~@48 A B ~@49 A B ~@22 C D ~@33>".pickRestart({
  A: "~ d6@4 g5@4 d6@4 c6@4 g5@4 c6@4 b5@4 g5@4 b5@4 g5@4 e5@4 g5@3", B: "~ a5@8 ~@39",
  C: "d6 g5 d6 c6 g5 c6 b5 g5 b5 g5 e5 g5", D: "a5 ~@5",
})).s("gm_epiano2").gain(0.31).pan(0.2)

// other · lead 2 sawtooth · "FX3"
const lead_2_sawtooth_2 = note("<~@51 A B ~@49 A B ~@22 C D ~@30>".pickRestart({
  A: "~@9 d4@4 e4@4 g4@4 c5@4 d5@4 e5@4 g5@4 c6@4 d6@4 e6@3",
  B: "~ g6@4 c7@4 g6@4 e6@4 d6@4 c6@4 g5@4 e5@4 d5@4 c5@4 g4@4 e4@3", C: "~@2 d4 e4 g4 c5 d5 e5 g5 c6 d6 e6",
  D: "g6 c7 g6 e6 d6 c6 g5 e5 d5 c5 g4 e4",
})).s("gm_lead_2_sawtooth").gain(0.35).pan(0.7)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@132 A@4 B C D E B C D E F G H I J K L M N ~@5>".pickRestart({
  A: "[b3@2 a3 e3, g3]/4", B: "g3!4 a#3 b3 a#3 a3 g3!2 a3 b3, b3@5 ~@7", C: "a#3 a3 g3!2 a3 a#3 d4 b3 a3 g3 a3 b3",
  D: "~ b3 c4 e4 c4 b3 a3 b3 c4 e4 c4 b3, a3 ~", E: "g3 a3 b3 e4 b3 a3 g3 a3 b3 e4 b3 a3, e3",
  F: "a3 c4 d4 e4 d4 c4 b3 c4 d4 e4 d4 c4", G: "g3 c4 d4 e4 g4 c5 d5 e5 d5 c5 g4 e4",
  H: "b3 g3 c4 d4 e4 g4 d5 e5 g5 c6 e6 c7", I: "g6 e6 c6 g5 e5 d5 g4 e4 b3 c4 e4 g4",
  J: "b4 d5 e5 d5 b4 g4 e4 c4 g3 c4 e4 g4", K: "b4 c5 g4 e4 d4 c4 g3 c4 d4 e4 g4 a#4",
  L: "c5 g4 e4 c4 g#3 g3 c4 e4 g4 e4 d4 c4", M: "a3 g3 a3 c4 d4 e4 g4 e4 d4 c4 a3 g3", N: "g3 ~",
})).s("gm_string_ensemble_1").gain(0.14)

// chords · string ensemble 1 · "Strings" · soft notes
const string_ensemble_1_soft = note("<~@152 A@6>".pickRestart({
  A: "[~@12 g3 a3 b3 a#3 a3 g3!2 a3 b3 a#3 a3 g3 g3 a3 b3 a#3 a3 g3!2 a3 b3 a#3 a3 g3 g3 a3 b3 a#3 a3 g3!2 a3 b3 a#3 a3 g3 g3 a3 b3 a#3 a3 g3!2 a3 b3 a#3 a3 g3 g3 a3 b3 a#3 a3 g3!2 a3 b3 a#3 a3 g3, ~ [b2,f#4]@11]/6", // B5
})).s("gm_string_ensemble_1").gain(0.09)

// drums · kick
const kick = s("bd").struct(`<
  A@27 ~@2 A@7 B@3 C@2 D C@9 E ~ C@25 ~@2 C@22 E ~ C@2 F G H F I J F K@2 L I K@2 M K@6 N O P Q K@13 L K@14
>`.pickRestart({
  A: "~ x ~@11 x ~@9 x", B: "~@2 x ~@22 x ~@19 x ~@2", C: "~ x ~@23 x ~@19 x ~@2", D: "~ x ~@24 x ~@18 x ~@2",
  E: "~ x ~@46", F: "~ x ~@23 x ~@18 x ~@3", G: "~ x ~@22 x ~@20 x ~@2", H: "x ~@24 x ~@19 x ~@2",
  I: "~ x ~@22 x ~@19 x ~@3", J: "~ x ~@22 x!2 ~@2 x!2 ~@2 x!2 ~@3 x ~@3 x ~@2 x!2 ~@2", K: "x ~@5 x ~@4 x",
  L: "x ~@5 x ~@2 x!3", M: "x ~@5 x ~@3 x!2", N: "x", O: "x!12", P: "x ~@2 x ~@2 x ~@2 x ~ x", Q: "x ~@2 x ~@2 x ~@4 x",
})).gain(0.6)

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

// drums · hihat
const hihat = s("hh").struct(`<
  A@17 B A@9 ~@2 A@3 C A D E F G H I J K L M@8 N ~ M@11 O M@3 P M@9 ~@2 M@15 Q M@6 N ~ R S T U V W X Y Z AA AB AC AA
  AD@9 AE ~ AD@3 AF AD@3 AF AD@3 AF AD@3 AF AD@14
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~ x ~ x",
  C: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~",
  D: "~ x ~@4 x ~@2 x ~@4 x ~@3 x ~@3 x ~@2 x ~@4 x ~@3 x ~@2 x ~@4 x ~@3 x ~",
  E: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@4 x ~@3 x ~",
  F: "~@2 x ~@2 x ~@4 x ~@3 x ~@3 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@3 x ~@3 x ~@2",
  G: "~ x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
  H: "~@2 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@2 x ~@3 x ~@2",
  I: "~ x ~@3 x ~@4 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~",
  J: "~@2 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
  K: "~ x ~@3 x ~@4 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
  L: "~ x ~@3 x ~@3 x ~@4 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
// … 54 more lines

More by The Moody Blues