Strudelify
KeyF majorTempo180 bpm
0:00/0:00
// Medley — Michael Giacchino
// 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 (4/4 at bar 1, 3/4 at bar 75, 4/4 at bar 117, 3/4 at bar 165, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/3514546; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 252 bars on a 24-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.

// other · soprano sax · "Soprano Saxophone"
const soprano_sax = note(`<
  A@2 B C D E F@2 G@2 H I J K@4 L@2 M ~ N O@2 P@4 ~@2 Q@2 R@6 S T U V W X Y Z@2 AA AB AC AD AE@6 ~@3 AF AG AH AI@2 AJ@2
  AK@2 AL AM AN@2 AO AP AQ AR AS AT ~ AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR ~ BS BT BU
  BV ~ BW BX@3 BY@2 BZ CA@3 CB CC CD CE CF CG CH ~ CI CJ CK@2 CL@2 CM CN CO@2 ~@2 CP CQ CR ~ CS CT CU ~ CV CW CX CY CZ
  DA DB DC DD DE@2 ~ DF DG DH DI DJ ~@3 DK@5 DL DM@2 DN@2 DO DP@8 DQ@4 DR DS@3 DT DU@2 ~@11 DV@4 DW DX DY@3 DZ EA@2 EB@8
  ~ EC@2 ED@5 EE@2 EF EG@2 EH EI ~ EJ EK@2 EL@3 ~
>`.pickRestart({
  A: "[~@18 eb5@2 ~ f5@2 gb5@3 ab5@2 gb5@3 f5@2 eb5@3 ~@4 db5@2 d5@2 eb5@2 f5@2, ~@20 e5@2 ~@17 c5@2 ~@7]/2",
  B: "~ eb5@2 d5@3 c5@3 ~@2 ab4@2 bb4@2 ~ c5@3 eb5@3 ~@2, ~@15 b4@2 ~@7",
  C: "f5@3 gb5@2 d5@3 eb5@2 e5@3 f5@2 db5@3 d5@3 bb4@3", D: "~@17 g4@3 g4@2 ab4@2", E: "~ bb4@2 f4@3 ~@3 f4@8 ~@7",
  F: "[~@10 g4@3 g4@2 ab4@3 bb4@3 eb4@13 ~@14]/2", G: "[~@6 g4@3 ab4@2 bb4@3 c5@3 ~@2 g4@8 ~@12 g4@3 g4@3 g4@3]/2",
  H: "~@2 d5@3 ~@2 g4@2 bb4@15", I: "~@11 g4@3 f4@2 g4@3 ab4@2 bb4@3", J: "f4@3 ~@2 f4@8 ~@11",
  K: "[~@7 g4@2 g4@3 ab4@3 bb4@2 eb4@13 ~@15 g4@5 ~ bb4@2 c5@8 g4 ab4 f4@3 eb4@3 c4@2 eb4@3 f4@7 eb4@15, ~@63 g4 ~@32]/4",
  L: "[~@19 eb4@2 g4@2 bb4@2 c5@2 eb5@3 ~@18]/2", M: "~@2 c5@3 ~@2 bb4@3 ~@2 g4@3 ~@9",
  N: "~@3 f4@2 eb4@3 c4@2 bb3@13 ~", O: "[~@20 c4@3 b3@3 ~ bb3@3 a3@10 ~@8]/2",
  P: "[~@9 c4@2 eb4@2 g4@2 gb4@3 g4@5 eb4@5 ~@18 g4@8 f4@10 g4@10 ~@22, ~@4 bb3 ~@43]/4",
  Q: "[~@9 ab4@2 a4@2 bb4@2 c5@3 ~@3 g4@2 bb4@3 a4@2 bb4@3 c5@2 db5@3 eb5@3 ~@9, ~@4 g4 ~@19]/2",
  R: "[~ c5@2 b4@3 c5@3 ~@2 c5@3 b4@2 c5@3 d5@13 ~@2 a4@3 bb4@3 ~@2 bb4@3 a4@2 bb4@3 c5@2 a4@3 bb4@23 ~@3 f5@7 e5@10 ~ eb5@7 d5@10 ~ eb5@2 g5@3 ab5@2 bb5@3 c6@3 ~@7 c5@3 f5@2 g5@2]/6",
  S: "~ ab5@2 bb5@3 ~@18", T: "g5@3 g5@2 ab5@3 bb5@2 f5@3 ~@2 f5@8 ~", U: "~@15 g5@5 g5@2 ab5@2",
  V: "~ bb5@2 eb5@13 ~@8", W: "~@8 g4@5 bb4@2 c5@8 g4", X: "ab4 g4 f4@2 eb4@3 c4@2 eb4@3 f4@8 ~@4",
  Y: "~ g4@5 bb4@3 c5@7 g4 ab4 g4 f4@2 eb4@3",
  Z: "[c4@3 eb4@2 f4@8 ~@5 g4@5 bb4@3 c5@7 g4 ab4 g4 f4@3 eb4@2 c4@3 eb4@2 f4@2]/2", AA: "~ eb4@2 eb4@3 e4@18",
  AB: "~@3 e4 g4 ab4 a4 b4", AC: "c5 a4 b4 c5 a4 b4 c5 a4", AD: "b4 c5 a4 b4 c5 a4 b4 c5",
  AE: "[f5@4 ~@14 f4@4 ~ ab4@4 ~@5 db5@4 ~@5 b4@4 c5@81 f5@6 ~@12]/6", AF: "~@2 c5 ~@2 c5 d5 eb5",
  AG: "c5 d5 f5 g5 ab5 f5 g5 ab5", AH: "f5 g5 c5 f5 ab5 c6@2 ab5", AI: "[b5@10 c5 f5 ab5 b5@2 ab5]/2",
  AJ: "[bb5@10 e5 f5 ab5 bb5@2 g5]/2", AK: "[ab5@10 c4 f4 ab4 c5@2 ab4]/2", AL: "b4@2 c4 f4 ab4 b4@2 ab4",
  AM: "bb4@2 e4 f4 ab4 bb4@2 g4", AN: "[ab4@10 e4@3 e4 e4@2]/2", AO: "~@7 e4", AP: "b4 ab4 eb4 gb4 db4 eb4 b3 db4",
  AQ: "db4@3 ab4", AR: "bb4 b4 g4 bb4", AS: "b4 gb4 bb4 b4", AT: "f4 bb4 db5 ~", AU: "~@2 db5 ~ bb4 ~ db5 ~",
  AV: "~@18 ab4 ~ g4 ab4@3", AW: "bb4 ~ ab4 bb4@3 b4 ~ bb4 b4@3 db5 ~ b4 db5@3 bb4 ~ ab4 bb4@3",
  AX: "b4 ~ bb4 b4@3 e5 ~ eb5 e5@3 db5 ~ b4 db5@3 b4 ~ bb4 b4@3",
  AY: "f4 ~ e4 f4@3 ab4 ~ gb4 ab4@3 db5 ~ b4 db5@3 db4@3 eb4@3", AZ: "f4 g4 ab4 bb4 db5 eb5 f5 g5",
  BA: "ab5 ~ eb4 f4 g4 ab4 bb4 c5", BB: "db5 eb5 f5 g5 bb5 ~ bb4@2", BC: "c5 db5 a4 c5", BD: "db5 ab4 c5 db5",
  BE: "g4@2 bb4@2 eb5@2 eb5 c5", BF: "eb5 c5 eb5 c5 a4 c5 eb5 e5", BG: "f5 ~ eb5 c5 eb5 c5 eb5 c5",
  BH: "a4@3 c5@3 eb5@3 e5@3 f5@3 ~@3 bb4 ~ a4 bb4@3", BI: "c5 ~ bb4 c5@3 db5 ~ c5 db5@3 eb5 ~ d5 eb5@3 c5 ~ bb4 c5@3",
  BJ: "db5 ~ c5 db5@3 gb5 ~ f5 gb5@3 eb5 ~ d5 eb5@3 c5 ~ bb4 c5@3",
  BK: "g4 ~ f4 g4@3 bb4 ~ a4 bb4@3 eb5 ~ db5 eb5@3 ~@6", BL: "~ g4 ~ g4 eb4 f4 g4 a4", BM: "bb4 ~@4 f4 ~ f4",
  BN: "e4 f4 g4 a4 b4 ~@2 g5", BO: "~@7 bb4", BP: "g5@2 ~ g5 ~@4",
  BQ: "~@3 bb4@3 c5@6 ~@9 [d5,eb5,e5] [f5,gb5,g5] [ab5,a5,bb5,b5,c6]",
  BR: "[c6,db6,d6] [a5,bb5,b5] [e5,f5,gb5,g5,ab5] d5@3 ~@18, ~@3 eb5 ~@20",
  BS: "[g4,ab4] a4 [bb4,b4,c5] [db5,d5] eb5 [e5,f5,gb5] g5@6 ~@12", BT: "~@2 d5 ~", BU: "~ eb5 ~@2",
  BV: "a4@2 ~ c5@3 ~@2", BW: "~ f4 g4 a4 ~ g4 ~ b4", BX: "[d5@2 f5@2 b5@2 c6@3 ~@5 f5@4 bb4@6]/3",
  BY: "[f4@3 db4@3 eb4@2]/2", BZ: "eb4 ~@3", CA: "f4/3", CB: "f4 g4 ab4 db5@3 c5@2", CC: "ab4", CD: "c5 ab4", CE: "b4",
  CF: "eb5 gb5", CG: "f5 ~@3", CH: "~ c6@5 ~@2", CI: "~ gb5@5 ~@2", CJ: "f5@3 ab5 f5@2 eb5@2",
  CK: "[f5@6 ab5@3 f5@19 e5@4 eb5@4 db5@4 c5@4 bb4@4]/2", CL: "[a4 gb4@7]/2", CM: "e5@3 e5@3 e5@2",
  CN: "e5@12 ~@6 a4 bb4 c5 ~ db5 eb5", CO: "[f5@7 ~]/2", CP: "g5@4 g5 ~@3", CQ: "e4", CR: "c4 ~@5", CS: "eb4",
  CT: "bb4", CU: "f5 ~ f5 ~ ab5 ~ f5!2", CV: "~@3 db5@3 c5@2", CW: "g4@3 f4@3 c5@2", CX: "db5", CY: "f4",
  CZ: "f5@3 c5@3 c6@2", DA: "b4@3 b4@3 b4@2", DB: "b4@3 bb4@3 ab4@2", DC: "f5@2 ab5 f5@5",
  DD: "f4@9 c4@9 c5 db5 ~ eb5 e5 ~", DE: "[f5@6 ab5@3 f5@19 eb5@4 c5@4 b4@4 bb4@4 ab4@4]/2", DF: "f4 ~@2 ab4@3 f4 ~",
  DG: "f5@3 ~@6 ab5 [ab5,bb5] bb5 ab5 [ab5,bb5] bb5 ab5 [ab5,bb5] bb5 f5@3 ~@3", DH: "f5@3 ab5@3 db6 ~",
  DI: "db5@3 eb5@3 gb5 ~", DJ: "f5 a5 f5 e5@3 f5 e5",
  DK: "[~@9 f5@4 a5@4 f5@4 e5@31 ~@3 f5@4 a5@4 e5@4 d5@8 ~@3 d5@4 f5@4 d5@4 c5@15 ~@4 c5@4 a5@4 ~@3]/5",
  DL: "~ g5@11 d5@4 a5@8", DM: "[g5@4 ~@4 f5@7 d5@23 ~@10]/2", DN: "[~ f5@2 g5@2 f5@2 e5@17]/2", DO: "e5 g5 e5 c5@2 ~",
  DP: "[c5@3 e5@4 c5@4 bb4@23 a4@46 ~ a4@46 f4@23 e4@23 d4@19]/8", DQ: "[~@4 c4@23 d4@23 ~ e4@23 f4@22]/4",
  DR: "~ d4@23", DS: "[e5@8 ~@15 d5@8 ~@15 c5@8 ~@15 bb4@3]/3", DT: "~ c5@4 d5@4 e5@4 g5@4 bb5@4 c6 [c6,d6] d6",
  DU: "[c6 d6 c6 d6 c6 d6 c6 d6 c6 d6 c6 d6 c6 d6 c6 d6 c6 d6 c6 d6 bb5@15 ~@13]/2",
  DV: "[~@9 e4@23 c5@4 d5@3 e5@4 f5@4 g5@2 a5@2 f5@4 e5@31 ~@4 f5@3 a5@3]/4", DW: "~ e5@4 d5@8 ~@4 d5@4 f5@3",
  DX: "a5@4 c6@15 ~@5", DY: "[f5@3 a5@8 g5@12 d5@4 a5@7 g5@8 f5@8 d5@22]/3", DZ: "~@3 f5 g5 f5",
  EA: "[e5@31 ~@4 e5@4 g5@3 e5@4 c5@2]/2", EB: "[~@10 c5@4 e5@4 c5@3 bb4@23 ~ c5@46 c5@46 a4@46 d4@9]/8",
  EC: "[~@14 e4@31 ~@3]/2", ED: "[~@4 e4@8 c5@23 d5@15 ~ ab4@15 c5@31 ~@23]/5",
  EE: "[~@13 g4@5 bb4@3 c5@7 g4 ab4 g4 f4@2 eb4@3 c4@3 eb4@2 f4@7]/2",
  EF: "~ eb5@3 ~@2 g5@3 ~@2 g5@3 ab5@2 bb5@3 f5@3 ~@2", EG: "[f5@8 ~@15 g5@5 g5@3 ab5@2 bb5@3 eb5@12]/2",
  EH: "~@16 g4@5 bb4@3", EI: "c5 ~@2", EJ: "~ g4 ab4 f4@3 eb4@3 c4@2 eb4@3 f4@8 ~@2, ~@3 g4 ~@20",
  EK: "[~@3 g5@5 bb5@2 c6@8 g5 ab5 g5 f5@2 eb5@3 c5@2 eb5@3 f5@8 eb5@5 ~@4]/2",
  EL: "[~@11 db5@5 b4@5 gb4@5 ~ d4@5 db4@10 b3@10 bb3@20]/3",
})).s("gm_soprano_sax").gain(0.4)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A@3 B C@4 D@3 E F@2 G ~ H@3 I@3 J K L M@2 N O@4 ~@3 P Q@2 R S@2 T U ~@2 V@2 W X@2 Y Z@2 AA AB@3 ~@2 AC AD AE AF AG@2
  AH@2 AI@2 AJ AK AL@2 AM AN AO AP AQ AR AS AT AU AV AW AX@2 AY AZ BA@2 BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ
  BR BS BT@3 BU@3 BV BW BX BY@3 BZ CA CB CC CD CE CF ~ CG ~ CH@2 CI@2 CJ CK CL@2 ~@2 CM CN CO ~ CP CQ CR ~ CS CT CU ~ CV
  CW CX CY CV CZ@2 ~@2 DA DB DC DD DE@3 DF@8 DG@8 DH@2 DI DJ DK@3 DL DM@3 ~@9 DN DO DP@6 ~@8 DQ@8 DR@2 DS@2 DT@5 DU ~ DV
  DW DX DY DZ@2 EA EB@2 EC@2 ED ~
>`.pickRestart({
  A: "[~@23 gb4@8 gb4@3 ~@10 eb4@7 eb4@3 ~@10 a3@8]/3", B: "d4@8 c4@5 bb3@2 ab3@3 f3@3 d3@3",
  C: "[~@9 g3@21 f3@10 ~@3 eb5@13 ~@2 g3@13 f3@10 gb5@3 eb5@3 f5@2 eb5@7]/4",
  D: "[~@21 e3@5 ~ e3@2 e3@3 e3@5 f3@15 ~@13 gb3@3 g3@2 bb3@2]/3", E: "~ c4@5 eb4@3 ~@15",
  F: "[~@13 f5@2 eb5@3 c5@3 eb5@10 ~@17]/2", G: "~ f5@2 gb5@8 eb5@3 bb4@10",
  H: "[~@9 g3@10 ~ bb3@10 a3@10 ab3@10 ~@8 g3@3 g3@2 ab3@3 bb3@3 f3@3]/3",
  I: "[~@2 f3@8 ~@5 eb5@2 eb4@10 g3@3 g3@3 ab3@2 bb3@5 eb3@10 ~@16 g3@3 g3@3]/3", J: "~@2 ab3@2 bb3@3 c4@5 g3@8 ~@4",
  K: "~@11 g3@3 g3@3 ~@2 d4@2 g3@3", L: "bb3@13 ~@11", M: "[~@4 g3@3 g3@2 g3@3 ab3@3 bb3@2 f3@3 ~@2 f3@8 ~@15 g3@3]/2",
  N: "g3@5 ab3@3 bb3@5 eb3@10 ~",
  O: "[~@15 g4@2 gb4@3 g4@2 c5@8 g4@3 f4@2 eb4@3 c4@2 eb4@3 f4@8 ~@6 f4@2 gb4@2 g4@2 eb4@3 ~@3 c4@2 db4@3 c4@2 db4@3 eb4@2 f4@3 g4@3 ~@9, ~@28 eb4 ~@19]/4",
  P: "~@9 ab3@3 ~@2 g3@2 ab3@8", Q: "[g3@3 ab3@2 bb3@8 ~@8 d4@2 g4@3 gb4@2 f4@3 e4@3 ~@7 c4@3 f4@2 e4@2]/2",
  R: "~ eb4@2 d4@3 ~@18", S: "[~@15 bb3@3 c4@3 eb4@7 g4@3 eb4@10 ~@7]/2", T: "~@9 eb4@7 c4@5 eb4@3",
  U: "b3@3 bb3@5 ~@16", V: "[~@18 g3@5 bb3@3 c4@8 ~@5 bb3@2 c4@3 eb3@2 f3@2]/2", W: "~ g3@2 ab3@3 a3@13 ~ a3@4",
  X: "[e4@9 a3@3 a3@2 b3@2]/2", Y: "c4@6 b3@13 ~ a3@4", Z: "[f4@3 ~]/2", AA: "~@6 f3@4 ~ ab3@4 ~@5 db4@4",
  AB: "[~@5 eb4@4 e4@27 e5@18 c5@6 ~@12]/3", AC: "~@2 f4 g4 ab4 f4 g4 ab4", AD: "f4 g4 f4 g4 ab4 f4 g4 ab4",
  AE: "f4 g4 c5 d5 eb5 c5 d5 eb5", AF: "c5 d5 c4 f4 ab4 c5@2 ab4", AG: "[b4@10 c4 f4 ab4 b4@2 ab4]/2",
  AH: "[f4@10 e4 f4 ab4 bb4@2 g4]/2", AI: "[ab4@10 c4 f4 ab4 c5@2 ab4]/2", AJ: "b4@2 c4 f4 ab4 b4@2 ab4",
  AK: "bb4@2 e4 f4 ab4 bb4@2 g4", AL: "[f4@10 e4@3 e4 e4@2]/2", AM: "~@2 e4 e4@2 e4 ~ e4",
  AN: "eb4 db4 eb4@2 db4@2 b3@2", AO: "db4 b3 bb3 ab3", AP: "bb3 b3 g3 bb3", AQ: "b3 gb3 bb3 b3", AR: "f3 bb3 db4 f4",
  AS: "f4 e4 eb4!2", AT: "eb4 f4!2 e4", AU: "eb4!3 ab4", AV: "eb4 ab4 g4 eb4", AW: "g4 gb4 eb4 gb4",
  AX: "[db5@2 ab4@2 db5@2 bb3@4 bb3 f3 bb3@4]/2", AY: "f3 bb3 eb4@4 eb4 bb3", AZ: "eb4@3 bb3 eb4 eb3 ~ f4",
  BA: "~ f4 ~ f4 ~ f4 ~ f4", BB: "g4 ~ f4 g4@3 bb4 ~ a4 bb4@3 eb5 ~ d5 eb5@3 c4@6", BC: "g3@2 c4 eb4 c5!2 c4@2",
  BD: "f4 c4 c4@2 g3@2 c4 g3", BE: "a3 ~ bb3 c4 ~ d4 eb4 ~ d4 eb4 ~ e4 f4@3 ~@3 bb4@6", BF: "~@2 a4 ~", BG: "~ ab4 ~@2",
  BH: "g4@2 ~@4 eb3 f3", BI: "g3 a3 bb3 c4 ~ bb4 ~ bb4", BJ: "~ bb4 f3 g3 a3 bb3 c4 d4", BK: "~ a4 ~ a4 ~ a4 ~ c4",
  BL: "~ g4 eb4 ~ b3 d4!3", BM: "~ g4 bb3 eb4 ~ g4 eb4 ~", BN: "~ f4 ~ f4 ~ c4!2 d4", BO: "c4 d4 c4 a4 g4 b4 ~ d5",
  BP: "~ g4 f4 d4 ~ d4 f4 d4", BQ: "g4 ~@2 d4 ~ g4 ab3@2", BR: "~ b3 c4 d4 ab4 f4 ~ d4", BS: "eb4 f4 g4 eb4 ~ f3 c4@2",
  BT: "[c4@2 ~ f4@3 a3 b3@2 c4@2 a3@2 b3@2 c4@2 g4@2 a4@2 b4@2 b4]/3",
  BU: "[b3!2 d4!2 g4!2 c5@3 c5 g4 f4 c4@6 bb3@2 c4@2 db4@2]/3", BV: "a3 c4 db4 ab3", BW: "c4 db4 g4 bb4",
  BX: "eb4 f4 gb4 b4@3 bb4@2", BY: "f4/3", BZ: "f4 g4 ab4 db5@3 c5@2", CA: "ab4@2 bb4@2 b4 bb4 ab4 f4",
  CB: "ab4@3 bb4 ~ bb4 ab4@2", CC: "~ f5@3 eb5 b4 bb4 ab4", CD: "f4 eb4 b3 bb3 b3 eb4 f4 ab4", CE: "bb4 ~@3",
  CF: "~ f5@5 ~@2", CG: "~ d5@5 ~@2", CH: "f4/2", CI: "gb4/2", CJ: "bb4@3 bb4@3 bb4@2",
  CK: "bb4@12 ~@6 a4 bb4 c5 ~ db5 eb5", CL: "[f5@7 ~]/2", CM: "c5@4 c5 ~@3", CN: "e4", CO: "ab3 ~@5", CP: "ab3",
  CQ: "bb3", CR: "f4 ~ f4 ~ ab4 ~ f4!2", CS: "~@3 db5@3 c5@2", CT: "g4@3 f4@3 c5@2", CU: "db5", CV: "f4@3 c4@3 c5@2",
  CW: "b4@3 b4@3 b4@2", CX: "b4@3 bb4@3 ab4@2", CY: "f4@2 ab4 f4@5", CZ: "b4/2",
  DA: "f5@3 ~@6 ab5 [ab5,bb5] bb5 ab5 [ab5,bb5] bb5 ab5 [ab5,bb5] bb5 f5@3 ~@3", DB: "c4@3 eb4@3 e4 ~",
  DC: "bb4@3 bb4@3 db5 ~", DD: "f3", DE: "[f4@23 e4@6 e4@2 e4@8 e4@7 f4@23 e4@3]/3",
  DF: "[~@3 e4@2 e4@8 e4@8 f4@23 e4@23 d4@23 c4@23 d4@23 e4@23 e4@23 ~ d4@9]/8",
  DG: "[~@14 c5@23 b4@23 bb4@23 g4@23 c4@46 ~ c5@23 ~@11 f4@4 a4]/8", DH: "[~@3 f4@4 e4@35 f4@3 a4@3]/2",
  DI: "~ e4@4 d4@12 f4@4 a4@3", DJ: "d5@4 e5@15 ~@5", DK: "[d5@3 f5@8 e5@4 ~@8 d5@4 a4@7 b4@4 ~@4 d5@8 eb5 e5 f5@20]/3",
  DL: "~ f5 e5 d5@5 ~@4 f4@4 g4@4 f4@4", DM: "[e4@35 e4@4 g4@3 e4@4 c4@8 ~@4 c4@4 e4@4 c4@4 ~@2]/3",
  DN: "~@5 eb4@4 e4@4 f4@4 gb4@4 g4@3", DO: "ab4 a4 bb4!2 a4 ab4",
  DP: "[g4@3 gb4@4 f4@4 e4@4 eb4@4 d4@4 db4@4 c4@3 b3@4 e4@46 ~ ab4@46 ~@17]/6",
  DQ: "[~@22 e4@23 d4@23 ~ c4@46 bb3@46 c4@23 e4@8]/8", DR: "[~@15 f4@23 ~ e4@8 ~]/2",
  DS: "[~@2 f4@4 a4@4 f4@4 e4@31 ~@3]/2", DT: "[~@4 e4@8 c4@15 ab3@8 g3@15 ~ gb3@15 g3@54]/5",
  DU: "c4@2 d4@2 eb4@5 ~@3", DV: "~ eb4@10 c4@10 ~@3", DW: "g3@3 bb3@2 eb4@8 g4@2 eb4@5 ~@4", DX: "~@17 eb4@7",
  DY: "~ c4@5 c4@3 b3@2 bb3@3 ~@2 g3@5 bb3@3",
  DZ: "[c4@8 g4 [g4,ab4] f4@3 eb4@2 c4@3 eb4@3 f4@8 ~@4 g4@5 ~ bb4@2 c5@7]/2", // Abmaj7
  EA: "~ g4 ab4 f4@3 eb4@3 c4@2 eb4@3 f4@8 ~@2, ~@3 g4 ~@20",
  EB: "[~@3 g4@5 bb4@2 c5@8 g4 ab4 g4 f4@2 eb4@3 c4@2 eb4@3 f4@8 eb4@5 ~@4]/2",
  EC: "[~@11 gb4@5 ab4@5 d4@5 ~ b3@5 ~@16]/2", ED: "~ g3@5",
})).s("gm_alto_sax").gain(0.4)

// other · alto sax · "Alto Saxophone" · soft notes
const alto_sax_soft = note("<~@151 A ~@31 B ~@12 C D E F G H@3 I ~@7 J K L ~@2 M N ~@33>".pickRestart({
  A: "db4", B: "~@2 c4@3 ~", C: "~ e4 f4 e4 f4 ~", D: "~@3 e4@4 f4@4 e4@4 f4@4 ~@5", E: "~@3 e4@3 f4@4 e4@4 f4@4 ~@6",
  F: "~@2 e4@4 f4@3 e4@4 f4@4 ~@7", G: "~ eb4@4 e4@4 eb4@3 e4@4 ~@8",
  H: "[eb4@4 e4@4 eb4@4 e4@4 ~@7 e4@4 f4@4 e4@4 f4@4 ~@7 gb4@4 g4@4 gb4@4 g4@4 b3@4 c4@3 db4@3]/3", I: "~ d4@4 ~@19",
  J: "~ e4@2 f4@2 e4@2 f4@2 ~@3", K: "~ e4@4 f4@4 e4@4 f4@4 ~@7", L: "d4@4 f4@3 d4@2 a4@3 c5@8 ~@4",
  M: "~@2 f4@4 e4@3 f4@4 c4@4 d4@4 e4@3", N: "~ f4@4 e4@4 f4@4 ~@11",
})).s("gm_alto_sax").gain(0.2)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A@3 B C@5 D@2 E@7 F@5 G@3 H I@2 J@3 K@3 L@6 M@7 N O P Q@6 R@2 S T@2 U V W V W X Y Z AA Z AA Z AB AC AD AE AF AG AH
  AI@2 AJ AK AL AM AN AO AP AQ AR AS AT ~@2 AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ@3 BK@2 BL BM@2 BN BO BP@2
  BQ@2 BR BS BT@2 ~ BU@2 BV BW ~ BX BY BZ CA BM@2 BN BM@2 CB CC CD@2 CE@3 CC BM CF BM CG CH CI BM CI@3 CJ@2 CK CL@6 CM@2
  CN CO@2 CP@8 CQ@7 CR CS@8 CT CU@7 CV CW@8 CX@2 CY@8 CZ DA@2 DB@2 DC@5 DD@2 DE@3 DF@3 DG@3 DH@3 ~
>`.pickRestart({
  A: "[~@23 eb3@8 eb3@3 ~@10 c3@7 c3@3 ~@10 f3@8]/3", B: "f3@8 f3@5 bb3@5 bb2@5 ~",
  C: "[~@4 bb2@5 eb3@10 ~ bb2@10 eb3@8 eb3@2 f3@5 g3@5 ~ ab2@10 eb3@10 ab3@8 d3@2 eb3@5 ~ bb2@5 eb3@10 eb3@5 d3@5 c3@8]/5",
  D: "[g3@3 c4@5 e3@5 f3@10 c3@10 bb3@5 ~ bb2@5 c3@4]/2",
  E: "[~ d3@5 eb3@10 bb2@10 ~ eb3@7 eb3@3 bb3@2 bb3@3 g3@5 ab3@10 eb3@10 ~ ab2@7 g3@3 ab3@3 ab3@2 d3@5 eb3@3 eb3@2 d3@5 ~ c3@5 e3@5 f3@2 f3@3 a2@5 bb2@5 d3@5 eb3@5 ~@6 gb3@10 f3@10 e3@8]/7",
  F: "[~@3 eb3@10 bb2@10 eb3@5 f3@5 eb4@5 ~ a3@5 ab3@10 eb3@10 ab2@5 ab3@5 ~ eb3@5 ab2@5 eb3@10 eb3@10 c3@5 ~ f3@5 g3@4]/5",
  G: "[~ c4@5 f3@10 c3@10 ~ bb3@5 bb2@5 ~@5 bb2@5 eb3@10 bb2@10 ~ eb3@4]/3", H: "~ g3@5 bb3@5 eb4@5 ab2@5 ~@3",
  I: "[~@3 eb3@5 ~@5 ab3@5 eb3@5 c3@5 ab2@5 eb3@3 eb3@3 d3@5 c3@4]/2",
  J: "[~ e3@5 f3@3 f3@2 a2@5 bb2@5 d3@5 ~ eb3@5 ~@15 bb2@10 eb3@10 ~ ab2@4]/3",
  K: "[~ c3@5 eb3@5 g3@5 ab3@5 eb3@5 ~ d3@5 d4@5 g3@5 d3@5 bb3@5 ab3@5 g3@5 ~ d3@5 c3@4]/3",
  L: "[~ gb3@5 f3@5 c4@5 ab3@5 g3@5 ~ f3@5 c3@5 bb2@5 d3@5 eb3@10 ~@3 c3@8 f3@10 ~@3 bb2@7 eb3@3 eb3@2 f3@5 ~ g3@5 bb3@5 eb3@5 db3@5 c3@5 bb2@5 ab2@5 ~ c3@5 eb3@4]/6",
  M: "[~ f3@5 gb3@5 f3@5 eb3@5 c3@5 ~ eb3@10 c3@10 f3@10 bb2@3 bb2@3 d3@5 eb3@10 c3@10 f3@10 ~ bb2@2 bb2@3 d3@5 eb3@10 c3@10 f3@10 ~ bb2@10 a2@3 ~@3 a2@3 a2@4 ~@5]/7",
  N: "~@2 a2!5 ~", O: "a2@3 a2@4 ~@17", P: "~@6 f2@3 ~@3 f2@3 f2@4 ~@5", Q: "[c2@36 c3@6 f2 g2 ab2 f2 g2 ab2]/6",
  R: "f2 g2 f2 g2 ab2 f2 g2 ab2", S: "f2 g2 f3 g3 ab3 f3 g3 ab3", T: "[f3 g3 f2@8 f2 g2 ab2 f2 g2 ab2]/2",
  U: "f2 g2 ~@6", V: "~@2 f3 ~@2 ab3 ~@2", W: "bb3 ~@7", X: "~@2 f3 eb3 b2 c3 bb2 ab2", Y: "f2 eb2 f2 ~ f2!2 ~ f2",
  Z: "f2 ~ f2!2 ~ f2!2 g2", AA: "ab2 ~ f2 ~ f2!2 ~ f2", AB: "ab2 bb2 bb2@2 db3@2 gb3@2", AC: "db3@3 ab3",
  AD: "ab3!2 g3!2", AE: "g3 gb3!3", AF: "f3!3 db4", AG: "bb3@2 db4@2 g3 bb3 db4 d4",
  AH: "eb4@2 db4 bb3 db4 bb3 db4 bb3", AI: "[g3 bb3 db4 d4 eb4@2 ab2@4 ab2@2 g2@4]/2", AJ: "g2 gb2@2 gb2",
  AK: "db3@2 ab3@2 db3 ab2 ~@2", AL: "~@4 db3 eb3 f3 g3", AM: "ab3 ~@7", AN: "db3 eb3 f3 g3 bb3!2 bb3@2",
  AO: "c4@2 db4@2 a3!2 bb3 c4", AP: "c4@3 db4@3 ab3 ~ g3 ab3@3 c4 ~ bb3 c4@3 db4 ~ c4 db4@3",
  AQ: "eb3!2 bb2@2 eb3 bb2 c3@2", AR: "g2!2 c3 eb3 f3!2 c3!2", AS: "f3 c3!3 g2!2 c3 g2", AT: "f3!2 c3!2 f3 c3 ~@2",
  AU: "eb3!2 bb2!2 eb3 bb2 c3!2", AV: "g2!2 c3 g2 c3!2 g2!2", AW: "ab2 a2 f3!2 c3@2 f3 c3", AX: "~@6 c3 c4",
  AY: "c3!3 c4 ab2 ab3 ab2 ab3", AZ: "ab2 ab3 bb2 bb3 bb2 bb3 bb2 bb3", BA: "a2 a3 a2 a3 a2 a3 d3 d4",
  BB: "d3 d4 d3 d4 g2 g3 g2 g3", BC: "g2 g3 d3 d4 d3 d4 d3 d4", BD: "g2 g3 g2 g3 g2 g3 c3 c4", BE: "c3!3 c4 b2@4",
  BF: "b2 b3 bb2 bb3 bb2!3 bb3", BG: "a2@4 a2 a3 d2 d3", BH: "d2 d3 d2 d3 d2 d3 d2 d3", BI: "d2 d3 g2 g3 g2 g3 g2 g3",
  BJ: "[g2 g2@2 g2@2 g2 c4@3 f3 eb3 db3 f3@6 db4@6]/3", BK: "[f3@3 ab3@3 g3@2]/2", BL: "eb3@2 gb3 f3@5",
  BM: "f2 g2 ab2 f2 g2 ab2 f2 g2", BN: "f2", BO: "f2 g2 ab2 db3@3 c3@2", BP: "f3@2 f3 ab3@3 f3 ~",
  BQ: "ab3@2 ab3 b3@3 ab3 ~", BR: "bb2@2 bb2 f3@5", BS: "~@3 bb2@3 bb2@2 c3@2 db3@2", BT: "[c3@2 bb2 gb3@13]/2",
  BU: "[bb2@6 bb2@3 f3@21 bb3@6 bb3@4 c4@4 db4@4]/2", BV: "a3@3 bb3@3 e4@2", BW: "f4@3 bb2@5", BX: "ab3 gb3", BY: "f3",
  BZ: "f2 ~ f2!2 ~ f2!2 ~", CA: "f2!2 ~ f2!2 g2 ab2 ~", CB: "db3", CC: "eb3", CD: "[f2@3 c3@13]/2",
  CE: "[g2@2 f2 db3@21]/3", CF: "f2 ~@2 ab2 ~@2 f2 ~", CG: "f2@3 ab2@3 f2 ~", CH: "f3@3 c3@3 c4@2",
  CI: "f2 ~@2 ab2@3 f2 ~", CJ: "f3 ~@2 ab3@3 f3 ~", CK: "f2@2 a2@4 bb2 e3",
  CL: "[f3@8 a3@7 a3@8 c3@8 a3@8 a3@7 d3@8 a3@8 a3@7 c3@8 d3@8 e3@8 f3@7 a3@8 a3@8 c3@7 a3@8 a3@8 d3@5]/6",
  CM: "[~ a3@2 a3@7 a3@8 c3@8 a3@7 a3@8 b2@7]/2", CN: "~ f3@8 f3@7 d3@8", CO: "[g3@8 g3@7 b2@8 f3@8 f3@8 d3@7 g3@2]/2",
  CP: "[~@6 g3@8 g3@23 g3@23 e3@23 e3@23 f3@46 ~ c3@39]/8", CQ: "[~@7 f3@23 c3@23 d3@23 c3@23 b2@23 ~ g3@23 b2@22]/7",
  CR: "~ d3@23", CS: "[e4@23 d4@23 c4@23 bb3@23 ~ c3@7 e3@8 e3@8 c3@7 e3@8 g3@8 c3@8 e3@7 e3@8 c3@8 e3@7 e3@8 c3@7]/8",
  CT: "~ f3@8 f3@7 c3@8", CU: "[f3@8 f3@7 c3@8 f3@8 f3@8 d3@7 f3@8 f3@8 b2@7 f3@39 d3@8 f3@38 e3@8 g3@4 ~@2]/7",
  CV: "~@6 d3@3 e3@8 bb2@7", CW: "[~ b2@8 c3@46 ~@8 a3@15 ~@8 a3@15 ~@8 a3@15 ~@8 a3@15 ~@8 f3@15 ~@8 f3@14]/8",
  CX: "~@3 f3@5", CY: "[e3@8 g3@15 d3@8 g3@15 c3@8 e3@15 bb2@23 ~ c3@46 c3@46 f3@7]/8", CZ: "~ a3@8 a3@7 c3@8",
  DA: "[a3@8 a3@7 d3@6 a3@2 a3@8 a3@8 ~@9]/2", DB: "[~@14 bb2@31 ~@3]/2",
  DC: "[~@4 bb2@8 a2@23 bb2@15 ~ b2@15 c3@31 ~@23]/5", DD: "[~@8 eb3@10 c3@10 f3@10 ~ bb2@2 d3@7]/2",
  DE: "[~ eb3@5 f3@5 g3@5 bb3@5 eb3@5 ~ db3@5 c3@5 bb2@5 ab2@5 c3@5 eb3@5 f3@5 ~ gb3@5 f3@4]/3",
  DF: "[~ eb3@5 c3@5 eb3@10 c3@10 ~ f3@10 bb2@3 bb2@2 d3@5 eb3@10 ~ c3@9]/3",
  DG: "[~ f3@10 bb2@5 d3@5 eb3@10 ~ c3@10 f3@10 bb2@5 d3@5 ~ eb3@5 ~@4]/3", DH: "[~@11 e3@41 eb3@20]/3",
})).s("gm_baritone_sax").gain(0.3)

stack(soprano_sax, alto_sax, alto_sax_soft, baritone_sax)

More by Michael Giacchino