Strudelify

So ein schoner Tag

Mosch

KeyE♭ majorTempo116 bpm
0:00/0:00
// So ein schoner Tag — Mosch
// 116 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 4 "TubaDopp" synth brass 2 (copy of ch 3 "Tuba1&2" tuba)
// note: Full arrangement: all 65 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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.

// other · french horn · "Flh.2"
const french_horn = note(`<
  A B C D E F G H I J C D E F G H I K L M N O L P Q R ~ S T U T V W X Y S Z U T V W X AA AB AC AD AE ~@2 S T U T V W X Y
  S Z U T V W X AF
>`.pickRestart({
  A: "g4@3 ~ g4@3 ~ ab4@3 ~ g4@3 ~", B: "ab4 g4 f4 g4 ab4 bb4 c5 d5 eb5 ~@3 bb4@4",
  C: "bb4 ~@2 bb4!2 ~ ab4 ~ g4@3 ~ g4 ab4 bb4 c5", D: "bb4 ~ ab4 ~ g4@10 ~@2", E: "ab4 ~ g4 ~ f4@11 ~",
  F: "g4 ~ f4 ~ eb4@5 ~@3 bb4@4", G: "eb5 ~@2 eb5!2 ~ d5 ~ c5@3 ~ g4 ab4 bb4 c5", H: "bb4 ~ ab4 ~ bb4@8 ~@2 c5 ~",
  I: "d5@2 db5 d5 g5 ~ eb5 ~ d5 ~ bb4 ~ g4 ~ a4 ~", J: "bb4 ~@3 a4@2 bb4 a4 g4 ~@3 bb4@4",
  K: "bb4 ~@3 a4@2 bb4 a4 g4 ~@2 d4 eb4@3 e4", L: "f4@3 e4 f4@7 e4 f4@3 gb4", M: "g4@3 gb4 g4@7 gb4 g4@3 g4",
  N: "ab4@3 g4 ab4@7 bb4 c5@3 d5", O: "eb5@9 d5 ~ c5 bb4 ab4 ~ g4", P: "g4@3 gb4 g4@7 gb4 g4@2 ~ g4",
  Q: "ab4@3 [b4,c5] c5 ~@2 [c5,d5] bb4@2 ~ [ab4,a4] g4 ~ ab4 ~", R: "bb4 ~@3 ab4@3 [ab4,bb4] g4 ~ g4!3 ~@3",
  S: "c4@3 b3", T: "c4@15 ~", U: "c4@5 db4 e4 db4", V: "~@2 db4 eb4 g4@3 eb4", W: "db4 eb4 db4@5 ~",
  X: "db4 eb4 g4@3 eb4 g4 eb4", Y: "db4@13 ~@3", Z: "c4@7 ~", AA: "c4@9 ~@7",
  AB: "~@2 f4 eb4 f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~", AC: "f4 ~ f4 e4 f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~",
  AD: "~@2 eb4 [d4,eb4] ~@2 eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~", AE: "eb4 ~ eb4 d4 eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~",
  AF: "c4@9 ~@3 [c4,ab4] ~@3", // Fm
})).s("gm_french_horn").gain(0.5).pan(1)

// bass · tuba · "Tuba1&2"
const bass = note(`<
  A B C D E F G H I J C D E F G H I K L M N O L P Q R S@3 T U V W V W S@2 T U V W V X Y Z AA AB@3 S@2 T U V W V W S@2 T
  U V W V AC
>`.pickRestart({
  A: "[eb2,eb3]@3 ~ [g2,g3]@3 ~ [ab2,ab3]@3 ~ [e2,e3]@3 ~", B: "[f2,f3] ~@5 [bb2,bb3] ~ [eb2,eb3] ~@3 [bb2,bb3]@4",
  C: "[eb2,eb3] ~@3 [bb1,bb2] ~ [d2,d3] ~ [eb2,eb3]@4 ~@4", D: "[g2,g3] ~@3 [eb2,eb3] ~@3 [bb1,bb2] ~@3 [eb2,eb3] ~@3",
  E: "[f2,f3] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@3 [d2,d3] ~@3", // F Bb D
  F: "[eb2,eb3] ~@3 [bb1,bb2] ~@3 [eb2,eb3] ~ [g2,g3] ~ [bb2,bb3]@4", // Eb Bb Eb G Bb
  G: "[eb2,eb3] ~@3 [g2,g3] ~@3 [c2,c3] ~@3 [g2,g3] ~@3", // Eb G C G
  H: "[ab2,ab3] ~@3 [g2,g3]@4 [bb2,bb3] ~ [ab2,ab3] ~ [g2,g3] ~ [gb2,gb3] ~", I: "[g2,g3]@6 ~@8 [gb2,gb3] ~",
  J: "[g2,g3] ~@3 [d2,d3]@4 [g2,g3] ~@3 [bb2,bb3]@4", K: "[g2,g3] ~@3 [d2,d3]@4 [g2,g3] ~@7",
  L: "[bb1,bb2] ~@3 [d2,d3] ~@3 [f2,f3] ~@3 [bb1,bb2] ~@3", // Bb D F Bb
  M: "[eb2,eb3] ~@3 [bb1,bb2] ~@3 [eb2,eb3] ~@3 [bb1,bb2] ~@3", // Eb Bb Eb Bb
  N: "[f2,f3] ~@3 [f2,f3] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@3", O: "[eb2,eb3]@2 ~ [d2,d3] [eb2,eb3]@3 [g2,g3] [bb2,bb3]@8",
  P: "[eb2,eb3] ~@3 [bb1,bb2] ~@3 [eb2,eb3] ~@3 [eb2,eb3] ~@3", // Eb Bb Eb
  Q: "[ab1,ab2]@4 [a1,a2]@4 [bb1,bb2]@4 [c2,c3] ~ [f2,f3] ~", // Ab A Bb C F
  R: "[bb1,bb2] ~@3 [bb1,bb2]@3 ~ [eb2,eb3] ~ [eb2,eb3]!3 ~ [eb2,eb3] [f2,g2,f3,g3]", // Bb Eb Fsus2
  S: "[ab2,ab3] ~@3 [f2,f3] ~@3 [eb2,eb3] ~@3 [f2,f3] ~@3", // Ab F Eb F
  T: "[ab1,ab2] ~@3 [eb2,eb3] ~@3 [ab1,ab2] ~@3 [ab1,ab2] ~@3", // Ab Eb Ab
  U: "[ab1,ab2] ~@3 [f2,f3] ~@3 [eb2,eb3] ~@3 [f2,f3] ~@3", V: "[g2,g3] ~@3 [eb2,eb3] ~@3 [eb2,eb3] ~@3 [f2,f3] ~@3",
  W: "[g2,g3] ~@3 [g2,g3] ~@3 [f2,f3] ~@3 [eb2,eb3] ~@3", // G F Eb
  X: "[ab2,ab3] ~ [f2,f3] ~ [eb2,eb3] ~ [f2,f3] ~ [ab1,ab2] ~@5 [ab2,ab3] [g2,g3]", // Ab F Eb F Ab G
  Y: "[f2,f3]@3 [g2,g3] [ab2,ab3] ~ [bb2,bb3] ~ [c3,c4] ~ [db3,db4] ~ [c3,c4]@3 [d3,e3,d4,e4]", // F G Ab Bb C Db C Dsus2
  Z: "[f3,f4]@3 [e3,e4] [f3,f4] ~ [c3,c4] ~ [ab2,ab3] ~ [g2,g3] ~ [f2,f3]@3 [f2,g2,f3,g3]", // F E F C Ab G F Fsus2
  AA: "[eb2,eb3]@3 [f2,f3] [g2,g3] ~ [ab2,ab3] ~ [bb2,bb3] ~ [c3,c4] ~ [bb2,bb3]@2 ~ [c3,d3,c4,d4]", // Eb F G Ab Bb C Bb Csus2
  AB: "[[eb3,eb4]@3 [d3,d4] [eb3,eb4] ~ [bb2,bb3] ~ [g2,g3] ~ [f2,f3] ~ [eb2,eb3]@28 ~@2 [eb2,eb3] ~ [f2,f3] ~ [g2,g3] ~]/3", // Eb D Eb Bb G F Eb F …
  AC: "[ab2,ab3] ~ [f2,f3] ~ [eb2,eb3] ~ [f2,f3] ~ [ab1,ab2] ~@3 [ab1,ab2] ~@3", // Ab F Eb F Ab
})).s("gm_tuba").gain(0.43)

// chords · trombone · "Posaunen"
const trombone = note(`<
  A B C D E F G H I J C D E F G H I K L M N O L M P Q R S T U T V W X Y S T Z T V Y X AA AB AC AD AE@3 S T U T V W X Y S
  T Z T V Y X AF
>`.pickRestart({
  A: "[g3,bb3,eb4]@3 ~ [b3,d4,g4]@3 ~ [c4,eb4,ab4]@3 ~ [g3,bb3,c4]@3 ~", // Eb G Ab C7
  B: "[ab3,c4,f4] ~@5 [ab3,d4,f4] ~ [g3,bb3,eb4] ~@3 bb3@4", // Fm Ddim Eb
  C: "[g3,bb3,eb4] ~ [g3,bb3,eb4] ~@3 [ab3,bb3,f4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~@5", // Eb Bb7 Eb
  D: "~@2 [ab3,c4,eb4] ~@3 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~", // Ab Eb
  E: "~@2 [bb3,d4,f4] ~@3 [bb3,d4,ab4] ~@3 [ab3,d4,f4] ~@3 [ab3,bb3,f4] ~", // Bb Bb7 Ddim Bb7
  F: "~@2 [ab3,bb3,f4] ~@3 [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ g3 ~ bb3@4", // Bb7 Eb
  G: "~@2 [g3,bb3,eb4] ~@3 [b3,d4,g4] ~@3 [c4,eb4,g4] ~@3 [bb3,d4,g4] ~", // Eb G Cm Gm
  H: "~@2 [c4,eb4,ab4] ~ [g3,bb3,eb4]@4 [bb3,d4] ~ [ab3,c4] ~ [g3,bb3] ~ [gb3,a3,d4] ~", // Ab Eb Bb Ab Gm D
  I: "[g3,bb3,g4]@4 ~@10 [a3,c4,d4] ~", J: "[g3,bb3,d4] ~@3 [bb3,d4,gb4]@4 [bb3,d4,g4] ~@3 bb3@4",
  K: "[g3,bb3,d4] ~@3 [bb3,d4,gb4]@4 [bb3,d4,g4] ~@7", // Gm Bbaug Gm
  L: "~@2 [ab3,bb3,d4] ~@3 [ab3,bb3,d4] ~@3 [ab3,bb3,d4] ~@3 [ab3,bb3,d4] ~", // Bb7
  M: "~@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~", // Eb
  N: "~@2 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,bb3,d4] ~@3 [ab3,bb3,f4] ~", // Fm Bb7
  O: "[bb3,eb4,g4] ~ [bb3,eb4,g4]!3 ~ [bb3,eb4,g4] ~ [bb3,bb4]@8", // Eb Bb
  P: "[eb3,ab3]@4 [gb3,a3]@4 [g3,bb3,eb4]@4 [g3,c4,eb4] ~ [ab3,c4,f4] ~, eb4@7 ~@9", // Ab5 Gbm Eb Cm Fm
  Q: "[g3,bb3,eb4] ~@3 [ab3,bb3]@4 [g3,eb4] ~ [g3,bb3,eb4]!3 ~@3", // Eb Absus2 Cm Eb
  R: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~", // Ab
  S: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,b3,d4] ~@3 [ab3,b3,d4] ~", // Ab Abdim
  T: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~", // Ab
  U: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [bb3,db4,e4] ~@3 [bb3,db4,e4] ~", // Ab Bbdim
  V: "~@2 [bb3,db4,eb4] ~@3 [bb3,eb4,g4] ~@3 [bb3,db4,eb4] ~@3 [bb3,eb4,g4] ~", // Eb7 Eb Eb7 Eb
  W: "~@2 [bb3,c4,eb4] ~@3 [bb3,db4,eb4] ~@3 [g3,db4,eb4] ~@3 [g3,db4,eb4] ~", // Cm7 Eb7
  X: "~@2 [bb3,c4,eb4] ~@3 [g3,db4,eb4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~", // Cm7 Eb7 Eb
  Y: "~@2 [bb3,db4,eb4] ~@3 [bb3,db4,eb4] ~@3 [g3,db4,eb4] ~@3 [g3,db4,eb4] ~", // Eb7
  Z: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [bb3,c4,e4] ~@3 [bb3,db4,e4] ~", // Ab C7 Bbdim
  AA: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~@5 ab3 g3", AB: "f3@3 g3 ab3 ~ bb3 ~ c4 ~ db4 ~ c4@3 [d4,e4]",
  AC: "f4@3 e4 f4 ~ c4 ~ ab3 ~ g3 ~ f3@3 [f3,g3]", AD: "eb3@3 f3 g3 ~ ab3 ~ bb3 ~ c4 ~ bb3@2 ~ [c4,d4]",
  AE: "[eb4@3 d4 eb4 ~ bb3 ~ g3 ~ f3 ~ eb3@28 ~@2 eb3 ~ f3 ~ g3 ~]/3",
  AF: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3", // Ab
})).s("gm_trombone").gain(0.43)

// other · synth brass 2 · "T.horn"
const synth_brass_2 = note(`<
  A B C D@3 E F G H C D@3 E F G I J K L M J N O P Q ~ R S T U@4 ~ R V T W@4 X Y Z AA AB@2 ~ R S T U@4 ~ R V T AC@4
>`.pickRestart({
  A: "eb4@3 ~ f4@3 ~ eb4@3 ~ bb3@3 ~", B: "ab3 ~@5 bb3 ~ bb3 ~@3 bb3@4", C: "g4 ~@2 g4!2 ~ f4 ~ eb4@4 ~@4",
  D: "[~@4 bb3 c4 d4 eb4 d4 ~ c4 ~ bb3@11 ~ bb3 ~ c4 ~ bb3@11 ~ eb4 ~ g4 ~ bb4@4]/3", E: "bb3@4 b3@4 c4@5 ~@3",
  F: "~@4 bb3 c4 d4 eb4 d4 ~ c4 ~ bb3 ~ c4 ~", G: "d4@2 db4 d4 g4 ~ eb4 ~ d4 ~ bb3 ~ g3 ~ a3 ~",
  H: "bb3 ~@3 a3@3 [a3,bb3] g3 ~@3 bb3@4", I: "bb3 ~@3 a3@3 [a3,bb3] g3 ~@7", J: "~@3 b3 c4@3 db4 d4@8",
  K: "~@3 b3 c4@3 d4 eb4@8", L: "~@3 d4 eb4@3 e4 f4@8", M: "~@3 d4 eb4@3 g4 bb4@7 ~", N: "~@3 b3 c4@3 d4 eb4@6 ~@2",
  O: "c4@3 [b3,c4] eb4@3 [d4,eb4] g4@3 [f4,gb4] eb4 ~ f4 ~", P: "g4 ~@3 f4@3 [f4,g4] eb4 ~ eb4!3 ~ eb4 [f4,g4]",
  Q: "ab4 ~@15", R: "eb4@5 f4 ab4 f4", S: "ab4@13 ~@3", T: "ab4@5 f4 ab4 f4",
  U: "[eb4@8 bb3@2 c4@2 eb4@8 bb3@2 c4@2 bb3@2 c4@2 bb3@8 bb3@2 c4@2 eb4@10 c4@2 eb4@2 c4@2 bb3@7 ~]/4", V: "ab4@7 ~",
  W: "[eb4@8 bb3@2 c4@2 eb4@8 bb3@2 c4@2 bb3@2 c4@2 bb3@7 ~ bb3@2 c4@2 eb4@18 ~@4 ab3 g3]/4",
  X: "f3@3 g3 ab3 ~ bb3 ~ c4 ~ db4 ~ c4@3 [d4,e4]", Y: "f4@3 e4 f4 ~ c4 ~ ab3 ~ g3 ~ f3@3 [f3,g3]",
  Z: "eb3@3 f3 g3 ~ ab3 ~ bb3 ~ c4 ~ bb3@2 ~ [c4,d4]", AA: "eb4@3 d4 eb4 ~ bb3 ~ g3 ~ f3 ~ eb3@4", AB: "[eb4@25 ~@7]/2",
  AC: "[eb4@8 bb3@2 c4@2 eb4@8 bb3@2 c4@2 bb3@2 c4@2 bb3@7 ~ bb3@2 c4@2 eb4@18 ~@2 eb4 ~@3]/4",
})).s("gm_synth_brass_2").gain(0.57).pan(1)

// other · synth brass 2 · "Bariton"
const synth_brass_2_2 = note(`<
  A B C D@3 E F G H C D@3 E F G I J K L M J N O P Q R S T U V W X Y R S T Z V W X AA AB AC AD AE AF@2 R S T U V W X Y R
  S T Z V W X AG
>`.pickRestart({
  A: "bb3@3 ~ d4@3 ~ c4@3 ~ g3@3 ~", B: "f3 ~@5 ab3 ~ g3 ~@3 bb3@4", C: "eb4 ~@3 bb3 ~@3 bb3@4 ~@4",
  D: "[~@4 bb3 c4 d4 eb4 d4 ~ c4 ~ bb3@12 bb3 ~ c4 ~ bb3@10 ~@2 eb4 ~ g4 ~ bb4@4]/3", E: "bb3@4 b3@4 c4@5 ~@3",
  F: "~@4 bb3 c4 d4 eb4 d4 ~ c4 ~ bb3 ~ c4 ~", G: "d4@2 db4 d4 g4 ~ eb4 ~ d4 ~ bb3 ~ g3 ~ a3 ~",
  H: "bb3 ~@3 a3@3 [a3,bb3] g3 ~@3 bb3@4", I: "bb3 ~@3 a3@3 [a3,bb3] g3 ~@7", J: "~@3 b3 c4@3 db4 d4@8",
  K: "~@3 b3 c4@3 d4 eb4@8", L: "~@3 d4 eb4@3 e4 f4@8", M: "~@3 d4 eb4@3 g4 bb4@7 ~", N: "~@3 b3 c4@3 d4 eb4@6 ~@2",
  O: "ab3@3 [b3,c4] c4 ~@2 [c4,d4] bb3@2 ~ [c4,d4] eb4 ~ c4 ~", P: "eb4 ~@3 d4@4 eb4 ~ bb3!3 ~ eb4 [f4,g4]",
  Q: "ab4 ~@7", R: "eb3@5 f3 ab3 f3", S: "eb3@15 ~", T: "ab3@5 bb3 db4 bb3", U: "ab3@15 ~", V: "~@2 bb3 c4 eb4@3 c4",
  W: "bb3@2 c4@2 bb3@3 ~ bb3@7 ~", X: "bb3 c4 eb4@3 c4 eb4 c4", Y: "bb3", Z: "ab3@7 ~", AA: "ab3@10 ~@4 ab3 g3",
  AB: "f3@3 g3 ab3 ~ bb3 ~ c4 ~ db4 ~ c4@3 [d4,e4]", AC: "f4@3 e4 f4 ~ c4 ~ ab3 ~ g3 ~ f3@3 [f3,g3]",
  AD: "eb3@3 f3 g3 ~ ab3 ~ bb3 ~ c4 ~ bb3@2 ~ [c4,d4]", AE: "eb4@3 d4 eb4 ~ bb3 ~ g3 ~ f3 ~ eb3@4",
  AF: "[eb4@25 ~@7]/2", AG: "ab3@10 ~@2 ab3 ~@3",
})).s("gm_synth_brass_2").gain(0.57).pan(0)

// other · trumpet · "Trompete"
const trumpet = note(`<
  A B ~@2 C ~@2 D E F ~@2 C ~@2 D E G ~@3 H ~ I J K L ~@16 M N O P ~@2 Q R S T ~@3 U ~@6 V W
>`.pickRestart({
  A: "eb5@3 ~ b4@3 ~ c5@3 ~ g4@3 ~", B: "ab4 g4 f4 g4 ab4 bb4 c5 d5 eb5 ~@3 bb4@2 [c5,d5] [eb5,f5]",
  C: "~@6 bb4!2 bb4@8", D: "~@14 c5 ~", E: "d5@2 db5 d5 g5 ~ eb5 ~ d5 ~ bb4 ~ g4 ~ a4 ~",
  F: "bb4 ~@3 a4@2 bb4 a4 g4 ~@3 bb4@2 [c5,d5] [eb5,f5]", G: "bb4 ~@3 a4@2 bb4 a4 g4 ~@7",
  H: "g5 ~ g5!3 eb5 ~ g5 bb5@8", I: "~@11 a4 bb4@3 b4", J: "c5@3 [b4,c5] eb5@3 [c5,d5] bb4@3 [c5,d5] eb5 ~ f5 ~",
  K: "g5 ~@3 f5@3 [f5,g5] eb5 ~ eb5!3 ~@3", L: "ab5 ~ ab5!3 ~ ab5 ~ ab5 ~ ab5 ~ ab5 ~ ab5 ~",
  M: "~@2 ab4 g4 ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4 ~", N: "ab4 ~ ab4 g4 ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4 ~",
  O: "~@2 g4 f4 g4 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~", P: "g4 ~ g4 gb4 g4 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~",
  Q: "eb5 ~ eb5!3 ~ eb5!2 eb5@8", R: "~@2 eb5!3 ~ eb5!2 eb5@7 ~", S: "ab5 ~ ab5!3 ~ ab5!2 ab5@8",
  T: "~@2 ab5!3 ~ ab5!2 ab5@8", U: "~@2 eb5!4 ~ eb5 eb5@7 ~", V: "~@2 eb5!2 eb5@5 ~ eb5!3 ~ eb5 ~",
  W: "ab5@9 ~@2 [eb5,f5] [g5,ab5] ~@3", // Ebsus2 Abmaj7
})).s("gm_trumpet").gain(0.5)

// chords · clarinet · "Klarinet"
const clarinet = note(`<
  A B C D ~ E F G ~ H C D ~ E F G ~ I J K L M N O P Q ~ R@4 S ~ T U R@4 S ~ V W X Y Z AA AB AC R@4 S ~ T U R@4 S ~ V AD
>`.pickRestart({
  A: "[bb4,eb5,g5]@3 ~ [b4,f5,g5]@3 ~ [c5,eb5,ab5]@3 ~ [bb4,c5,g5]@3 ~", // Eb G7 Ab C7
  B: "[c5,f5,ab5] g5 f5 g5 ab5 bb5 [bb4,ab5,c6] d6 [bb4,g5,eb6] ~@3 [bb4,bb5]@4", // Fm Eb Bb
  C: "[bb4,g5,bb5] ~@2 [bb4,g5,bb5]!2 ~ [ab4,f5,ab5] ~ [g4,eb5,g5]@3 ~ [g4,bb4,g5] [ab4,c5,ab5] [bb4,d5,bb5] [c5,eb5,c6]", // Eb Db Cm Gm Ab Bb Cm
  D: "[bb4,d5,bb5] ~ [ab4,c5,ab5] ~ [g4,bb4,g5]@12", E: "~@3 [bb4,bb5]",
  F: "[eb5,g5,eb6] ~@2 [eb5,g5,eb6]!2 ~ [d5,f5,d6] ~ [c5,eb5,c6]@3 ~ [g4,bb4,g5] [ab4,c5,ab5] [bb4,d5,bb5] [c5,eb5,c6]", // Eb Dm Cm Gm Ab Bb Cm
  G: "[bb4,d5,bb5] ~ [ab4,c5,ab5] ~ [bb4,bb5]@8 ~@4", H: "~@4 [gb4,c5,d5]@3 [c5,d5] [g4,bb4] ~@3 [bb4,bb5]@4",
  I: "~@4 [gb4,c5,d5]@3 [c5,d5] [g4,bb4] ~@2 [d4,f4,d5] [eb4,gb4,eb5]@3 [e4,g4,e5]", // D7 Csus2 Gm Dm Ebm Em
  J: "[f4,ab4,f5]@3 [e4,g4,e5] [f4,ab4,f5]@7 [e4,g4,e5] [f4,ab4,f5]@3 [gb4,a4,gb5]", // Fm Em Fm Em Fm Gbm
  K: "[g4,bb4,g5]@3 [gb4,a4,gb5] [g4,bb4,g5]@7 [gb4,a4,gb5] [g4,bb4,g5]@3 [g4,b4,g5]", // Gm Gbm Gm Gbm Gm G
  L: "[ab4,c5,ab5]@3 [g4,b4,g5] [ab4,c5,ab5]@7 [bb4,d5,bb5] [c5,eb5,c6]@3 [d5,f5,d6]", // Ab G Ab Bb Cm Dm
  M: "[eb5,g5,eb6]@9 [d5,f5,d6] ~ [c5,eb5,c6] [bb4,d5,bb5] [ab4,c5,ab5] ~ [g4,bb4,g5]", // Eb Dm Cm Bb Ab Gm
  N: "[f4,ab4,f5]@3 [e4,g4,e5] [f4,ab4,f5]@7 [g4,e5] [f4,ab4,f5]@3 [gb4,a4,gb5], ~@11 e4@2 ~@3", // Fm Em Fm C Fm Gbm
  O: "[g4,bb4,g5]@3 [gb4,a4,gb5] [g4,bb4,g5]@7 [gb4,a4,gb5] [g4,bb4,g5]@3 [g4,b4]", // Gm Gbm Gm Gbm Gm G
  P: "[ab4,c5,g5]@3 [b4,c5,b5,c6] [c5,c6] ~ d5 [c5,d5,eb5,c6,d6] [bb4,g5,bb5]@3 [c5,d5,f5,gb5,ab5,a5] [eb5,g5] ~ [f5,ab5,c6] ~, ~@2 eb5 ~@5", // Abmaj7 Cmaj7 C Cm Eb D7 Eb Fm
  Q: "[g5,bb5] ~@3 [f5,ab5,bb5]@3 [f5,g5,ab5,bb5] [eb5,g5] ~ [eb5,g5,bb5]!3 ~@3", R: "[c5,eb5,c6] ~@3 [c5,eb5,c6] ~@11",
  S: "[db4,bb4,db5] ~@11 [g4,eb5,g5] ~@3", // Gb Cm
  T: "[db4,bb4,db5] [eb4,c5,eb5] [g4,g5]@3 [eb4,c5] [g4,g5] [eb4,c5], ~@4 eb5 ~@5 eb5 ~ eb5 ~ eb5 ~", // Gb Cm G Cm G Cm
  U: "[db4,bb4,db5]@9 ~ [eb4,c5,eb5] ~ [g4,eb5,g5] ~ [eb4,c5,eb5] ~", // Gb Cm
  V: "[db4,bb4,db5]@2 [eb4,c5,eb5]@2 [g4,g5]@6 [eb4,c5]@2 [g4,g5]@2 [c5,eb5] ~, ~@4 eb5 ~@5 eb5 ~ eb5 ~ eb4@2", // Gb Cm G Cm G Cm
  W: "[ab4,c5,eb5]@5 ~@3", // Ab
  X: "~@2 [f5,ab5,c6] [eb5,g5,bb5] [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~", // Fm Eb Fm
  Y: "[f5,ab5,c6] ~ [f5,ab5,c6] [e5,g5,b5] [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~", // Fm Em Fm
  Z: "~@2 [eb5,g5,bb5] [d5,f5,a5] [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~", // Eb Dm Eb
  AA: "[eb5,g5,bb5] ~ [eb5,g5,bb5] [d5,gb5,a5] [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~ [eb5,g5,bb5] ~", // Eb D Eb
  AB: "~@2 [db5,f5] [c5,eb5,c6] [bb4,db5,bb5] ~ [ab4,c5,ab5] ~ [g4,bb4,g5] ~ [f4,ab4,f5] ~ [eb4,g4,eb5] ~ [db4,f4,db5] ~, ~ db6 ~@6", // Db Cm Bbm Ab Gm Fm Eb Db
  AC: "[c4,e4,c5] ~ [b3,d4,b4] ~ [bb3,db4,bb4] ~ [ab3,c4,ab4] ~ [g3,bb3,g4] ~ [g3,eb4,g4] ~ [ab3,d4,gb4] ~ [bb3,db4,f4] ~", // C Bm Bbm Ab Gm Cm Abm7b5 Bbm
  AD: "[ab4,c5,eb5]@10 ~@2 [ab4,c5,ab5] ~@3", // Ab
})).s("gm_clarinet").gain(0.22).pan(0.6)

// drums · kick
const kick = s("bd").struct("<A B C A@2 D A E F A C A@2 D A E F G A@3 H A@2 I A@17 G J@4 K ~ A@16>".pickRestart({
  A: "x!4", B: "x ~@2 x!4 ~", C: "x ~ x ~ x!2 ~@2", D: "x ~ x ~ x!3 ~", E: "x ~ x ~ x ~@2 x", F: "x ~ x ~@4 x",
  G: "x!3 ~", H: "x!2", I: "x ~ x ~ x ~ x!2", J: "x ~ x!5 ~", K: "x",
})).gain(0.24)

// drums · snare
const snare = s("sd").struct("<A B C D@2 E F G H I C D@2 E F G H J D@3 K D@2 L M N D@15 O P@4 ~@2 D@15 Q>".pickRestart({
  A: "~ x!3 ~@2 x!2 ~ x!2 ~@2 x!3", B: "x ~@5 x ~ x ~@5 x!2", C: "x ~ x ~@3 x ~ x!3 ~@5", D: "~ x ~ x ~ x ~ x",
  E: "~@2 x ~ x!3 ~ x ~@4 x!3", F: "x!2 ~ x ~ x ~ x", G: "~@2 x ~ x!5 ~@5 x ~", H: "x!5 ~@9 x ~",
  I: "x ~@3 x!5 ~@4 x!3", J: "x ~@3 x!5 ~@7", K: "x ~ x!3 ~ x ~ x ~@7", L: "x ~ x ~ x ~ x!2",
  M: "x ~@3 x ~@3 x ~ x!3 ~ x!2", N: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", O: "~ x ~ x!2 ~@3",
  P: "~@2 x!3 ~ x ~ x ~ x ~ x ~@3", Q: "~@2 x ~@3 x ~ x ~@2 x!2 ~@3",
})).gain(0.2)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<A B ~@3 C ~@3 C ~@3 C ~@51>".pickRestart({
  A: "x ~@3 x!2 ~@2 x ~@2 x!2 ~@3", B: "~@12 x!2 ~@2", C: "~@3 x",
})).gain(0.08)

// … 4 more lines

More by Mosch