Strudelify

Castaldo-Marsch (Marsch)

Mosch

KeyB♭ majorTempo112 bpm
0:00/0:00
// Castaldo-Marsch (Marsch) — Mosch
// 112 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 7 "SynBrass" synth brass 2 (copy of ch 3 "Baesse" tuba)
// note: Full arrangement: all 72 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.

// chords · french horn · "F-Hoerne"
const french_horn = note(`<
  A B C D E F G H I D C D E J K L M N O P Q R S T U V W X Y Q Z AA AB U AC W AD AE AF AG AH AI AJ AK AL AM AN AG AO AP
  AQ AR AS AT Q R S T U V W X Y Q Z AA AB U AC W AD AU
>`.pickRestart({
  A: "f4@3 g4 a4@3 bb4 c5@3 d5 eb5@3 e5", B: "f5 ~ g5 ~ [ab4,f5]@3 g5 [a4,f5] ~@5 [d4,f4]!2",
  C: "[d4,f4] ~ [d4,bb4] ~ [f4,d5] ~ [g4,eb5] ~ [f4,d5]@4 [a4,f5]@3 [g4,eb5]", D: "[f4,d5]@12 ~@2 [d4,f4]!2",
  E: "[d4,f4] ~ [d4,bb4] ~ [f4,d5] ~ [g4,eb5] ~ [f4,d5]@4 [bb4,g5]@3 [bb4,gb5]", // Dm Gm Dm Cm Dm Eb Ebm
  F: "[a4,f5]@10 ~@2 [bb4,g5] ~ [bb4,gb5] ~", G: "[a4,f5]@4 [g4,eb5] ~ [gb4,d5] ~ [g4,eb5]@4 [f4,a4]@3 [e4,ab4]",
  H: "[eb4,g4]@7 ~ [a4,f5]@3 ~ [g4,eb5]@3 ~", I: "[f4,d5]@3 ~ [f4,d5]@3 ~ [eb4,c5]@3 ~ [d4,bb4]@3 ~",
  J: "[a4,f5]@10 ~@2 [bb4,g5]@3 [bb4,gb5]", K: "[a4,f5]@4 [c5,a5] ~ [bb4,g5] ~ [a4,f5]@4 [g4,eb5]@3 [eb4,c5]",
  L: "[f4,d5] [d5,bb5]", M: "[c5,a5] ~@3 [bb4,g5] ~ [a4,f5] ~ [g4,eb5]@3 ~ [f4,a4]@3 [eb4,c5]",
  N: "[d4,bb4]@8 ~@3 [f4,g4] [d4,a4,bb4] ~@3", // Gm Fsus2 Bbmaj7
  O: "[g4,bb4] ~ [g4,bb4]!3 [eb4,g4] ~ [g4,bb4] [bb4,eb5] [g4,bb4] ~ [eb4,g4] [g4,bb4]@3 [f4,g4]", // Gm Eb Gm Eb5 Gm Eb Gm Fsus2
  P: "[d4,ab4,bb4] ~@2 [f4,g4] [eb4,ab4,bb4] ~@2 [f4,g4] [f4,a4,bb4] ~@7", Q: "[g3,bb3]@7 ~ [g3,eb4]@3 ~ [ab3,f4]@3 ~",
  R: "[bb3,g4]@6 [g3,eb4]@2 [bb3,g4]@5 ~ [g3,eb4]@2", S: "[bb3,g4]@5 ~ [c4,ab4]@2 [bb3,g4]@4 [c4,ab4]@4",
  T: "[d4,bb4]@6 [eb4,c5]@2 [d4,bb4]@3 ~ [eb4,c5]@3 ~", U: "[d4,bb4]@7 ~",
  V: "[d4,bb4]@5 ~ [d4,f4] ~ [d4,bb4]@4 [eb4,c5]@4", W: "[f4,d5] [eb4,c5]", X: "[d4,bb4]@4 [c4,ab4]@3 [a3,gb4]",
  Y: "[bb3,g4]@3 ~", Z: "[bb3,g4]@3 [g3,eb4] [bb3,g4]@3 [g3,eb4]", AA: "[bb3,g4]@3 [c4,ab4] [bb3,g4]@2 [c4,ab4]@2",
  AB: "[d4,bb4]@6 [eb4,c5]@2 [d4,bb4]@4 [eb4,c5]@3 ~", AC: "[d4,bb4]@6 [d4,f4] ~ [d4,bb4]@4 [eb4,c5]@4",
  AD: "[d4,bb4]@2 [c4,ab4]@2 [b3,g4]@2 [c4,ab4]@3 ~ [bb3,d4]@4 [ab3,f4]@2", // Gm Fm Em Fm Bb Db
  AE: "[g3,eb4]@9 ~@2 [c5,eb5]!2 ~ [c5,eb5] ~", AF: "[bb4,d5]@4 [ab4,c5]@4 f4@4 [c5,eb5] ~@2 [c5,eb5], ~@8 ab4 ~@7",
  AG: "[bb4,d5]@11 ~ [bb4,d5] [c5,eb5] [bb4,d5] [ab4,c5]", AH: "[g4,bb4]@4 [bb4,g5]@5 ~ [a4,gb5] ~ [bb4,g5]@3 [a4,gb5]",
  AI: "[bb4,g5]@5 ~@3", AJ: "~@2 [d4,bb4] ~@3 [d4,bb4] ~@3 [d4,bb4] ~@3 [db4,bb4] ~",
  AK: "~@2 [d4,bb4] ~@3 [db4,bb4] ~@3 [d4,bb4]!3 ~@3", // Gm Gb Gm
  AL: "[bb3,g4] ~ [bb3,g4] ~ [a3,gb4] ~ [bb3,g4] ~ [ab3,f4]@6 [g3,eb4]@2", AM: "[bb3,g4]@9 ~@2 [c5,eb5]!2 ~ [c5,eb5] ~",
  AN: "[bb4,d5]@4 [ab4,c5]@4 [f4,ab4]@4 [c5,eb5] ~@2 [c5,eb5]", // Bb Ab Fm Cm
  AO: "[g4,bb4]@4 g5@5 ~ [a4,gb5] ~ [bb4,g5]@2 ~ [a4,gb5], ~@4 bb4 ~@11", AP: "bb4@11 ~@5, g5@9 ~@7",
  AQ: "bb3@3 [a3,c4] [bb3,d4]@3 [c4,eb4] [d4,f4]@3 [eb4,g4] [f4,ab4]@3 [g4,bb4]", // Am Bb Cm Dm Eb Fm Gm
  AR: "[ab4,c5]@6 [g4,bb4] ~ [f4,ab4] [g4,bb4] [eb4,g4] [f4,ab4] [d4,f4] [eb4,g4] [c4,eb4] [d4,f4]", // Ab Gm Fm Gm Eb Fm Dm Eb …
  AS: "[bb3,d4] ~@3 bb4@2 a4 bb4 [ab4,c5]@2 ~@2 [ab4,d5]@2 ~@2", AT: "[g4,eb5]@3 ~",
  AU: "[g3,eb4] ~@3 bb4@2 c5 d5 [g4,eb5] ~ [g4,eb5]!3 ~@3, ~ ab4 ~@2", // Cm
})).s("gm_french_horn").gain(0.56).pan(0.3)

// bass · tuba · "Baesse"
const bass = note(`<
  ~ A B C D E F G H I J K L E M N M O ~ P Q@2 R S T U V W X Q@2 R S Y U V Z AA AB AC Q AD AE AF AG AH AB AI Q AD AJ AK
  AL AM Q@2 R S T U V W X Q@2 R S Y U V Z AN
>`.pickRestart({
  A: "~@4 [f1,f2]@4 [f1,f2] ~@7", B: "[bb1,bb2] ~@3 [f2,f3] ~@3 [bb1,bb2] ~@3 [f2,f3]@2 [g2,g3] [a2,a3]",
  C: "[bb2,bb3] ~@3 [f2,f3]@4 [g2,g3]@4 [a2,a3]@4", D: "[bb2,bb3] ~@3 [f2,f3] ~@3 [bb1,bb2]@3 ~ [eb2,eb3]@3 [e2,e3]",
  E: "[f2,f3] ~@3 [c2,c3] ~@3 [f2,f3] ~@7", F: "[c2,c3] ~@3 [g2,g3] ~@3 [c2,c3] ~@3 [f2,f3] ~@3",
  G: "[c2,c3]@2 ~@2 [a2,a3]@3 [g2,g3] [f2,f3] ~ [gb2,gb3] ~ [g2,g3] ~ [a2,a3] ~", // C A G F Gb G A
  H: "[bb2,bb3] ~@3 [d2,d3]@3 ~ [eb2,eb3]@3 ~ [f2,f3]@3 ~", I: "[bb2,bb3] ~@3 [a2,a3]@3 ~ [g2,g3]@3 ~ [f2,f3]@3 ~",
  J: "[bb1,bb2] ~@3 [f2,f3] ~@3 [bb1,bb2]@3 ~ [f2,f3]@2 [g2,g3] [a2,a3]", // Bb F Bb F G A
  K: "[bb2,bb3] ~@3 [f2,f3]@4 [g2,g3]@3 ~ [a2,a3]@4", L: "[bb2,bb3] ~@3 [f2,f3] ~@3 [bb1,bb2]@4 [eb2,eb3]@3 [e2,e3]",
  M: "[c2,c3] ~@3 [c2,c3] ~@3 [f2,f3] ~@3 [f2,f3] ~@3", // C F
  N: "[bb2,bb3]@3 [a2,a3] [g2,g3] ~ [f2,f3] ~ [eb2,eb3] ~ [d2,d3] ~ [c2,c3]@2 [bb1,bb2]@2", // Bb A G F Eb D C Bb
  O: "[bb1,bb2]@3 ~ [f2,f3] ~ [d2,d3] ~ [bb1,bb2] ~@3 [bb1,bb2] ~@3", P: "[bb1,bb2] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@7",
  Q: "[eb2,eb3] ~@3 [bb1,bb2] ~@3 [eb2,eb3] ~@3 [bb1,bb2] ~@3", // Eb Bb Eb Bb
  R: "[eb2,eb3] ~@3 [bb1,bb2] ~@3 [eb2,eb3] ~@3 [eb2,eb3] ~@3", // Eb Bb Eb
  S: "[f2,f3] ~@3 [eb2,eb3] ~@3 [d2,d3] ~@3 [eb2,eb3] ~@3", T: "[f2,f3] ~@3 [d2,d3]@4 [c2,c3]@4 [bb1,bb2]@4",
  U: "[f2,f3] ~@3 [bb1,bb2] ~@3 [f2,f3] ~@3 [eb2,eb3] ~@3", V: "[d2,d3] ~@3 [bb1,bb2] ~@3 [ab1,ab2] ~@3 [c2,c3] ~@3",
  W: "[bb1,bb2] ~@3 [bb1,bb2] ~@3 [c2,c3] ~@3 [d2,d3] ~@3", // Bb C D
  X: "[eb2,eb3] ~@3 [bb2,bb3]@3 [c3,c4] [bb2,bb3] ~ [ab2,ab3] ~ [g2,g3] ~ [f2,f3] ~", // Eb Bb C Bb Ab G F
  Y: "[f2,f3] ~@3 [d2,d3]@4 [c2,c3]@3 ~ [bb1,bb2]@3 ~", // F D C Bb
  Z: "[d2,d3]@2 [f2,f3]@2 [g2,g3]@2 [ab2,ab3]@4 [g2,g3]@3 ~ [f2,f3] ~", // D F G Ab G F
  AA: "[eb2,eb3]@3 ~ [bb2,bb3] ~ [g2,g3] ~ [eb2,eb3] ~@7", AB: "[f2,f3] ~@3 [bb1,bb2] ~@3 [f2,f3] ~@3 [bb1,bb2] ~@3",
  AC: "[f2,f3] ~@3 [d2,d3]@2 ~ [c2,c3] [bb1,bb2] ~ [bb1,bb2] ~ [c2,c3] ~ [d2,d3] ~", // F D C Bb C D
  AD: "[eb2,eb3] ~@3 [bb1,bb2] ~@3 [eb2,eb3] ~ [eb2,eb3] ~ [d2,d3] ~ [c2,c3] ~", // Eb Bb Eb D C
  AE: "[bb1,bb2]@3 [c2,c3] [d2,d3]@3 [eb2,eb3] [f2,f3]@3 ~ [g2,g3]@4", // Bb C D Eb F G
  AF: "[ab2,ab3] ~@2 [d2,d3]!2 ~ [db2,db3] ~ [c2,c3]@6 ~@2", // Ab D Db C
  AG: "[eb2,eb3] ~@3 [bb1,bb2] ~@3 [d2,d3] ~@3 [bb1,bb2] ~@3", AH: "[eb2,eb3] ~@3 [bb2,bb3]@4 [g2,g3]@4 [eb2,eb3]@4",
  AI: "[f2,f3] ~@3 [d2,d3]@3 [c2,c3] [bb1,bb2] ~ [bb1,bb2] ~ [c2,c3] ~ [d2,d3] ~", AJ: "[bb1,bb2] ~@15",
  AK: "[bb1,bb2] ~ [bb1,bb2]!3 ~@11", AL: "~@4 [g2,g3]@4 [f2,f3]@3 ~ [bb1,bb2]@3 ~",
  AM: "[eb2,eb3] ~@3 [ab2,ab3]@4 [g2,g3]@4 [f2,f3]@3 ~", // Eb Ab G F
  AN: "[eb2,eb3] ~@3 [bb1,bb2]@3 ~ [eb2,eb3] ~ [eb2,eb3] ~ [eb2,eb3] ~@3", // Eb Bb Eb
})).s("gm_tuba").gain(0.5).pan(0.7)

// chords · synth brass 2 · "B-Hoerne"
const synth_brass_2 = note(`<
  A B C D C E F G H I J D K L M N O P Q R S T U V W X Y Z AA S AB AC AD W X Y AE AF AG AH AI@2 AJ AK AL AM AG AH AN@2 AO
  AP AQ AR S T U V W X Y Z AA S AB AC AD W X Y AE AS
>`.pickRestart({
  A: "f4@3 e4 eb4@3 d4 c4@3 bb3 a3@3 g3", B: "f3 ~ g3 ~ f3@3 g3 f3 ~@5 [f3,d4]!2",
  C: "[f3,d4] ~ [bb3,d4] ~ [d4,f4] ~ [eb4,g4] ~ [d4,f4]@7 ~", // Dm Bb Dm Eb Dm
  D: "~@2 [f3,d4]@2 [d4,f4]@3 [c4,eb4] [bb3,d4]@5 ~ [f3,d4]!2", // Dm Cm Bb Dm
  E: "~@2 [a3,c4]@2 [eb4,g4]@3 [c4,gb4] [a3,f4]@3 ~ [bb3,g4] ~ [bb3,gb4] ~", // Am Eb Cdim Dm Eb Ebm
  F: "[a3,f4]@3 ~ [g3,eb4] ~ [gb3,d4] ~ [g3,eb4]@3 ~ eb3@2 ~ e3", G: "f3@3 g3 a3 bb3 c4 d4 eb4 ~@3 [eb4,g4]@3 ~",
  H: "[d4,f4]@3 ~ [d4,f4]@3 ~ [c4,eb4]@3 ~ [bb3,d4]@3 ~", I: "[d4,f4]@12 ~@2 [f3,d4]!2",
  J: "[f3,d4] ~ [bb3,d4] ~ [d4,f4] ~ [eb4,g4] ~ [d4,f4]@6 ~@2", // Dm Bb Dm Eb Dm
  K: "[f3,d4] ~ [bb3,d4] ~ [d4,f4] ~ [eb4,g4] ~ [d4,f4]@8", // Dm Bb Dm Eb Dm
  L: "~@2 [a3,c4]@2 [eb4,g4]@3 [c4,gb4] [a3,f4]@3 ~ [bb3,g4]@3 [bb3,gb4]", // Am Eb Cdim Dm Eb Ebm
  M: "[a3,f4]@4 [c4,a4] ~ [bb3,g4] ~ [a3,f4]@4 [g3,eb4]@3 [a3,c4]", N: "[bb3,d4] [d4,f4]",
  O: "[c4,eb4] ~@3 [bb3,g4] ~ [a3,f4] ~ [g3,eb4]@3 ~ [a3,f4]@2 ~ [c4,eb4]", P: "[bb3,d4]@9 ~@3 [bb3,d4] ~@3",
  Q: "eb3@2 ~ eb3 bb3@3 ~ g3 eb3 ~ g3 bb3@3 ~", R: "bb3 ~@3 c4 ~@3 [bb3,d4] ~@7",
  S: "[bb2,g3]@7 ~ [eb3,g3]@3 ~ [f3,ab3]@3 ~", T: "[g3,bb3]@5 ~ [eb3,g3]@2 bb3@5 ~ eb3@2, ~@8 g3 ~@5 g3 ~",
  U: "[g3,bb3]@3 [ab3,c4] [g3,bb3]@2 [ab3,c4]@2", V: "[bb3,d4]@6 [c4,eb4]@2 bb3@4 [c4,eb4]@3 ~, ~@4 d4 ~@3",
  W: "[bb3,d4]@7 ~", X: "[bb3,d4]@3 [f3,ab3] [bb3,d4]@2 [c4,eb4]@2", Y: "[d4,f4] [c4,eb4]",
  Z: "[bb3,d4]@4 [ab3,c4]@3 [gb3,a3]", AA: "[g3,bb3]@3 ~", AB: "[g3,bb3]@3 [eb3,g3] bb3@3 [eb3,g3], ~@8 g3 ~@7",
  AC: "bb3@3 [ab3,c4] [g3,bb3]@2 [ab3,c4]@2, g3 ~@15", AD: "[bb3,d4]@3 [c4,eb4] [bb3,d4]@2 [c4,eb4]@2",
  AE: "[bb3,d4] [ab3,c4] [g3,b3] [ab3,c4]@2 [d3,bb3]@2 [f3,ab3]", AF: "[eb3,g3]@9 ~@7",
  AG: "f3@3 g3 ab3@3 bb3 c4@3 d4 eb4@4", AH: "~@3 e4 f4@3 g4 ab4@5 ~@3",
  AI: "[~@3 bb3 c4@3 d4 eb4@16 ~@2 eb3 ~ d3 ~ c3 ~]/2", AJ: "bb2@3 c3 d3@3 eb3 f3@4 g3@4",
  AK: "ab3 ~@2 d3!2 ~ db3 ~ c3@7 ~", AL: "bb3 ~ bb3 ~ a3 ~ bb3 ~ ab3@6 g3@2", AM: "bb3@5 ~@3",
  AN: "[~@3 bb3 c4@3 d4 eb4@16 ~@8]/2", AO: "bb2@3 c3 d3@3 eb3 f3@3 g3 ab3@3 bb3",
  AP: "c4@6 bb3 ~ f3@2 g3 ~ ab3 ~ a3 ~", AQ: "bb3 ~@3 d4@2 db4 d4 [c4,f4]@3 ~ [d4,f4]@3 ~", AR: "[eb4,g4]@3 ~",
  AS: "[eb3,g3] ~@3 bb3@2 c4 d4 eb4 ~ eb4!3 ~@3, ~ f4 ~@2", // Eb
})).s("gm_synth_brass_2").gain(0.42)

// chords · trombone · "Posaunen"
const trombone = note(`<
  ~ A B C D E F G H I B C J E K L M N O P Q R S T U V W X Y Q R S T U V W Z Y AA AB AC AD AE AF AG R AA AB AC AD AH AI
  AJ AK Q R S T U V W X Y Q R S T U V W Z AL
>`.pickRestart({
  A: "~@4 [ab3,b3,d4]@4 [a3,c4,eb4] ~@7", B: "~@2 [f3,bb3,d4] ~@3 [g3,bb3,eb4] ~@3 [f3,bb3,d4] ~@3 [f3,a3,eb4] ~",
  C: "~@2 [f3,bb3,d4]!3 ~ [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@3 [f3,bb3,d4] ~", // Bb
  D: "~@2 [f3,bb3,d4] ~@3 [g3,bb3,eb4] ~@3 [f3,bb3,d4] ~@3 [g3,bb3,eb4] ~", // Bb Eb Bb Eb
  E: "~@2 [f3,a3,eb4]!3 ~ [gb3,a3,eb4] ~ [f3,a3,eb4] ~@7", // F7 Ebdim F7
  F: "~@2 [f3,a3,eb4] ~@3 [gb3,a3,d4] ~@3 [f3,a3,eb4] ~@3 [f3,a3,eb4] ~", // F7 D F7
  G: "~@2 [f3,a3,eb4] ~@3 [f3,a3,eb4] ~@3 [eb3,a3,c4] ~@3 [f3,c4,eb4] ~", // F7 Adim F7
  H: "~@2 [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@3 [f3,a3,eb4] ~@3 [f3,bb3,d4] ~", // Bb F7 Bb
  I: "~@2 [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@3 [f3,bb3,d4] ~", // Bb
  J: "~@2 [f3,bb3,d4] ~@3 [g3,bb3,eb4] ~@3 [f3,bb3,d4] ~@3 [f3,bb3,eb4] ~", // Bb Eb Bb Ebsus2
  K: "~@2 [f3,a3,eb4] ~@3 [g3,bb3,eb4] ~@3 [f3,a3,eb4] ~@3 [f3,a3,eb4] ~", // F7 Eb F7
  L: "~@2 [f3,bb3,d4]!3 ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~", // Bb
  M: "[f3,a3,eb4] ~ [f3,a3,eb4] ~@3 [f3,a3,eb4] ~ [f3,a3,eb4] ~ [f3,a3,eb4] ~@3 [f3,a3,eb4] ~", // F7
  N: "~@2 [f3,bb3,d4]!3 ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@3", // Bb
  O: "eb3@2 ~ eb3 bb3@3 ~ g3 eb3 ~ g3 bb3@2 ~@2", P: "[d3,f3,bb3] ~@3 [eb3,g3,c4] ~@3 [f3,ab3,d4] ~@7",
  Q: "~@2 [g3,bb3,eb4]!3 ~ [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [f3,ab3,d4] ~", // Eb Ddim
  R: "~@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~", // Eb
  S: "~@2 [g3,bb3,eb4] ~@3 [ab3,c4,eb4] ~@3 [g3,bb3,eb4] ~@3 [ab3,c4,eb4] ~", // Eb Ab Eb Ab
  T: "~@2 [f3,ab3,d4] ~@3 [ab3,c4,eb4] ~@3 [f3,ab3,d4] ~@3 [ab3,c4,eb4] ~", // Ddim Ab Ddim Ab
  U: "~@2 [f3,ab3,d4]!3 ~ [f3,ab3,d4] ~@3 [f3,ab3,d4] ~ [f3,ab3,d4] ~ [f3,ab3,d4] ~", // Ddim
  V: "~@2 [f3,ab3,d4] ~@3 [f3,ab3,d4] ~@3 [f3,ab3,d4] ~@3 [eb3,ab3,c4] ~", // Ddim Ab
  W: "~@2 [f3,ab3,d4] ~ [f3,ab3,d4] ~ [f3,ab3,d4] ~@3 [eb3,ab3,c4] ~ [eb3,ab3,c4] ~ [eb3,ab3,c4] ~", // Ddim Ab
  X: "~@2 [f3,ab3,d4] ~@3 [f3,ab3,d4] ~@3 [f3,ab3,c4] ~@3 [gb3,a3,d4] ~", // Ddim Fm D
  Y: "~@2 [g3,bb3,eb4]!3 ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~@7", Z: "[f3,bb3,d4]",
  AA: "~@2 [f3,ab3,d4] ~@3 [f3,ab3,c4] ~@3 [f3,ab3,d4] ~@3 [f3,ab3,c4] ~", // Ddim Fm Ddim Fm
  AB: "~@2 [f3,ab3,d4]!3 ~ [f3,ab3,d4] ~ [f3,ab3,d4] ~ [f3,ab3,d4] ~ [f3,ab3,d4] ~ [f3,ab3,d4] ~", // Ddim
  AC: "~@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [gb3,a3,eb4] ~@3 [g3,bb3,eb4] ~", // Eb Ebdim Eb
  AD: "~@2 [g3,bb3,eb4]!3 ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [eb2,eb3] ~ [d2,d3] ~ [c2,c3] ~", // Eb D C
  AE: "[bb1,bb2]@3 c3 [d2,d3]@3 [eb2,eb3] [f2,f3]@4 [g2,g3]@4, ~@3 c2@2 ~@11", // Bb D Eb F G
  AF: "[ab2,ab3] ~@2 [d2,d3]!2 ~ [db2,db3] ~ [c2,c3]@5 ~@3", // Ab D Db C
  AG: "~@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [f3,ab3,d4] ~@3 [g3,bb3,eb4] ~", AH: "[bb1,bb2] ~@15",
  AI: "[f3,ab3,c4] ~ [f3,ab3,c4]!3 ~@11", AJ: "~@4 g3@3 ~ [f3,ab3,c4]@4 [f3,ab3,d4]@4", AK: "[g3,bb3,eb4]@5 ~@3",
  AL: "[g3,bb3,eb4] ~@3 [f3,ab3,d4]@4 [g3,bb3,eb4] ~ [g3,bb3,eb4]!3 ~@3", // Eb Ddim Eb
})).s("gm_trombone").gain(0.22).pan(0.2)

// chords · clarinet · "Kl.nette"
const clarinet = note(`<
  A B ~ C ~ D E F G H ~ C ~ I J K E L M N ~@8 O P Q R S T U V W X Y Z AA AB AC AD AE AF Y Z AA AB AG AH AI AJ P AK AL S
  AM U V AN AO P Q R S T U V W AP
>`.pickRestart({
  A: "[f4,f5]@3 [g4,e5] [a4,eb5]@3 [bb4,d5] c5@3 [bb4,d5] [a4,eb5]@3 [g4,e5]", // F C Adim Bb Adim C
  B: "[f4,f5] ~ [g4,g5] ~ [b4,d5,f5]@3 g5 [c5,eb5,f5] ~@7", // F G Bdim F7
  C: "~@2 [d5,bb5] [db5,a5] [d5,bb5] ~ [d5,f5] ~ [d5,f5] [db5,e5] [d5,f5] [eb5,g5] [d5,eb5,f5,g5]!4", // Gm Gbm Gm Dm Dbm Dm Eb Ebmaj7
  D: "~@2 [f4,f5] [e4,e5] [f4,f5] ~ [f4,a4,a5] [a4,c5,c6] f5 ~@7", E: "~@2 [e5,f5] ~@7 [e5,f5] ~@5",
  F: "~@2 [e5,f5] ~ [e5,f5] ~ [e5,f5] ~ [e5,f5] ~@7", // Fmaj7
  G: "~@2 [f4,bb4,d5] [bb4,d5,f5] ~@2 [bb4,d5,f5] [d5,f5,bb5] ~@2 [a4,c5,eb5] [c5,eb5,g5] [bb4,d5,f5] ~ [bb4,d5,f5] ~", // Bb Adim Cm Bb
  H: "[d5,f5,bb5] [c5,eb5,a5] [bb4,d5,g5] [a4,c5,f5] [g4,bb4,eb5] [f4,a4,d5] [eb4,g4,c5] [d4,f4,bb4] f4 ~ [e5,f5] ~ [e5,f5] ~@3", // Bb Adim Gm F Eb Dm Cm Bb …
  I: "~@2 [f4,f5] [e4,e5] [f4,f5] ~ [a4,a5] [c5,c6] f5 ~@7", // F E F A C
  J: "[c5,d5,eb5,f5,a5,bb5]!4 ~@4 [c5,d5,eb5,f5,a5,bb5]!4 ~@4", // Dm7
  K: "bb4 a4 bb4 c5 d5 db5 d5 eb5 f5 ~ [f4,bb4,d5] [bb4,d5,f5] [d5,eb5,f5,g5,bb5,c6]!4", // Bb Cm7
  L: "[d4,f4,bb4] ~ [d4,f4,bb4]!2 [f4,bb4,d5] [d4,f4,bb4] [f4,bb4,d5] [bb4,d5,f5] [d5,f5,bb5] ~@2 [f5,g5] [d5,f5,a5,bb5] ~@3", // Bb Fsus2 Bbmaj7
  M: "~@15 [f5,g5]", N: "[d5,f5,ab5,bb5] ~@2 [f5,g5] [eb5,g5,ab5,bb5] ~@2 [f5,g5] [f5,ab5,bb5] ~@7",
  O: "~@14 [eb4,g4,eb5] [f4,ab4,f5]", // Eb Fm
  P: "[g4,bb4,g5] ~ [eb4,g4,eb5] ~ [g4,bb4,g5] ~ [eb4,g4,eb5] ~ [g4,bb4,g5] ~@3 [ab4,bb4,d5,eb5,f5,g5]!4", // Gm Eb Gm Eb Gm Ebmaj7
  Q: "[ab4,eb5,g5] ~ [g4,bb4,eb5] ~ [bb4,eb5,g5] ~ [g4,bb4,eb5] ~ [bb4,eb5,g5] ~ [g4,bb4,eb5] [bb4,eb5,g5] [g5,ab5,bb5,c6]!4", // Abmaj7 Eb C7
  R: "[bb4,eb5,g5] ~ [bb4,g5] [g4,eb5] [bb4,eb5,g5] ~ [c5,eb5,ab5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~", // Eb Cm Eb Ab Eb Ab
  S: "[d5,f5,bb5] [db5,e5,a5] [d5,f5,bb5] [eb5,g5,c6] [d5,f5,bb5] ~ [eb5,ab5,c6] ~ [d5,ab5,bb5] ~ [d5,ab5,bb5] ~ [eb5,ab5,c6] ~@3", // Bb A Bb Cm Bb Ab Bb7 Ab
  T: "[bb4,d5,bb5] ~@2 [bb4,d5,bb5]!2 ~ [bb4,d5,bb5] ~ [d5,f5,d6] ~ [d5,f5,d6] ~ [d5,f5] ~@3, ~@6 d6 ~", // Bb Dm
  U: "~@2 bb4 c5 bb4 ~ bb4 ~ bb5 ~ f5 g5 ab5 ~@3", V: "~@2 ab5 g5 f5 ~ ab5 g5 f5 g5 eb5 f5 d5 eb5 c5 d5", W: "bb4 ~@15",
  X: "~@2 [g4,eb5] [ab4,f5] [bb4,g5] ~ [bb4,g5] [ab4,f5] [g4,eb5] ~@7", // Cm Db Eb Db Cm
  Y: "[d5,f5,bb5] ~@3 [c5,f5,ab5] ~@3 [ab4,d5,f5] ~@7", Z: "[ab4,d5,f5] ~@3 [bb4,f5,ab5] ~@3 [d5,ab5,bb5] ~@7",
  AA: "[bb4,g5] ~@3 [eb5,g5] ~@3 [g5,bb5] ~@7", AB: "[g5,bb5] ~@3 [eb5,g5] ~@3 [bb4,g5,bb5] ~@7",
  AC: "~@2 [d5,f5,ab5] ~@3 [d5,f5,ab5] ~@3 [db5,f5,ab5] ~@3 [d5,e5,g5] ~", // Ddim Db Em7
  AD: "~@2 [db5,f5,ab5] ~@3 [d5,e5,g5] ~@3 [d5,f5,ab5]!3 ~@3", // Db Em7 Ddim
  AE: "[eb4,eb5]@6 [d4,d5] [c4,c5] [bb3,bb4]@6 [c4,c5] [d4,d5]", // Eb D C Bb C D
  AF: "[eb4,eb5]@3 [f4,f5] [g4,g5]@3 [ab4,ab5] [bb4,bb5] ~@7", // Eb F G Ab Bb
  AG: "bb4@3 [a4,c5] [bb4,d5]@3 [c5,eb5] [d5,f5]@3 [eb5,g5] [f5,ab5]@3 [g5,bb5]", // Am Bb Cm Dm Eb Fm Gm
  AH: "[ab5,c6]@6 [g5,bb5] ~ [f5,ab5] [g5,bb5] [eb5,g5] [f5,ab5] [d5,f5] [eb5,g5] [c5,eb5] [d5,f5]", // Ab Gm Fm Gm Eb Fm Dm Eb …
  AI: "[bb4,d5] ~@3 [bb4,d5,bb5]@2 [a4,db5,a5] [bb4,d5,bb5] [c5,f5,ab5]@2 ~@2 [bb4,f5,ab5]@3 ~", // Bb A Bb Fm Bb7
  AJ: "[bb4,eb5,g5]@10 ~@4 [eb4,g4,eb5] [f4,ab4,f5]", // Eb Fm
  AK: "[bb4,eb5,g5] ~ [g4,bb4,eb5] ~ [bb4,eb5,g5] ~ [g4,bb4,eb5] ~ [bb4,eb5,g5] ~ [g4,bb4,eb5] [bb4,eb5,g5] [eb5,f5,g5,ab5,bb5,c6]!4", // Eb Cm7
  AL: "[bb4,eb5,g5] ~ [bb4,eb5,g5] [g4,bb4,eb5] [bb4,eb5,g5] ~ [c5,eb5,ab5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~", // Eb Ab Eb Ab
  AM: "[bb4,d5,bb5] ~@2 [bb4,d5,bb5]!2 ~ [bb4,d5,bb5] ~ [d5,f5,d6] ~ [d5,f5,d6] ~ [d5,f5,d6] ~@3", // Bb Dm
  AN: "bb4 ~@3 [d5,eb5,f5,g5,bb5,c6]!4 ~@8", // Cm7
  AO: "[g4,bb4,eb5] ~ [eb4,g4,bb4] [g4,bb4,eb5] [bb4,eb5,g5] ~ [g4,bb4,eb5] [bb4,eb5,g5] [eb5,g5,bb5] ~@5 [eb4,g4,eb5] [f4,ab4,f5]", // Eb Fm
  AP: "~@4 [bb4,f5,ab5]@4 [eb5,g5] ~ [bb4,eb5,g5]!3 ~@3", // Bb7 Eb
})).s("gm_clarinet").gain(0.16).pan(0.1)

// drums · kick
const kick = s("bd").struct("<~ A B@3 C B@7 C B@3 D ~ B@9 E B@8 E B@3 E B@7 E B F G H B@8 E B@8 I>".pickRestart({
  A: "~@3 x", B: "x!4", C: "x!2", D: "x ~ x!3 ~ x ~", E: "x!3 ~", F: "x!2 ~@2", G: "~ x!3", H: "x", I: "x ~ x ~ x!3 ~",
})).gain(0.09)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B C B D B@5 C B D B C B E F G C B@3 H B I B D C B@3 H B I B D B J B D B K B@3 J B D B L ~@2 C B@3 H B I B D C B@3
// … 13 more lines

More by Mosch