Strudelify

doctor worm

They Might Be Giants

KeyG♭ majorTempo165 bpm
0:00/0:00
// doctor worm — They Might Be Giants
// 165 bpm, 4/4, key Gb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Flute" named as a pipe, played on flute (its tuba patch is not one); ch 2 "Flute" named as a pipe, played on flute (its tuba patch is not one)
// note: duplicate parts dropped: ch 9 "B♭ Trumpet" trumpet (copy of ch 3 "B♭ Clarinet" clarinet); ch 12 "B♭ Trumpet" trumpet (copy of ch 4 "B♭ Clarinet" clarinet); ch 14 "Horn in F" french horn (copy of ch 5 "Alto Saxophone" alto sax); ch 16 "Trombone" trombone (copy of ch 6 "Tenor Saxophone" tenor sax)
// note: Transcription provider: pdmx. https://musescore.com/score/2712986; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 116 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(165/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 · flute
const flute = note(`<
  A@4 B@2 C@2 D E@2 F G@2 H@4 I@2 J@2 K@2 L@2 M@2 N@4 O@2 P Q R@4 S@2 T U T U T U T U T V W@2 X@2 Y@2 Z AA ~@7 AB AC@4
  AD@2 AE@2 AD@2 AE@2 ~@8 AF@4 AG@2 AH@2 AI@2 AJ@2 AK@2 AL@4 AM AN AO AP AQ@6
>`.pickRestart({
  A: "[[gb2,gb5]@3 ~ [gb2,gb5]@3 ~ [gb2,gb5]@3 [bb2,bb5] ~@2 [gb2,eb5]@6 [gb2,eb5]@2 ~@2 [gb2,eb5]@3 [f2,f5] ~@2 [gb2,gb5]@6 [gb2,gb5]@2 ~@2 [gb2,gb5]@3 [bb2,bb5] ~@2 [ab2,db5]@6 [ab2,db5]@4 [gb2,eb5]@4 [f2,f5]@4]/4", // Gb Bb Ebm F Gb Bb Db5 Ebm …
  B: "[gb2@6 ~ db3, gb5@31 ~]/2", C: "[bb4!2 b2 db3@2 db3 ~@2 gb4!2 ~ gb4 ~@2 eb3@2, b2@2 ~ bb4 ~@2 eb3@8 ~@2]/2",
  D: "b4!2 ~ b4 gb2@2 gb2@2, db3 gb2 ~@2",
  E: "[bb4!2 ~ bb4 ~ bb4 [bb2,ab4] gb4 bb4!2 ~ [gb2,bb4] gb2 ab2 bb2 ab2, bb2@2 ab2@2 ab2@2 ~ bb2@3 ~@6]/2", // Bb7 Gb
  F: "gb4!2 ~ gb4 ~@2 b2@2, gb2 ~",
  G: "[b4!2 b2 b2@3 bb2 ~ bb4!2 ~ bb4 ~ bb4 [bb4,db5] [ab4,f5], db3@2 ~ b4 ~@3 bb2@3 b2@2 b2@2 bb2@2]/2", // Bbm Db
  H: "[gb2@3 gb2 gb2@3 gb2 b2@3 b2 b2@3 b2 ab2@3 ab2 ab2@3 ab2 db3@6 ~ b2, [gb4,gb5]@57 ~@7]/4", // Gb
  I: "[b2@4 b2@3 b2 ~@5 db4 db4@2, [gb4,gb5]@23 ~@9, ~ db3]/2", // Gb
  J: "[gb3!2 ab4 bb4@2 b4 ~@2 eb3!2 ~ eb3 ~@2 gb4@2, gb4@4 ~@2 gb3@2 ~@4 bb4@15 ~@5]/2",
  K: "[gb3!2 b4 b4@3 bb4 ~ f3!2 ab4 f3 ~ f3!3, db5@2 ~ gb3 ~@3 bb4@3 ~ ab4@3 gb4@2]/2",
  L: "[gb3!2 ab4 bb4@3 ab4 ~ eb3!2 ~ eb3 ~@3 eb4, gb4@4 ~@2 gb3@2 ~@6 ab4@4 gb4@9 ~@5]/2",
  M: "[[gb3,eb4] f4@2 gb4@2 ab4@2 ~ f3!2 ~ f3 ~ db3!2 b2, ~ gb3 ~ gb3 ~@3 gb4@3 f4@2 gb4@2 ab4@2]/2", // Ebm
  N: "[bb4@6 b4@2 bb4@6 b4@2 bb4@6 b4@2 bb4@6 b4@2 bb4@6 b4@2 bb4@6 b4@2 bb4@11 ~ gb4@4, b2@15 ~]/4",
  O: "[db5@2 b4 b4@3 bb4@2 bb4@2 ab4@2 gb4@2 gb4@2, b2]/2", P: "gb4!2, d3", Q: "ab4 a4, e3",
  R: "[[a2,a4]@3 ~ [a2,a4]@3 ~ [a2,a4]@3 [db3,db5] ~@2 [a2,gb4]@6 [a2,gb4]@2 ~@2 [a2,gb4]@3 [ab2,ab4] ~@2 [a2,a4]@6 [a2,a4]@2 ~@2 [a2,a4]@3 [db3,db5] ~@2 [b2,d5]@6 [db3,db5]@4 [a2,d5]@4 [db3,e5]@4]/4", // A Db D Ab A Db Bm Db …
  S: "[bb2!2 b2!2 db3!2 b2!2, gb5@31 ~]/2", T: "bb2!2 b2!2", U: "db3!2 b2!2", V: "db3!2 b2!2, bb4@15 ~",
  W: "[db5 b4 bb4 ab4, eb3]/2", X: "[b4 bb4 ab4 gb4, b2]/2", Y: "b2!2", Z: "ab2 bb2", AA: "b2 db3", AB: "[db3,db5]",
  AC: "[[gb2,gb5]@3 ~ [gb2,gb5]@3 ~ [gb2,gb5]@3 [bb2,bb5] ~@2 [gb2,eb5]@6 [gb2,eb5]@2 ~@2 [gb2,eb5]@3 [f2,f5] ~@2 [gb2,gb5]@6 [gb2,gb5]@2 ~@2 [gb2,gb5]@3 [bb2,bb5] ~@2 [eb3,eb5]@6 [db3,db5]@4 [b2,b4]@4 [bb2,bb4]@4]/4", // Gb Bb Ebm F Gb Bb Eb Db …
  AD: "eb3/2", AE: "b2/2",
  AF: "[gb2@3 gb2 gb2@3 gb2 b2@3 b2 b2@3 b2 ab2@3 ab2 ab2@3 ab2 db3@6 b2@2, [gb4,gb5]@57 ~@7]/4", // Gb
  AG: "[b2@4 b2@3 b2 db3@4 db3@3 db3, [gb4,gb5]@15 ~]/2", // Gb
  AH: "[bb4!2 ab2 bb2@2 b2 ~@2 gb4!2 ~ gb4 ~@2 gb2@2, gb2@2 ~ bb4 ~@2 bb2@8 ~@2]/2",
  AI: "[b4!2 b2 b2@3 bb2 ~ bb4!2 ab2 bb4 ~ bb4 ab4 gb4, db3@2 ~ b4 ~@3 bb2@3 ~ ab2@3 gb2@2]/2",
  AJ: "[bb4!2 ab2 bb2@3 ab2 ~ gb4!2 ~ gb4 ~@3 b2, gb2@2 ~ bb4 ~@3 ab2@3 gb2@4 ~@2]/2",
  AK: "[[b2,b4] bb2@2 ab2@2 bb2@2 ~ bb4!2 ~ bb4 ~ bb4 [bb4,db5] [ab4,f5], ~ b4 ~ b4 ~@3 bb2@3 ab2@2 gb2@2 ab2@2]/2", // B Bbm Db
  AL: "[gb2@3 gb2 gb2@3 gb2 b2@3 b2 b2@3 b2 ab2@3 ab2 ab2@3 ab2 db3@6 db3@2, [gb4,gb5]@57 ~@7]/4", // Gb
  AM: "[db3,gb4,gb5]@4 [eb3,gb4,gb5]@2 ~@2 [gb4,gb5]@2 ~@3 [gb4,gb5]@2 ~, ~@6 eb3@5 [gb4,gb5]@2 ~@3, ~@3 eb3", // Gb5 Ebm Gb
  AN: "[gb4,gb5]@2 [gb4,gb5]@2 [gb4,gb5]@2 [gb4,gb5]@2 [gb4,gb5]!2 ~ [gb4,gb5]!3 ~ [gb4,gb5], db3 b2!2 bb2", // Gb
  AO: "a2!2, gb5@15 ~", AP: "db3 b2, e5@15 ~",
  AQ: "[gb5@3 ~ gb5@3 ~ gb5@3 bb5 ~@2 eb5@6 eb5@2 ~@2 eb5@3 f5 ~@2 gb5@6 gb5@2 ~@2 gb5@3 bb5 ~@2 db5@6 db5@4 [eb5,gb5]@4 [f5,ab5]@4 [gb5,bb5]@31 ~, [gb2,gb3]]/6", // Ebm Fm Gb
})).s("gm_flute").gain(0.45)

// chords · flute
const flute_2 = note(`<
  A@4 B@2 C D E F C G E F H@4 I J K@2 L@2 M@2 N@2 O P Q R S T U V W@4 X@2 Y@9 Z AA AB AC AD AE@2 AF@2 AG@2 AH@2 AI AJ
  AK@2 AL@4 AM AN AO AP AE@2 AQ@2 ~@8 H@4 I AR C G E F C G E F H@4 AS AT AU AV A@4 B@2
>`.pickRestart({
  A: "[[gb2,db5]@3 ~ [gb2,db5]@3 ~ [gb2,db5]@3 [bb2,db5] ~@2 [b2,b4]@6 [b2,b4]@2 ~@2 [b2,b4]@3 [db3,db5] ~@2 [gb2,db5]@6 [gb2,db5]@2 ~@2 [gb2,db5]@3 [bb2,db5] ~@2 [ab2,ab4]@6 [bb2,ab4]@4 [b2,bb4]@4 [db3,bb4]@4]/4", // Gb5 Bbm B Db Gb5 Bbm Ab Bb7 …
  B: "[gb1,gb2,db5]/2", C: "gb4!2 ~ [gb2,gb4] db2@4, gb2@3 ~@5", D: "eb5!2 ~ [eb2,eb5] bb1@4, eb2@3 ~@5",
  E: "gb4!2 ~ [b1,gb4] [gb1,gb2]@4, b1@3 ~@5", F: "f4!2 ~ [db2,db3,f4] ~ ab4 f4!2, [db2,db3]@3 ~ [ab1,ab2]@4",
  G: "eb4!2 ~ [eb2,eb4] bb1@4, eb2@3 ~@5", // Eb
  H: "[[gb1,gb2] ~ [gb1,gb2] ~ [gb1,gb2] ~ [gb1,gb2] ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ [b1,b2] ~ [b1,b2] ~ [b1,b2] ~ [b1,b2] ~ [db2,db3] ~ [db2,db3] ~ [db2,db3] ~ [db2,db3] ~, bb4@57 ~@7]/4", // Gb B Db
  I: "[b1,b2] ~ [b1,b2] ~ [b1,b2] ~ [b1,b2] ~, bb4@15 ~", // B
  J: "[db2,db3] ~ [db2,db3] ~ [db2,db3] db4 [db2,db3] ~, ab4@2 ~ db4", // Db
  K: "[eb4@2 f4 gb2 ~ ab4 ~@2 eb2@3 eb2 ~@2 eb4@2, gb2@6 gb4@4 ~@2 gb4@15 ~@5, ~ db2 ~ bb1]/2",
  L: "[f4@2 gb4 b1 ~@2 f4 ~@3 f4 [db2,db3] ~@2 eb4@2, b1@3 gb4@3 ~ gb4@3 ~ eb4@3 ~@2, ~@4 [gb1,gb2]@4 [db2,db3]@3 ~ [ab1,ab2]@4]/2", // Db Gb Db Ab
  M: "[gb4@2 f4 gb2 ~@2 f4 ~@4 eb2 ~@3 gb4, gb2@6 eb4@6 ~@2 f4@4 eb4@9 ~@5, ~@4 db2@4 eb2@3 ~ bb1@4]/2",
  N: "[gb4 f4@2 b1 ~ db4@2 ~@4 [db2,db3] eb4@2 f4@2, b1@3 eb4@2 ~@2 eb4@3 db4@2 ~@4, ~@4 [gb1,gb2]@4 [db2,db3]@3 ~ [ab1,ab2]@4]/2", // Db Gb Db Ab
  O: "[gb1,gb2] ~ [gb1,gb2] gb4 [gb1,gb2] ~ [gb1,gb2] gb4, gb4@3 ~ gb4@3 ~", // Gb
  P: "eb2 ~ eb2 gb4 eb2 ~ eb2 gb4, gb4@3 ~ gb4@3 ~", Q: "[b1,b2] ~ [b1,b2] gb4 [b1,b2] ~ [b1,b2] gb4, gb4@3 ~ gb4@3 ~",
  R: "[db2,db3] ~ [db2,db3] ~ [db2,db3] ~ [db2,db3] ~, gb4@11 ~ gb4@4", // Db
  S: "[b1,b2] ~ [b1,b2,f4] ~ [b1,b2] ~ [b1,b2] ~, gb4@2 ~ eb4@3 db4@2", // B Bdim B
  T: "[db2,db3] ~ [db2,db3] ~ [db2,db3] ~ [db2,db3] ~, eb4!4", U: "[gb1,gb2,d4]", V: "[ab1,e2,e4]",
  W: "[[a1,a2,e4]@3 ~ [a1,a2,e4]@3 ~ [a1,a2,e4]@3 [db2,db3,e4] ~@2 [d2,d3,d4]@6 [d2,d3,d4]@2 ~@2 [d2,d3,d4]@3 [e2,e3,e4] ~@2 [a1,a2,e4]@6 [a1,a2,e4]@2 ~@2 [a1,a2,e4]@3 [db2,db3,e4] ~@2 [b1,b2,b4]@6 [db2,db3,a4]@4 [d2,d3,a4]@4 [e2,db3,ab4]@4]/4", // A5 Dbm D E A5 Dbm B Gbm …
  X: "[[gb1,gb2]@2 [gb1,gb2] [bb1,bb2] [b1,b2]@2 [b1,b2] [bb1,bb2] [gb1,gb2]@2 [gb1,gb2] [bb1,bb2] [b1,b2]@2 [b1,b2] [bb1,bb2], gb4@15 ~]/2", // Gb Bb B Bb Gb Bb B Bb
  Y: "[gb1,gb2]@2 [gb1,gb2] [bb1,bb2] [b1,b2]@2 [b1,b2] [bb1,bb2]", // Gb Bb B Bb
  Z: "[gb1,gb2]@2 [gb1,gb2] [bb1,bb2] [b1,b2]@2 [b1,b2] [bb1,bb2], gb4@15 ~", AA: "[ab2,ab4] [bb2,ab4]",
  AB: "[b2,gb4] [ab2,f4]", AC: "[eb2,eb3,eb4] [f2,f3,eb4]", AD: "[gb2,gb3,f4] [eb2,eb3,eb4]", AE: "[b1,b2]/2",
  AF: "[[ab1,ab2]@7 db2]/2", AG: "[gb2@2 ab2 bb2@2 b2 bb2@8 gb2@2]/2",
  AH: "[db3@2 b2 b2@3 bb2 bb2@3 ab2 ab2@3 gb2@2]/2", AI: "gb2 f2 eb2 db2", AJ: "[b1,b2] [bb1,bb2] [ab1,ab2] [gb1,gb2]",
  AK: "[~@16 f4@15 ~, [db2,db3]]/2", // Db
  AL: "[[gb2,db5]@3 ~ [gb2,db5]@3 ~ [gb2,db5]@3 [bb2,db5] ~@2 [b2,b4]@6 [b2,b4]@2 ~@2 [b2,b4]@3 [db3,db5] ~@2 [gb2,db5]@6 [gb2,db5]@2 ~@2 [gb2,db5]@3 [bb2,db5] ~@2 [b2,gb5]@6 [bb2,f5]@4 [ab2,eb5]@4 [gb2,db5]@4]/4", // Gb5 Bbm B Db Gb5 Bbm B5 Bb5 …
  AM: "ab2 bb2", AN: "b2 ab2", AO: "[eb2,eb3] [f2,f3]", AP: "[gb2,gb3] [eb2,eb3]", AQ: "[ab1,ab2]/2",
  AR: "[db2,db3] ~ [db2,db3] ~ [db2,db3] ~ [db2,db3] ~, ab4@15 ~", // Db
  AS: "[b1,b2,bb4]@3 ~ [b1,b2,bb4]@3 ~ [b1,b2,bb4]@2 ~@3 bb4@2 ~, ~@11 bb4@2 ~@3, ~@6 [b1,b2] ~", // Bmaj7 B
  AT: "[db2,db3,bb4]@2 bb4@2 [db2,db3,bb4]@2 bb4@2 bb4!2 ~ bb4!3 ~ bb4, ~@4 [db2,db3] ~ [db2,db3] ~", AU: "[d2,d5]",
  AV: "[e2,b4]", // E5
})).s("gm_flute").gain(0.45)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A@4 B@2 C D E F C D E G H@4 I@2 J@2 K@2 L@2 M@2 N@3 O P Q R S T@4 B@2 ~@9 U V W X Y ~@11 Z AA@4 ~@16 H@4 AB@2 C D E F
  C D E G H@4 AC AD AE AF AG@4 AH@2
>`.pickRestart({
  A: "[gb5@3 ~ gb5@3 ~ gb5@3 bb5 ~@2 eb5@6 eb5@2 ~@2 eb5@3 f5 ~@2 gb5@6 gb5@2 ~@2 gb5@3 bb5 ~@2 db5@6 db5@4 eb5@4 f5@4]/4",
  B: "gb5/2", C: "bb4!2 ~ bb4 ~@4", D: "gb4!2 ~ gb4 ~@4", E: "b4!2 ~ b4 ~@4", F: "bb4!2 ~ bb4 ~ bb4 ab4 gb4",
  G: "bb4!2 ~ bb4 ~ bb4 [bb4,db5] [ab4,f5]", H: "[[gb4,gb5]@15 ~]/4", I: "[[gb4,gb5]@12 ~ db4 db4@2]/2",
  J: "[gb4@2 ab4 bb4@2 b4 bb4@8 gb4@2]/2", K: "[db5@2 b4 b4@3 bb4 bb4@3 ab4 ab4@3 gb4@2]/2",
  L: "[gb4@2 ab4 bb4@3 ab4 ab4@2 gb4@5 ~ eb4]/2", M: "[eb4 f4@2 gb4@2 ab4@2 gb4@3 f4@2 gb4@2 ab4@2]/2",
  N: "bb4@3 b4 bb4@3 b4", O: "bb4@3 gb4", P: "db5@2 b4 b4@3 bb4@2", Q: "bb4 ab4 gb4!2", R: "gb4!2", S: "ab4 a4",
  T: "[a4@3 ~ a4@3 ~ a4@3 db5 ~@2 gb4@6 gb4@2 ~@2 gb4@3 ab4 ~@2 a4@6 a4@2 ~@2 a4@3 db5 ~@2 d5@6 db5@4 d5@4 e5@4]/4",
  U: "bb4", V: "db5 b4", W: "bb4 ab4", X: "b4 bb4", Y: "ab4 gb4", Z: "db5",
  AA: "[gb5@3 ~ gb5@3 ~ gb5@3 bb5 ~@2 eb5@6 eb5@2 ~@2 eb5@3 f5 ~@2 gb5@6 gb5@2 ~@2 gb5@3 bb5 ~@2 eb5@6 db5@4 b4@4 bb4@4]/4",
  AB: "[gb4,gb5]/2", AC: "[gb4,gb5]@3 ~ [gb4,gb5]@3 ~ [gb4,gb5]@2 ~ [gb4,gb5]@2 [gb4,gb5]@2 ~",
  AD: "[gb4,gb5]@2 [gb4,gb5]@2 [gb4,gb5]@2 [gb4,gb5]@2 [gb4,gb5]!2 ~ [gb4,gb5]!3 ~ [gb4,gb5]", AE: "gb5", AF: "e5",
  AG: "[gb5@3 ~ gb5@3 ~ gb5@3 bb5 ~@2 eb5@6 eb5@2 ~@2 eb5@3 f5 ~@2 gb5@6 gb5@2 ~@2 gb5@3 bb5 ~@2 db5@6 db5@4 [eb5,gb5]@4 [f5,ab5]@4]/4", // Ebm Fm
  AH: "[gb5,bb5]/2", // Gb
})).s("gm_clarinet").gain(0.45)

// other · clarinet · "B♭ Clarinet"
const clarinet_2 = note(`<
  A@4 B@2 C D C E C D C E F@4 G H I@2 J@2 K@2 L@2 M@3 N O P Q R S@4 T@2 ~@9 U V W X Y ~@11 Z AA@4 ~@16 F@4 G AB C D C E
  C D C E F@4 AC AD AE AF A@4 B@2
>`.pickRestart({
  A: "[db5@3 ~ db5@3 ~ db5@3 db5 ~@2 b4@6 b4@2 ~@2 b4@3 db5 ~@2 db5@6 db5@2 ~@2 db5@3 db5 ~@2 ab4@6 ab4@4 bb4@4 bb4@4]/4",
  B: "db5/2", C: "gb4!2 ~ gb4 ~@4", D: "eb4!2 ~ eb4 ~@4", E: "f4!2 ~ f4 ~ ab4 f4!2", F: "[bb4@15 ~]/4", G: "bb4",
  H: "ab4@4 ~ db4 db4@2", I: "[eb4@2 f4 gb4@2 ab4 gb4@8 eb4@2]/2", J: "[f4@2 gb4 gb4@3 f4 gb4@3 f4 eb4@3 eb4@2]/2",
  K: "[gb4@2 f4 eb4@3 f4 f4@2 eb4@5 ~ gb4]/2", L: "[gb4 f4@2 eb4@2 db4@2 eb4@3 db4@2 eb4@2 f4@2]/2",
  M: "gb4@3 gb4 gb4@3 gb4", N: "gb4@3 gb4", O: "gb4@2 f4 eb4@3 db4@2", P: "eb4!4", Q: "d4", R: "e4",
  S: "[e4@3 ~ e4@3 ~ e4@3 e4 ~@2 d4@6 d4@2 ~@2 d4@3 e4 ~@2 e4@6 e4@2 ~@2 e4@3 e4 ~@2 b4@6 a4@4 a4@4 ab4@4]/4",
  T: "gb4/2", U: "gb4", V: "ab4!2", W: "gb4 f4", X: "eb4!2", Y: "f4 eb4", Z: "f4",
  AA: "[db5@3 ~ db5@3 ~ db5@3 db5 ~@2 b4@6 b4@2 ~@2 b4@3 db5 ~@2 db5@6 db5@2 ~@2 db5@3 db5 ~@2 gb4@6 f4@4 eb4@4 db4@4]/4",
  AB: "ab4", AC: "bb4@3 ~ bb4@3 ~ bb4@2 ~ bb4@2 bb4@2 ~", AD: "bb4@2 bb4@2 bb4@2 bb4@2 bb4!2 ~ bb4!3 ~ bb4", AE: "d5",
  AF: "b4",
})).s("gm_clarinet").gain(0.4)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A@4 B@2 C D C E C D C F G@4 H I ~ J K L M N O P G@4 Q@2 H R S@4 T@2 ~@2 U@2 V W X Y T@2 ~@15 I Z@4 AA AB AC AD AE AF
  AE AG ~@8 G@4 H I C D C E C D C F G@4 AH AI AJ AK A@4 B@2
>`.pickRestart({
  A: "[gb4@3 ~ gb4@3 ~ gb4@3 f4 ~@2 eb4@6 eb4@2 ~@2 eb4@3 f4 ~@2 gb4@6 gb4@2 ~@2 gb4@3 f4 ~@2 db4@6 db4@4 eb4@4 db4@4]/4",
  B: "bb3/2", C: "gb4!2 ~ gb4 ~@4", D: "eb4!2 ~ eb4 ~@4", E: "f4!2 ~ f4 ~ f4!3", F: "f4!2 ~ f4 ~ db4 eb4 f4",
  G: "[gb4@15 ~]/4", H: "gb4", I: "f4", J: "db4 d4 eb4 f4 gb4 f4 eb4 db4", K: "eb4", L: "bb3", M: "gb4@3 db4",
  N: "eb4!2", O: "b3", P: "db4 f4", Q: "gb4/2", R: "e4",
  S: "[a4@3 ~ a4@3 ~ a4@3 ab4 ~@2 gb4@6 gb4@2 ~@2 gb4@3 ab4 ~@2 a4@6 a4@2 ~@2 a4@3 ab4 ~@2 e4@6 d4@4 e4@4 e4@4]/4",
  T: "db4/2", U: "[~@2 db4@2 b3@2 bb3 bb3@3 ab3 gb3@3 gb4@2]/2", V: "gb4@2 db4 eb4", W: "e4 eb4", X: "db4!2 b3@2",
  Y: "bb3 ab3 gb4@2",
  Z: "[gb4@3 ~ gb4@3 ~ gb4@3 f4 ~@2 eb4@6 eb4@2 ~@2 eb4@3 f4 ~@2 gb4@6 gb4@2 ~@2 gb4@3 f4 ~@2 gb4@6 f4@4 eb4@4 db4@4]/4",
  AA: "db4 b3", AB: "bb3!2 ab3@2", AC: "b3!2 bb3@2", AD: "ab3 gb3", AE: "eb4 f4", AF: "gb4 [b3,b4]",
  AG: "gb4 [db4,db5]", AH: "gb4@3 ~ gb4@3 ~ gb4@2 ~ gb4@2 gb4@2 ~", AI: "f4@2 f4@2 f4@2 f4@2 f4!2 ~ f4!3 ~ f4",
  AJ: "a4", AK: "db4",
})).s("gm_alto_sax").gain(0.45)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A@4 B@2 C@2 D@3 E F@2 G@2 H I J K L M L N L M L N O@4 P@2 Q R S@4 T U T U V@2 W X Y Z AA@2 AB@2 P@2 AC AD AE AF ~@7 K
  AG@4 AB@2 P@2 AB@2 P@2 ~@8 G@2 H AH AI AJ AK@2 AL@2 AM@2 AN@2 G@2 H AH AO AP AQ AR AS@6
>`.pickRestart({
  A: "[db3@3 ~ db3@3 ~ db3@3 db3 ~@2 b2@6 b2@2 ~@2 b2@3 db3 ~@2 db3@6 db3@2 ~@2 db3@3 db3 ~@2 ab3@6 ab3@4 bb3@4 bb3@4]/4",
  B: "[[db3,db4]@6 ~ db3]/2", C: "[eb3@2 f3 gb3@2 gb3 gb3@8 gb3@2]/2",
  D: "[f3@2 f3@2 f3@2 f3 gb3@3 db3@2 db3@2 db3 gb3@3 ~ gb3!2 f3 eb3 db3]/3", E: "eb3@2 ~ eb3",
  F: "[gb3@2 f3 f3@3 eb3 eb3@3 eb3@2 eb3@2 db3@2]/2", G: "eb3@3 eb3 eb3@3 eb3", H: "gb3@3 gb3 gb3@3 gb3",
  I: "gb3@6 ~ eb3", J: "eb3@4 eb3@3 eb3", K: "f3", L: "gb3!2 ~ gb3 ~@4", M: "eb3!2 ~ eb3 ~@4",
  N: "f3!2 ~ f3 ~ ab3 f3!2", O: "[eb3@15 ~]/4", P: "eb3/2", Q: "a3", R: "b3",
  S: "[e3@3 ~ e3@3 ~ e3@3 e3 ~@2 d3@6 d3@2 ~@2 d3@3 e3 ~@2 e3@6 e3@2 ~@2 e3@3 e3 ~@2 b3@6 db4@4 d4@4 db4@4]/4",
  T: "gb3!4", U: "ab3!2 gb3!2", V: "[~@2 db4@2 b3@2 bb3 bb3@3 ab3 gb3@3 gb3@2]/2", W: "gb3@2 db4 eb4", X: "e4 eb4",
  Y: "db4!2 b3@2", Z: "bb3 ab3 gb3@2", AA: "db4/2", AB: "ab3/2", AC: "gb3 f3", AD: "eb3!2", AE: "eb3 db3", AF: "b2 db3",
  AG: "[db3@3 ~ db3@3 ~ db3@3 db3 ~@2 b2@6 b2@2 ~@2 b2@3 db3 ~@2 db3@6 db3@2 ~@2 db3@3 db3 ~@2 gb3@6 f3@4 eb3@4 db3@4]/4",
  AH: "gb3@3 gb3", AI: "gb3@4 f3@3 f3", AJ: "f3@4 f3@3 gb3", AK: "[eb3@2 f3 gb3@2 ab3 gb3@8 eb3@2]/2",
  AL: "[gb3@2 f3 f3@3 eb3 eb3@3 db3 eb3@3 eb3@2]/2", AM: "[gb3@2 f3 eb3@3 db3 eb3@7 ~ eb3]/2",
  AN: "[eb3 db3@2 b2@2 db3@2 eb3@3 db3@2 db3@2 db3@2]/2", AO: "gb3@2 gb3 gb3@3 gb3@2", AP: "gb3 f3 eb3!2", AQ: "d3 e3",
  AR: "e3!2", AS: "db3/6",
})).s("gm_tenor_sax").gain(0.45)

// bass · clarinet · "Bass Clarinet"
const bass = note(`<
  A@4 B@2 C@2 D E@2 F G@2 H I J K L M N O N P N O N Q R@4 S@2 T U V@4 W X W X W X W X W X W X Y@2 S@2 Z@2 AA AB ~@7 M
  AC@4 Y@2 S@2 Y@2 S@2 ~@8 H I J AD L AE AF@2 AG@2 AH@2 AI@2 H I J AJ AK AL AM AN AO@6
>`.pickRestart({
  A: "[gb3@3 ~ gb3@3 ~ gb3@3 bb3 ~@2 gb3@6 gb3@2 ~@2 gb3@3 f3 ~@2 gb3@6 gb3@2 ~@2 gb3@3 bb3 ~@2 ab3@6 ab3@4 gb3@4 f3@4]/4",
  B: "[gb3@6 ~ db3]/2", C: "[b2@2 b2 db3@2 db3 eb3@8 eb3@2]/2", D: "db3 gb3!3",
  E: "[bb3@2 ab3@2 ab3@2 bb3 bb3@3 ~ gb3!2 ab3 bb3 ab3]/2", F: "gb3@2 ~ b2",
  G: "[db3@2 b2 b2@3 bb2 bb2@3 b2@2 b2@2 bb2@2]/2", H: "gb3@3 gb3 gb3@3 gb3", I: "b2@3 b2 b2@3 b2",
  J: "ab3@3 ab3 ab3@3 ab3", K: "db3@6 ~ b2", L: "b2@4 b2@3 b2", M: "db3", N: "gb3!2 ~ gb3 ~@4", O: "eb3!2 ~ eb3 ~@4",
  P: "f3!2 ~ f3 ~ f3!3", Q: "f3!2 ~ f3 ~ db3!2 b2", R: "[b2@15 ~]/4", S: "b2/2", T: "d3", U: "e3",
  V: "[a3@3 ~ a3@3 ~ a3@3 db4 ~@2 a3@6 a3@2 ~@2 a3@3 ab3 ~@2 a3@6 a3@2 ~@2 a3@3 db4 ~@2 b3@6 db4@4 a3@4 db4@4]/4",
  W: "bb2!2 b2!2", X: "db3!2 b2!2", Y: "eb3/2", Z: "b2!2", AA: "ab3 bb3", AB: "b3 db4",
  AC: "[gb3@3 ~ gb3@3 ~ gb3@3 bb3 ~@2 gb3@6 gb3@2 ~@2 gb3@3 f3 ~@2 gb3@6 gb3@2 ~@2 gb3@3 bb3 ~@2 eb3@6 db3@4 b2@4 bb2@4]/4",
  AD: "db3@3 b2", AE: "db3@4 db3@3 db3", AF: "[gb3@2 ab3 bb3@2 b3 bb3@8 gb3@2]/2",
  AG: "[db4@2 b3 b3@3 bb3 bb3@3 ab3 ab3@3 gb3@2]/2", AH: "[gb3@2 ab3 bb3@3 ab3 ab3@3 gb3@4 ~ b3]/2",
  AI: "[b3 bb3@2 ab3@2 bb3@2 bb3@3 ab3@2 gb3@2 ab3@2]/2", AJ: "db3@3 db3", AK: "db3@2 eb3 eb3@3 eb3@2",
  AL: "db3 b2!2 bb2", AM: "a2!2", AN: "db3 b2", AO: "gb3/6",
})).s("gm_electric_bass_finger").gain(0.4)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A@4 B@2 C D E F C D E F G H I J I J C D E F C D E F G H I J I J K L M@4 N@12 O P Q R S@2 T@2 ~@6 U@2 V@4 O P Q R S@2
  T@2 ~@8 G H I J I J C D E F C D E F G H I J I J W X A@4 B@2
>`.pickRestart({
  A: "[gb2@3 ~ gb2@3 ~ gb2@3 bb2 ~@2 b2@6 b2@2 ~@2 b2@3 db3 ~@2 gb2@6 gb2@2 ~@2 gb2@3 bb2 ~@2 ab2@6 bb2@4 b2@4 db3@4]/4",
  B: "gb2/2", C: "gb2@3 gb2 db2@4", D: "eb2@3 eb2 bb2@4", E: "b2@3 b2 gb2@4", F: "[db2,db3]@3 [db2,db3] ab2@4",
  G: "gb2 ~ gb2 ~ gb2 ~ gb2 ~", H: "eb2 ~ eb2 ~ eb2 ~ eb2 ~", I: "b2 ~ b2 ~ b2 ~ b2 ~",
  J: "[db2,db3] ~ [db2,db3] ~ [db2,db3] ~ [db2,db3] ~", K: "gb2", L: "[e2,ab2]",
  M: "[a2@3 ~ a2@3 ~ a2@3 [db2,db3] ~@2 [d2,d3]@6 [d2,d3]@2 ~@2 [d2,d3]@3 [e2,e3] ~@2 a2@6 a2@2 ~@2 a2@3 [db2,db3] ~@2 b2@6 db3@4 d3@4 db3@4]/4", // Db D E Db
  N: "gb2@2 gb2 bb2 b2@2 b2 bb2", O: "ab2 bb2", P: "b2 ab2", Q: "[eb2,eb3] [f2,f3]", R: "[gb2,gb3] [eb2,eb3]",
  S: "b2/2", T: "ab2/2", U: "[db2,db3]/2",
  V: "[gb2@3 ~ gb2@3 ~ gb2@3 bb2 ~@2 b2@6 b2@2 ~@2 b2@3 db3 ~@2 gb2@6 gb2@2 ~@2 gb2@3 bb2 ~@2 b2@6 bb2@4 ab2@4 gb2@4]/4",
  W: "d2", X: "e2",
})).s("gm_baritone_sax").gain(0.4)

stack(flute, flute_2, clarinet, clarinet_2, alto_sax, tenor_sax, bass, baritone_sax)

More by They Might Be Giants