Strudelify

Zwickt's Mi

Wolfgang Ambros

KeyG majorTempo112 bpm
0:00/0:00
// Zwickt's Mi — Wolfgang Ambros
// 112 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 81 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/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.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B@2 C D E F G H I J B@2 C D E F G K L J M N O P Q N R S T U V W X Y Z AA T AB AC AD AE AF AG AH AI AJ L J AK N AL P
  AM AN R AO AM AP AQ W AM AR AS AT AU AN AL AV AM AW R AO Q AP AQ AX T AR Z AY
>`.pickRestart({
  A: "~@5 e2 f2 f#2, ~@10 f2 ~@5", B: "g2@3 ~ d2@3 ~ g2@3 ~ d2@3 ~", C: "g2@4 d2@3 ~ f2@3 ~ c2@3 ~",
  D: "d2@2 e2 f#2 g2 b1 c2 d2", E: "g2@3 ~ d2@3 ~ f2@3 ~ c2@3 ~", F: "d2@4 e2@2 f#2@2 g2@2 f2@2 e2@2 d2 ~",
  G: "c2@3 ~ g1@3 ~ c2@4 g1@2 c2@2", H: "d#2@3 ~ a#1@3 ~ d#2@4 a#1@2 d#2@2", I: "a1@4 e2@3 ~ a1@4 b1@2 c#2@2",
  J: "d2 ~@7", K: "d#2@3 ~ a#1@3 ~ d#2@4 a#1@2 d#2 ~", L: "a1@2 e2@2 a1@2 b1 c#2", M: "g2@2 ~@2 d2@3 ~ g2@4 d2@2 g2@2",
  N: "a2@4 e2@4 a2@3 ~ a2@2 g2@2", O: "f2@3 ~ c2@3 ~ f2@2 e2@2 f2@2 f#2@2", P: "g2 b1 c2 d2",
  Q: "g2@3 ~ d2@4 g2@4 d2@2 g2@2", R: "f2@2 c2@2 f2@2 c2 f2", S: "d2@3 ~ f#2@4 a2@2 d2@2 e2@2 f#2@2",
  T: "g2@3 ~ d2@3 ~ g2@4 d2@2 g2@2", U: "a2@3 ~ e2@3 ~ a2@4 e2@2 a2@2", V: "a1 ~ a1@2 c#2 ~ c#2@2 e2@2 e2@2 f#2@2 e2 ~",
  W: "d2 ~@15", X: "g2@3 ~ d2@2 ~@2 g2@4 d2@2 g2@2", Y: "a2@4 e2@2 a2@2 d#2@3 ~ d#2@3 ~",
  Z: "d2@3 ~ d2@4 ~@2 d2@2 e2@2 f#2@2", AA: "g2@3 ~ d2@4 g2@2 f#2@2 e2@2 d2@2", AB: "a2@3 ~ e2@4 a2@4 e2@2 a2@2",
  AC: "f2@4 c2@3 ~ f2@4 c2@2 f2@2", AD: "g2@2 d2@2 g2 d2 e2 f#2", AE: "g2@3 ~ d2@3 ~ f2@4 c2@4",
  AF: "d2@4 e2 ~ f#2@2 g2@2 b1@2 c2@2 d2@2", AG: "g2@3 ~ d2@4 f2@4 c2@4", AH: "d2@2 e2 f#2 g2 f2 e2 d2",
  AI: "c2@2 g1@2 c2@2 g1 c2", AJ: "d#2@2 a#1@2 d#2@2 a#1 d#2", AK: "g2 ~ d2@2 g2@2 d2 g2", AL: "f2@2 c2@2 f2 e2 f2 f#2",
  AM: "g2@2 d2@2 g2@2 d2 g2", AN: "a2@2 e2@2 a2@2 a2 g2", AO: "d2@2 f#2@2 a2 d2 e2 f#2", AP: "a2@2 e2@2 a2@2 e2 a2",
  AQ: "a1 ~ a1@2 c#2 ~ c#2@2 e2 ~ e2@2 c#2@2 e2@2", AR: "a2@2 e2 a2 d#2@2 a#1 d#2", AS: "d2@2 d2@2 ~ d2 e2 f#2",
  AT: "g2@4 d2@3 ~ g2@2 f#2@2 e2@2 d2@2, ~@7 d2@3 ~@6", AU: "g2@4 d2@4 g2@3 ~ d2@2 g2@2",
  AV: "g2@4 b1@2 b1@2 c2@2 c2@2 d2 ~ d2@2", AW: "a2@3 ~ e2@4 a2@3 ~ a2@2 g2@2", AX: "d2 ~@4 d2 e2 f#2",
  AY: "g2 ~@3 d2@2 e2 f#2 g2 ~@3 g2 ~@3",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A@2 B C B C D E F G A@2 B C B C D E F H A I J A@2 I J K A I L M A N K O A I J A B P B Q D E F G R I J A@2 I J K R I
  L M A N K A@2 I J A@2 I S K A I L M A N T@2
>`.pickRestart({
  A: "~@2 [b3,d4,g4]!3 ~ [b3,d4,g4]!2 ~@2 [b3,d4,g4]!3 ~ [b3,d4,g4]!2", // G
  B: "~@2 [b3,d4,g4]!3 ~ [b3,d4,g4]!2 ~@2 [a3,c4,f4]!3 ~ [a3,c4,f4]!2", // G F
  C: "~@2 [a3,c4,f#4]!3 ~ [a3,c4,f#4]!2 ~@2 [b3,d4,g4]!3 ~ [b3,d4,g4]!2", // F#dim G
  D: "~@2 [c4,e4,a#4]!3 ~ [c4,e4,a#4]!2 ~@2 [c4,e4,a#4]!3 ~ [c4,e4,a#4]!2", // C7
  E: "~@2 [a#3,c#4,g4]!3 ~ [a#3,c#4,g4]!2 ~@2 [a#3,c#4,g4]!3 ~ [a#3,c#4,g4]!2", // Gdim
  F: "~@2 [a3,c#4,e4]!3 ~ [a3,c#4,e4]!2 ~@2 [a3,c#4,e4]!3 ~ [a3,c#4,e4]!2", G: "[a3,d4,f#4] ~@15",
  H: "[a3,c#4,d4,f#4] ~@15", I: "~@2 [c4,e4,a4]!3 ~ [c4,e4,a4]!2 ~@2 [c4,e4,a4]!3 ~ [c4,e4,a4]!2",
  J: "~@2 [c4,f4,a4]!3 ~ [c4,f4,a4]!2 ~@2 [c4,f4,a4]!3 ~ [c4,f4,a4]!2", // F
  K: "~@2 [a3,c4,f#4]!3 ~ [a3,c4,f#4]!2 ~@2 [a3,c4,f#4]!3 ~ [a3,c4,f#4]!2", // F#dim
  L: "~@2 [c#4,e4,a4]!3 ~ [c#4,e4,a4]!2 ~@2 [c#4,e4,a4]!3 ~ [c#4,e4,a4]!2", M: "[d4,f#4,a4] ~@15",
  N: "~@2 [c4,e4,a4]!3 ~ [c4,e4,a4]!2 ~@2 [a#3,d#4,g4]!3 ~ [a#3,d#4,g4]!2", // Am D#
  O: "~@2 [b3,d4,g4]!3 ~ [b3,d4,g4]!2 ~@2 [b3,d4,g4]!3 ~ [b3,d4,f#4,g4] [b3,d4,g4]", // G Gmaj7 G
  P: "~@2 [c4,f#4]!2 [a3,c4,f#4] ~ [a3,c4,f#4]!2 ~@2 [b3,d4,g4]!3 ~ [b3,d4,g4]!2", // Cdim F#dim G
  Q: "~@2 [a3,c4,f#4]!3 ~ [a3,c4,f#4]!2 ~@2 [b3,d4,f#4,g4] [b3,d4,g4]!2 ~ [b3,d4,f#4,g4] [b3,d4,g4]", // F#dim Gmaj7 G Gmaj7 G
  R: "~@2 [b3,d4,f#4,g4] [b3,d4,g4]!2 ~ [b3,d4,g4]!2 ~@2 [b3,d4,g4]!3 ~ [b3,d4,g4]!2", // Gmaj7 G
  S: "~@2 [c4,f4,a4] [c4,f4] [c4,f4,a4] ~ [c4,f4,a4]!2 ~@2 [c4,f4,a4]!3 ~ [c4,f4,a4]!2", // F F5 F
  T: "[~@2 [a3,c4,f#4]!3 ~ [a3,c4,f#4]!2 ~@2 [a3,c4,f#4]!3 ~ [a3,c4,f#4] [a3,c4,f#4]@5 ~@12]/2", // F#dim
})).s("gm_acoustic_guitar_steel").gain(0.24)

// chords · piano · "A.PIANO"
const piano = note(`<
  ~ A B C D E F G H I J K L M N O P Q R I S T U V W X Y Z AA AB AC AD J AE AF AG A AH AI Z AJ AK AL AM AN AO AP I J AQ
  AR Z A AS AT AU AV AW AX I AY AZ BA BB BC A BD BE A B AI Z BF BG AI BH S T BI BJ BK
>`.pickRestart({
  A: "~@2 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4,g4] ~, ~@2 g4 ~@3 g4 ~@3 g4 ~@5", // Bm G
  B: "~@2 [d4,g4] ~@3 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4]@2, ~@2 b3@2 ~@2 g4 ~@3 g4 ~@3 g4 ~", // G5 Bm
  C: "~@2 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [a3,c4,f4]@2 ~@2 [c4,f4] ~, ~@2 g4 ~@3 g4 ~@7 a3@2", // Bm F F5
  D: "~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [b3,d4]@2 ~@2 [b3,g4] ~, ~@10 g4 ~@3 d4@2", // D Bm Em
  E: "~@2 [b3,d4,g4]@2 ~@2 [b3,g4] ~@3 [a3,c4,f4]@2 ~@2 [a3,c4]@2, ~@6 d4@2 ~@6 f4 ~", // G Em F Am
  F: "~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [b3,d4]@2 ~@2 [d4,g4] ~, ~@10 g4 ~@3 b3@2", // D Bm G5
  G: "~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4]", // C
  H: "~ [a#3,d#4,g4] ~ [a#3,d#4,g4] ~ [a#3,d#4] ~ [a#3,g4], ~@10 g4 ~@3 d#4 ~", // D# D#5 D#
  I: "~@2 [c#4,e4,a4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4,a4] ~, ~@6 a4 ~@3 a4 ~@5", J: "[d4,f#4,a4] ~@15",
  K: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4]@2 ~@2 [b3,d4]@2, ~@10 g4 ~@3 g4 ~", // G Bm
  L: "~@2 [d4,g4] ~@3 [d4,g4] ~@3 [d4,g4] ~@3 [b3,d4,g4] ~, ~ b3 ~ b3 ~ b3 ~@2", // G5 G
  M: "~@2 [b3,d4]@2 ~@2 [b3,d4,g4] ~@3 [a3,f4] ~@3 [a3,c4,f4] ~, ~@2 g4 ~@7 c4@2 ~@4", // Bm G Dm F
  N: "~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~@3 [b3,d4]@2 ~@2 [b3,d4,g4] ~, ~@10 g4 ~@5", // D Bm G
  O: "~@2 [b3,d4]@2 ~@2 [b3,d4,g4] ~@3 [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~, ~@2 g4 ~@13", // Bm G F
  P: "~@2 [a3,d4,f#4]@2 ~@2 [a3,f#4]@2 ~@2 [b3,d4,g4]@2 ~@2 [d4,g4] ~, ~@6 d4 ~@7 b3@2", // D G G5
  Q: "~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [e4,g4], ~@14 c4 ~", // C Em
  R: "~@2 [a#3,d#4,g4]@2 ~@2 [a#3,d#4,g4]@2 ~@2 [a#3,d#4,g4]@2 ~@2 [d#4,g4] ~, ~@7 a#3", S: "[d4,f#4] ~@15, a4 ~@7",
  T: "~@2 [b3,d4,g4] ~@3 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4,g4] ~, ~@6 g4 ~@3 g4 ~@5", // G Bm G
  U: "~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4] ~ [c4,e4], ~@10 a4 ~@3 a4 ~", // Am C
  V: "~ [c4,f4,a4] ~ [c4,f4] ~ [c4,f4,a4] ~ [c4,f4], ~@6 a4 ~@7 a4 ~", // F F5 F F5
  W: "~@2 [b3,d4,g4]@2 ~@2 [b3,d4]@2 ~@2 [d4,g4] ~@3 [d4,g4] ~, ~@6 g4 ~@3 b3@2 ~@2 b3@2", // G Bm G5
  X: "~@2 [b3,d4,g4] ~@3 [d4,g4] ~@3 [b3,d4]@2 ~@2 [b3,d4,g4] ~, ~@6 b3@2 ~@2 g4 ~@5", // G G5 Bm G
  Y: "~@2 [c4,e4,a4] ~@3 [c4,e4,a4] ~@3 [c4,e4,a4] ~@3 [c4,e4,a4] ~", // Am
  Z: "~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4], ~@14 a4 ~", // F F5
  AA: "~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4,a4] ~, ~@10 a4 ~@5", // D
  AB: "~@2 [b3,g4] ~@3 [d4,g4] ~@3 [d4,g4] ~@3 [b3,d4,g4] ~, ~ d4 ~ b3 ~ b3 ~@2", // Em G5 G
  AC: "~@2 [c4,a4] ~@3 [c4,e4]@2 ~@2 [c4,e4,a4] ~@3 [c4,e4,a4] ~, ~@2 e4@2 ~@2 a4 ~@9", // F C Am
  AD: "~@2 [c#4,a4] ~@3 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4,a4] ~, ~@2 e4@2 ~@2 a4 ~@3 a4 ~@5", // F#m C#m A
  AE: "~ [b3,d4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4], ~@2 g4 ~@13", // Bm G
  AF: "~@2 [c4,e4,a4]@2 ~@2 [c4,e4] ~@3 [a#3,d#4,g4]@2 ~@2 [d#4,g4] ~, ~@3 a4 ~@3 a#3", // Am C D#
  AG: "~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4] ~, ~@7 f#4", // D D5
  AH: "~@2 [d4,g4] ~@3 [d4,g4] ~@3 [d4,g4] ~@3 [d4,g4] ~, ~ b3 ~ b3 ~ b3 ~ b3", // G5
  AI: "~@2 [c4,e4,a4]@2 ~@2 [c4,e4]@2 ~@2 [c4,e4]@2 ~@2 [c4,e4,a4] ~, ~@6 a4 ~@3 a4 ~@5", // Am C Am
  AJ: "~@2 [b3,d4]@2 ~@2 [b3,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~, ~@2 g4 ~@3 d4@2 ~@8", // Bm Em G
  AK: "~@2 [b3,d4,g4]@2 ~@2 [b3,d4]@2 ~@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~, ~@6 g4 ~@9", // G Bm F
  AL: "~@2 [d4,f#4]@2 ~@2 [a3,d4] ~@3 [b3,d4,g4]@2 ~@2 [d4,g4] ~, ~@2 a3 ~@3 f#4@2 ~@6 b3@2", // D D5 G G5
  AM: "~@2 [b3,d4,g4]@2 ~@2 [d4,g4] ~@3 [c4,f4] ~@3 [a3,c4,f4]@2, ~@3 b3 ~ a3 ~@2", // G G5 F5 F
  AN: "~@2 [a3,d4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [b3,d4]@2 ~@2 [d4,g4] ~, ~@2 f#4 ~@7 g4 ~@3 b3@2", // D5 D Bm G5
  AO: "~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2 ~@2 [c4,e4] ~, ~@7 g4", // C
  AP: "~@2 [a#3,d#4,g4]@2 ~@2 [d#4,g4] ~@3 [d#4,g4] ~@3 [d#4,g4] ~, ~@3 a#3 ~ a#3 ~ a#3", // D#
  AQ: "~@2 [b3,d4]@2 ~@2 [b3,d4,g4]@2 ~@2 [b3,d4]@2 ~@2 [d4,g4] ~, ~@2 g4 ~@7 g4 ~@3 b3@2", // Bm G Bm G5
  AR: "~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4], ~@14 a4 ~", // Am C
  AS: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [d4,g4] ~@3 [b3,d4,g4] ~, ~@5 b3 ~@2", // G G5 G
  AT: "~@2 [c4,a4] ~@3 [c4,e4]@2 ~@2 [c4,e4]@2 ~@2 [c4,e4,a4] ~, ~@2 e4@2 ~@2 a4 ~@3 a4 ~@5", // F C Am
  AU: "~@2 [c4,f4,a4]@2 ~@2 [c4,f4,a4]@2 ~@2 [c4,f4,a4]@2 ~@2 [f4,a4] ~, ~@7 c4", // F
  AV: "~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~", // D
  AW: "~@2 [b3,d4,g4]@2 ~@2 [d4,g4] ~@3 [b3,d4]@2 ~@2 [b3,d4,g4] ~, ~@6 b3@2 ~@2 g4 ~@5", // G G5 Bm G
  AX: "~@2 [c4,e4,a4]@2 ~@2 [c4,e4,a4]@2 ~@2 [c4,e4,a4]@2 ~@2 [c4,a4] ~, ~@7 e4", AY: "[d4,f#4,a4] ~@7",
  AZ: "~@2 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4,g4]@2 ~@2 [b3,d4,g4] ~, ~@2 g4 ~@3 g4 ~@9", // Bm G
  BA: "~@2 [c4,e4,a4]@2 ~@2 [c4,a4] ~@3 [a#3,d#4,g4]@2 ~@2 [a#3,d#4]@2, ~@6 e4@2 ~@6 g4 ~", // Am F D# D#5
  BB: "~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4] ~, ~@7 f#4", // D D5
  BC: "~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4], ~@2 g4 ~@3 g4 ~@3 g4 ~@3 g4 ~", // Bm
  BD: "~ [c4,e4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4], ~@2 a4 ~@11 a4 ~", // C Am C
  BE: "~ [c4,f4] ~ [c4,f4,a4] ~ [c4,f4] ~ [c4,f4], ~@2 a4 ~@7 a4 ~@3 a4 ~", // F5 F F5
  BF: "~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4], ~@14 a4 ~", // D
  BG: "~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4]", // G
  BH: "~@2 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4,a4] ~, ~@2 a4 ~@3 a4 ~@3 a4 ~@5", // C#m A
  BI: "~@2 [c4,a4] ~@3 [c4,a4] ~@3 [a#3,d#4,g4]@2 ~@2 [d#4,g4] ~, ~ e4 ~ e4 ~@3 a#3", // F D#
  BJ: "~@2 [a3,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4] ~, ~@2 d4 ~@11 f#4@2", // D D5
  BK: "~@4 [a3,d4,f#4]@3 ~ [b3,d4,g4] ~@3 [b3,d4,g4] ~@3", // D G
})).s("gm_piano").gain(0.3)

// other · banjo
const banjo = note(`<
  ~ A@2 B C B C D E F ~ A@2 B C B C D E G H A I J A@2 I J K A I L H A M K A@2 I J A B C B C D E G H A I J A@2 I J K A I
  L H A M K A@2 I J A@2 I N K A I L H A M K O
>`.pickRestart({
  A: "g4 d4 b3 d4 g4 d4 b3 d4 g4 d4 b3 d4 g4 d4 b3 d4", B: "g4 d4 b3 d4 g4 d4 b3 d4 f4 c4 a3 c4 f4 c4 a3 c4",
  C: "f#4 c4 a3 c4 f#4 c4 a3 c4 g4 d4 b3 d4 g4 d4 b3 d4", D: "a#4 e4 c4 e4 a#4 e4 c4 e4 a#4 e4 c4 e4 a#4 e4 c4 e4",
  E: "g4 c#4 a#3 c#4 g4 c#4 a#3 c#4 g4 c#4 a#3 c#4 g4 c#4 a#3 c#4",
  F: "e4 c#4 a3 c#4 e4 c#4 a3 c#4 e4 c#4 a3 c#4 g4 c#4 a3 c#4",
  G: "e4 c#4 a3 c#4 e4 c#4 a3 c#4 g4 c#4 a3 c#4 g4 c#4 a3 c#4", H: "f#4 ~@15",
  I: "a4 e4 c4 e4 a4 e4 c4 e4 a4 e4 c4 e4 a4 e4 c4 e4", J: "f4 c4 a3 c4 f4 c4 a3 c4 f4 c4 a3 c4 f4 c4 a3 c4",
  K: "f#4 d4 a3 d4 f#4 d4 a3 d4 f#4 d4 a3 d4 f#4 d4 a3 d4", L: "a4 e4 c#4 e4 a4 e4 c#4 e4 a4 e4 c#4 e4 a4 e4 c#4 e4",
  M: "a4 e4 c4 e4 a4 e4 c4 e4 g4 d#4 a#3 d#4 g4 d#4 a#3 d#4", N: "f4 c4 a3 c4 f4 c4 a3 c4 f4 c4 ~ c4 f4 c4 a3 c4",
  O: "g4 d4 b3 d4 f#4 d4 a3 d4 g4 ~@3 g4 ~@3",
})).s("gm_banjo").gain(0.26)

// other · trombone
const trombone = note(`<
  ~@17 A B C D ~ E F@2 ~ E F@2 ~@2 G H ~@12 A B C D ~ E F@2 ~ E F@2 ~@2 G H ~@5 E F@2 ~ E F@2 ~@2 G H ~@4
>`.pickRestart({
  A: "e4@3 c4", B: "g4@15 ~", C: "g4, f#4 ~@15", D: "f#4 ~@7", E: "~@12 a3 ~ g3 ~", F: "[f3@25 ~@7]/2", G: "a3",
  H: "a#3 ~@7",
})).s("gm_trombone").gain(0.48).pan(0.1)

// other · trombone
const trombone_2 = note(`<
  ~@17 A B C D ~@2 E@2 ~@2 E@2 ~@2 F G ~@12 A B C D ~@2 E@2 ~@2 E@2 ~@2 F G ~@6 E@2 ~@2 E@2 ~@2 F G ~@4
>`.pickRestart({
  A: "c4@3 g3", B: "d#4", C: "e4", D: "a4 ~@7", E: "[a3@25 ~@7]/2", F: "c#4", G: "d#4 ~@15",
})).s("gm_trombone").gain(0.48).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~ A@9 B A@9 B A@11 B A@15 B A@11 B A@15 B A@4>".pickRestart({
  A: "x!2", B: "x",
})).gain(0.51)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@9 B A@9 B A@7 C A@3 D A@3 E A@3 F A@7 G A@3 H A@7 D A@3 I A@7 F A@3 J A@4
>`.pickRestart({
  A: "~ x ~ x", B: "~@8 x ~@2 x!5", C: "~@4 x ~@5 x ~@3 x!2", D: "~@3 x", E: "~@2 x ~ x!2 ~@2 x ~@2 x!5",
  F: "~@4 x ~@5 x ~@2 x!3", G: "~@4 x ~@2 x!2 ~ x ~ x!3 ~", H: "~@4 x ~@7 x ~ x!2", I: "~@4 x ~@2 x!9",
  J: "~@10 x ~@2 x!2 ~",
})).gain(0.51)

// drums · clap
const clap = s("cp").struct("<~@32 [~@3 x] ~@27 [~@3 x] ~@20>").gain(0.26)

// drums · hihat
const hihat = s("hh").struct("<~ A@9 B A@9 B A@11 B A@15 B A@11 B A@15 B A@3 C>".pickRestart({
  A: "x!8", B: "x", C: "x!4",
})).gain(0.51)

// drums · vibraslap
const vibraslap = s("vibraslap:0").struct("<~@32 [~@3 x] ~@27 [~@3 x] ~@20>").gain(3.01)

stack(bass, acoustic_guitar_steel, piano, banjo, trombone, trombone_2, kick, snare, clap, hihat, vibraslap)