Strudelify
Cartoon Heroes cover art

2000 · Aquarius

Cartoon Heroes

Aqua

KeyG♭ majorTempo210 bpm
0:00/0:00
// Cartoon Heroes — Aqua
// 210 bpm, 4/4, key Gb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 186 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(210/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, A@4 for four bars: edit a riff to change every repeat.

// bass · synth bass 2
const bass = note(`<
  ~@29 A B C D E D F G H I J@2 K@2 L M N O P Q R S@4 ~ T D U V W X Y@2 Z@2 AA@2 AB AC D U AD AE AF Y@2 AG@2 AH M AB AI ~
  AJ G J@4 B C D E AK F G AL AM AN@2 AO@2 AP AQ AB AR AS AT ~ AU@2 AV@2 L AW AB E AX AY AM AZ@2 BA@2 BB BC N BD AS F BE
  BF AM BG@2 BH@3 BI@3 BJ@2 BK@2 BL@3 BM C BN BO BP BQ R BR@2 BS@2 L AQ BT E V BU BP BV R BR@2 BS@2 L AQ BT E V BU AM
  BW@2 BX@2 B BY ~
>`.pickRestart({
  A: "~@12 ab1@3 ~", B: "~@3 ab1@3 ~@3 ab1@3 ~@4", C: "ab1@3 ~@3 ab1@3 ~@4 ab1@3", D: "~@3 ab1@3 ~@4 ab1@3 ~@3",
  E: "ab1@3 ~@4 ab1@3 ~@3 ab1@3", F: "~ ab1@3 ~@3 ab1@3 ~@4 ab1@2", G: "~@4 ab1@3 ~@4 ab1@3 ~@2",
  H: "~ ab1@3 ~@4 ab1@3 ~@3 ab1@2", I: "~@5 ab1@3 ~@3 ab1@3 ~@2",
  J: "[~@2 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2",
  K: "[~@2 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 db1@3 ~]/2", L: "~@3 db1@3 ~@3 db1@3 ~@4",
  M: "db1@3 ~@3 db1@3 ~@4 db1@3", N: "~@3 db1@3 ~@4 db1@3 ~@3", O: "e1@3 ~@4 e1@3 ~@3 e1@3", P: "~@4 e1@3 ~@3 e1@3 ~@3",
  Q: "~ e1@3 ~@3 e1@3 ~@4 e1@2", R: "~@5 eb1@3 ~@3 eb1@3 ~@2",
  S: "[~@2 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2", T: "~@13 ab1@3", U: "ab1@3 ~@4 c2@3 ~@3 c2@3",
  V: "~@4 c2@3 ~@3 c2@3 ~@3", W: "~ db1@3 ~@3 db1@3 ~@4 db1@2", X: "~@4 db1@3 ~@4 eb1@3 ~@2",
  Y: "[~@2 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2",
  Z: "[~@2 ab1@3 ~@3 ab1@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~]/2",
  AA: "[~@2 c2@3 ~@4 db1@3 ~@3 db1@3 ~@4 db1@3 ~@3 db1@3 ~]/2", AB: "~@3 eb1@3 ~@4 eb1@3 ~@3",
  AC: "eb1@3 ~@4 eb1@3 ~@3 ab1@3", AD: "~@4 c2@3 ~@4 c2@3 ~@2", AE: "~ db1@3 ~@4 db1@3 ~@3 db1@2",
  AF: "~@5 db1@3 ~@3 eb1@3 ~@2", AG: "[~@2 ab1@3 ~@4 ab1@3 ~@3 c2@3 ~@4 c2@3 ~@3 c2@3 ~]/2",
  AH: "~@3 c2@3 ~@3 db1@3 ~@4", AI: "eb1@3 ~@4 eb1@3 ~@6", AJ: "~@7 ab1@3 ~@4 ab1@2", AK: "~@4 ab1@3 ~@3 ab1@3 ~@3",
  AL: "~ ab1@3 ~@4 db1@3 ~@3 db1@2", AM: "~@5 db1@3 ~@3 db1@3 ~@2",
  AN: "[~@2 db1@3 ~@3 db1@3 ~@4 db1@3 ~@3 db1@3 ~@4 e1@3 ~]/2",
  AO: "[~@2 e1@3 ~@4 e1@3 ~@3 e1@3 ~@4 e1@3 ~@3 e1@3 ~]/2", AP: "~@3 e1@3 ~@3 e1@3 ~@4",
  AQ: "eb1@3 ~@3 eb1@3 ~@4 eb1@3", AR: "eb1@3 ~@4 eb1@3 ~@3 eb1@3", AS: "~@4 eb1@3 ~@3 eb1@3 ~@3",
  AT: "~ eb1@3 ~@4 eb1@3 ~@5", AU: "[~@8 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2",
  AV: "[~@2 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@3 db1@3 ~]/2", AW: "db1@3 ~@3 eb1@3 ~@4 eb1@3",
  AX: "~@4 ab1@3 ~@3 c2@3 ~@3", AY: "~ c2@3 ~@3 c2@3 ~@4 c2@2",
  AZ: "[~ db1@3 ~@4 db1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2",
  BA: "[~@2 eb1@3 ~@4 ab1@3 ~@3 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2", BB: "~@3 c2@3 ~@3 c2@3 ~@4",
  BC: "c2@3 ~@3 c2@3 ~@4 db1@3", BD: "db1@3 ~@4 eb1@3 ~@3 eb1@3", BE: "~@4 ab1@3 ~@4 c2@3 ~@2",
  BF: "~ c2@3 ~@4 c2@3 ~@3 c2@2", BG: "[~@2 db1@3 ~@3 db1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2",
  BH: "[~@2 eb1@3 ~ db2@42]/3", BI: "[~@5 e2@18 ~]/3", BJ: "[~@7 eb2@5 ~@2 ab2@14 ~@4]/2",
  BK: "[~ ab2@5 ~@2 g2@13 ~@7 f2@4]/2", BL: "[~@2 eb2@33 ~@13]/3", BM: "~@9 ab1@3 ~@4", BN: "~@3 c2@3 ~@4 c2@3 ~@3",
  BO: "c2@3 ~@4 c2@3 ~@3 db1@3", BP: "~@4 db1@3 ~@4 db1@3 ~@2", BQ: "~ db1@3 ~@3 eb1@3 ~@4 eb1@2",
  BR: "[~@2 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 c2@3 ~]/2",
  BS: "[~@2 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 db1@3 ~@3 db1@3 ~]/2", BT: "~@3 eb1@3 ~@4 ab1@3 ~@3",
  BU: "~ c2@3 ~@3 c2@3 ~@4 db1@2", BV: "~ db1@3 ~@4 eb1@3 ~@3 eb1@2",
  BW: "[~@2 db1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2",
  BX: "[~@2 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 ab1@3 ~]/2", BY: "ab1@3 ab1@10 ~@3",
})).s("gm_synth_bass_2").gain(0.38)

// other · violin
const violin = note("<~@81 [~@5 ab5@3] ~@102 [~@3 ab5@6 ~@7] ~>").s("gm_violin").gain(0.12).pan(0.2)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@6 A@4 B@3 C@3 D@7 E@6 F@7 G@3 H@3 I@7 J@5 K@8 L@5 M@8 L@5 N@2 ~ O@3 P@7 Q@3 R@8 S@2 T@8 U@5 V@8 W@5 X@3 Y@8 Z@7 AA@8
  AB@5 AC@8 AD@5 AE@8 AF ~
>`.pickRestart({
  A: "[~@3 [eb3,ab3,c4,eb4]@13]/4", B: "[e3,ab3,c4,e4]/3", C: "[~ [f3,ab3,c4,f4]@11]/3",
  D: "[~@8 [gb3,ab3,c4,gb4]@52 ~ [f4,f5]@26 [g4,g5]@13 [ab4,ab5]@12, ~@61 [ab3,db5]@51]/7", // Ab7 F G Ab Db5
  E: "[~ [e4,e5]@26 [gb4,gb5]@13 [ab4,ab5]@13 eb5@13 [f4,f5]@13 [bb4,bb5]@13 ~@4, ~ [ab3,db5]@52 [eb3,g3,eb4]@39 ~@4]/6", // E Gb Ab F Bb Db5 Eb
  F: "[~@9 [eb3,ab3,c4,eb4]@52 [e3,ab3,c4,e4]@51]/7", G: "[~ [f3,ab3,c4,f4]@47]/3", H: "[~@5 [gb3,ab3,c4,gb4]@43]/3",
  I: "[~@9 [db4,f4,db5]@52 [e4,ab4,e5]@51]/7", J: "[~ [eb3,eb4,ab4]@26 [eb3,eb4,g4]@26 [eb3,eb4,f4]@26 ~]/5",
  K: "[[eb3,eb4,g4]@13 [eb3,c4,eb4,ab4]@13 [c3,c4,eb4,g4]@13 [db3,db4,f4,ab4]@13 [g3,eb4,g4,bb4]@12]/8", // Eb Ab Cm Db Eb
  L: "[~ [eb3,c4,eb4,ab4]@13 [c3,c4,eb4,g4]@13 [db3,db4,f4,ab4]@13]/5", // Ab Cm Db
  M: "[[g3,eb4,g4,bb4]@13 [eb3,c4,eb4,ab4]@13 [c3,c4,eb4,g4]@13 [db3,db4,f4,ab4]@13 [g3,eb4,g4,bb4]@12]/8", // Eb Ab Cm Db Eb
  N: "[[g3,eb4,g4,bb4]@13 ~@3]/2", O: "[~ [eb3,ab3,c4,eb4]@11]/3", P: "[~@2 [e3,ab3,c4,e4]@13 [f3,ab3,c4,f4]@13]/7",
  Q: "[~ [gb3,ab3,c4,gb4]@47]/3", R: "[~@5 [db4,f4,db5]@52 [e4,ab4,e5]@52 [eb3,eb4,ab4]@19]/8",
  S: "[~@7 [eb3,eb4,g4]@25]/2", // Eb
  T: "[~ [eb3,eb4,f4]@26 [eb3,eb4,g4]@26 [eb3,c4,eb4,ab4]@26 [c3,c4,eb4,g4]@26 [db3,db4,f4,ab4]@23]/8", // Ebsus2 Eb Ab Cm Db
  U: "[~@3 [g3,eb4,g4,bb4]@26 [eb3,c4,eb4,ab4]@26 [c3,c4,eb4,g4]@25]/5", // Eb Ab Cm
  V: "[~ [db3,db4,f4,ab4]@26 ~ [g3,eb4,g4,bb4]@25 [eb3,c4,eb4,ab4]@26 [c3,c4,eb4,g4]@26 ~ [db3,db4,f4,ab4]@22]/8", // Db Eb Ab Cm Db
  W: "[~@2 [g3,eb4,g4,bb4]@13 [eb3,c4,eb4,ab4]@13 [c3,c4,eb4,g4]@12]/5", // Eb Ab Cm
  X: "[~ [db3,db4,f4,ab4]@13 [g3,eb4,g4,bb4]@10]/3", Y: "[~@3 [db3,db4,f4,ab4]@26 [e3,b3,e4,ab4]@26 [eb3,ab3,eb4]@9]/8",
  Z: "[~@4 [eb3,g3,eb4]@13 [eb3,eb4,ab4]@13 [eb3,eb4,g4]@13 [eb3,c4,eb4,ab4]@13]/7", // Eb Ab5 Eb Ab
  AA: "[[c3,c4,eb4,g4]@13 [db3,db4,f4,ab4]@13 [g3,eb4,g4,bb4]@13 [eb3,c4,eb4,ab4]@13 [c3,c4,eb4,g4]@12]/8", // Cm Db Eb Ab Cm
  AB: "[~ [db3,db4,f4,ab4]@13 [g3,eb4,g4,bb4]@13 [eb3,c4,eb4,ab4]@13]/5", // Db Eb Ab
  AC: "[~ [c3,c4,eb4,g4]@25 [db3,db4,f4,ab4]@26 [g3,eb4,g4,bb4]@26 ~ [eb3,c4,eb4,ab4]@26 [c3,c4,eb4,g4]@23]/8", // Cm Db Eb Ab Cm
  AD: "[~@3 [db3,db4,f4,ab4]@26 [g3,eb4,g4,bb4]@26 [eb3,c4,eb4,ab4]@25]/5", // Db Eb Ab
  AE: "[~ [c3,c4,eb4,g4]@26 [db3,db4,f4,ab4]@26 [c4,eb4,ab4,c5]@26 [eb3,eb4,g4,c5]@26 [ab3,c4,eb4,ab4]@23]/8", // Cm Db Ab Cm Ab
  AF: "~@3 [ab3,c4,eb4,ab4]@6 ~@7", // Ab
})).s("gm_string_ensemble_2").gain(0.04).pan(0.9)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@7 A B C D E F G H I J K A ~@36 L@3 M@4 N@5 O@4 P@2 Q@2 R@5 S@2 T U ~@12 V@6 W@7 X@6 Y@4 Z@2 AA@3 AB@2 AC@2 AD@8 AE
  AF AG AH AI AJ AK AL AM ~@3 AN@2 AO@4 AP@7 AQ@6 AR@7 AS@2 AT@8 AU ~
>`.pickRestart({
  A: "~@2 [eb3,ab3] ~@9 [ab2,eb3,ab3] ~@3, ~ ab2 ~@6", B: "~@6 [ab2,eb3,ab3] ~@8 eb3", C: "[ab2,ab3] ~@15",
  D: "~@7 [ab2,eb3,ab3] ~@8", E: "eb3 [ab2,ab3] ~@8 [ab2,eb3,ab3] ~@5", F: "~@4 [ab2,eb3,ab3] ~@11",
  G: "~@10 [eb3,ab3] ~@5, ~@5 ab2 ~@2", H: "~@4 [ab2,eb3,ab3] ~@9 [ab2,eb3,ab3] ~", I: "~@8 [ab2,eb3,ab3] ~@7",
  J: "~@15 [ab2,eb3,ab3]", K: "~@9 [ab2,eb3,ab3] ~@6", L: "[~@3 ab4 bb4 [c5,db5] eb5 f5 g5 ~ ab5@26 g5@12]/3",
  M: "[~ bb5@13 ab5@26 [eb4,g5]@6 [f4,ab5]@6 ~ [g4,bb5]@6 [ab4,c6]@5]/4", N: "[~@2 ab5@26 g5@13 bb5@13 ab5@26]/5",
  O: "[[eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 [ab4,c6]@6 ~ ab5@13 c6@13 g5@12]/4", // Eb Fm Gm Ab
  P: "[~ bb5@13 [db4,f5]@6 ~ [eb4,g5]@6 [f4,ab5]@5]/2", // Db Eb Fm
  Q: "[~@2 [g4,bb5]@6 [eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 [ab4,c6]@5]/2", // Gm Eb Fm Gm Ab
  R: "[~@2 ab5@13 c6@13 g5@13 bb5@13 [db4,f5]@6 ~ [eb4,g5]@6 [f4,ab5]@6 ~ [g4,bb5]@6]/5", // Db Eb Fm Gm
  S: "[[eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 ~ [ab4,c6]@6 ~@6]/2", T: "~@14 ab4 [bb4,c5]", U: "db5 eb5 f5 g5 ab5 ~@11",
  V: "[~@5 f5@26 g5@13 ab5@13 e5@26 gb5@13]/6", W: "[ab5@13 eb5@13 f5@13 bb5@26 f5@13 bb5@13 eb6@13 ~@7 [ab4,bb4]]/7",
  X: "[c5 db5 eb5 [f5,g5] ~ ab5@26 g5@13 bb5@13 ab5@26 [eb4,g5]@6 ~ [f4,ab5]@6]/6", // Fsus2 Eb Fm
  Y: "[[g4,bb5]@6 ~ [ab4,c6]@6 ab5@26 g5@13 bb5@12]/4", Z: "[~@2 ab5@25 [eb4,g5]@5]/2",
  AA: "[~@2 [f4,ab5]@6 [g4,bb5]@6 ~ [ab4,c6]@6 ab5@13 ~ c6@13]/3", AB: "[g5@13 bb5@13 [db4,f5]@6]/2",
  AC: "[[eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 [eb4,g5]@6 ~ [f4,ab5]@6]/2", // Eb Fm Gm Eb Fm
  AD: "[~ [g4,bb5]@6 [ab4,c6]@6 ~ ab5@13 c6@13 g5@13 bb5@13 [db4,f5]@6 [eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 ~ [eb4,g5]@6 [f4,ab5]@6 ~ [g4,bb5]@6 [ab4,c6]@6 ~ ab3@2 ~ db3 ~@6]/8", // Gm Ab Db Eb Fm Gm Eb Fm …
  AE: "db3 ~@2 ab3 ~@2 db3 ~@6 db3 ~@2", AF: "ab3 ~@2 db3 ~@6 db3 ~@2 ab3 ~@2", AG: "db3 ~@6 db3 ~@2 ab3 ~@2 db3 ~@2",
  AH: "~@4 db3 ~@2 ab3 ~@2 db3 ~@5", AI: "~ db3 ~@2 ab3 ~@2 db3 ~@6 db3 ~", AJ: "~ ab3 ~@2 db3 ~@6 db3 ~@2 ab3 ~",
  AK: "~ eb3 ~@3 c3 ~@2 eb3 ~@2 ab3@2 ~ eb3 ~", AL: "~@5 eb3 ~@2 g3 ~@2 eb3 ~@3 c3", AM: "~@2 eb3 ~@2 g3 ~@2 eb3 ~@7",
  AN: "[[ab4,bb4] c5 db5 eb5 [f5,g5] ~ ab5@26]/2", AO: "[g5@26 f5@26 [eb4,g5]@6 ~ [f4,ab5]@5]/4",
  AP: "[~ [g4,bb5]@6 ~ [ab4,c6]@6 ab5@26 g5@26 f5@26 [eb4,g5]@6 ~ [f4,ab5]@6 ~ [g4,bb5]@6]/7", // Gm Ab Eb Fm Gm
  AQ: "[[ab4,c6]@6 ~ ab5@26 g5@13 bb5@13 ab5@26 [eb4,g5]@6 [f4,ab5]@5]/6", // Ab Eb Fm
  AR: "[~@2 [g4,bb5]@6 [ab4,c6]@6 ~ ab5@26 g5@13 bb5@13 ab5@26 [eb4,g5]@6 [f4,ab5]@6 ~ [g4,bb5]@6]/7", // Gm Ab Eb Fm Gm
  AS: "[[ab4,c6]@6 ~ ab5@13 c6@12]/2", // Ab
  AT: "[~ g5@13 bb5@13 ab5@26 g5@6 ~ ab5@19 [eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 ~ [ab4,c6]@6 c6@23]/8", // Eb Fm Gm Ab
  AU: "~@3 [ab4,ab5]@6 ~@7", // Ab
})).s("gm_string_ensemble_1").gain(0.06).pan(0.2)

// other · brass section
const brass_section = note(`<
  ~@19 A B C@2 D E@2 F G@6 H@3 I@3 J@7 K@3 L@3 M@5 N@2 O@3 P@3 Q@2 R@3 S@2 T@6 U@2 V@3 W@7 X@3 I@3 Y@7 Z@3 AA@3 AB@5
  AC@2 AD@3 AE@8 AC@2 AF AG@2 AH@4 AI AJ AK AJ AL AM AN AO AP ~@3 AQ@2 AR@3 AS@2 AT@8 AU@5 AV@8 AW@8 ~@2
>`.pickRestart({
  A: "~@12 db4 ~@3", B: "db4 ~@15", C: "[~@6 db4@15 ~@5 db4 ~@2 c4 ~@2]/2", D: "~ db4 ~@2 db4 ~@11",
  E: "[~@11 db4@15 ~@6]/2", F: "~ db4 ~@3 eb4 ~@2 eb4 ~@7",
  G: "[~@15 eb4@18 ~@4 eb4 ~@3 ab3@3 ab3@42 ~@4 g3@3 ab3@3]/6", H: "[ab3@21 ~@2 g3]/3", I: "[~ ab3@3 ab3@42 ~@2]/3",
  J: "[~@2 g3@3 ab3@3 ab3@42 ~@4 c4@2 ~ db4@3 db4@42 ~@4 c4@3 db4@3]/7", K: "[db4@21 ~@2 d4]/3",
  L: "[~ eb4@3 ~ eb4@42 ~]/3", M: "[~@2 d4@3 eb4@3 ~ eb4@42 ~@3 eb4@2 ~ ab3@3 ~ ab3@19]/5",
  N: "[~@3 c4@19 ~@4 c4@3 db4@3]/2", O: "[~ db4@19 ~@4 eb4@19 ~@3 eb4@2]/3", P: "[~@2 ab3@3 ab3@19 ~@4 c4@19 ~]/3",
  Q: "[~@2 c4@3 ~ db4@3 db4@19 ~@4]/2", R: "[eb4@23 ~@3 ab3@3 ab3@16 ~@3]/3",
  S: "[~ ab3@3 c4@3 c4@16 ~@3 c4@3 ~ db4@2]/2",
  T: "[~ db4@19 ~@4 eb4@19 ~@4 eb4@3 ab3@3 ab3@16 ~@3 ab3@4 c4@3 c4@16 ~]/6", U: "[~@3 c4@3 db4@3 db4@19 ~@4]/2",
  V: "[eb4@23 ~@3 ab3@3 ab3@6 ~ ab3@2 ~@4 ab3@2 ~@4]/3",
  W: "[~ g3@2 ~ ab3@3 ab3@42 ~@4 g3@3 ab3@3 ~ ab3@42 ~@3 g3@3 ab3@3 ~]/7", X: "[ab3@14 ~ g3]/3",
  Y: "[~ c4@2 ~@2 db4@3 db4@42 ~@3 c4@3 ~ db4@3 db4@42 ~@3 d4@3 ~ eb4@3]/7", Z: "[eb4@21 ~@2 d4]/3",
  AA: "[~ eb4@3 eb4@42 ~@2]/3", AB: "[~@2 eb4@2 ~ ab3@3 ab3@19 ~@4 c4@19 ~@4 c4@3 db4@3 db4@19 ~]/5",
  AC: "[~@3 eb4@19 ~@4 eb4@3 ab3@3]/2", AD: "[ab3@19 ~@4 c4@19 ~@4 c4@2]/3",
  AE: "[~ db4@3 db4@19 ~@4 eb4@23 ~@3 ab3@3 ~ ab3@16 ~@3 ab3@3 c4@3 ~ c4@16 ~@3 c4@3 db4@3 ~ db4@19]/8", AF: "~ ab3@15",
  AG: "[~@3 ab3@4 ~ c4@3 c4@16 ~@3 c4@2]/2", AH: "[~@2 db4@3 db4@19 ~@4 eb4@23 ~@9 db4 ~@3]/4", AI: "~@6 db4 ~@9",
  AJ: "db4 ~@9 db4 ~@5", AK: "~@3 db4 ~@12", AL: "~@4 db4 ~@8 db4 ~@2", AM: "~@7 db4 ~@8", AN: "~@5 c4 ~@8 c4 ~",
  AO: "~@8 c4 ~@7", AP: "~@2 c4 ~@8 c4 ~@4", AQ: "[~@6 ab3@3 ab3@19 ~@4]/2", AR: "[c4@19 ~@4 c4@3 db4@3 db4@19]/3",
  AS: "[~@4 eb4@19 ~@4 eb4@3 ab3@2]/2",
  AT: "[~ ab3@19 ~@4 c4@19 ~@4 c4@3 db4@3 db4@19 ~@4 eb4@23 ~@3 ab3@3 ~ ab3@19 ~@3]/8",
  AU: "[c4@19 ~@4 c4@3 db4@3 ~ db4@19 ~@4 eb4@19 ~@3 eb4@3 ab3@2]/5",
  AV: "[~@2 ab3@19 ~@3 c4@19 ~@4 c4@3 ~ db4@3 db4@19 ~@4 eb4@23 ~@3 ab3@3 ab3@16 ~@4 ab3@2]/8",
  AW: "[~ c4@3 c4@16 ~@4 c4@3 db4@3 db4@19 ~@4 eb4@19 ~@4 eb4@3 eb4@3 eb4@16 ~@3 ab3@4 ab3@3 ab3@16 ~@4]/8",
})).s("gm_brass_section").gain(0.41).pan(0.6)

// other · trombone
const trombone = note(`<
  ~@19 A B C@2 D E@2 F G@6 H@3 I@3 J@7 K@3 L@3 M@5 N@2 O@3 P@3 Q@2 R@3 S@2 T@6 U@2 V@3 W@7 X@3 I@3 Y@7 Z@3 L@3 AA@5 AB@2
  AC@3 AD@8 AB@2 AE AF@2 AG@7 AH@3 AI@3 ~@3 AJ@2 AK@3 AL@2 AM@8 AN@5 AO@8 AP@8 ~@2
>`.pickRestart({
  A: "~@12 db3@3 ~", B: "db3 ~@15", C: "[~@6 db3@15 ~@5 db3@3 c3@3]/2", D: "db3@3 ~ db3 ~@11", E: "[~@11 db3@15 ~@6]/2",
  F: "~ db3 ~@3 eb3@3 eb3 ~@7", G: "[~@15 eb3@19 ~@7 ab2@3 ab2@42 ~@4 g2@3 ab2@3]/6", H: "[ab2@21 ~@2 g2]/3",
  I: "[~ ab2@3 ab2@42 ~@2]/3", J: "[~@2 g2@3 ab2@3 ab2@42 ~@4 c3@2 ~ db3@3 db3@42 ~@4 c3@3 db3@3]/7",
  K: "[db3@21 ~@2 d3]/3", L: "[~ eb3@3 eb3@42 ~@2]/3", M: "[~@2 d3@3 eb3@3 ~ eb3@42 ~@3 eb3@2 ~ ab2@3 ~ ab2@19]/5",
  N: "[~@3 c3@19 ~@4 c3@3 db3@3]/2", O: "[~ db3@19 ~@4 eb3@19 ~@3 eb3@2]/3", P: "[~@2 ab2@3 ab2@19 ~@4 c3@19 ~]/3",
  Q: "[~@2 c3@3 ~ db3@3 db3@19 ~@4]/2", R: "[eb3@23 ~@3 ab2@3 ab2@16 ~@3]/3",
  S: "[~ ab2@3 c3@3 c3@16 ~@4 c3@3 db3@2]/2",
  T: "[~ db3@19 ~@4 eb3@19 ~@4 eb3@3 ab2@3 ab2@16 ~@3 ab2@4 c3@3 c3@16 ~]/6", U: "[~@3 c3@3 db3@3 db3@19 ~@4]/2",
  V: "[eb3@23 ~@3 ab2@3 ab2@6 ~ ab2@2 ~@4 ab2@2 ~@4]/3",
  W: "[~ g2@2 ~ ab2@3 ab2@42 ~@4 g2@3 ab2@3 ~ ab2@42 ~@3 g2@3 ab2@3 ~]/7", X: "[ab2@14 ~ g2]/3",
  Y: "[~ c3@2 ~@2 db3@3 db3@42 ~@3 c3@3 ~ db3@3 db3@42 ~@3 d3@3 ~ eb3@3]/7", Z: "[eb3@21 ~@2 d3]/3",
  AA: "[~@2 eb3@2 ~ ab2@3 ab2@19 ~@4 c3@19 ~@4 c3@3 db3@3 db3@19 ~]/5", AB: "[~@3 eb3@19 ~@4 eb3@3 ab2@3]/2",
  AC: "[ab2@19 ~@4 c3@19 ~@4 c3@2]/3",
  AD: "[~ db3@3 db3@19 ~@4 eb3@23 ~@3 ab2@3 ~ ab2@16 ~@3 ab2@3 c3@3 ~ c3@16 ~@3 c3@3 db3@3 db3@19 ~]/8", AE: "~ ab2@15",
  AF: "[~@3 ab2@4 c3@3 ~ c3@16 ~@3 c3@2]/2", AG: "[~@2 db3@3 db3@19 ~@4 eb3@23 ~@9 db4@39 ~@13]/7",
  AH: "[db4@13 ~@3]/3", AI: "[~@4 c4@39 ~@5]/3", AJ: "[~@6 ab2@3 ab2@19 ~@4]/2", AK: "[c3@19 ~@4 c3@3 db3@3 db3@19]/3",
  AL: "[~@4 eb3@19 ~@4 eb3@3 ab2@2]/2",
  AM: "[~ ab2@19 ~@4 c3@19 ~@4 c3@3 db3@3 db3@19 ~@4 eb3@23 ~@3 ab2@3 ab2@19 ~@4]/8",
  AN: "[c3@19 ~@4 c3@3 db3@3 ~ db3@19 ~@3 eb3@19 ~@4 eb3@3 ab2@2]/5",
  AO: "[~@2 ab2@19 ~@3 c3@19 ~@4 c3@3 db3@3 ~ db3@19 ~@4 eb3@23 ~@3 ab2@3 ab2@16 ~@4 ab2@2]/8",
  AP: "[~ c3@3 c3@16 ~@4 c3@3 db3@3 db3@19 ~@4 eb3@19 ~@4 eb3@3 eb3@3 eb3@16 ~@3 eb3@4 ab2@3 ab2@16 ~@4]/8",
})).s("gm_trombone").gain(0.42).pan(0.1)

// bass · tuba
const bass_2 = note("<~@19 A B C@2 D E@2 F G@3 ~@105 H@4 I@3 J@3 ~@41>".pickRestart({
  A: "~@12 db2@3 ~", B: "db2 ~@15", C: "[~@6 db2@15 ~@5 db2@3 c2@3]/2", D: "db2@3 ~ db2 ~@11", E: "[~@11 db2@15 ~@6]/2",
  F: "~ db2 ~@3 eb2@3 eb2 ~@7", G: "[~@15 eb2@19 ~@14]/3", H: "[~@12 db2@39 ~@13]/4", I: "[db2@13 ~@3]/3",
  J: "[~@4 c2@39 ~@5]/3",
})).s("gm_tuba").gain(0.17)

// other · timpani
const timpani = note(`<
  A B C D@3 E F ~@3 G H I ~@4 J K L ~@3 M N O P Q R ~@4 S T U ~@3 P V W X ~@3 Y Z AA ~@4 AB AC ~@4 AD AE AF ~@4 AB AG AH
  ~@3 AD AI AF ~@4 AJ AK ~@6 AL AM AN ~@3 AO AP AQ ~@4 AR AS AT ~@3 AO AU ~@5 AV AW AX ~@3 AO AU AY ~@4 AV AW AX ~@4 P
  AZ ~@2 AN ~@2 BA ~ BB BC BD ~@20 BE BF BG ~@3 BH BI BJ ~@4 AI BK Q BL AH ~@2
>`.pickRestart({
  A: "~@4 ab2 ~@6 eb2 ~@4", B: "~ ab2 ~@6 eb2 ~@5 ab2 ~", C: "~@15 ab0", D: "ab0!16", E: "ab0 [ab0,ab2]!11 ab2 ~@3",
  F: "~@3 ab2 ~@12", G: "~@10 ab2 ~@5", H: "~ eb2 ~@5 ab2 ~@6 eb2 ~", I: "~@4 ab2 ~@6 ab2 ~@4",
  J: "~@3 ab2 ~@5 eb2 ~@6", K: "ab2 ~@5 eb2 ~@6 db3 ~@2", L: "~@3 db3 ~@12", M: "~@11 db3 ~@4",
  N: "~ ab2 ~@6 db3 ~@5 ab2 ~", O: "~@5 eb3 ~@5 eb3 ~@4", P: "~@15 eb3", Q: "~@5 bb2 ~@6 eb3 ~@3", R: "~@2 bb2 ~@13",
  S: "~@7 eb3 ~@5 ab2 ~@2", T: "~@4 eb3 ~@6 ab2 ~@4", U: "~ e3 ~@6 e3 ~@7", V: "~@6 ab2 ~@5 eb3 ~@3",
  W: "~@3 ab2 ~@5 bb2 ~@6", X: "bb2 ~@15", Y: "~@7 bb2 ~@6 eb2 ~", Z: "~@4 bb2 ~@6 eb2 ~@4", AA: "~ d3 ~@6 d3 ~@7",
  AB: "eb3 ~@5 bb2 ~@6 eb3 ~@2", AC: "~@3 bb2 ~@12", AD: "~@8 eb3 ~@5 bb2 ~", AE: "~@5 eb3 ~@5 bb2 ~@4",
  AF: "~@2 ab2 ~@5 ab2 ~@7", AG: "~@3 bb2 ~@6 ab2 ~@5", AH: "ab2 ~@15", AI: "~@5 eb3 ~@6 bb2 ~@3", AJ: "~@7 bb2 ~@8",
  AK: "~@4 bb2 ~@11", AL: "~@2 eb3 ~@6 ab2 ~@5 eb3", AM: "~@6 ab2 ~@6 e3 ~@2", AN: "~@3 e3 ~@12", AO: "~@11 eb3 ~@4",
  AP: "~ ab2 ~@6 eb3 ~@5 ab2 ~", AQ: "~@5 bb2 ~@5 bb2 ~@4", AR: "~@3 bb2 ~@5 eb2 ~@6", AS: "bb2 ~@5 eb2 ~@6 d3 ~@2",
// … 159 more lines

More by Aqua