Strudelify

Notturno from String Quartet No 2 in D major 3rd movement

Alexander Borodin

KeyB majorTempo65 bpm
0:00/0:00
// Notturno from String Quartet No 2 in D major 3rd movement — Alexander Borodin
// 65 bpm, 3/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5386109; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 166 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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(`<
  ~@24 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 F@2 G@4 ~ H I@2 J K@2 L M@2 N O P@2 Q R S ~@4 T U@2 V W X Y ~@2 Z AA ~@3 AB AC AD
  AE AF AG AH@2 AI ~@3 AJ@3 ~@18 AK AL AM AN AO AP AQ AR@2 AS AT AU@2 AP AQ AR@2 AS AV AW AX AY AZ BA BB BC ~@4 BD BE
  ~@2 BD BF BG BH BI BJ@2 BK BL BM BN@3 BO BP BQ BR@2
>`.pickRestart({
  A: "[~@8 a5@32 g#5 a5 g#5@3 f#5@5 g#5@5 ~ e5@32 d5@4 e5@4]/2", B: "[d5 e5 f#5@8 e5@4 b4@2 ~@2 e5@6]/2",
  C: "[a#4@8 f#5@24 e5@8 d5 e5 d5@3 c#5@5 d5@5 ~ b4@32 ~@8]/2",
  D: "[b4@8 c#5@8 d5@8 c#5 d5 c#5@6 b4@8 e5@16 b4@8 ~@8 e5@24]/2",
  E: "[g#4@8 a4@8 b4@8 a4 b4 a4@6 g#4@8 c#5@16 g#4@32 ~@8]/2",
  F: "[f#4@8 g#4@8 a4@8 g#4 a4 g#4@6 f#4@8 b4@16 f#4@32 ~@8]/2",
  G: "[f4@8 g4@8 a4@8 g4 a4 g4@6 f4@8 a4@16 e4@32 a4@16 d4@32 a4@16 c#4@32 ~@8]/4", H: "~ c4@4 ~",
  I: "[~@28 c4@2 ~ d4@2 ~ e4@2 ~ f4@2 ~ g4@2 ~@2 a4@2 ~ a#4@2 ~ c5@2 ~ d5@2 ~ e5@2 ~ f5@2 ~ g5@2 ~ a5@3 ~@9 a5@12 g5 ~ a5 g5 ~ a5 ~]/2",
  J: "g5 a5 ~@2 g5@2 f5@3 ~@9 f5@12 d#5 ~ f5 d#5 ~ f5 d#5 ~ f5 d5@2 ~ d5@3 ~@3, ~@3 f5@2 ~@36 d#5@2 ~@5",
  K: "[~@7 d5@12 c#5 d5 ~ c#5 d5 ~ c#5 d5 ~ c5@2 ~ c5@3 ~@9 c5@12 ~ a#4 c5 ~ a#4 c5 ~ a#4 c5 ~@2 g4@2 f4@3 ~@9 a5@12 g5 ~ a5 g5, ~@30 c#5@2 ~@33 a4@2 ~@29]/2",
  L: "~ a5 g5 ~ a5 f5@2 ~ f5@3 ~@10 f5@12 d#5 f5 ~ d#5 ~ f5 d#5 ~ f5 d5@2 ~ d5@3, ~@7 g5@2 ~@35 d#5@2 ~@2",
  M: "[~@9 d5@12 ~ c#5 d5 ~ c#5 d5 ~ c#5 d5 ~@2 c#5@2 c5@3 ~@9 c5@12 a#4 ~ c5 a#4 ~ c5 a#4 ~ c5 ~@2 g4@2 f4@3 ~@9 a5@12 g5, ~@31 c5@2 ~@35 a4@2 ~@26]/2",
  N: "~ a5 g5 ~ a5 g5 ~ a5 f5@2 ~ f5@3 ~@10 f5@12 e5 f5 ~ e5 f5 ~ e5 f5 ~@2 e5@2, ~@10 g5@2 ~@33 d5@2 ~",
  O: "d5@3 ~@9 d5@12 c5 ~ d5 ~ c5 d5 ~ c5 d5 ~@2 c5@2 b4@3 ~@8, ~@17 b4 ~@6",
  P: "[~ b4@12 a4 ~ b4 a4 ~ b4 a4 ~ b4 g#4@2 ~ e4@2 ~ f#4@2 ~@2 g#4@2 ~ a4@2 ~ b4@2 ~ c5@2 ~ d5@2 ~ e5@2 ~ f#5@2 ~ g#5@2 ~ a5@2 ~ b5@2 ~ c6@3 ~@9 c6@12 ~ b5 c6 ~ b5 c6 ~ b5 c6 ~, ~@12 a4 ~@35]/2",
  Q: "~ b5@2 a5@3 ~@9 a5@12 g#5 ~ a5 g#5 ~ a5 g#5 ~ a5 g5@2 g#5@2 g5@3 ~@5, a5 ~@23",
  R: "~@4 g5@12 f#5 ~ g5 f#5 ~ g5 f#5 ~ g5 f5@2 ~ f5@3 ~@9 f5@8, ~@27 g5@2 ~@19",
  S: "~@2 g5@3 f5 g5 ~ f5 g5 ~ f5 g5 ~@2 d5@2 c5@3 ~@28, ~@7 e5 ~@16", T: "~@17 c6@6 ~",
  U: "[~@35 g#5@24 g5 g#5 g5@2 f5@4 g5@4 ~ d#5@24]/2", V: "c#5@3 d#5@3 c#5@3 d#5@3 f5@24 ~ d#5@11",
  W: "~ c5@24 ~@7 c5@6 d5@6 d#5@4", X: "~@2 d5 d#5 d5@4 c5@6 a5@12 d#5@22",
  Y: "~@3 d4@2 ~ e4@2 ~ f#4@2 ~ g4@2 ~ a4@2 ~ b4@2 ~ c5@2 ~ d5@2 ~ e5@2 ~ f#5@2 ~ g5@2 ~ a5@2 ~@2 b5@3 ~@5",
  Z: "~@18 c4@15 a3@2 ~ b3@2 ~ c4@2 ~ d4@2 ~ e4@2 ~",
  AA: "f#4@2 ~@2 g4@2 ~ a4@2 ~ b4@2 ~ c5@2 ~ d5@2 ~ e5@2 ~ f#5@2 ~ g5@2 ~ a5@2 ~@18", AB: "~@35 d4@13",
  AC: "~@2 b3@2 ~ c#4@2 ~ d4@2 ~ e4@2 ~ f#4@2 ~ g#4@2 ~ a#4@2 ~@2 b4@2 ~ c#5@2 ~ d5@2 ~ e5@2 ~ f#5@2 ~ g#5@2 ~ a#5@2 ~ b5@2 ~",
  AD: "c#6@6 ~@6 e4@15 ~ c#4@2 ~ d4@2 ~ e4@2 ~ f#4@2 ~ g#4@2 ~ a#4@2 ~ b4@2",
  AE: "~ c#5@2 ~ d5@2 ~ e5@2 ~ f#5@2 ~ g#5@2 ~ a#5@2 ~ b5@2 ~ c#6@2 ~ d6@3 ~@10 d6@10",
  AF: "~@2 c#6 d6 ~ c#6 d6 ~ c#6 d6 ~ b5@2 ~ b5@3 ~@9 b5@12 ~ a5 b5 ~ a5 b5 ~ a5 b5 ~, ~@13 c#6@2 ~@33",
  AG: "~ a5@2 g5@3 ~@9 g5@12 f#5 ~ g5 f#5 ~ g5 f#5 ~ g5 e5@2 f#5@2 e5@3 ~@5, g5 ~@23",
  AH: "[~@4 e5@12 d5 e5 ~ d5 ~ e5 d5 ~ e5 c#5@2 ~ c#5@37 c5@6 g4@6 g4@6 g4@6 g4@6 ~, ~@27 d5@2 ~@67]/2", AI: "g4!7 ~",
  AJ: "[~@46 e4@15 ~@3 d4@2 ~@2 e4@2 ~ f#4@2 ~ g#4@2 ~ a4@2 ~ b4@2 ~ c#5@2 ~ d5@2 ~ e5@2 ~ f#5@2 ~ g#5@2 ~ a5@2 ~ b5@2 ~ c#6@2 ~ d6@3 ~@10 d6@9 e6@3 d6 e6 ~ d6 e6 ~ d6 e6 ~@4]/3",
  AK: "~@4 g4 a4", AL: "~ a4 e4", AM: "~@8 b3@10 g#3 ~ a3 ~ b3 ~",
  AN: "c#4 ~ d4 ~ e4 ~ f#4 ~ g#4 ~ a4 ~ b4 ~ c#5 ~ d5 ~ e5 ~ f#5 ~ g#5 ~", AO: "a5 ~@3 a5@8",
  AP: "g#5 a5 g#5@3 f#5@5 ~ g#5@5 e5@32", AQ: "d5 e5 d5 e5 f#5@8", AR: "[e5@2 b4 ~ e5@3 a#4 f#5@3 e5]/2",
  AS: "d5 e5 d5@3 c#5@5 ~ d5@5 b4@32", AT: "~@8 b4@8 c#5@8 d5@8 c#5 d5 c#5@6 b4@8", AU: "[e5@2 b4 ~ e5@3 ~ a5@4]/2",
  AV: "~@8 g#5@8 a5@8 b5@8 a5 b5 a5@6 g#5@8", AW: "c#6 g#5@2", AX: "~@8 f#5@8 g#5@8 a5@8 g#5 a5 g#5@6 f#5@8",
  AY: "b5 f#5@2", AZ: "~@8 f5@8 g5@8 a5@8 g5 a5 g5@6 f5@8", BA: "a5 e5@2", BB: "a5 d5@2", BC: "a5 c#5@2",
  BD: "~@8 d4@10 b3 ~ c#4 ~ d4 ~", BE: "e4 ~ f#4 ~ g#4 ~ a4 ~ b4 ~ c#5 ~ d5 ~ e5 ~ f#5 ~@7",
  BF: "e4 ~ f#4 ~ g#4 ~ a4 ~ b4 ~ c#5 ~ d5 ~ e5 ~@9", BG: "~ a5@2", BH: "g5 a5 g5@3 f5@5 ~ g5@5 e5@32",
  BI: "d5 e5 d5 e5 f5@8", BJ: "[e5@2 b4 ~ e5@3 a#4 f5@3 e5]/2", BK: "d5 e5 d5@3 c5@5 ~ d5@5 b4@32",
  BL: "~@8 b4@8 c5@8 d5@8 c5 d5 c5@6 b4@8", BM: "e5@2 b4 ~@3", BN: "[a4@13 ~@5]/3",
  BO: "~@8 b5@8 c#6@8 d6@8 c#6 d6 c#6@6 b5@8", BP: "e5", BQ: "f#5", BR: "a5/2",
})).s("gm_soprano_sax").gain(0.3)

// other · soprano sax · "Soprano Saxophone" · soft notes
const soprano_sax_soft = note(`<
  A B C@2 D E ~ F D G C@2 D E ~ H I J K L M N O ~@39 P Q R S T U@2 ~@4 V@3 W X ~@2 Y@2 ~@7 Z AA AB AC@2 AD AE AF AG AH
  AI AJ AK AL AM AN AG AH AM AJ AK AO AP AQ AR AS ~@25 AT@2 ~@3 AU AV ~@2 AW AV ~@15
>`.pickRestart({
  A: "~@10 e4 ~", B: "e4@2 ~@2 e4@2 ~@2 e4 ~ d4 ~", C: "d4@2 ~@2 d4@2 ~@2 d4 ~ d4 ~", D: "d4@2 ~@2 d4@2 ~@2 d4 ~ c#4 ~",
  E: "c#4@2 ~@2 c#4@2 ~@2 c#4 ~@3", F: "~@10 d4 ~", G: "c#4@2 ~@2 e4@2 ~@2 e4 ~ d4 ~", H: "~@10 c#4 ~",
  I: "c#4@2 ~@2 c#4@2 ~@2 c#4 ~ c#4 ~", J: "c#4@2 ~@2 c#4@2 ~@2 c#4 ~ b3 ~", K: "b3@2 ~@2 b3@2 ~@2 b3 ~ b3 ~",
  L: "b3@2 ~@2 b3@2 ~@2 b3 ~ c#4 ~", M: "c#4@2 ~@2 c#4@2 ~@2 c#4 ~ d4 ~", N: "d4@2 ~@2 d4@2 ~@2 d4 ~ e4 ~",
  O: "e4@2 ~@2 e4@2 ~@2 e4 ~ e4 ~", P: "~@23 c5@6 c5@6 c5@6 c5@6 ~", Q: "c5!8",
  R: "c5@6 ~ c5@6 c5@6 c5@6 c5@6 c5@6 c5@6 c5@5", S: "~ c5@6 ~ c5@6 c5@6 c5@6 c5@6 c5@6 c5@6 c5@4",
  T: "~@2 c5@6 c5@6 ~ c5@6 c5@6 c5@6 c5@6 c5@6 ~@3", U: "[~@3 f5@6 g5@6 ~ g#5@6 g5 g#5 g5@4 f5@6 ~@12 g5@12 ~@38]/2",
  V: "[~@46 g4@6 g4@6 g4@6 g4@6 g4@6 g4@6 g4@6 g4@6 ~ g4@6 g4@6 g4@6 e4@6 e4@6 g4@6 g4@6 g4@6 ~]/3", W: "g4 ~@7",
  X: "~@31 b5@3 ~@14", Y: "[~@9 f#4@6 ~ f#4@6 f#4@6 f#4@6 f#4@6 f#4@6 f#4@6 f#4@6 f#4@6 f#4@6 ~ f#4@3 ~@22]/2",
  Z: "~@7 c5", AA: "a4@6 ~ a4@6 a4@6 a4@6 a4@6 a4@6 a4@6 a4@5", AB: "~ a4@6 ~ a4@6 a4@6 g#4@6 g#4@6 g#4@6 g#4@6 g#4@4",
  AC: "[~@2 g#4@6 a4@6 ~ a4@6 a4@6 a4@6 a4@6 a4@6 a4@6 a4@6 a4@6 ~ a4@6 a4@6 a4@6 ~@14]/2", AD: "~@13 c#4@2 ~@33",
  AE: "~@23 b5, ~@45 c#6@2 ~", AF: "a5 ~@3 a5@2", AG: "~@16 g#5 a5 g#5@3 f#5@5 ~ g#5@5 e5@16",
  AH: "~@4 d5 e5 d5 e5 f#5@4", AI: "~@4 e5@4 b4 ~@3", AJ: "e5@5 a#4", AK: "f#5@24 e5@8 d5 e5 d5@3 c#5@5 ~ d5@5",
  AL: "b4@2 ~ b4 c#5 d5", AM: "~@2 e5@2 b4 ~", AN: "~@2 a5", AO: "b4@2 ~ g#4 a4 b4", AP: "~ c#5 g#4",
  AQ: "~@3 f#4 g#4 a4", AR: "~ b4 f#4", AS: "~@3 f4 ~@2", AT: "[a4@2 ~]/2", AU: "~@18 g#5 ~ a5 ~ b5 ~", AV: "c#6 ~@5",
  AW: "~@16 f#5 ~ g#5 ~ a5 ~ b5 ~",
})).s("gm_soprano_sax").gain(0.2)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A B C@2 D E F G H B C@2 D E I J K L M L N O P Q@8 R@8 S@8 ~ T ~@2 U V W X Y Z AA AB@2 AC@2 AD AE AF AG AH AI AJ@2 AK
  AL AM AN AO@2 AP AQ AR AS@4 AT AU AV@4 AW AX AY AZ@4 BA BB BC BB BD BB BE BF BG BB BC BB BD BB BH BI BJ BK BL BM BN BO
  BP BQ BR BS BT BU BV BS BW BQ BR BX BT BU BY BZ CA CB CC CD CE CF CG CH@2 CI CJ CK CH@2 CJ CK CL CM CN CO@2 CP CQ CR@2
  CS CT CU CV@2 CT CW
>`.pickRestart({
  A: "~@10 c#4 ~", B: "c#4@2 ~@2 c#4@2 ~@2 c#4 ~ b3 ~", C: "b3@2 ~@2 b3@2 ~@2 b3 ~ b3 ~",
  D: "b3@2 ~@2 b3@2 ~@2 b3 ~ a#3 ~", E: "a#3@2 ~@2 a#3@2 ~@2 a#3 ~ b3 ~", F: "b3@2 ~@2 d4@2 ~@2 d4 ~ a3 ~",
  G: "a3@2 ~@2 a3@2 ~@2 a3 ~ b3 ~", H: "b3@2 ~@2 b3@2 ~@2 b3 ~ c#4 ~", I: "b3@2 ~@2 d4@2 ~@2 d4 ~ d4 ~",
  J: "d4@2 ~@2 d4@2 ~@2 d4 ~ b3 ~", K: "b3@2 ~@2 b3@2 ~@2 b3 ~@3", L: "~@10 a3 ~", M: "a3@2 ~@2 a3@2 ~@2 a3 ~@3",
  N: "a3@2 ~@2 a3@2 ~@2 a3 ~ a3 ~", O: "a3@2 ~@2 a3@2 ~@2 a3@2 d4 ~", P: "d4@2 ~@2 d4@2 ~@2 d4 ~ c#4 ~",
  Q: "[~@5 e4@6 b4@6 b4@6 b4@6 c#5@6 d5@6 a4@6 b4]/8", R: "[~@5 a4@6 b4@6 b4@6 b4@6 c#5@6 d5@6 d4@6 c#4]/8",
  S: "[~@5 c#4@6 b3@6 b3@6 a3@6 b3@6 c#4@13]/8", T: "~@4 a#3@15 g3@2 ~ a3@2 ~ a#3@2 ~@21",
  U: "~@7 a#3@15 g3@2 ~ a3@2 ~ a#3@2 ~ c4@2 ~ d4@2 ~ e4@2 ~ f4@2 ~ g4@2 ~ a4@2",
  V: "~ a#4@2 ~ c5@2 ~@2 d5@2 ~ e5@2 ~ f5@2 ~ g5@2 ~ a5@3 ~@9 f4@12 e4 ~ f4 e4",
  W: "~ f4 e4 ~ f4 d4@2 ~ d4@3 ~@10 d4@12 c4 d4 ~ c4 ~ d4 c4 ~ d4 a#3@2 ~ a#3@3, ~@7 e4@2 ~@35 c4@2 ~@2",
  X: "~@9 a#3@15 ~ g3@2 ~ a3@2 ~ a#3@2 ~ c4@2 ~ d4@2 ~ e4@2 ~ f4@2 ~ g4@2",
  Y: "~ a4@2 ~ a#4@2 ~ c5@2 ~ d5@2 ~ e5@2 ~ f5@2 ~@2 g5@2 ~ a5@3 ~@9 f4@12 e4",
  Z: "~ f4 e4 ~ f4 e4 ~ f4 d4@2 ~ d4@3 ~@10 d4@12 c4 d4 ~ c4 d4 ~ c4 d4 ~@2 c4@2, ~@10 e4@2 ~@33 b3@2 ~",
  AA: "b3@3 ~@9 b3@12 a3 ~ b3 ~ a3 b3 ~ a3 b3 ~@2 a3@2 g#3@3 ~@8, ~@17 g#3 ~@6",
  AB: "[~ d4@15 b3@2 ~ c4@2 ~ d4@2 ~ g#4@12 ~ e5@24 e5@34]/2", AC: "[~@3 a5@12 c5@24 ~ c5@36 c5@20]/2",
  AD: "~@5 b4@12 c5@3 ~@3 e4@6 e4@6 e4@6 e4@6 ~", AE: "e4!7 d#4", AF: "d#4@6 ~ d#4@6 d#4@6 d#4@6 d#4@6 e4@6 e4@6 e4@5",
  AG: "~ e4@6 ~ e4@6 e4@6 f4@6 f4@6 f4@6 f4@6 f4@4", AH: "~@2 f4@6 f4@6 ~ f4@6 f4@6 f4@6 f4@6 f4@6 ~@3",
  AI: "~@9 a#3@15 ~ g3@2 ~ g#3@2 ~ a#3@2 ~ c4@2 ~ d4@2 ~ e4@2 ~ f4@2 ~ g4@2",
  AJ: "[~ g#4@2 ~ a#4@2 ~ c5@2 ~ d5@2 ~ e5@2 ~ f5@2 ~@2 g5@2 ~ g#5@3 ~@3 g#4@6 g#4@6 g#4@6 g#4@6 g#4@6 g#4@6 g#4@6 ~ g#4@6 g#4@6 g#4@6 g#4@6]/2",
  AK: "g4@6 g4@6 g4@6 g4@6 g4@6 ~ g4@6 g#4@6 g#4@5", AL: "~ g#4@6 g#4@6 g#4@6 g#4@6 a4@6 ~ a4@6 a4@6 a4@4",
  AM: "~@2 a4@6 a4@6 c4@3 ~@9 c4@15 ~ a3@2 ~ b3@2 ~", AN: "c4@2 ~ d5@12 a4@24 ~ g4@6 ~@2",
  AO: "[~@4 b3@6 b3@6 b3@6 b3@6 b3@6 b3@6 b3@6 ~ b3@6 b3@6 b3@6 a#3@6 a#3@6 a#3@6 a#3@6 a#3@6 ~]/2", AP: "a#3 f#4!6 a4",
  AQ: "a4@6 ~ a4@6 a4@6 a4@6 a4@6 g4@6 g4@6 g4@5", AR: "~ g4@6 ~ g4@6 g4@6 g4@6 g4@6 g4@6 g4@6 g4@4",
  AS: "[~@2 g4@6 g4@6 ~ g4@6 g4@6 g4@6 g4@6 g4@6 f#4@6 f#4@6 a#3@6 ~ a#3@6 a#3@6 a#3@6 a#3@6 a#3@6 a#3@6 a#3@6 a#3@6 a#3@6 ~ b3@6 d5@6 d5@6 d5@6 d5@6 d5@6 d5@6 d5@6 ~ d5@6 d5@6 d5@6 d5@6]/4",
  AT: "~@6 e5@6 e5@6 e5@6 e5@6 ~ e5@6 e5@6 e5@5", AU: "~ e5@6 e5@6 a#4@6 e5@6 d5@6 ~ d5@6 d5@6 d5@4",
  AV: "[~@2 d5@6 d5@6 b4@6 b4@6 b4@6 b4@6 ~ b4@6 b4@6 g4@6 g4@6 g4@6 g4@6 g4@6 g4@6 ~ e4@6 e4@6 e4@6 e4@6 e4@6 e4@6 g4@6 g4@6 g4@6 ~ g4@6 g4@6 g4@6 g4@6 e4@6 a#3@15 g3@2 ~@2]/4",
  AW: "a3@2 ~ a#3@2 ~ c4@2 ~ d4@2 ~ e4@2 ~ f4@2 ~ g4@2 ~ a4@2 ~ a#4@2 ~ c5@2 ~ d5@2 ~ e5@2 ~ f5@2 ~ g5@2 ~ a5@3 ~@3",
  AX: "f4@6 ~ f4@6 f4@6 f4@6 f4@6 f4@6 f4@6 f4@5", AY: "~ f4@6 ~ f4@6 f4@6 f4@6 f4@6 f4@6 f4@6 f4@4",
  AZ: "[~@2 f4@6 f4@6 ~ f4@6 f4@6 f4@6 f4@6 f4@6 d#4@6 d#4@6 d#4@6 ~ d#4@6 d#4@6 d#4@6 c#4@6 c#4@6 c#4@6 c#4@6 c#4@6 c#4@6 ~ c#4@6 c#4@6 c#4@6 c#4@6 c#4@6 c#4@6 a3@6 a3@6 ~ a3@6 a3@6 b3@6 b3@6]/4",
  BA: "c#4@5 e4@5 ~ a4@5 c#5@5 e5@5 ~ c#5@5 e5@5 c#5@5 ~ e5@5",
  BB: "b4@5 d5@5 ~ b4@5 d5@5 b4@5 ~ d5@5 b4@5 d5@5 ~ b4@5", BC: "d5@5 b4@5 ~ d5@5 b4@5 d5@5 ~ b4@5 d5@5 b4@5 ~ d5@5",
  BD: "c#5@5 a#4@5 ~ c#5@5 a#4@5 c#5@5 ~ a#4@5 c#5@5 a#4@5 ~ c#5@5",
  BE: "b4@5 a4@5 ~ b4@5 a4@5 b4@5 ~ a4@5 b4@5 a4@5 ~ b4@5", BF: "a4@5 b4@5 ~ a4@5 b4@5 a4@5 ~ b4@5 g#4@5 b4@5 ~ g#4@5",
  BG: "a4@5 c#5@5 ~ a4@5 c#5@5 e5@5 ~ c#5@5 e5@5 c#5@5 ~ e5@5",
  BH: "b4@5 g#4@5 ~ b4@5 g#4@5 b4@5 ~ g#4@5 b4@5 g#4@5 ~ b4@5",
  BI: "g#4@5 b4@5 ~ g#4@5 b4@5 g#4@5 ~ b4@5 g#4@5 b4@5 ~ g#4@5",
  BJ: "a4@5 f#4@5 ~ a4@5 f#4@5 a4@5 ~ f#4@5 a4@5 f#4@5 ~ a4@5",
  BK: "f#4@5 a4@5 ~ f#4@5 a4@5 f#4@5 ~ a4@5 f#4@5 a4@5 ~ f#4@5",
  BL: "a4@5 f4@5 ~ a4@5 f4@5 a4@5 ~ f4@5 a4@5 f4@5 ~ a4@5", BM: "e4@5 a4@5 ~ e4@5 a4@5 e4@5 ~ a4@5 e4@5 a4@5 ~ e4@5",
  BN: "a4@5 d4@5 ~ a4@5 d4@5 a4@5 ~ d4@5 a4@5 d4@5 ~ a4@5", BO: "d4@5 a4@5 ~ d4@5 a4@5 d4@5 ~ a4@5 d4@5 a4@5 ~ d4@5",
  BP: "c#4 ~@7 a5@4", BQ: "~@16 g#5 a5 g#5@3 f#5@5 ~ g#5@5 e5@16", BR: "~@4 d5 e5 d5 e5 f#5@4", BS: "~@2 e5@2 b4 ~",
  BT: "e5@5 a#4", BU: "f#5@24 e5@8 d5 e5 d5@3 c#5@5 ~ d5@5", BV: "b4@2 ~ b4 c#5 d5", BW: "~@2 a5",
  BX: "~@4 e5@4 b4 ~@3", BY: "b4@2 ~ g#4 a4 b4", BZ: "~ c#5 g#4", CA: "~@3 f#4 g#4 a4", CB: "~ b4 f#4",
  CC: "~@3 f4 g4 a4", CD: "~ a4 e4", CE: "~ a4 d4", CF: "~ a4 c#4", CG: "c#4", CH: "c#4/2", CI: "c4", CJ: "b3",
  CK: "d4", CL: "a4 ~ a5@4", CM: "g5 a5 g5@3 f5@5 ~ g5@5 e5@32", CN: "d5 e5 d5 e5 f5@8",
  CO: "[e5@2 b4 ~ e5@3 a#4 f5@3 e5]/2", CP: "d5 e5 d5@3 c5@5 ~ d5@5 b4@32", CQ: "~@8 b4@8 c5@8 d5@8 c5 d5 c5@6 b4@8",
  CR: "[e5@2 b4 ~ e5@4 ~@4]/2", CS: "~@8 b4@8 c#5@8 d5@8 c#5 d5 c#5@6 b4@8", CT: "e5", CU: "f#5",
  CV: "[c#5@56 g#4@8 a4@8 b4@8 b4 c#5 b4@6 a4@8]/2", CW: "a4",
})).s("gm_alto_sax").gain(0.2)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B@2 C D E F G H B@2 C D E I F J K@2 L@3 M@8 N@8 O@6 P@6 Q@7 R S T U V W@2 X@6 Y Z AA AB@4 AC@6 AD AE AF@4 AG AH ~@2
  AI@3 AJ@2 AK AL@2 AM AN AO AJ@2 AK AL@2 AM AP AN AO AQ AR AS AT AU AV AW AX AY AZ BA BB BC AV AW AX AY AZ BA@2 BD BE
  BF BG BE AX AV BH BI@4 BJ BK BL BM BN BO AJ@6 BP@2 BQ BR BS BT BU@3
>`.pickRestart({
  A: "~@10 a3 ~", B: "a3@2 ~@2 a3@2 ~@2 a3 ~ a3 ~", C: "a3@2 ~@2 a3@2 ~@2 a3 ~ g#3 ~",
  D: "g#3@2 ~@2 g#3@2 ~@2 g#3 ~ g3 ~", E: "g3@2 ~@2 g3@2 ~@2 g3 ~ f#3 ~", F: "f#3@2 ~@2 f#3@2 ~@2 f#3 ~ f3 ~",
  G: "f3@2 ~@2 f3@2 ~@2 f3 ~ e3 ~", H: "e3@2 ~@2 e3@2 ~@2 e3 ~ a3 ~", I: "f#3@2 ~@2 f#3@2 ~@2 f#3 ~ f#3 ~",
  J: "f3@2 ~@2 f3@2 ~@2 f3 ~@3", K: "[f#3@8 g#3@8 a3@8 g#3 a3 g#3@6 f#3@8 b3@16 f#3@32 ~@8]/2",
  L: "[f3@8 g3@8 a3@8 g3 a3 g3@6 f3@8 a3@16 e3@32 d3@16 f2@32 e2@8]/3",
  M: "[~ b2@2 e2@2 a2@6 a2@6 a2@6 a2@6 a2@6 g2@6 f#2@6 f2]/8", N: "[~@5 e2@6 a2@6 a2@6 a2@6 g#2@6 g2@6 f#2@6 f#2]/8",
  O: "[~@5 f2@6 e2@6 d#2@6 d2@6 e2@6 a2]/6", P: "[~@40 a2@112 ~@32 g2@36 c2@37 f2@31]/6",
  Q: "[~@6 f2@36 f2@37 c2@37 f2@36 f2@37 f2@37 c2@37 f2@12 c2@12 c#2@12 d2@12 ~ f2@12 a2@12]/7",
  R: "a2@12 g#2@12 a2@12 ~ f2@11", S: "~ e2@12 f2@12 e2@12 ~ d3@10", T: "~@2 e2@12 a2@12 e3@12 ~ g2@9",
  U: "~@3 f2@12 c3@12 f#2@12 ~ g2@8", V: "~ e3@3 g2@3 d3@3 g2@2",
  W: "[~@5 d3@6 g2@6 c2@3 ~@9 c4@24 ~ b3 c#4 b3@2 a3@4 b3@4 g3@24 f#3@3 g3@3]/2",
  X: "[f#3@3 ~ g3@3 a3@24 g3@12 e3@24 ~@7 d3@6 d#3@6 f3@6 d#3 f3 d#3@4 d3@6 g3@12 ~ d3@24 c#3@37 c3@37 f3@6 f3@6 f3@6 f3@6 f3@6 f3@6 f3@6 f3@6 ~ f3@6 f3@6 f3@6 f3@6]/6",
  Y: "f3@6 f3@6 f3@6 f3@6 f3@6 ~ f3@6 f3@6 f3@5", Z: "~ f3@6 f3@6 f3@6 f3@6 f#3@6 ~ f#3@6 f#3@6 f#3@4",
  AA: "~@2 f#3@6 f#3@6 g3@6 g3@6 g3@6 g3@6 ~ g3@6 g3@3",
  AB: "[~@3 f#3@6 f#3@6 e3@6 e3@6 d3@6 d3@6 ~ g2@36 g2@37 g2@37 g2@36 f#2@6]/4",
  AC: "[~@7 e2@12 d2@12 g2@6 ~@6 g2@24 ~ f#2 g2 f#2@2 e2@4 f#2@4 d2@24 c#2@3 ~ d2@3 c#2@3 d2@3 e2@24 f#2@73 ~ f#2@73]/6",
  AD: "f#2@6 ~@6 c#3@15 ~ a#2@2 ~ b2@2 ~ c#3@2 ~ d3@2 ~ e3@2 ~ f#3@2 ~ g#3@2",
  AE: "~ a#3@2 ~ b3@2 ~ c#4@2 ~ d4@2 ~ e4@6 f#4@6 f#4@6 ~ f#4@6 f#4@6 f#4@4",
  AF: "[~@2 f#4@6 f#4@6 d4@6 d4@6 d4@6 d4@6 ~ d4@6 d4@6 b3@6 b3@6 b3@6 b3@6 b3@6 b3@6 ~ g3@6 g3@6 g3@6 g3@6 g3@6 g3@6 e4@6 e4@6 d#4@6 ~ d#4@6 d#4@6 d#4@6 e4@6 e4@6 e4@6 e4@6 e4@6 ~]/4",
  AG: "e4!7 f4", AH: "f4 ~@7", AI: "[~@46 e4@61 e3@37]/3", AJ: "a3 ~ a3@2 ~@2 a3@2 ~@2 a3 ~", AK: "d4 e4 d4 e4 f#4@8",
  AL: "[e4@2 b3 ~ e4@3 a#3 f#4@3 e4]/2", AM: "d4 e4 d4@3 c#4@5 ~ d4@5 b3@32", AN: "f3 ~ f3@2 ~@2 f3@2 ~@2 f3 ~",
  AO: "e3 ~ e3@2 ~@2 e3@2 ~@2 e3 ~", AP: "f#3 ~ f#3@2 ~@2 f#3@2 ~@2 f#3 ~", AQ: "d#3 ~ d#3@2 ~@2 d#3@2 ~@2 d#3 ~",
  AR: "~@8 f3@8 g3@8 a3@8 g3 a3 g3@6 f3@8", AS: "a3 e3@2", AT: "d3 f2@2", AU: "e2 b2 e2",
  AV: "a2@5 ~@3 e3@5 ~@3 c#4@5 ~@3 e3@5 ~@3 a2@5 ~@3 e3@5 ~@3",
  AW: "a2@5 ~@3 e3@5 ~@3 d4@5 ~@3 e3@5 ~@3 a2@5 ~@3 e3@5 ~@3",
  AX: "a2@5 ~@3 f#3@5 ~@3 d4@5 ~@3 f#3@5 ~@3 a2@5 ~@3 f#3@5 ~@3",
  AY: "g#2@5 ~@3 e3@5 ~@3 d4@5 ~@3 e3@5 ~@3 g#2@5 ~@3 e3@5 ~@3",
  AZ: "g2@5 ~@3 e3@5 ~@3 c#4@5 ~@3 e3@5 ~@3 g2@5 ~@3 e3@5 ~@3",
  BA: "f#2@5 ~@3 d3@5 ~@3 b3@5 ~@3 d3@5 ~@3 f#2@5 ~@3 d3@5 ~@3",
  BB: "f2@5 ~@3 d3@5 ~@3 a3@5 ~@3 d3@5 ~@3 f2@5 ~@3 d3@5 ~@3",
  BC: "e2@5 ~@3 d3@5 ~@3 g#3@5 ~@3 d3@5 ~@3 e2@5 ~@3 d3@5 ~@3",
  BD: "f2@5 ~@3 c#3@5 ~@3 g#3@5 ~@3 c#3@5 ~@3 f2@5 ~@3 c#3@5 ~@3",
  BE: "e2@5 ~@3 c#3@5 ~@3 a3@5 ~@3 c#3@5 ~@3 e2@5 ~@3 c#3@5 ~@3",
  BF: "d#2@5 ~@3 b2@5 ~@3 f#3@5 ~@3 b2@5 ~@3 d#2@5 ~@3 b2@5 ~@3",
  BG: "d2@5 ~@3 b2@5 ~@3 f3@5 ~@3 b2@5 ~@3 d2@5 ~@3 b2@5 ~@3", BH: "a2@5 ~@3 e3@5 ~@3 c#4@11 ~@21", BI: "a2/4",
  BJ: "g#2 f#2 e2", BK: "a2 ~ g#2@4", BL: "f#2 g#2 f#2@3 e2@5 ~ f#2@5 d#2@32", BM: "d2 e2 d2 e2 f2@8", BN: "e2 d3 e2",
  BO: "a2@2 a3", BP: "[a3 ~ a3@2 ~@2 a3@2 ~@2 a3@5 ~@9]/2", BQ: "f#4", BR: "c#4", BS: "d4", BT: "a3", BU: "a3/3",
})).s("gm_baritone_sax").gain(0.3)

stack(soprano_sax, soprano_sax_soft, alto_sax, baritone_sax)