Strudelify

98-6

Keith

KeyG majorTempo148 bpm
0:00/0:00
// 98-6 — Keith
// 148 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 113 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(148/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 · piano · "A.PIANO 1"
const piano = note(`<
  A@5 B@7 ~@8 C D E F G H I J C D E F K H I J ~@12 L@3 M C D E F K H I J C D E F K H I J ~@12 L@3 M C D E F K H I J ~@12
  N O P Q R S T U V
>`.pickRestart({
  A: "[~@35 d3@2 ~@8 e4@3 ~@6 [d#4,a4]@5 ~@8 [d3,g4,d5]@3 ~@8 d3@2, ~@15 [g2,d5]@22 g2@22 g2@21, ~@15 b4@11 f4@3 d3@3 [f4,b4]@6 ~@2 c3@3 e3@5 d#4@3 d#3@8 d5@5 e5@6 f4@5 b3@5, ~@18 d3@5 d3@3 c5@11 c5@11 b4@11 b4@11 c5@10, ~@20 b3@11 b3@6 e4@8 c3@14 g4@3 d3@2 g4 b3@8 d3@3 [f4,b4]@4]/5", // D#dim G5 Fdim
  B: "[~@10 e4@2 ~@6 [a3,d#4,a4]@5 ~@20 d3@3 ~@8 e4@3 ~@5 [d#4,a4]@5 ~@6 g4@3 ~@11 d3@3 ~@8 e4@3 ~@6 [a3,d#4,a4]@5, ~ g2@21 ~@2 [g2,d5]@22 g2@22 g2@22 g2@21 ~, ~ c5@11 d#4@3 d#3@8 ~@3 d3@6 d3@3 c5@11 c5@11 b4@11 b4@8 [d3,g4,d5]@2 f4@3 d3@6 ~@6 c3@3 e3@5 [d#4,b4]@6 ~@5, ~ e4@6 e3@6 b4@6 ~@5 b4@11 f4@2 d3@6 ~@5 c3@3 e3@5 ~ d#4@2 d#3@8 ~ d5@5 e5@5 c5@11 ~ c5@12 ~@2 d#3@8, ~@4 c3@5 ~ c3@13 ~@6 b3@11 [b3,f4,b4]@6 e4@8 c3@14 g4@2 d3@3 b3@11 [b3,f4,b4]@6 e4@8 c3@13 ~]/7", // Adim D#dim Adim G5 G#m Bdim
  C: "[b4,d5,g5]@3 ~ [b4,d5,g5]@3 ~ [b4,d5,f#5]@3 ~ [b4,d5,f#5]@3 ~", // G Bm
  D: "[g4,c5,e5]@3 ~ [g4,c5,e5]@3 ~ [g4,b4,d5]@3 ~ [g4,b4,d5]@3 ~", // C G
  E: "[g4,a4,c#5]@3 ~ [g4,a4,c#5]@3 ~ [g4,a4,c#5]@3 ~ [g4,a4,c#5]@3 ~", // A7
  F: "[g4,c5,e5]@3 ~ [g4,c5,e5]@2 ~@2 [a4,d5,f#5]@3 ~ [a4,d5,f#5]@3 ~", // C D
  G: "[b4,d5,g5]@3 ~ [b4,d5,g5]@3 ~ [b4,d5,f#5]@2 ~@2 [b4,d5,f#5]@2 ~@2", // G Bm
  H: "[g4,c5,e5]@3 ~ [g4,c5,e5]@3 ~ [a4,c5,d#5]@3 ~ [a4,c5,d#5]@3 ~", // C Adim
  I: "[g4,c5,d5]@3 ~ [g4,c5,d5]@3 ~ [g4,c5,d5]@3 ~ [g4,c5,d5]@3 ~", // Gsus4
  J: "[f#4,c5,d5,f#5]@2 ~@2 [f#4,c5,d5,f#5]@3 ~ [f#4,c5,d5,f#5]@3 ~ [f#4,c5,d5,f#5]@2 ~@2", // D7
  K: "[b4,d5,g5]@3 ~ [b4,d5,g5]@3 ~ [a4,d5,f#5]@2 ~@2 [a4,d5,f#5]@2 ~@2", // G D
  L: "[[d4,f4,a4]@2 ~@2 [d4,f4,a4]@2 ~@2 [d4,f4,a4]@3 ~ [d4,f4,a4] ~@2 [d4,g4,a#4]@4 ~ [d4,g4,a#4]@2 ~@2 [d4,g4,a#4]@3 ~ [d4,g4,a#4] ~@2 [g4,c5,d#5]@4 ~ [g4,c5,d#5]@2 ~@2 [g4,c5,d#5]@3 ~ [g4,c5,d#5]@2 ~@2]/3", // Dm Gm Cm
  M: "[c4,e4,g4,a4]@2 ~@2 [e4,g4,a4]@2 ~ [c4,d4,f#4,a4]@4 ~ [c4,d4,f#4,a4]@2 ~@2, ~@4 c4 ~@11", // Am7 A7 D7
  N: "[d#4,g4,a#4]@3 ~ [d#4,g4,a#4]@3 ~ [d4,g4,a#4]@3 ~ [g4,a#4]@2 ~@2", // D# Gm
  O: "[d#4,g#4,c5]@2 ~@2 [d#4,g#4,c5]@3 ~ [d#4,g4,a#4]@2 ~@2 [d#4,g4,a#4]@2 ~@2", // G# D#
  P: "[c4,d#4,f4,a4]@3 ~ [c4,d#4,f4,a4]@2 ~@2 [c4,d#4,f4,a4]@2 ~@2 [c4,d#4,f4,a4]@2 ~@2", // F7
  Q: "[c4,d#4]@2 ~@2 [c4,d#4,g#4]@2 ~@2 [d4,f4,a#4]@3 ~ [d4,f4,a#4]@2 ~@2, g#4 ~@15", // Cm G# A#
  R: "[d#4,g4,a#4]@3 ~ [d#4,g4,a#4]@3 ~ [d4,g4,a#4]@3 ~ [d4,g4,a#4]@3 ~", // D# Gm
  S: "[d#4,g#4,c5]@3 ~ [d#4,g#4,c5]@3 ~ [d#4,f4,g#4,b4]@3 ~ [d#4,f4,g#4,b4]@3 ~", // G# Fm7b5
  T: "[d#4,f4,g#4,a#4]@3 ~ [d#4,f4,g#4,a#4]@3 ~ [d#4,f4,g#4,a#4]@3 ~ [d#4,f4,g#4,a#4]@3 ~", // D#sus4
  U: "[d4,f4,g#4,a#4]@3 ~ [d4,f4,g#4,a#4]@3 ~ [d4,f4,g#4,a#4]@2 ~@2 [d4,f4,g#4,a#4]@2 ~@2", V: "[d#4,g4,a#4]",
})).s("gm_piano").gain(0.38).pan(0.7)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A@5 B@7 C D E F G H I J K L M N K O P Q K L M N K O P Q R@2 S T R S U V W X Y Z AA AB AC AD K L M N K O P Q K L M N K
  O P Q R@2 S T R S U V W X Y Z AA AB AC AD K L M N K O P Q R@2 S T R S U V W X Y Z AE AF AG AH AE AI AJ AK AL
>`.pickRestart({
  A: "[~@15 g1@21 ~ g1@20 ~@2 g1@15 ~@2 g2@4]/5", B: "[~ g1@21 ~@2 g1@19 ~@3 g1@21 ~ g1@15 ~ g2@5 ~ g1@20 ~@2]/7",
  C: "a#1@2 ~@2 a#1@2 ~@2 a#1@3 ~ a#1@3 ~", D: "a#1@3 ~ a#1@3 ~ a#1@2 ~@2 a#1@3 ~",
  E: "d#2@2 ~@2 d#2@3 ~ d#2@2 ~@2 d#2@3 ~", F: "d#2@2 ~@2 d#2@2 ~@2 d#2@3 ~ a#1@3 ~",
  G: "g#1@2 ~@2 g#1@2 ~@2 g#1@2 ~@2 g#1@2 ~ d#2", H: "g#1@2 ~@2 g#1@2 ~ d#2 g#1@2 ~ d#2 g#1@2 ~ g#1",
  I: "a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~ c2", J: "d2@3 ~ d2@2 ~@2 d2@3 ~ d2@2 ~@2", K: "g2@3 ~ g2@3 ~ f#2@3 ~ f#2@3 ~",
  L: "e2@3 ~ e2@3 ~ d2@3 ~ d2@3 ~", M: "c#2@3 ~ c#2@3 ~ a1@3 ~ a1@3 ~", N: "c2@3 ~ c2@3 ~ d2@3 ~ d2@3 ~",
  O: "e2@3 ~ e2@3 ~ d#2@3 ~ d#2@3 ~", P: "d2@3 ~ d2@4 a1@3 ~ a1@3 ~", Q: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~",
  R: "g1@3 ~ g1@2 ~@2 g1@3 ~ g1@3 ~", S: "g1@2 ~@2 g1@2 ~@2 g1@3 ~ g1@3 ~", T: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
  U: "g1 ~ g1 ~ g1 ~ g1 ~", V: "c2@2 ~@2 c2@3 ~ c2@3 ~ c2@2 ~@2", W: "d2@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~@2",
  X: "c#2@2 ~@2 c#2@3 ~ c#2@2 ~@2 c#2@2 ~@2", Y: "a1@3 ~ a1@2 ~@2 a1@3 ~ a1@3 ~", Z: "d2@3 ~ d2@3 ~ d2@2 ~@2 d2@3 ~",
  AA: "a#1@2 ~@2 a#1@3 ~ a#1@2 ~@2 a#1@2 ~ d2", AB: "d#2@2 ~@2 d#2@2 ~@2 d#2@2 ~@2 d#2@2 ~ a#1",
  AC: "g#1@3 ~ g#1@2 ~@2 g#1@2 ~ d#2 g#1@2 ~ g#1", AD: "a1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~",
  AE: "d#2@3 ~ d#2@3 ~ d2@3 ~ d2@3 ~", AF: "c2@3 ~ c2@3 ~ a#1@3 ~ a#1@3 ~", AG: "a1@3 ~ a1@3 ~ f1@3 ~ f1@3 ~",
  AH: "g#1@3 ~ g#1@4 a#1 ~@2 a#1 c2@2 ~ d2", AI: "c2@3 ~ c2@3 ~ b1@3 ~ b1@3 ~", AJ: "a#1@3 ~ a#1@3 ~ f1@3 ~ f1@3 ~",
  AK: "a#1@3 ~ a#1@3 ~ a#1@3 ~ a#1@2 ~@2", AL: "d#2",
})).s("gm_acoustic_bass").gain(0.33)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note("<~@12 A B C D E F G H ~@93>".pickRestart({
  A: "~ [a3,d4,f4] ~ [a3,d4,f4]!3 ~ [a3,d4,f4] ~@3 [a3,d4,f4]!3 ~ [a3,d4,f4]", // Dm
  B: "~@3 [a3,d4,f4]!3 ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4]!3 ~ [a3,d4,f4]", // Dm
  C: "~ d4 ~ [a#3,d4,g4]!3 ~ [a#3,d4,g4] ~@2 d4 [a#3,d4,g4]!3 ~ [a#3,d4,g4]", // Gm
  D: "~ d4 ~ [a#3,d4,g4]!3 ~ [a#3,d4,g4] ~@3 [a#3,d4,g4]!3 ~ [a#3,d4,g4]", // Gm
  E: "~@2 [c4,d#4] [g3,c4,d#4]!2 ~ [g3,c4,d#4]!2 ~@3 [g3,c4,d#4]!3 ~ [g3,c4,d#4]", // Cm
  F: "~ c4 ~ [g3,c4,d#4]!3 ~ [g3,c4,d#4] ~ [g3,c4] ~ [g3,c4,d#4]!3 ~ [g3,c4,d#4]", // Cm C5 Cm
  G: "~@3 [g3,c4,e4]!3 ~ [g3,c4,e4] ~ [c4,e4] ~ [g3,c4,e4]!3 ~ [g3,c4,e4]", // C
  H: "~ [c4,d4] ~ [f#3,c4,d4]!3 ~ [f#3,c4,d4] ~ [f#3,c4,d4] [f#3,c4] d4 [f#3,c4,d4]!2 ~ [f#3,c4,d4]", // Csus2 D7 F#dim D7
})).s("gm_acoustic_guitar_nylon").gain(0.19).pan(0.4)

// chords · acoustic guitar nylon · "NYLON GTR" · soft notes
const acoustic_guitar_nylon_2 = note("<~@12 A B C D E F ~ G ~@93>".pickRestart({
  A: "~@9 [a3,d4] ~@6", B: "~@2 [a3,d4,f4] ~@13", C: "~ [a#3,g4] ~@8 [a#3,g4] ~@5", D: "~ [a#3,g4] ~@7 a#3 ~@6",
  E: "~@2 g3 ~@6 [g3,c4,d#4] ~@6", F: "~ [g3,d#4] ~@8 d#4 ~@5", G: "~ f#3 ~@14",
})).s("gm_acoustic_guitar_nylon").gain(0.1).pan(0.4)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@36 A@4 B@3 C D ~ E@2 ~@20 A@4 B@3 F D ~ G@3 ~@11 A@4 B@3 F D ~ E@2 ~@9>".pickRestart({
  A: "[[b3,g4]@8 [a3,f4]@3 [b3,g4]@4 [c4,a4]@4 [b3,g4]@4 [a3,f4]@4 [b3,g4]@4 [c4,a4]@4 [b3,g4]@4 a3@4 g3@4 e3@8 d#3@5 ~@4, ~@39 f4@8 g4@13 ~@4]/4", // Em Dm Em F Em Dm Em F …
  B: "[[b3,g4]@8 [a3,f4]@3 [b3,g4]@4 [c4,a4]@4 [b3,g4]@4 [a3,f4]@4 [b3,g4]@4 [c4,a4]@4 [b3,g4]@4 [a3,f4]@4 [g3,g4]@5]/3", // Em Dm Em F Em Dm Em F …
  C: "e3@7 d#3@6 ~@3, g4@3 ~", D: "b3@7 d4@9", E: "[b3@7 d4@25]/2", F: "e3@7 d#3@5 ~@4, g4@3 ~",
  G: "[b3@7 d4@26 ~@15]/3",
})).s("gm_epiano1").gain(0.35).pan(0.4)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
  ~@12 A@2 B@2 C@2 D E ~@8 F G H I J K L M N O P Q R S T U ~@2 V@2 ~@4 F G H I J K L M F G H I J K L M N O P Q R S T U
  ~@2 V@2 ~@4 F G H I J K L M N O P Q R S T U ~@2 V@2 W X Y Z AA AB AC AD AE
>`.pickRestart({
  A: "[[a4,d5,f5]@31 ~]/2", B: "[g4,a#4,d5,f5]/2", C: "[[d#5,g5]@8 ~@8 g5@15 ~, [g4,c5]@31 ~, ~@8 d#5@23 ~]/2",
  D: "g5@10 ~ a5 g5@4, [g4,c5,e5]@15 ~", E: "a5 b5, [c5,d5,f#5]", F: "g5@8 f#5@7 ~, [d5,b5]@15 ~",
  G: "[c5,e5]@7 ~ [b4,d5]@7 ~, g5@7 ~", H: "[c#5,e5,a5]@15 ~", I: "[c5,e5,g5]@7 ~ [d5,f#5,a5]@7 ~",
  J: "g5@7 ~ f#5@7 ~, [d5,b5]@7 ~", K: "[e5,g5]@7 ~ [d#5,a5]@7 ~, c5@15 ~", L: "[d5,g5,a5]", M: "[d5,f#5,a5]@15 ~",
  N: "[b4,d5,g5] ~@3 [b4,d5]@2 ~@2 [b4,d5,g5]@2 ~@2 [b4,d5,g5]@2 ~@2, ~@4 g5 ~@11", // G Bm G
  O: "[b4,d5]@2 ~@2 [b4,d5]@2 ~@2 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3, g5 ~@3 g5 ~@11", // Bm G
  P: "[b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5]@2 ~@2, ~@12 g5 ~@3", // G Bm
  Q: "[g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,d#5] ~ [g4,c5,d#5] ~", R: "[b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~",
  S: "[b4,d5,g5]@2 ~@2 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5]@2 ~@2, ~@12 g5 ~@3", // G Bm
  T: "[b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5]@2 ~@2 [b4,d5]@2 ~@2, ~@8 g5 ~@3 g5 ~@3", // G Bm
  U: "[g4,c5,e5]@2 ~@2 [g4,c5,e5]@2 ~@2 [g4,c5,d#5]@2 ~@2 [g4,c5] ~@3, ~@6 d#5 ~", // C Cm C5
  V: "[~@3 [c6,d6], e5, ~ g5@3, ~ a5]/2", W: "d#5@8 d5@7 ~, [a#4,g5]@15 ~", X: "[g#4,c5]@7 ~ [g4,a#4]@7 ~, d#5@7 ~",
  Y: "[a4,c5,f5]@15 ~", Z: "[g#4,c5,d#5]@7 ~ [a#4,d5,f5]@7 ~", AA: "d#5@7 ~ d5@7 ~, [a#4,g5]@7 ~",
  AB: "[c5,d#5]@7 ~ [b4,f5]@7 ~, g#4@15 ~", AC: "[a#4,d#5,f5]", AD: "[a#4,d5,f5]@15 ~", AE: "[a#4,d#5,g5]",
})).s("gm_drawbar_organ").gain(0.27).pan(0.3)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@16 A B C D E F G H I J K L E F G H I J K L ~@4 M N O P Q R S T U V W X E F G H I J K L E F G H I J K L ~@4 M N O P Q
  R S T U V W X E F G H I J K L ~@4 M N O P Q R S T Y Z AA AB AC AD AE AF ~
>`.pickRestart({
  A: "~@2 [c4,d#4,g4] ~@3 [c4,d#4,g4] ~", B: "~@4 [c4,d#4,g4] ~@7 [c4,d#4,g4]@2 ~@2",
  C: "~@2 [c4,e4,g4] ~@3 [c4,e4,g4] ~", D: "~@4 [f#4,c5,d5]@2 ~@6 [f#4,c5,d5] ~@3",
  E: "~@2 [d4,g4,b4] ~@3 [d4,f#4,b4] ~", F: "~@4 [e4,g4,c5]@3 ~@5 [d4,g4,b4]@2 ~@2",
  G: "~@4 [c#4,e4,a4]@3 ~@5 [c#4,e4,a4]@3 ~", H: "~@4 [c4,e4,g4]@3 ~@5 [d4,f#4,a4]@2 ~@2",
  I: "~@4 [d4,g4,b4]@3 ~@5 [d4,f#4,b4]@3 ~", J: "~@4 [e4,g4,c5]@3 ~@5 [c4,d#4,a4]@3 ~", K: "~ [c4,d4,g4] ~ [c4,d4,g4]",
  L: "~@4 [c4,f#4,a4]@3 ~@5 [c4,f#4,a4]@3 ~", M: "[b3,d4,g4] ~@3 [b3,d4,g4]@2 ~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3",
  N: "[b3,d4,g4] ~@3 [b3,d4,g4]@2 ~@2 [b3,d4,g4]@2 ~@2 [b3,d4,g4]@2 ~@2", // G
  O: "[b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~", P: "[c4,e4,g4] ~ [c4,e4,g4] ~ [c4,d#4,g4] ~ [c4,d#4,g4] ~",
  Q: "[b3,d4,g4]@2 ~@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 ~@2 [b3,d4,g4]@3 ~", // G
  R: "[a3,e4,g4]@3 ~ [a3,e4,g4]@3 ~ [a3,e4,g4]@2 ~@2 [a3,e4,g4]@2 ~@2", // A7
  S: "[a3,e4,g4]@2 ~@2 [a3,e4,g4]@3 ~ [a3,e4,g4]@2 ~@2 [a3,e4,g4]@2 ~@2", // A7
  T: "[d4,g4,a4]@2 ~@2 [c4,d4,g4,a4]@3 ~ [c4,d4,g4,a4]@2 ~@2 [c4,d4,g4,a4]@2 ~@2", // Dsus4 Csus2
  U: "~@4 [a3,d4,f4]@3 ~@5 [a3,d4,f4]@2 ~@2", V: "~@4 [a#3,d4,g4]@4 ~@4 [a#3,d4,g4]@3 ~",
  W: "~@4 [c4,d#4,g4]@3 ~@5 [c4,d#4,g4]@3 ~", X: "~@4 [c4,e4,g4]@4 ~@4 [c4,d4,f#4]@3 ~",
  Y: "~@4 [a#3,d#4,g4]@3 ~@5 [a#3,d4,g4]@3 ~", Z: "~@4 [c4,d#4,g#4]@4 ~@4 [a#3,d#4,g4]@3 ~",
  AA: "~@4 [a3,c4,f4]@4 ~@4 [a3,c4,f4]@3 ~", AB: "~@4 [g#3,c4,d#4]@3 ~@5 [a#3,d4,f4]@3 ~",
  AC: "~@4 [a#3,d#4,g4]@4 ~@4 [a#3,d4,g4]@3 ~", AD: "~ [c4,d#4,g#4] ~ [b3,d#4,f4]", AE: "~ [a#3,d#4,f4] ~ [a#3,d#4,f4]",
  AF: "~@4 [a#3,d4,f4]@4 ~@4 [a#3,d4,f4]@3 ~", // A#
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.2)

// other · french horn · "FR.HORN"
const french_horn = note(`<
  ~@6 A@6 B@2 C@2 D@2 E@4 ~ F G@2 ~ F H@2 ~ F I@2 ~ J ~@12 K@2 L@2 H@2 ~ F I@2 ~ J H@2 ~ F I@2 ~ M ~@12 K@2 L@2 H@2 ~ F
  I@2 ~ J ~@12 N@4 O P@3 ~
>`.pickRestart({
  A: "[~@2 a3@4 b3 c4 d4@11 c4@5 b3@5 c4@12 b3@5 a3@6 d4@5 e4@3 d4@2 c4@6 b3@6 c4@11 b3@6 a3@5]/6",
  B: "[d4@26 ~ f4 a#3@2 ~ c4]/2", C: "[d4@26 f4 ~ a#3@2 ~ b3]/2", D: "[c4@26 ~ d#4 g#3@2 ~ a#3]/2",
  E: "[c4@26 ~ d4 e4@2 ~ g4@27 ~@6]/4", F: "~@11 d4 e4 ~@2 g4", G: "g4/2", H: "[g4@5 ~@3]/2", I: "[g4@19 ~@13]/2",
  J: "~@10 d4 ~ e4 ~@2 g4", K: "[d4@26 ~ f4 a#3@2 ~ b3]/2", L: "[c4@26 ~ d4 e4@2 ~ g4]/2", M: "~@10 d4 ~ e4@2 ~ g4",
  N: "[~@7 d#4 g4@2 ~ a#4@2 ~@2 g#4@3 ~ g4@3 ~ f4@3 ~ d#4@2 ~@2 f4@7 ~ g4 f4@2 ~ c4@2 ~@2 d#4@5 ~ f4 ~ d#4 d4@8]/4",
  O: "~@7 d#4 g4@2 ~ a#4@4 ~", P: "[c5@2 ~@2 a#4@3 ~ g#4@2 ~ g4@2 ~@2 a#4@32 ~]/3",
})).s("gm_french_horn").gain(0.44).pan(0.9)

// bass · baritone sax · "BARITONSAX"
const bass_2 = note("<~@28 A B C D E F G H ~@16 A B C D E F G H ~@24 A B C D E F G H ~@12 I@4 J K@3 ~>".pickRestart({
  A: "g2@7 ~ f#2@7 ~", B: "e2@7 ~ d2@7 ~", C: "c#2@7 ~ a1@7 ~", D: "c2@7 ~ d2@7 ~", E: "g2@8 f#2@7 ~",
  F: "e2@7 ~ d#2@7 ~", G: "d2@8 a1@7 ~", H: "d2",
  I: "[~@7 d#2 g2@2 ~ a#2@2 ~@2 g#2@3 ~ g2@3 ~ f2@3 ~ d#2@2 ~@2 f2@7 ~ g2 f2@2 ~ c2@2 ~@2 d#2@5 ~ f2 ~ d#2 d2@8]/4",
  J: "~@7 d#2 g2@2 ~ a#2@4 ~", K: "[c3@2 ~@2 a#2@3 ~ g#2@2 ~ g2@2 ~@2 a#2@32 ~]/3",
})).s("gm_baritone_sax").gain(0.38).pan(0.2)

// other · glockenspiel · "GLOCKENSPL"
const glockenspiel = note(`<
  ~@18 A B C D E F G H I ~ J K L M N O P ~@17 J K L M N O P ~ J K L M N O P ~@17 J K L M N O P ~@13 Q R S T U V W ~ X
>`.pickRestart({
  A: "g5@6 ~@5 a5 g5@3 ~", B: "f#5@5 ~@11", C: "g6@3 ~@5 f#6@2 ~@6", D: "e6@3 ~@5 d6@2 ~@6", E: "c#6 ~@7",
  F: "e6 ~@3 f#6 ~@3", G: "g6 ~@3 f#6 ~@3", H: "e6 ~@3 d#6 ~@3", I: "d6 ~@7", J: "g5@3 ~@5 f#5@3 ~@5",
  K: "e5@5 ~@3 d5@4 ~@4", L: "c#5@5 ~@11", M: "e5@5 ~@3 f#5@5 ~@3", N: "g5@5 ~@3 f#5@5 ~@3", O: "e5@3 ~ d#5@3 ~",
  P: "d5@5 ~@11", Q: "d#6 ~ d6 ~", R: "c6@3 ~@5 a#5@3 ~@5", S: "a5@3 ~@13", T: "c6@3 ~@5 d6@2 ~@6", U: "d#6 ~@3 d6 ~@3",
  V: "c6@4 ~@4 b5@3 ~@5", W: "a#5@3 ~@13", X: "d#6 ~@3",
})).s("gm_glockenspiel").gain(0.33).pan(1)

// drums · kick
const kick = s("bd").struct("<~@16 A B A@18 ~@12 A@20 ~@12 A@12 ~@12 A@7 C@2>".pickRestart({
  A: "x!2", B: "x ~@7 x ~@6 x", C: "x",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct(`<
  ~@15 A B@3 C B@7 C B@7 C ~@8 B@3 C B@3 C B@7 C B@7 C ~@8 B@3 C B@3 C B@7 C ~@8 B@3 C B@7 D ~
>`.pickRestart({
  A: "~@11 x!2 ~@3", B: "~ x ~ x", C: "~@4 x ~@4 x ~ x!3 ~ x", D: "~ x ~ x!3 ~ x!2 ~@7",
})).gain(0.49)

// drums · hihat
const hihat = s("hh").struct("<~@20 A@7 B A@7 C D@12 ~@4 A@7 C A@7 C D@12 ~@4 A@7 C D@12 A@7 C ~>".pickRestart({
  A: "~@3 x!2 ~@2 x ~@3 x!2 ~@2 x", B: "~@3 x!2 ~@2 x ~@8", C: "x ~@2 x!2 ~@2 x!2 ~@3 x ~@3", D: "x!4",
})).gain(0.33)

// drums · open hat
const open_hat = s("oh").struct("<~@20 A@16 ~@16 A@16 ~@16 A@8 ~@12 A@8 ~>".pickRestart({
  A: "x!2",
})).gain(0.38)

// drums · mid tom
const mid_tom = s("mt").struct("<~@111 [~@15 x] ~>").gain(0.55)

// drums · high tom
const high_tom = s("ht").struct("<~@111 [~@9 x ~ x!3 ~@2] ~>").gain(0.49)

// drums · ride
const ride = s("rd").struct("<~@6 A ~@5 B@4 C@4 ~@28 B@3 D ~@28 B@3 D ~@29>".pickRestart({
  A: "~@5 x!4 ~@7", B: "x!4", C: "x ~@3 x ~@2 x!2 ~@3 x ~@2 x", D: "x!3 ~",
})).gain(0.27)

// drums · tambourine
// … 8 more lines