Strudelify

Four Scottish Dances Op. 59

Malcolm Arnold

KeyG majorTempo172 bpm
0:00/0:00
// Four Scottish Dances Op. 59 — Malcolm Arnold
// 172 bpm, 4/4, key G 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 (1/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5902685; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 94 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(172/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 · clarinet · "E♭ Clarinet"
const clarinet = note(`<
  ~@6 A B C D E F G H I H J K L M N O P Q R ~@3 S T U T V W X Y Z AA AB AA AC@2 ~@20 AD AE AF AG@3 AH AI AJ AK@2 AJ ~@16
  AL ~@3
>`.pickRestart({
  A: "~@12 a#5 g#5 g5 f5", B: "d#5 ~@15", C: "~@14 a#5 ~", D: "d#5@2 d#6@2 d#6 ~ a#5 ~ [g5,g#5]!4 d#5 ~ a#5 ~",
  E: "g5 g#5 a#5 ~ d#5 ~ a#5 ~ g5@2 f5 ~ f5 ~ f6 ~", F: "g6 f6 d#6 d6 d#6 ~ a#5 ~ [g5,g#5]!4 d#5 ~ a#5 ~",
  G: "g5 g#5 a#5 ~ f5 ~ a#5 ~ g5@2 d#5 ~ d#5 ~ a#5 ~", H: "g5 ~ d#5 ~ a#5 ~ d#5 ~ c6 ~ d#5 ~ a#5 ~ d#5 ~",
  I: "g5 ~ d#5 ~ a#5 ~ d#5 ~ c6 a#5 g#5 g5 f5 ~ a#5 ~", J: "g5 g#5 a#5 ~ f5 ~ a#5 ~ g5@2 d#5 ~ d#5@2 b5 ~",
  K: "e5@2 e6@2 e6 ~ b5 ~ [g#5,a5]!4 e5 ~ b5 ~", L: "g#5 a5 b5 ~ e5 ~ b5 ~ g#5@2 b6 ~ b6 ~ f#6 ~",
  M: "g#6 f#6 e6 d#6 e6 ~ b5 ~ [g#5,a5]!4 e5 ~ b5 ~", N: "g#5 a5 b5 ~ f#5 ~ b5 ~ g#5@2 e5 ~ e5 ~@3",
  O: "~@2 d#6 e6 ~@2 d#6 e6 ~@2 d#6 e6 ~@2 d#6 e6", P: "~@2 d#6 e6 ~@2 d#6 e6 ~@2 f#5 g#5 a5 b5 c#6 d#6",
  Q: "e6 ~ d#6 e6 ~@2 d#6 e6 ~@2 d#6 e6 ~@2 d#6 e6", R: "~@4 c#6 d#6 e6 ~ e6@2 g#6 ~ g#6@2 ~@2",
  S: "a4 a#4 c5 ~ g4 ~ c5 ~ a4@2 f4 ~ f4 ~ c6 ~", T: "a5 ~ f5 ~ c6 ~ f5 ~ d6 ~ f5 ~ c6 ~ f5 ~",
  U: "a5 ~ f5 ~ c6 ~ f5 ~ d6 c6 a#5 a5 g5 ~ c6 ~", V: "a5 a#5 c6 ~ g5 ~ c6 ~ a5@2 f5 ~ f5@2 f5@2",
  W: "f#5@2 f#6@2 f#6 ~ c#6 ~ [a#5,b5]!4 f#5 ~ c#6 ~", X: "a#5 b5 c#6 ~ f#5 ~ c#6 ~ a#5@2 g#5 ~ g#5 ~ g#6 ~",
  Y: "a#6 g#6 f#6 f6 f#6 ~ c#6 ~ [a#5,b5]!4 f#5 ~ c#6 ~", Z: "a#5 b5 c#6 ~ g#5 ~ c#6 ~ a#5@2 f#5 ~ f#5 ~ c#6 ~",
  AA: "a#5 ~ f#5 ~ c#6 ~ f#5 ~ d#6 ~ f#5 ~ c#6 ~ f#5 ~", AB: "a#5 ~ f#5 ~ c#6 ~ f#5 ~ d#6 c#6 b5 a#5 g#5 ~ c#6 ~",
  AC: "[a#5 b5 c#6 ~ g#5 ~@2 c#6 ~ a#5@3 f#5@2 ~ f#5@8 ~@9]/2", AD: "~@13 g5@3", AE: "d5@8 g5@3 ~@5",
  AF: "~@2 g5@3 d5@7 g5@3 ~", AG: "[~@7 g5@3 d5@7 g5@3 ~@8 g5@2 d5@8 g5@3 ~@7]/3", AH: "~ g5@2 d5@8 g5@3 ~@2",
  AI: "~@5 g5@3 d5@8", AJ: "g5@3 ~@13", AK: "[~@7 b5 c6 d6@10 c6@3 b5@7 a5@3]/2", AL: "~@9 f#4 g4 g#4 a4 a#4 ~@2",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "E♭ Clarinet" · soft notes
const clarinet_soft = note("<~@27 A ~@45 B@3 C D E ~@15>".pickRestart({
  A: "~@2 g5 ~ a5 g5 f5 e5 f5 ~ c5 ~ [a4,a#4]!3 [g#4,a4]", B: "[~@8 g5@3 d5@7 g5@3 ~@8 g5@2 d5@8 g5@3 ~@6]/3",
  C: "~@2 g5@2 d5@8 g5@3 ~", D: "~@6 g5@3 d5@7", E: "~ g5@3 ~@12",
})).s("gm_clarinet").gain(0.2)

// other · clarinet · "B♭ Clarinet 1"
const clarinet_2 = note(`<
  A B C D E F G F H I J K L M N M O P Q R S T U V W X Y Z AA AB AC AB AD AE AF AG AH AI AJ AI AK@2 ~@20 AL AM AN AO@3 AP
  AQ AR AS@2 AT@3 AU AV AW ~@5 AX@2 AY AZ BA ~ BB ~@3
>`.pickRestart({
  A: "~@14 a#3 ~", B: "d#3@2 d#4@2 d#4 ~ a#3 ~ [g3,g#3]!4 d#3 ~ a#3 ~",
  C: "g3 g#3 a#3 ~ d#3 ~ a#3 ~ g3@2 f3 ~ f3 ~ f4 ~", D: "g4 f4 d#4 d4 d#4 ~ a#3 ~ [g3,g#3]!4 d#3 ~ a#3 ~",
  E: "g3 g#3 a#3 ~ f3 ~ a#3 ~ g3@2 d#3 ~ d#3 ~ a#3 ~", F: "g3 ~ d#3 ~ a#3 ~ d#3 ~ c4 ~ d#3 ~ a#3 ~ d#3 ~",
  G: "g3 ~ d#3 ~ a#3 ~ d#3 ~ c4 a#3 g#3 g3 f3 ~ a#3 ~", H: "g3 g#3 a#3 ~ f3 ~ a#3 ~ g3@2 d#3 ~ d#3@2 a#4 ~",
  I: "d#4@2 d#5@2 d#5 ~ a#4 ~ [g4,g#4]!4 d#4 ~ a#4 ~", J: "g4 g#4 a#4 ~ d#4 ~ a#4 ~ g4@2 f4 ~ f4 ~ f5 ~",
  K: "g5 f5 d#5 d5 d#5 ~ a#4 ~ [g4,g#4]!4 d#4 ~ a#4 ~", L: "g4 g#4 a#4 ~ f4 ~ a#4 ~ g4@2 d#4 ~ d#4 ~ a#4 ~",
  M: "g4 ~ d#4 ~ a#4 ~ d#4 ~ c5 ~ d#4 ~ a#4 ~ d#4 ~", N: "g4 ~ d#4 ~ a#4 ~ d#4 ~ c5 a#4 g#4 g4 f4 ~ a#4 ~",
  O: "g4 g#4 a#4 ~ f4 ~ a#4 ~ g4@2 d#4 ~ d#4@2 b4 ~", P: "e4@2 e5@2 e5 ~ b4 ~ [g#4,a4]!4 e4 ~ b4 ~",
  Q: "g#4 a4 b4 ~ e4 ~ b4 ~ g#4@2 f#4 ~ f#4 ~ f#5 ~", R: "g#5 f#5 e5 d#5 e5 ~ b4 ~ [g#4,a4]!4 e4 ~ b4 ~",
  S: "g#4 a4 b4 ~ f#4 ~ b4 ~ g#4@2 e4 ~ e4 ~@3", T: "~@2 d#5 e5 ~@2 d#5 e5 ~@2 d#5 e5 ~@2 d#5 e5",
  U: "~@2 d#5 e5 ~@2 d#5 e5 ~@2 f#4 g#4 a4 b4 c#5 d#5", V: "e5 ~ d#5 e5 ~@2 d#5 e5 ~@2 d#5 e5 ~@2 d#5 e5",
  W: "~@4 c#5 d#5 e5 ~ e5@2 g#5 ~ g#5@2 c5 ~", X: "f4@2 f5@2 f5 ~ c5 ~ [a4,a#4]!4 f4 ~ c5 ~",
  Y: "a4 a#4 c5 ~ f4 ~ c5 ~ a4@2 g4 ~ g4 ~ g5 ~", Z: "a5 g5 f5 e5 f5 ~ c5 ~ [a4,a#4]!4 f4 ~ c5 ~",
  AA: "a4 a#4 c5 ~ g4 ~ c5 ~ a4@2 f4 ~ f4 ~ c5 ~", AB: "d5@2 c5 ~ d5@2 c5 ~ d5@2 c5 ~ d5@2 c5 ~",
  AC: "d5@2 c5 ~ d5@2 c5 ~@9", AD: "~@8 d6@2 c6 ~ c6@2 f4@2", AE: "f#4@2 f#5@2 f#5 ~ c#5 ~ [a#4,b4]!4 f#4 ~ c#5 ~",
  AF: "a#4 b4 c#5 ~ f#4 ~ c#5 ~ a#4@2 g#4 ~ g#4 ~ g#5 ~", AG: "a#5 g#5 f#5 f5 f#5 ~ c#5 ~ [a#4,b4]!4 f#4 ~ c#5 ~",
  AH: "a#4 b4 c#5 ~ g#4 ~ c#5 ~ a#4@2 f#4 ~ f#4 ~ c#5 ~", AI: "a#4 ~ f#4 ~ c#5 ~ f#4 ~ d#5 ~ f#4 ~ c#5 ~ f#4 ~",
  AJ: "a#4 ~ f#4 ~ c#5 ~ f#4 ~ d#5 c#5 b4 a#4 g#4 ~ c#5 ~",
  AK: "[a#4 b4 c#5 ~ g#4 ~@2 c#5 ~ a#4@3 f#4@2 ~ f#4@8 ~@9]/2", AL: "~@13 d5@3", AM: "b4@8 d5@3 ~@5",
  AN: "~@2 d5@3 b4@7 d5@3 ~", AO: "[~@7 d5@3 b4@7 d5@3 ~@8 d5@2 b4@8 d5@3 ~@7]/3", AP: "~ d5@2 b4@8 d5@3 ~@2",
  AQ: "~@5 d5@3 b4@8", AR: "d5@3 ~@13", AS: "[~@7 b5 c6 d6@10 c6@3 b5@7 a5@3]/2",
  AT: "[g5@3 ~@5 d5@3 b4@7 d5@3 ~@8 d5@2 b4@8 d5@3 ~@6]/3", AU: "~@2 d5@2 b4@8 d5@3 ~", AV: "~@6 d5@3 b4@7",
  AW: "~ d5@3 ~@12", AX: "[~@11 a#3 ~ d#3@2 d#4@2 d#4 ~ a#3 ~ g3 [g3,g#3]!3 [d#3,g#3] ~ a#3 ~ g3 g#3 a#3]/2",
  AY: "~ d#3 ~ a#3 ~ g3@2 f3 ~ f3 ~ f4 ~ g4 f4 d#4", AZ: "d4 d#4 ~ a#3 ~ g3 [g3,g#3]!3 [d#3,g#3] ~ a#3 ~ g3 g#3 a#3",
  BA: "~ f3 ~ a#3 ~ g3@2 d#3 ~ d#3 ~@6", BB: "~@9 f#4 g4 g#4 a4 a#4 ~@2",
})).s("gm_clarinet").gain(0.25)

// other · clarinet · "B♭ Clarinet 2"
const clarinet_3 = note(`<
  ~@6 A B C D E F G H I H J K L M N O P Q R S T U V W X W Y Z AA AB AC ~@3 AD@2 ~@20 AE AF AG AH@3 AI AJ AK AL@2 AM@3 AN
  AO AP ~@5 AQ@2 AR AS AT ~ AU ~@3
>`.pickRestart({
  A: "~@12 a#5 g#5 g5 f5", B: "d#5 ~@15", C: "~@14 a#4 ~", D: "d#4@2 d#5@2 d#5 ~ a#4 ~ [g4,g#4]!4 d#4 ~ a#4 ~",
  E: "g4 g#4 a#4 ~ d#4 ~ a#4 ~ g4@2 f4 ~ f4 ~ f5 ~", F: "g5 f5 d#5 d5 d#5 ~ a#4 ~ [g4,g#4]!4 d#4 ~ a#4 ~",
  G: "g4 g#4 a#4 ~ f4 ~ a#4 ~ g4@2 d#4 ~ d#4 ~ a#4 ~", H: "g4 ~ d#4 ~ a#4 ~ d#4 ~ c5 ~ d#4 ~ a#4 ~ d#4 ~",
  I: "g4 ~ d#4 ~ a#4 ~ d#4 ~ c5 a#4 g#4 g4 f4 ~ a#4 ~", J: "g4 g#4 a#4 ~ f4 ~ a#4 ~ g4@2 d#4 ~ d#4@4",
  K: "e4 ~@7 e4 ~@3 e4 ~@3", L: "e4 ~@7 d#4 ~@3 d#4 ~@3", M: "~@4 g#4 f#4 e4 d#4 e4 ~ b3 ~ g#3 ~@3",
  N: "~@2 d#4 e4 f#4 g#4 a4 b4 c#5 d#5 e5 f#5 g#5@2 ~@2", O: "~@2 d#5 e5 ~@2 d#5 e5 ~@2 d#5 e5 ~@2 d#5 e5",
  P: "~@2 d#5 e5 ~@2 d#5 e5 ~@2 f#4 g#4 a4 b4 c#5 d#5", Q: "e5 ~ d#5 e5 ~@2 d#5 e5 ~@2 d#5 e5 ~@2 d#5 e5",
  R: "~@4 c#5 d#5 e5 ~ e5@2 g#5 ~ g#5@2 c5 ~", S: "f4@2 f5@2 f5 ~ c5 ~ [a4,a#4]!4 f4 ~ c5 ~",
  T: "a4 a#4 c5 ~ f4 ~ c5 ~ a4@2 g4 ~ g4 ~ g5 ~", U: "a5 g5 f5 e5 f5 ~ c5 ~ [a4,a#4]!4 f4 ~ c5 ~",
  V: "a4 a#4 c5 ~ g4 ~ c5 ~ a4@2 f4 ~ f4 ~ c5 ~", W: "d5@2 c5 ~ d5@2 c5 ~ d5@2 c5 ~ d5@2 c5 ~",
  X: "d5@2 c5 ~ d5@2 c5 ~@9", Y: "~@8 a#5@2 a5 ~ a5@2 f4@2", Z: "f#4@2 f#5@2 f#5 ~ c#5 ~ [a#4,b4]!4 f#4 ~ c#5 ~",
  AA: "a#4 b4 c#5 ~ f#4 ~ c#5 ~ a#4@2 g#4 ~ g#4 ~ g#5 ~", AB: "a#5 g#5 f#5 f5 f#5 ~ c#5 ~ [a#4,b4]!4 f#4 ~ c#5 ~",
  AC: "a#4 b4 c#5 ~ g#4 ~ c#5 ~ a#4@2 f#4 ~ f#4 ~@3", AD: "[~@15 f#4@8 ~@9]/2", AE: "~@13 b4@3", AF: "g4@8 b4@3 ~@5",
  AG: "~@2 b4@3 g4@7 b4@3 ~", AH: "[~@7 b4@3 g4@7 b4@3 ~@8 b4@2 g4@8 b4@3 ~@7]/3", AI: "~ b4@2 g4@8 b4@3 ~@2",
  AJ: "~@5 b4@3 g4@8", AK: "b4@3 ~@13", AL: "[~@7 b4 c5 d5@10 c5@3 b4@7 a4@3]/2",
  AM: "[g4@3 ~@5 b4@3 g4@7 b4@3 ~@8 b4@2 g4@8 b4@3 ~@6]/3", AN: "~@2 b4@2 g4@8 b4@3 ~", AO: "~@6 b4@3 g4@7",
  AP: "~ b4@3 ~@12", AQ: "[~@11 a#3 ~ d#3@2 d#4@2 d#4 ~ a#3 ~ g3 [g3,g#3]!3 [d#3,g#3] ~ a#3 ~ g3 g#3 a#3]/2",
  AR: "~ d#3 ~ a#3 ~ g3@2 f3 ~ f3 ~ f4 ~ g4 f4 d#4", AS: "d4 d#4 ~ a#3 ~ g3 [g3,g#3]!3 [d#3,g#3] ~ a#3 ~ g3 g#3 a#3",
  AT: "~ f3 ~ a#3 ~ g3@2 d#3 ~ d#3 ~@6", AU: "~@9 d#4 e4 f4 f#4 g4 ~@2",
})).s("gm_clarinet").gain(0.25)

// other · clarinet · "B♭ Clarinet 3"
const clarinet_4 = note(`<
  ~@6 A B ~ C D E ~@2 A B F G@2 H I J K L M N ~ O P Q R Q S T@2 U@2 ~@3 V@2 ~@29 W@2 X ~@16 Y ~@3
>`.pickRestart({
  A: "~@12 a#4 g#4 g4 f4", B: "d#4 ~@15", C: "d#4 ~@7 d#4 ~@3 d#4 ~@3", D: "d#4 ~@7 d4 ~@3 d4 ~@3",
  E: "~@4 g4 f4 d#4 d4 d#4 ~@7", F: "~@2 f4 g4 g#4 a#4 c5 d5 d#5@2 ~@6", G: "b3 ~@7 b3 ~@3 b3 ~@3",
  H: "~@4 g#4 f#4 e4 d#4 e4 ~ b3 ~ g#3 ~@3", I: "~@2 d#3 e3 f#3 g#3 a3 b3 c#4 d#4 e4 f#4 g#4@2 ~@2",
  J: "~@2 d#4 e4 ~@2 d#4 e4 ~@2 d#4 e4 ~@2 d#4 e4", K: "~@2 d#4 e4 ~@2 d#4 e4 ~@2 f#3 g#3 a3 b3 c#4 d#4",
  L: "e4 ~ d#4 e4 ~@2 d#4 e4 ~@2 d#4 e4 ~@2 d#4 e4", M: "~@4 c#4 d#4 e4 ~ e4@2 g#4 ~ g#4@2 ~@2",
  N: "~@8 a#4 a4 g4 f4 e4 ~@3", O: "~@2 g4 ~ a4 g4 f4 e4 f4 ~ c4 ~ [a3,a#3]!3 [g#3,a3]", P: "a3 ~@7",
  Q: "d5@2 c5 ~ d5@2 c5 ~ d5@2 c5 ~ d5@2 c5 ~", R: "d5@2 c5 ~ d5@2 c5 ~@9", S: "~@8 g5@2 f5 ~ f5@2 ~@2",
  T: "[f#5@3 f5]/2", U: "[f#5@10 f5@2 f#5 ~@3]/2", V: "[~@15 f#4@8 ~@9]/2", W: "[~@7 b4 c5 d5@10 c5@3 b4@7 a4@3]/2",
  X: "g4@3 ~@13", Y: "~@9 d#4 e4 f4 f#4 g4 ~@2",
})).s("gm_clarinet").gain(0.25)

// other · clarinet · "B♭ Clarinet 4"
const clarinet_5 = note(`<
  ~@6 A B ~ C@2 D ~@2 A B E F@2 G H I J K L M N O P Q R Q S T@2 U@2 ~@3 V@2 ~@29 W@2 X ~@16 Y ~@3
>`.pickRestart({
  A: "~@12 a#4 g#4 g4 f4", B: "d#4 ~@15", C: "a#3 ~@7 a#3 ~@3 a#3 ~@3", D: "~@4 g4 f4 d#4 d4 d#4 ~@7",
  E: "~@2 f3 g3 g#3 a#3 c4 d4 d#4@2 ~@6", F: "b3 ~@7 b3 ~@3 b3 ~@3", G: "~@4 g#4 f#4 e4 d#4 e4 ~ b3 ~ g#3 ~@3",
  H: "~@2 d#3 e3 f#3 g#3 a3 b3 c#4 d#4 e4 f#4 g#4@2 ~@2", I: "~@2 d#4 e4 ~@2 d#4 e4 ~@2 d#4 e4 ~@2 d#4 e4",
  J: "~@2 d#4 e4 ~@2 d#4 e4 ~@2 f#3 g#3 a3 b3 c#4 d#4", K: "e4 ~ d#4 e4 ~@2 d#4 e4 ~@2 d#4 e4 ~@2 d#4 e4",
  L: "~@4 c#4 d#4 e4 ~ e4@2 g#4 ~ g#4@2 ~@2", M: "~@8 a#4 a4 g4 f4 e4 d4 c4 a#3", N: "a3 ~@15",
  O: "~@2 g4 ~ a4 g4 f4 e4 f4 ~ c4 ~ [a3,a#3]!3 [g#3,a3]", P: "a3 ~@7",
  Q: "a#4@2 c5 ~ a#4@2 c5 ~ a#4@2 c5 ~ a#4@2 c5 ~", R: "a#4@2 c5 ~ a#4@2 c5 ~@9", S: "~@8 e5@2 f5 ~ f5@2 ~@2",
  T: "[a#4@3 b4]/2", U: "[a#4@10 b4@2 a#4 ~@3]/2", V: "[~@15 f#4@8 ~@9]/2", W: "[~@7 f#3@25]/2", X: "g3@3 ~@13",
  Y: "~@9 d#4 e4 f4 f#4 g4 ~@2",
})).s("gm_clarinet").gain(0.25)

// bass · clarinet · "Bass Clarinet 2"
const bass = note(`<
  ~@9 A B C D E F G H I@2 J K L M L N O P Q R ~ S T ~@5 U V U ~@22 W X@3 Y Z@3 ~ AA@2 ~@21
>`.pickRestart({
  A: "d#3 ~@7 d#3 ~@3 d#3 ~@3", B: "d#3 ~@7 d3 ~@3 d3 ~@3", C: "~@8 g4 f4 d#4 d4 d#4 ~ a#3 ~",
  D: "g3 ~@3 f3 ~@3 g3 ~ g3 ~ g3 ~@3", E: "~@2 d#3 ~@3 d#3 ~@3 d#3 ~@3 d#3 ~",
  F: "~@2 d#3 ~@3 d#3 ~@3 d#3 ~ a#4 g#4 g4 f4", G: "d#4 ~ d#3 ~@3 d#3 ~@3 d#3 ~@3 d#3 ~",
  H: "g3 g#3 a#3 ~ f3 ~ a#3 ~ g3@2 d#3 ~ d#3@4", I: "e3 ~@7 e3 ~@3 e3 ~@3", J: "~@12 g#3 f#3 e3 d#3", K: "e3 ~@13 b3 ~",
  L: "g#3 ~ e3 ~ b3 ~ e3 ~ c#4 ~ e3 ~ b3 ~ e3 ~", M: "g#3 ~ e3 ~ b3 ~ e3 ~ c#4 b3 a3 g#3 f#3 ~ b3 ~",
  N: "g#3 a3 b3 ~ f#3 ~ b3 ~ g#3@2 e3 ~ e3@2 ~@2", O: "~@12 e4 d4 c4 a#3", P: "a3 g3 f3 e3 d3 c3 a#2 a2 g2 ~@7",
  Q: "~@6 g4 ~ a4 g4 f4 e4 f4 ~ c4 ~", R: "a3 a#3 c4 ~ g3 ~ c4 ~ a3@2 f3 ~ f3 ~@3", S: "~@12 b3 c4 d4 e4", T: "f4 ~@15",
  U: "b3 [c4,c#4] c#4@14", V: "b3 [c4,c#4] c#4@6 d#4 c#4 b3 a#3 g#3 ~@3", W: "~@5 b2@10 ~",
  X: "[~@10 d3@10 ~@11 e3@10 ~@7]/3", Y: "~@2 d3@5 ~", Z: "[~@9 b2@10 ~@11 d3@10 ~@8]/3", AA: "[~@7 f#3@25]/2",
})).s("gm_electric_bass_finger").gain(0.4)

// bass · clarinet · "Bass Clarinet 2" · soft notes
const bass_soft = note("<~@33 A@2 B@2 ~@36 C D E@3 ~@10 F G H I J@2>".pickRestart({
  A: "[f#3@3 g#3]/2", B: "[f#3@10 g#3@2 f#3 ~@3]/2", C: "d3@3 ~@13", D: "~@5 d3@10 ~",
  E: "[~@10 e3@10 ~@11 d3@10 ~@7]/3", F: "~@11 a#2 ~ g2 ~ d#2", G: "~ a#2 ~ d#2 ~ c3 ~ d#2 ~ a#2 ~ d#2 ~ g2 ~ d#2",
  H: "~ a#2 ~ d#2 ~ c3 a#2 g#2 g2 f2 ~ a#2 ~ g2 ~ d#2", I: "~ a#2 ~ d#2 ~ c3 ~ d#2 ~ a#2 ~ d#2 ~ g2 g#2 a#2",
  J: "[~ f2 ~ a#2 ~ g2@2 d#2 ~ a#3@16 a#3@3 ~@4]/2",
})).s("gm_electric_bass_finger").gain(0.2)

// bass · clarinet · "Bass Clarinet 3"
const bass_2 = note(`<
  ~@9 A@2 B C ~ D E F G@2 H I J K J L M N O P ~ Q R ~@5 S T S ~@2 U V W@2 X Y Z@3 AA AB@3 AC AD@3 AE AF X ~ AG AH AI@3
  AC AJ@2 AK@2 AL@3 AM AN@2 ~@13 AO@2
>`.pickRestart({
  A: "d#3 ~@7 d#3 ~@3 d#3 ~@3", B: "~@8 g4 f4 d#4 d4 d#4 ~ a#3 ~", C: "g3 ~@3 f3 ~@3 d#3 ~ d#3 ~ d#3 ~@3",
  D: "~@12 a#3 g#3 g3 f3", E: "d#3 ~@15", F: "~@2 f2 g2 g#2 a#2 c3 d3 d#3@2 ~@6", G: "e3 ~@7 e3 ~@3 e3 ~@3",
  H: "~@12 g#3 f#3 e3 d#3", I: "e3 ~@13 b3 ~", J: "g#3 ~ e3 ~ b3 ~ e3 ~ c#4 ~ e3 ~ b3 ~ e3 ~",
  K: "g#3 ~ e3 ~ b3 ~ e3 ~ c#4 b3 a3 g#3 f#3 ~ b3 ~", L: "g#3 a3 b3 ~ f#3 ~ b3 ~ g#3@2 e3 ~ e3@2 ~@2",
  M: "~@8 a#4 a4 g4 f4 e4 d4 c4 a#3", N: "a3 g3 f3 e3 d3 c3 a#2 a2 g2 f2 e2 d2 c2 ~@3",
  O: "~@6 g3 ~ a3 g3 f3 e3 f3 ~ c3 ~", P: "a2 a#2 c3 ~ g2 ~ c3 ~ a2@2 f2 ~ f2 ~@3", Q: "~@12 b2 c3 d3 e3", R: "f3 ~@15",
  S: "d#3 [e3,f3] f#3@14", T: "d#3 [e3,f3] f#3@6 d#3 c#3 b2 a#2 g#2 ~@3", U: "~ g3@5 ~@2", V: "~@7 g3@9",
  W: "[~@6 g3@5 ~@5]/2", X: "~ g3@10 ~@5", Y: "~@3 g3@5", Z: "[~@10 g3@10 ~@11 f#3@10 ~@7]/3", AA: "~@2 f#3@5 ~",
  AB: "[~@9 g3@10 ~@11 g3@10 ~@8]/3", AC: "~@3 g3@10 ~@3", AD: "[~@4 g3@5 ~@5 g3@5 ~@5]/3", AE: "~ f#3@10 ~@5",
  AF: "~@6 g3@5 ~@5", AG: "g3@5 ~@3", AH: "~@5 g3@10 ~", AI: "[~@5 g3@5 ~@5 g3@5 ~@4]/3", AJ: "[~@4 g3@5 ~@7]/2",
  AK: "[~@7 c3@25]/2", AL: "[b2@3 ~@8 g3@10 ~@10 g3@10 ~@7]/3", AM: "~@2 g3@5 ~", AN: "[~@9 g3@10 ~@13]/2",
  AO: "[~@9 g3@16 g3@3 ~@4]/2",
})).s("gm_electric_bass_finger").gain(0.4)

// other · clarinet · "Contra-alto Clarinet"
const clarinet_6 = note(`<
  ~@9 A@2 B C ~ D E F G@2 H I J K J L M N O P ~ Q R ~@5 S T S ~@2 U V W@2 X Y Z@3 AA AB@3 AC AD@3 AE AF X ~ AG AH AI@3
  AC AJ@2 AK@2 AL@3 AM AN@2 ~@13 AO@2
>`.pickRestart({
  A: "d#2 ~@7 d#2 ~@3 d#2 ~@3", B: "~@8 g3 f3 d#3 d3 d#3 ~ a#2 ~", C: "g2 ~@3 f2 ~@3 d#2 ~ d#2 ~ d#2 ~@3",
  D: "~@12 a#2 g#2 g2 f2", E: "d#2 ~@15", F: "~@2 f2 g2 g#2 a#2 c3 d3 d#3@2 ~@6", G: "e2 ~@7 e2 ~@3 e2 ~@3",
  H: "~@12 g#3 f#3 e3 d#3", I: "e3 ~@13 b3 ~", J: "g#3 ~ e3 ~ b3 ~ e3 ~ c#4 ~ e3 ~ b3 ~ e3 ~",
  K: "g#3 ~ e3 ~ b3 ~ e3 ~ c#4 b3 a3 g#3 f#3 ~ b3 ~", L: "g#3 a3 b3 ~ f#3 ~ b3 ~ g#3@2 e3 ~ e3@2 ~@2",
  M: "~@8 a#3 a3 g3 f3 e3 d3 c3 a#2", N: "a2 ~@15", O: "~@6 g3 ~ a3 g3 f3 e3 f3 ~ c3 ~",
  P: "a2 a#2 c3 ~ g2 ~ c3 ~ a2@2 f2 ~ f2 ~@3", Q: "~@12 b1 c2 d2 e2", R: "f2 ~@15", S: "d#3 [e3,f3] f#3@14",
  T: "d#3 [e3,f3] f#3@6 d#3 c#3 b2 a#2 g#2 ~@3", U: "~ d3@5 ~@2", V: "~@7 d3@9", W: "[~@6 d3@5 ~@5]/2",
  X: "~ d3@10 ~@5", Y: "~@3 d3@5", Z: "[~@10 d3@10 ~@11 c3@10 ~@7]/3", AA: "~@2 c3@5 ~",
  AB: "[~@9 d3@10 ~@11 d3@10 ~@8]/3", AC: "~@3 d3@10 ~@3", AD: "[~@4 d3@5 ~@5 d3@5 ~@5]/3", AE: "~ c3@10 ~@5",
  AF: "~@6 d3@5 ~@5", AG: "d3@5 ~@3", AH: "~@5 d3@10 ~", AI: "[~@5 d3@5 ~@5 d3@5 ~@4]/3", AJ: "[~@4 d3@5 ~@7]/2",
  AK: "[~@7 c3@25]/2", AL: "[b2@3 ~@8 d3@10 ~@10 d3@10 ~@7]/3", AM: "~@2 d3@5 ~", AN: "[~@9 d3@10 ~@13]/2",
  AO: "[~@9 d#3@16 d#2@3 ~@4]/2",
})).s("gm_clarinet").gain(0.4)

stack(clarinet, clarinet_soft, clarinet_2, clarinet_3, clarinet_4, clarinet_5, bass, bass_soft, bass_2, clarinet_6)