Strudelify
Zorba's Dance cover art

Zorba's Dance

Zorba's Dance

Theodorakis Mikis

KeyG majorTempo107 bpm
0:00/0:00
// Zorba's Dance — Theodorakis Mikis
// 107 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 16 acoustic guitar steel (copy of ch 2 acoustic guitar steel)
// note: Full arrangement: all 109 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(107/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 · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@2 A B C B D E F G H I@2 J K J L M N O P@3 Q R Q S Q T Q S U V U W Q X W Y Z ~ AA AB AA AC AA AD AA AB AE AF AE AG AH
  AI Q S U V U W Q AJ W AK AL AM@2 AN AO AP AM AQ AN AO AR AS AT AS AT AU AV AW AX AY AZ AY AZ BA BB BC BD BE BF BB BG
  BH BI BJ BK AS AT AS AT BL BM BN BO ~
>`.pickRestart({
  A: "~@15 c#4", B: "d4@13 ~@2 c#4", C: "d4@12 ~@2 [d4,e4] c#4", D: "d4@14 b3 ~", E: "c4@13 ~ [c4,d4] b3",
  F: "c4@13 ~@2 a#3", G: "b3@10 ~@2 c4 [a3,b3] g3 b3", H: "a3@11 ~ b3 [g3,a3] f#3 a3", I: "[g3@20 ~@11 [a#4,c#5]]/2",
  J: "[b4,d5]@13 ~@2 [a#4,c#5]", K: "[b4,d5]@13 ~ [b4,c5,e5] [a#4,c#5,d5]", L: "[b4,d5]@13 ~@2 [g#4,b4]",
  M: "[a4,c5]@13 ~ [b4,d5] [g#4,a4,b4,c5]", N: "[a4,c5]@13 ~@2 [a#4,c#5]",
  O: "[b4,d5]@12 [c5,e5] [a4,b4,d5] [g4,c5] [b4,d5]", // Bm C Bm7 C5 Bm
  P: "[[a4,c5]@11 ~ [a4,b4,c5,d5] [g4,b4] [f#4,a4] [a4,c5] g4@19 ~@13, ~@15 b4@20 ~@13]/3", // Am D7 G F#m Am
  Q: "[a#4,c#5]@2 [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~", // A#m Bm
  R: "[b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,c5,e5] d5", // Bm Cmaj7
  S: "[b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~", // Bm
  T: "[b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5]@2 [c5,e5] [b4,d5]", // Bm C Bm
  U: "[g#4,b4]@2 [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~", // G#m Am
  V: "[a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [b4,d5] [a4,c5]", // Am Bm Am
  W: "[a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~", // Am
  X: "[b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [c5,e5] [b4,d5] [a4,b4,c5] [g4,d5]", // Bm C Bm Am G5
  Y: "[a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [b4,d5] [a4,b4,c5] [f#4,g4,a4] c5", Z: "[g4,b4]",
  AA: "[a#4,f#5]@2 [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~", // D#m Em
  AB: "[b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~", // Em
  AC: "[b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [c5,a5] [b4,g5]", // Em F Em
  AD: "[b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5] ~ [b4,g5]@2", // Em
  AE: "[c#5,e5]@2 [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~", // C#m Dm
  AF: "[d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [e5,g5] [d5,f5]", // Dm Em Dm
  AG: "[d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~", // Dm
  AH: "[b4,d#5]@2 [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~", // B C
  AI: "[c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~", // C
  AJ: "[b4,d5]@2 [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,c5,e5] [a4,c5,d5] [g4,b4] d5", // Bm Cmaj7 D7 G
  AK: "[a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [b4,d5] [g4,a4,b4,c5] ~ [f#4,a4,c5]", // Am Bm Cmaj7 F#dim
  AL: "[g4,b4]@7 ~@9", // G
  AM: "~@2 [g4,b4] ~ [g4,b4] ~ [g4,b4] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4] [f#4,a#4] [g4,b4]@2", // G Am G F# G F# G
  AN: "~@2 [g4,b4] ~ [g4,b4] ~ [g4,b4] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4] [a4,c5] [b4,d5]@2", // G Am G F# G Am Bm
  AO: "~@2 [b4,d5]@2 [c5,e5]@2 [a4,c5] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4] [f#4,a#4] [g4,b4]@2", // Bm C Am G Am G F# G …
  AP: "~@2 [g4,a4,c5] ~ [f#4,a4]@2 [g4,b4] ~ [b3,g4] [c4,a4] [b3,g4] [a#3,f#4] [b3,g4] [a#3,f#4] [b3,g4]@2", // Am7 F#m G Em F Em D#m Em …
  AQ: "~@2 [g4,b4] ~ [g4,b4] ~ [g4,b4] ~ [g4,b4] [g4,a4,c5] [a#4,b4] f#4 [g4,b4] [f#4,a#4] [g4,b4]@2", // G Am7 Bmaj7 G F# G
  AR: "~@2 [a4,c5]@2 [f#4,a4]@2 [g4,b4] ~ [b3,g4] [c4,a4] [b3,g4] [a#3,f#4] [b3,g4] [a#3,f#4] [b3,g4]@2", // Am F#m G Em F Em D#m Em …
  AS: "~@2 [e5,g5]@2 ~@2 [e5,g5] ~ [d5,f#5]@2 ~@2 [c5,e5]@2 ~@2", // Em D C
  AT: "[b4,d5]@2 [c5,e5]@2 ~@2 [a4,c5] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4] [f#4,a#4] [g4,b4]@2", // Bm C Am G Am G F# G …
  AU: "~@2 b5 [g5,b5]!5 [d5,f#5] [f#5,a5] [e5,g5] [d5,f#5] [c5,e5] [e5,g5] [d5,f#5] [c5,e5]", // G D F#m Em D C Em D …
  AV: "[b4,d5] [d5,f#5] [c5,e5] [b4,d5] [a4,c5] [c5,e5] [b4,d5] [a4,c5] [b4,d5] [a#4,c#5] [b4,d5] [c5,e5] [b4,d5] ~ [g4,b4]@2", // Bm D C Bm Am C Bm Am …
  AW: "~@2 b5 [g5,b5,c6] [g5,b5]!4 [d5,f#5] [f#5,a5] [e5,g5] [d5,f#5] [c5,e5] [e5,g5] [d5,f#5] [c5,e5]", // Cmaj7 G D F#m Em D C Em …
  AX: "[b4,d5] [d5,f#5] [c5,e5] [b4,d5] [a4,c5] [c5,e5] [b4,d5] c5 [b4,d5] [c5,e5] [b4,d5] [a#4,c#5] [b4,d5] ~ [g4,b4]@2", // Bm D C Bm Am C Bm C …
  AY: "~@2 [e5,g5]@2 ~@2 [e5,g5] ~ [d5,f#5]@2 ~@2 [f#5,a5]@2 ~@2", // Em D F#m
  AZ: "[b4,d5]@2 [c5,e5]@2 ~@2 [a4,c5] ~ [b4,d5] [c5,e5] [b4,d5] [a#4,c#5] [b4,d5]@2 [g4,b4]@2", // Bm C Am Bm C Bm A#m Bm …
  BA: "~@2 [c5,e5]@2 [a4,c5]@2 [b4,d5] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4]@2 g4@2", // C Am Bm G Am G F# G
  BB: "~@2 [g4,b4]@2 [a4,c5]@2 [c5,e5] ~ [b4,d5] [c5,e5] [b4,d5] [a#4,c#5] [b4,d5]@2 [g4,b4]@2", // G Am C Bm C Bm A#m Bm …
  BC: "[b4,d5]@2 [c5,e5]@3 ~ [a4,c5] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4]@2 g4@2", // Bm C Am G Am G F# G
  BD: "~@2 [c5,e5] ~ [a4,c5] ~ [b4,d5] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4]@2 g4@2", // C Am Bm G Am G F# G
  BE: "~@2 [g4,b4]@2 [a4,c5]@2 [c5,e5] ~@2 [b4,c5,d5,e5] [b4,d5] [a#4,c#5] [b4,d5]@2 [g4,b4]@2", // G Am C Cmaj7 Bm A#m Bm G
  BF: "~@2 [c5,e5] ~ [a4,c5] ~ [b4,d5] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4]@2 g4 ~", // C Am Bm G Am G F# G
  BG: "~@2 [c5,e5]@2 [a4,c5] ~ [b4,d5] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4] [f#4,a#4] [g4,b4]@2", // C Am Bm G Am G F# G …
  BH: "~@2 [g4,b4]@2 [a4,c5] ~ [c5,e5] ~ [b4,d5] [c5,e5] [b4,d5] [a#4,c#5] [b4,d5] [a#4,c#5] [b4,d5]@2", // G Am C Bm C Bm A#m Bm …
  BI: "~@2 [c5,e5]@2 [a4,c5]@2 [b4,d5] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4] [f#4,a#4] [g4,b4]@2", // C Am Bm G Am G F# G …
  BJ: "~@2 [g4,b4]@2 [a4,c5] ~ [c5,e5] ~ [b4,d5] [c5,e5] [b4,d5] [a4,c5] [g4,b4]@4", // G Am C Bm C Bm Am G
  BK: "~@2 [c5,e5]@2 ~@2 [a4,c5] ~ [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4] [f#4,a#4] [g4,b4]@2", // C Am G Am G F# G F# …
  BL: "~@2 [g5,b5]!6 [d5,e5,f#5] [f#5,a5] [e5,g5] [d5,f#5] [c5,e5] [e5,g5] [d5,f#5] [c5,e5]", // G D F#m Em D C Em D …
  BM: "[b4,d5] [c5,e5] [a4,c5] [b4,d5] [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4] [f#4,a#4] [g4,b4]@4 [d4,g4]@2", // Bm C Am Bm G Am G F# …
  BN: "~@2 b5 [g5,b5]!2 b5 [g5,b5]!2 [d5,f#5] [f#5,a5] [e5,g5] [d5,f#5] [c5,e5] [e5,g5] [d5,f#5] [c5,e5]", // G D F#m Em D C Em D …
  BO: "[b4,d5] [c5,e5] [a4,c5] [b4,d5] [g4,b4] [a4,c5] [g4,b4] [f#4,a#4] [g4,b4] [f#4,a#4] [g4,b4]@3 ~ [g4,b4]@2", // Bm C Am Bm G Am G F# …
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(1)

// chords · banjo
const banjo = note(`<
  ~ A@6 B@2 A C A@6 B@2 A D A@10 B@4 A@2 B E A@10 F G@3 H@2 I A B@4 A@2 B E J@11 K L K M N O K M K M N L P Q R@8 S T K L
  K L K L K U ~
>`.pickRestart({
  A: "[b2,g3] ~@3 [b2,g3] ~@3 [b2,g3] ~@3 [b2,g3] ~@3", B: "[c3,a3] ~@3 [c3,a3] ~@3 [c3,a3] ~@3 [c3,a3] ~@3",
  C: "[c3,a3] ~@3 [c3,a3] ~@3 [c3,f#3,a3] ~@3 [c3,f#3,a3] ~@3", D: "[c3,a3] ~@3 [c3,a3] ~@3 [f#3,a3] ~@3 [f#3,a3] ~@3",
  E: "[f#3,a3] ~@3 [f#3,a3] ~@3 [f#3,a3] ~@3 [f#3,a3] ~@3", F: "[b2,g3] ~@3 [b2,f3] ~@3 [b2,f3] ~@3 [b2,f3] ~@3",
  G: "[b2,f3] ~@3 [b2,f3] ~@3 [b2,f3] ~@3 [b2,f3] ~@3", H: "[c3,e3] ~@3 [c3,e3] ~@3 [c3,e3] ~@3 [c3,e3] ~@3",
  I: "[b2,d3] ~@3 [b2,g3] ~@3 [b2,g3] ~@3 [b2,g3] ~@3", J: "~@2 [b2,g3] ~@3 [b2,g3] ~@3 [b2,g3] ~@3 [b2,g3] ~",
  K: "~@2 [b2,g3] ~@3 [b2,g3] ~ [c3,g3] ~@3 [c3,g3] ~@3", // Em C5
  L: "[d3,f#3] ~ [d3,f#3] ~@3 [d3,f#3] ~ [b2,g3] ~@3 [b2,g3] ~ [b2,g3] ~", // D Em
  M: "[d3,f#3] ~ [d3,f#3] ~@3 [d3,f#3] ~ [b2,g3] ~@3 [b2,g3] ~@3", // D Em
  N: "[b2,g3] ~ [b2,g3] ~@3 [b2,g3] ~ [c3,g3] ~@3 [c3,g3] ~@3", // Em C5
  O: "[d3,f#3] ~ [d3,f#3] ~@3 [d3,f#3] ~ [b2,g3] ~ [b2,g3] ~@4 [b2,g3]", // D Em
  P: "[b2,g3] ~ [b2,g3] ~@3 [b2,g3] ~ [b2,g3] ~@3 [b2,g3] ~@3", // Em
  Q: "g3 ~ [b2,g3] ~@3 [b2,g3] ~ [b2,g3] ~@3 [b2,g3] ~ [b2,g3] ~", // Em
  R: "~@2 [b2,g3] ~@3 [b2,g3] ~ [b2,g3] ~@3 [b2,g3] ~ [b2,g3] ~", // Em
  S: "~@2 [b2,g3] ~@3 [b2,g3] ~ [b2,g3] ~@3 [b2,g3] ~@3", // Em
  T: "[b2,g3] ~ [b2,g3] ~@3 [b2,g3] ~ [b2,g3] ~@3 [b2,g3] ~ [b2,g3] ~", // Em
  U: "[d3,f#3] ~ [d3,f#3] ~@3 [d3,f#3] ~ [b2,g3] ~ [b2,g3] ~@3 [b2,g3] ~", // D Em
})).s("gm_banjo").gain(0.31).pan(0.2)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  ~ A@6 B@2 A C A@6 B@2 A C A D E A@7 B@4 A@2 B F A@14 G@2 A@2 B@4 A@2 B F H I H@9 J K J L J M N O J M J P H@12 J M J M
  J Q R M ~
>`.pickRestart({
  A: "~@4 [b3,d4,g4] ~@7 [b3,d4,g4] ~@3", B: "~@4 [c4,e4,a4] ~@7 [c4,e4,a4] ~@3",
  C: "~@4 [c4,e4,a4] ~@7 [a3,d4,f#4] ~@3", D: "~@4 [b3,d4,g4] ~@3 d3 e3 ~ d3 c3 b2 ~ a2",
  E: "~ a2 ~@2 [b3,d4,g4]@2 ~@6 [b3,d4,g4] ~@3, g2@3 ~@13", F: "~@4 [a3,d4,f#4] ~@7 [a3,d4,f#4] ~@3",
  G: "~@4 [c4,e4,g4] ~@7 [c4,e4,g4] ~@3", H: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~",
  I: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,f4,g4] ~", // G G7
  J: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~", // G C
  K: "~@2 [c4,d4,f#4] ~@3 [c4,d4,f#4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~", // D7 G
  L: "[c4,d4,f#4] ~ [c4,d4,f#4] ~@3 [c4,d4,f#4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~", // D7 G
  M: "[a3,d4,f#4] ~ [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~", // D G
  N: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~@3 [c4,e4,g4] ~", // G C
  O: "[c4,d4,f#4] ~ [c4,d4,f#4] ~@3 [b3,c4,d4,f#4] ~ f#4 ~ [b3,d4,g4] ~@3 [b3,d4,g4] ~", // D7 Bm G
  P: "~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~", // D G
  Q: "~@2 [a3,d4,f#4] ~ [a3,d4,f#4] ~@5 [b3,d4,g4] ~@3 [b3,d4,g4] ~", // D G
  R: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~ [c4,e4,g4] ~@3 [c4,e4,g4] ~@3", // G C
})).s("gm_electric_guitar_muted").gain(0.36).pan(0.8)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A@3 ~@7 B C@2 ~@7 D E@2 F@3 G@3 H@4 I@4 J@3 K L M@8 N@3 O@2 P@8 Q@2 R ~@43
>`.pickRestart({
  A: "[~@15 d3 [g3,g4]@12 ~@3 d3 [g3,d4,g4]@14 ~@2, ~@15 [b3,d4]@13 ~@3 b3@15 ~@2]/3", // G G5 Bm
  B: "~ f#4, ~@3 d3@5, ~@7 [f#3,a3,d4]@9", C: "[~@16 [g3,d4,g4]@13 ~@3, ~@15 [d3,b3]@14 ~@3]/2",
  D: "~@7 d3 [f#3,d4,f#4]@8, ~@7 a3@9", E: "[~@16 [g3,d4,g4]@13 ~@3, ~@7 d3 ~@8, ~@15 b3@14 ~@3]/2",
  F: "[[g3,b3,d4,g4]@25 ~@7 [d4,g4]@14 ~@2, ~@31 [g3,b3]@14 ~@3]/3", // G G5 G
  G: "[~@15 d3 [g3,d4,g4]@25 ~@6 d3, ~@15 b3@25 ~@8]/3", // G5
  H: "[[g3,b3,d4,g4]@25 ~@7 [c4,e4,a4]@20 ~@11 e3, ~@31 a3@18 ~@15]/4", // G Am
  I: "[[c4,e4]@18 ~@13 d3 [d4,g4]@25 ~@7, a4@16 ~@16 g3@17 ~@15, a3@12 ~@19 b3@25 ~@8]/4", // C G5
  J: "[[a3,c4,e4,a4]@9 ~@5 d3 ~ f#4@13 ~@2 d3 [g3,d4,g4]@14 ~ d3, ~@15 [f#3,a3,d4]@13 ~@3 b3@15 ~@2]/3", // Am G5 D
  K: "[g3,b3,d4,g4]@13 ~@2 d3", L: "[g3,b3,g4]",
  M: "[~@14 d3 ~ [d4,g4]@29 ~@3 [d4,g4]@27 ~@4 d3 [g3,d4,g4]@22 ~@9 d3 [g3,d4,f4]@16, ~@15 b3@29 ~@3 b3@27 ~@5 b3@23 ~@9 b3@17, ~@16 g3@7 ~@23 d3@2 g3@5 ~@75]/8", // G5 G7
  N: "[~@15 d3 [g3,d4,f4]@24 ~@7 c3, ~@15 b3@25 ~@8]/3", O: "[[g3,c4,e4]@24 ~@7 d3]/2",
  P: "[~ [g3,d4,g4]@23 ~@8 [a3,e4]@19 ~@13 [a3,c4,e4]@19 ~@12 d3 [g3,d4,g4]@25 ~@6 e3, b3@23 ~@8 c4@19 ~@45 b3@25 ~@8, ~@31 e3@17 ~@15 e3@9 ~@56]/8", // G5 A5 Am G5
  Q: "[[a3,c4,e4]@9 ~@6 d3 [f#3,d4,f#4]@12 ~@3 d3, ~@15 a3@12 ~@5]/2", R: "[b3,d4,g4]@7 ~, g3@11 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.26).pan(0.3)

// bass · acoustic bass
const bass = note(`<
  ~ A@4 B A C@2 D E F A@2 F A@2 G@2 D E A@6 B A B H C@3 I A@2 I J A@14 K L A H C@3 I M H I J N@2 O N P N@6 Q R S R S T S
  U S R S R V W@2 X V Y Z AA V Z W AB AC R S R S AD S AE ~
>`.pickRestart({
  A: "g2@3 ~ d2@3 ~", B: "g2@5 ~@3 d2@6 ~@2", C: "a2@5 ~@3 e2@6 ~@2", D: "g2@3 ~ g2@3 ~", E: "a2@5 ~@3 d2@6 ~@2",
  F: "g2@7 ~ d2@6 ~@2", G: "a2@3 ~ e2@3 ~", H: "g2@6 ~@2 d2@3 ~ g2@3 ~", I: "a2@5 ~@3 e2@3 ~ a2@3 ~",
  J: "d2@6 ~@2 a2@4 d3@3 ~", K: "c2@5 ~@3 g1@5 ~@3", L: "c2@6 ~@2 g2@3 ~ c3@3 ~", M: "g2@5 ~@3 d2@5 ~@3",
  N: "g2@3 ~ d2@2 ~@2 g2@3 ~ d2@2 ~@2", O: "g2@3 ~ d2@2 ~@2 g2@2 ~@2 d2@2 ~@2", P: "g2 ~ d2 ~ g2 ~ d2 ~",
  Q: "g2@2 ~@2 g2@3 ~ c2@3 ~ c2@3 ~", R: "d2 ~ d2@2 ~@2 d2 ~ g2@3 ~ d2@4", S: "g2 ~ g2@2 ~@2 g2@2 c2@2 ~@2 c2@3 ~",
  T: "d2@2 ~@2 d2@3 ~ g2@3 ~ d2@4", U: "d2 ~ d2@2 ~@2 d2 ~ g2@3 ~ d2@3 ~", V: "g2 ~ g2@3 ~ d2 ~ g2@3 ~ d2@4",
  W: "g2 ~ g2@3 ~ d2@2 g2@4 d2@4", X: "g2@2 d2@2 ~@2 d2 ~ g2@4 d2@4", Y: "g2 ~ g2@3 ~ d2@2 g2@3 ~ d2@3 ~",
  Z: "g2@3 ~ d2@2 ~@2 g2@3 ~ d2@3 ~", AA: "g2@3 ~ d2@3 ~ g2@4 d2@4", AB: "g2@3 ~ d2@3 ~ g2 ~ g2@4 d2 ~",
  AC: "g2 ~@3 g2@2 ~@2 c2@2 ~@2 c2@3 ~", AD: "d2 ~ d2@2 ~@2 d2@2 g2@3 ~ d2@4",
  AE: "d2 ~ d2@2 ~@2 d2 ~ g2@2 ~@2 g2 ~ g2@2",
})).s("gm_acoustic_bass").gain(0.36)

// drums · kick
const kick = s("bd").struct("<~ A@64 B@14 C B C B C B C B C B@19 D ~>".pickRestart({
  A: "x!2", B: "x!4", C: "x!2 ~ x!2 ~ x ~", D: "x ~ x ~ x ~ x!2",
})).gain(0.41)

// drums · rim
const rim = s("rim").struct("<~ [~ x ~ x]!64 ~@44>").gain(0.51)

// drums · snare
const snare = s("sd").struct("<~@65 [~ x ~ x ~ x ~ x]!43 ~>").gain(0.46)

// drums · hihat
const hihat = s("hh").struct("<~ A@86 B A@13 B A B A B A C ~>".pickRestart({
  A: "x!4", B: "x!2 ~ x!2 ~ x ~", C: "x!2 ~ x!2 ~ x!2",
})).gain(0.46)

stack(acoustic_guitar_steel, banjo, electric_guitar_muted, acoustic_guitar_nylon, bass, kick, rim, snare, hihat)