Strudelify
Terry B cover art

Giorni Infiniti

Terry B

Pooh

KeyC minorTempo74 bpm
0:00/0:00
// Terry B — Pooh
// 74 bpm, 4/4, key C minor. 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: Full arrangement: all 80 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(74/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 · electric guitar clean
const electric_guitar_clean = note(`<
  ~@2 A B@2 ~@7 C@2 ~@2 D@2 E@7 F@4 G@4 H@3 I@6 F@4 J@5 ~@6 K@2 L M@7 N@7 O@4 ~@2
>`.pickRestart({
  A: "~ eb5@7 ~ d5@8 bb4@7 ~ g4@7", B: "[~ c5@7 ~ bb4@8 f4@8 bb4@4 ~@4 c4@31, ~@30 c5@31 ~@3, ~@31 g4@31 ~@2, ~ eb4]/2",
  C: "[~@33 [c4,eb4]@29 ~@2, ~@31 c5@29 ~@4, ~@32 g4@29 ~@3]/2", // Cm
  D: "[~@32 f4@14 ~@2 [f3,bb3,d4]@14 ~ [g3,bb3], ~@15 f3@8 ~@8 eb3, ~@31 [ab3,c4]@15 ~@18]/2", // Bb Gm Ab
  E: "[eb4@12 ~@4 [eb3,ab3,c4]@14 ~@2 f4@14 ~@2 f4@14 ~@2 c4@29 ~@3 [c4,eb4]@27 ~@5 [bb3,d4]@24 ~@8 eb4@26 ~@6 f4@14 ~@2 [bb3,d4]@14 ~ [g3,bb3], ~@30 f3@15 ~@17 c3@30 ~@99 [ab3,c4]@15 ~@18, ~@31 [ab3,d4]@14 ~@2 [g3,b3,d4]@15 ~ [eb3,g3]@29 ~@3 [f3,ab3]@27 ~@5 [f3,ab3]@24 ~@8 [eb3,g3,bb3]@26 ~@5 f3@16 ~ f3@15 eb3@2]/7", // Ab Cm Bb Gm Ab Abdim G Eb …
  F: "[eb4@12 ~@4 [eb3,ab3,c4]@14 ~@2 f4@14 ~@2 f4@14 ~@2 c4@29 ~@3 [c4,eb4]@13 ~@3 [d4,f4]@14 ~ bb3, ~@30 f3@15 ~@17 c3@30 ~@36, ~@31 [ab3,d4]@14 ~@2 [g3,b3,d4]@15 ~ [eb3,g3]@29 ~@3 ab3@13 ~@3 ab3@13 ~@4]/4", // Ab Cm Dm Abdim G Eb
  G: "[[d4,f4]@15 ~ eb4@12 ~@4 eb4@13 ~@3 f4@13 ~@3 f4@12 ~@4 eb4@11 ~@5 f4@13 ~@3 f4@14 ~ eb3, ~@15 [g3,c4]@12 ~@4 [ab3,c4]@13 ~@3 d4@15 ~ [b3,d4]@12 ~@36 [b3,d4]@14 ~@3, ~@47 ab3@11 ~@21 [g3,c4]@11 ~@5 [ab3,c4]@13 ~@18 c3@2]/4", // Dm C5 Ab Bm C5 Ab
  H: "[[g3,c4]@12 ~@4 bb3@14 ~@2 c4@13 ~@3 bb3@12 ~@4 c4@14 ~@2 bb3@13 ~@2 [c3,eb3], ~@14 c3@15 ~@2 [c3,eb3,ab3]@13 ~@3 [f3,g3]@12 ~@4 [eb3,g3]@14 ~@2 [eb3,g3]@14 ~@3, ~@15 [eb3,g3]@14 ~@17 d3@12 ~@4 c3@14 ~@2 c3@14 ~@4]/3", // C5 Cm Ab Fsus2 Eb
  I: "[[ab3,c4]@13 ~@3 bb3@11 ~@5 c3@21 ~@11 [c4,eb4]@27 ~@5 [bb3,d4]@24 ~@8 eb4@26 ~@6 f4@14 ~@2 [f3,bb3,d4]@14 ~ [g3,bb3], ~@14 d3@11 ~@6 eb3@20 ~@12 [f3,ab3]@27 ~@5 [f3,ab3]@24 ~@8 [eb3,g3,bb3]@26 ~@5 f3@16 ~@16 eb3@2, ~@15 [f3,g3]@11 ~@4 [g3,c4]@20 ~@109 [ab3,c4]@15 ~@18]/6", // Ab Cm Bb Gm Fm Eb Fsus2 C5 …
  J: "[[d4,f4]@15 ~ eb4@12 ~@4 eb4@13 ~@3 f4@13 ~@3 f4@12 ~@4 eb4@11 ~@5 f4@13 ~@3 f4@14 ~@2 [g3,c4]@12 ~@20, ~@15 [g3,c4]@12 ~@4 [ab3,c4]@13 ~@3 d4@15 ~ [b3,d4]@12 ~@36 [b3,d4]@14 ~@35, ~@47 ab3@11 ~@21 [g3,c4]@11 ~@5 [ab3,c4]@13 ~@18 [c3,eb3]@12 ~@22]/5", // Dm C5 Ab Bm C5 Ab Cm
  K: "[~@32 c4@29 ~@3, ~@15 c3@15 ~@2, ~@31 [eb3,g3]@29 ~@4]/2", // Eb
  L: "[ab3,c4,eb4]@13 ~@3 [d4,f4]@14 ~ bb3, ~@15 ab3@13 ~@4", // Ab Dm
  M: "[[d4,f4]@15 ~ eb4@12 ~@4 eb4@13 ~@3 f4@13 ~@3 f4@12 ~@4 [c4,eb4]@11 ~@5 f4@13 ~@3 [d4,f4]@14 ~@2 [g3,c4]@12 ~@4 bb3@14 ~@2 [ab3,c4]@13 ~@3 bb3@12 ~@4 c4@14 ~@2 bb3@13 ~@2 c3, ~@15 [g3,c4]@12 ~@4 [ab3,c4]@13 ~@3 d4@15 ~ [b3,d4]@12 ~@36 b3@14 ~@2 eb3@12 ~@4 [eb3,g3]@14 ~@18 [d3,f3,g3]@12 ~@4 [eb3,g3]@14 ~@2 [eb3,g3]@14 ~@3, ~@47 ab3@11 ~@21 g3@11 ~@5 [ab3,c4]@13 ~@18 c3@12 ~@4 c3@15 ~@2 [c3,eb3]@13 ~@18 c3@14 ~@2 c3@14 ~@4]/7", // Dm Cm Dm C5 Ab C5 Ab Bm …
  N: "[[eb3,ab3,c4]@13 ~@3 bb3@11 ~@5 [g3,c4]@12 ~@4 bb3@14 ~@2 [ab3,c4]@13 ~@3 bb3@12 ~@4 c4@14 ~@2 bb3@13 ~@3 [eb3,ab3,c4]@13 ~@3 bb3@11 ~@5 [g3,c4]@12 ~@4 bb3@14 ~@2 c4@13 ~@3 [g3,bb3]@15 ~, ~@14 d3@11 ~@5 c3@12 ~@4 c3@15 ~@2 [c3,eb3]@13 ~@18 c3@14 ~@2 c3@14 ~@3 c3@14 ~@2 [f3,g3]@11 ~@21 [eb3,g3]@14 ~@18 [d3,f3]@15 ~@2, ~@15 [f3,g3]@11 ~@5 eb3@12 ~@4 [eb3,g3]@14 ~@18 [d3,f3,g3]@12 ~@4 [eb3,g3]@14 ~@2 [eb3,g3]@14 ~@17 d3@11 ~@5 [c3,eb3]@12 ~@4 c3@15 ~@2 [c3,eb3,ab3]@13 ~@20]/7", // Ab C5 Ab C5 Gm Cm Fsus2 Eb …
  O: "[~@7 c4@93 ~@28, ~ c3@49 ~@14, ~@3 eb3@96 ~@29, ~@5 g3@95 ~@28]/4",
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.6)

// bass · fretless bass
const bass = note(`<
  ~ A ~@2 B@6 C D@2 ~@2 E F G H I J K L M N O P Q R S T U V W ~@4 Q X Y Z AA AB K R S T U V AC@6 C AD AE R S T U V W ~@5
  AF@2 AG@2 ~@6
>`.pickRestart({
  A: "~@5 g2@3 ~ d3@2 eb3@3 e3@3 f3@10 g3@4 ~",
  B: "[~@5 g2@8 d3@4 c3@12 ab3@25 ~@2 c4@14 ~@2 c4@14 ~@2 f3@19 ~@13 c4@15 ~ c4@13 ~@3 f3@16 f3@4 g3@12 bb3@7 ~]/6",
  C: "ab3@11 ~ bb3 ~@3 ab3@7 ~ c3@8", D: "[c3@10 ~@2 eb3 ~@3 f3@7 ~ d3@25 ~@15]/2", E: "d3@13 ~@3", F: "eb2@25 ~@7",
  G: "d2@15 ~ bb1@15 ~", H: "eb2@14 ~@2 ab2@13 ~@3", I: "f2@4 c3@2 f2@2 g2@3 ~ d3@3 ~", J: "c3@9 ~@7 c2@16",
  K: "c2@7 ~", L: "d2@13 ~@3", M: "eb3@3 ~", N: "d2@15 ~ bb1@14 ~@2", O: "eb2 ab2", P: "f2@16 g2@7 ~ g1@8",
  Q: "c2@29 ~@3", R: "ab2@15 ~ bb2@15 ~", S: "g1@12 ~@2 g1@2 c2@8 bb1@7 ~", T: "ab1@16 bb1@12 ~@2 f1 ~",
  U: "b1@13 ~ g1@2 c2@14 eb3@2", V: "d2@15 ~ b1@13 ~ b1@2", W: "c2@7 ~@9", X: "d2@29 ~@3", Y: "eb2@15 ~",
  Z: "d2@14 ~@2 bb1@15 ~", AA: "eb2@16 ab2@15 ~", AB: "f2@7 ~ c3@4 f2@3 ~ g2@7 ~ d3@7 ~",
  AC: "[~@4 g2@8 d3@4 c3@12 ab3@25 ~@3 c4@14 ~@2 c4@14 ~@2 f3@19 ~@13 c4@15 ~ c4@13 ~@3 f3@16 f3@4 g3@12 bb3@7 ~]/6",
  AD: "c3@10 ~@2 eb3 ~@3 f3@7 ~ d3@8", AE: "c3@2 c2@5 ~", AF: "[~@3 g2@8 d3@4 c3@12 ab3@23 ~@14]/2",
  AG: "[~@3 g2@8 d3@4 c3@12 ab3@24 ~@13]/2",
})).s("gm_fretless_bass").gain(0.52)

// bass · contrabass
const bass_2 = note(`<
  A B A B C@3 D E F G H I J ~@14 K L M N O P Q P R S ~@7 K L M N O T D U T U D V W X K L M N O P Q P R P Q P R P Y@7
>`.pickRestart({
  A: "~ c2@16 bb1@15", B: "~ ab1@16 g1@15", C: "[~ c2@63 g2@32]/3", D: "c2@31 ~", E: "g2@31 ~", F: "c2@15 ~ bb1@16",
  G: "d2", H: "bb2 ab2", I: "eb2@31 ~", J: "~ c2@31", K: "ab1@15 ~ bb1@15 ~", L: "g1@15 ~ c2@7 ~ bb1@6 ~@2",
  M: "ab1@15 ~ bb1@14 ~@2", N: "b1@7 ~ c2@7 ~", O: "d2@14 ~@2 b1@13 ~@3", P: "c2@15 ~ bb1@15 ~",
  Q: "ab1@15 ~ g1@14 ~@2", R: "ab1@15 ~ g1@15 ~", S: "c2@29 ~@3", T: "c2", U: "g2", V: "d2@31 ~", W: "bb1@15 ~ b1@15 ~",
  X: "c2@24 bb1@7 ~", Y: "[ab1@16 g1@19 ~@4 c2@154 ~@31]/7",
})).s("gm_contrabass").gain(0.22)

// other · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@13 A B C@2 D E F@2 G H@2 I J K@6 L M ~@3 N O P@2 Q R S@6 L M ~@7 T@5 L M ~@15
>`.pickRestart({
  A: "~@11 g4@2 g5@2 ~ f5 ~ eb5@3 ~ d5@5 c5@3 bb4@2", B: "~ bb4@4 ab4@12 ~@15",
  C: "[~@9 f4@2 ~ f5@2 eb5@2 d5@4 c5@5 ~ bb4@3 ab4 ~ ab4@4 g4@13 ~@12 g5@2 g5@2]/2",
  D: "f5@4 g5@2 ~ ab5@4 f5@4 ~ d5@4 d5@6 ~@2 eb5@2 eb5 ~", E: "eb5@4 ~ f5 ~ g5@4 eb5@3 ~ c5@4 ~ c5@6 ~@2 eb5 ~ eb5 ~",
  F: "[d5@4 eb5@2 f5@4 d5@4 ~ b4@5 c5 ~ d5@4 ~ eb5@4 c5@9 ~@2 g4@2 g5@2 ~ f5@2 eb5@3 ~ d5@5 ~ c5@3 bb4 ~]/2",
  G: "bb4@3 ab4@12 ~@17", H: "[~@9 f4@2 ~ f5@2 eb5 ~ d5@5 c5@4 bb4@3 ab4@2 ab4@4 ~ g4@14 ~@10 g5@2 ~ g5@2]/2",
  I: "f5@3 ~ g5 ~ ab5@4 ~ f5@4 d5@4 d5@7 ~@2 eb5 ~@2 eb5", J: "eb5@3 ~ f5 ~ g5@4 ~ eb5@3 c5@4 ~ c5@7 ~@2 eb5 ~ eb5@2",
  K: "[d5@4 eb5 ~ f5@4 d5@4 ~ b4@5 c5 ~ d5@4 eb5@4 c5@16 ~@6 eb5 ~ eb5 ~ eb5@3 ~ eb5 ~ eb5@5 ~ eb5 ~ eb5 ~ eb5@3 ~ eb5 ~ d5@4 d5@2 ~@2 f5!2 ~ f5@3 d5@2 bb4@4 bb4@3 ~ d5 ~ d5 ~ d5@2 eb5 ~ c5@4 ~ c5@3 eb5!2 ~ eb5@3 ~ eb5 eb5@11 ~ g5@3 f5@6 ~ f5 ~ f5 ~ f5@3 ~ f5 ~ f5@12 ~ ab5@4 ~ g5@2 f5@2 eb5@7 ~ g5@3 ~]/6",
  L: "f5@3 ~ g5 ~ ab5@4 f5@5 ~ d5@4 eb5 ~ f5@4 ~ d5@5", M: "c5 ~@3", N: "~@10 g4@2 g5@2 ~ f5@2 eb5@4 d5@5 c5@3 bb4@2 ~",
  O: "bb4@3 ab4@8 ~@21", P: "[~@10 f4@2 f5@2 eb5 ~ d5@4 c5@5 ~ bb4@3 ab4 ~ ab4@4 g4@8 ~@17 g5@2 g5@2]/2",
  Q: "f5@3 ~ g5 ~ ab5@5 f5@4 d5@4 ~ d5@6 ~@2 eb5@2 eb5 ~", R: "eb5@3 ~ f5@2 g5@4 ~ eb5@4 c5@4 c5@6 ~@3 eb5@2 eb5 ~",
  S: "[d5@4 eb5 ~ f5@4 d5@4 b4@5 ~ c5 ~ d5@5 eb5@3 c5@10 ~@11 eb5 ~@2 eb5 ~ eb5@3 ~ eb5 ~ eb5@5 ~ eb5 ~@2 eb5 eb5@2 ~@2 eb5 ~ d5@4 ~ d5@2 f5 ~ f5 ~ f5@3 d5@2 bb4@4 bb4@3 d5 ~ d5 ~ d5@3 eb5 ~ c5@4 ~ c5@3 eb5 ~ eb5 eb5@3 ~ eb5 ~ eb5@12 g5@2 f5@6 ~ f5@2 f5 ~ f5@3 ~ f5 ~ f5@12 ~ ab5@4 ~ g5@2 f5 ~ eb5@7 ~ g5@4]/6",
  T: "[~@20 eb5@2 eb5 ~ eb5@3 ~ eb5 ~ eb5@6 ~ eb5 ~ eb5 ~ eb5@2 ~ eb5 ~ d5@5 d5@2 ~ f5 ~ f5 f5@3 d5@2 bb4@4 bb4@2 ~ d5 ~ d5 ~ d5@3 eb5 ~ c5@4 ~ c5@2 ~ eb5 ~ eb5 ~ eb5@3 eb5 ~ eb5@11 ~ g5@4 f5@5 f5 ~ f5 ~ f5@3 ~ f5 ~ f5@11 ~ ab5@4 ~ g5@3 ~ f5@2 eb5@6 ~ g5@4]/5",
})).s("gm_acoustic_guitar_nylon").gain(0.57)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  A B A B C D E F G H I G J C K G J L M N F O P J L M N Q R S T@2 U V W V W F O P J L M N Q R X R Y Z F O G F G H I AA
  AB R S R Y Z H W H W H W H W H AC@6 ~
>`.pickRestart({
  A: "~ [eb3,g3,c4]@16 [eb3,g3,bb3]@15", B: "~ [c3,eb3,ab3]@16 [d3,f3,bb3]@15", C: "~ [g3,c4,eb4]@31",
  D: "~ [ab3,c4,eb4]@31", E: "[bb3,d4,f4]@31 ~", F: "[g3,c4,eb4]", G: "[bb3,d4,f4]", H: "[g3,c4,eb4] [g3,bb3,eb4]",
  I: "[ab3,c4,f4]", J: "[bb3,eb4,g4]", K: "[ab3,c4,eb4]@31 ~", L: "[ab3,c4,f4] [bb3,d4,f4]",
  M: "[bb3,eb4,g4] [c4,eb4,ab4]", N: "[ab3,d4,f4] [b3,d4,g4]", O: "[ab3,c4,eb4]", P: "[ab3,d4,f4]", Q: "[c4,eb4,g4]",
  R: "[ab3,c4,eb4] [ab3,d4,f4]", S: "[bb3,d4,f4]@2 c4 bb3, ~@16 [g3,eb4]@13 ~@3",
  T: "[[ab3,c4,eb4]@8 [ab3,d4,f4]@7 [b3,d4,f4]@9 [c4,eb4,g4]@8]/2", U: "[ab3,c4,f4] [b3,d4,g4]",
  V: "[c4,eb4,g4] [bb3,eb4,g4]", W: "[ab3,c4,eb4] [bb3,d4,f4]", X: "[bb3,d4,f4]@2 c4 bb3, ~@4 [eb4,g4]@3 ~",
  Y: "[b3,d4,f4] [c4,eb4,g4]", Z: "[ab3,c4,f4] [b3,d4,f4]", AA: "[ab3,d4,f4] [b3,d4,f4]",
  AB: "[g3,c4,eb4]@3 [g3,bb3,eb4]", AC: "[[ab3,c4,eb4]@16 [bb3,d4,f4]@22 ~ [c4,eb4,g4,c5]@153]/6",
})).s("gm_string_ensemble_2").gain(0.25)

// other · vibraphone
const vibraphone = note("<~@5 A B C B C D E F G ~@4 H ~@61>".pickRestart({
  A: "~ eb7@4 ab6@4 c7@4 eb7@4 ab6@3 c7@4 eb7@4 ab6@4", B: "d7 g6 bb6 d7 g6 bb6 d7 g6", C: "eb7 g6 c7 eb7 g6 c7 eb7 g6",
  D: "eb7 ab6 c7 eb7 ab6 c7 eb7 ab6", E: "d7 ab6 bb6 d7 ab6 bb6 d7 ab6",
  F: "eb7@4 g6@4 ~ bb6@4 eb7@4 g6@4 bb6@4 eb7@4 g6@3", G: "~ c7@4 ~@27", H: "g6@4 bb5@4 c6@7 ~",
})).s("gm_vibraphone").gain(0.12).pan(0.4)

// other · pad new age
const pad_new_age = note("<A B C D E ~@28 F G H I J ~@26 F G H I F G H I F K@2 ~@5>".pickRestart({
  A: "~ eb5@7 ~ d5@8 bb4@7 ~ g4@7", B: "~ c5@7 ~ bb4@8 f4@8 bb4@7", C: "~ eb5@7 ~ d5@7 ~ bb4@7 ~ g4@7",
  D: "~ c5@7 ~ bb4@8 f4@7 ~ bb4@7", E: "~ g4@8 ~@23", F: "eb5@7 ~ d5@8 bb4@7 ~ g4@7 ~", G: "c5@7 ~ bb4@8 f4@8 bb4@7 ~",
  H: "eb5@7 ~ d5@7 ~ bb4@7 ~ g4@7 ~", I: "c5@7 ~ bb4@8 f4@7 ~ bb4@8", J: "g4 ~@3",
  K: "[c5@7 ~ bb4@8 f4@9 ~ bb4@11 ~@27]/2",
})).s("gm_pad_new_age").gain(0.31).pan(0.4)

// chords · epiano2
const epiano2 = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V P Q W S X Y Z AA AB AC AD AE AF AG AH U O L AI@2 AJ AK AL AM AA AN AO AP
  AQ O I AR I AS AT L AL AU AV Z AW AX AY AF AY AF AZ BA BB BC AY BC BD@3 ~@3
>`.pickRestart({
  A: "~ [c4,eb4,g4]@14 ~@2 [bb3,eb4,g4]@12 ~@3", B: "~ [ab3,c4,eb4]@13 ~@3 [bb3,d4,f4]@12 ~@3",
  C: "~ [c4,eb4,g4]@12 ~@4 [bb3,eb4,g4]@11 ~@4", D: "~ [ab3,c4,eb4]@12 ~@4 [bb3,d4,f4]@12 ~@3",
  E: "~ [c4,eb4,g4]@18 ~@13", F: "~ [ab3,c4,eb4]@20 ~@11", G: "[bb3,d4,f4]@27 ~@5", H: "[c4,eb4,g4]@27 ~@5",
  I: "[bb3,d4,f4]@13 ~@3", J: "[c4,eb4,g4]@23 ~@9", K: "[ab3,c4,f4]@13 ~@3", L: "[ab3,d4,f4]@25 ~@7",
  M: "[bb3,eb4,g4]@13 ~@3", N: "~ [c4,eb4,g4]@24 ~@7", O: "[ab3,c4,eb4]@25 ~@7", P: "[ab3,d4,f4]@13 ~@3",
  Q: "[bb3,eb4,g4]@25 ~@7", R: "[ab3,c4,f4]@13 ~@3 [ab3,d4,f4]@13 ~@3", S: "[bb3,eb4,g4]@11 ~@5 [ab3,c4,eb4]@12 ~@4",
  T: "[ab3,d4,f4]@13 ~@3 [b3,d4,f4]@12 ~@4", U: "[c4,eb4,g4]@7 ~@9", V: "[ab3,c4,eb4]@13 ~@3",
  W: "[ab3,c4,f4]@13 ~@3 [ab3,d4,f4]@12 ~@4", X: "[ab3,d4,f4]@13 ~@3 [b3,d4,f4]@13 ~@3", Y: "[c4,eb4,g4]@19 ~@13",
  Z: "[ab3,c4,eb4]@11 ~@5 [ab3,d4,f4]@12 ~@4", AA: "[bb3,d4,f4]@12 ~@4 [c4,eb4,g4]@11 ~@5",
  AB: "[ab3,c4,eb4]@5 ~@3 [ab3,d4,f4]@5 ~@3", AC: "[b3,d4,f4]@6 ~@2 [c4,eb4,g4]@5 ~@3",
  AD: "[ab3,c4,f4]@11 ~@5 [b3,d4,f4]@10 ~@6", AE: "[c4,eb4,g4]@13 ~@3 [bb3,eb4,g4]@11 ~@5",
  AF: "[ab3,c4,eb4]@3 ~ [bb3,d4,f4]@3 ~", AG: "[c4,eb4,g4]@10 ~@6 [bb3,eb4,g4]@11 ~@5",
  AH: "[ab3,c4,eb4]@6 ~@2 [bb3,d4,f4]@5 ~@3", AI: "[[bb3,eb4,g4]@24 ~@6 [ab3,c4,f4]@13 ~@5 [ab3,d4,f4]@13 ~@3]/2",
  AJ: "[bb3,eb4,g4]@11 ~@5 [c4,eb4,ab4]@10 ~@6", AK: "[ab3,d4,f4]@13 ~@3 [b3,d4,f4]@11 ~@5", AL: "[c4,eb4,g4]@17 ~@15",
  AM: "[ab3,c4,eb4]@11 ~@5 [ab3,d4,f4]@13 ~@3", AN: "[ab3,c4,eb4]@12 ~@4 [ab3,d4,f4]@11 ~@5",
  AO: "[b3,d4,f4]@11 ~@5 [c4,eb4,g4]@11 ~@5", AP: "[ab3,c4,f4]@11 ~@5 [b3,d4,f4]@12 ~@4", AQ: "[c4,eb4,g4]@13 ~@19",
  AR: "[c4,eb4,g4]@13 ~@3", AS: "[c4,eb4,g4]@21 ~@11", AT: "[ab3,c4,f4]@7 ~",
  AU: "[ab3,c4,eb4]@12 ~@4 [ab3,d4,f4]@13 ~@3", AV: "[bb3,d4,f4]@11 ~@5 [c4,eb4,g4]@12 ~@4",
  AW: "[b3,d4,f4]@3 ~ [c4,eb4,g4]@3 ~", AX: "[ab3,c4,f4]@13 ~@3 [b3,d4,f4]@12 ~@4",
  AY: "[c4,eb4,g4]@11 ~@5 [bb3,eb4,g4]@11 ~@5", AZ: "[c4,eb4,g4]@11 ~@5 [bb3,eb4,g4]@12 ~@4",
  BA: "[ab3,c4,eb4]@12 ~@4 [bb3,d4,f4]@11 ~@5", BB: "[c4,eb4,g4]@12 ~@4 [bb3,eb4,g4]@13 ~@3",
  BC: "[ab3,c4,eb4]@11 ~@5 [bb3,d4,f4]@10 ~@6", BD: "[~@7 [c4,eb4,g4]@62 ~@27]/3",
})).s("gm_epiano2").gain(0.29).pan(0.4)

// other · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A@3 ~@4 B ~@14 C D ~@8 E@2 ~@3 F@2 ~@18 G ~@5 H I ~@2 J@2 ~ K L M N O P@2 ~@2
>`.pickRestart({
  A: "[~@21 f4@4 d4@5 eb4@10 ~@21 c5@27 ~@8]/3", B: "~@6 d4 eb4 f4@8", C: "~@10 g3@4 eb4@2 d4@11 ~ c4@2 bb3@2",
  D: "c4@15 ~@17", E: "[~@19 eb4@2 d4@5 ~@2 eb4 d4 c4@5 c4 bb3 g3@6 g3 f3@2 ~ eb4 f4@15 ~]/2",
  F: "[~@18 ab2@2 ~ eb3@2 ~ ab3@3 g3@2 eb3@15 ~@20]/2",
  G: "~ eb3 g3 c4 ~ eb3 g3 c4 ~ eb3 g3 c4 ~ eb3 g3 c4, c3 ~ c3 ~ c3 ~ c3 ~", H: "~@9 c4 ~ c4!2 ~ c4!9 bb3 c4@7 ~",
  I: "~@10 bb3@2 c4@3 eb4@3 g4@3 bb4@10 ~",
  J: "[~@3 bb3 ~ bb3 ~ bb3@8 ~@5 bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ c4@9 ~@4 f3@2 g3@9 ~@10]/2",
  K: "~@24 g4@2 ~ f4@2 ~ eb4@2", L: "f4 ~@15", M: "~@4 [d4,f4]@8 ~@9 c4@4 bb3@7",
  N: "~@11 g3 f3 g3@8 ~ c4 bb3 g3@6 g3 ab3",
  O: "bb3@5 ~ eb4 d4 c4 bb3 ab3 g3 f3 bb3 g3 eb3 c3 bb2@2 ~ g2@2 ab2@2 bb2@2 c3@2 d3@2 eb3@2",
  P: "[f3@2 ~ g3@3 bb3 d4 eb4@2 c4 eb4 f4 g4 bb4@8 ~ g4@2 bb4@17 ~@22]/2",
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.3)

// other · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note("<~@64 [c4@5 c4!4 ~ c4 ~@2 c4 ~@18] ~@15>")
  .s("gm_acoustic_guitar_steel").gain(0.16).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@14 A@13 B A C D C A ~@4 A@7 B A C D C A@9 B A C D C A@2 C A C A C A@4 ~@6
>`.pickRestart({
  A: "x!2", B: "x ~ x!2", C: "x ~@6 x!2 ~@7", D: "x ~@7 x ~@6 x",
})).gain(0.5)

// drums · rim
const rim = s("rim").struct("<~@14 A@13 B ~@9 A@7 C ~@6 A@7 B ~@21>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@3 x",
})).gain(0.57)

// drums · snare
const snare = s("sd").struct("<~@28 [~ x ~ x]!5 ~@12 [~ x ~ x]!5 ~@9 [~ x ~ x]!11 ~@10>").gain(0.57)

// drums · low tom
const low_tom = s("lt").struct("<~@27 A ~@16 B ~@5 C ~@7 C ~@21>".pickRestart({
  A: "~@7 x", B: "~@4 x ~@3 x ~@5 x!2", C: "~@3 x",
})).gain(0.57)

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

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@27
  [~@8 x ~@3 x!2 ~@2]
  ~@16
  [~@2 x!2 ~@2 x!2 ~@5 x ~@2]
  ~@13
  [~@10 x!2 ~@2 x!2]
  ~@21
>`).gain(0.57)

// drums · high tom
const high_tom = s("ht").struct("<~@27 [~@6 x!2 ~@8] ~@52>").gain(0.57)

// … 38 more lines

More by Pooh