Strudelify

I'll Be Good To You

Quincy Jones

KeyD majorTempo110 bpm
0:00/0:00
// I'll Be Good To You — Quincy Jones
// 110 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 15 electric guitar muted (copy of ch 5 electric guitar muted, 0.354 beats late)
// note: Full arrangement: all 125 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/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(`<
  ~ A B A B A B C D E F E F E F E G E F E F E F E G E F E F E F E H A B A B A B C D I J I K I J I J I J I L E F E F E F
  E G E F E M E F E H A B A B A B C N I O I O I O I H I O I O I O I H ~@8 P@8 E F E F E F E Q E F E F E F E Q
>`.pickRestart({
  A: "~@3 d6 ~@4 d6 ~@3 d6 ~@4 d6 ~@3 d6 ~@2", B: "~@3 d6 ~@4 d6 ~@3 d6 ~@4 d6 ~@3 d6@2 d6",
  C: "~@3 d6 ~@4 d6 ~@3 d6 ~@4 d6 ~@3 d6 ~ d6",
  D: "[a5,d6,a6] ~@2 [a5,d6,a6] ~@2 [a5,d6,a6] ~@2 [a5,d6,a6] ~@2 [a5,d6]@2 ~@10, ~@12 a6 ~@11", // D5
  E: "[g3,b3,d4] ~@4 [a3,b3,d4] [f#3,a3,d4]@2 ~ [g3,b3,d4] ~@14", // G Bm7 D G
  F: "[g3,a3,d4]@8 ~ [f#3,a3,d4]@2 ~ [e3,a3,c#4]@2 ~@10", G: "[b3,e4,f#4]@11 ~ [b3,e4,f#4] ~@11",
  H: "[b3,e4,f#4]@12 [b5,b6] ~@2 [b5,b6] ~@2 [b5,b6] ~@2 [b5,b6] ~@2", // Bsus4 B
  I: "[b3,d4,g4] ~@4 [b3,d4,g4] [a3,d4,f#4]@2 ~ [b3,d4,g4]@2 ~@13", // G D G
  J: "[g3,b3,f#4]@8 ~ [g3,b3,f#4]@2 ~ [b3,c#4,e4]@2 ~@10", // Gmaj7 C#m7
  K: "[b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2", // Bsus4
  L: "[b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [g3,b3] ~ [b3,d4] [a3,c#4] ~ [g3,b3] [b3,d4] ~ [a3,c#4] [g3,b3] ~ [a3,c#4]", // Bsus4 G Bm A G Bm A G …
  M: "[a3,d4,f#4]@8 ~ [f#3,a3,d4]@2 ~ [e3,a3,c#4]@2 ~@10", // D A
  N: "[a5,d6,a6] ~@2 [a5,d6,a6] ~@2 [a5,d6,a6] ~@2 [a5,d6,a6] ~@2 a5@2 ~ [a5,a6] ~@2 [a5,a6] ~@2 [a5,a6] ~@2, ~@12 a6 ~@11", // D5 A
  O: "[g3,b3,d4]@8 ~ [g3,b3,f#4]@2 ~ [b3,c#4,e4]@2 ~@10", // G Gmaj7 C#m7
  P: "[d6,d7]@2 [d6,d7] ~@2 [d6,d7]!2 ~@2 [d6,d7]@2 [d6,d7] ~@2 [d6,d7]!2 ~@2 [d6,d7]@2 [d6,d7]!2 ~@2", // D
  Q: "[b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b3,e4,f#4] ~@2 [b5,b6] ~@2 [b5,b6] ~@2 [b5,b6] ~@2 [b5,b6] ~@2", // Bsus4 B
})).s("gm_clavinet").gain(0.25)

// bass · synth bass 1
const bass = note(`<
  ~ A@2 B@2 A@2 C D E F G H I F J K G L I M N O P Q R L I M N S P Q T@2 U@2 T@2 V W X Y P Z X L AA AB AA AC P AD X F AE
  AF AG AH P Q AI AJ AK F AL AM AN AO T@2 U@2 T@2 V W AL F AP AQ AR Y AS AT AI L AK AU AA AV AN AW AX AY AX AZ X BA BB
  BC AX AY AX AZ X BA BB BC AA BD AA BE AA BF P BG AA AC AL AU AA AV P BH
>`.pickRestart({
  A: "[g1@3 g2 ~@2 f#1@3 f#2 ~@2 b1 ~@2 e2@5 ~ f#2@5 ~ g2 ~ f#2 e2@5 ~@3 e2 e2@3 d2@3 b1@2 a1]/2",
  B: "[g1@3 g2 ~@2 f#1@3 f#2 ~@2 b1 ~@2 e2@5 ~ f#2@5 ~ g2 ~ f#2 e2@5 ~ g1@3 a1@2 a#1 b1@3 d2@2 e2]/2",
  C: "g1@3 g2 ~@2 f#1@3 f#2 ~@2 b1 ~@2 e2@6 e2@2 e2", D: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ b1 d2 d#2 e2@3 d2 b1 a1",
  E: "e2@2 ~@3 e2 f#2@3 g2@3 ~@8 g2 a2@2 g2", F: "a2 ~@4 a2 g2@3 a2@2 ~@9 a2 b2@2 f#2",
  G: "e2 ~@4 e2 f#2@3 g2@3 ~@8 a2 b2@2 f#2", H: "a2 ~@4 a2 g2@3 f#2@2 ~@9 a2 b2@2 f#2",
  I: "e2 ~@4 e2 f#2@3 g2@3 ~@8 g2 b2@2 a2", J: "e2 ~@4 e2 f#2@3 g2@3 ~@9 a2 ~ a#2",
  K: "b2@5 ~ b2@2 ~ b2 ~ f#2 b2@3 b2@3 b2@2 d3@3 ~", L: "a2 ~@4 a2 g2@3 a2@2 ~@9 a2 b2@2 d3",
  M: "~@2 a2 ~@2 a2 g2@3 f#2@3 e2@2 ~@6 g2 a2@2 b2", N: "e2 ~@4 e2 f#2@3 g2@3 ~@8 e2 b2@2 f#2",
  O: "a2 ~@4 a2 g2@3 f#2@2 ~@9 b1 b2@2 d3", P: "e2 ~@4 e2 f#2@3 g2@3 ~@9 a2@2 a#2",
  Q: "b2@2 ~ b2@2 ~ b2@2 ~ b2@2 ~ b2 ~@2 d3@2 b2 d3@2 b2 g2@3", R: "e2 ~@4 e2 f#2@3 g2@3 ~@8 e2 b2@2 g2",
  S: "a2 ~@4 a2 g2@3 f#2@2 ~@9 e2 d3@2 e3",
  T: "[g2@3 f#2 ~@2 f#2@3 e2 ~@2 b1 ~@2 e2@5 ~ f#2@5 ~ g2 ~ f#2 e2@5 ~ e2@3 e3 ~@2 e2@3 d3@2 e3]/2",
  U: "[g1@3 g2 ~@2 f#1@3 f#2 ~@2 b1 ~@2 e2@5 ~ f#2@5 ~ g2 ~ f#2 e2@5 ~ a1@2 b1 d2@2 ~ d2@2 e2@2 ~ e3]/2",
  V: "g1@3 g2 ~@2 f#1@3 f#2 ~@2 b1 ~@2 e2@5 ~ f#2@3", W: "a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 g2 a2 ~@2 g2@2 a2 ~@2 f#2",
  X: "e2 ~@4 e2 f#2@3 g2@2 ~@9 f#2 b2@2 g2", Y: "a2 ~@4 a2 g2@3 f#2@2 ~@9 a2 b2@2 d3",
  Z: "b2@2 ~ b2@2 ~ b2@2 ~ b2@3 b2@2 ~ a2@2 b2 a2@2 b2 f#2@3", AA: "e2 ~@4 e2 f#2@3 g2@3 ~@8 f#2 b2@2 g2",
  AB: "a2 ~@4 a2 g2@3 f#2@2 ~@6 e2 a2@2 b2 d3@2 e3", AC: "a2 ~@4 a2 g2@3 a2@2 ~@9 a2 b2@2 e3",
  AD: "b2@2 ~ b2@2 ~ b2@2 ~ b2@2 ~ b2@2 ~ a#2 ~ b2 b2@2 d3 e3 ~ g2", AE: "e2 ~@4 e2 f#2@3 g2@3 ~@8 f#2 b2@2 a2",
  AF: "~@2 a2 ~@2 a2 g2@3 f#2@3 e2@3 e1@3 g2@2 a2 b2@3", AG: "e2 ~@4 e2 f#2@3 g2@3 ~@8 e2 b2@2 e2",
  AH: "a2 ~@4 a2 g2@3 f#2@2 ~@9 b2 d3@2 e3", AI: "e2 ~@4 e2 f#2@2 ~ g2@2 ~@9 f#2 b2@2 g2",
  AJ: "a2 ~@4 a2 g2@2 ~ a2@2 ~@9 a2 b2@2 g2", AK: "e2 ~@4 e2 f#2@2 ~ g2@2 ~@9 g2 b2@2 g2",
  AL: "e2 ~@4 e2 f#2@3 g2@2 ~@9 g2 b2@2 g2", AM: "a2 ~@4 a2 g2@3 a2 ~@10 a2 f#2@2 e2",
  AN: "e2 ~@4 e2 f#2@3 g2@2 ~@10 a2@2 a#2", AO: "b2@2 ~ b2@2 ~ b2@2 ~ b2@2 a2 b2@2 ~ b2@2 b1 b2@2 d3 e3@2 ~",
  AP: "e2@2 ~@3 e2 f#2@3 g2@2 ~@9 g2 b2@2 g2", AQ: "a2 ~@4 a2 g2@2 ~ f#2@2 ~@9 a2 b2@2 d3",
  AR: "e2 ~@4 e2 f#2@3 g2@2 ~@9 e2 b2@2 e2", AS: "e2 ~@4 e2 f#2@2 ~ g2@2 ~@10 a2@2 a#2",
  AT: "b2@2 ~ b2@2 ~ b2@2 ~ b2@2 ~ b2 ~@2 c#3@2 b2 e3@2 c#3 d#3@2 e3",
  AU: "a2 ~@4 a2 g2@3 f#2@2 ~ e2@2 ~@4 a2 ~@2 b2@2 d3", AV: "a2 ~@4 a2 g2@3 a2@2 ~@7 a2@2 b2 d3@2 e3",
  AW: "b2@2 ~ b2@2 ~ b2@2 ~ b2@2 ~ b2 ~@2 b2@2 b2 d3@2 e3 c#3@2 d#3", AX: "e2 ~@4 e2 f#2@3 g2@2 ~@4 g2 ~@4 f#2 b2@2 g2",
  AY: "a2 ~@4 a2 g2@3 a2@2 ~@9 a2 a2@3", AZ: "~@2 a2 ~@2 a2 g2@3 f#2@3 e2@2 ~ a2 ~@4 g2 a2@2 b2",
  BA: "a2 ~@4 a2 g2@3 a2@2 ~@9 a1 a2@3", BB: "e2 ~@4 e2 f#2@2 ~ g2@2 ~@10 a2@3",
  BC: "b1@2 b2 b1@3 a1@3 a#1@3 b2@2 b2 d3@2 b2 e3@2 d3 b2@3", BD: "a2 ~@4 a2 g2@3 f#2@2 ~@13",
  BE: "a2@2 a2 ~@2 a2 g2@2 ~ f#2@2 ~ e2@3 ~@9", BF: "a2 ~@4 a2 g2@3 a2@2 ~@3 e2 e2@3 ~@2 a2 b2@2 f#2",
  BG: "b2@3 b2@2 e2 b2@3 b2@3 b2@3 b2@2 a2 b2@3 b2@3", BH: "b2@2 ~ b2@2 ~ b2@2 ~ b2@2 ~ b2 ~@2 b2@2 b2 d3@2 e3 d3@3",
})).s("gm_synth_bass_1").gain(0.23)

// chords · synth brass 2
const synth_brass_2 = note(`<
  ~ A@2 B@2 C@2 D E ~@23 F G H I J K@2 L M@2 ~@27 I H I J K@2 L M@2 ~@6 N O@2 P Q R S@2 T ~@15 U ~@7 V O@2 P Q R S@2 T
>`.pickRestart({
  A: "[[b4,b5]@2 ~ [a4,a5] ~@2 [a4,a5]@3 [g4,g5] ~@2 [g4,g5] ~@2 [f#4,f#5]@6 [e4,e5]@5 ~ [f4,f#4,f5,f#5] ~@2 [d4,d5]@16 ~@2]/2", // B A G F# E F#maj7 D
  B: "[[b4,b5]@3 [a4,a5] ~@2 [a4,a5]@2 ~ [g4,g5] ~@2 [g4,g5] ~@2 [f#4,f#5]@5 ~ [e4,e5]@6 [f4,f#4,f5,f#5] ~@2 [d4,d5]@12 ~@3 [b4,b5] ~@2]/2", // B A G F# E F#maj7 D B
  C: "[[b4,b5]@3 [a4,a5] ~@2 [a4,a5]@2 ~ [g4,g5] ~@2 [g4,g5] ~@2 [f#4,f#5]@5 ~ [e4,e5]@6 [f4,f#4,f5,f#5] ~@2 [d4,d5]@15 ~@3]/2", // B A G F# E F#maj7 D
  D: "[b4,b5]@3 [a4,a5] ~@2 [a4,a5]@3 [g4,g5] ~@2 [g4,g5] ~@2 [f#4,f#5]@7 ~@2", // B A G F#
  E: "[a4,a5] ~@2 [a4,a5] ~@2 [a4,a5] ~@2 [a4,a5] ~@2 [a4,a5]@2 ~@10", // A
  F: "[e4,b4] ~@2 [e4,b4] ~@2 [e4,b4] ~@2 [e4,b4] ~@2 [b4,b5] ~@2 [b4,b5] ~@2 [b4,b5] ~@2 [b4,b5] ~@2", // E5 B
  G: "[g4,b4]@2 ~ [f#4,a4] ~@2 [f#4,a4]@2 ~ [e4,g4] ~@2 [e4,g4] ~@2 [d4,f#4]@5 ~ [c#4,e4]@3", // G F#m Em D C#m
  H: "~@3 [d4,f#4] ~@2 [g3,d4]@13 ~@2 [g4,b4] ~@2", // D G5 G
  I: "[g4,b4]@2 ~ [f#4,a4] ~@2 [f#4,a4]@2 ~ [e4,g4] ~@2 [e4,g4] ~@2 [d4,f#4]@4 ~@2 [c#4,e4]@3", // G F#m Em D C#m
  J: "~@3 [d4,f#4] ~@2 [g3,d4]@15 ~@3", // D G5
  K: "[[g4,b4]@2 ~ [f#4,a4] ~@2 [f#4,a4]@2 ~ [e4,g4] ~@2 [e4,g4] ~@2 [d4,f#4]@4 ~@2 [c#4,e4]@5 ~ [d4,f#4] ~@2 [g3,d4]@13 ~@2 [g4,b4] ~@2]/2", // G F#m Em D C#m D G5 G
  L: "[g4,b4]@2 ~ [f#4,a4] ~@2 [f#4,a4]@2 ~ [e4,g4] ~@2 [e4,g4] ~@2 [d4,f#4]@6 ~@3", // G F#m Em D
  M: "[[e4,a4] ~@2 [e4,a4] ~@2 [e4,a4] ~@2 [e4,a4] ~@2 [e4,a4] ~@2 [d4,d5]@2 ~ [d4,d5]@2 ~ a4 ~ [b3,g4]@3 ~ [a3,f#4] ~@20]/2", // A5 D Em D
  N: "[e4,b4] ~", O: "[d4@17 ~ f#4@3 d4@2 e4@18 ~ c#4@6, ~@23 d#4 ~@24]/2", P: "b3@18 d4@5 ~", Q: "c#4@11 ~",
  R: "~ d4@17 f#4@3 d4 ~ [d4,d#4]", S: "[e4@17 ~ c#4@5 b3@23 ~@2]/2", T: "[b3,e4]@12 [b3,d#4] ~@11",
  U: "[e4,b4] ~@2 [e4,b4]@2 [e4,b4]!2 ~@2 [e4,b4] ~ [e4,b4] [b4,b5] ~@2 [b4,b5] ~@2 [b4,b5] ~@2 [b4,b5] ~@2", // E5 B
  V: "[b3,e4]@12 [b4,b5] ~@2 [b4,b5] ~@2 [b4,b5] ~@2 [b4,b5] ~@2", // E5 B
})).s("gm_synth_brass_2").gain(0.19)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@9 A B C D A B C E A B C D A B C E A B C D A B C E ~@8 A B C D A B C E A B C F G B C D A B C E A B C D A B C F G ~@7
  A B C D A B C F G B C D A B C E ~@8 C D H I C D C F C D H I C D C F C D H I C D C J
>`.pickRestart({
  A: "~@6 d4 ~ d4 ~@2 d4@4 e4 ~@8", B: "~@20 b4 e4@2 ~", C: "d4@2 d4 e4@2 d4 d4@2 d4!2 ~ d4@4 e4 ~@8",
  D: "a3@2 a3 b3@2 f#3 a3@2 b3 f#3@2 a3 ~@5 b4 e4@2 d4 b3@2 d4",
  E: "a3@2 a3 ~@2 b4 e4@2 ~ d4 ~ b3@2 ~ d4 e4 ~ b3 d4@2 ~ e4@2 b3",
  F: "a3@2 a3 ~@2 a3 a3@2 a3 ~@2 a3 b3 ~ d4 c#4 ~ b3 d4 ~ c#4 b3 ~ c#4", G: "d4@2 d4 ~@3 d4 ~ d4 ~@2 d4@4 e4 ~@8",
  H: "~@6 d4 ~ d4 ~@2 d4@4 e4 ~@2 d4@2 d4 e4 ~@2", I: "f#4@2 f#4 g4@2 a4 f#4@2 d4 b3@2 d4 ~@5 b4 e4@3 d4@2 b3",
  J: "a3@2 a3 ~@2 a3 a3@2 a3 ~@2 a3 b3 ~ d4 c#4 ~ b3 d4 ~ c#4 b3 ~@2",
})).s("gm_electric_guitar_muted").gain(0.27).pan(0.4)

// other · alto sax
const alto_sax = note("<~@33 A B C D E F G H@2 ~@2 I@8 ~@17 A B C D E F G J@8 I@8 ~@16 I@16 ~>".pickRestart({
  A: "~@3 b3 ~@2 d4 ~@2 d4@2 ~ e4@2 ~ d4@2 ~ d4 ~@2 e4 ~@2", B: "f#4@2 ~ d4 e4 d4@13 ~@6",
  C: "~@3 a4@2 ~ d5@2 ~ b4@2 ~ b4@2 ~ a4@2 ~ a4@2 ~ d4@2 ~", D: "e4@2 f#4 e4@14 ~@7",
  E: "~@3 b3@2 ~ d4@2 ~ d4@2 ~ e4@2 ~ d4@2 ~ d4@2 ~ e4@2 ~", F: "f#4@2 ~ d4 e4 d4@10 ~@6 a4@2 ~",
  G: "b4@2 ~ d5@2 ~ b4@2 ~ a4@6 ~@5 f#4 g4@2 ~", H: "[b4@6 a4@2 ~ a4@4 ~@2 d5@2 ~ d5@2 ~ a4 ~ b4@4 a4@2 ~@19]/2",
  I: "[~@23 b4@3 ~ a4 ~@7 b4@3 ~ a4 ~@7 b4@3 ~ a4 ~@8 f#4@5 ~ g4@3 ~@2 b4@3 ~ a4 ~@4 f#4 g4 ~ b4@3 ~ a4 ~@7 b4@4 a4 ~@8 f#4@5 ~ g4@4 ~ b4@3 ~ a4 ~@7 b4@3 ~ a4 ~@7 b4@3 ~ a4 ~@8 f#4@5 ~ g4@4 ~ b4@3 ~ a4 ~@4 f#4 g4 ~ b4@2 ~@2 a4 ~@8]/8",
  J: "[b4@6 a4@2 ~ a4@4 ~@2 d5@2 ~ d5@2 ~ a4 ~ b4@3 ~ a4 ~@7 b4@3 ~ a4 ~@7 b4@3 ~ a4 ~@8 f#4@5 ~ g4@3 ~@2 b4@3 ~ a4 ~@4 f#4 g4 ~ b4@3 ~ a4 ~@7 b4@4 a4 ~@8 f#4@5 ~ g4@4 ~ b4@3 ~ a4 ~@7 b4@3 ~ a4 ~@7 b4@3 ~ a4 ~@8 f#4@5 ~ g4@4 ~ b4@3 ~ a4 ~@4 f#4 g4 ~ b4@2 ~@2 a4 ~@8]/8",
})).s("gm_alto_sax").gain(0.29).pan(0.7)

// other · tenor sax
const tenor_sax = note("<~@33 A B C D A E F G@2 ~@2 H@8 ~@17 A B C D A E F I@8 H@8 ~@16 H@16 ~>".pickRestart({
  A: "~@3 b3@2 ~ d4@2 ~ d4@2 ~ e4@2 ~ d4@2 ~ d4@2 ~ e4@2 ~", B: "f#4@2 ~ d4 e4 d4@13 ~@6",
  C: "~@3 a4@2 ~ d5@2 ~ b4@2 ~ b4@2 ~ a4@2 ~ a4 ~@2 d4@2 ~", D: "e4 ~ f#4 e4@14 ~@7",
  E: "f#4@2 ~ d4 e4 d4@10 ~@6 a4@2 ~", F: "b4@2 ~ d5@2 ~ b4 ~@2 a4@5 ~@6 f#4 g4@2 ~",
  G: "[b4@6 a4@2 ~ a4@4 ~@2 d5@2 ~ d5@2 ~ a4 ~ g4@4 f#4@2 ~@19]/2",
  H: "[~@23 g4@3 ~ f#4 ~@7 g4@3 ~ f#4 ~@7 g4@3 ~ f#4 ~@8 d4@5 ~ e4@4 ~ g4@3 ~ f#4 ~@4 d4 e4 ~@2 g4@3 f#4 ~@7 g4@3 ~ f#4 ~@8 d4@5 ~ e4@4 ~ g4@3 ~ f#4 ~@7 g4@3 ~ f#4 ~@7 g4@3 ~ f#4 ~@8 d4@5 ~ e4@4 ~ g4@3 ~ f#4 ~@4 d4 e4 ~ g4@3 ~ f#4 ~@8]/8",
  I: "[b4@6 a4@2 ~ a4@4 ~@2 d5@2 ~ d5@2 ~ a4 ~ g4@3 ~ f#4 ~@7 g4@3 ~ f#4 ~@7 g4@3 ~ f#4 ~@8 d4@5 ~ e4@4 ~ g4@3 ~ f#4 ~@4 d4 e4 ~@2 g4@3 f#4 ~@7 g4@3 ~ f#4 ~@8 d4@5 ~ e4@4 ~ g4@3 ~ f#4 ~@7 g4@3 ~ f#4 ~@7 g4@3 ~ f#4 ~@8 d4@5 ~ e4@4 ~ g4@3 ~ f#4 ~@4 d4 e4 ~ g4@3 ~ f#4 ~@8]/8",
})).s("gm_tenor_sax").gain(0.25)

// other · baritone sax
const baritone_sax = note("<~@33 A B C D E F G H@2 ~@2 I@8 ~@17 A B C D E F G J@8 I@8 ~@16 I@16 ~>".pickRestart({
  A: "~@3 b2 ~@2 d3@2 ~ d3 ~@2 e3@2 ~ d3 ~@2 d3 ~@2 e3@2 ~", B: "f#3 ~@2 d3 e3 d3@13 ~@6",
  C: "~@3 a3@2 ~ d4@2 ~ b3@2 ~ b3@2 ~ a3@2 ~ a3@2 ~ d3@2 ~", D: "e3 ~ f#3 e3@14 ~@7",
  E: "~@3 b2@2 ~ d3@2 ~ d3@2 ~ e3@2 ~ d3@2 ~ d3 ~@2 e3@2 ~", F: "f#3@2 ~ d3 e3 d3@10 ~@6 a3@2 ~",
  G: "b3@2 ~ d4@2 ~ b3 ~@2 a3@6 ~@5 f#3 g3@2 ~", H: "[b3@6 ~ a3 ~ a3@4 ~@2 d4@2 ~ d4@2 ~ a3 ~ b3@3 ~ a3@2 ~@19]/2",
  I: "[~@23 d4@3 ~ c#4 ~@7 d4@2 ~@2 c#4 ~@7 d4@3 ~ c#4 ~@8 a3@5 ~ b3@4 ~ d4@3 ~ c#4 ~@4 a3 b3 ~ d4@3 ~ c#4 ~@7 d4@2 ~@2 c#4 ~@8 a3@5 ~ b3@4 ~ d4@3 ~ c#4 ~@7 d4@3 ~ c#4 ~@7 d4@3 ~ c#4 ~@8 a3@5 ~ b3@4 ~ d4@3 ~ c#4 ~@4 a3 b3 ~ d4@3 ~ c#4 ~@8]/8",
  J: "[b3@6 ~ a3 ~ a3@4 ~@2 d4@2 ~ d4@2 ~ a3 ~ b3@3 ~ a3 ~@7 d4@2 ~@2 c#4 ~@7 d4@3 ~ c#4 ~@8 a3@5 ~ b3@4 ~ d4@3 ~ c#4 ~@4 a3 b3 ~ d4@3 ~ c#4 ~@7 d4@2 ~@2 c#4 ~@8 a3@5 ~ b3@4 ~ d4@3 ~ c#4 ~@7 d4@3 ~ c#4 ~@7 d4@3 ~ c#4 ~@8 a3@5 ~ b3@4 ~ d4@3 ~ c#4 ~@4 a3 b3 ~ d4@3 ~ c#4 ~@8]/8",
})).s("gm_baritone_sax").gain(0.22).pan(0.4)

// other · overdriven guitar
const overdriven_guitar = note("<~@44 A B@2 C@2 D E@2 F ~@72>".pickRestart({
  A: "~@6 b3 d4 ~ e4 f#4 ~ a4 b4 ~ c#5 d5 ~ e5 f#5 ~ g5 a5 ~", B: "[a5@15 a5@5 a5@11 e5@14 d5 ~ c#5]/2",
  C: "[c#5@6 d5@2 ~ e5@7 d5@19 ~ c#5@5 d5@2 e5@3 f#5@2]/2", D: "~ g5@3 a5@2 d5@5 e5@2 e5@3 d5 e5@7",
  E: "[d5 c#5@9 a4@12 f#4 d4@17 a3 b3 a3 b3 [b3,d4] d4 e4 d4]/2", F: "e4",
})).s("gm_overdriven_guitar").gain(0.4)

// other · glockenspiel
const glockenspiel = note(`<
  ~ A B C D C B E F ~@24 C D C B A D E F ~@28 C D C B A D E F ~@8 G H I J K L M ~@25 G H I J K L M ~
>`.pickRestart({
  A: "b6@2 ~ a6 ~@2 a6 ~@2 g6 ~@2 g6 ~@2 f#6 ~@5 e6 ~@2", B: "~@3 f#6 ~@2 d6 ~@17",
  C: "b6 ~@2 a6 ~@2 a6 ~@2 g6 ~@2 g6 ~@2 f#6 ~@5 e6 ~@2", D: "~@3 f#6 ~@2 d6 ~@14 b6 ~@2",
  E: "b6 ~@2 a6 ~@2 a6 ~@2 g6 ~@2 g6 ~@2 f#6 ~@8", F: "a6 ~@2 a6 ~@2 a6 ~@2 a6 ~@2 a6 ~@11", G: "d7@7 ~@2 f#7@2 ~",
  H: "e7@10 ~@8 c#7@3 ~@3", I: "b6@4 ~@2 d7 ~", J: "c#7 ~", K: "d7@5 ~ f#7 ~", L: "e7@7 ~@2 c#7@2 ~", M: "b6@2 ~",
})).s("gm_glockenspiel").gain(0.29)

// other · lead 5 charang
const lead_5_charang = note(`<
  ~@41
  [~@6 d3@5 e3 f#3@3 a3@8 ~]
  [~@3 b2 ~@2 e3@5 a3 e4@3 b3@6 ~@3]
  [~@3 b2 ~@2 d3@4 ~ e3 f#3@3 a3@7 ~@2]
  [b3@11 ~]
  ~@80
>`).s("gm_lead_5_charang").gain(0.4)

// chords · pad choir
const pad_choir = note(`<
  ~ A B A B A B C D ~@24 A B A B A B C D E F G H ~ I ~ I ~ I ~ J ~@16 A B A B A B C D ~ K ~ I ~ I ~ L ~ I ~ M ~ I ~ N
  ~@17 I ~ I ~ O ~ P ~ O ~ O ~ O ~ Q
>`.pickRestart({
  A: "[d3,g3,a3]@3 ~@3 [d3,f#3,a3]@3 ~@3 [d3,g3,a3] ~@2 [d3,f#3,a3]@3 ~@3 [d3,e3,g3]@3", // Dsus4 D Dsus4 D Em7
  B: "~@3 f#3 ~@2 [d3,g3,a3]@15 ~@3", C: "[d3,g3,a3]@3 ~@3 [d3,f#3,a3]@3 ~@3 [d3,g3,a3] ~@2 [d3,f#3,a3]@5 ~@4",
  D: "[d3,g3,a3] ~@2 [d3,g3,a3] ~@2 [d3,g3,a3] ~@2 [d3,g3,a3] ~@2 [d3,g3,a3] ~@11", E: "~@6 d3@4 ~ e3 f#3@3 a3@8 ~",
  F: "~@3 b2 ~@2 e3@4 ~ a3 e4@3 b3@7 ~@2", G: "~@3 b2 ~@2 d3@5 e3 f#3@3 a3@7 ~@2", H: "b3@17 ~@7",
  I: "[d4,f#4]@7 ~@2 [d4,f#4] ~@2 [c#4,e4] ~@11", J: "[b3,e4]@3 ~@5", K: "[d4,f#4]@7 ~@3 [d4,f#4] ~ e4 c#4 ~@10",
  L: "[b3,e4] ~", M: "[d4,f#4]@7 ~@2 [d4,f#4] ~@2 e4 c#4 ~@10", N: "[a3,b3] ~",
  O: "[b3,d4]@7 ~@2 [b3,d4] ~@2 [a3,c#4] ~@11", P: "[b3,e4]@9 ~@3 [a3,b3]@10 ~@2",
  Q: "[a3,b3]@5 ~ [b3,e4]@2 ~ [b3,d#4]@2 ~", // Asus2 E5 B
})).s("gm_pad_choir").gain(0.11)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@44 A B C D@5 E@2 ~@71>".pickRestart({
  A: "~@10 b3 d4 ~ e4 f#4 ~ a4 b4 ~ c#5 d5 ~ e5 f#5", B: "~ g5 a5 ~ a5@15 a5@5", C: "a5@11 e5@13",
  D: "[~ d5 ~ c#5 c#5@6 d5@2 ~ e5@7 d5@19 ~ c#5@5 d5@2 e5@3 f#5@3 g5@3 a5@2 d5@5 e5@2 e5@3 d5 e5@7 d5 c#5@9 a4@12 f#4 d4@17 a3 b3 a3 b3]/5",
  E: "[[b3,d4] d4 e4 d4 e4@24 ~@20]/2", // Bm
})).s("gm_overdriven_guitar").gain(0.08)

// drums · kick
const kick = s("bd").struct("<A B C B D B C B E F@23 G H@8 F@27 G H@4 F@52>".pickRestart({
  A: "~@15 x!3 ~@6", B: "x ~@4 x ~@3 x ~@4 x!2 ~@8", C: "x ~@4 x ~@3 x ~@7 x ~@3 x ~@2",
  D: "x ~@4 x ~@3 x ~@7 x ~@2 x!2 ~@2", E: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2", F: "x ~@8 x ~@4 x!2 ~@8",
  G: "x!8", H: "x ~@10 x!2 ~@2 x ~@5 x ~@2",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  A B@7 C B@3 D B@3 D B@3 D B@3 D B@3 D B@3 D B@7 E B@3 E B@3 D B@3 D B@3 D B@3 D B@3 D B@3 F B@7 G B@3 D B@3 H B@3 D
  B@3 I B@15 J B@3 D B@3 K B@3 D B@3 L
// … 53 more lines