Strudelify

Le nozze di Figaro K.492

W. A. Mozart

KeyD majorTempo280 bpm
0:00/0:00
// Le nozze di Figaro K.492 — W. A. Mozart
// 280 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Flutes" named as a pipe, played on flute (its pizzicato strings patch is not one); ch 2 "Oboes" named as a reed, played on oboe (its tremolo strings patch is not one); ch 3 "Clarinets in B♭" named as a reed, played on clarinet (its cello patch is not one); ch 4 "Bassoons" named as a reed, played on bassoon (its pizzicato strings patch is not one); ch 5 "Horns in D" named as a brass, played on brass section (its tremolo strings patch is not one); ch 6 "Trumpets in D" named as a brass, played on trumpet (its string ensemble 1 patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/6288887; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 294 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(280/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 · "Flutes"
const flute = note(`<
  ~@11 A B C@2 D E ~@11 A B C@2 D E F@2 G@2 H@2 I J K L M N@2 O P Q R@2 S@2 T@2 U V ~@16 W ~ X ~ Y ~ Z AA AB AC AD@8 AE
  AF AG ~@27 AH@2 AI@2 AJ@2 AK@2 AL AM AN@3 ~@14 A B C@2 D E ~@8 AO AP S@2 T@2 U V ~@4 AQ@2 ~@6 AQ@2 ~@2 AR ~ AS ~ AT ~
  AU@2 AL AV AW@8 AX AY AZ ~@40 J K L BA@5 N@2 O BB ~ Q BC BD BE BA@5 N@2 O BB ~ Q BC BD BE Q BC BD BE BF BG BF BG BF BG
  BH@2 BB@2 BI
>`.pickRestart({
  A: "[f#5,d6]@15 ~", B: "[e5,c#6]@11 ~ [g5,b5]@4", C: "[f#5,a5] [f#5,d6] [e5,c#6] [g5,b5]",
  D: "[f#5,a5]@2 [f#5,a5]!2 [e5,g5]@2 [e5,g5]!2", E: "[d5,f#5]@2 [d5,f#5]!2 [c#5,e5]@2 [c#5,e5]!2", F: "[d5@15 ~]/2",
  G: "[[c#5,e5]@15 ~]/2", H: "[[d5,f#5]@15 ~]/2", I: "[g5,b5]@15 ~", J: "[a5,c6]@15 ~", K: "[g5,b5] [f#5,a5]",
  L: "b5 c#6, g5@15 ~", M: "[f#5,d6] ~@2 [a5,c#6]", N: "[a5,d6]!2 ~ [a5,c#6]", O: "[a5,d6] [a5,c#6] [a5,d6] [a5,c#6]",
  P: "d6 c#6 b5 a5 d6 c#6 b5 a5", Q: "d6 c#6 b5 a5 g5 f#5 e5 d5", R: "[~ c#6 d6 [d6,f#6], a5@23 ~@9]/2",
  S: "[[c#6,e6] c#6 d6 [d6,f#6], ~@8 a5@15 ~@9]/2", T: "[c#6,e6] [d6,f#6]", U: "[c#6,e6]@2 a5!2 a5@2 a5@2", V: "a5 ~",
  W: "~@2 [c#6,f#6] ~", X: "~@2 [b5,e6] ~", Y: "~@2 [a5,d6] ~", Z: "[d5,g#5]@15 ~", AA: "[c#5,a5]@15 ~",
  AB: "[g#5,b5]@15 ~", AC: "[a5,c#6] [b5,d6]", AD: "[c#6@91 ~@5 c6@15 ~@9 g#5@8, a5@57 ~@7, ~@112 b5@15 ~]/8",
  AE: "[c#6,e6] [b5,d6]", AF: "[a5,c#6] [g#5,b5]", AG: "a5 ~@3", AH: "[a5@15 ~]/2", AI: "[[g#5,b5]@15 ~]/2",
  AJ: "[[g5,c#6]@15 ~]/2", AK: "[[f#5,d6]@15 ~]/2", AL: "[c#6,e6]@15 ~", AM: "[d6,f#6]@15 ~", AN: "[[e6,g6]@17 ~@7]/3",
  AO: "e5 f#5 e5@5 ~ c#6@8", AP: "[a5,d6] [d6,f#6]", AQ: "[g5,b5]@3 ~", AR: "~@2 [b5,f#6] ~", AS: "~@2 [a5,e6] ~",
  AT: "~@2 [g5,d6] ~", AU: "[c#6@15 ~ d6@15 ~, a5@15 ~]/2", AV: "[d6,f#6] [e6,g6]",
  AW: "[f#6@91 ~@5 f6@15 ~@9 c#6@8, d6@57 ~@7, ~@112 e6@15 ~]/8", AX: "[d6,f#6] [g5,b5]", AY: "[f#5,d6] [e5,c#6]",
  AZ: "[f#5,d6] ~@3", BA: "[[f#5,d6]@2 d6@15 ~@2 [a5,c#6]]/5", BB: "[a5,d6] ~@3",
  BC: "[e6,g6] [d6,f#6] [c#6,e6] [b5,d6] [a5,c#6] [g5,b5] [f#5,a5] [e5,g5]", BD: "[d5,f#5] ~ [a5,d6] ~",
  BE: "[g5,b5] ~ [e5,c#6] ~", BF: "[a5,d6]@15 ~", BG: "[a5,d6]@4 [a5,d6]@3 [a5,d6]", BH: "[a5,d6] ~ [a5,d6] ~",
  BI: "[a5,d6] ~", // D5
})).s("gm_flute").gain(0.22)

// chords · flute · "Flutes" · soft notes
const flute_soft = note(`<
  ~@8 A B C ~@6 D E@4 F G ~ A B C ~@37 H I ~@6 H I ~@23 J ~@16 K L M N K O P ~@24 A B C ~@6 D Q@2 R S T U V ~@12 W@2 X Y
  Z ~@3 W@2 X Y Z ~@41 AA AB AC ~@2 AD AE ~@58
>`.pickRestart({
  A: "~ [f#4,a4] [a4,d5] [d5,f#5]", B: "[f#5,a5] ~@3", C: "~ [a4,d5] [d5,f#5] [f#5,a5]", D: "d5@15 ~",
  E: "[d6@23 ~ c#6@16 d6@15 ~ c#6@6 d6@2]/4", F: "e6 g5", G: "f#5 ~@3",
  H: "[e5,g#5] [f#5,a5] [g#5,b5] [f#5,a5] [e5,g#5] [d5,f#5] [c#5,e5] [b4,d5]", I: "[a4,c#5] ~@3",
  J: "~ [b5,d6] [a5,c#6] ~", K: "a5@3 c#6", L: "b5 g#5 f#5 e5", M: "e6 ~ e6 ~", N: "e6@2 c#6 ~",
  O: "b5@2 d6@2 f#6@2 f#6 ~", P: "d6@2 b5@2 g#5@2 g#5 ~", Q: "[d6@23 ~ c#6@8]/2", R: "c6@15 ~", S: "b5@15 ~",
  T: "a5@15 ~", U: "g5@15 ~", V: "[f#5,g5]!16", W: "~@3 [f#5,a5]", X: "[e5,g5] ~@3",
  Y: "[a5,c#6] [b5,d6] [c#6,e6] [b5,d6] [a5,c#6] [g5,b5] [f#5,a5] [e5,g5]", Z: "[d5,f#5] ~@3", AA: "~ [g5,e6]",
  AB: "[f#5,d6] [e5,c#6]", AC: "[f#5,d6] ~@3", AD: "g6@2 e6@2 c#6@2 c#6 ~", AE: "d6 ~@3",
})).s("gm_flute").gain(0.11)

// chords · oboe · "Oboes"
const oboe = note(`<
  ~@11 A B C@2 D E ~@11 A B C@2 D E F@2 G@2 H@2 I J K L M N@2 O P Q R S T S U@2 V W ~@4 X@2 ~@6 X@2 ~@2 Y ~ Z ~ AA ~ AB
  AC AD AE AF@8 AG AH AI ~@27 G@2 AJ@2 G@2 H@2 AK S AL@3 ~@14 A B C@2 D E ~@8 AM S T S U@2 V W ~@16 AN@6 AK S AO@2 AP@8
  AQ AR AS ~@36 AT AU@2 AV@2 AW AX AY AZ@2 BA BB N@2 O BC ~ BD BE BF BG AY AZ@2 BA BB N@2 O BC ~ BD BE BF BG BD BE BF BG
  S BH S BH S BH BI@2 BC@2 BJ
>`.pickRestart({
  A: "[f#5,d6]", B: "[e5,c#6]@3 [g5,b5]", C: "[f#5,a5] [f#5,d6] [e5,c#6] [g5,b5]",
  D: "[f#5,a5]@2 [f#5,a5]!2 [e5,g5]@2 [e5,g5]!2", E: "[d5,f#5]@2 [d5,f#5]!2 [c#5,e5]@2 [c#5,e5]!2", F: "d5/2",
  G: "[c#5,e5]/2", H: "[d5,f#5]/2", I: "[g5,b5]", J: "[a5,c6]", K: "[g5,b5] [f#5,a5]", L: "b5 c#6, g5",
  M: "[f#5,d6] ~@2 [c#5,e5]", N: "[d5,f#5]!2 ~ [c#5,e5]", O: "[d5,f#5] [c#5,e5] [d5,f#5] [c#5,e5]",
  P: "d5@2 ~@2 d5 c#5 b4 a4", Q: "d5 c#5 b4 a4 g4 f#4 e4 d4", R: "a4 [e5,g5]", S: "[d5,f#5]", T: "[c#5,e5] [e5,g5]",
  U: "[c#5,e5] [d5,f#5]", V: "[c#5,e5]@2 a4!2 a4@2 a4@2", W: "a4 ~", X: "[d5,f#5]@3 ~", Y: "~@2 [f#5,c#6] ~",
  Z: "~@2 [e5,b5] ~", AA: "~@2 [d5,a5] ~", AB: "[d5,g#5]", AC: "[c#5,a5]", AD: "[g#5,b5]", AE: "[a5,c#6] [b5,d6]",
  AF: "[c#6@12 c6@2 ~ g#5, a5@15 ~, ~@7 b5]/8", AG: "[e5,c#6] [d5,b5]", AH: "[c#5,a5] [b4,g#5]", AI: "[c#5,a5] ~@3",
  AJ: "[d5,e5]/2", AK: "[e5,g5]", AL: "[[g5,c#6]@3 ~]/3", AM: "[a4,c#5] [e5,g5]",
  AN: "[~ d5@4 c5@4 [a#4,d5]@3, ~ f#5 ~@3 e5 ~@6]/6", AO: "[g5@2 f#5 [g5,c#6], a5@3 ~]/2",
  AP: "[[f#5,d6] f#5@11 f5@2 b5 [c#5,a5], ~ d5@14 ~]/8", AQ: "[d5,a5] [b4,g5]", AR: "[d5,f#5] [c#5,e5]", AS: "d5 ~@3",
  AT: "~ [c#5,e5]", AU: "[[d5,f#5]@3 [e5,g5]]/2", AV: "[f#5,a5]/2", AW: "g5 [f#5,a5]", AX: "[g5,b5] [e5,g5]",
  AY: "[d5,f#5]@4 ~@2 [d5,d6] ~", AZ: "[a4,a5] ~ [f#4,f#5] ~@3 [b4,b5] ~",
  BA: "[a4,a5] ~ [f#4,f#5] ~ [a4,a5] ~ [b4,b5] ~", BB: "[a4,a5]@2 ~ [c#5,e5]", BC: "[d5,f#5] ~@3",
  BD: "d6 c#6 b5 a5 g5 f#5 e5 d5", BE: "[e5,g5] [d5,f#5] [c#5,e5] [b4,d5] [a4,c#5] [g4,b4] [f#4,a4] [e4,g4]",
  BF: "[d4,f#4] ~ [d5,f#5] ~", BG: "[b4,g5] ~ [c#5,e5] ~", BH: "[d5,f#5]@4 [d5,f#5]@3 [d5,f#5]",
  BI: "[d5,f#5] ~ [d5,f#5] ~", BJ: "[d5,f#5] ~",
})).s("gm_oboe").gain(0.22)

// chords · oboe · "Oboes" · soft notes
const oboe_soft = note(`<
  ~@7 A B C D ~@6 E F G H I J B A B C D ~@34 K@2 L M N ~@3 K@2 L M N ~@21 O ~ O ~@17 P Q R ~@26 A B C D ~@6 E F S T@5
  ~@14 U V B ~@5 U W@2 X Y Z AA ~@19 AB ~@9 AC AD D ~@4 AE AF AG AH AE AI AJ B ~@7 AK@2 ~@49
>`.pickRestart({
  A: "[a4,f#5]@3 [c#5,e5]", B: "d5 ~@3", C: "[f#5,a5]@3 [e5,g5]", D: "[d5,f#5] ~@3", E: "d5", F: "f#5", G: "e5@7 f#5",
  H: "g5 f#5", I: "g5@3 f#5 e5@3 f#5", J: "g5 e5", K: "~@3 [c#5,e5]",
  L: "[b4,d5] [c#5,e5] [d5,f#5] [c#5,e5] [b4,d5] [a4,c#5] [g#4,b4] [f#4,a4]", M: "[e4,g#4]", N: "a4 ~@3",
  O: "~ [b4,d5] [a4,c#5] ~", P: "~ [b4,d5]", Q: "[a4,c#5] [g#4,b4]", R: "[a4,c#5] ~@3", S: "e5",
  T: "[f#5 a5@2 g5@2 f#5@2 e5@2 d5]/5", U: "[e5,g5] [f#5,a5] [g5,b5] [f#5,a5] [e5,g5] [d5,f#5] [c#5,e5] [b4,d5]",
  V: "[a4,c#5]", W: "[c#5@2 d5 ~, a4@3 ~]/2", X: "f5", Y: "e5 ~", Z: "d#5", AA: "d5 ~", AB: "~ [e5,g5] [d5,f#5] ~",
  AC: "~ [e5,g5]", AD: "[d5,f#5] [c#5,e5]", AE: "d5@3 f#5", AF: "e5 c#5 b4 a4", AG: "a5!4", AH: "a5@2 f#5 ~",
  AI: "e5@2 g5@2 b5@2 b5 ~", AJ: "g5@2 e5@2 c#5@2 c#5 ~", AK: "[d5@3 ~]/2",
})).s("gm_oboe").gain(0.11)

// chords · clarinet · "Clarinets in B♭"
const clarinet = note(`<
  ~@11 A B C@2 D E ~@11 A B C@2 D E F@2 G@2 H@2 I J K L M N@2 O P Q R S T S U@2 V W ~@16 X ~ Y ~ Z ~ AA AB AC AD AE@8 AF
  AG AH ~@27 AI@2 AJ@2 AK@2 AL@2 AM AN AO@3 ~@14 A B C@2 D E ~@8 AP S T S U@2 V W ~@16 AQ ~ AR ~ AS ~ AT S AU AV AW@7
  AX@2 AY AZ ~@38 BA BB BC BD BE BF BG@2 BH BI N@2 O BJ BK BL BM BN BO BF BG@2 BH BI N@2 O BJ BK BL BM BN BO BL BM BN BO
  BP BQ BP BQ BP BQ BR BS BT@2 BU
>`.pickRestart({
  A: "d3!8, [f#4,d5]", B: "d3!8, [e4,c#5]@3 [g4,b4]", C: "d3!8, [f#4,a4] [f#4,d5] [e4,c#5] [g4,b4]",
  D: "[d3,f#4,a4]@2 [f#4,a4]!2 [g3,e4,g4]@2 [e4,g4]!2", E: "[a3,d4,f#4]@2 [d4,f#4]!2 [a2,c#4,e4]@2 [c#4,e4]!2",
  F: "[d3!4 ~@12, d4]/2", G: "[d3!4 ~@12, [c#4,e4]]/2", H: "[d3!4 ~@12, [d4,f#4]]/2", I: "[d3,g4,b4]",
  J: "d3 e3 f#3 g3 a3 b3 c4 d4, [a4,c5]", K: "d3!8, [g4,b4] [f#4,a4]", L: "d3!8, g4, b4 c#5",
  M: "[f#4,d5] ~@2 [a3,e4,c#5], d3 ~", N: "[f#3,f#4,d5] [d3,f#4,d5] ~ [a3,e4,c#5]",
  O: "[f#3,f#4,d5] [a3,e4,c#5] [f#3,f#4,d5] [a3,e4,c#5]", P: "[d3,f#4,d5]@2 ~@2 [d4,d5] [c#4,c#5] [b3,b4] [a3,a4]",
  Q: "[d4,d5] [c#4,c#5] [b3,b4] [a3,a4] [g3,g4] [f#3,f#4] [e3,e4] [d3,d4]", R: "a3!8, a4 [e4,c#5]", S: "a3!8, [f#4,d5]",
  T: "a3!8, [e4,c#5]", U: "a3!8, [e4,c#5] [f#4,d5]", V: "[a3,e4,c#5]@2 [a3,a4]!2 [a3,a4]@2 [a3,a4]@2", W: "[a3,a4] ~",
  X: "~@2 [a3,c#5,f#5] ~", Y: "~@2 [g3,b4,e5] ~", Z: "~@2 [f3,a4,d5] ~", AA: "e3!8, [g#4,b4]", AB: "e3!8, [a4,c#5]",
  AC: "e3!8, [g#4,d5]", AD: "e3!8, [a4,c#5] [g#4,d5]",
  AE: "[a3@2 ~ a3 b3 c#4 d4 d#4 f#4 e4 ~ a3 b3 c#4 d4 d#4 f#4 e4 ~ a3 b3 c#4 d4 d#4 f4@2 e4@2 d#4@2 [d4,g#4]@2, a4@15 ~, c#5@6 c5 b4]/8", // Ddim
  AF: "c#4!2 d4!2, [c#5,e5] [b4,d5]", AG: "e4!2 e3!2, [a4,c#5] [g#4,b4]", AH: "[a3,a4] ~@3", AI: "[[c#4,e4], a2 ~@3]/2",
  AJ: "[[g#4,b4], a2 ~@3]/2", AK: "[[e4,g4], a2 ~@3]/2", AL: "[[d4,f#4], a2 ~@3]/2", AM: "[g4,c#5], a2 ~",
  AN: "[f#4,d5], a2 ~", AO: "[a2 b2 c#3 d3 e3 f#3 g3 f#3 g3 f#3 e3 f#3 e3 d3 c#3 b2 a2@2 ~@6, [c#5,e5]@3 ~]/3",
  AP: "a3!8, c#5, a4 g4", AQ: "~@2 [d4,b4,f#5] ~", AR: "~@2 [c4,a4,e5] ~", AS: "~@2 [a#3,g4,d5] ~",
  AT: "a3!8, [g4,c#5]", AU: "a3!8, [c#5,e5]", AV: "a3!8, [d5,f#5] [c#5,e5]",
  AW: "[[d3,d5,f#5]@2 ~ d3 e3 f#3 g3 g#3 b3 a3 ~ d3 e3 f#3 g3 g#3 b3 a3 ~ d3 e3 f#3 g3 g#3 a#3@2 a3@2, ~ d5@13, ~ f#4@11 f4@2]/7", // D
  AX: "[[g#3,b4]@2 g3@2 f#3!2 g3!2, e5@2 f#5 ~, ~ a4@2 [g4,e5]]/2", AY: "a3!2 a2!2, [f#4,d5] [e4,c#5]",
  AZ: "[d3,f#4,d5] ~@3", BA: "~@2 d3 ~", BB: "d3!4", BC: "d3!4, [a4,c5]", BD: "d3!4, [g4,b4] [f#4,a4]",
  BE: "d3!4, [g4,b4] [e4,c#5]", BF: "[d3,f#4,d5]@4 ~@2 [g3,b4] ~", BG: "[f#3,a4] ~ [d3,f#4] ~@3 [g3,b4] ~",
  BH: "[f#3,a4] ~ [d3,f#4] ~ [f#3,a4] ~ [g3,b4] ~", BI: "f#3 ~ d3 ~@3 [a3,e4,c#5]@2, a4 ~",
  BJ: "[f#4,d5]@2 ~@5 d4, d3@3 ~", BK: "c#4 b3 a3 g3 f#3 e3 d3 c#3", BL: "d5 c#5 b4 a4 g4 f#4 e4 d4, b2",
  BM: "[c#3,d3]!16, [e5,g5] [d5,f#5] [c#5,e5] [b4,d5] [a4,c#5] [g4,b4] [f#4,a4] [e4,g4]", // Dmaj7 Em D C#m Bm A G F#m …
  BN: "b2 c#3 d3@2 ~@4 [d4,f#4,d5]@4 ~@4, [d4,f#4] ~@3", BO: "[g3,g4,b4] ~ [a3,e4,c#5] ~", BP: "d3!8, [f#4,a4]",
  BQ: "d3!7 [d3,f#4,a4], [f#4,a4]@4 [f#4,a4]@3 ~", BR: "[d3,f#4,a4] ~ [f#3,f#4,a4] ~",
  BS: "[a3,f#4,a4] ~ [f#3,f#4,a4] ~", BT: "[d3,f#4,a4] ~@3", BU: "[d3,f#4,a4] ~",
})).s("gm_clarinet").gain(0.31)

// chords · clarinet · "Clarinets in B♭" · soft notes
const clarinet_soft = note(`<
  A B C D E F G@2 H I J ~@6 K B C D E F G@2 H I J ~@6 L G L G L G ~@25 M N ~@6 M N ~@21 O ~ O ~ P Q R S T U V@5 W X Y
  V@5 W X Y ~@16 A B C D E F G@2 H I J ~@6 K B C Z AA AB AC AD ~@15 AE AF ~@6 AE X ~@21 AG ~ AG ~ AH AI AJ AK AL AM AN@5
  AO AK AE AN@5 AO AK AE AP@11 X ~@47
>`.pickRestart({
  A: "d3 c#3 d3 c#3 d3@2 ~@2", B: "d3 c#3 d3 e3 f#3 e3 f#3 g3", C: "a3 g#3 a3 g#3 a3@2 ~@2",
  D: "a3 g#3 a3 a#3 b3 a3 g3 f#3", E: "e3 d#3 e3 f#3 g3 f#3 e3 d3", F: "c#3 d3 e3 d3 c#3 a2 b2 c#3", G: "d3!8",
  H: "d3!8, ~ [f#3,a3] [a3,d4] [d4,f#4]", I: "d3!8, [f#4,a4] ~@3", J: "d3!8, ~ [a3,d4] [d4,f#4] [f#4,a4]",
  K: "d3 c#3 d3 c#3 d3@2 ~@2, d4 ~@3", L: "~@4 d3!4", M: "e3", N: "a2 ~@3", O: "~ g#3 a3 ~", P: "~@3 g3",
  Q: "g#3 a3 a#3 b3", R: "c4 c3", S: "d3", T: "e3 f3", U: "d3 e3", V: "a2/5", W: "c#3 ~@3", X: "d3 ~@3", Y: "e3 ~@3",
  Z: "d3 c#3 d3 e3 f#3 e3 f#3 d3", AA: "g3 f#3 g3 f#3 g3@2 ~@2", AB: "b2 a#2 b2 c#3 d#3 c#3 d#3 b2",
  AC: "e3 f#3 e3 d3 c#3 b2 c#3 a2", AD: "d3 c#3 d3 e3 f#3 e3 f#3 g#3", AE: "a3", AF: "d4 ~@3",
  AG: "~ [c#4,e4,g4] [d4,f#4] ~", AH: "~@3 c3", AI: "c#3 d3 d#3 e3", AJ: "f3", AK: "g3", AL: "a3 a#3", AM: "g3 a3",
  AN: "d3/5", AO: "f#3", AP: "d3 ~ d3 ~",
})).s("gm_clarinet").gain(0.16)

// other · bassoon · "Bassoons"
const bassoon = note(`<
  ~@11 A@4 B C ~@11 A@4 B C D ~ D ~ D ~ E F A@2 G H@2 I J K L@6 M N ~@16 O ~ P ~ Q ~ R@4 S T U T U T V W X Y Z ~@27 AA ~
  AB ~ AB ~ AB ~ AB@2 AC AD AE ~@14 A@4 B C ~@8 L@6 M N ~@8 AF@2 AG@2 AH@2 ~@2 AI ~ AJ ~ AK ~ L@4 AL AM AN AM AN AM AO
  AP AQ AR AS ~@38 AT AU@4 AV AW@2 AX AY H@2 I AZ BA BB BC BD BE AV AW@2 AX AY H@2 I AZ BA BB BC BD BE BB BC BD BE AU@6
  BF BG AS@2 BH
>`.pickRestart({
  A: "d3!8", B: "d3 ~ g3 ~", C: "a3 ~ a2 ~", D: "d3!4 ~@4", E: "d3", F: "d3 e3 f#3 g3 a3 b3 c4 d4", G: "d3@2 ~ a3",
  H: "f#3 d3 ~ a3", I: "f#3 a3 f#3 a3", J: "d3@2 ~@2 d4 c#4 b3 a3", K: "d4 c#4 b3 a3 g3 f#3 e3 d3", L: "a3!8",
  M: "a3@2 a3!2 a3@2 a3@2", N: "a3 ~", O: "~@2 a3 ~", P: "~@2 g3 ~", Q: "~@2 f3 ~", R: "e3!8", S: "a3@2 ~ a3",
  T: "b3 c#4 d4 d#4", U: "f#4 e4 ~ a3", V: "f4 e4", W: "d#4 d4", X: "c#4!2 d4!2", Y: "e4!2 e3!2", Z: "a3 ~@3",
  AA: "[a2,a3] ~", AB: "a2 ~", AC: "a2 b2 c#3 d3 e3 f#3 g3 f#3", AD: "g3 f#3 e3 f#3 e3 d3 c#3 b2", AE: "a2 ~@3",
  AF: "[d4,f#4]@3 ~", AG: "[b3,d4]@3 ~", AH: "[g3,b3]@3 ~", AI: "~@2 [d3,d4] ~", AJ: "~@2 [c3,c4] ~",
  AK: "~@2 [a#2,a#3] ~", AL: "d4@2 ~ d3", AM: "e3 f#3 g3 g#3", AN: "b3 a3 ~ d3", AO: "a#3 a3", AP: "g#3 g3",
  AQ: "f#3!2 g3!2", AR: "a3!2 a2!2", AS: "d3 ~@3", AT: "~@2 d3 ~", AU: "d3!4", AV: "d3@4 ~@2 g3 ~",
  AW: "f#3 ~ d3 ~@3 g3 ~", AX: "f#3 ~ d3 ~ f#3 ~ g3 ~", AY: "f#3 ~ d3 ~@3 a3@2", AZ: "d3@6 ~ d4",
  BA: "c#4 b3 a3 g3 f#3 e3 d3 c#3", BB: "b2 ~@3",
  BC: "[e4,g4] [d4,f#4] [c#4,e4] [b3,d4] [a3,c#4] [g3,b3] [f#3,a3] [e3,g3]", BD: "[d3,f#3] ~ d4 ~", BE: "g3 ~ a3 ~",
  BF: "d3 ~ f#3 ~", BG: "a3 ~ f#3 ~", BH: "d3 ~",
})).s("gm_bassoon").gain(0.31)

// other · bassoon · "Bassoons" · soft notes
const bassoon_soft = note(`<
  A B C D E F G ~ G ~ G ~@6 A B C D E F G ~ G ~ G ~@6 H I H I H I ~@25 J K ~@6 J K ~@21 L ~@3 M N@2 O P Q R S T U V S W
  X Y S T U V S W X ~@16 A B C D E F G ~ G ~ G ~@6 A B C Z AA AB AC AD ~@16 AE@2 AF@2 AG@2 AH AI AJ ~@21 AK ~@3 AL AM@2
  AN AO AP AQ ~@8 AR AS AT AU AR AV AW G ~@3 AX AY AZ BA BB BC@2 G ~@47
>`.pickRestart({
  A: "d3 c#3 d3 c#3 d3@2 ~@2", B: "d3 c#3 d3 e3 f#3 e3 f#3 g3", C: "a3 g#3 a3 g#3 a3@2 ~@2",
  D: "a3 g#3 a3 a#3 b3 a3 g3 f#3", E: "e3 d#3 e3 f#3 g3 f#3 e3 d3", F: "c#3 d3 e3 d3 c#3 a2 b2 c#3", G: "d3 ~@3",
  H: "~@4 d3!4", I: "d3!8", J: "e3", K: "a2 ~@3", L: "~ [b3,d4] [a3,c#4] ~", M: "~@3 b3",
  N: "[c4@2 c#4@2 d4@6 b3@2 c4 ~ e3 ~]/2", O: "a3 ~ f3 ~ a#3 ~ d3 ~", P: "g#3@2 b3@2 a3 ~ f3 ~",
  Q: "d3 ~ b2 ~ e3 ~ e2 ~", R: "a2 ~@7", S: "a3@3 c#4", T: "b3 g#3 f#3 e3", U: "e4!4", V: "e4@2 c#4 ~",
  W: "b3@2 d4@2 f#4@2 f#4 ~", X: "d4@2 b3@2 g#3@2 g#3 ~", Y: "a3@2 e3@2 c#3@2 c#3 ~", Z: "d3 c#3 d3 e3 f#3 e3 f#3 d3",
  AA: "g3 f#3 g3 f#3 g3@2 ~@2", AB: "b2 a#2 b2 c#3 d#3 c#3 d#3 b2", AC: "e3 f#3 e3 d3 c#3 b2 c#3 a2",
  AD: "d3 c#3 d3 e3 f#3 e3 f#3 g#3", AE: "~@3 [c#4,e4]", AF: "~@3 [a3,c#4]", AG: "~@3 [f#3,a3]", AH: "[e3,g3] ~@3",
  AI: "[a3,c#4] [b3,d4] [c#4,e4] [b3,d4] [a3,c#4] [g3,b3] [f#3,a3] [e3,g3]", AJ: "[d3,f#3] ~@3",
  AK: "~ [e3,g3] [d3,f#3] ~", AL: "~@3 e4", AM: "[f4@2 f#4@2 g4@6 e4@2 f4 ~ a3 ~]/2", AN: "d4 ~ a#3 ~ d#4 ~ g3 ~",
  AO: "c#4@2 e4@2 d4 ~ a#3 ~", AP: "g3 ~ e3 ~ a3 ~ a2 ~", AQ: "d3 ~@7", AR: "d3@3 f#3", AS: "e3 c#3 b2 a2", AT: "a3!4",
  AU: "a3@2 f#3 ~", AV: "e3@2 g3@2 b3@2 b3 ~", AW: "g3@2 e3@2 c#3@2 c#3 ~", AX: "[g3,b3]", AY: "[f#3,a3] [a3,c4]",
  AZ: "[g3,b3] [b3,d4]", BA: "[e3,c#4] [g3,e4]", BB: "[f#3,d4] ~@3", BC: "d3 ~ d3 ~",
})).s("gm_bassoon").gain(0.16)

// other · brass section · "Horns in D"
const brass_section = note(`<
  ~@11 A@3 B C D E ~@10 A@3 B C D F@6 A@3 B G H I J K L M N O N P@2 Q R ~@16 S ~ T ~ U ~ V@3 W X Y@4 Z@2 AA AB AC AD
  ~@27 AE@8 Z@2 AF@3 ~@14 A@3 B C D E ~@7 O N O N P@2 Q R ~@16 AG ~ AH ~ U ~ AI@5 AJ@4 F@2 AK AL AM E ~@86
>`.pickRestart({
  A: "[[d3,d4]@9 [d3,d4]!3]/3", B: "[d3,d4]!4", C: "[d3,d4] ~ [d3,d4] ~", D: "[d4,f#4] ~ [a3,e4] ~", E: "[f#3,d4] ~@3",
  F: "[d3,d4]/2", G: "[d3,d4]@2 ~ a3", H: "f#3 d3 ~ a3", I: "f#3 d3 ~ [a3,e4]", J: "[f#3,d4] [a3,e4] [f#3,d4] [a3,e4]",
  K: "[f#3,d4] ~ d4 a3", L: "d4 a3 f#3 d3", M: "[a2,a3]@2 ~ [a3,e4]", N: "[d4,f#4]@2 ~ [d4,f#4]",
  O: "[a3,e4]@2 ~ [a3,e4]", P: "[a3,e4]!2 [d4,f#4]!2", Q: "[a3,e4]@2 a3!2 a3@2 a3@2", R: "a3 ~", S: "~@2 [a3,f#4] ~",
  T: "~@2 e4 ~", U: "~@2 [d3,d4] ~", V: "e4/3", W: "e4!2", X: "[a3,e4] [a2,a3]!3", Y: "[[a2,a3]@5 [a2,a3]!3]/2",
  Z: "[a2,a3]", AA: "f#4 e4", AB: "[a3,e4] [d4,f#4]", AC: "e4", AD: "[a3,e4] ~@3", AE: "[a2,a3]/2",
  AF: "[[a3,e4]@3 ~]/3", AG: "~@2 [d4,f#4] ~", AH: "~@2 [a3,e4] ~",
  AI: "[[a2,a3]@14 a2@2 d3 [d3,d4]!3, ~@14 a3@3 ~@3]/5", AJ: "[[d3,d4]@5 [d3,d4]!3]/2", AK: "[d4,e4] [a3,e4]",
// … 175 more lines

More by W. A. Mozart