Strudelify

Christus am Ölberge Op.85

Ludwig van Beethoven

KeyC majorTempo156 bpm
0:00/0:00
// Christus am Ölberge Op.85 — Ludwig van Beethoven
// 156 bpm, 2/2, key C 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 (4/4 at bar 1, 2/2 at bar 48) are rendered on a constant 2/2 grid of one bar per cycle
// note: ch 4 "Bass" named as a bass, played on electric bass finger (its pizzicato strings patch is not one); ch 16 "Double Basses" named as a bass, played on acoustic bass (its string ensemble 1 patch is not one)
// note: duplicate parts dropped: ch 9 "Violins 1" string ensemble 1 (copy of ch 6 "C Trumpet" french horn); ch 13 "Violoncellos" string ensemble 1 (copy of ch 8 "Baritone Horn" french horn)
// note: Transcription provider: pdmx. https://musescore.com/score/131677; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 195 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(156/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 · pizzicato strings · "Soprano"
const pizzicato_strings = note(`<
  ~@20 A B@4 C D@8 E F@3 G H@5 ~@3 I J K L@2 M N O P Q ~@3 I R K S T U V W ~@5 X U Y Z AA AB AC ~@2 I J K J AD AE@4 AF
  AG AH ~@9 AI AJ X AK X AK AL AM AL@2 AN AO Q ~@8 AP@4 AQ AH ~@9 AI AJ X AK X AK X@2 AR AS AT@2 AU AV AL@2 AN AO AW
  AX@2 AY@2 AZ@2 BA@4 BB@2 BC@8 BD@4 BE@3 BF BG@2 BH@5 ~@2
>`.pickRestart({
  A: "~@2 g4@3 g4", B: "[c5@16 c5@16 ~@15 e5@12 c5@3 f5@16 f5@16 ~@2]/4", C: "~@13 f5@11",
  D: "[~ f5@4 f5@15 f5@16 f5@16 f5@15 f5@16 e5@16 ~@15 e5@12 e5@4 d5@23 d5@8 a5@23 c5@8]/8", E: "b4@2 ~",
  F: "[~@23 e5@12 c5@3 g5@16 g4@16 ~@2]/3", G: "~@13 e5@11", H: "[~ c5@4 g5@23 g5@8 e5@16 c5@15 g4@31 ~@22]/5",
  I: "g4!2", J: "c5@3 c5", K: "b4 a4 g4 a4 b4 c5 d5 b4", L: "[c5 d5 e5@3 a4 d5 c5]/2", M: "b4 ~@2 d5", N: "d5!3 c5",
  O: "b4 g4 a4 b4", P: "c5 b4", Q: "c5 ~", R: "d5@3 c5", S: "e5@3 d5", T: "c5!2 f5!2", U: "f5@3 f5", V: "e5!4",
  W: "d5 ~@3", X: "c5!2", Y: "e5@3 e5", Z: "d5!4", AA: "d5!2 c5 e5", AB: "e5 d5", AC: "e5 ~@3", AD: "c5 d5!3",
  AE: "[d5 ~ g5@4 f5@4 e5@3 d5!2 c5]/4", AF: "b4@3 g4", AG: "b4!2 d5!2", AH: "f5", AI: "g4@3 g4", AJ: "g4!2 b4 g4",
  AK: "~@4 c5@3 c5", AL: "f5!2", AM: "~@4 f5@3 f5", AN: "f5 e5", AO: "d5!2",
  AP: "[~@4 c5@5 a4 b4 c5 d5@5 b4 c5 d5 e5@5 c5 d5 e5 f5@2 f5@2]/4", AQ: "f5!4", AR: "e5", AS: "~@4 e5@3 e5",
  AT: "e5!2", AU: "g5", AV: "~@4 g5@3 g5", AW: "c5@23 ~", AX: "[~@19 c5@7 c5@3 c5@10 ~@9]/2",
  AY: "[~@11 e5@7 e5@3 e5@10 ~@10 e5@7]/2", AZ: "[~ c5@2 g5@45]/2",
  BA: "[g5@5 ~ g5@5 g5@5 g5@5 g5@5 g5@5 g5@5 g5@10 f5@10 d5@10 g5@10 c5@5 ~@15]/4", BB: "[~@10 c5@4 c5 c5@5 ~@4]/2",
  BC: "[~@12 e5@8 e5@3 e5@10 ~@10 e5@7 c5@3 g5@45 g5@5 g5@5 g5@5 g5@5 g5@5 g5@5 g5@5 g5@10 f5@10 d5@10 g5@10 ~ e5@10 ~@8]/8",
  BD: "[~@12 e5@5 e5@5 e5@5 e5@5 e5@5 e5@5 e5@5 e5@5 e5@5 e5@5 f5@20 a5@14]/4",
  BE: "[~ a5@5 g5@15 g5@5 g5@10 g5@10 ~ c5@5 ~@20]/3", BF: "~@5 g4@7 g4@3 c5@9", BG: "[~@21 c5@8 c5@2 e5@10 ~@7]/2",
  BH: "[~@8 g4@5 c5@5 e5@5 g5@20 e5@20 ~ c5@10 ~@5 g4@5 c5@5 g4@5 c5@5 e5@5 c5@5 ~@11]/5",
})).s("gm_pizzicato_strings").gain(0.11)

// other · tremolo strings · "Alto"
const tremolo_strings = note(`<
  ~@20 A B@4 C D@8 E F@3 G H@5 ~@7 I J K L M N O P Q R ~ S T U J V R ~@4 W X@4 Y ~ Z AA AB S Z AC V AD R AE AF AG AH AI
  AJ ~@7 AK AL W ~@2 AM Z AN AO AN AO@2 W AP AQ ~@8 AR@4 V AF ~@7 AK AL W ~@2 AM Z AN AO@2 AE AN AO AS AT AN AO@2 AU AP
  AV AW@2 AX@2 AY@2 AZ@4 BA@2 BB@8 BC@4 BD@3 ~ BE@2 BF@5 ~@2
>`.pickRestart({
  A: "~@2 g4@3 g4", B: "[e4@16 e4@16 ~@15 g4@12 g4@3 a4@16 a4@16 ~@2]/4", C: "~@13 a4@11",
  D: "[~ a4@4 g4@15 g4@16 g4@16 g4@15 g4@16 g4@16 ~@15 g4@12 g4@4 a4@23 a4@8 c5@23 a4@8]/8", E: "g4@2 ~",
  F: "[~@23 e4@12 c4@3 g4@16 g4@16 ~@2]/3", G: "~@13 e4@11", H: "[~ c4@4 g4@23 g4@8 e4@16 c4@15 g4@31 ~@22]/5",
  I: "d4!2", J: "g4@3 g4", K: "f#4 e4 d4 e4 f#4 g4 a4 f#4", L: "g4@2 f4@2 e4@2 f4 e4", M: "d4@3 d4", N: "e4@2 ~ g4",
  O: "g4!3 f4", P: "e4@2 f4@2 g4@2 a4 b4", Q: "c5!2 f#4!2", R: "g4 ~@3", S: "g4@3 f4", T: "e4@3 e4", U: "e4!2 a4!2",
  V: "g4!4", W: "g4!2", X: "[g4 ~ c5@3 f4 b4@3 e4 a4@3 a4 g4 f4]/4", Y: "e4 ~@3", Z: "e4!2", AA: "a4@3 g4",
  AB: "f#4 e4 d4 e4 f4 g4 a4 f4", AC: "d4 c4 b3 c4 d4 e4 f4 d4", AD: "f4 a4!3", AE: "a4", AF: "g4", AG: "f4!2 e4!2",
  AH: "d4@3 g4", AI: "g4!2 b4!2", AJ: "d5", AK: "c4@3 c4", AL: "c4!2 e4 c4", AM: "~@4 e4@3 e4", AN: "~@4 a4@3 a4",
  AO: "a4!2", AP: "a4 g4", AQ: "e4 ~", AR: "[~@4 e4@5 c4 d4 e4 f4@5 d4 e4 f4 g4@5 e4 f4 g4 a4@2 a4@2]/4", AS: "g#4 e4",
  AT: "e4", AU: "b4 g4", AV: "e4@23 ~", AW: "[~@19 e4@7 e4@3 e4@10 ~@9]/2", AX: "[~@11 g4@7 g4@3 g4@10 ~@10 e4@7]/2",
  AY: "[~ c4@2 g4@45]/2", AZ: "[b4@5 ~ c5@5 b4@5 c5@5 b4@5 c5@5 b4@5 c5@10 a4@10 g4@10 g4@10 e4@5 ~@15]/4",
  BA: "[~@10 e4@4 e4 e4@5 ~@4]/2",
  BB: "[~@12 g4@8 g4@3 g4@10 ~@10 e4@7 c4@3 g4@45 b4@5 c5@5 b4@5 c5@5 b4@5 c5@5 b4@5 c5@10 a4@10 g4@10 g4@10 ~ g4@10 ~@8]/8",
  BC: "[~@12 g4@5 g4@5 g4@5 g4@5 g4@5 g4@5 g4@5 g4@5 g4@5 g4@5 a4@20 c5@14]/4",
  BD: "[~ c5@5 c5@15 c5@5 c5@10 b4@10 ~ c5@5 ~@20]/3", BE: "[~@21 g4@8 g4@2 c5@10 ~@7]/2",
  BF: "[~@8 g4@5 c4@5 e4@5 g4@20 e4@20 ~ c4@10 ~@5 g4@5 c5@5 g4@5 c5@5 e5@5 c5@5 ~@11]/5",
})).s("gm_tremolo_strings").gain(0.1)

// other · string ensemble 1 · "Tenor"
const string_ensemble_1 = note(`<
  A@2 B@2 C@3 D E F@2 G@2 H@2 I@2 J@3 K L@5 M@8 N O@3 P Q@5 ~ R@2 ~@8 S T U V@2 W X Y Z T AA AB AC AD AE AF AG AH AI AJ
  AK AL AM AN AO AP AQ U AR AS AT AU AV@3 AW AX AY AZ BA BB BC BD@2 BE BF BG BD BH BI BJ BK BL BM BN BO BP@2 BQ BR BS
  BT@3 BU BV@3 BW BX BY BZ CA CB CC BA BB BC BD@2 BE BF BG BD BH BI BJ BK BL BM CD CE CF@2 CG CH CI CJ BP@2 CK BR CL
  CM@2 CN@2 CO@2 CP@4 CQ@2 CR@8 CS@7 CT CU@2 CV@5 CW CX
>`.pickRestart({
  A: "[~@5 c2@8 ~@5 c2@2 c2@8 ~@6 c2@2 c2@8 ~@4]/2", B: "[~@2 c2@2 c2@8 ~@5 c2@2 c2@8 ~@6 c2@2 c2@8 ~@5]/2",
  C: "[c2@2 c2@8 ~@6 c2@2 c2@8 ~@6 c2@2 c2@8 ~@5 b1@2 b1@8 ~@6 b1@2 b1@7]/3", D: "~@3 b1 b1@4 ~@3 b1",
  E: "c2@4 ~@3 c2 c2@4", F: "[~@5 c2@2 c2@8 ~@6 c2@2 c2@8 ~@5 c2@2 f1@8 ~@2]/2",
  G: "[~@4 f2@2 f2@8 ~@6 f2@2 f#2@8 ~@5 f#2@2 f#2@8 ~@3]/2", H: "[~@3 f#2@2 g2@8 ~@5 g2@2 g2@8 ~@20]/2",
  I: "[~@2 g2@2 e2@8 ~@5 c2@2 g1@8 ~@6 g1@2 g1@8 ~@5]/2",
  J: "[~@16 g2@2 e2@8 ~@6 c2@2 g1@8 ~@5 g2@2 g2@8 ~@6 g2@2 g2@7]/3", K: "~@3 g1 g3@6 ~ g1, ~@2 g1@2 ~ g3",
  L: "[c2@8 ~@6 c2@2 c2@8 ~@5 c2@2 c2@8 ~@6 c2@2 c4@12 ~ c2@2 c2@8 ~@6 c2@2 c2@8 ~@6 c2@2 c2@8 ~@5 c2@2 d4@11, c4@16 c4@16 ~@15 c2@8 ~@4 e4@3 d4@16 d4@16 ~@15 c2@8 ~@3]/5",
  M: "[~@3 c2@2 b1@8 ~@5 b1@2 b1@8 ~@6 b1@2 b1@8 ~@6 b1@2 b1@8 ~@5 b1@2 c2@8 ~@6 c2@2 c2@8 ~@5 c2@2 c2@8 ~@6 c2@2 c4@12 ~@2 c2@2 f1@8 ~@5 f2@2 f2@8 ~@6 f2@2 f#2@8 ~@5 f#2@2 f#2@8 ~@6 f#2@2, ~ d4@4 d4@15 d4@16 d4@16 d4@15 d4@16 c4@16 ~@15 c2@8 ~@4 c4@4 c4@23 c4@8 d4@23 d4@8]/8",
  N: "g2@4 ~@3 g2 g2@4, d4@2 ~",
  O: "[~@21 g2@2 e4@12 ~ c2@2 g2@8 ~@6 g2@2 g3@16 ~@2, ~@23 e2@8 ~@4 c4@3 g4@16 g2@8 ~@10]/3",
  P: "~@11 g2@2 e4@11, ~@13 e2@8 ~@3",
  Q: "[~@3 c2@2 [g2,g4]@23 ~@6 g2@2 e2@8 ~@6 e2@2 c2@8 ~@5 c2@2 g3@31 ~@22, ~ c4@4 ~@23 g4@8 e4@16 c4@15 g1@16 ~@37]/5", // G
  R: "[~ g1@31 ~@16]/2", S: "g3!2", T: "c4@2 ~ c4", U: "b3 a3 g3 a3 b3 c4 d4 b3",
  V: "[c4 d4 ~@3 a3 d4 c4, ~@2 e4@3 ~@3, ~@2 d1!2]/2", W: "g1@2 ~ b3, b3 ~@3", X: "a3 g3 f#3 g3 a3 b3 c4 a3",
  Y: "[g1,g2]@3 [g1,g2,b3], b3 ~", Z: "b3 a3 g#3 a3 b3 c4 d4 b3", AA: "d4 c4 b3 c4 d4 e4 f4 d4", AB: "e4 c4!3, c3 c2",
  AC: "g1@3 f2, b3 ~@3", AD: "e2@2 d2@2 c2 b1 a1 g1", AE: "f#1", AF: "g1 g2", AG: "g2 c2 [c3,c4]@2, c4 ~",
  AH: "f4@3 f4", AI: "e4 f4 g4!2", AJ: "c4 ~@3", AK: "g4@3 c4", AL: "f4 a3 d4 c4", AM: "b3 g#3 c4 b3", AN: "a3!2",
  AO: "g#3 ~@3", AP: "[a2,a3]!2", AQ: "[d3,d4]@3 c4", AR: "c2!2, e4 ~@3", AS: "g3@2 ~ f2, g2@3 ~, ~ g3",
  AT: "e2 d2 c2 d2 e2 f2 g2 e2, c4@3 a#3", AU: "f2 a2 f2 a2 f#2 a2 f#2 a2, a3 c4!3",
  AV: "[b3 ~ b3@2 c#4 a3 d4@2 b3 g3 g2!2, g2@5 c4]/3", AW: "a3 g3 a3 b3 c4 d4 e4 f#4, g2!4",
  AX: "g2 ~ g2 ~ g2 ~ g4@2, g4@6 g2 ~", AY: "[d2,f4]!2 [b1,d4]!2", AZ: "g1!2, b3", BA: "g1!2",
  BB: "g1 ~ g#1 ~ g1 ~ a1 ~", BC: "g1 ~ f1 ~ e1 ~ d1 ~", BD: "c1 ~@3", BE: "g3@3 g3, b1 ~@3", BF: "[g1,g3] g3 b3 g3",
  BG: "c4!2, c1 ~@3", BH: "b1 ~@3", BI: "g1 ~@3", BJ: "c2@4 e4@3 e4", BK: "[c2,e4] e4", BL: "a1@4 c4@3 c4",
  BM: "[a1,c4] c4", BN: "f1@4 c4@3 c4", BO: "c4!4, f1 ~", BP: "[d2,d4] d4", BQ: "[b1,d4] [c2,c4]",
  BR: "[f2,c4] [g2,b3]", BS: "c4 c2, c2 ~@3", BT: "[c2 a1 b1 c2 d2@5 b1 c2 d2 e2@5 c2 d2 e2 f2@2 e2@2]/3",
  BU: "d2@2 e2 f2 g2@2 f2@2",
  BV: "[e2@2 d2@2 ~ e3 f#3 g3 ~@2 b1 c2 ~ f#3 g3 a3 ~@2 c2 d2 ~ g3 a3 b3, g3@5 ~@3 a3@5 ~@3 b3@5 ~@3, ~@2 c2@3 ~ d2@3 ~ e2 d2]/3",
  BW: "[c2,c4]@2 [e2,a#3]@2 [f2,a3]@2 d4 c4, ~@3 f#2", BX: "[g2,b3]@2 g3@2 [c2,e3]@2 [d2,f3] [e2,g3]",
  BY: "f2@2 ~@2 d2 [d2,f3] [e2,g3] [f2,a3], a3@5 ~@3", BZ: "b3@5 [e2,g3] [f2,a3] [g2,b3], g2 ~@3",
  CA: "c4!2 [a2,c4]!2, a2 ~", CB: "[b2,d4]!4", CC: "g1!2, d4", CD: "f#1 ~", CE: "f#1@4 a3@3 a3", CF: "[e2,c#4] c#4",
  CG: "b3, e2 ~", CH: "e2 ~", CI: "a1@4 c#4@3 c#4", CJ: "c#4@2 c#4@2 c#4@3 c#4, a1 ~", CK: "[g2,d4] [c2,c4]",
  CL: "c4@23 ~, c1 ~", CM: "[~@19 g3@7 g3@3 g3@10 ~@9, ~@19 c1@5 ~@24]/2",
  CN: "[~@11 c4@7 c4@3 c4@10 ~@10 e4@7, ~@11 c1@5 ~@32]/2",
  CO: "[~ c4@2 g1@5 ~@10 g2@5 c3@5 g2@5 ~@5 g2@5 c3@5, ~ g4@15]/2",
  CP: "[[g2,d4]@5 ~ [c3,e4]@5 [g2,d4]@5 [c3,e4]@5 [g2,d4]@5 [c3,e4]@5 [g2,d4]@5 e4@10 c4@10 c4@10 b3@10 [c1,c4]@5 ~@15, ~@36 c3@5 ~@5 f1@5 ~@5 g1@5 ~@5 g1@5 ~@25]/4", // G5 C G5 C G5 C G5 C
  CQ: "[~@10 g3@4 g3 g3@5 ~@4, ~@20 c1@5 ~@23]/2",
  CR: "[~@12 c4@8 c4@3 c4@10 ~@10 e4@7 c4@3 g1@5 ~@10 g2@5 c3@5 g2@5 ~@5 g2@5 c3@5 [g2,d4]@5 [c3,e4]@5 [g2,d4]@5 [c3,e4]@5 [g2,d4]@5 [c3,e4]@5 [g2,d4]@5 e4@10 c4@10 c4@10 b3@10 ~ [a#1,c4]@10 ~@8, ~@12 c1@5 ~@36 g4@45 ~@35 c3@5 ~@5 f1@5 ~@5 g1@5 ~@5 g1@5 ~@24]/8", // G5 C G5 C G5 C G5 A#sus2
  CS: "[~@12 c4@5 c4@5 c4@5 c4@5 c4@5 c4@5 c4@5 c4@5 c4@5 c4@5 c4@20 f1@3 f2@2 f1@3 f2@2 f1@3 f2@2 f1@3 f2@2 g1@3 g2@2 g1@3 g2@2 g1@3 g2@2 g1@3 g2@2 g1@3 g2@2 g1@3 g2@2 g1@3 g2@3 g1@2 g2@3 [c2,c4]@5 ~@20, ~@82 f4@15 f4@5 e4@15 e4@5 d4@10 d4@10 ~@26]/7", // C
  CT: "~@5 g3@7 g3@3 c4@9", CU: "[~@21 c4@8 c4@2 e4@10 ~@7]/2",
  CV: "[~@8 [g1,g3]@5 [c2,c4]@5 [e2,e4]@5 [g2,g4]@20 [e2,e4]@20 ~ c2@15 [g1,g3]@5 [c2,c4]@5 [g1,g3]@5 [c2,c4]@5 [e2,e4]@5 [c2,c4]@5 ~@11, ~@32 c4@5 ~@23]/5", // G C E G E G C G …
  CW: "~@2 c2@5 ~@5", CX: "c1@19 ~@5",
})).s("gm_string_ensemble_1").gain(0.26)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@20 A B@4 C D@8 E F@3 G H@5 ~@15 I J K L M N O P Q ~@2 R S O T@4 U V W ~@3 X Y Z AA AB@3 AC J AD AE ~@3 AF AG R AH AI
  AH AI ~ AJ AK AL AM AN AO V AP AQ AR AS@4 AT AU AV@2 AW AX AY AZ BA BB BC ~@3 AF AG R AH AI AH AI ~ AJ AK AL AM ~ AL
  AM@2 BD ~ AL BE BF AP BG AR BH BI@2 BJ@2 BK@2 BL@4 BM@2 BN@8 BO@4 BP@3 ~ BQ@2 BR@5 ~@2
>`.pickRestart({
  A: "~@2 g3@3 g3", B: "[c4@16 c3@16 ~@15 c4@12 c4@3 c4@16 c4@16 ~@2]/4", C: "~@13 c4@11",
  D: "[~ c4@4 b3@15 b3@16 b3@16 b3@15 c4@16 c3@16 ~@15 c4@12 c4@4 f3@23 f3@8 f#3@23 f#3@8]/8", E: "g3@2 ~",
  F: "[~@23 e3@12 c3@3 g3@16 g3@16 ~@2]/3", G: "~@13 e3@11", H: "[~ c3@4 g3@23 g3@8 e3@16 c3@15 g2@31 ~@22]/5",
  I: "d3!2", J: "g3@3 g3", K: "f#3 e3 d3 e3 f#3 g3 a3 f#3", L: "g3@2 ~ g3", M: "g#3 f#3 e3 f#3 g#3 a3 b3 g#3",
  N: "a3@2 ~ a3", O: "b3 a3 g3 a3 b3 c4 d4 b3", P: "c4!4", Q: "g3 ~@3", R: "g3!2", S: "c4@3 c4",
  T: "[c4 d4 e4@3 a3 d4@3 g3 c4@3 f3 b3 a3]/4", U: "g#3 e3 a3 g3", V: "f3!2", W: "e3 ~@3", X: "c3!2", Y: "g3@3 f3",
  Z: "e3 d3 c3 d3 e3 f3 g3 e3", AA: "f3!2 f#3!2", AB: "[g3@10 g3!2]/3", AC: "g3!4", AD: "d4!2 b3!2", AE: "g3",
  AF: "c3@3 c3", AG: "c3!2 e3 c3", AH: "~@4 g2@3 g2", AI: "g2!2", AJ: "~@4 c4@3 c4", AK: "c4!2", AL: "~@4 a3@3 a3",
  AM: "a3!2", AN: "~@4 f3@3 f3", AO: "f3!4", AP: "d4!2", AQ: "b3 c4", AR: "f3 g3",
  AS: "[c3@2 ~@2 c3@5 a2 b2 c3 d3@5 b2 c3 d3 e3@5 c3 d3 e3 f3@2 e3@2]/4", AT: "d3@2 e3 f3 g3@2 f3@2", AU: "e3 d3 c3!2",
  AV: "[c3@2 ~@2 d3@6 c3 d3 e3@2 d3@2]/2", AW: "c3 e3 f3 f#3", AX: "g3@2 ~@2 c3@2 d3 e3", AY: "f3@4 f3 d3 e3 f3",
  AZ: "g3@4 g3 e3 f3 g3", BA: "a3!4", BB: "b3!4", BC: "b3", BD: "e3", BE: "a3@2 a3@2 a3@3 a3", BF: "d3 d4", BG: "g3 c4",
  BH: "c3@23 ~", BI: "[~@19 c3@7 c3@3 c3@10 ~@9]/2", BJ: "[~@11 c3@7 c3@3 c3@10 ~@10 e3@7]/2", BK: "[~ c3@2 g3@45]/2",
  BL: "[g3@5 ~ c4@5 g3@5 c4@5 g3@5 c4@5 g3@5 c4@10 f3@10 g3@10 g3@10 c3@5 ~@15]/4", BM: "[~@10 c3@4 c3 c3@5 ~@4]/2",
  BN: "[~@12 c3@8 c3@3 c3@10 ~@10 e3@7 c3@3 g3@45 g3@5 c4@5 g3@5 c4@5 g3@5 c4@5 g3@5 c4@10 f3@10 g3@10 g3@10 ~ a#3@10 ~@8]/8",
  BO: "[~@12 a#3@5 a#3@5 a#3@5 a#3@5 a#3@5 a#3@5 a#3@5 a#3@5 a#3@5 a#3@5 a3@20 f3@14]/4",
  BP: "[~ f3@5 g3@15 g3@5 g3@10 g3@10 ~ c3@5 ~@20]/3", BQ: "[~@21 g3@8 g3@2 c4@10 ~@7]/2",
  BR: "[~@8 g3@5 c3@5 e3@5 g3@20 e3@20 ~ c3@10 ~@5 g3@5 c4@5 g3@5 c4@5 e4@5 c4@5 ~@11]/5",
})).s("gm_electric_bass_finger").gain(0.28)

// other · french horn · "Baritone Horn"
const french_horn = note(`<
  A@2 B@2 C@3 D E F@2 G@2 H@2 I@2 J@3 K L M@2 N@2 O@2 P@2 Q@3 R S T@2 U@2 V@2 W@2 ~ X@3 ~@3 Y Z AA ~@2 AB AC AD AE AF AG
  AH AI AJ AK ~ AL AM AN AO AP@2 AQ AR@4 AS AT AU AV AW AD AX AY AZ BA BB BC BD BE BF BG BH@2 BI BJ BK@2 BL BM BK@2 BL
  BM BN@2 BO@2 BP@2 BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD CE CF CG CH BH@2 BI BJ BK@2 BL BM BK@2 BL BM BN@2 BO@2 CI
  CJ CK CL CM@2 CN@2 CO@2 CP BT CQ@2 CR CS CT CU@2 CV@3 CW CX CY CZ@2 DA DB@4 DC ~@3 DD@2 DE@2 DF DG DH DI@5 DJ DK
>`.pickRestart({
  A: "[~@5 [c3,e3,g3,c4]@8 ~@5 [c3,e3,g3,c4]@2 [c3,e3,g3,c4]@8 ~@6 [c3,e3,g3,c4]@2 [c3,e3,g3,c4]@8 ~@4]/2", // C
  B: "[~@2 [c3,e3,g3,c4]@2 [c3,e3,g3,c4]@8 ~@5 [c3,e3,g3,c4]@2 [c3,d3,f3,a3]@8 ~@6 [c3,d3,f3,a3]@2 [c3,d3,f3,a3]@8 ~@5]/2", // C Dm7
  C: "[[c3,d3,f3,a3]@2 [c3,d3,f3,a3]@8 ~@6 [c3,d3,f3,a3]@2 [c3,d3,f3,a3]@8 ~@6 [c3,d3,f3,a3]@2 [b2,d3,f3,g3]@8 ~@5 [b2,d3,f3,g3]@2 [b2,d3,f3,g3]@8 ~@6 [b2,d3,f3,g3]@2 [b2,d3,f3,g3]@7]/3", // Dm7 G7
  D: "~@3 [b2,d3,f3,g3] [b2,d3,f3,g3]@4 ~@3 [b2,d3,f3,g3]", E: "[c3,e3,g3]@4 ~@3 [c3,e3,g3] [c3,e3,g3]@4",
  F: "[~@5 [c3,e3,g3]@2 [c3,e3,g3]@8 ~@6 [c3,e3,g3]@2 [c3,e3,g3]@8 ~@5 [c3,e3,g3]@2 [f2,a2,c3,d3]@8 ~@2]/2", // C Dm7
  G: "[~@4 [f3,a3,c4,d4]@2 [f3,a3,c4,d4]@8 ~@6 [f3,a3,c4,d4]@2 [f#3,a3,c4,d4]@8 ~@5 [f#3,a3,c4,d4]@2 [f#3,a3,c4,d4]@8 ~@3]/2", // Dm7 D7
  H: "[~@3 [f#3,a3,c4,d4]@2 [g3,b3,d4]@8 ~@5 g3@2 g3@8 ~@4 g3 a3 ~ b3 c4@8 ~@4]/2", // D7 G
  I: "[~@2 g3@2 e3@8 ~@5 c3@2 g2@8 ~@6 g2@2 g2@8 ~@4 g3]/2",
  J: "[a3 b3 c4@8 ~@6 g3@2 e3@8 ~@6 c3@2 g2@8 ~@5 [g3,b3,d4,f4]@2 [g3,b3,d4,f4]@8 ~@6 [g3,b3,d4,f4]@2 [g3,b3,d4,f4]@7]/3", // G7
  K: "~@3 [g2,b2,d3,g3] [g2,b2,d3,g3]@4 ~@3 [g2,b2,d3,g3]", L: "[c3,e3,g3,c4]@4 ~@3 [c3,e3,g3,c4] [c3,e3,g3,c4]@4",
  M: "[~@5 [c3,e3,g3,c4]@2 [c3,e3,g3,c4]@8 ~@6 [c3,e3,g3,c4]@2 [c3,e3,g3,c4]@8 ~@5 [c3,e3,g3,c4]@2 [c3,d3,f3,a3]@8 ~@2]/2", // C Dm7
  N: "[~@4 [c3,d3,f3,a3]@2 [c3,d3,f3,a3]@8 ~@6 [c3,d3,f3,a3]@2 [c3,d3,f3,a3]@8 ~@5 [c3,d3,f3,a3]@2 [c3,d3,f3,a3]@8 ~@3]/2", // Dm7
  O: "[~@3 [c3,d3,f3,a3]@2 [b2,d3,f3,g3]@8 ~@5 [b2,d3,f3,g3]@2 [b2,d3,f3,g3]@8 ~@6 [b2,d3,f3,g3]@2 [b2,d3,f3,g3]@8 ~@4]/2", // Dm7 G7
  P: "[~@2 [b2,d3,f3,g3]@2 [b2,d3,f3,g3]@8 ~@5 [b2,d3,f3,g3]@2 [c3,d3,f3,g3]@8 ~@6 [c3,d3,f3,g3]@2 [c3,e3,g3]@8 ~@5]/2", // G7 Csus4 C
  Q: "[[c3,e3,g3]@2 [c3,e3,g3]@8 ~@6 [c3,e3,g3]@2 [c3,e3,g3]@8 ~@6 [c3,e3,g3]@2 f2@8 ~@5 [f3,a3,c4,d4]@2 [f3,a3,c4,d4]@8 ~@6 [f3,a3,c4,d4]@2 [f#3,a3,c4]@7]/3", // C Dm7 F#dim
  R: "~@3 [f#3,a3,c4,d4] [f#3,a3,c4,d4]@4 ~@3 [f#3,a3,c4,d4]", S: "[g3,b3,d4]@4 ~@3 g3 g3@4",
  T: "[~@3 g3 ~ a3 b3 c4@8 ~@6 g3@2 e3@8 ~@5 c3@2 [g3,b3,d4]@8 ~@2]/2", // G
  U: "[~@4 g3@2 g3@8 ~@4 g3 a3 b3 ~ c4@8 ~@5 g3@2 e3@8 ~@3]/2", V: "[~@3 c3@2 g3@23 ~@6 g3@2 e3@8 ~@4]/2",
  W: "[~@2 e3@2 c3@8 ~@5 c3@2 g2@16 ~@13]/2", X: "[~@10 g3@15 g2@31 ~@16]/3", Y: "~@4 c4 b3 a3 g3", Z: "f#3",
  AA: "g3 ~@3", AB: "g3@2 ~ d4, d4@3 ~, ~ g3", AC: "c4@3 c4", AD: "b3 a3 g3 a3 b3 c4 d4 b3", AE: "c4 d4 ~@2",
  AF: "[a2,d3]!2", AG: "g3@3 g3", AH: "f#3 e3 d3 e3 f#3 g3 a3 f#3", AI: "d4 c4 b3 c4 d4 e4 f4 d4",
  AJ: "g#3 f#3 e3 f#3 g#3 a3 b3 g3", AK: "a3!4", AL: "c4 c3", AM: "g2@3 f3", AN: "e3@2 d3@2 c3 b2 a2 g2", AO: "f#2",
  AP: "[g2@2 g3@3 c3 c4@2]/2", AQ: "[b3,d4] [a3,c4] [g3,b3] [a3,c4] [b3,d4] [c4,e4] [d4,f4] [b3,d4]",
  AR: "[[c4,e4]@2 [d4,f4]@2 [e4,g4]@5 [a3,c4] [b3,d4] [c4,e4] [d4,f4]@5 [g3,b3] [a3,c4] [b3,d4] [c4,e4]@5 [f3,a3] [g3,b3] [a3,c4] [b3,d4] [c4,e4] [b3,d4] [a3,c4]]/4", // C Dm Em Am Bm C Dm G …
  AS: "[g#3,b3] [e3,g#3] [f#3,a3] [g#3,b3] [a3,c4] [b3,d4] [a3,c4] [g3,b3]", AT: "f3 a3 f3 a3 f3 a3 f3 a3",
  AU: "[e3,b3]@2 [e3,g#3] [f#3,a3] [g#3,b3] [a3,c4] [b3,d4] [g#3,b3]", AV: "c#4@2 g4 f#4 e4 d4 c4 e4", AW: "d4@3 c4",
  AX: "c4!2", AY: "g4@2 d4@2 d4 c4 b3 d4", AZ: "e3 d3 c3 d3 e3 f3 g3 e3", BA: "f3 a3 f3 a3 f#3 a3 f#3 a3",
  BB: "~@6 g3 a3 g3 f3 e3 d3", BC: "c4 d4 e4 a3 b3 c4 d4 f4 e4 d4 e4 f4", BD: "b3 c4 d4 g3 a3 b3 c4 e4 d4 a3 b3 c4",
  BE: "a3 g3 a3 b3 c4 d4 e4 f#4", BF: "g3 g4 g3 g4 g3 g4 g3 g4", BG: "d4!2 b3!2", BH: "~ g3!3 ~ g3!3",
  BI: "g2 g3 g#2 g3 g2 g3 a2 g3", BJ: "g2 g3 f3 g3 e3 g3 d3 g3", BK: "c3 ~@3", BL: "b2 ~@3", BM: "g2 ~@3",
  BN: "c3 e3 g3 c4 g3 e3 c3 e3 g3 c4 g3 e3", BO: "a2 c3 e3 a3 e3 c3 a2 c3 e3 a3 e3 c3",
  BP: "f2 a2 c3 f3 c3 a2 f2 a2 c3 f3 c3 a2", BQ: "d3 f3 a3 d3 a3 d4 d3 a3 d4 d3 a3 d4",
  BR: "d3 f3 d4 d3 f3 d4 d3 a3 d4 d3 a3 d4", BS: "b2 g3 b3 b2 g3 b3 c3 g3 c4 c3 g3 c4",
  BT: "f3 a3 d4 f3 a3 d4 g3 b3 d4 g3 b3 d4", BU: "c3 ~ c3@2", BV: "a3 b3 a3 g3 f3 e3 d3@6", BW: "b3 c4 b3 a3 g3 f3 ~@6",
  BX: "~ c4!2 c#4", BY: "d4@2 g3 a3 g3@2 f3@2", BZ: "g3@5 e3 f#3 g3", CA: "a3@4 a3 f#3 g3 a3", CB: "b3@5 g3 a3 b3",
  CC: "c4!3 d4", CD: "d4@2 ~@2 e3@2 f3 g3", CE: "a3@2 b3@2 a3@2 g3@2 f3@2 e3@2 ~@3 f3@3 g3@3 a3@3",
  CF: "b3@2 c4@2 b3@2 a3@2 g3@2 f3@2 e3@3 g3@3 a3@3 b3@3", CG: "c4@2 c4!2", CH: "d4!4",
  CI: "f#2 a2 c3 f#3 c3 a2 f#2 a2 c3 f#3 c3 a2", CJ: "f#2@2 a2@2 c3@2 f#3@2 c3@2 a2@2 f#2@2 a2@2 c3@2 f#2@3 f#3@3",
  CK: "e3 a3 c#4 e4 c#4 a3 e3 a3 c#4 e4 c#4 a3", CL: "e3 a3 c#4 e4 c#4 a3 e3 a3 c#4 e3 c#4 e4",
  CM: "e3 b3 e4 e3 b3 e4 e3 b3 e4 e3 b3 e4", CN: "a2 e3 a3 a2 e3 a3 a2 e3 a3 a2 e3 a3",
  CO: "d3 a3 d4 d3 a3 d4 d3 a3 d4 d3 a3 d4", CP: "g3 b3 d4 g3 b3 d4 c3 g3 c4 c3 g3 c4",
  CQ: "[~@15 c3@3 d3@2 e3@3 f3@2 e3@3 f3@2 g3@3 a3@2 g3@3 a3@2 b3@3 c3@5]/2",
  CR: "~@7 e3@3 f3@2 g3@3 f3@2 e3@3 f3@2 g3@2", CS: "~ a3@2 g3@3 a3@2 b3@3 c4@2 g2@3 a2@2 b2@3 c3@3",
  CT: "b2@2 c3@3 d3@2 e3@3 b2@2 c3@3 d3@2 e3@3 d3@2 e3@2",
  CU: "[~ f3@2 g3@5 ~@10 [g3,d4,g4]@5 [c4,e4,g4]@5 [g3,d4,g4]@5 ~@5 [g3,d4,g4]@5 [c4,e4,g4]@5]/2", // G5 C G5 C
  CV: "[[g3,d4,g4]@5 ~ [c4,e4,g4]@5 [g3,d4,g4]@5 [c4,e4,g4]@5 [g3,d4,g4]@5 [c4,e4,g4]@5 [g3,d4,g4]@5 [c4,e4,g4]@5 ~@5 [f2,f3]@5 ~@5 [g2,g3]@5 ~@5 [g2,g3]@5 ~]/3", // G5 C G5 C G5 C G5 C …
  CW: "~@4 c3@5 ~@8 c3@2 d3@3 e3@2", CX: "f3@3 e3@2 f3@3 g3@2 a3@3 g3@2 a3@3 b3@2 c3@4",
  CY: "~@9 e3@2 f3@3 g3@2 f3@3 e3@2 f3@3",
  CZ: "[g3@2 a3@3 g3@2 a3@3 b3@2 c4@3 g2@3 a2@2 b2@3 c3@2 b2@3 c3@2 d3@3 e3@2 b2@3 c3@2 d3@3 e3@2 d3@3]/2",
  DA: "e3@2 f3@3 g3@5 ~@10 [g3,d4,g4]@4", // G5
  DB: "[~ [c4,e4,g4]@5 [g3,d4,g4]@5 ~@5 [g3,d4,g4]@5 [c4,e4,g4]@5 [g3,d4,g4]@5 [c4,e4,g4]@5 [g3,d4,g4]@5 [c4,e4,g4]@5 [g3,d4,g4]@5 [c4,e4,g4]@5 [g3,d4,g4]@5 [c4,e4,g4]@5 ~@5 [f2,f3]@5 ~@5 [g2,g3]@5 ~@5 [g2,g3]@5]/4", // C G5 C G5 C G5 C G5 …
  DC: "~@3 [a#2,a#3]@5 ~@4", DD: "[~@10 f2@3 f3@2 f2@3 f3@2 f2@3 f3@2 f2@3 f3@2 g2@3 g3@2 g2@3 g3@2 g2@3 g3@2 g2@3]/2",
  DE: "[g3@2 g2@3 g3@2 g2@3 g3@2 g2@3 g3@3 g2@2 g3@3 c3@5 g2@2 g3@3 c3@2 c4@3 e3@2 e4@3 g3@2 g4@3]/2",
  DF: "e3@2 e4@3 c3@2 c4@3 g2@2 g3@3 c3@2 c4@3 g2@2 g3@2", DG: "~ c3@2 c4@3 e3@2 e4@3 g3@2 g4@3 e3@2 e4@3 c3@3",
  DH: "c4@2 g2@3 g3@2 c3@3 c4@2 g2@3 g3@2 c3@3 c4@2 e3@2",
// … 36 more lines

More by Ludwig van Beethoven