Strudelify
98-6 cover art

98.6 / Ain't Gonna Lie

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, A@4 for four bars: 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@2 D E F G H I J K L M J N O P J K L M J N O P Q@3 R Q@2 S R P T U P V W X Y J K L M J N O P J K L M J N O P
  Q@3 R Q@2 S R P T U P V W X Y J K L M J N O P Q@3 R Q@2 S R P T U P Z AA AB AC Z AD AE AF AG
>`.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: "d#2@2 ~@2 d#2@3 ~ d#2@2 ~@2 d#2@3 ~",
  E: "d#2@2 ~@2 d#2@2 ~@2 d#2@3 ~ a#1@3 ~", F: "g#1@2 ~@2 g#1@2 ~@2 g#1@2 ~@2 g#1@2 ~ d#2",
  G: "g#1@2 ~@2 g#1@2 ~ d#2 g#1@2 ~ d#2 g#1@2 ~ g#1", H: "a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~ c2",
  I: "d2@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~@2", J: "g2@3 ~ g2@3 ~ f#2@3 ~ f#2@3 ~", K: "e2@3 ~ e2@3 ~ d2@3 ~ d2@3 ~",
  L: "c#2@3 ~ c#2@3 ~ a1@3 ~ a1@3 ~", M: "c2@3 ~ c2@3 ~ d2@3 ~ d2@3 ~", N: "e2@3 ~ e2@3 ~ d#2@3 ~ d#2@3 ~",
  O: "d2@3 ~ d2@4 a1@3 ~ a1@3 ~", P: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~", Q: "g1@3 ~ g1@2 ~@2 g1@3 ~ g1@3 ~",
  R: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~", S: "g1 ~ g1 ~ g1 ~ g1 ~", T: "c#2@2 ~@2 c#2@3 ~ c#2@2 ~@2 c#2@2 ~@2",
  U: "a1@3 ~ a1@2 ~@2 a1@3 ~ a1@3 ~", V: "a#1@2 ~@2 a#1@3 ~ a#1@2 ~@2 a#1@2 ~ d2",
  W: "d#2@2 ~@2 d#2@2 ~@2 d#2@2 ~@2 d#2@2 ~ a#1", X: "g#1@3 ~ g#1@2 ~@2 g#1@2 ~ d#2 g#1@2 ~ g#1",
  Y: "a1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~", Z: "d#2@3 ~ d#2@3 ~ d2@3 ~ d2@3 ~", AA: "c2@3 ~ c2@3 ~ a#1@3 ~ a#1@3 ~",
  AB: "a1@3 ~ a1@3 ~ f1@3 ~ f1@3 ~", AC: "g#1@3 ~ g#1@4 a#1 ~@2 a#1 c2@2 ~ d2", AD: "c2@3 ~ c2@3 ~ b1@3 ~ b1@3 ~",
  AE: "a#1@3 ~ a#1@3 ~ f1@3 ~ f1@3 ~", AF: "a#1@3 ~ a#1@3 ~ a#1@3 ~ a#1@2 ~@2", AG: "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 C D ~ E@2 ~@12 A@4 B@3 C 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@5 ~@4, g4@3 ~", D: "b3@7 d4@9", E: "[b3@7 d4@25]/2",
})).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 F J K L M N O P M N M P ~@2 Q@2 ~@4 F G H I F J K L F G H I F J K L M N O P M N M P
  ~@2 Q@2 ~@4 F G H I F J K L M N O P M N M P ~@2 Q@2 R S T U R V W X Y
>`.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: "[e5,g5]@7 ~ [d#5,a5]@7 ~, c5@15 ~", K: "[d5,g5,a5]", L: "[d5,f#5,a5]@15 ~",
  M: "[b4,d5,g5] ~@3 [b4,d5]@2 ~@2 [b4,d5,g5]@2 ~@2 [b4,d5,g5]@2 ~@2, ~@4 g5 ~@11", // G Bm G
  N: "[b4,d5]@2 ~@2 [b4,d5]@2 ~@2 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3, g5 ~@3 g5 ~@11", // Bm G
  O: "[b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5]@2 ~@2, ~@12 g5 ~@3", // G Bm
  P: "[g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,d#5] ~ [g4,c5,d#5] ~", Q: "[~@3 [c6,d6], e5, ~ g5@3, ~ a5]/2",
  R: "d#5@8 d5@7 ~, [a#4,g5]@15 ~", S: "[g#4,c5]@7 ~ [g4,a#4]@7 ~, d#5@7 ~", T: "[a4,c5,f5]@15 ~",
  U: "[g#4,c5,d#5]@7 ~ [a#4,d5,f5]@7 ~", V: "[c5,d#5]@7 ~ [b4,f5]@7 ~, g#4@15 ~", W: "[a#4,d#5,f5]",
  X: "[a#4,d5,f5]@15 ~", Y: "[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@2 B C D E F G H I J K D E F G H I J K ~@4 L M@2 N O P@2 Q R S T U D E F G H I J K D E F G H I J K ~@4 L M@2 N O
  P@2 Q R S T U D E F G H I J K ~@4 L M@2 N O P@2 Q V W X Y V Z AA AB ~
>`.pickRestart({
  A: "~@2 [c4,d#4,g4] ~@3 [c4,d#4,g4] ~", B: "~@2 [c4,e4,g4] ~@3 [c4,e4,g4] ~",
  C: "~@4 [f#4,c5,d5]@2 ~@6 [f#4,c5,d5] ~@3", D: "~@2 [d4,g4,b4] ~@3 [d4,f#4,b4] ~",
  E: "~@4 [e4,g4,c5]@3 ~@5 [d4,g4,b4]@2 ~@2", F: "~@4 [c#4,e4,a4]@3 ~@5 [c#4,e4,a4]@3 ~",
  G: "~@4 [c4,e4,g4]@3 ~@5 [d4,f#4,a4]@2 ~@2", H: "~@4 [d4,g4,b4]@3 ~@5 [d4,f#4,b4]@3 ~",
  I: "~@4 [e4,g4,c5]@3 ~@5 [c4,d#4,a4]@3 ~", J: "~ [c4,d4,g4] ~ [c4,d4,g4]", K: "~@4 [c4,f#4,a4]@3 ~@5 [c4,f#4,a4]@3 ~",
  L: "[b3,d4,g4] ~@3 [b3,d4,g4]@2 ~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3", // G
  M: "[b3,d4,g4] ~@3 [b3,d4,g4]@2 ~@2 [b3,d4,g4]@2 ~@2 [b3,d4,g4]@2 ~@2", // G
  N: "[c4,e4,g4] ~ [c4,e4,g4] ~ [c4,d#4,g4] ~ [c4,d#4,g4] ~", // C Cm
  O: "[b3,d4,g4]@2 ~@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 ~@2 [b3,d4,g4]@3 ~", // G
  P: "[a3,e4,g4]@3 ~ [a3,e4,g4]@3 ~ [a3,e4,g4]@2 ~@2 [a3,e4,g4]@2 ~@2", // A7
  Q: "[d4,g4,a4]@2 ~@2 [c4,d4,g4,a4]@3 ~ [c4,d4,g4,a4]@2 ~@2 [c4,d4,g4,a4]@2 ~@2", // Dsus4 Csus2
  R: "~@4 [a3,d4,f4]@3 ~@5 [a3,d4,f4]@2 ~@2", S: "~@4 [a#3,d4,g4]@4 ~@4 [a#3,d4,g4]@3 ~",
  T: "~@4 [c4,d#4,g4]@3 ~@5 [c4,d#4,g4]@3 ~", U: "~@4 [c4,e4,g4]@4 ~@4 [c4,d4,f#4]@3 ~",
  V: "~@4 [a#3,d#4,g4]@3 ~@5 [a#3,d4,g4]@3 ~", W: "~@4 [c4,d#4,g#4]@4 ~@4 [a#3,d#4,g4]@3 ~",
  X: "~@4 [a3,c4,f4]@4 ~@4 [a3,c4,f4]@3 ~", Y: "~@4 [g#3,c4,d#4]@3 ~@5 [a#3,d4,f4]@3 ~",
  Z: "~ [c4,d#4,g#4] ~ [b3,d#4,f4]", AA: "~ [a#3,d#4,f4] ~ [a#3,d#4,f4]", AB: "~@4 [a#3,d4,f4]@4 ~@4 [a#3,d4,f4]@3 ~",
})).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 H@2 ~ F ~@12 C@2 I@2 H@2 ~ F H@2 ~ F H@2 ~ F H@2 ~ F ~@12 C@2 I@2 H@2 ~ F
  H@2 ~ F ~@12 J@4 K L@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: "[c4@26 ~ d4 e4@2 ~ g4]/2",
  J: "[~@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",
  K: "~@7 d#4 g4@2 ~ a#4@4 ~", L: "[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 A E F G ~@16 A B C D A E F G ~@24 A B C D A E F G ~@12 H@4 I J@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: "e2@7 ~ d#2@7 ~",
  F: "d2@8 a1@7 ~", G: "d2",
  H: "[~@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",
  I: "~@7 d#2 g2@2 ~ a#2@4 ~", J: "[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
const tambourine = s("tb").struct("<~@16 A@20 ~@12 A@3 B A@16 ~@12 A@3 B A@8 ~@12 A@8 ~>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.44)

stack(
  piano, bass, acoustic_guitar_nylon, acoustic_guitar_nylon_2, epiano1, drawbar_organ, electric_guitar_jazz,
  french_horn, bass_2, glockenspiel, kick, snare, hihat, open_hat, mid_tom, high_tom, ride, tambourine
)