Strudelify

Molly on the Shore

Percy Grainger

KeyB♭ majorTempo224 bpm
0:00/0:00
// Molly on the Shore — Percy Grainger
// 224 bpm, 2/2, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5946411; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 195 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(224/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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(`<
  ~@10 A ~ A ~ A ~@11 B@2 C D E F E G H I J K L M J N O P Q R S T Q R U V W X Y V Z AA AB AC AD AE AF M AF AG AH AI AJ
  AK AL AI AM AN AO@2 AP ~ AO@2 AQ AR AS AT AU AV AW AX AY AZ BA BB BA BC BA BB BA BD ~@24 BE BF BG BH BI BJ BE BK@2
  BL@2 BM BN BO@2 BP BQ BR BS BT BU BV BW BX BY BZ CA CB BY BZ CA CB CC CD CE CF CG CH@2 CI ~@32 CJ
>`.pickRestart({
  A: "ab4 ~@7", B: "c4 ~ bb4 ~", C: "c4 ~ bb4 eb4", D: "c4@4 eb4@4 bb4@4 eb4@2 eb4 db4",
  E: "c4 bb3 ab3 eb4 f4 db4 eb4 db4", F: "c4 db4 ~ c4 eb4@2 c4@2 db4@2 c4@2 ab3@2 bb3@2",
  G: "c4 db4 ~ c4 eb4@2 c4@2 db4@4 c4 ~@3", H: "c5@4 ~@2 eb4 ~ f4@2 ~@2 eb4@2 ~@2",
  I: "eb4@2 ~@2 d4@2 ~@2 db4@2 ~@2 f4 ~ g4 ~", J: "ab4@2 g4 ~ ab4 ~ eb4 ~ f4 ~ db4 ~ eb4 ~ c4 ~",
  K: "ab3 bb3 ~ ab3 c4 ~ ab3 ~ bb3@4 ab3 ~ eb4 ~", L: "ab4@2 bb4 ~ c5 ~ eb5 ~ f5 ~ db5 ~ eb5 ~ c5 ~",
  M: "ab4 bb4 ~ ab4 c5 ~ ab4 ~ bb4 ~ ab4 ~ f4 ~ g4 ~", N: "eb4 f4 ~ eb4 d4@2 f4@2 eb4@2 db4@2 c4 ~@3",
  O: "bb4@3 ab4 g4@2 ab4 ~", P: "g4@2 ab4 ~@3 ab4@2", Q: "bb4@2 db5@2 c5@3 bb4", R: "ab4@3 g4",
  S: "bb4@3 ab4 g4@2 ab4@2", T: "g4 ab4 ~ ab4", U: "db5 ~ bb4 ~ eb4@2 ~@2",
  V: "db5 c5 ~ bb4 c5 bb4 ~ ab4 db5 c5 ~ bb4 c5 bb4 ~ ab4", W: "ab4@2 db5@2 ab4@2 ~ ab4", X: "ab4@2 ab4@2 f4@3 ~",
  Y: "db5 ~ bb4@2 eb4@2 ~@2", Z: "eb5 db5 c5 bb4", AA: "bb4@2 c5@2 db5@3 ~", AB: "c5 ~ c4 ~ f4 ~ db4 ~",
  AC: "c5 ~ c4 ~ eb4 ~ db4 ~", AD: "c5 ~ c4 ~ db5 ~ db4 ~", AE: "ab4@2 ~@2 c4@2 ~@2 g4@4 ab4@2 c5 bb4",
  AF: "ab4 ~ f4 ~ eb4 ~ c5 ~ db5 ~ bb4 ~ c5 ~ bb4 ~", AG: "ab4 bb4 ~ ab4 c5 ~ ab4 ~ bb4@4 ab4 ~@3",
  AH: "~@6 eb4@2 ab4@2 g4 ~ ab4 ~ eb4 ~", AI: "f4 ~ db4 ~ eb4 ~ c4 ~ bb3 c4 ~ bb3 db4 ~ bb3 ~",
  AJ: "c4 ~ bb3 ~ ab3 ~ g4@2 ab4@2 g4 ~ ab4 ~ eb4 ~", AK: "f4 ~ db4 ~ eb4 ~ c4@2 db4 eb4 ~ db4 c4 ~ bb3 ~",
  AL: "ab3@4 ~@2 eb4@2 ab4@2 g4 ~ ab4 ~ eb4 ~", AM: "c4 ~ ab3 ~ f3 ~ g3 ~ ab3 ~ c4 ~ bb3 ~ db4 ~",
  AN: "c4 ~ eb4 ~ ab4 ~ f4 ~ eb4 ~ db4 ~ c4 ~ ab3 ~", AO: "~@4 e4 f4@3 ~@4 e4 f4@3", AP: "~@4 e4 f4@3 ~@4 d4 eb4@3",
  AQ: "~@3 d4", AR: "eb4@4 ~@2 eb4 ~ db4@4 c4 ~@3", AS: "ab3@3 c4 bb3@2 db4@2", AT: "c4 eb4 ab4 f4",
  AU: "eb4@3 c4 ab3@2 c4@2", AV: "bb3@3 db4", AW: "ab4@3 c5 bb4@2 db5@2", AX: "c5 eb5 ab5 f5",
  AY: "eb5@3 c5 ab4@2 c5@2", AZ: "bb4@4 ab4@2 ~ c5", BA: "db5!3 bb4 c5!3 bb4",
  BB: "ab4 bb4 ~ ab4 c5@2 ab4@2 bb4@2 ab4@2 f4@2 c5@2", BC: "ab4 bb4 ~ ab4 c5@2 ab4@2 bb4@4 ab4@2 f4@2",
  BD: "ab4 bb4 ~ ab4 c5@2 ab4@2 bb4@4 ab4@4", BE: "gb4 f4 gb4 db4", BF: "eb4 db4 b3 bb3",
  BG: "gb4@4 f4@4 gb4@4 ~@2 gb4 ~", BH: "ab4 gb4 eb4 f4", BI: "gb4@4 f4@4 db4@4 ~@2 gb4 ~", BJ: "gb4 db4 b3 bb3",
  BK: "[eb4 db4 c4 ab3@5]/2", BL: "c4 ~ eb4 ~ eb4 ~ db4 ~", BM: "c4 ~ eb4 ~ eb4 ~ eb4 ~", BN: "c4 eb4 bb4 eb4",
  BO: "c4@2 ~@2 eb4 ~ eb4 ~ bb4@2 ~@2 eb4@2 ~@2", BP: "c4 ~ c4 ~ eb4@2 ~@2 bb4@2 ~@2 ab4@2 ~@2",
  BQ: "eb5@4 ~@2 eb5 ~ f5@2 ~@2 eb5@2 ~@2", BR: "c5 ~ eb5 ~ d5 ~ db5 ~", BS: "c5@4 ~@2 eb5 ~ f5@2 ~@2 eb5@2 ~@2",
  BT: "c5@2 ~@2 d5@2 ~@2 eb5 ~ db5 ~ c5 ~ eb5@2", BU: "ab5 g5 ab5 eb5 f5 db5 eb5 c5",
  BV: "ab4 bb4 ~ ab4 c5@2 ab4@2 bb4@2 ab4@2 f4@2 g4@2", BW: "ab4 g4 ab4 f4 eb4 c4 db4 bb3",
  BX: "ab3 bb3 ~ ab3 c4@2 ab3@2 bb3@4 ab3 ~@3", BY: "eb4", BZ: "f4", CA: "eb4@3 f4 ab4@3 f4",
  CB: "eb4 c4 ab3 c4 bb3@2 ab3 ~", CC: "~@4 f5 e5 ~ eb5 d5 db5 ~ c5 b4 bb4 ~ a4",
  CD: "ab4 g4 ~ gb4 f4 e4 ~ eb4 d4 db4 ~ c4 b3 bb3 ~ a3", CE: "ab3 g3 ~ gb3 f3 eb4 ~ ab4 bb4 a4 ~ ab4 g4 gb4 ~ f4",
  CF: "e4 eb4 ~ d4 db4 c4 ~ b3 bb3 db4 ~ ab4 f5 e5 ~ eb5", CG: "d5 db5 ~ c5 b4 bb4 ~ a4 ab4 g4 ~ gb4 f4 e4 ~ eb4",
  CH: "d4 db4 ~ c4 b3 bb3 ~ a3 ab3 g3 ~ ab3 c4 e4 ~ eb4", CI: "bb3 a3 ~ ab3 g3 ~@11", CJ: "~@8 g4 [ab4,bb4] c5@2 ~@4",
})).s("gm_alto_sax").gain(0.4)

// other · alto sax · "Alto Saxophone" · soft notes
const alto_sax_soft = note(`<
  ~@9 A B C B D B E F G H I H J K L M N O@2 P ~@48 Q ~@2 R ~@17 S@2 T@4 U@4 V@2 W@2 X Y Z AA AB AC Z AA AB AC ~@39 AD AE
  AF AG AH AE AF AG AH AI@4 AJ AK AL AM AN@2 AO AP AQ@3 AR AS AT AU AV AW AX AY AZ BA
>`.pickRestart({
  A: "~@14 eb4 ~", B: "~@2 g4 ~ ab4 ~ eb4 ~ f4 ~ db4 ~ eb4 ~ c4 ~", C: "ab3 bb3 ~ ab3 c4 ~ ab3 ~ bb3 ~ ab3 ~ f3 ~ g4 ~",
  D: "ab3 bb3 ~ ab3 c4 ~ ab3 ~ bb3@4 ab3 ~ eb4 ~", E: "ab3 bb3 ~ ab3 c4 ~ ab3 ~ bb3 ~ ab3 ~ f3 ~ g3 ~",
  F: "ab3 ~ c4 ~ bb3 ~ db4 ~ c4 ~ eb4 ~ ab4 ~ f4 ~", G: "eb4 ~ c4 ~ ab3 ~ c4 ~ bb3@4 ab3 ~@3", H: "~@2 bb3 ~@3 c4 ~",
  I: "~@2 db4 ~@3 c4 ~", J: "~@2 d4 ~ db4 ~ c4 ~", K: "~@2 f4 ~@3 f4 ~", L: "~@2 db4 ~@3 d4 ~", M: "c4 ~ eb4 ~@3 bb3 ~",
  N: "c4@2 ~@4 d4 ~ db4@4 c4 ~@3", O: "~ eb4 ~ eb4", P: "~ eb4 ~@2", Q: "~@2 d4 ~ db4 ~ eb4 ~", R: "~ d4 eb4 ~",
  S: "[b3@3 bb3@2 db4 b3 bb3]/2", T: "[b3@3 bb3@2 db4 c4 b3@4 bb3@2 db4 b3 bb3]/4",
  U: "[b3@3 bb3@2 db4 b3@7 bb3 b3 bb3]/4", V: "[b3@5 bb3 db4@2]/2", W: "[c4@5 bb3 b3 bb3]/2", X: "b3@2 bb3 ab3",
  Y: "c4", Z: "ab4@3 gb4 f4@2 gb4@2", AA: "f4 gb4 ~ gb4", AB: "ab4@2 b4@2 bb4@3 ab4", AC: "gb4@3 f4",
  AD: "~@5 gb3 ~ f3 ab3@8", AE: "c4 f4!2 g4 c5@2 bb4 g4", AF: "c5@2 bb4 g4 eb4 f4 g4 eb4",
  AG: "c4 f4!2 g4 c5 bb4 c5 d5", AH: "eb5 c5 bb4 g4!2 f4 f4@2", AI: "c5/4", AJ: "c4 f4 f4@2 g4@2 f4 eb4",
  AK: "c4 eb4 bb3 eb4 c4 eb4 bb3 eb4", AL: "c4@2 f4@2 f4@2 g4@2 c5 d5 eb5 ~ bb4@2 g4@2", AM: "g4 f4!2 eb4 c4 eb4 ~@2",
  AN: "c4 ~@7", AO: "eb4 ~@3 f4 ~@3", AP: "c4 ~@3 db4 ~ c4 ~", AQ: "ab3 ~ eb4 ~ bb4 ~ eb4 ~",
  AR: "ab3@2 ~@2 eb4@2 ~@2 bb4@2 ~@4 ab4 ~", AS: "c5 ~ bb4 ~ c5 ~ ab4 ~ ab4 ~ g4 ~ ab4 ~ eb4 ~",
  AT: "c4 db4 ~ c4 eb4 ~ c4 ~ d4 ~ f4 ~ eb4 ~ db4 ~", AU: "c4 ~ bb3 ~ c4 ~ f4 ~ ab4 ~ g4 ~ ab4 ~ eb4 ~",
  AV: "c4 db4 ~ c4 d4 ~ f4 ~ eb4 ~ db4 ~ c4 ~@3", AW: "~@6 c5 ~ g4@2 ~@2 ab4@2 ~@2", AX: "c4 ~ eb4 ~ d4 ~ db4 ~",
  AY: "c4@2 ~@4 ab3 ~ ab3@2 ~@2 c4@2 ~@2", AZ: "c4 ~ ab3 ~@3 eb4 ~", BA: "eb4 ~@7",
})).s("gm_alto_sax").gain(0.2)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@26 A B C D E F@2 G H I H J K L M N O P Q R O P Q S T U V W X U Y Z AA AB AC AD AE AF AE AG AH AI AJ AK AL AM AN AO
  AP AQ AR ~ AP AQ ~ AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BC BG@2 ~@24 BH BI BJ BK BL BM BN BO BP BQ BP BR BS BT@2
  BU BV BW BX BY BZ CA CB CC CD CE CF CG CD CH CF CI CJ CK CJ CL CJ CK CJ CM ~@32 CN
>`.pickRestart({
  A: "eb3 ~ eb3 ~", B: "eb3 ~ eb3 db4", C: "eb3 ab2 eb3 db4", D: "eb3 ab2 eb3 c4", E: "eb3!2 c4@2 db4@2 bb3@2",
  F: "c4@2 ab3!2 db4@2 bb3@2", G: "ab3!2 c4!2 bb3@2 ab3 ~", H: "eb3@4 ~@2 ab3 ~ ab3@2 ~@2 c4@2 ~@2",
  I: "ab3 ~ f3 ~ eb3 ~ eb3 ~", J: "ab3 ~ f3 ~ eb3 ~ bb3 ~", K: "ab4@4 ~@2 ab4 ~ f4@2 ~@2 eb4@2 ~@2",
  L: "eb4 ~ d4 ~ db4 ~ c4 ~", M: "c4@4 ~@2 ab3 ~ ab3 ~ g3 ~ ab3@2 ~@2", N: "c4@2 ~@2 ab3@2 ~@2 g3@4 ab3 ~@3",
  O: "db4@4 bb3@2 c4 ~", P: "bb3@2 c4 ~@3 c4@2", Q: "bb3@4 ~@2 db4 ~ c4@2 ~@2 b3@2 ~@2", R: "c4@2 db4 c4",
  S: "ab3@4 g3@2 c4 ~", T: "ab3 ~ g3 ~ c4@2 ~@2", U: "f4 ~ c4 ~ db4 ~ c4 ~", V: "~@2 bb3@2 c4@2 ~ c3",
  W: "bb3@2 ab3@2 eb3@3 ~", X: "ab3 ~ g3@2 c4@2 ~@2", Y: "c4 bb3 ab3 g3", Z: "ab3@2 ab3@2 g3@3 ~",
  AA: "c4 ~ ab3 ~ db4 ~ f3 ~", AB: "c4 ~ eb3 ~ bb3 ~ eb3 ~", AC: "c4 ~ eb3 ~ ab3 ~ f3 ~", AD: "c4 ~ eb3 ~ db4@2 c4 ~",
  AE: "eb4 ~ eb3 ~ ab3 ~ ab2 ~", AF: "eb4 ~ eb3 ~ bb3 ~ bb2 ~", AG: "c4@2 ~@2 c3@2 ~@2 g3@4 ab3 ~@3", AH: "~@2 db4 c4",
  AI: "ab3 c4 d3 db3", AJ: "eb3@2 ~ g3 ab3@2 eb4@2", AK: "f4@2 eb4 d4 db4@2 c4@2", AL: "ab3@2 ~ g3 ab3@2 ab3@2",
  AM: "db4 c4 ab3 g3", AN: "ab3!4", AO: "ab3@2 ~ ab3 bb3@2 ab3 ~", AP: "~@4 a3 bb3@3 ~@4 g3 ab3@3",
  AQ: "~@4 c4 db4@3 ~@4 b3 c4@3", AR: "~@4 a3 bb3@3 ~@4 e3 f3@3", AS: "~@2 bb3 ~", AT: "~ ab3 ~ f3", AU: "~ eb3 ~ f3",
  AV: "~ ab3 eb3@2 ~@2 eb3!2", AW: "~ g3 eb3 ab3", AX: "~ ab3 ab3@2 ~@2 ab3@2", AY: "~@2 gb3@2 ~ f3 f3@2",
  AZ: "~@2 c4@3 c4 c4@2", BA: "db4@2 c4 ab3", BB: "f4@7 g4", BC: "ab4 f4 eb4 c4", BD: "f4@3 g4", BE: "ab4 g4 f4@2",
  BF: "f4@5 ab4 c5 bb4", BG: "[bb3@3 ab3 f3@12]/2", BH: "b3@3 b3 bb3@2 gb3@2", BI: "gb3!4",
  BJ: "~@4 b3@4 bb3@4 ~@2 g3 ~", BK: "gb3@2 gb3@2 ab3@3 ~", BL: "ab3@4 b3@4 bb3@4 ~@2 db4 ~",
  BM: "eb4@2 bb3@2 ~ gb3 ~ gb3", BN: "bb3 ab3 eb3 f3", BO: "gb3@4 gb3@4 eb3@6 c4 bb3",
  BP: "ab3 f3 eb3 c4 db4 bb3 c4 bb3", BQ: "ab3 bb3 ~ ab3 c4@2 ab3@2 bb3@2 ab3@2 f3@2 g3@2",
  BR: "c4@6 eb4@2 db4 eb4 ~ db4 c4@4", BS: "eb3 ~ eb3 ~ ab3 ~ ab3 ~ ab3@2 ~@2 ab3@2 ~@2",
  BT: "eb3@2 ~@2 c4 ~ c4 ~ db4@2 ~@2 bb3@2 ~@2", BU: "eb3 ~ eb3 ~ c4@2 ~@2 db4@2 ~@2 eb4@2 ~@2",
  BV: "c4@4 ~@2 c4 ~ ab3@2 ~@2 ab3@2 ~@2", BW: "eb4 ~ c4 ~ b3 ~ bb3 ~", BX: "eb3@4 ~@2 ab3 ~ ab3@2 ~@2 ab3@2 ~@2",
  BY: "eb4 ~ ab3 ~ g3 ~ eb4 ~", BZ: "eb3@2 ~ ab3 db4@2 ab3@2", CA: "ab3 c4 b3 bb3", CB: "ab3 c4 bb3 db4 c4 eb4 ab4 f4",
  CC: "eb4@2 c4@2 ab3@2 c4@2 db4@4 c4 ~@3", CD: "ab3 ~ c4 ~@3 c4 ~", CE: "~@4 ab3 ~ ab3 ~ ab3@2 ~@2 ab3@2 ~@2",
  CF: "~@2 ab3 ~@3 bb3 ~", CG: "c4 ~@3 ab3 ~ c4 ~", CH: "~@4 ab3!2 ~ ab3 ab3@2 ~@2 ab3@2 ~@2",
  CI: "c4@2 ~@4 ab3 ~ bb3@2 ~@2 ab3 ~@3", CJ: "db4!3 bb3 c4!3 bb3",
  CK: "ab3 bb3 ~ ab3 c4@2 ab3@2 bb3@2 ab3@2 f3@2 c4@2", CL: "ab3 bb3 ~ ab3 c4@2 ab3@2 bb3@4 ab3@2 ~@2",
  CM: "ab3 bb3 ~ ab3 c4@2 ab3@2 bb3@4 ~@4", CN: "~@8 ab3 [f3,g3] eb3@2 ~@4",
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone" · soft notes
const tenor_sax_soft = note(`<
  ~ A B C B D B C B E ~@6 F G H I H J H K L M N O ~@49 P ~@2 Q R ~@16 S@8 T U@2 V@2 W X Y Z AA AB AC Z AA AB AC ~@39 AD
  AE@7 AF@8 AG AH AI AH AJ ~@4 AK AL AM AN AO AP AQ AR AS
>`.pickRestart({
  A: "~@14 c4 bb3", B: "ab3 ~ f3 ~ eb3 ~ c4 ~ db4 ~ bb3 ~ c4 ~ bb3 ~",
  C: "ab3 bb3 ~ ab3 c4 ~ ab3 ~ bb3 ~ ab3 ~ f3 ~ g3 ~", D: "ab3 bb3 ~ ab3 c4 ~ ab3 ~ bb3@4 ab3 ~ c4 bb3",
  E: "ab3 bb3 ~ ab3 c4 ~ ab3 ~ bb3@4 ab3 ~@3", F: "eb3 ~ f3 ~ g3 ~ ab3 ~", G: "c4@2 ~@6 db4@4 c4 ~@3",
  H: "~@2 g3 ~@3 ab3 ~", I: "~@2 ab3 ~@3 ab3 ~", J: "~@2 ab3 ~ eb3 ~ eb3 ~", K: "~@2 bb3 ~@3 ab3 ~",
  L: "gb3 ~ c4 ~@3 bb3 ~", M: "f3@2 ~@4 c4 ~ g3@4 eb3 ~@3", N: "~ ab2 ~ db4", O: "~ ab2 ~@2", P: "~@2 e3 ~ eb3 ~ ab2 ~",
  Q: "ab3@3 bb3 c4 eb4 ab4 f4", R: "eb4@2 c4@2 ab3@2 c4@2 ~@4 ab3 ~@3", S: "eb3/8", T: "~ eb3 d3@2", U: "[eb3@3 d3]/2",
  V: "[eb3@5 eb3 d3@2]/2", W: "eb3", X: "d3 db3 c4@2", Y: "g3@2 gb3@2 f3@3 eb3", Z: "eb4@2 b3 bb3",
  AA: "b3@2 bb3@2 ~@2 bb3 ~", AB: "b3@4 ~@2 b3 ~ b3@2 ~@2 b3@2 ~@2", AC: "b3 bb3 ab3@2", AD: "~@3 ab3", AE: "g3/7",
  AF: "c3/8", AG: "~@4 c4 eb4 c4 bb3", AH: "ab3 f3 eb3 c4 db4 bb3 c4 bb3",
  AI: "ab3 bb3 ~ ab3 c4@2 ab3@2 bb3@2 ab3@2 f3@2 g3@2", AJ: "ab3 bb3 ~ ab3 c4@2 ab3@2 bb3@4 ab3@2 ~@2",
  AK: "~@6 ab4 ~ bb4@2 ~@2 ab4@2 ~@2", AL: "ab4 ~ ab4 ~ c5 ~ bb4 ~", AM: "ab4@2 ~@4 eb4 ~ f4@2 ~@2 eb4@2 ~@2",
  AN: "eb4@2 ~@2 ab4@2 ~@2 g4 ~ f4 ~ eb4 ~@3", AO: "~@6 c4 ~ db4@2 ~@2 c4@2 ~@2", AP: "ab3 ~ f3 ~ e3 ~ eb3 ~",
  AQ: "eb3@2 ~@4 eb3 ~ f3@2 ~@2 eb3@2 ~@2", AR: "eb3 ~ d3 ~@3 db4 ~", AS: "c4 ~@7",
})).s("gm_tenor_sax").gain(0.2)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  ~@17 A B C B D E F G H I@4 J K@2 L M N M O M O P Q R S T U R S T U V W X Y Z W AA AB AC AD AE AF AE AD AE AG AH AI AJ
  AK AL AM AN AO AP AQ AP AR AP AS AT AU AV AW AX AY AZ BA BB BC BD BE BD BF BG BH BI BJ ~@24 BK BL BM BN BO BP BQ BR@2
  BS BT BU BV BW@2 BX M BY M BZ AJ CA AN CB CC CD CE CF CC CG CH CI CJ CK CJ CL CJ CM CN@2 ~@32 CO
>`.pickRestart({
  A: "~@7 c3", B: "db3!3 bb2 c3!3 bb2", C: "ab2 bb2 ~ ab2 c3@2 ab2@2 bb2@2 ab2@2 f2@2 c3@2",
  D: "ab2 bb2 ~ ab2 c3@2 ab2@2 bb2@4 ab2@2 c3@2", E: "c3 db3 ~ c3 db3@2 bb2@2 c3 db3 ~ c3 c3@2 bb2@2",
  F: "ab2 bb2 ~ ab2 c3@2 ab2@2 bb2@2 ab2@2 f2@2 bb2@2", G: "ab2 f2 eb2 c3 db3 bb2 c3 bb2",
  H: "ab2 bb2 ~ ab2 c3@2 ab2@2 bb2@4 ab2 ~@3", I: "eb3 ~ c4 ~ db4 ~ bb3 ~", J: "ab2!2 eb3@2 eb3@2 eb3@2",
  K: "ab2@2 eb3!2 db4@2 eb3@2", L: "ab2!2 eb3@2 eb3@2 ab2 ~", M: "ab2@4 ~@2 c3 ~ db3@2 ~@2 c3@2 ~@2",
  N: "ab2 ~ f2 ~ eb2 ~ eb2 ~", O: "ab2 ~ f2 ~ eb2 ~ eb3 ~", P: "ab2@4 ~@2 c2 ~ db2@2 ~@2 c2@2 ~@2",
  Q: "ab2@2 ~@2 f2@2 ~@2 eb2@4 ab2 ~@3", R: "ab2@4 eb3@2 ab2 ~", S: "eb3@2 ab2 ~@3 ab2@2",
  T: "eb2@4 ~@2 eb2 ~ eb2@2 ~@2 eb2@2 ~@2", U: "f3 eb3 eb3@2", V: "eb3 ~ eb2 ~ ab2@2 ~@2", W: "db2 ~ ab2 ~ db2 ~ ab2 ~",
  X: "~@2 eb2@2 ab2@2 ~ c2", Y: "db2@2 c2@2 eb2@3 ~", Z: "eb3 ~ eb2@2 ab2@2 ~@2", AA: "ab2 eb2 f2 c2",
  AB: "db2@2 ab2@2 eb2@3 ~", AC: "ab3 ~ ab2 ~ db3 ~ ab2 ~", AD: "ab3 ~ ab2 ~ eb3 ~ eb2 ~",
  AE: "ab3 ~ ab2 ~ db3 ~ db2 ~", AF: "eb3 ~ eb2 ~ g3@2 eb3 ~", AG: "eb3@2 ~@2 eb2@2 ~@2 eb3@4 ab2 ~@3",
  AH: "~@2 db3 c3", AI: "f2 ab2 bb2 eb2", AJ: "ab2@2 ~ c2 db2@2 c2@2", AK: "f2!2 eb2 ab2", AL: "ab2@2 ~ c3 db3@2 c3@2",
  AM: "ab2 f2 e2 eb2", AN: "ab2 f2 c2 db2", AO: "eb2@2 ~ eb2 eb2@2 ab2 ~", AP: "db4@3 bb3 c4@3 bb3",
  AQ: "ab3 bb3 ~ ab3 c4@2 ab3@2 bb3@2 ab3@2 f3@4", AR: "ab3 bb3 c4 ab3 bb3@2 ab3 ~",
  AS: "ab3 bb3 ~ ab3 c4@2 ab3@2 bb3@2 ab3@2 f3@2 g3@2", AT: "~@2 f3 ~ eb3 ~ f2 ~", AU: "c2@2 ~@4 c2 ~ c2@4 ab2@2 ~@2",
  AV: "~ ab2 ~ f2", AW: "~ c2 ~ db2", AX: "~ eb2 eb2@2 ~@2 eb2!2", AY: "~ eb2 ab2 eb3", AZ: "~ gb2 gb2@2 ~@2 f2@2",
  BA: "~@2 eb2@2 ~ db2 db2@2", BB: "~@2 eb2@3 eb2 eb2@2", BC: "bb3 eb3 eb2 ab2", BD: "~@2 bb2 ~@3 ab2 ~",
  BE: "~@2 db2 ~@3 f2 ~", BF: "ab2 ~ f3 ~ g2 ~ d3 ~", BG: "bb2!2 ~ ab2", BH: "~ db2 ~ f2", BI: "~ bb2 ~ ab2",
  BJ: "~@4 db3@3 ~", BK: "db3@3 db3 gb2@2 bb2@2", BL: "b2 bb2 b2 gb2", BM: "~@4 db2@4 gb2@4 ~@2 bb2 ~",
  BN: "b2@2 gb2@2 db2@3 ~", BO: "db3@4 db2@4 gb2@4 ~@2 bb2 ~", BP: "b2@2 gb2@2 ~ b2 ~ gb2", BQ: "gb2 db2 eb2 bb2",
  BR: "[b2 gb2 ab2 ab2@5]/2", BS: "eb3 ~ c4 ~ db4 ~ db3 ~", BT: "ab2 ~@3 eb2 ~@3", BU: "ab2 ~ eb3 ~ eb3 ~ ab2 ~",
  BV: "ab2 ~ eb3 ~ eb3 ~ eb3 ~", BW: "ab2@2 ~@2 eb3 ~ eb3 ~ eb3@2 ~@2 eb3@2 ~@2",
  BX: "ab2 ~ ab2 ~ eb3@2 ~@2 eb3@2 ~@2 c3@2 ~@2", BY: "ab2 ~ gb2 ~ f2 ~ eb2 ~", BZ: "ab2 ~ f2 ~ eb2 ~ ab2 ~",
  CA: "ab2 gb2 f2 eb2", CB: "eb2@4 ~@4 eb2@4 ab2 ~@3", CC: "ab2 ~ ab2 ~@3 ab2 ~", CD: "~@4 f2 ~ f2 ~ f2@2 ~@2 f2@2 ~@2",
  CE: "~@2 eb2 ~@3 db2 ~", CF: "eb2 ~@3 eb2 ~ ab2 ~", CG: "~@4 f2!2 ~ f2 f2@2 ~@2 f2@2 ~@2", CH: "~@2 c2 ~@3 db2 ~",
  CI: "eb2@2 ~@4 eb2 ~ eb2@2 ~@2 ab2 ~@3", CJ: "bb2 ab2", CK: "db2 f2", CL: "g2 ab2", CM: "e3 c3",
  CN: "[bb2@2 ab2 f3@5]/2", CO: "~@8 db3 [bb2,c3] ab2@2 ~@4",
})).s("gm_baritone_sax").gain(0.3)

// other · baritone sax · "Baritone Saxophone" · soft notes
const baritone_sax_soft = note(`<
  A@16 B C ~@79 D E@8 ~@8 F G H I J K H I ~@40 L@8 ~@8 M N O P Q R S T U V W X ~@2 Y Z AA
>`.pickRestart({
  A: "ab2 ~ eb3 ~ db4 ~ eb3 ~", B: "ab2 ~ bb2 ~ c3 ~ db3 ~", C: "eb3@2 ~@6 eb3@4 ab3 ~@3", D: "~@7 d3", E: "ab2/8",
  F: "gb2!2", G: "g2@4 ~@2 g2 ~", H: "db3@4 ~@2 db3 ~ db3@2 ~@2 db3@2 ~@2", I: "gb2 ~ bb2 ~ db3@4",
  J: "db3@8 g3@2 g3 ~ g3@2 ~@2", K: "gb3@2 gb3 ~ gb3@2 ~@6 gb3@2 ~@2", L: "f2/8", M: "ab2 ~@7", N: "f2 ~@7",
  O: "c2 ~@3 db2 ~@3", P: "eb2 ~@3 eb3 ~ ab2 ~", Q: "ab2 ~ eb3 ~ bb3 ~ eb3 ~", R: "f2 ~ c3 ~ f3 ~ ab3 ~",
  S: "c2 ~ ab2 ~ db2 ~ ab2 ~", T: "eb2 ~ eb3 ~ eb2 ~ ab2 ~", U: "~@6 c4 ~ db4@2 ~@2 c4@2 ~@2",
  V: "ab3 ~ f4 ~ e4 ~ eb4 ~", W: "ab3@2 ~@4 c4 ~ db4@2 ~@2 c4@2 ~@2", X: "f3 ~ e3 ~ eb3 ~ ab3 ~",
  Y: "ab2@2 ~@4 c3 ~ db3@2 ~@2 ab2@2 ~@2", Z: "f2 ~ e2 ~@3 f3 ~", AA: "eb3 ~@7",
})).s("gm_baritone_sax").gain(0.15)

stack(alto_sax, alto_sax_soft, tenor_sax, tenor_sax_soft, baritone_sax, baritone_sax_soft)

More by Percy Grainger