Strudelify

Bohmischer Wind

Mosch

KeyD majorTempo152 bpm
0:00/0:00
// Bohmischer Wind — Mosch
// 152 bpm, 3/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 "Tuba" tuba)
// note: Full arrangement: all 140 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(152/3)

// 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 · "Flgelh."
const french_horn = note(`<
  A B C@2 D E F@2 G H I@2 J K L@2 A B M@2 D E N@2 G H O P Q K R ~ S T U T V W@2 ~ X Y Z@2 AA W@2 ~ S AB AC T V W@2 ~ AD
  AE AF@2 AG AH@2 ~ AI AJ AK AL AM AN AO@2 AP AQ AR@2 AS AT@2 ~ AU AE R AV AM AN AW@2 AP AX O ~ AY AZ@3 S T U T V W@2 ~
  X Y Z@2 AA W@2 ~ S AB AC T V W@2 ~ AD AE AF@2 AG AH@2 ~@13
>`.pickRestart({
  A: "f#4@5 f4@5 ~ f#4@5", B: "g4@11 f#4@5", C: "[e4@27 ~@5]/2", D: "e4@5 d#4@5 ~ e4@5", E: "f#4@11 e4@5",
  F: "[d4@27 ~@5]/2", G: "b4@5 a#4@5 ~ b4@5", H: "c#5@11 b4@5", I: "[a4@19 ~@2 g4@5 ~ f#4@5]/2",
  J: "e4 ~@4 d#4 ~@5 e4 ~@4", K: "a4@11 g4@5", L: "[f#4@29 ~@3]/2", M: "[e4@31 ~]/2", N: "[d4@31 ~]/2", O: "a4",
  P: "g4@11 b4@5", Q: "a4@5 g#4@5 ~ a4@4 ~", R: "f#4", S: "d4@5 c#4@5 ~ c4@5", T: "b3@9 ~@2 b3@5", U: "b3@9 ~@2 b3@4 ~",
  V: "c4@5 b3@5 ~ c4@5", W: "d4/2", X: "d4@5 c4@5 ~ b3@5", Y: "c4@11 c4@4 ~", Z: "[c4@27 d4@5]/2",
  AA: "e4@5 d4@5 ~ c#4@5", AB: "b3@10 ~ b3@4 ~", AC: "b3@8 ~@3 b3@4 ~", AD: "d4@5 e4@5 ~ d4@4 ~", AE: "d4",
  AF: "[c4@20 ~ c4@5 ~ d4@5]/2", AG: "e4@5 d4@5 ~ c4@5", AH: "b3/2", AI: "g4@5 f#4@5 ~ e4@5", AJ: "d4@15 ~",
  AK: "f#4@15 ~", AL: "a4@10 ~ c5@4 ~", AM: "c5@5 b4@5 ~ a#4@5", AN: "b4@10 ~ b4@5", AO: "[b4@9 ~@7]/2",
  AP: "b4@5 a4@6 g#4@5", AQ: "a4@10 ~ a4@4 ~", AR: "[a4@18 ~@3 f#4@6 g4@5]/2", AS: "a4@5 d5@6 c5@5", AT: "[b4@15 ~]/2",
  AU: "g4@5 f#4@6 e4@4 ~", AV: "a4@10 ~ c5@5", AW: "[b4@19 ~@13]/2", AX: "a4@10 ~ a4@5", AY: "g4", AZ: "[f#4@17 ~@7]/3",
})).s("gm_french_horn").gain(0.5).pan(1)

// bass · tuba
const bass = note(`<
  A B C D E F G@2 H I C I C F J@2 A B C D E F K L M I C N I F O A ~ N A N P Q R S P M A I A T U V P N A N P W X Y P M A
  I A Z AA AB AC AD AE AF AG N A N AH I A M A AI AJ AK AL AM AE AN AO N A N AH I A@2 AP A AQ AR AS N A N P Q R S P M A I
  A T U V P N A N P W X Y P M A I A Z AA AB AT AU AV N P N A N AV AW@3
>`.pickRestart({
  A: "[d2,d3] ~@15", B: "[d2,d3]@11 [d#2,d#3]@5", C: "[e2,e3] ~@15", D: "[a1,a2] ~@15", E: "[c#2,c#3] ~@15",
  F: "[a1,a2]@5 [b1,b2]@5 ~ [c#2,c#3]@5", G: "[[d2,d3]@5 [e2,e3]@5 ~@6 [b2,b3]@11 [a2,a3]@5, ~@11 [f#2,f#3]@7 ~@14]/2",
  H: "[f#2,f#3]@3 ~@13", I: "[a2,a3] ~@15",
  J: "[[d2,d3]@5 [c#2,c#3]@5 ~@6 [b1,b2]@11 [a1,a2]@5, ~@11 [d2,d3]@7 ~@14]/2", K: "[d2,d3]@5 [e2,e3]@5 ~ [f#2,f#3]@5",
  L: "[b2,b3]@11 [a2,a3]@5", M: "[f#2,f#3] ~@15", N: "[g2,g3] ~@15", O: "[d2,d3] ~@4 [a2,a3] ~@5 [f#2,f#3] ~@4",
  P: "[d2,d3]", Q: "[g2,g3] ~@10 [g2,g3] ~ [a2,a3] ~@2", R: "[b2,b3]@10 ~ [g2,g3]@5",
  S: "[c3,c4]@5 [b2,b3]@6 [g2,g3]@5", T: "[g2,g3] ~@10 [b2,b3]@2 [a2,a3]@3", U: "[g2,g3]@11 [e2,e3]@5",
  V: "[d2,d3]@11 [e2,e3]@5", W: "[g2,g3] ~@10 [g2,g3]@2 [a2,a3]@3", X: "[b2,b3]@11 [g2,g3]@5",
  Y: "[c3,c4]@5 [b2,b3]@5 ~ [g2,g3]@5", Z: "[g2,g3] ~@10 [e2,e3]@5", AA: "[d2,d3]@11 [b1,b2]@5", AB: "[g1,g2] ~@15",
  AC: "[g2,g3]@5 [a2,a3]@6 [b2,b3]@4 ~", AD: "[d3,d4]@7 ~", AE: "[c3,c4]@15 ~", AF: "[a2,a3]@7 ~", AG: "[f#2,f#3]@7 ~",
  AH: "[g2,g3]@11 [g#2,g#3]@5", AI: "[g2,g3]@11 ~@5", AJ: "[d2,d3]@11 ~@5", AK: "[b1,b2]@11 ~@5",
  AL: "[g2,g3]@5 [a2,a3]@6 [b2,b3]@5", AM: "[d3,d4]@15 ~", AN: "[a2,a3]", AO: "[f#2,f#3]@15 ~",
  AP: "[a1,a2]@5 [b1,b2]@6 [c#2,c#3]@5", AQ: "[c2,c3]@15 ~", AR: "[a1,a2]@15 ~", AS: "[d2,d3]@5 [e2,e3]@6 [d2,d3]@4 ~",
  AT: "[d2,d3]@15 ~", AU: "[g2,g3] ~@7", AV: "[d2,d3] ~@7", AW: "[[g1,g2]@35 ~@13]/3",
})).s("gm_tuba").gain(0.5)

// other · synth brass 2 · "T.h”rner"
const synth_brass_2 = note(`<
  A B C@2 D E F@2 ~@2 G B H I J@2 K B L@2 D E F@2 ~@2 G M N I O@2 P Q R S T U@3 V W X@2 Y Z@2 ~ P AA AB S T AC@3 AD AE
  AF@2 AG AH@3 AI AJ AK AL ~ AM AN AO ~ AP AQ AR ~ AM AS ~ AT AE AK AU ~ AM AN AV ~ AW AQ AX AY AZ@3 P Q R S T U@3 V W
  X@2 Y Z@2 ~ P AA AB S T AC@3 AD AE AF@2 AG BA@3 BB BC@3 BB BD@3 BE BF@3
>`.pickRestart({
  A: "f#4@5 f4@6 f#4@5", B: "g4@11 f#4@5", C: "[e4@29 ~@3]/2", D: "e4@5 d#4@5 ~ e4@5", E: "f#4@11 e4@5",
  F: "[d4@7 ~]/2", G: "~@5 e4@3 d#4@3 e4@2 f#4@3", H: "e4 ~@4 d#4 ~@5 e4 ~@4", I: "a4@11 g4@5", J: "[f#4@29 ~@3]/2",
  K: "f#4@5 f4@5 ~ f#4@5", L: "[e4@15 ~]/2", M: "g4@11 g#4@5", N: "a4@5 g#4@5 ~ a4@5", O: "[f#4@9 ~@7]/2",
  P: "d4@5 c#4@6 c4@5", Q: "b3@10 ~ b3@5", R: "b3@8 ~@3 b3@5", S: "b3@9 ~@2 b3@5", T: "c4@5 b3@6 c4@5", U: "[d4@3 ~]/3",
  V: "d4@5 c4@6 b3@5", W: "c4@10 ~ c4@4 ~", X: "[c4@26 ~ d4@5]/2", Y: "e4@5 d4@6 c#4@5", Z: "d4/2",
  AA: "b3@10 ~ b3@4 ~", AB: "b3@9 ~@2 b3@4 ~", AC: "[d4@35 ~@13]/3", AD: "d4@5 e4@6 d4@5", AE: "d4",
  AF: "[c4@19 ~@2 c4@6 d4@5]/2", AG: "e4@5 d4@6 c4@5", AH: "[b3@17 ~@7]/3", AI: "g4@5 f#4@6 e4@5", AJ: "d4@15 ~",
  AK: "f#4", AL: "a4@3 ~", AM: "~@5 d4@6 b3@5", AN: "g4@11 d4@5", AO: "b3@7 ~", AP: "~@5 f#4@5 ~ d4@5",
  AQ: "f#4@11 d4@5", AR: "f#4@11 ~@5", AS: "g4", AT: "g4@5 f#4@5 ~ e4@5", AU: "a4@13 ~@3", AV: "b3",
  AW: "~@5 f#4@6 d4@5", AX: "f#4@7 ~", AY: "e4", AZ: "[f#4@17 ~@7]/3", BA: "[b3@34 ~@9 d4@5]/3", BB: "c4@10 ~ d4@5",
  BC: "[b3@36 ~@7 d4@5]/3", BD: "[b3@35 ~@13]/3", BE: "b3@3 ~@13", BF: "[g3@35 ~@13]/3",
})).s("gm_synth_brass_2").gain(0.5).pan(0.9)

// other · synth brass 2 · "Baritonr"
const synth_brass_2_2 = note(`<
  A B C@2 D E F@2 ~@2 G H@2 I J@2 K B C@2 D E L@2 ~@2 G M N O P ~ Q R S R T U@3 V W X@2 Y Z@2 ~ Q AA S R T U@3 AB AC
  AD@2 AE AF@3 AG AH AI AJ ~ AK AL AM ~ AN AO AP ~ AK AQ ~ AR AH AI AS ~ AK AL AT ~ AN AO AU AV AW@3 AX R S R T U@3 V W
  X@2 Y Z@2 ~ Q AA S R T U@3 AB AC AD@2 AE AY@3 AZ BA@3 AZ BB@3 BC BD@3
>`.pickRestart({
  A: "a3@5 g#3@5 ~ a3@5", B: "b3@11 a3@5", C: "[g3@29 ~@3]/2", D: "g3@5 f#3@5 ~ g3@5", E: "a3@11 g3@5",
  F: "[f#3@29 ~@3]/2", G: "~@5 e3@3 d#3@3 e3@2 f#3@3", H: "[g3@11 ~@5 g3 ~@4 f#3 ~@5 g3 ~@4, ~@11 a3@7 ~@14]/2",
  I: "c#4@11 b3@5", J: "[a3@29 ~@3]/2", K: "a3@5 g#3@6 a3@5", L: "[f#3@7 ~]/2", M: "g3@11 d4@5",
  N: "c#4@5 c4@5 ~ c#4@5", O: "f#4@11 e4@5", P: "d4", Q: "d4@5 e4@6 f#4@5", R: "g4@9 ~@2 g4@5", S: "g4@9 ~@2 g4@4 ~",
  T: "a4@5 g#4@6 a4@5", U: "[b4@3 ~]/3", V: "b4@5 a4@6 g#4@5", W: "a4@10 ~ a4@5", X: "[a4@26 ~ b4@5]/2",
  Y: "c5@5 b4@6 a#4@5", Z: "[b4@31 ~]/2", AA: "g4@10 ~ g4@4 ~", AB: "b4@5 c5@6 b4@4 ~", AC: "b4",
  AD: "[a4@20 ~ a4@6 b4@5]/2", AE: "c5@5 b4@6 a4@5", AF: "[g4@17 ~@7]/3", AG: "b4@5 a4@6 g4@5", AH: "f#3", AI: "a3",
  AJ: "c4@3 ~", AK: "~@5 b3@5 ~ g3@5", AL: "b3@11 b3@5", AM: "g3@7 ~", AN: "~@5 a3@6 f#3@5", AO: "d4@11 f#3@5",
  AP: "a3@11 ~@5", AQ: "b3", AR: "b3@5 a3@6 g3@5", AS: "c4@13 ~@3", AT: "g3", AU: "a3@15 ~", AV: "c#4",
  AW: "[d4@35 ~@13]/3", AX: "d3@5 e3@6 f#3@5", AY: "[g4@34 ~@9 b3@5]/3", AZ: "a3@11 f#3@5", BA: "[g3@36 ~@7 b3@5]/3",
  BB: "[g3@3 ~]/3", BC: "d3@3 ~@13", BD: "[b2@17 ~@7]/3",
})).s("gm_synth_brass_2").gain(0.5).pan(0.1)

// other · trumpet · "Trompete"
const trumpet = note("<~@81 A B C ~ D E F@2 G@2 C ~ H@3 ~ I@2 J I K@3 ~ L M@2 ~ N@3 ~@12 O@4 ~@12>".pickRestart({
  A: "d4@9 ~@2 d4!2 ~ d4 ~", B: "d4@8 ~@3 d4!2 ~ d4 ~", C: "d4", D: "g4@7 ~@4 g4!2 ~ g4 ~", E: "g4@10 ~ g4 g4@2 b4 ~",
  F: "[d5@9 ~@7]/2", G: "[d4@24 ~@3 d4!2 ~ d4 ~]/2", H: "[a4@35 ~@13]/3", I: "d5@7 ~", J: "d5@15 ~", K: "[g5@43 ~@5]/3",
  L: "d4@8 ~@3 d4 ~ d4 ~@2", M: "[d4@7 ~]/2", N: "[g5@35 ~@13]/3", O: "[d4@25 ~@7]/4",
})).s("gm_trumpet").gain(0.57).pan(0.7)

// other · clarinet · "Klarinet"
const clarinet = note(`<
  ~@2 A B ~@2 C D ~@6 E F ~@2 A B ~@2 C D ~@6 G H ~@5 I J K L ~@4 M N O P ~@4 I J K Q R S T ~ U V W ~ X Y Z ~@2 AA AB
  ~@2 AC AD ~@2 AE AF ~ AG AH AI ~@2 AJ AB ~@2 AC AD ~ AK AL AM AN ~@4 I J K L ~@4 M N O P ~@4 I J K Q R S T ~ U V W ~
  AO AP AQ ~ AO AP AR ~@4
>`.pickRestart({
  A: "~@5 [a3,a4]@3 [a#3,a#4]@3 [b3,b4]@2 [c4,c5]@3", B: "[c#4,c#5]@3 [c4,c5]@2 [b3,b4]@3 [a#3,a#4]@3 [a3,a4]@2 ~@3",
  C: "~@5 [a3,a4]@3 [a#3,a#4]@3 [b3,b4]@2 [c#4,c#5]@3", // A A# B C#
  D: "[d4,d5]@3 [c#4,c#5]@2 [b3,b4]@3 [a#3,a#4]@3 a4@2 ~@3, ~@11 a3 ~@4", // D C# B A#
  E: "~@5 [d4,d5]@3 [f#4,f#5] ~@2 [f#4,f#5]@2 [a4,a5] ~@2", // D F# A
  F: "[a4,a5]@3 [b4,b5] ~ [b4,b5]@3 [f#4,f#5] ~@2 [f#4,f#5]@2 [a4,a5]@2 ~", // A B F# A
  G: "~@5 [a4,d5,f#5]@3 [f#4,a4,d5] ~@2 [d4,f#4,a4] ~ [f#4,a4,d5] ~@2", H: "[a4,d5,f#5] ~@15", I: "~@11 b3@2 c4@3",
  J: "d4@10 ~ b3@5", K: "e4@5 d4@5 ~ b3@5", L: "d4@13 ~@3", M: "~@11 d4@2 c4@3", N: "b3@10 ~ c4@5", O: "b3@11 c4@5",
  P: "d4@7 ~", Q: "d4@3 ~", R: "~@5 [d4,d5] ~@2 [e4,e5] ~@2 [d4,d5] ~@4",
  S: "~@5 [d4,d5] ~@2 [e4,e5] ~@2 [d4,d5] ~ [e4,e5] ~@2", T: "[d4,d5] ~@15",
  U: "[g4,g5]@3 [f#4,f#5]@2 [f4,f5]@3 [e4,e5]@3 [d#4,d#5]@2 [d4,d5]@3", // G F# F E D# D
  V: "[c#4,c#5]@3 [d4,d5]@2 [d#4,d#5]@3 [e4,e5]@3 [f4,f5]@2 [f#4,f#5]@3", W: "[g4,g5]@3 ~@13",
  X: "~@5 [a4,d5,f#5]@2 ~@4 [c5,f#5,a5] ~@4", // D F#dim
  Y: "~@5 [a4,c5,f#5]@3 [c5,f#5,a5] ~@2 [c5,f#5,a5]@2 [a5,c6] ~@2, ~@13 f#5@2 ~", // F#dim Am
  Z: "[f#5,a5,c6]@3 [c5,f#5] ~ [a5,c6] ~@10, ~@3 a5@2 f#5@2 ~@9", AA: "~@5 [d5,g5,d6] ~@5 [b4,d5,b5] ~@4",
  AB: "[d5,g5,b5] ~@15", AC: "~@5 [c5,f#5,a5] ~@5 [a4,c5,f#5] ~@4", AD: "[c5,f#5,a5] ~@15",
  AE: "~@5 [g4,b4,d5]@5 ~ [d4,g4,b4]@5", AF: "[b4,d5,g5]@7 ~", AG: "~@5 [a4,d5,f#5]@5 ~ [c5,f#5,a5] ~@4",
  AH: "~@5 [a4,c5,f#5]@3 [c5,f#5] ~@2 [f#5,a5] ~ [f#5,a5,c6] ~@2, ~@8 a5@2 ~ c5@2 ~@3", // F#dim Cdim F#m F#dim
  AI: "[a5,c6] ~@2 [c5,f#5] ~ [a5,c6] ~@10, f#5@2 ~ a5@2 f#5@2 ~@9", AJ: "~@5 [d5,g5,b5] ~@5 [b4,d5,g5] ~@4",
  AK: "d5@3 c#5 ~ d5 ~@2 e5 ~@2 f#5 ~ g5 ~@2", AL: "a5@3 g5 ~ f#5 ~@2 g5 ~@2 a5 ~ b5 ~@2",
  AM: "c6@2 ~ [b5,d6] ~ [a5,d6] ~@2 [g5,d6] ~@2 [f#5,d6] ~ [e5,d6] ~@2", // Bm D5 G5 D E7
  AN: "[d5,d6] [d5,e5,d6,e6] [e5,e6] [d5,e5,d6,e6] [d5,d6] [d5,e5,d6,e6] [e5,e6] [d5,e5,d6,e6] [d5,d6] [d5,e5,d6,e6] [e5,e6] [d5,e5,d6,e6] [d5,d6] [d5,e5,d6,e6] [e5,e6] [d5,e5,d6,e6]", // D Dsus2 E Dsus2 D Dsus2 E Dsus2 …
  AO: "g4@3 f#4@2 f4@3 e4@3 d#4@2 d4@3", AP: "c#4@3 d4@2 d#4@3 e4@3 f4@2 f#4@3", AQ: "g4@3 ~@13", AR: "[b3,d4,g4] ~@7",
})).s("gm_clarinet").gain(0.16).pan(0.6)

// chords · trombone · "Posaunen"
const trombone = note(`<
  A B C D E F G H I J K L E K G M N B C D E F G O I J K P Q F G R S T@3 U T@3 V W@2 X Y T Z@2 AA T@3 AB T@3 AC AD AE X
  AF T AG AH ~ W AE W AI AJ T@2 AK W@3 AE T@3 AL W@3 Y T AM T AN W@2 AO AP G W G AQ T@3 U T@3 V W@2 X Y T Z@2 AA T@3 AB
  T@3 AC AD AE X AF T AG AH AR@4 AS@4 AT AU@3
>`.pickRestart({
  A: "~@5 [d#3,g#3,d4] ~@5 [e3,a3,d4] ~@4", B: "~@5 [g3,b3,d4] ~@5 [f#3,a3,d#4] ~@4",
  C: "~@5 [g3,b3,e4] ~@5 [g3,b3,e4] ~@4", D: "~@5 [g3,a3,e4] ~@5 [g3,a3,e4] ~@4",
  E: "~@5 [f#3,a3,d#4] ~@5 [g3,a3,e4] ~@4", F: "~@5 [f#3,a3,c#4] ~@5 [g3,a3,c#4] ~@4",
  G: "~@5 [f#3,a3,d4] ~@5 [f#3,a3,d4] ~@4", H: "b3@11 a3@3 ~@2, [f#3,d4]@7 ~",
  I: "~@5 [f#3,a#3,c#4] ~@5 [f#3,b3,d4] ~@4", J: "~@5 [f#3,a3,c#4] ~@5 [f#3,a3,d4] ~@4",
  K: "~@5 [g3,a3,c#4] ~@5 [g3,a3,c#4] ~@4", L: "~@5 [g3,b3,e4] ~@5 [f#3,a3,c#4] ~@4", M: "[f#3,a3,d4]",
  N: "~@5 [e3,g#3,d4] ~@5 [f#3,a3,d4] ~@4", O: "b3@11 a3@4 ~, [f#3,d4]@7 ~", P: "~@5 [e3,g3,b3] ~@5 [f3,g#3,b3] ~@4",
  Q: "g#3 ~@4 [e3,a3,c4] ~@5 [g3,c#4] ~@4", R: "[f#3,a3,d4] ~@15", S: "~@5 [g3,b3,d4] ~@10",
  T: "~@5 [g3,b3,d4] ~@5 [g3,b3,d4] ~@4", U: "[a3,c4]@5 [g#3,b3]@6 [a3,c4]@4 ~, d3@15 ~",
  V: "[b3,d4]@5 [a3,c4]@6 [g#3,b3]@5, d3@15 ~", W: "~@5 [f#3,a3,c4] ~@5 [f#3,a3,c4] ~@4",
  X: "~@5 [f#3,a3,c4] ~@5 [f#3,b3,d4] ~@4", Y: "~@5 [f#3,b3,d4] ~@5 [f#3,a#3,c#4] ~@4",
  Z: "~@5 [g3,b3,d4] ~@5 [g3,c4,e4] ~@4", AA: "[b3,d4]@5 [a#3,c#4]@6 [a3,c4]@5, d3",
  AB: "[a3,c4]@5 [g#3,b3]@5 ~ [a3,c4]@5, d3@15 ~", AC: "~@5 [g3,c4,e4] ~@5 [g3,b3,d4] ~@4",
  AD: "~@5 [f#3,b3,d4] ~@5 [b3,d4] ~@4, ~@11 f#3@2 ~@3", AE: "~@5 [f#3,a3,c4] ~@5 [a3,c4] ~@4, ~@11 f#3@2 ~@3",
  AF: "~@5 [f#3,b3,d4] ~@5 [f#3,a3,c4] ~@4", AG: "[g3,b3,d4] ~@2 [g3,b3,d4] ~ [g3,b3,d4] ~@5 [g3,b3,d4] ~@4",
  AH: "[g3,b3,d4] ~@15", AI: "~@5 [f#3,b3,d4] ~@5 [f#3,a#3]@2 ~@3, ~@11 c#4 ~@4",
  AJ: "~@5 [b3,d4] ~@5 [b3,d4] ~@4, ~@5 g3@2 ~@4 g3@2 ~@3", AK: "~@5 [g3,c4,d4] ~@5 [f3,b3,d4] ~@4",
  AL: "[g3,b3]@5 [f#3,a3]@6 [e3,g3]@5, d4@15 ~", AM: "~@5 [g3,b3,d4] ~@5 [b3,d4] ~@4, ~@11 g3@2 ~@3",
  AN: "~@5 [g3,c4,d4] ~@5 [f#3,b3,d4] ~@4", AO: "[f#3,a3,c4] ~@15", AP: "[g3,a3,c#4]@7 ~",
  AQ: "[f#3,d4]@5 [e3,g3,c#4]@6 [d3,a3,c4]@5", AR: "[[c3,f#3]@16 [b2,g3]@35 ~@13, d3@25 ~@7]/4",
  AS: "[[c3,f#3]@16 [b2,g3]@35 ~@13, d3@51 ~@13]/4", AT: "[b2,d3,g3]@5 ~@11", AU: "[[g2,d3]@17 ~@7]/3",
})).s("gm_trombone").gain(0.5)

// drums · kick
const kick = s("bd").struct("<x!32 ~ x!31 ~ x!63 ~@12>").gain(0.32)

// drums · snare
const snare = s("sd").struct(`<
  A@31 B ~ A@7 C A@7 D A@13 C B ~ A@15 C A@10 B C A@3 D A@7 C A@7 D A@13 C B ~@12
>`.pickRestart({
  A: "~@5 x ~@5 x ~@4", B: "x", C: "x ~@2 x ~ x ~@5 x ~@4", D: "x ~@4 x ~@2 x ~@2 x ~ x ~@2",
})).gain(0.27)

// drums · crash
const crash = s("cr").struct("<~@65 x!15 ~ x!10 ~@2 x!3 ~@44>").gain(0.18)

stack(french_horn, bass, synth_brass_2, synth_brass_2_2, trumpet, clarinet, trombone, kick, snare, crash)

More by Mosch