Strudelify
0:00/0:00
// the licc — Adam Neely Nahre Sol Ben Levin and David Bruce;With original content by Troy Angulo
// 180 bpm, 4/4, key F 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 (5/8 at bar 1, 3/4 at bar 8, 5/8 at bar 9, 3/4 at bar 16, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5826938; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 217 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(180/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 · piano
const piano = note("<~@194 A@4 B C D E@2 ~@14>".pickRestart({
  A: "[~@2 [bb3,eb4]@2 f4@2 gb4@2 ab4@2 [ab3,f4]@3 db4@2 [eb2,bb2,gb3,ab3,eb4]@2 ~@3 f4@2 gb4@2 ab4@2 [ab3,f4]@3 db4@2 [eb2,bb2,gb3,ab3,eb4]@2 ~@2 [bb3,eb4]@2 ~ gb4@2 ab4@2 [ab2,gb3]@4 ~ [eb2,bb2,gb3,ab3,eb4]@2 ~@2 [bb3,eb4]@2 f4@2 ~ ab4@2 [ab2,gb3]@4 db4@2, ~@2 [gb2,db3]@7 ~ [ab2,gb3]@5 ~@4 [gb2,db3]@7 [ab2,gb3]@5 ~@4 [gb2,db3]@7 ~@9 [gb2,db3]@7 ~@6, ~@19 [bb3,eb4]@2 ~@16 f4@2 ~@3 [ab3,f4]@3 ~ db4@2 ~@7 gb4@2 ~ [ab3,f4]@3 ~@3]/4", // Eb5 Db Ebm Db Ebm Eb5 Ab7 Ebm …
  B: "[eb2,bb2,gb3,ab3,eb4]@2 ~ [bb3,eb4]@2 f4@2 gb4@2 ~ [ab2,gb3]@4 db4@2, ~@3 [gb2,db3]@6 ab4@2 ~@5, ~@10 [ab3,f4]@3 ~@3", // Ebm Eb5 Ab7 Gb5 Db
  C: "[eb2,bb2,gb3,ab3,eb4]@2 ~ [bb3,eb4]@2 f4@2 gb4@2 ab4@2 [ab3,f4]@3 db4@2, ~@3 [gb2,db3]@7 ~ [ab2,gb3]@5", // Ebm Eb5 Db Gb5 Ab7
  D: "[eb2,bb2,gb3,ab3,eb4]@2 ~@3 f4@2 gb4@2 ab4@2 [ab3,f4]@3 db4@2, ~@4 [gb2,db3]@7 [ab2,gb3]@5, ~@2 [bb3,eb4] ~@5", // Ebm Db Gb5 Ab7 Eb5
  E: "[[eb2,bb2,gb3,ab3,eb4]@2 ~@2 [bb3,eb4]@2 ~ gb4@2 ab4@2 [ab2,gb3]@4 ~ [eb2,bb2,gb3,ab3,eb4]@2 ~@2 [gb2,db3,bb3,eb4]@2 ~@10, ~@4 [gb2,db3]@7 ~@21, ~@6 f4@2 ~@3 [ab3,f4]@3 ~ db4@2 ~@15]/2", // Ebm Eb5 Ab7 Ebm Ebm7 Gb5 Db
})).s("gm_piano").gain(0.4)

// chords · piano · soft notes
const piano_soft = note("<~@204 A B@4 C@8>".pickRestart({
  A: "~@5 db6@3", B: "[~ ab5@7 db6@7 eb6@7 ~ f6@7 eb6@7 db6@7 eb6@7 f6@7 ~@6]/4",
  C: "[~@2 db6@7 db6@14 c6@14 ~ gb5@14 [db3,db6]@62 ~@14]/8", // Db
})).s("gm_piano").gain(0.25)

// chords · accordion
const accordion = note(`<
  A@2 ~@6 B@2 C@2 D@3 E@2 F@2 G@5 ~@4 H@2 I@5 J@5 K@2 L@2 M@4 ~@11 N@6 O@7 P@2 Q@7 R S@8 T@2 U@7 ~@41 V@5 ~@2 W X Y Z AA
  AB AC AD ~ AE AF AG AH AI AJ@2 AK AL AM AN AO AP AQ AR AS AT@2 ~@3 AU AV AW AX AY AZ BA BB BC BD BE ~@6 BF@4 BG BH BI
  BJ BK ~@14
>`.pickRestart({
  A: "[~@7 [e3,c4,d4,g4]@20 ~@5]/2", B: "[~ d4@4 e4@2 f4@20 e4@2 d4@2 c4]/2", C: "[d4 c4@2 b3@2 a3@4 g3@20 ~@3]/2",
  D: "[~@7 d4@4 e4@2 f4@20 e4@2 d4@2 c4 d4 c4@2 bb3@2 c4 d4 c4@2 bb3]/3",
  E: "[c4 bb3@2 a3@2 f3@4 f3@12 d3@2 e3@2 f3@2 g3@4 e3]/2",
  F: "[f3 e3@2 d3@2 e3 f3 e3@2 d3@2 e3@2 f3@2 g3@2 a3@2 g3@2 f3@2 e3@2 d3@2 c3@2 d3@3]/2",
  G: "[~ e3 d3 c3@4 d3@2 e3 f3 e3@2 d3@2 c3@2 d3@2 e3@2 f3@2 g3@4 e3 f3 e3@2 d3@2 e3 f3 e3@2 d3@2 e3@2 f3@2 g3@2 a3@2 g3@2 f3@2 e3@2 d3@2 c3@2 d3@20 ~@3]/5",
  H: "[~@13 [bb3,a4]@19]/2", I: "[~ [f4,e5]@20 [e4,c5]@10 [d3,a3,f4,a4,d5]@30 [bb2,f3,f4,a4,c5]@19]/5",
  J: "[~@7 [g2,d3,c4,e4,f4,a4]@20 [e2,b2,d3,gb4,g4,a4,d5]@24 [g4,ab4,bb4,eb5]@20 a4@3 ab4@3 a4@3]/5", // Dm7 Em7 Eb
  K: "[ab4@3 a4@3 e4@3 g4@3 f4@3 [d3,f4]@2 [e3,g4]@2 [f3,a4]@2 [g3,bb4]@4 [e3,g4] [f3,a4] [e3,g4]@2 [d3,f4]@2 [e3,g4]]/2", // Dm Em F Gm Em F Em Dm …
  L: "[[f3,a4] [e3,g4]@2 [d3,f4]@2 [e3,g4]@2 [f3,a4]@2 [g3,bb4]@2 [a3,c5]@2 [g3,bb4]@2 [f3,a4]@2 [e3,g4]@2 [d3,f4]@2 [c3,e4]@2 [d3,f4]@4 [e3,g4] [d3,f4] [c3,e4]@3]/2", // F Em Dm Em F Gm Am Gm …
  M: "[~ [f3,a4]@2 [e3,g4]@2 [d3,f4]@2 [c3,e4]@4 [d3,f4]@2 [e3,g4]@2 [f3,a4]@2 [g3,bb4]@4 [e3,g4] [f3,a4] [e3,g4]@2 [d3,f4]@2 [e3,g4] [f3,a4] [e3,g4]@2 [d3,f4]@2 [e3,g4]@2 [f3,a4]@2 [g3,bb4]@2 [a3,c5]@2 [g3,bb4]@2 [f3,a4]@2 [e3,g4]@2 [d3,f4]@2 [c3,e4]@2 [f3,a4]@2 [e3,g4]@2 [d3,f4]@2 [c3,e4]@4 ~@3]/4", // F Em Dm C Dm Em F Gm …
  N: "[~@11 a3@18 b4@13 ~@14 e5@4 ~ gb5@2 e5@2 g5@4 gb5@3 e5@4 c5@4 c4@12 d4@2 e4@2, ~@29 g2@9 ~@5 gb5@13 ~@40, ~@47 g2@18 g2@27 ~@4]/6",
  O: "[~ g4@2 b4@2 [a2,d5]@9 e5@9 b4@9 e5@9 g5@4 ~ e5@4 ~@3 g5@3 e5@3 b5@13 ~@5 a2@9 d6@3 c6@3 b5@3 a5@2 g5@2 ~ b5@4 ~@8, ~@23 a2@18 f2@18 ab2@18 ~@18 a2@17, ~@73 c6@13 ~@26]/7", // D5
  P: "[~@4 [d5,d6]@3 [db5,db6]@3 [b4,b5]@4 ~ [a4,a5]@4 a5@2 ab5@2 ~ [b4,b5]@8, ~ a2@18 ab3@13]/2", // D Db B A B
  Q: "[~ [a4,a5]@4 [a4,a5]@13 ~ g4@4 [a2,a4]@18 a3@18 ab3@18 ~@18 d3@9 a4@4 ~ b4@2 a4, ~@5 a3@18 ~@18 [f4,f5]@36 f4@13 ~ b4@13 ~@8, ~@86 e3@9 ~@9 c3@8]/7", // A F
  R: "~ c5@4 b4@3 a4@4 f4@4, ~ a2@15",
  S: "[~@12 f4 ~ g4 f4 ~ a4 c5 ~ e5 g5@9 a5@9 e5@9 a5@9 d5@4 ~ b4@4 ~@3 gb5@3 d5@3 b3@9 ~@18 a5@3 g5@3 gb5@3 e5@2 d5@2 ~ e5@4 ~@8, f3@13 ~@8 d3@18 g3@18 f3@18 a5@13 ~ b5@13 ~@26, ~@3 f2@18 ~@63 c4@9 d4@35]/8",
  T: "[~@4 [g5,g6]@3 [gb5,gb6]@3 [e5,e6]@4 ~ [d5,d6]@4 d6@2 c6@2 ~ [e5,e6]@8, ~ g3@31]/2", // G Gb E D E
  U: "[~ [d5,d6]@4 d6@2 c6@2 ~ [e5,e6]@9 [d5,d6]@4 [d5,d6]@18 a3@18 g3@18 a4@18 ~@9 d3@8, ~@5 d3@36 [a4,a5]@36 f3@27 ~@8, ~@95 a4@17]/7", // D E D A
  V: "[~@8 [eb3,f3,c5]@5 [eb3,c5]@5 ~ [f3,c5]@5 ~@5 bb3@11 [eb3,bb4]@5 [gb2,bb4]@5 ~ [ab2,bb4]@5 [eb3,ab3,gb4]@16 ~@8, ~@19 eb3@11 ~@10 db4@16 ~@24, ~@3 [db3,ab4]@2 ~@5]/5", // F7 Cm F5 Eb5 Gb Absus2 Ab7 Db5
  W: "~@5 [e3,e4,g4] ~ [e3,e4,g4] ~@3 g3 ~ [b4,e5] ~ b3", X: "~@3 g3 ~ [gb3,gb4,a4] ~ [gb3,gb4,a4] ~@2 e4 ~ gb5 ~ c4 ~",
  Y: "~@2 a3 ~ [g3,g4,b4] ~ [g3,g4,b4] ~@2 b3 ~ [d5,g5] ~ d4 ~@2", // G G5
  Z: "~ b3 ~ [eb3,gb4,a4] ~ [eb3,gb4,a4] ~@3 e4 ~ gb5 c4 ~@3", // Ebdim
  AA: "a3 ~ [e3,e4,g4] ~ [e3,e4,g4] ~@3 g3 ~ [b4,e5] ~ b3 ~@2 g3", // Em E5
  AB: "~ [gb3,gb4,a4] ~ [gb3,gb4,a4] ~@3 e4 ~ gb5 ~ c4 ~@3 a3", // Gbm
  AC: "[g3,g4,b4] ~ [g3,g4,b4] ~@3 b3 ~ [d5,g5] ~ d4 ~@3 b3 ~", AD: "[eb3,gb4,a4]!2 ~@3 e4 ~ gb5 ~ c4 ~@3 a3 ~@2",
  AE: "~@13 [e3,e4,g4] ~ [e3,e4,g4]", AF: "~@3 g3 ~ [b4,e5] ~ b3 ~@2 g3 ~ [gb3,gb4,a4] ~ [gb3,gb4,a4] ~",
  AG: "~@2 e4 ~ gb5 ~ c4 ~@2 a3 ~ [g3,g4,b4] ~ [g3,g4,b4] ~@2", AH: "~ b3 ~ [d5,g5] ~ d4 ~@3 b3 ~ [eb3,gb4,a4]!2 ~@3",
  AI: "e4 ~ gb5 ~ c4 ~@3 a3 ~ [g3,g4,b4] ~ [g3,g4,b4] ~@3", // G
  AJ: "[~ [gb3,gb4,a4] ~ [gb3,gb4,a4] ~@5 [gb3,gb4]@2 [d3,d4]@2 [gb3,gb4]@2 ~ [d4,d5] ~@11 [e3,g3,e4] ~ [e3,g3,e4] ~, ~@15 [a3,a4]@2 ~@15]/2", // Gbm Gb D Gb D Em A
  AK: "~@3 [b3,b4] ~@7 [gb3,a3,gb4] ~ [gb3,a3,gb4] ~@2", AL: "~@3 [a3,gb5] ~@6 [g3,b3,g4] ~ [g3,b3,g4] ~@3",
  AM: "~@2 [d4,d5] ~@6 [gb3,a3,gb4] ~ [gb3,a3,gb4] ~@4", AN: "~ [gb4,gb5] ~@6 [e3,g3,e4] ~ [e3,g3,e4] ~@5",
  AO: "[b3,b4] ~@7 [gb3,a3,gb4]!2 ~@5 [gb4,gb5]", AP: "~@7 [g3,b3,g4] ~ [g3,b3,g4] ~@4 [d4,d5] ~",
  AQ: "~@6 [gb3,a3,gb4] ~ [gb3,a3,gb4] ~@4 [gb4,gb5] ~@2", // Gbm Gb
  AR: "~@5 [e3,g3] ~ [e3,g3] ~ [gb5,g5] [d5,g5,a5,b5] [d5,g5,b5]@3 [d5,g5,b5]@2", // Em Gmaj7 G
  AS: "~@4 [f3,a3] ~ [f3,a3] ~@5 e4 ~@3, [a4,c5,f5,g5] ~", // F
  AT: "[[g3,b3]!2 ~@5 g5 [f5,g5,a5,b5,c6] ~ [f5,g5,a5,c6]@2 [f5,g5,a5,c6]@3 a5@2 gb5@2 a2 c6@2 [a2,f6] ~ c3 ~ f3 ~@5, ~@19 a5@2 ~@11, ~@20 f2 ~@11]/2", // G F Dm
  AU: "~@11 g4 e4 ~ [g2,g4] ~", AV: "[e2,b4] ~ [g2,e5] ~ b2 ~ e3 ~ b3 ~ a4 ~ f4 [a2,a4] ~ [f2,c5]",
  AW: "~ [a2,f5] ~ c3 ~ gb3 ~ c4 ~ f4 ~ d4 ~ [f2,f4] ~ [d2,a4]", // Dm F D5
  AX: "[f2,d5] ~ a2 ~ d3 ~ a3 ~ g4 ~ eb4 ~ [g2,g4] ~ [eb2,bb4] ~", // Dm G Eb5
  AY: "[g2,eb5] bb2 ~ eb3 ~@3 eb4 ~ c4 ~ [eb2,eb4] ~ [c2,g4] ~ [eb2,c5]", // Cm Eb C5 Cm
  AZ: "~ g2 ~ c3 g4 ~ f4 ~ db4 ~ [gb2,f4] ~ [db2,ab4] ~ [gb2,db5] ~", // Gbmaj7 Db5 Gb5
  BA: "ab2 ~ db3 ~@2 db4 ~ bb3 ~ [db2,db4] ~ [bb1,f4] ~ [db2,bb4] ~ f2, ~@2 ab3 ~@5", // Db Bb5 Gb
  BB: "~ bb2 ~ f4 ~ eb4 ~ b3 [e2,eb4] ~ [b1,gb4] ~ [e2,b4] ~ gb2 ~", // Emaj7 B5 E5
  BC: "b2 ~ gb3@2 b4 ~ g4 ~ [b2,b4] [g2,d5] ~ [b2,g5] ~ d3 ~ g3", // B G5 Em
  BD: "~ d4@2 a2@2 ab2@2 a2@2 ab2@2 eb5 f2@2 ab2@2, ~@3 gb4 ~ eb4 ~ gb4 ~ a4 ~ a2@2 ~@3", BE: "gb2@2 f2 ~@13",
  BF: "[~@2 ab4@2 c5@2 eb4@2 db5@2 [db3,db4]@5 [ab3,gb4]@2 ~@3 c5@2 eb4@2 db5@2 [db3,db4]@5 [c4,gb4]@2 ~@2 ab4@2 ~ eb4@2 db5@2 [db3,db4]@5 [ab3,gb4]@2 ~@2 ab4@2 c5@2 ~ db5@2 [db3,db4]@5 ~, ~@2 gb3@7 ~@10 gb3@7 ~@9 gb3@7 ~@9 gb3@7 ~@6, ~@19 ab4@2 ~@16 c5@2 ~@16 eb4@2 ~@7]/4", // Db Ab7 Db Cdim Db Ab7 Db
  BG: "[c4,gb4]@2 ~ ab4@2 c5@2 eb4@2 ~ [db3,db4]@5 ~, ~@3 gb3@6 db5@2 ~@5", // Cdim Db
  BH: "[ab3,gb4]@2 ~ ab4@2 c5@2 eb4@2 db5@2 [db3,db4]@5, ~@3 gb3@7 ~@6", // Ab7 Db
  BI: "[c4,gb4]@2 ~@3 c5@2 eb4@2 db5@2 [db3,db4]@5, ~@4 gb3@7 ~@5, ~@2 ab4 ~@5", // Cdim Db
  BJ: "[ab3,gb4]@2 ~@2 ab4@2 ~ eb4@2 db5@2 [db3,db4]@5, ~@4 gb3@7 ~@5, ~@3 c5 ~@4", BK: "c4@2 [gb3,ab4] ~@5, gb4 ~@7",
})).s("gm_accordion").gain(0.3)

// chords · accordion · soft notes
const accordion_soft = note("<~@58 A@2 ~@39 B@7 ~@27 C D E F ~@36 G H I J K ~@10 L M ~ N O ~@19 P@5>".pickRestart({
  A: "[~@9 bb3@18 ~@5]/2", B: "[~ [a2,a3,gb4]@10 [b2,b3,gb4]@10 ~ [b2,b3,gb4]@82 ~@8]/7",
  C: "[f3,c5]@5 [eb3,c5]@5 ~ [f3,c5]@5", D: "[db3,ab4]", E: "[eb3,bb4]@5 [gb2,bb4]@5 ~ [ab2,bb4]@5", F: "[eb3,gb4]",
  G: "~@12 c4 ~ g4 ~", H: "e4 ~ [g2,g4] ~ [e2,b4] [g2,e5] ~ b2 ~ e3 ~ b3@2 a4 ~ f4",
  I: "~ [a2,a4] ~ [f2,c5] ~ [a2,f5] ~ c3 f3 ~ c4@2 b4 ~ g4 ~", // A F5 Dm
  J: "[b2,b4] ~ [g2,d5] ~ [b2,g5] ~ d3 ~ g3 d4 ~ gb4 ~ eb4 ~ [gb2,gb4]", // B G5 Em Gb
  K: "~ [eb2,a4] ~ [gb2,eb5] ~ a2 ~ eb3 ~ a3 ~@6", L: "~ a6@2 ~ a6@2 a6@2 ~ f6@3 ~@4", M: "~@8 gb6@2 a6 ~ eb7 ~@3",
  N: "~@7 eb7", O: "bb6 db7 b6 ~@5", P: "[~@4 [db5,ab5]@65 ~@11]/5",
})).s("gm_accordion").gain(0.15)

// other · violin
const violin = note(`<
  A@2 ~@20 B@5 C@2 D E@5 F@3 G@2 H@8 ~@18 I@6 J@6 K@2 L@5 M@3 N@2 O@2 P@2 Q@2 R S@2 ~@8 T U V W T U V X ~@37 Y Z AA ~ AB
  AC AD ~@2 AE@2 AF AG AH@2 AI@3 AJ AK AL@2 AM@2 ~ AN AO AP AQ AR AS AT AU@2 ~@14 AV@2 AW@8 ~@7
>`.pickRestart({
  A: "[~@7 c5@20 ~@5]/2",
  B: "[~@9 d4@2 e4@2 f4@2 g4@4 e4 f4 e4@2 d4@2 e4 f4 e4@2 d4@2 e4@2 f4@2 g4@2 a4@2 g4@2 f4@2 e4@2 d4@2 c4@2 d4@4 e4 d4 c4@4 f4@2 e4@2 d4@2 c4@4 d4@2 e4@2 f4@2 g4@4 e4]/5",
  C: "[f4 e4@2 d4@2 e4 f4 e4@2 d4@2 e4@2 f4@2 g4@2 a4@2 g4@2 f4@2 e4@2 d4@2 c4@2 d4@3]/2",
  D: "~ e4 d4 c4@4 f4@2 e4@2 d4@2 c4@3",
  E: "[~ g4@2 a4@2 bb4@2 c5@4 a4 bb4 a4@2 g4@2 a4 bb4 a4@2 g4@6 ~@4 d5@2 e5@2 f5@2 g5@2 a5@2 g5@2 f5@2 e5@2 d5@2 c5@2 d5@4 e5 d5 c5@4 f5@2 e5@2 d5@2 c5@4 d5@2 e5@2 f5@2 g5@3]/5",
  F: "[~ e5 f5 e5@2 d5@2 e5 f5 e5@2 d5@2 e5@2 f5@2 g5@2 a5@2 g5@2 f5@2 e5@2 d5@2 c5@2 a4@2 b4 a4 g4@2 gb4@2 g4@2 a4@6 ~]/3",
  G: "[~@3 c6@2 eb6@2 c6@2 bb5@2 g5@2 f5@2 eb5@2 c5@2 bb4@2 g4@2 f4@3 ~@6]/2",
  H: "[~@15 a4@2 a4@2 a4@2 g4@2 g4@2 a4@2 a4@2 a4@2 bb4@2 bb4@2 c5@2 c5@2 c5@2 d5@2 d5@2 c5@2 c5@2 c5@2 d5@2 d5@2 c5@2 c5@2 c5@2 d5@2 d5@2 f5@2 f5@2 f5@2 e5@2 e5@2 f5@2 f5@2 f5@2 g5@2 g5@2 f5@2 f5@2 f5@2 e5@2 e5@2 f5@2 f5@2 f5@2 g5@2 g5@2 a5@2 a5@2 a5@2 g5@2 g5@2 c6@2 c6@2 c6@2 c6@2 c6@2 ~@3]/8",
  I: "[~@7 c4@36 e4@9 f4@9 e4@9 g3@9 f4@17]/6",
  J: "[~ gb4@9 a3@9 e4@36 c5@9 b4@9 [e4,a4]@9 f4@9 b4@4 ~, ~@55 e4@18 ~@23]/6", // A5
  K: "[c5@2 b4@2 ab4 ~ f4 e4 ~ f4 e4 ~ d4 e4@9 ~@9 c5]/2",
  L: "[~ b4 a4 ~ a4@2 e4@2 b4@2 a4@2 ~ c5@2 a4@2 f4@9 [f4,e5]@9 [f4,d5]@9 [f4,d5]@9 d4@9 [d4,b4]@9 [d4,d5]@9]/5", // Fmaj7 Dm G D
  M: "[[d4,b4]@9 [e4,a4]@4 ~ [e4,a4]@4 ~@3 [e4,a4]@3 [e4,a4]@3 [e4,a4]@18 [e4,c5]@3]/3", // G A5 C
  N: "[~@2 [e4,c5]@4 ~@3 [e4,c5]@3 [e4,c5]@3 [e4,d5]@9 [g4,e5]@8]/2", // C E7 C
  O: "[~@4 g5@3 gb5@3 e5@4 ~ d5@4 d5@2 c5@2 ~ e5@8]/2", P: "[~ d5@4 d5@2 c5@2 ~ e5@9 d5@4 d5@2 c5@2 ~ e5@2 d5@2]/2",
  Q: "[gb5@2 e5@2 ~ g5@2 gb5@2 a5@9 gb5@9 e5@2 d5@2 ~]/2", R: "gb5@13 ~@3",
  S: "[a4@3 ab4@3 f4@4 ~ e4@4 e4@2 d4@2 ~ f4@9 e4@3]/2", T: "c5@5 c5@5 ~ c5@5", U: "ab4", V: "bb4@5 bb4@5 ~ bb4@5",
  W: "gb4@11 bb4@5", X: "gb4", Y: "~@15 e4", Z: "~@14 e4 ~", AA: "~@13 e4 ~@2", AB: "~@4 [d5,a5]@3 ~@4 [e5,g5] ~@4",
  AC: "~@3 [b4,g5]@4 ~@3 [eb5,gb5] ~@5", AD: "~@9 e4 ~@6", AE: "[~@13 gb4@2 ~ d5 ~@7 e4 ~@3 c4 ~@3, ~@15 a4@2 ~@15]/2",
  AF: "e4 ~@2 g4 ~@3 b4 ~@5 [a4,gb5]@3", AG: "~ [a4,gb5]@2 ~ [d4,d5] ~@5 g4 ~ [b4,e5]@4, ~@3 [a4,gb5]@2 ~@11",
  AH: "[[b4,e5]@2 [b4,e5]@2 ~@3 bb4@2 b4@2 bb4@2 [d4,b4]@2 a4@2 g4@2 gb4@2 e4 ~ b3 e4 ~ gb4 ~ b4@2 a4@2, ~ b4 ~@6, ~@2 eb4 ~@13, ~@5 d4@8 ~@19]/2", // E5 G
  AI: "[g4@2 a4@2 b4 ~@3 [g3,d4] [a4,gb5]@4 [a4,gb5]@2 [a4,gb5]@2 [d4,d5] ~@3 d5 ~ g5@2 a5@2 ~ a5@2 g5@2 a5@2 b5 ~ b4 ~ d5 ~ gb5 ~ b5 ~@5, ~@9 d4 ~@13 a4@11 ~@14, ~@27 b5@2 ~@19]/3", // G5 D
  AJ: "~ [g3,e4] ~ [g3,e4] ~@5 e5 ~@6", AK: "[a3,f4]@2 [a3,f4]@2 ~@4 f5 ~@7",
  AL: "[[b3,g4] [b3,g4]@2 ~@4 [c4,a4]@2 [c4,a4]@2 ~@4 a4@2 f4@2 ~ c5@2 f5 ~@7 e4@2, ~@19 a4@2 ~@11]/2", // Em F
  AM: "[eb4@2 e4@2 ~ e4@2 b3@2 d4@2 c4@2 a3@2 ab3@2 a3@2 ab3@2 ~@11, ~@2 eb4 ~@13]/2",
  AN: "~@11 b5@2 a5 b5@2, ~@11 a5 ~@4", AO: "b5@2 ~@8 [g4,a4] ~ g4 a4 ~ g4, a5 ~@15",
  AP: "a4 e4 f4 ~@6 g3 a3 g3 a3 ~ g3 a3", AQ: "e4 gb4 c4@2 eb4@2 db4@2 a3 g3 ~ [g3,a3] ~ bb3 g3 ~",
  AR: "[d4,eb4] bb3@2 db4@2 b3@2 ab4 g4 ~ [g4,ab4] ~ ab4 g4 ~ d5", // Ebmaj7 Abmaj7
  AS: "eb5 bb4@2 ~ b4@2 f4 ~@2 f4@2 f4@2 ~ [d4,bb4] ~, ~@3 db5@2 ~@11", // Gm
  AT: "bb4@2 ~ bb4@2 [gb4,f5] ~@2 f5@2 ~ f5@2 [db5,bb5] ~@2", // Gbmaj7 Gb
  AU: "[bb5@2 bb5@2 ~ [g5,eb6] ~ eb6@2 ~ eb6@2 [b5,ab6] ~@2 ab6@2 ab6@2 ~@13]/2", AV: "[~ c5@7]/2", AW: "ab5/8",
})).s("gm_violin").gain(0.45)

// other · violin · soft notes
const violin_soft = note(`<
  ~@49 A ~@6 B C@8 D ~@33 E@7 ~@46 F G H ~ I J K L M N ~@23 O ~ P Q R S ~@21 T@5
>`.pickRestart({
  A: "~ g4@2 g4@2 g4@2 e4@4 ~@5", B: "~@5 eb4@9 ~@2",
  C: "[~@7 a4@13 ~ g4@4 f4@9 g4@9 e4@9 a3@9 b3@9 ~@9 b3@18 c4@27 ~@4]/8", D: "~@5 a3@9 ~@2", E: "[~ b3@103 ~@8]/7",
  F: "~@7 e4 gb4@3 a4@2 d4@2 ~", G: "~@3 g4@2 b4 d4 ~", H: "~@5 a4@4 b4@2 d4@2 ~@3", I: "~@7 [d5,a5]@2 [d5,a5]@2 ~@5",
  J: "~@7 [b4,g5] [b4,g5]@2 ~@4 c5@2", K: "eb4 gb4@2 a4 eb4 ~@3", L: "~@3 gb4@2 ~@6 g4@2 ~@3",
  M: "~@2 g4@2 ~@6 [e4,gb4] ~@5", N: "~ a4@3 a4@2 a4@3 gb4@2 d4@2 ~@3",
  O: "~@4 e6@4 [e6,f6,gb6] [g6,ab6,a6,bb6] [b6,c7,db7] [d7,eb7] ~@4, ~@11 e7@2 ~@3", P: "~@2 gb4@2 a4 ~ eb5@2 b5 ~@7",
  Q: "~ f6@2 ~ f6@2 f6@2 ~ d6@3 ~@4", R: "gb5@2 a5 ~ eb6@2 ~@2 gb6@2 ~ gb6@2 gb6@2 ~",
  S: "eb6@3 eb6 [e6,f6,gb6] [g6,ab6,a6] [bb6,b6,c7] [db7,d7] ~@8, ~@7 eb7@2 ~@7", T: "[~@4 db5@65 ~@11]/5",
})).s("gm_violin").gain(0.15)

// other · pizzicato strings
const pizzicato_strings = note(`<
  ~@3 A B@2 C D E@5 F@2 ~@100 G H G H G H G H G H G H G H G H ~@2 G H G H ~@3 I J K J L@2 ~@71
>`.pickRestart({
  A: "~ d4@2 e4@2 f4@4 ~@7", B: "[~@15 d4@2 e4@2 f4@4 ~@2 d4@2 e4@2 f4@3]/2", C: "~@3 a4@2 g4@2 f4@2 e4@2 d4@5",
  D: "~ f4@4 ~@11",
  E: "[~@3 d4@2 e4@2 f4@4 ~@2 d4@2 e4@2 f4@4 ~@2 a4@2 g4@2 f4@2 e4@2 d4@6 f4@4 ~@2 d4@2 e4@2 f4@4 ~@2 d4@2 e4@2 f4@4 ~@2 a4@2 g4@2 f4@2 e4@2 d4@6 f4@3]/5",
  F: "[~@3 d4@2 e4@2 f4@4 ~@2 d4@2 e4@2 f4@4 ~@2 bb3@2 c4@2 d4@4 ~]/2", G: "db4@4 ab3@2 ~@5 db4@3 ab3@2",
  H: "~@5 db4@4 ab3@2 ~@5", I: "~@4 db4@2 ab3 ~", J: "~@3 db4@3 ab3@2 ~@5 db4@3", K: "~ ab3@2 ~@5 db4@4 ab3@2 ~@2",
  L: "[~ ab3@2 ~@5 db4@11 ~@13]/2",
})).s("gm_pizzicato_strings").gain(0.3)

// other · cello
const cello = note(`<
  A@2 ~@55 B@8 C D@2 E@5 F@8 G@4 H@5 I@4 J@3 K@2 ~@8 L M N O L M N O ~@37 P Q R ~ S T ~@3 U@2 V W X Y Z AA AB AC@3 AD AE
  AF ~ AG AH ~@2 AI@2 ~@11 AJ@4 AK AL AM AN@2 ~@14
>`.pickRestart({
  A: "[~@7 e4@20 ~@5]/2", B: "[~@7 d3@18 f3@9 e3@9 f3@9 a3@9 g3@9 ~@9 g3@18 e3@27 ~@4]/8", C: "~@5 f3@9 ~@2",
  D: "[~@7 e3@18 g3@4 ~ e3@2]/2", E: "[~@5 g3@3 e3@3 b3@18 c4@9 ~@9 a3@33]/5",
  F: "[~@3 b3@18 c4@36 a3@18 b3@18 c4@9 ~@9 c4@9 b3@8]/8",
  G: "[~ c4@9 b3@9 a3 ~ g3 e3 ~ c3 e3 ~ f3 g3@9 b3@9 a3@9 g3@9]/4",
  H: "[b3@9 [f3,c4]@9 [f3,c4]@9 [f3,c4]@9 [f3,c4]@9 [f3,d4]@9 [f3,d4]@9 [f3,d4]@9 [f3,d4]@8]/5", // F5 Dm
  I: "[~ [c3,c4]@9 [c3,c4]@9 [c3,c4]@9 [c3,c4]@9 [c3,g3]@9 [c3,a3]@9 d3@2 c3@2 ~ e3@2 d3@2]/4", // C C5 F
  J: "[a2@9 [d2,a2]@13 ~ a2@4 d3@18 d3@3]/3", K: "[~@2 e3@4 f3@4 ~ g3@4 e3@9 c3@4 ~ d3@3]/2", L: "f3@5 eb3@5 ~ f3@5",
  M: "db3", N: "eb3@5 gb2@5 ~ ab2@5", O: "eb3", P: "~@15 e3", Q: "~@14 e3 ~", R: "~@13 e3 ~@2", S: "~@4 b3@3 ~@9",
  T: "~@6 a3 ~", U: "[~@11 d3@2 gb3@2 ~ d4 ~@7 [b2,g3]@2 [b2,g3]@2 ~@4, ~@15 a3@2 ~@15]/2",
  V: "b3 ~@6 [gb3,a3]@2 [gb3,a3]@2 ~@4 gb4", W: "~@6 [b2,g3]@2 [b2,g3]@2 ~@4 d4 ~",
  X: "~@5 [gb3,a3]@2 [gb3,a3]@2 ~@4 gb4 ~@2", Y: "~@5 [g2,e3]@2 [g2,e3]@2 ~@3 b3 ~@3",
  Z: "~@4 [gb3,a3]@2 [gb3,a3]@2 ~@3 gb4 ~@4", AA: "~@3 [b2,g3]@2 [b2,g3]@2 ~@4 d4 ~@4",
  AB: "~@2 [gb3,a3]@2 [gb3,a3]@2 ~@4 gb4 ~@5", // Gbm
  AC: "[~ e3@2 gb3@2 g3@2 a3@2 gb3 ~@3 d3@2 e3@3 f3@2 g3@2 a3@2 f3 ~@3 e3@2 g3@3 a3@2 b3@2 c4@2 a3 ~@3 f3@2 a3@3]/3",
  AD: "~ f3@2 ~ c4@2 f4 ~@7 a3 b3, ~@3 a3@2 ~@11", AE: "a3 b3 ~ a3 b3 f3 g3 ~@6 g3 a3 ~",
  AF: "[g3,a3] ~ g3 a3 ~ [e3,gb3] ~@10", AG: "~@6 eb4 e4, ~@11 e4@2 ~@3", AH: "eb4 e4 b3 d4 c4 a3 ~@2",
  AI: "[~@7 c4@2 b3@2 c4@2 b3@2 c4@2 ~@15]/2",
  AJ: "[~@2 ab3@2 bb3@2 c4@2 db4@2 ab3@3 f3@2 gb3@2 ~@3 bb3@2 c4@2 db4@2 ab3@3 f3@2 eb4@2 ~@2 ab3@2 ~ c4@2 db4@2 ab3@4 ~ gb3@2 ~@2 ab3@2 bb3@2 ~ db4@2 ab3@4 f3@2, ~@19 ab3@2 ~@16 bb3@2 ~@7 f3@2 ~@7 c4@2 ~@7]/4",
  AK: "eb4@2 ~ ab3@2 bb3@2 c4@2 ~ ab3@4 f3@2, ~@9 db4@2 ~@5", AL: "gb3@2 ~ ab3@2 bb3@2 c4@2 db4@2 ab3@3 f3@2",
  AM: "eb4@2 ~@3 bb3@2 c4@2 db4@2 ab3@3 f3@2, ~@2 ab3 ~@5",
  AN: "[gb3@2 ~@2 ab3@2 ~ c4@2 db4@2 ab3@4 ~ eb4@2 ~@2 ab3@2 ~@10, ~@6 bb3@2 ~@7 f3@2 ~@15]/2",
})).s("gm_cello").gain(0.3)

// other · cello · soft notes
const cello_soft = note("<~@99 A B@6 ~@46 C D E F G H I J K L ~@16 M@3 N O P@2 Q@2 R S@2 T@2 U ~@19 V@5>".pickRestart({
  A: "~ d4@15", B: "[~ e4@87 ~@8]/6", C: "~@7 e3 gb3@3 a3@2 d3@2 ~", D: "~@3 g3@2 b3 d3 ~",
  E: "~@5 a3@4 b3@2 d3@2 ~@2 e2", F: "~@6 b2 ~@7 gb2 ~", G: "~@7 b3@2 b3 ~@3 g2 ~@2", H: "~@3 g3@2 b2 ~@2 g3 ~@5 c4@2",
  I: "eb3@2 gb3@4 a3@2 eb3@2 ~ e2@2 ~@3", J: "~@3 gb2@2 ~@6 g2@2 ~@3", K: "~@2 a2@2 ~@6 [e2,gb2] ~@5",
  L: "~ a3@3 a3@2 a3@3 gb3@2 ~@5",
  M: "[~@13 a3@2 ab3@2 a3@2 e3@2 ab3@2 f3@2 d3@2 db3@2 d3@2 ~ d3@2 a2@2 c3@2 bb2@2 g2@2 gb2@2 g2@2 gb2@2, ~@31 db3@2 ~@15]/3",
  N: "~ d2@2 f2@2 ~@11, g2 ~@7", O: "~ g3@2 ~ ab3@2 f3@2 e3@2 f3@2 e3@2 f3@2, ~@3 bb3@2 ~@11",
  P: "[c3@2 c3@2 ~ bb2@2 a2@2 bb2@2 a2@2 bb2@2 f2@2 ab2@2 gb2@2 eb2@2 ~ eb2@2 d2@2 eb2@2 d2@2, ~@4 db3@2 ~@17 d2@2 ~@7]/2",
  Q: "[eb2@2 d2@2 e2@2 eb2@2 ~ eb2@2 e2@2 ~@2 d2@2 c2@2 a2 ~@3 gb2 ~ eb2 ~@2 a2 ~ eb3@2, ~@8 e2@2 ~@17 gb2@2 ~@3]/2",
  R: "bb3 ~@15", S: "[~ f2@2 e2@2 f2@2 e2@2 f2@2 c2@2 eb2@2 ~ c2@4 c2@4 c2@4 c2@4, ~@15 db2@2 ~@15]/2",
  T: "[c2 c2@2 c2@4 c2@4 c2@4 c2@2 c2@2 c2@3 c2@4 c2@4 c2@2]/2", U: "c2@2 c2@3 c2@4 c2@4 ~@3",
// … 90 more lines