Strudelify
Lessons In Love cover art

1998

Lessons In Love

Level 42

KeyE minorTempo116 bpm
0:00/0:00
// Lessons In Love — Level 42
// 116 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 "CLAVINET" clavinet (copy of ch 6 "CLAVINET" clavinet, 0.25 beats late)
// note: Full arrangement: all 118 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(116/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 · clavinet
const clavinet = note(`<
  ~@6 A B C D E F@2 G E H@2 I J K L M N O P Q R@3 ~@3 S T@3 U@4 V@3 W X Y Z@2 AA AB AA AC AA AB AA AB AA AB AA AB AA AB
  AD ~@4 AE AF AG AH AE AF AG AH AE AF AG AH AE AF AI AH AJ AK AL AM AN AK AO AA AB AA AC AA AB AA AB AA AB AA AB AA AB
  AD AP AA AB AA AC AA AB AA ~@5
>`.pickRestart({
  A: "[b2,d3,g3]@2 g2 [b2,d3,g3] ~ g2 [b2,d3,g3] [d3,g3] ~ g2 [b2,d3,g3] ~ g2 [b2,d3] ~ [g2,b2], ~@13 g3@2 ~", // G G5 G Bm G
  B: "[b2,d#3,f#3]@2 ~ [b2,d#3,f#3] ~@2 [b2,d#3,f#3] [b2,f#3] ~ f#2 [b2,d#3,f#3] ~ f#2 [b2,d#3] ~ b2, ~@13 f#3@2 ~", // B B5 B
  C: "[b2,e3,g3]@2 e2 [b2,e3] ~@2 [b2,e3,g3] [b2,g3] ~ e2 [b2,e3,g3] ~ e2 [b2,g3] ~ [e2,b2], ~@13 e3@2 ~", // Em E5 Em E5
  D: "[c3,e3,g3]@2 ~ [c3,e3] ~@2 [c3,e3,g3] c3 ~ c2 [c3,e3,g3] ~ c2 [c3,e3,g3] ~ c2", // C
  E: "[b2,d3,g3]@2 ~ [b2,d3,g3] ~@2 [b2,d3,g3] d3 ~ g2 [b2,d3,g3] ~ g2 [b2,d3,g3] ~ b2", // G
  F: "[[b2,d#3,f#3]@2 ~ [b2,d#3,f#3] ~@2 [b2,d#3,f#3]!2 ~ f#2 [b2,d#3,f#3] ~ f#2 [b2,d#3] ~ f#2 [e3,g3]@2 e2 [b2,e3,g3] ~@2 [b2,e3,g3] b2 ~ e2 [b2,e3,g3] ~ e2 [b2,e3]@2 e2, ~@13 f#3@2 b2@3 ~@14, ~@16 d#3 ~@12 g3 ~@2]/2", // B Em E5
  G: "[c3,e3,g3]@2 ~ [c3,e3,g3] ~@2 [c3,e3,g3] c3 ~ c2 [c3,e3,g3] ~ c2 [c3,e3,g3]@2 c2", // C
  H: "[[b2,d#3,f#3]@2 ~ [b2,d#3,f#3] ~@2 [b2,d#3,f#3]!2 ~ f#2 [b2,d#3,f#3] ~ f#2 [b2,d#3] ~ f#2 [e3,g3]@2 e2 [b2,e3,g3] ~@2 [b2,e3,g3]!2 ~ e2 [b2,e3,g3] ~ e2 [b2,e3,g3] ~ [e2,b2], d3 ~@12 f#3@2 b2@3 ~@14, ~@16 d#3 ~@15]/2", // B Em E5
  I: "[c3,e3,g3]@2 ~ [c3,e3,g3] ~@2 [c3,e3,g3]!2 ~ c2 [c3,e3,g3] ~ c2 [c3,e3]@2 c2, ~@13 g3 ~@2", // C
  J: "[b2,d3,g3]@2 ~ [b2,d3,g3] ~@2 [b2,d3,g3]!2 ~ g2 [b2,d3,g3] ~ g2 [b2,d3,g3] ~ b2", // G
  K: "[b2,d#3,f#3]@2 ~ [b2,d#3,f#3] ~@2 [b2,d#3,f#3]!2 ~ f#2 [b2,d#3,f#3] ~ f#2 [d#3,f#3]@2 [f#2,b2], ~@13 b2 ~@2", // B D#m B5
  L: "[b2,e3,g3]@2 e2 [b2,e3,g3] ~@2 [b2,e3,g3] [b2,e3] ~ e2 [b2,e3,g3] ~ e2 [b2,g3] ~ b2, d#3 ~@12 e3@2 ~", // Em E5 Em
  M: "[c3,e3,g3]@2 ~ [c3,e3,g3] ~@2 [c3,e3,g3] c3 ~ c2 [c3,e3,g3] ~@2 [c3,e3]@2 c2, ~@13 g3 ~@2", // C
  N: "[b2,d3,g3]@2 ~ [b2,d3,g3] ~@2 [b2,d3,g3]!2 ~ g2 [b2,d3,g3] ~@2 [b2,g3] ~ [g2,b2], ~@13 d3@2 ~", // G Em G
  O: "[b2,d#3,f#3]@2 ~ [b2,d#3,f#3] ~@2 [b2,d#3,f#3] ~@3 [b2,d#3,f#3] ~ f#2 [d#3,f#3]@2 [f#2,b2], ~@13 b2 ~@2", // B D#m B5
  P: "[b2,e3,g3]@2 e2 [b2,e3,g3] ~@2 [b2,e3,g3]!2 e2 ~ [c3,e3,a3] ~@2 [d3,f#3]@2 ~, d#3 ~@12 b2 ~@2", // Em Am D
  Q: "[e3,g3]@2 g2 [c3,e3,g3] ~@2 [c3,e3,g3] c3 [e3,g3] c3 e3 ~ [c3,e3,g3]@2 g2 c3, c3 ~@11 g2 ~@3", // Em C Em C
  R: "[[c3,e3,g3]@2 a2 [c3,e3,g3] ~ a2 [c3,e3,g3]!2 ~ [c3,e3] ~ a2 [c3,e3,g3]@2 a2 ~ [d#3,f#3]@2 f#2 [b2,d#3,f#3] ~ f#2 [b2,d#3,f#3]!2 f#2 ~ [b2,d#3,f#3] ~ f#2 [b2,d#3] f#2 ~ [e3,g3]@2 e2 [b2,e3,g3] ~@2 [b2,e3,g3]!2 e2 ~ [b2,e3,g3] ~ e2 [b2,e3,g3] e2 ~, ~@15 b2@3 ~@11 f#3@2 b2@3 ~@14, ~@32 d#3 ~@15]/3", // C D#m B Em
  S: "e3@6 d3@7 ~@3",
  T: "[[d3,g3] ~ g2 ~@3 [b2,d3,g3]!2 g2 [b2,d3,g3] ~ g2 [d3,g3]@2 g2 ~ [d#3,f#3]@2 f#2 [b2,d#3,f#3] ~@2 [d#3,f#3]!2 f#2 ~ [b2,d#3,f#3] ~ f#2 [b2,d#3] f#2 ~ [e3,g3]@2 e2 [b2,e3,g3] ~@2 [b2,e3,g3] [b2,e3] e2 ~ [b2,e3,g3] ~ e2 [b2,e3,g3] e2 b2, b2@2 ~@10 b2 ~@2 b2@3 ~@4 b2@2 ~@5 f#3@2 b2@3 ~@14, ~@32 d#3 ~@15]/3", // G5 G G5 D#m B D#m B Em …
  U: "[[c3,e3,g3]@2 c2 [c3,e3] c2 ~ [c3,e3,g3]!2 c2@2 [c3,e3,g3] ~ c2 [c3,e3,g3] c2 ~ [d3,g3]@2 ~ [b2,d3,g3] ~@2 [b2,d3,g3]!2 g2 ~ [b2,d3,g3] ~ g2 [b2,d3,g3] g2 ~ [d#3,f#3]@2 f#2 [b2,d#3,f#3] ~@2 [b2,d#3,f#3]!2 f#2 ~ [b2,d#3,f#3] ~ f#2 [b2,d#3] f#2 ~ [e3,g3]@2 e2 [b2,e3,g3] ~ e2 [b2,e3,g3] [b2,e3] e2 ~ [b2,e3,g3] ~ e2 [b2,e3,g3] e2 b2, ~@15 b2@3 ~@13 b2@3 ~@11 f#3@2 b2@3 ~@14, ~@48 d#3 ~@15]/4", // C G5 G D#m B Em E5 Em
  V: "[[c3,e3,g3]@2 ~ [c3,e3,g3] ~@2 [c3,e3,g3]!2 c2 ~ [c3,e3,g3] ~ c2 [c3,e3,g3] c2 ~ [d3,g3]@2 g2 [b2,d3,g3] ~@2 [b2,d3,g3]!2 ~@2 [b2,d3,g3] ~ g2 [b2,d3,g3] g2 ~ [d#3,f#3]@2 ~ [b2,d#3,f#3] ~@2 [b2,d#3,f#3]!2 f#2 ~ [b2,d#3,f#3] ~ f#2 [b2,d#3,f#3] f#2 b2, ~@15 b2@3 ~@13 b2@3 ~@14]/3", // C G5 G D#m B
  W: "[e3,g3]@2 e2 [b2,e3,g3] ~@2 [b2,e3,g3]!2 e2 ~ [b2,e3,g3] ~ e2 [b2,e3,g3] e2 b2, [b2,d#3] ~@15", // Em B
  X: "[c3,e3]@2 c2 [c3,e3,g3] c2 ~ [c3,e3,g3]!2 c2 ~ [c3,e3,g3] ~ c2 [c3,e3,g3] c2 b2, g3 ~@15", // C
  Y: "[b2,d3,g3]@2 g2 [b2,d3,g3] ~@2 [b2,d3,g3]!2 g2 ~ [b2,d3,g3] ~ g2 [b2,d3,g3] g2 b2", // G
  Z: "[[d#3,f#3]@2 f#2 [b2,d#3,f#3] ~@2 [b2,d#3,f#3]!2 f#2 ~ [b2,d#3,f#3] ~ f#2 [b2,d#3,f#3] f#2 ~ [e3,g3]@2 e2 [b2,e3,g3] ~@2 [b2,e3,g3]!2 e2 ~@7, ~@15 b2@2 ~@15, ~@16 d#3 ~@15]/2", // D#m B Em
  AA: "~ e3 g3 e3 a3 e3 b3!2 a3 g3 e3 g3@3 a3 ~", AB: "~ e3 g3 e3 a3 e3 g3 e3 b3 a3 g3 e3@3 g3 ~",
  AC: "~ e3 g3 e3 a3 e3 g3 e3 b3 a3 g3 e3@2 ~ g3 ~",
  AD: "~ e3 g3 e3 a3 e3 b3 [g3,a3] e3 [b2,d3] a2 [e2,g2] d2 [a1,b1] g1@2", // Gsus2 Bm Em Asus2
  AE: "[d3,g3,b3] g2!2 [d3,g3,b3] g2!2 [d3,g3,b3]!2 g2@2 [d3,g3,b3] g2!2 [d3,g3,b3] g2!2", // G
  AF: "[c3,f3,a3] f2!2 [c3,f3,a3] f2!2 [c3,f3,a3]!2 f2@2 [c3,f3,a3] f2!2 [c3,f3,a3] f2!2", // F
  AG: "[c3,e3,g3] c2!2 [c3,e3,g3] c2!2 [c3,e3,g3]!2 c2@2 [c3,e3,g3] c2!2 [c3,e3,g3] c2!2", // C
  AH: "[d3,f#3,a3] d2!2 [d3,f#3,a3] d2!2 [d3,f#3,a3]!2 d2@2 [d3,f#3,a3] d2!2 [d3,f#3,a3] d2!2", // D
  AI: "[c3,e3,g3] c2!2 [c3,e3,g3] c2!2 [c3,e3,g3]!2 c2@2 [c3,e3,g3] c2!2 [c3,e3,g3] c2@2", // C
  AJ: "[b2,d3,g3] g2!2 [b2,d3,g3] g2!2 [d3,g3]!2 g2@2 [d3,g3,b3] g2!2 [g3,b3] g2!2, ~@6 b3@2 ~@5 d3@2 ~", // G G5 G
  AK: "[d#3,f#3,b3] b2!2 [d#3,f#3,b3] b2!2 [d#3,f#3,b3]!2 b2@2 [d#3,f#3,b3] b2!2 [d#3,f#3,b3] b2!2", // B
  AL: "[e3,g3,b3] e2!2 [e3,g3,b3] e2!2 [e3,g3,b3]!2 e2@2 [e3,g3,b3] e2!2 [e3,g3,b3] e2!2", // Em
  AM: "[e3,g3,c4] c3!2 [e3,g3,c4] c3!2 [e3,g3,c4] [g3,c4] c3@2 [e3,g3,c4] c3!2 [e3,g3,c4] c3!2", // C C5 C
  AN: "[d3,g3,b3] g2!2 [d3,g3,b3] g2!2 [d3,g3,b3]!2 g2@2 [d3,g3,b3] g2!2 [d3,g3,b3] g2@2", // G
  AO: "[e3,g3,b3] e2@2 [e3,g3,b3] e2!2 [e3,g3]!2 e2 ~@7, ~@3 b3 ~@4", AP: "e3@2 e2 [b2,e3,g3] ~@2 [b2,e3,g3]!2 e2 ~@7",
})).s("gm_clavinet").gain(0.25).pan(0.7)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@4 A@2 B C D E B C D E B C D E B C D E B C F E G C D E G C H B C D E B C D E B C D E B C F E G C D E G C D E G C D E
  G C I J K L B M E N B M E N B M E N B M E N B C D E B C F E G C D E G C D E G C D E G C D E G C D E G C I J K L O
>`.pickRestart({
  A: "g1 ~ g1!3 ~ g1!3 ~ g1!3 ~ g1!2", B: "g1 ~ g1!2 b1 ~ b1!2 d2 ~ d2!2 g2 ~ g2!2",
  C: "b1 ~ b1!2 d#2 ~ d#2!2 f#2 ~ f#2!2 b2 ~ b2!2", D: "e1 ~ e1!2 g1 ~ g1!2 b1 ~ b1!2 e2 ~ e2!2",
  E: "c2 ~ c2!2 e2 ~ e2!2 g2 ~ g2!2 c3 ~ c3!2", F: "e1 ~ e1!2 g1 ~ g1!2 b1 ~ a1@3 b1@3",
  G: "a1 ~ a1!2 c2 ~ c2!2 e2 ~ e2!2 a2 ~ a2!2", H: "e1@2 e1!2 e1@2 d2!2 d2@2 ~@2 g3@4",
  I: "e2 ~ e2!3 ~ d2!2 d2@2 d2!3 ~ c2!2", J: "c2@2 c2!2 e2 ~ e2!2 g2 ~ g2!2 e2@2 c2@2",
  K: "e2 ~ e2!2 e2@2 d2!3 ~ d2!2 d2@2 a1!2", L: "a1@2 a1!2 a1@2 b1!2 c2 ~ b1 ~ a1 ~ g1 ~",
  M: "f1 ~ f1!2 a1 ~ a1!2 c2 ~ c2!2 f2 ~ f2!2", N: "d2 ~ d2!2 f#2 ~ f#2!2 a2 ~ a2!2 d3 ~ d3!2", O: "e1 ~ e1!2 ~@12",
})).s("gm_electric_bass_finger").gain(0.49)

// chords · pad poly · "POLYSYNTH"
const pad_poly = note(`<
  A@2 B@2 C@2 ~@18 D E F G H E I J K ~@14 D E F G H L I J D M F G N E I J O@2 P@2 ~@8 Q R@2 S@2 R@2 T ~@6 D E F G H L I
  J D M F G N E I J D E F G H L I J O@2 P@2 U
>`.pickRestart({
  A: "[[b3,e4,g#4]@6 [a3,d4]@8 g3@17 ~, ~@3 a4@13, ~@7 c4@7 ~@2]/2", // E D5
  B: "[[b3,e4,g#4]@3 [a3,d4]@4 c#4@5 c4@4, ~@3 a4@13, ~@7 g3@8 ~]/2", C: "[[b3,g4]@31 ~]/2",
  D: "~@10 [c4,e4]@3 [d4,f#4]@3", E: "g4, e4@13 ~@3", F: "[c4,e4]", G: "[a3,d#4]",
  H: "[g3,e4]@8 ~@2 [b3,e4]@3 [d4,f#4]@3", I: "[c4,e4]@13 ~@3", J: "[a3,d4]@2 ~ [a3,d4] ~@12",
  K: "[e3,g#3]@3 [d3,a3]@5", L: "[e4,g4]", M: "g4@15 ~, e4@13 ~@3", N: "[g3,e4]@8 ~@2 [b3,e4]@3 [d4,f#4]@2 ~",
  O: "[[b3,g#4]@3 [a3,d4]@4 [g3,c4]@9, e4@2 ~ a4@13]/2", // E D5 C5
  P: "[[b3,e4,g#4]@3 [a3,d4]@4 c#4@5 c4@4, ~@3 a4@13, ~@7 g3@9]/2", Q: "[d4,g4], b3@7 ~", R: "[[a3,f4] [g3,e4], c4]/2",
  S: "[[f#3,a3] [b3,g4], d4]/2", T: "[f#3,a3,d4]", U: "e4 a4 b4 e5 ~@12",
})).s("gm_pad_poly").gain(0.35)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@24 A B@2 C@2 D E F@2 G ~@13 A B@2 H@2 D E I@2 J@2 K@2 L E M@2 ~@25 A B@2 N@2 D E I@2 J@2 O@2 L E P@2 B@2 C@2 D E Q@2
  ~@4
>`.pickRestart({
  A: "~@10 [e4,g4]@3 [f#4,a4]@3", B: "[[g4,b4]@3 [e4,g4] [g4,b4]@2 [a4,c5] [g4,b4]@2 [e4,g4]@6 ~]/2",
  C: "[~@6 b3@2 [g4,b4]@2 [f#4,a4]@2 [e4,g4]@2 [e4,g4]@4 [g4,b4]@4 ~@4 [e4,g4]@3 [f#4,a4]@3]/2", // G F#m Em G Em F#m
  D: "[g4,b4]@3 [g4,b4] ~@6 [e4,g4]@3 [f#4,a4]@3", E: "[g4,b4]@3 [g4,b4] ~@12", F: "[~@4 g4 e4 d4 e4@4 ~@5]/2",
  G: "d4@5 ~@11", H: "[~@8 [g4,b4]@2 [f#4,a4]@2 [e4,g4]@2 [e4,g4]@4 [g4,b4]@4 ~@4 [e4,g4]@3 [f#4,a4]@3]/2",
  I: "[~@8 g4@2 e4@2 d4@2 e4@7 ~@5 [e4,g4]@3 [f#4,a4]@3]/2", // Em F#m
  J: "[[g4,b4]@6 [e4,g4]@2 [g4,b4]@4 [a4,c5]@2 [g4,b4]@4 [e4,g4]@9 ~@5]/2", // G Em G Am G Em
  K: "[~@6 [b3,g4]@2 [g4,b4]@2 [f#4,a4]@2 [e4,g4]@2 [e4,g4]@4 [g4,b4]@3 ~@5 [e4,g4]@3 [f#4,a4]@3]/2", // Em G F#m Em G Em F#m
  L: "[g4,b4]@3 [g4,b4] ~@6 [b4,d5]@3 [a4,c5]@3", M: "[~@8 g4@2 e4@2 d4@2 e4@9 ~@9]/2",
  N: "[~@8 [g4,b4]@2 [f#4,a4]@2 [d#4,g4]@2 [e4,g4]@4 [g4,b4]@4 ~@4 [e4,g4]@3 [f#4,a4]@3]/2", // G F#m D# Em G Em F#m
  O: "[~@6 g4@2 [g4,b4]@2 [f#4,a4]@2 [e4,g4]@2 [e4,g4]@4 [g4,b4]@3 ~@5 [e4,g4]@3 [f#4,a4]@3]/2", // G F#m Em G Em F#m
  P: "[~@8 g4@2 e4@2 d4@2 e4@9 ~@3 [e4,g4]@3 [f#4,a4]@3]/2", Q: "[~@8 g4@2 e4@2 d4@2 e4@7 ~@11]/2",
})).s("gm_electric_guitar_jazz").gain(0.28)

// bass · clavinet
const bass_2 = note(`<
  ~@4 A B C D E F C D E F C D E F C D E F C D G F H D E F H D ~ C D E F C D E F C D E F C I J F H D E K H D E F H D E L
  H D M N O P C Q F R C Q F R C Q F R C Q F R C D S F C D T F H D S ~@2 D U F H D V ~@2 I E F H D E ~@2 I M N O P ~
>`.pickRestart({
  A: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", B: "g1 ~ g1 ~ g1 ~ g1 ~ g1@2 g1 ~ g1 ~ g1 ~",
  C: "g1 ~ g1 ~ b1 ~ b1 ~ d2 ~ d2 ~ g2 ~ g2 ~", D: "b1 ~ b1 ~ d#2 ~ d#2 ~ f#2 ~ f#2 ~ b2 ~ b2 ~",
  E: "e1 ~ e1 ~ g1 ~ g1 ~ b1 ~ b1 ~ e2 ~ e2 ~", F: "c2 ~ c2 ~ e2 ~ e2 ~ g2 ~ g2 ~ c3 ~ c3 ~",
  G: "e1 ~ e1 ~ g1 ~ g1 ~ b1 ~@7", H: "a1 ~ a1 ~ c2 ~ c2 ~ e2 ~ e2 ~ a2 ~ a2 ~",
  I: "~@2 b1 ~ d#2 ~ d#2 ~ f#2 ~ f#2 ~ b2 ~ b2 ~", J: "~@2 e1 ~ g1 ~ g1 ~ b1 ~@7",
  K: "~@2 c2 ~ e2 ~ e2 ~ g2 ~ g2 ~ c3 ~ c3 ~", L: "~@4 e2 ~ e2 ~ g2 ~ g2 ~ c3 ~ c3 ~",
  M: "e2 ~ e2 ~ e2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2 ~", N: "c2 ~ c2 ~ e2 ~ e2 ~ g2 ~ g2 ~ e2 ~ c2 ~",
  O: "e2 ~ e2 ~ e2 ~ d2 ~ d2 ~ d2 ~ d2 ~ a1 ~", P: "a1 ~ a1 ~ a1 ~ b1 ~ c2 ~ b1 ~ a1 ~ g1@2",
  Q: "f1 ~ f1 ~ a1 ~ a1 ~ c2 ~ c2 ~ f2 ~ f2 ~", R: "d2 ~ d2 ~ f#2 ~ f#2 ~ a2 ~ a2 ~ d3 ~ d3 ~",
  S: "e2 ~ e2 ~ g2 ~ g2 ~ b2 ~ b2 ~ e3 ~ e3 ~", T: "e1 ~ e1 ~ g1 ~ g1 ~ b1@2 ~@6",
  U: "e1 ~ e1 ~ g1 ~ g1 ~ b1 ~ b1@2 e2 ~ e2 ~", V: "e2 ~ e2 ~ g2 ~ g2 ~ b2 ~ b2 ~@3 e3 ~",
})).s("gm_clavinet").gain(0.24).pan(0.9)

// chords · rock organ · "ORGAN 3"
const rock_organ = note("<A@2 B@2 C@2 ~@57 D@2 E@2 ~@46 D@2 E@2 ~>".pickRestart({
  A: "[[e3,e4,b4,e5,g#5]@3 [d3,d4,a4,d5]@4 [c3,c4,g4,c5]@9, ~@3 a5@13]/2", // E D5 C5
  B: "[[e3,e4,b4,e5,g#5]@3 [d3,d4,a4,d5]@4 [a2,a3,c#5]@5 [c3,c4,c5]@4, ~@3 a5@13, ~@7 g4@9]/2", C: "[g2,g3,g4,d5,g5]/2",
  D: "[[b4,e5,g#5]@3 [a4,d5]@4 [g4,c5]@9, ~@3 a5@13]/2", // E D5 C5
  E: "[[b4,e5,g#5]@3 [a4,d5]@4 c#5@5 c5@4, ~@3 a5@13, ~@7 g4@9]/2", // E D5
})).s("gm_rock_organ").gain(0.27).pan(0.3)

// other · lead 5 charang · "CHARANG"
const lead_5_charang = note(`<
  A@2 B@2 C@2 D E F G D E H G D E H I D J H I K J L M N O P ~@3 Q D E H I D E H G D E H G K R H ~@7 S T U T U T U V ~@4
  W X Y Z AA X Y Z AB X AC Z AB X AC Z ~@14 S T U T U T U V AD T U T AE T U T ~@5
>`.pickRestart({
  A: "[e2@3 d2@4 c2@9]/2", B: "[e2@3 d2@4 a1@5 c2@4]/2", C: "g1/2", D: "[b3,d4]@2 ~ [b3,d4] ~@12",
  E: "[b3,d#4]@2 ~ [b3,d#4] ~@12", F: "[b3,e4]@3 [b3,e4] ~@12", G: "[c4,e4]@3 [c4,e4] ~@12",
  H: "[b3,e4]@2 ~ [b3,e4] ~@12", I: "[c4,e4]@2 ~ [c4,e4] ~@12", J: "[b3,d#4]@3 [b3,d#4] ~@12",
  K: "[b3,d4]@3 [b3,d4] ~@12", L: "[b3,e4]@2 ~ [b3,e4] ~@6 [c4,e4]@2 ~ [d4,f#4]@3", M: "g4, e4@13 ~@3", N: "[c4,e4]",
  O: "[a3,d#4]", P: "[b3,e4]@9 ~@7", Q: "[e4,g#4]@3 a4@5, ~@6 d4@7 ~@3", R: "d#4@2 ~ d#4 ~@12",
  S: "~ e3 g3 e3 a3 e3 g3 e3 b3 a3 g3 e3 a3 e3 g3 ~", T: "~ e3 g3 e3 a3 e3 b3!2 a3 g3 e3 g3@3 a3 ~",
  U: "~ e3 g3 e3 a3 e3 g3 e3 b3 a3 g3 e3@3 g3 ~",
  V: "~ e3 g3 e3 a3 e3 b3 [g3,a3] e3 [b2,d3] a2 [e2,g2] d2 [a1,b1] g1@2", W: "g2@2 ~ g2 ~@2 g2!2 ~@2 g2 ~@2 g2@3",
  X: "f2@2 ~ f2 ~@2 f2!2 ~@2 f2 ~@2 f2 ~@2", Y: "c2@2 ~ c2 ~@2 c2!2 ~@2 c2 ~@2 c2@2 ~",
  Z: "d2@2 ~ d2 ~@2 d2!2 ~@2 d2 ~@2 d2 ~@2", AA: "g2@2 ~ g2 ~@2 g2!2 ~@2 g2 ~@2 g2@2 ~",
  AB: "g2@2 ~ g2 ~@2 g2!2 ~@2 g2 ~@2 g2 ~@2", AC: "c2@2 ~ c2 ~@2 c2!2 ~@2 c2 ~@2 c2 ~@2", AD: "~@3 [b3,e4] ~@12",
  AE: "~ e3 g3 e3 a3 e3 g3 e3 b3 a3 g3 e3@2 ~ g3 ~",
})).s("gm_lead_5_charang").gain(0.33).pan(0.7)

// other · synth strings 2 · "SYN STR 2"
const synth_strings_2 = note("<~@33 A@3 B A@3 B C@7 D E F G ~@4 D E F H ~@25 I J K ~@30>".pickRestart({
  A: "b4/3", B: "c5", C: "[b4@12 d5@2 ~@2 d#5@15 e5@32 ~ d5@16 d#5@16 e5@15 ~, ~@14 b4@97 ~]/7", D: "d4@3 e4", E: "d4",
  F: "d#4 e4 f#4 b4", G: "a4@4 g4@4 f#4@4 e4 ~@3", H: "a4@2 ~@2 g4 ~@3 f#4@2 ~@6", I: "~ d5 c5 b4",
  J: "g4@4 d4@3 c4@4 b3@4 ~", K: "g3@9 ~@7",
})).s("gm_synth_strings_2").gain(0.31).pan(0.4)

// other · epiano2 · "E.PIANO 2"
const epiano2 = note("<~@49 [b3 c4 e4 b3] [a3@3 ~] ~@6 [b3 c4 e4 b3] a3 ~@59>").s("gm_epiano2").gain(0.4).pan(0.7)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@82 A B C D ~ E F G H ~@27>".pickRestart({
  A: "~@4 a4 ~ a4 b4 ~ b4 ~ a4 b4@2 d5@2", B: "b4@8 ~@2 d5@3 g5@3", C: "f#5@3 d#5@3 b4@4 ~@2 e5@3 ~", D: "e5",
  E: "~ b4 d5 g5", F: "f#5@4 d#5@2 ~@2 b5@5 ~ b5@2", G: "b5@8 ~@2 e5@3 f#5@2 ~", H: "g5@13 ~@3",
})).s("gm_overdriven_guitar").gain(0.44).pan(0.7)

// other · trumpet
const trumpet = note("<~@29 A B ~@21 C B ~@6 C B ~@32 C B ~@6 C B ~@6 C B ~@6>".pickRestart({
  A: "[e4,e5] ~ [e4,e5] [d4,d5] ~ [d4,d5] [b3,b4] ~ [a3,a4] ~ [e3,e4] ~ [g3,g4] ~@3", // E D B A E G
  B: "[e4,e5] ~ [e4,e5] [d4,d5] ~ [d4,d5] [b3,b4] ~ [a3,a4] [b3,b4] [g3,g4] ~ [g3,g4] ~@3", // E D B A B G
  C: "e5 ~ [e4,e5] [d4,d5] ~ [d4,d5] [b3,b4] ~ [a3,a4] ~ [e3,e4] ~ [g3,g4] ~@3", // E D B A E G
})).s("gm_trumpet").gain(0.36)

// other · brass section · "BRASS 1"
const brass_section = note("<~@29 A B C ~@20 A B C ~@5 A B C ~@31 A B C ~@5 A B C ~@5 A B C ~@5>".pickRestart({
  A: "e5 ~ e5 d5 ~ d5 b4 ~ a4 ~ e4 ~ g4 ~@3", B: "e5 ~ e5 d5 ~ d5 b4 ~ a4 b4 g4 ~ g4 ~@3",
  C: "[d#4,a4,d5]@3 [d#4,a4,d5] ~@12", // D
})).s("gm_brass_section").gain(0.4)

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

// drums · snare
const snare = s("sd").struct("<~@4 A@20 B A@22 B A@41 C A@27 D>".pickRestart({
  A: "~ x ~ x", B: "~ x!2 ~", C: "~ x!3", D: "~@2 x!2 ~@12",
})).gain(0.49)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A B@5 A B@7 A B@5 C A B@3 A B@2 C A B@13 C A B@3 A B@7 A B@2 A B@3 A B@15 A B@5 C A B@14 D A B@6 A B A B E
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "x!5 ~@3", D: "x!6 ~ x", E: "x",
})).gain(0.33)
// … 21 more lines

More by Level 42