Strudelify

thomas the tank engine theme

Misc Cartoons

KeyF majorTempo260 bpm
0:00/0:00
// thomas the tank engine theme — Misc Cartoons
// 260 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5976790; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 242 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(260/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 · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A B A B C@4 D@2 E F G@2 H ~ I@2 J@2 K L M N O P Q B R@2 S T I@2 U@2 V W X N Y Z AA ~ AB AC AD AE AF AG AH@2 AI AJ@3 AK
  AL AM@4 AN AO AP F AQ@2 H ~ AR@2 AS@2 K AT M AU AV AW AA ~@3 AX AY AZ@4 BA BB BC BD BE BF ~ BG AI BH BI BJ BK BL BM BN
  AI AJ@3 BO AL BP@3 ~ BQ BR BS BT ~@23 BU AP BV BW BX BY BZ CA CB ~@8 CC@2 CD@2 CE CF CG@4 CH@4 CI@4 CJ@4 CK@2 CL ~
  CM@2 CN@2 CO CP CQ CR CS CT CU ~ CV@3 CW CM@2 CX@2 CY CZ DA DB CS CT CU ~@2 DC DD DE DF DG DH DI DJ DK@3 DL DM ~@2
  DN@2 DO@2 DP DQ ~ DR@5
>`.pickRestart({
  A: "~@2 eb5!2 ~@2 eb5!2", B: "~@2 eb5 ~ eb5 ~@3",
  C: "[eb5@52 ~@4 g3 [ab3,a3] bb3 [b3,c4] db4 [d4,eb4] e4 [f4,gb4]]/4", D: "g4/2", E: "g4 gb4 g4 a4 g4 gb4 g4 a4",
  F: "g4 ~@7", G: "[g4@4 a4@2 ~@2 b4@2 ~@2 c5@8 d5@2 ~@2 e5@4 [eb5,e5] [db5,d5] [b4,c5] [a4,bb4]]/2", H: "ab4",
  I: "[a4@2 f4 ~ a4@2 g4@8 ~ ab4]/2", J: "[a4@2 f4 ~ f4@2 a4 g4@3 ~ gb4 g4 gb4 g4 gb4]/2", K: "g4@4 g4 ~@3",
  L: "~@3 gb4 g4 gb4 g4 ~", M: "ab4@4 ab4 ~@3", N: "~ eb4@3 f4 ~ gb4@2", O: "g4@3 ab4@2 a4@3 bb4@8", P: "f4 g4",
  Q: "ab4@3 ~ eb5@2 eb5@2 ~@4 eb5@2 eb5@2", R: "[g4@2 a4 ~ b4 ~ c5@3 d5 ~ c5 e5 d5 c5 bb4]/2", S: "ab4 bb4 ab4@6",
  T: "~@12 gb4 g4 ~ ab4", U: "[a4@2 f4 e4 f4 ~ a4 g4@3 ~ gb4 g4 gb4 g4 gb4]/2", V: "g4@6 g4 ~@9",
  W: "~ g4 ~ gb4 g4 gb4 g4 ~", X: "ab4@6 ab4 ~@9", Y: "g4@3 bb4@5", Z: "f4@3 g4@5", AA: "ab4@3 ~@13",
  AB: "~@2 db5 ~@2 db5 ~@2", AC: "db5!2 ~ db5@3 ~@2", AD: "~@2 c5 ~@2 c5 ~@2", AE: "c5!2 ~ c5@3 ~@2",
  AF: "~@2 bb4 ~@2 bb4 ~@2", AG: "bb4!2 ~ bb4@3 ~@2", AH: "[c5@12 ~ ab4@3]/2", AI: "f4 ~ f4 ~ bb4 ~ bb4 ~",
  AJ: "[db5!2 ~ f5@3 ~ ab5@3 g5 ab5 g5 f5 ~ c5@3 bb4 c5 bb4 ab4 f4 ~]/3", AK: "~ bb4@3 bb4 ab4 f4 ~",
  AL: "c5 ~@2 bb4@2 c5 d5 ~", AM: "[eb5@28 ~ ab4 a4 bb4]/4", AN: "b4 a4 b4 c5 d5 db5 d5 eb5",
  AO: "f5@2 g5 f5 e5@2 eb5@2 d5@2 c5@2 b4@2 a4@2", AP: "g4 gb4 g4 ab4 g4 gb4 g4 ab4",
  AQ: "[g4 ~ a4 ~ b4 ~ c5@4 d5 ~ e5@4]/2", AR: "[a4 ~ f4 ~ a4@2 g4@6 ~@2 ab4@2]/2",
  AS: "[a4@2 f4 ~ f4@2 a4 g4@3 ~ gb4 g4 gb4 g4 ~]/2", AT: "~ g4 ~ gb4 g4 ~ g4 ~", AU: "~ eb4@3 f4 ~ gb4 ~",
  AV: "g4@3 ab4@2 a4@3 bb4@2 ~ ab4@2 ~ gb4@2, ~@10 a4@2 ~ g4@2 ~", AW: "f4 gb4 g4@2", AX: "c5 ~ c5 ~ bb4 ~ bb4 ~",
  AY: "ab4 gb4 g4 bb4 ab4 f4 eb4 ab4", AZ: "[a4@8 ab4 a4 ~ bb4 b4@12 ~@8]/2", BA: "~@5 db5 bb4 gb4", BB: "g4 db4 ~@6",
  BC: "~@10 b3@2 c4 eb4 ~ f4", BD: "ab4@2 ab4 ~@13", BE: "~@4 [eb5,f5] eb5@3 ~@4 [db5,eb5] db5@3",
  BF: "~@4 [c5,d5] c5@3 ~@4 [bb4,c5] bb4@3", BG: "~ ab4@3 g4 ~ gb4 ~", BH: "db5!2 ~ f5@5",
  BI: "~ eb4 ab4 eb4 ab4 ~ ab4 ~", BJ: "c5!2 ~ eb5@5", BK: "~ db4 f4 db4 f4 ~ f4 ~", BL: "bb4!2 ~ db5@3 ~ db5",
  BM: "c5@3 bb4 c5 db5 ~ eb5", BN: "~ c5 ~ bb4 ~ ab4@3", BO: "bb4 ~ bb4 ~ bb4 ab4 f4 ~", BP: "eb5/3",
  BQ: "~ g5@3 e5 d5 b4 bb4", BR: "a4@2 g4@2 f4@4 [g4,a4] g4@3 [g4,a4] g4@3", BS: "bb4 b4 d5@6 bb4 b4 d4@6",
  BT: "e4 d4 e4 d4@3 ~@2", BU: "~@5 ab4@3", BV: "a4 g4 e4 d4 db4 c4 b3 db4",
  BW: "b3@2 c4@2 eb4@2 f4@2 [ab4,bb4] ab4@3 f4@2 eb4@2", BX: "c4 b3 bb3 ab3 bb3 f3 ab3 bb3",
  BY: "c4 db4 a3 c4 bb3 c4 db4 eb4", BZ: "e4 g4 ab4 b4 eb5 db5 bb4 b4", CA: "c5 ~ eb5 ~ f5@2 eb5 ~", CB: "ab5@3 ~@13",
  CC: "[ab4@3 bb4]/2", CD: "c5/2", CE: "c5", CF: "bb4", CG: "[eb5@7 ~]/4", CH: "[b4@7 ~]/4", CI: "[bb4@7 ~]/4",
  CJ: "[db5@7 ~]/4", CK: "[db4@2 eb4 ~ f4 ~ gb4@4 ab4 ~ bb4@4]/2", CL: "d4", CM: "[eb5@2 b4 ~ eb5@2 db5@8 ~ d5]/2",
  CN: "[eb5@2 b4 ~ b4@2 eb5 db5@3 ~ c5 db5 c5 db5 c5]/2", CO: "db5@4 db5 ~@3", CP: "~@3 c5 db5 c5 db5 ~",
  CQ: "d5@4 d5 ~@3", CR: "~ a4@3 b4 c5@3", CS: "db5 e5", CT: "b4 db5", CU: "d5@3 ~@13",
  CV: "[~ db4@3 eb4 ~ f4 gb4@2 eb4 gb4 a4 bb4 ab4 gb4 d4@9]/3", CW: "~@5 a4 db5 d5",
  CX: "[eb5@2 b4 bb4 b4 ~ eb5 db5@3 ~ c5 db5 c5 db5 c5]/2", CY: "db5@2 d5 db5 c5@2 db5@2 ~@8",
  CZ: "~@2 db5@2 ~@2 c5@2 db5 ~ c5@2 db5@2 ~@2", DA: "d5@2 eb5 d5 db5@2 d5@2 ~@8", DB: "~ e4 a4 e4 b4 b4@3",
  DC: "~@5 d4@3", DD: "a4", DE: "~@5 b3@3", DF: "g4", DG: "db4", DH: "e4", DI: "d4@4 ~ d4@3", DJ: "b3 ~ b3 ~ e4 ~ e4 ~",
  DK: "[g4!2 ~ b4@3 ~ d5@3 db5 d5 db5 b4 ~ gb4@3 e4 gb4 e4 d4 b3 ~]/3", DL: "~ e4@3 e4 d4 b3 ~",
  DM: "gb4 ~@2 e4@2 gb4 ab4 ~", DN: "[a4@9 gb5@3 a4 ~ d5 ~]/2", DO: "[gb5@3 bb4@11 ~@2]/2", DP: "b4",
  DQ: "b4 c5 db5 gb5 a4 ab4 g4 e5", DR: "[~@6 e5@29 ~@5]/5",
})).s("gm_alto_sax").gain(0.31)

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

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

// other · tenor sax · "Tenor Saxophone"
const tenor_sax_2 = note(`<
  ~@4 A@4 B@2 C D E@2 F ~ G@2 H@2 I J K L M N O ~ P@2 Q R S@2 T@2 U V U L W X Y ~@8 Z AA AB@3 AC AD AE AF@2 AG AH@4 AI
  AJ AK AL AM AN AO AP AQ AI AR AS AT AI AU AV AW@2 AX ~ AY@2 AZ@2 BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BI
  BQ@3 BR BS BT BU BV BW BX@2 BV BY ~@40 BZ@2 CA@4 ~@8 CB@4 CC CD CE@2 CF@2 CG ~ CH@2 CI@2 CJ CK CL CM CN CO CP ~ CQ@3
  CR CH@2 CS@2 CT CU CV CW CN CO CP ~@2 Z CX CY CX CZ CG DA DB DC@3 DD DE ~@2 DF@2 DG@2 DH DI ~ DJ@5
>`.pickRestart({
  A: "[eb4@13 ~ g3@2]/4", B: "g3/2", C: "g3 gb3 g3 a3 g3 gb3 g3 a3", D: "g3 ~@7",
  E: "[e3@4 g3@2 ~@2 a3@2 ~@2 a3@8 b3@2 ~@2 d4@4 [db4,d4] [b3,c4] [a3,bb3] [g3,ab3]]/2", F: "f3, gb3 ~@15",
  G: "[c4@2 a3 ~ c4@2 b3@8 ~ b3]/2", H: "[c4@2 a3 ~ a3@2 c4 b3@3 ~ bb3 b3 bb3 b3 bb3]/2", I: "bb3@4 bb3 ~@3",
  J: "~@3 e3 f3 e3 f3 ~", K: "f3@4 f3 ~@3", L: "~ g3@3 g3 ~ e3@2", M: "f3@3 gb3@2 g3@3 ab3@8", N: "db3 f3",
  O: "f3@3 ~@13", P: "[e3@2 g3 ~ a3 ~ a3@3 a3 ~ a3 c4 b3 a3 g3]/2", Q: "f3 g3 f3@4 ~ eb5",
  R: "d5 c5 bb4 ab4 g4 f4 eb4 d4", S: "[f4@4 d4 c4 b3@3 c4 a3 f3 g3 b3 d4 e4]/2",
  T: "[f4@2 c4 ~ bb3@2 f3 b3@3 ~ bb3 b3 bb3 b3 bb3]/2", U: "eb3@6 eb3 ~@9", V: "~ eb3 ~ d3 eb3 d3 eb3 ~",
  W: "f3@3 ab3@5", X: "g3@3 f3@5", Y: "c4@3 ~@13", Z: "~@5 gb3@3", AA: "f3 ~ f3 ~ ab3 ~ ab3 ~",
  AB: "[bb3!2 ~ db4@3 ~ f4@3 e4 f4 e4 eb4 ~ ab3@3 g3 ab3 g3 f3 eb3 ~]/3", AC: "~ ab3@3 ab3 f3 d3 ~",
  AD: "ab3 ~@2 ab3@2 ab3 bb3 ~", AE: "~@4 eb4 bb4 eb4 d4", AF: "[db4@3 g4@2 eb4 db4 c4@2 eb4 c4 bb3 g3 bb3 a3 g3]/2",
  AG: "ab3 c4 db4 f4 c5 bb4@3", AH: "[g3@25 ~@7]/4", AI: "~@2 g3 ~@3 g3 ~", AJ: "~@2 g3 ~@3 g3@2",
  AK: "ab3 ~ g3 ~ gb3 g3 gb3 f3", AL: "e3 ~ eb3 ~ d3@2 eb3 ~", AM: "~@2 bb3 ~@3 bb3 ~", AN: "g4 gb4 g4 a4 g4 ~@3",
  AO: "~@2 a3 ~@3 a3 ~", AP: "b3 g4 b3 bb3 a3 f4 a3 ab3", AQ: "g3@2 g3@2 ~@2 g3 ~",
  AR: "~@4 c4 ~ b3@2 c4@2 eb4@2 f4@2 eb4@2", AS: "ab4@2 f4 eb4 ~ ab3@3", AT: "~@2 ab3 ~@3 ab3 ~",
  AU: "~@2 d5!2 ~@2 d5 ~", AV: "~@2 d5 ~ d5 ~@3", AW: "[g3 ~ a3 ~ b3 ~ c4@4 d4 ~ e4@4]/2", AX: "ab3",
  AY: "[a3 ~ f3 ~ a3@2 g3@6 ~@2 ab3@2]/2", AZ: "[a3@2 f3 ~ f3@2 a3 g3@3 ~ gb3 g3 gb3 g3 ~]/2", BA: "g3@4 g3 ~@3",
  BB: "~ g3 ~ gb3 g3 ~ g3 ~", BC: "ab3@4 ab3 ~@3", BD: "~ eb3@3 f3 ~ gb3 ~",
  BE: "g3@3 ab3@2 a3@3 bb3@2 ~ ab3@2 ~ gb3@2, ~@10 a3@2 ~ g3@2 ~", BF: "f3 gb3 g3@2", BG: "ab3@3 ~@13",
  BH: "~ bb3@3 a3 ~ ab3 ~", BI: "ab3 ~ ab3 ~ db4 ~ db4 ~", BJ: "f4!2 ~ ab4@5", BK: "~ ab3 c4 ab3 c4 ~ c4 ~",
  BL: "eb4!2 ~ ab4@5", BM: "~ f3 ab3 f3 ab3 ~ ab3 ~", BN: "db4!2 ~ f4@3 ~ f4", BO: "eb4@3 db4 eb4 f4 ~ f4",
  BP: "~ eb4 ~ c4 ~ c4@3", BQ: "[f4!2 ~ ab4@3 ~ c5@3 bb4 c5 bb4 ab4 ~ eb4@3 db4 eb4 db4 c4 ab3 ~]/3",
  BR: "d4 ~ d4 ~ d4 bb3 g3 ~", BS: "d4 ~@2 d4@2 eb4 f4 ~", BT: "eb4!4", BU: "db4!4", BV: "c4!4", BW: "bb3!4",
  BX: "b3!4", BY: "c4!2 b3!2", BZ: "[f3@3 g3]/2", CA: "ab3/2", CB: "[bb4@7 ~]/4", CC: "~ ab2 c3 db3 eb3 f3 gb3 ab3",
  CD: "bb3 c4 db4 eb4 f4 gb4 ab4 bb4", CE: "[db5 ~ db5 ~ db5@2 bb4 db5@9]/2",
  CF: "[gb3@2 f3 ~ ab3 ~ bb3@4 b3 ~ db4@4]/2", CG: "gb3", CH: "[b3@2 ab3 ~ b3@2 b3@8 ~ bb3]/2",
  CI: "[b3@2 ab3 ~ ab3@2 b3 b3@3 ~ bb3 b3 bb3 b3 bb3]/2", CJ: "e4@4 e4 ~@3", CK: "~@3 eb4 e4 eb4 e4 ~",
  CL: "gb4@4 gb4 ~@3", CM: "~ b3@3 a3 bb3@3", CN: "b3 db4", CO: "g3 a3", CP: "b3@3 ~@13",
  CQ: "[~ f3@3 gb3 ~ ab3 bb3@2 gb3 bb3 c4 db4 c4 bb3 gb3@9]/3", CR: "~@5 gb3 a3 bb3",
  CS: "[b3@2 ab3 g3 ab3 ~ b3 b3@3 ~ bb3 b3 bb3 b3 bb3]/2", CT: "a3@2 bb3 a3 ab3@2 a3@2 ~@8",
  CU: "~@2 a3@2 ~@2 ab3@2 a3 ~ ab3@2 a3@2 ~@2", CV: "b3@2 c4 b3 bb3@2 b3@2 ~@8", CW: "~ e3 gb3 e3 a3 bb3@3", CX: "b3",
  CY: "~@5 d3@3", CZ: "e3", DA: "gb3@4 ~ gb3@3", DB: "d3 ~ d3 ~ g3 ~ g3 ~",
  DC: "[b3!2 ~ d4@3 ~ gb4@3 e4 gb4 e4 d4 ~ a3@3 g3 a3 g3 gb3 d3 ~]/3", DD: "~ ab3@3 ab3 e3 d3 ~",
  DE: "ab3 ~@2 ab3@2 a3 b3 ~", DF: "[gb3@9 d4@3 gb3 ~ b3 ~]/2", DG: "[d4@3 ab3@11 ~@2]/2", DH: "g3",
  DI: "g3 a3 bb3 d4 g3 f3 e3 db4", DJ: "[~@6 gb3@29 ~@5]/5",
})).s("gm_tenor_sax").gain(0.4)

// chords · piano
const piano = note(`<
  A B A B C@4 D E F G ~@14 A B ~@8 H@2 I@2 ~@4 J K L M N O P ~ J K L M Q R S T U V W X Y Z AA@2 AB@2 AC AD AC AD AE@2
// … 149 more lines

More by Misc Cartoons