Strudelify

test

test

KeyA♭ majorTempo128 bpm
0:00/0:00
// test — test
// 128 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (2/4 at bar 1, 4/4 at bar 23) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5015402; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 152 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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 · trombone
const trombone = note(`<
  A@5 B C@4 ~ D@5 E@5 ~@5 F@3 G F@3 H F@3 G F@3 G I J K L M@3 N M@3 O P Q@2 L R@5 S T U V@2 W X Y@2 Z@2 ~@4 AA@8 AB@4 AC
  AD@2 AE@5 AF@5 AG AH AI AJ AK AL@8 AM@2 AN AO AP AQ AR AS@3 AT@2 AU AV AW AX AY AZ BA BB BC BD BE@2 BF@6 BG@3 BH@3
>`.pickRestart({
  A: "[~@30 gb3@54 gb3@3 ~ gb3@37 f3@10 f3@3 f3@22]/5", B: "~@2 f3@3 f3@10 f3@3 ~ f3@10 f3@3",
  C: "[bb3@37 bb3@3 bb3@10 ~ bb3@3 f4@61 ~@13]/4",
  D: "[~@2 ab3@4 ab3@4 ~ ab3@4 ab3@4 ~ ab3@4 ab3@4 ~ ab3@54 ab3@3 ab3@37 g3@10 g3@3 g3@24]/5",
  E: "[g3@3 g3@10 g3@3 ~ g3@10 g3@3 c4@37 c4@3 ~ c4@10 c4@3 g4@61 ~@15]/5", F: "f4/3", G: "eb4",
  H: "eb3@24 c4@2 ~ d4@2 ~ e4@2, ~@26 db4@2 ~ eb4@2 ~", I: "c4@4 f4 eb4 db4 c4", J: "c4 ab3", K: "~ f4", L: "e4",
  M: "f4 f4@2 f4 f4@2 f4@2", N: "eb4@2 eb4@4 eb4@2 eb4!2 eb4@2 eb4!2 eb4@2", O: "eb4!2 eb4@2", P: "c4 c4@2 c4 g3@4",
  Q: "[c4 c4@2 c4 ab3@2 f4@10]/2",
  R: "[g3@5 ~@5 g3@5 ~ g3 g3@2 g3@2 g3@5 g3@2 g3@2 ~ eb3@2 eb3@2 eb3@2 eb3@5 g3@5 ~@5 g3@5 g3@2 g3@2 g3@2 g3@5 g3@2 g3 g3@2 eb3@2 eb3@2 eb3 eb3@5 ~ g3@5 ~@5 g3@5 g3@2 g3@2 g3 g3@5 ~ g3 g3@2 g3@2 eb3@2 eb3 eb3@2 eb3@5 g3@5 ~@6 g3@5 g3@2 g3@2 g3 g3@5 ~ g3 g3@2 g3@2 eb3 eb3@2, ~@15 g3 ~@64]/5",
  S: "eb3@2 eb3@5 g3@5 ~@6 g3@5 g3@2 g3 g3@2 g3@4", T: "~ g3@2 g3@2 g3@2 gb3 gb3@2 gb3@2 gb3@5 g3@5 ~@5 g3@5",
  U: "~ g3 g3@2 g3@2 g3@5 g3@2 g3@2 ~ eb3@2 eb3@2 eb3@2 eb3@5 g3@5, ~@15 g3@2 ~@15",
  V: "[~@5 g3@5 g3@2 g3@2 g3@2 g3@5 g3@2 g3 g3@2 gb3@2 gb3@2 gb3 gb3@5 ~ gb3@5 ~@5 gb3@5 gb3@2 gb3@2 ~ g3@5 ~ g3, ~@28 gb3 ~@3]/2",
  W: "g3@2 g3@2 eb3@2 eb3 eb3@2 eb3@5 g3@5 ~@6 g3@5 g3@2",
  X: "g3@2 g3 g3@5 g3@2 g3@2 g3@2 gb3 gb3@2 gb3@2 gb3@5 db3@5 ~@3",
  Y: "[~@3 db3@5 db3@2 db3 db3@2 db3@5 db3@2 db3@2 db3@2 db3 db3@2 db3@2 db3@5 eb3@5 ~@5 eb3@5 ~ eb3 eb3@2 eb3@2 eb3@5 eb3@2 eb3@2]/2",
  Z: "[eb3 eb3@2 eb3@2 eb3@2 eb3@5 g3@5 ~@5 eb3@5 eb3@2 eb3@2 eb3@2 g3@5 g3@2 g3 g3@2 g3@2 g3@2 g3 g3@5 ~@11]/2",
  AA: "[~@29 g4@10 g4@10 ~ g4@10 eb4@8 bb4@3 g4@10 eb4@8 bb4@2 g4@21 d5@10 ~ d5@10 d5@10 ~ eb5@8 bb4@2 gb4@10 ~ eb4@7 bb4@3 g4@21 g5@31 ~@29]/8",
  AB: "[~@29 g4@6 ~@6 ab4@6 ~@5 g4@6 ~@5 e4@6 ~@6 g4@6 ~@5 b4@6 c5@11 ~@12 bb4@11 ~@2]/4", AC: "~@15 g4@6 ~@5 ab4@6",
  AD: "[~@6 bb4@6 ~@5 b4@6 c5@23 c5@6 ~@12]/2",
  AE: "[~@7 b3@7 b3@8 ~@8 b3@8 b3@8 b3@8 a3@8 a3@8 d4@3 d4@12 d4@4 d4@12 c4@4 c4@12 c4@4 c4@12 d4@3 d4@8 d4@4 f3@12]/5",
  AF: "[e3@2 eb3@2 d3@16 f3@5 f3@5 gb3@5 ~ d3@11 b2@4 d3@16 c3@16 e3@5 d3@5 e3@5 ~ b2@15 f3@5 ~ f3@5 gb3@5 g3@16 c3@5 b2@5 c3@4]/5",
  AG: "~@2 d3@11 b2@4 d3@15", AH: "~ c4@4 c4@12 c4@4 c4@11", AI: "~ d4@4 d4@11 f3@12 e3@2 eb3@2",
  AJ: "d3@16 f3@5 f3@5 gb3@5 ~", AK: "d3@11 b2@4 d3@16 ~",
  AL: "[~@15 c4@5 b3@5 c4@5 ~ d4@11 f4@4 d4@31 ~ a4@16 bb4@11 f4@4 f4@31 ~ bb4@8 b4@8 c5@11 g4@4 g4@31 ~ c5@8 db5@8 d5@8 ~@28]/8",
  AM: "[~@11 c5@5 c5@5 db5@5 ~ d5@8 ~@29]/2", AN: "~@10 c5@5 c5@5 b4@5 ~ e4@3 e4@3",
  AO: "~@2 e4@3 ~@3 c4@3 e4@3 ~@3 g4@11 g5@4", AP: "~@8 c4@6 ~@2 g3@6 ~@3 e3@6 ~",
  AQ: "~@2 a3@5 b3@6 bb3@3 a3@6 g3@4 c4@3 g4@3", AR: "~ a4@6 f4@3 g4@3 ~@3 e4@5 c4@3 d4@3 b3@3 ~@2",
  AS: "[~@4 c4@6 ~@2 g3@6 ~@3 e3@6 ~@3 a3@5 b3@6 bb3@3 a3@6 g3@4 c4@3 g4@4 a4@6 f4@3 g4@3 ~@3 e4@5 c4@3 d4@3 b3@3 ~@6]/3",
  AT: "[~@6 g4@2 gb4@3 f4@3 d4@3 ~@3 e4@3 ~@3 g3@3 a3@2 c4@3 ~@3 a3@3 c4@3 d4@3 ~@6 g4@2 gb4@3 f4@3 d4@3 ~]/2",
  AU: "~@2 e4@3 ~@3 c5@3 ~@2 c5@3 c5@3 ~@13", AV: "~@2 g4@2 gb4@3 f4@3 d4@3 ~@3 e4@3 ~@3 g3@3 a3@3 c4@3 ~",
  AW: "~ a3@3 c4@3 d4@3 ~@6 eb4@3 ~@5 d4@3 ~@5", AX: "~ c4@3 ~@20 c4@3 c4@3 ~@2",
  AY: "~ c4@3 ~@2 c4@3 d4@3 ~@3 e4@3 c4@3 ~@3 a3@2 g3@3 ~@3", AZ: "~@6 c4@3 c4@3 ~@3 c4@3 ~@2 c4@3 d4@3 e4@3 ~@3",
  BA: "~@20 c4@3 c4@3 ~@3 c4@3", BB: "~@2 c4@3 d4@3 ~@3 e4@3 c4@3 ~@3 a3@2 g3@3 ~@7",
  BC: "~@2 e4@3 e4@3 ~@3 e4@3 ~@2 c4@3 e4@3 ~@3 g4@6 ~", BD: "~@4 g5@6 ~@6 c4@6 ~@3 g3@6 ~",
  BE: "[~ e3@6 ~@3 a3@6 b3@5 bb3@3 a3@6 g3@4 c4@4 g4@4 a4@5 f4@3 g4@3 ~@3 e4@6 c4@2]/2",
  BF: "[~ d4@2 b3@3 ~@6 c4@6 ~@3 g3@6 ~@2 e3@6 ~@3 a3@6 b3@5 bb3@3 a3@6 g3@4 c4@4 g4@4 a4@5 f4@3 g4@3 ~@3 e4@6 c4@3 d4@2 b3@3 ~@6 e4@3 c4@6 g3@3 ~@5 ab3@6 a3@3 f4@6 f4@3 a3@6 ~@5 b3@4 a4@4 a4@4 a4@3 g4@4 f4@4 e4@3 c4@6 a3@3 g3@6 ~]/6",
  BG: "[~@4 e4@3 c4@6 g3@3 ~@5 ab3@6 a3@3 f4@6 f4@3 a3@6 ~@5 b3@3 f4@6 f4@3 f4@3 e4@4 d4@4 c4@11 ~@12]/3",
  BH: "[c5@3 ~@6 g4@3 ~@5 e4@3 ~@3 a4@4 b4@4 a4@4 ab4@4 bb4@3 ab4@4 g4@23 ~@27]/3",
})).s("gm_trombone").gain(0.26)

// other · trombone
const trombone_2 = note(`<
  A@5 B C@4 ~ D@5 E@5 ~@3 F@2 G H@2 I G H@2 I G H@2 I G J K L M@2 N@2 O P@2 Q O P R S T U V W ~@3 X Y Z AA AB AC@2 AD AE
  AF@2 AG AH AI AJ@2 AK@2 AL AM AN@3 ~@2 AO@5 AP@2 AQ@3 AR AS AT AU@5 AV AW AX AY@8 AZ@2 BA BB BC BD BE BF BG@3 BH@2
  BI@2 BJ BK BL BM BN BO BP BQ BR@2 BS@6 BT@3 BU BV@2
>`.pickRestart({
  A: "[~@30 gb3@54 d3@3 ~ d3@37 db3@10 c3@3 bb2@22]/5", B: "~@2 bb2@3 bb2@10 bb2@3 ~ bb2@10 bb2@3",
  C: "[db3@37 eb3@3 eb3@10 ~ eb3@3 db3@61 ~@13]/4",
  D: "[~@2 ab3@4 ab3@4 ~ ab3@4 ab3@4 ~ ab3@4 ab3@4 ~ ab3@54 e3@3 e3@37 eb3@10 d3@3 c3@24]/5",
  E: "[c3@3 c3@10 c3@3 ~ c3@10 c3@3 eb3@37 f3@3 ~ f3@10 f3@3 eb3@61 ~@15]/5",
  F: "bb2@2 ~ c3@2 db3@2 ~ eb3@2 e3@2 f3@12 ~@8, ~@2 b2@2 ~@3 d3@2 ~@23", G: "c4", H: "db4/2", I: "bb3", J: "db4",
  K: "bb3@21 c4@5 ~ db4@5", L: "c4 bb3", M: "[f3 eb3@2 f3]/2", N: "g3/2", O: "c4@2 c4@2 c4 c4@2 c4",
  P: "db4@2 db4@2 db4 db4@2 db4", Q: "bb3@4 bb3@4 bb3@2 bb3!2 bb3@2 bb3!2", R: "bb3@8 bb3@8 bb3@5 c4@5 ~ db4@5",
  S: "c4 c4@2 c4 bb3 bb3@2 bb3", T: "f3 f3@2 f3 eb3@4", U: "eb3 eb3@2 eb3 f3@2 ab3@2", V: "g3",
  W: "c4 db4 c4 bb3 g3@12", X: "~@19 gb3@2 gb3 gb3@2 gb3@5 ~@3", Y: "~@29 gb4 gb4@2", Z: "gb4@2 gb4@5 ~@25",
  AA: "~@7 eb3 eb3@2 eb3@2 eb3@5 ~@15", AB: "~@16 gb4@2 gb4@2 gb4@2 gb4@5 ~@5",
  AC: "[~@26 eb3@2 eb3@2 eb3 eb3@5 ~@28]/2", AD: "~@4 gb4@2 gb4 gb4@2 gb4@5 ~@18", AE: "~@14 eb3 eb3@2 eb3@2 eb3@5 ~@8",
  AF: "[~@24 eb3 eb3@2 eb3@2 eb3@5 ~@30]/2", AG: "~ bb3@2 bb3@2 bb3@2 bb3@5 ~@20",
  AH: "~@11 gb4@2 gb4@2 gb4 gb4@5 ~@11", AI: "~@21 eb3@2 eb3 eb3@2 eb3@5 ~",
  AJ: "[~@20 ab3@10 ~ ab3@8 ab3@2 bb3@10 ~@13]/2",
  AK: "[~@8 eb3@2 eb3@2 eb3@2 eb3@5 g3@5 ~@5 g3@5 ~ g3 g3@2 g3@2 g3@5 g3@2 g3@2 ~ gb3@2 gb3@2 gb3@2 gb3@5 ~@3, ~@49 g3@2 ~@13]/2",
  AL: "~@2 bb3@3 bb3@2 bb3@10 ~@6 bb3@5 ~@4", AM: "~ bb3@5 ~@6 bb3@5 ~@5 bb3@5 ~@5",
  AN: "[~ bb3@2 bb3@3 bb3@5 bb3@5 ~@6 bb3@2 bb3@3 bb3@10 ~@5 bb3@5 ~@6 bb3@5 ~@5 bb3@5 ~@6 gb3@5 ~@5 bb3@3 bb3@3 ~@6]/3",
  AO: "[~@24 g3@2 g3@3 g3@6 g3@3 g3@3 ab3@5 g3@3 g3@3 g3@6 g3@2 g3@3 gb3@6 g3@3 g3@3 g3@5 g3@3 g3@3 b3@6 c4@11 g3@11 ~ bb3@11 f3@11 g3@3 g3@3 g3@6 g3@3 g3@2 ab3@6]/5",
  AP: "[g3@3 g3@3 bb3@5 g3@3 g3@3 b3@6 c3@23 g3@6 ~@12]/2",
  AQ: "[~@7 d3@7 d3@8 ~@8 d3@8 d3@8 d3@8 c3@8 c3@8 g3@7 g3@4 d3@4 g3@8 d3@3]/3", AR: "~ g3@4 f3@8 f3@4 c3@4 f3@8 c3@3",
  AS: "~ f3@4 g3@7 g3@4 d3@4 g3@8 d3@4", AT: "g3 g3@2 g3 d3 g3@2 d3",
  AU: "[g3@4 g3@7 g3@4 d3@4 g3@8 d3@4 g3@4 f3@8 f3@4 c3@4 f3@8 c3@4 f3@4 g3@7 g3@4 d3@4 g3@8 d3@4 g3@4 g3@8 g3@4 d3@4 g3@8 d3@4 g3@4 g3@7 g3@4 d3@4 g3@8 d3@4 g3@3]/5",
  AV: "~ f3@8 f3@4 c3@4 f3@8 c3@4 f3@3", AW: "~ g3@7 g3@4 d3@4 g3@8 d3@4 g3@4", AX: "g3@2 g3 d3 g3@2 d3 g3",
  AY: "[g3@7 g3@4 d3@4 g3@8 d3@4 g3@4 f3@8 f3@4 c3@4 f3@8 c3@4 f3@4 g3@8 g3@3 d3@4 g3@8 d3@4 g3@4 g3@8 g3@4 d3@4 f3@4 g3@4 a3@4 c4@4 d4@8 d4@7 d4@8 d3@8 bb2@16 d4@8 d4@8 c4@8 c4@7 c4@8 e3@8 c3@16 a3@8 g3@8 ~@4]/8",
  AZ: "~@15 a3@4 d3@4 a3@4 ~@5", BA: "~@7 a3@2 d3@2 a3@2 ~@3", BB: "~@10 c4@5 c4@5 b3@5 ~ d3@3 d3@3",
  BC: "~@2 d3@3 ~@3 d3@3 d3@3 ~@3 g3@6 ~@5 g2@4", BD: "~@8 e3@6 ~@2 c3@6 ~@3 g2@6 ~",
  BE: "~@2 c3@5 d3@6 db3@3 c3@6 c3@4 g3@3 b3@3", BF: "~ c4@6 a3@3 b3@3 ~@3 a3@5 e3@3 f3@3 d3@3 ~@2",
  BG: "[~@4 e3@6 ~@2 c3@6 ~@3 g2@6 ~@3 c3@5 d3@6 db3@3 c3@6 c3@4 g3@3 b3@4 c4@6 a3@3 b3@3 ~@3 a3@5 e3@3 f3@3 d3@3 ~@6]/3",
  BH: "[c3@8 g3@9 ~@3 g3@3 ~@6 f3@2 e3@3 ~@6 e3@3 d3@3 c3@8 g3@9 ~]/2",
  BI: "[~@2 g3@3 ~@3 f4@3 ~@2 f4@3 f4@3 ~@9 c3@8 g3@9 ~@3 g3@3 ~@6 f3@3 e3@3 ~]/2",
  BJ: "~@4 e3@3 c3@3 ~@6 ab3@3 ~@5 f3@3 ~@5", BK: "~ e3@3 ~@20 eb3@3 eb3@3 ~@2",
  BL: "~ eb3@3 ~@2 eb3@3 ab3@3 ~@3 g3@3 e3@3 ~@3 e3@2 c3@3 ~@3",
  BM: "~@6 eb3@3 eb3@3 ~@3 eb3@3 ~@2 eb3@3 ab3@3 g3@3 ~@3", BN: "~@20 eb3@3 eb3@3 ~@3 eb3@3",
  BO: "~@2 eb3@3 ab3@3 ~@3 g3@3 e3@3 ~@3 e3@2 c3@3 ~@7", BP: "~@2 d3@3 d3@3 ~@3 d3@3 ~@2 d3@3 d3@3 ~@3 g3@6 ~",
  BQ: "~@4 g2@6 ~@6 e3@6 ~@3 c3@6 ~",
  BR: "[~ g2@6 ~@3 c3@6 d3@5 db3@3 c3@6 c3@4 g3@4 b3@4 c4@5 a3@3 b3@3 ~@3 a3@6 e3@2]/2",
  BS: "[~ f3@2 d3@3 ~@6 e3@6 ~@3 c3@6 ~@2 g2@6 ~@3 c3@6 d3@5 db3@3 c3@6 c3@4 g3@4 b3@4 c4@5 a3@3 b3@3 ~@3 a3@6 e3@3 f3@2 d3@3 ~@6 g3@3 e3@6 gb3@3 g3@5 c3@6 c3@3 a3@6 a3@3 c3@6 ~@5 d3@4 c4@4 c4@4 c4@3 b3@4 a3@4 g3@3 f3@6 d3@3 c3@6 ~]/6",
  BT: "[~@4 g3@3 e3@6 gb3@3 g3@5 c3@6 c3@3 a3@6 a3@3 c3@6 ~@5 d3@3 g3@6 g3@3 g3@3 a3@4 g3@4 g3@3 e3@6 e3@3 c3@6 ~@5]/3",
  BU: "c4@3 ~@6 g3@3 ~@5 e3@3 ~@3 c3@9", BV: "[~@3 ab2@11 g2@23 ~@27]/2",
})).s("gm_trombone").gain(0.34)

// bass · trombone · "Bass Trombone"
const bass = note(`<
  A@5 B C@4 ~@3 D@3 E@5 ~ F@4 G H I J G H I J G H I J G H I J K L M@2 N O P Q N O P Q R S T U ~@5 V@4 W@2 X@3 Y Z AA@5
  AB AC AD AE ~@3 AF@3 AG@2 AH@2 AI@3 AJ AK AL AM@5 AN AO AP AQ@8 AR@3 AS AT ~ AU AV ~ AW@2 AX@5 AY AZ BA BB BC BD BE ~
  BF BG ~ BH@5 BI@2 BJ BK@2
>`.pickRestart({
  A: "[~@30 gb2@54 d2@3 ~ d2@37 db2@10 c2@3 bb1@22]/5", B: "~@2 bb1@3 bb1@10 bb1@3 ~ bb1@10 bb1@3",
  C: "[gb2@27 gb2@10 eb2@3 eb2@10 ~ eb2@3 db2@61 ~@13, gb1@37 ~@91]/4", D: "[~@19 e2@3 e2@37 eb2@10 d2@3 [c2,c3]@24]/3",
  E: "[c2@3 c2@10 c2@3 ~ c2@10 c2@3 ab2@27 ab2@10 f2@3 ~ f2@10 f2@3 eb2@61 ~@15, ~@30 ab1@37 ~@93]/5",
  F: "bb1@2 ~ c2@2 db2@2 ~ eb2@2 e2@2 f2@12 ~@8, ~@2 b1@2 ~@3 d2@2 ~@23", G: "f2@3 eb2", H: "db2", I: "bb1",
  J: "eb2 e2", K: "f2 g2", L: "ab2 db2", M: "c2/2", N: "f2!2 f2@2 f2@2 f2 eb2", O: "db2@2 db2@2 db2!3 c2",
  P: "bb1@4 bb1@4 bb1@2 bb1@2 bb1@2 c2 db2", Q: "eb2@2 eb2!2 eb2@3 eb2", R: "f2!4 g2!4", S: "ab2 g2 f2 eb2 db2@4",
  T: "c2!8", U: "c2!4 c2@4",
  V: "[~@7 g2@10 ~ g2@10 g2@10 ~ eb2@7 bb2@3 g2@10 eb2@8 bb2@3 g2@21 d3@10 d3@10 ~ d3@10 eb3@6]/4",
  W: "[~@2 bb2@3 gb2@10 eb2@8 bb2@2 g2@21 g3@10 ~ g2@7]/2",
  X: "[~ g2@2 g3@10 ~ gb3@8 f3@2 e3@3 eb3@2 e3@5 ~@6 g2@5 db3@10 ~ c3@7 b2@3 bb2@3 a2@2 bb2@5 ~@6 eb2@5 gb2@9]/3",
  Y: "~ eb2@8 g2@3 bb2@10 g2@8 bb2@2", Z: "~ d3@21 g3@10",
  AA: "[g2@8 g2@2 g3@10 ~ gb3@8 f3@2 e3@3 eb3@3 e3@5 ~@5 g2@5 db3@10 ~ c3@8 b2@2 bb2@3 a2@2 bb2@5 ~@6 eb2@5 gb2@10 eb2@8 bb2@3 g2@10 eb2@8 bb2@3 g2@21 ~@3]/5",
  AB: "~@2 g3@3 g3@2 g3@10 ~@6 g3@5 ~@4", AC: "~ eb3@5 ~@6 g3@5 ~@5 eb3@5 ~@5",
  AD: "~ g3@2 g3@3 g3@5 g3@5 ~@6 g3@5 ~@5", AE: "g3@5 ~@5 g3@5 ~@6 g3@5 ~@6",
  AF: "[~@24 c3@5 g2@6 c3@6 ab2@5 c3@6 g2@6 c3@5 g2@6 c3@6 g2@5 c3@6 b2@6 ~@4]/3",
  AG: "[~@7 c2@11 ~@12 bb1@11 ~@6 g2@6 ~@5 ab2@6]/2", AH: "[~@6 bb2@6 ~@5 b2@6 c2@23 c2@6 ~@12]/2",
  AI: "[~@7 g2@7 g2@8 ~@8 g2@8 g2@8 g2@8 f2@8 f2@8 g2@11 g2@4 g2@11]/3", AJ: "~ g2@4 f2@12 f2@4 f2@11",
  AK: "~ f2@4 g2@11 g2@4 g2@12", AL: "g2 g2@3 g2 g2@3",
  AM: "[g2@4 g2@11 g2@4 g2@12 g2@4 f2@12 f2@4 f2@12 f2@4 g2@11 g2@4 g2@12 g2@4 g2@12 g2@4 g2@12 g2@4 g2@11 g2@4 g2@12 g2@3]/5",
  AN: "~ f2@12 f2@4 f2@12 f2@3", AO: "~ g2@11 g2@4 g2@12 g2@4", AP: "g2@3 g2 g2@3 g2",
  AQ: "[g2@11 g2@4 g2@12 g2@4 f2@12 f2@4 f2@12 f2@4 g2@8 g2@7 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 bb2@23 d2@8 bb1@16 ~@16 c3@23 e2@8 c2@16 ~@16 d3@4]/8",
  AR: "[d3@2 d3@2 d3@3 d3@8 d3@4 d3@2 d3@2 d3@4 d3@4 d3@2 d3@2 d3@4 d3@8 d3@4 d3@2 d3@2 d3@4 d3@4 d3@2 d3@2 d3@4 d3@7 d3@4 d3@2 d3@2 d3@4 d3@4 d3@2]/3",
  AS: "d3@2 d3@4 d3@4 c3@5 c3@5 b2@5 ~@7", AT: "~@7 g1", AU: "~@29 e3@3",
  AV: "~ f3@6 d3@3 e3@3 ~@3 c3@5 a2@3 b2@3 g2@3 ~@2", AW: "[~@25 e3@4 f3@6 d3@3 e3@3 ~@3 c3@5 a2@3 b2@3 g2@3 ~@6]/2",
  AX: "[c2@8 g2@9 c3@6 f2@8 c3@3 c3@6 f2@6 c2@8 e2@9 g2@3 c3@3 ~@17 g2@6 c2@8 g2@9 c3@6 f2@9 c3@2 c3@6 f2@6 c2@6 ab2@3 ~@5 bb2@3 ~@5]/5",
  AY: "~ c3@3 ~@6 g2@2 g2@6 [c2,c3]@6 ab2@3 ~@5", AZ: "~ eb3@3 ~@5 ab3@3 ~@3 g3@3 ~@6 c3@3 ~@5",
  BA: "g2@3 ~@3 ab2@3 ~@6 eb3@3 ~@5 ab3@3 ~@3 g3@3", BB: "~@6 c3@3 ~@5 g2@3 ~@3 ab2@3 ~@6 eb3@3",
  BC: "~@5 ab3@3 ~@3 g3@3 ~@6 c3@3 ~@5 g2@3 ~", BD: "~@2 d2@3 d2@3 ~@3 d2@3 ~@2 d2@3 d2@3 ~@3 g2@6 ~",
  BE: "~@2 g1@3 ~@11", BF: "~@6 e3@4 f3@5 d3@3 e3@3 ~@3 c3@6 a2@2", BG: "~ b2@2 g2@3 ~@26",
  BH: "[~@2 e3@4 f3@5 d3@3 e3@3 ~@3 c3@6 a2@3 b2@2 g2@3 ~@6 c2@6 ~@6 g2@6 ~@5 f2@6 f2@6 c2@5 f2@6 d2@6 ~@3 f2@3 g2@5 b2@6 g2@6 g2@6 c3@3 c3@2 g2@6 c2@6 ~@6 g2@6 ~@5 f2@5]/5",
  BI: "[~ f2@6 c2@5 f2@6 g2@3 g2@6 g2@3 g2@3 a2@4 b2@4 c3@3 g2@6 e2@3 c2@6 ~@5]/2",
  BJ: "g3@3 ~@6 e3@3 ~@5 c3@3 ~@3 f2@9", BK: "[~@3 db2@11 c2@23 ~@27]/2",
})).s("gm_trombone").gain(0.72)

// bass · trombone · "Bass Trombone" · soft notes
const bass_soft = note("<~@11 A@3 ~@106 B C ~ D@2 ~@12 E F@2 G@3 ~@9>".pickRestart({
  A: "[~@29 ab2@54 ~@13]/3", B: "~@8 g2@6 ~@2 e2@6 ~@3 c2@6 ~", C: "~@2 f2@5 g2@6 gb2@3 f2@6 e2@4 c3@4 ~@2",
  D: "[~@4 g2@6 ~@2 e2@6 ~@3 c2@6 ~@3 f2@5 g2@6 gb2@3 f2@6 e2@4 c3@4 ~@6]/2", E: "~@16 g2@6 ~@3 e2@6 ~",
  F: "[~ c2@6 ~@3 f2@6 g2@5 gb2@3 f2@6 e2@4 c3@4 ~@26]/2",
  G: "[~@12 g2@6 ~@3 e2@6 ~@2 c2@6 ~@3 f2@6 g2@5 gb2@3 f2@6 e2@4 c3@4 ~@30]/3",
})).s("gm_trombone").gain(0.4)

stack(trombone, trombone_2, bass, bass_soft)