Strudelify

Raiders of the lost ark

John Williams

KeyC majorTempo135 bpm
0:00/0:00
// Raiders of the lost ark — John Williams
// 135 bpm, 4/4, 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: Transcription provider: pdmx. https://musescore.com/score/458586; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 172 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(135/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 · orchestral harp
const orchestral_harp = note(`<
  A@4 B C D E F G H I J K@2 L M N O P ~@4 Q R ~@2 S T@6 U@2 V@2 W X@3 Y@4 Z AA AB AC AD AE ~@6 AF AG AH ~@6 AI AJ ~@8 AK
  ~@22 AL AM ~@3 AN AO ~@7 AP@2 AQ@4 ~@4 AR AS ~@7 AT AU AV AW AV AW AX AY@2 ~@8 AZ BA BB ~@5 BC BD BE BF BG ~@8
>`.pickRestart({
  A: "c2 ~@14 c2 ~@8", B: "c2@2 ~@13 c2@2 ~@7", C: "c2 ~@7 c2 ~@3", D: "~ c2@2 ~@13 c2@2 ~@6",
  E: "~ c2@2 ~@14 g1@2 ~@5", F: "~@2 c2@2 ~@13 c2@2 ~@5", G: "~@2 c#2@2 ~@13 c#2@2 ~@5", H: "~@9 g2@2 ~@10 g2@2 ~",
  I: "~@9 g2@2 ~@7 g2@2 ~@4", J: "~@3 c2@2 ~@14 c2@2 ~@3", K: "~@4 c2@2 ~@13 c2@2 ~@3", L: "~@5 c2@2 ~@13 g1@2 ~@2",
  M: "~@5 c2@2 ~@13 c2@2 ~@2", N: "~@6 c#2@2 ~@13 c#2@2 ~", O: "~@6 g2 ~@5", P: "g2 ~@5 g2 ~@4 g2",
  Q: "~@15 [a#3,d4] f4 a#4 [d5,f5] ~@5", R: "~@15 g#3 c4 [d#4,g#4] c5 d#5 ~@4", S: "~@5 c2@7",
  T: "[~@4 c2@2 ~@5 c2@15 ~@3 c2@2 ~@4 a1@15 ~@3 a1@2 ~@4 c2@15 ~@4 c2@2 ~@4 c2@15 ~@3 c2@2 ~@4 c2@15 ~@4 c2@2 ~@4 g1@2 ~@9]/6",
  U: "[~@7 c2@2 ~@4 c2@15 ~@3 c2@2 ~@5 g1@2 ~@8]/2", V: "[~@8 c2@2 ~@4 c2@15 ~@3 c2@2 ~@4 g1@2 ~@8]/2",
  W: "~@9 g1@2 ~@4 f1@2 ~@7", X: "[~@9 f1@2 ~@4 c2@38 ~@11 c2@2 ~@4 c2@2]/3",
  Y: "[~@4 c2@2 ~@4 c2@2 ~@5 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@5 c2@2 ~@4 g1@2 ~@4 c2@2 ~@4]/4",
  Z: "c2 ~@2 c2 ~@2 c2 ~@2 c#2 ~@2", AA: "c#2 ~@2 c#2 ~@8", AB: "~ g1@2 ~@10 g1@2 ~@9",
  AC: "~ g1@2 ~@10 g1@2 ~@4 c2@2 ~@3", AD: "~@5 f2", AE: "~@2 e2 ~@4 d2 c2 ~@15", AF: "~@5 g#1@2 ~@10 g#1@2 ~@5",
  AG: "~@5 g#1@2 ~@11 g#1@2 ~@4", AH: "c#2 ~@11",
  AI: "~@5 f2 g2 [a2,a#2] c3 d3 [e3,f3] g3 a3 [a#3,c4] d4 e4 f4 [g4,a4] a#4 c5 d5 e5 f5 g5", // A#maj7 Fmaj7 A#sus2 Gsus2
  AJ: "[a5,a#5] c6 d6 e6 f6 g6 a6 a#6 c7 d7 ~@14", // A#maj7
  AK: "~@6 [d2,e2] [f#2,g2] a2 [b2,c3] [d3,e3] f#3 [g3,a3] [b3,c4] d4 [e4,f#4] g4 [a4,b4] c5 [d5,e5] f#5 g5 [a5,b5] ~", // Dsus2 Gmaj7 Cmaj7 Dsus2 Gsus2 Cmaj7 Esus2 Asus2 …
  AL: "~@10 e2@3 b2@3 e3@2 g3@3 b3@3", AM: "e4@3 a2@3 d#3@3 c4@3 ~ g4@4 ~@7",
  AN: "~@10 [f2,g2] a2 [a#2,c3] [d3,d#3] f3 [g3,a3] [a#3,c4] d4 [d#4,f4] [g4,a4] [a#4,c5] d5 [d#5,f5] [g5,a5]", // Fsus2 A#sus2 D#maj7 Gsus2 A#sus2 D#sus2 Gsus2 A#sus2 …
  AO: "[a#5,c6] d6 ~@22", AP: "[~@7 c2@14 ~@3]/2", AQ: "[~@3 g2@9 g2@17 g2@10 c2@51 a#1@6]/4",
  AR: "~@13 [a#2,c3] d#3 f3 [g3,a#3] [a#3,c4] d#4 [d#4,f4] [g4,a#4] a#4 [c5,d#5] [d#5,f5]", // A#sus2 Gm A#sus2 D#sus2 Gm Cm D#sus2
  AS: "g5 [g5,a#5] [d#5,f5] d#5 [a#4,c5] [g4,a#4] f4 d#4 [a#3,c4] a#3 [f3,g3] d#3 c3 a#2 ~@10", // Gm D#sus2 A#sus2 Gm A#sus2 Fsus2
  AT: "~@18 c2 d#2 [f2,g2] a#2 [c3,d#3] [f3,g3]", // Fsus2 Cm Fsus2
  AU: "a#3 [c4,d#4] [f4,g4] a#4 [c5,d#5] [d#5,f5] [g5,a#5] a#1 ~@16, ~ d#2@2 ~@21", AV: "~ d#2 ~@5 d#2@15 ~@2",
  AW: "~ d#2 ~@5 a#1 ~@16", AX: "~ a#1 ~@5 g#1 ~@16", AY: "[~ g#1 ~@5 d#2@38 ~@3]/2", AZ: "~@16 c2 ~@7",
  BA: "~@4 c2 ~@11 c2 ~@7", BB: "~@4 c2 ~@19", BC: "~@19 c2@2 ~@3", BD: "~@7 c2@2 ~@10 c2@2 ~@3",
  BE: "~@4 c2 ~@2 f2 ~@4", BF: "~@15 a#2@6 a2 ~@2", BG: "~@2 g2 ~ f2 ~@19",
})).s("gm_orchestral_harp").gain(0.3)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  A@4 B@2 C D E F G H I J K L M N O P Q R@2 S@2 T U V W X Y@3 Z AA AB AC AD AE AF AG U AH W AI@4 AJ AK AL R AM AN AO AP
  AQ AR AS AT AU@2 AV AW AX AY AZ BA ~ BB@5 BC@5 BD BE BF BG BH BI BJ BK BL BM ~@5 BN@7 BO@3 BP BQ@2 BR BS BT BU BV BW
  BX BY@2 ~ BZ CA ~ CB CC CD CE CF CG CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW CT CX CT CY CZ@4 DA DB DC DD DE@2
  DF@4 DG DH DI DJ DK@2 DL DM DN DO DP DQ
>`.pickRestart({
  A: "c2 ~@14 c2 ~@8", B: "c2 ~@14 c2@2 ~@7", C: "c2 ~@15 c2@2 ~@6", D: "~ c2 ~@14 g1@2 ~@6", E: "~ c2 ~@15 c2@2 ~@5",
  F: "~@2 c#2 ~@14 c#2@2 ~@5", G: "~@4 g1 ~@5 g1 ~", H: "~@9 g1@2 ~@7 g1@2 ~@4", I: "~@3 c2 ~@14 c2@2 ~@4",
  J: "~@3 c2 ~@15 c2@2 ~@3", K: "~@4 c2 ~@14 c2@2 ~@3", L: "~@4 c2 ~@14 g1@2 ~@3", M: "~@5 c2 ~@14 c2@2 ~@2",
  N: "~@5 c#2 ~@14 c#2@2 ~@2", O: "~@6 g1 ~@5", P: "g1@2 ~@10 g1@2 ~@7 g1@2 ~", Q: "~@6 c2@2 ~@4 c2@2 ~@5 c2@2 ~@3",
  R: "~ c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@3", S: "~ c2 ~@2 c2 ~@2 c2 ~@2 c2 ~",
  T: "~@2 c2@2 ~@4 c2@2 ~@5 c2@2 ~@4 c2@2 ~", U: "~@3 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~",
  V: "~@3 c2@2 ~@4 c2@2 ~@4 c2@2 ~@5 c2@2", W: "~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2", X: "~@2 c2 ~@2 a1 ~@2 a1 ~@2 a1",
  Y: "[~@4 a1@2 ~@5 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@5 c2@2 ~@4]/3",
  Z: "c2 ~@2 c2 ~@2 a1 ~@2 a1 ~@2", AA: "a1 ~@2 a1 ~@2 g1 ~@2 c2 ~@2", AB: "c2@2 ~@5 c2@2 ~@4 c2@2 ~@4 c2@2 ~@3",
  AC: "~ c2@2 ~@4 c2@2 ~@4 g1@2 ~@4 c2@2 ~@3", AD: "~ c2@2 ~@4 c2@2 ~@5 c2@2 ~@4 c2@2 ~@2",
  AE: "~ c2 ~@2 c2 ~@2 g1 ~@2 g1 ~", AF: "~ g1 ~@2 g1 ~@2 f1 ~@2 f1 ~", AG: "~@3 f1@2 ~@4 f1@2 ~@4 c2@2 ~@4 c2@2 ~",
  AH: "~@3 c2@2 ~@11 c2@2 ~@4 c2@2",
  AI: "[~@4 c2@2 ~@4 c2@2 ~@5 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~@4 g1@2 ~@4 c2@2 ~@4 c2@2 ~@5 c2@2 ~@4 c2@2 ~@4 c#2@2 ~@4]/4",
  AJ: "c#2 ~@2 c#2 ~@8", AK: "g1@2 ~@11 g1@2 ~@9", AL: "~ g1@2 ~@10 g1@2 ~@4 c2@2 ~@3", AM: "~ c2 ~@2 c2 ~@5 c#2 ~",
  AN: "~ c#2 ~@2 c#2 ~@2 c#2 ~@2 c#2 ~", AO: "~@2 c#2@2 ~@5 c#2@2 ~@4 c#2@2 ~@4 c#2@2 ~",
  AP: "~@3 c#2@2 ~@4 c#2@2 ~@4 c#2@2 ~@4 c#2@2 ~", AQ: "~@3 c#2@2 ~@4 c#2@2 ~@4 c#2@2 ~@5 c#2@2",
  AR: "~@2 c#2 ~@2 c#2 ~@2 c#2 ~@2 d2", AS: "~@2 d2 ~@2 d2 ~@6", AT: "~@5 g#1@2 ~@10 g#1@2 ~@5",
  AU: "[~@5 g#1@2 ~@10 g#1@2 ~@4 c#2@2 ~@23]/2", AV: "~@9 g#1@2 ~ c#2@2 ~@7 g#1@2 ~", AW: "c#2 ~@23",
  AX: "~@10 g#1@2 ~ c#2@2 ~@7 g#1@2", AY: "~ c#2 ~@5 c#2@2 ~@10 g#2@2 ~@3", AZ: "~@7 b1@2 ~@11 f#2@2 ~@2",
  BA: "~@4 f2 ~@7", BB: "[~@9 g2@56 g2@55]/5", BC: "[~ g2@58 f#2@42 d2@2 ~@6 d2@2 ~@7 g2@2]/5",
  BD: "~@6 g2 ~@13 g2 ~@3", BE: "~@3 g2 ~@7 g2 ~@12", BF: "~ g2 ~@6 g2 ~@7 g2 ~@7", BG: "~@6 g2 ~@6 c#2 ~@6 c#2 ~@3",
  BH: "~@11 f#2 ~@6 b1 ~@5", BI: "~ b2 ~@14 b1 ~@6 b1", BJ: "~@6 b2 ~@14 b1 ~@2", BK: "~@4 a1 ~@6 a2@2 ~@11",
  BL: "~@3 a1@2 ~@5 a2 ~@7 a1@2 ~@4", BM: "~@12 a2@2 ~@7 d3@2 ~", BN: "[~@12 d3@17 c3@18 a2@18 ~ g#2@19 d2@74 ~@9]/7",
  BO: "[~@9 e2@17 a2@43 ~@3]/3", BP: "~@7 g2@17", BQ: "[g2@9 g2@17 ~@22]/2", BR: "a#1@2 ~@6 f2 ~@13 f2 ~",
  BS: "~@5 a#1 ~@6 a#2 ~@11", BT: "~@2 a#1 ~@6 a#1 ~@6 g2 ~@7", BU: "~@6 a#1 ~@6 a#1 ~@6 a#2 ~@3",
  BV: "~@10 a#1 ~@6 a#1 ~@6", BW: "~@7 d#2@2 ~@15", BX: "~@7 a#1 ~@4",
  BY: "[~@15 a2@2 ~@2 e2@2 ~@2 a1@2 ~@5 a2@2 ~@6 c2@2 ~@8]/2", BZ: "~@3 g1@2 ~@7 g2@2 ~@10", CA: "~@2 g1 ~@4 c2 ~@4",
  CB: "~@17 a#1@2 ~@5", CC: "~@13 a#2 ~@5 a#1 ~@4", CD: "~@15 a#2 ~@5 a#1 ~@2", CE: "~@16 a#2 ~@5 a#1 ~",
  CF: "~@17 a#2 ~@6", CG: "a#1 ~@18 a#1 ~@4", CH: "~ a#1 ~@18 a#1 ~@3", CI: "~@2 a#1 ~@17 a#2 ~@3",
  CJ: "~@3 a#1 ~@17 a#2 ~@2", CK: "~@3 g#1 ~@18 d#2 ~", CL: "~@4 g#1 ~@17 d#2 ~", CM: "~@4 a#1 ~@18 a#2",
  CN: "~@5 a#1 ~@17 a#2", CO: "~@5 c2 ~@18", CP: "c2 ~@5 c2 ~@17", CQ: "c2 ~@5 a#1@2 ~@4 d#2@2 ~@4 d#2@2 ~@4",
  CR: "d#2@2 ~@4 d#2@2 ~@5 d#2@2 ~@4 d#2@2 ~@3", CS: "~ d#2@2 ~@4 a#1@2 ~@4 d#2@2 ~@4 d#2@2 ~@3",
  CT: "~ d#2@2 ~@4 d#2@2 ~@4 d#2@2 ~@4 d#2@2 ~@3", CU: "~ d#2@2 ~@4 a#1@2 ~@4 a#1@2 ~@4 a#1@2 ~@3",
  CV: "~ a#1@2 ~@4 g#1@2 ~@4 g#1@2 ~@4 g#1@2 ~@3", CW: "~ g#1@2 ~@4 d#2@2 ~@4 d#2@2 ~@4 d#2@2 ~@3",
  CX: "~@7 d#2@2 ~@4 d#2@2 ~@4 d#2@2 ~@3", CY: "~@7 f1@2 ~@4 f1@2 ~@5 f1@2 ~@2", CZ: "~ f1 ~@2 f1 ~@2 f1 ~@2 f1 ~",
  DA: "~@2 f1@2 ~@5 f#1@2 ~@4 f#1@2 ~@4 f#1@2 ~", DB: "~@3 f#1@2 ~@10 c2 ~@8", DC: "~@3 c2 ~@11 c2 ~@8",
  DD: "~@3 c2 ~@6 f2@2 ~@4 f2@2 ~@4 f2@2", DE: "~@2 c2 ~@2 f2 ~@2 f2 ~@2 f2",
  DF: "[~@4 c2@2 ~@4 f2@2 ~@5 f2@2 ~@4 f2@2 ~@4 c2@2 ~@4 f2@2 ~@4 f2@2 ~@4 f2@2 ~@4 c2@2 ~@4 f#2@6 f#2@6 f#2@6 ~@13 c2@6]/4",
  DG: "~@7 c2@6 ~@6 c2@5", DH: "~@4 c2@3 f2 ~@2 f2 ~", DI: "~@2 f2@2 ~@4 f2@2 ~@5 f2@2 ~@4 f2@2 ~",
  DJ: "~@3 f2@2 ~@17 c2@2", DK: "[~@10 c2@2 ~@11 f2@2 ~@4 f1@2 ~@17]/2", DL: "c2 ~@5 c2 ~@5", DM: "f2 ~@2 f1 ~@8",
  DN: "~ c2@11 ~@2 c2@2 ~@8", DO: "~@2 c2@11 ~@2 c2@2 ~@7", DP: "~@4 f2@2 ~@5 c2@2 ~@4 c2@2 ~@5",
  DQ: "f2@2 ~@4 f1 ~@2 f1 ~@2 f1 ~@11",
})).s("gm_string_ensemble_1").gain(0.35)

// chords · french horn
const french_horn = note(`<
  ~@9 A B C ~@6 D E F G H I J K@2 L@2 ~@5 M N@2 O@2 P Q@3 ~@5 R S T@3 ~@3 U V@4 W X Y Z AA AB AC@2 ~ AD@2 ~ AE AF@7 AG@7
  AH@3 ~@17 AI ~@2 AJ ~@10 AK@3 AL@2 AM@2 AN@2 AO@4 AP AQ AP AQ AP AR AS@2 ~@3 AT ~ AU ~@2 AV@2 AW ~@5 AX AY AZ BA BB@8
  ~
>`.pickRestart({
  A: "~@10 g4 ~", B: "~ g4 [c4,e4]@6 [g3,d4] ~@4 g3 [c4,e4]@6 ~ [g3,d4] ~@2",
  C: "~ g3 ~ [c4,e4]@6 [g3,d4] ~@4 g3 [c4,e4]@3 [g3,d4] ~@5", D: "g4@2 ~@2 g4 ~ [c4,e4]@6 [g3,d4] ~@4 g3 [c4,e4]@6",
  E: "[g3,d4] ~@4 g3 [c4,e4]@6 [g3,d4] ~@4 g3 [c4,e4]@3 [g3,d4] ~@2", F: "e3@2 ~@3 g3 ~ f3@17",
  G: "~ d3@2 ~@3 f3 e3 ~ g3 ~ e4@13", H: "~ e3@2 ~@3 g3 f3@17", I: "~@2 d3@2 ~@2 f3 ~ e3 ~ g3 e4@13",
  J: "~@2 d4@2 ~@3 e4 f4@16",
  K: "[~@3 d4@2 ~@2 f4 ~ d#4 d4 ~ c4@14 ~ c4@2 ~@3 d#4 d4 ~@2 g3 ~ f#3 g3 ~@2 d4 ~@3 g3 f#3]/2",
  L: "[g3 ~@2 d4 ~@3 c4 b3 c4@17 ~@22]/2", M: "~@12 [f4,a#4] ~@9 [f4,a#4] ~",
  N: "[~@7 [f4,a#4] ~@2 [d#4,g#4] [d4,g4] ~ [d#4,g#4]@17 ~@7 [f4,a#4] ~@8 [f4,a#4] ~]/2", // A#5 G#5 G5 G#5 A#5
  O: "[~@8 [f4,a#4] ~@2 [d#4,g#4] [d4,g4] ~ [d#4,g#4]@17 ~@7 [f4,a#4] ~@8 [f4,a#4]]/2", // A#5 G#5 G5 G#5 A#5
  P: "~@8 [f4,a#4] ~@3 [d#4,g#4] [d4,g4] ~ [d#4,g#4] ~@8", // A#5 G#5 G5 G#5
  Q: "[[d#4,g#4] ~@8 [d#4,g#4] ~@2 [d#4,g#4] ~ [f4,a#4] c5@41 ~@16, ~@15 g4@38 ~@19]/3", // G#5 A#5
  R: "~@12 g4@2 ~@3 g4 [c4,e4]@6", S: "[g3,d4] ~@4 g3 ~ [c4,e4]@6 [g3,d4] ~@3 g3 ~ [c4,e4]@5",
  T: "[~ [g3,d4] ~@4 g3 [c4,f4]@6 [g3,e4] ~@4 [g3,d4] c4@12 f4@6 ~ e4 ~@3 d4 ~ c4@14 ~@14]/3", // G5 F5 C G5
  U: "~@3 g#3@3 ~@4 c#4@2 ~@4 c#3@3 ~ d#3 ~ f3 ~",
  V: "[~ g#3@14 ~ c4@2 ~@3 c#4 d4@17 ~@8 [c#4,g#4]@6 [d#4,g#4] ~@3 [g#3,g#4] ~ [c#4,g#4]@6 [d#4,g#4] ~@4 [g#3,g#4] [c#4,g#4]@6 [d#4,g#4] ~@4 [g#3,g#4] [c#4,g#4]@6 [d#4,g#4] ~@4 [g#3,g#4] [c4,c#4,f4,g#4]]/4", // C#5 G#5 G# C#5 G#5 G# C#5 G#5 …
  W: "~@3 c#4 c4 ~ c#4 ~@2 [c4,c#4,f4,g#4] ~@2 c#4 c4 ~ c#4 ~@2 [c4,c#4,f4,g#4] ~@2 [a#3,b3,d#4,f#4] [a3,a#3,d4,f4] ~", // C#maj7 Bmaj7 A#maj7
  X: "[a#3,b3,d#4,f#4]@17 ~@5 d#4!2", // Bmaj7
  Y: "[c4,c#4,f4,g#4] ~@3 c#4 c4 c#4 ~@2 [c4,c#4,f4,g#4] ~@3 c#4 c4 ~ c#4 ~@2 [c4,c#4,f4,g#4] ~@2 [a#3,b3,d#4,f#4] [a3,a#3,d4,f4]", // C#maj7 Bmaj7 A#maj7
  Z: "~ [a#3,b3,d#4,f#4]@17 ~@4 d#4 ~", // Bmaj7
  AA: "d#4 [c4,c#4,f4,g#4] ~@2 c#4 ~ c4 c#4 ~@2 [c4,c#4,f4,g#4] ~@3 c#4 c4 c#4 ~@2 [c4,c#4,f4,g#4] ~@3 [a#3,b3,d#4,f#4]", // C#maj7 Bmaj7
  AB: "[a3,a#3,d4,f4] ~ [a#3,b3,d#4,f#4] ~@2 b3 a#3 ~ b3 ~@2 [a#3,b3,d#4,f#4] ~@2 b3 ~ a#3 b3 ~@2 [a#3,b3,d#4,f#4] ~@2 [a3,a#3,d4,f4]", // A#maj7 Bmaj7 A#maj7
  AC: "[~ [g#3,a3,c#4,e4] [a3,a#3,d4,f4]@40 ~@6]/2", AD: "[~@13 a3@5 b3@4 c4@4 ~ d#3@7 ~@14]/2",
  AE: "~@2 b3@4 c4@4 ~ d#3@7 ~@6",
  AF: "[~ b3@5 c4@4 d4@4 ~ f4@7 d#4@7 d#3@4 g#3@5 a3@4 ~ c4@8 b3@8 a#3@42 d3@17 ~ b3@29 ~@4 b3@5 c4@5 d#3@6]/7",
  AG: "[~ a3@7 ~ b3@28 c#4@5 d4@5 e4@5 f#3@7 e4@7 d4@5 e4@5 f#4@5 f#4@14 d4@5 e4@5 f#4@5 f#4@14 e4@5 f#4@5 g4@5 g4@23 g4@6]/7",
  AH: "[~ b4@3 a4@3 f#4@11 ~@6]/3", AI: "~@5 f#4@14 ~@5", AJ: "~@8 d#4@5 ~@11",
  AK: "[~@15 g3@2 ~@3 a#3 g#3@43 ~ f3@2 ~@3 g#3 ~]/3", AL: "[g3 ~ a#3 g4@39 ~@2 g3@2 ~@2]/2",
  AM: "[~ a#3 g#3@42 ~ f3@2 ~]/2", AN: "[~@2 g#3 f#3 ~ f3 ~ d#3@38 ~ g3@2]/2",
  AO: "[~@3 a#3 ~ g#3@41 ~ f3@2 ~@3 g#3 g3 ~ a#3 ~ g4@38 ~]/4", AP: "~@7 [c#4,g#4] ~@8 [c#4,g#4] ~@7",
  AQ: "~ [c#4,g#4] ~@2 [b3,f#4] [a#3,f4] ~ [b3,f#4]@17", // C#5 B5 A#5 B5
  AR: "~ [c#4,g#4] ~@2 [b3,f#4] ~ [a#3,f4] [b3,f#4] ~@8 [b3,f#4] ~@7", // C#5 B5 A#5 B5
  AS: "[~ [b3,f#4] ~@2 [b3,f#4] ~ [c#4,g#4] d#4@41, ~@7 a#4@38 ~@3]/2", AT: "~@2 g3@2 ~@2 a3 ~ a#3@16",
  AU: "~@2 d4@2 ~@3 e4 f4@3 ~@3 g4@3 ~@3 a4@4",
  AV: "[~@3 c#4@2 ~@3 c#4 [f4,a4]@6 [c4,g4] ~@4 c4 [f4,a4]@6 [c4,g4] ~@4 c4 ~ [f4,a4]@6 [c4,g4] ~@3 c4 ~ [f4,a4]@2]/2", // F C5 F C5 F C5 F
  AW: "~ [c4,g4] ~@22", AX: "~@6 c4@2 ~@3 c4 [c4,f4]@6 [c4,g4] ~@4 c4",
  AY: "~ [c4,f4]@6 [c4,g4] ~@4 c4 [c4,f4]@6 [c4,g4] ~@4", AZ: "c4 [c4,f4]@6 ~ [c4,g4] ~@4 c4 ~@10",
  BA: "~@2 a#4@6 ~ a4 ~@3 g4 ~ f4@9",
  BB: "[~@10 f4!2 ~ f4 ~@2 [d4,d#4,g4,a#4]@17 ~@2 [d4,d#4,g4,a#4] ~@2 [d4,d#4,g4,a#4] [d#4,e4,g#4,b4] ~ [e4,f4,a4,c5]@17 ~ f4 ~ f4!2 ~@3 [d4,d#4,g4,a#4]@17 ~ [d4,d#4,g4,a#4] ~@2 [d4,d#4,g4,a#4] ~ [d#4,e4,g#4,b4] [e4,f4,a4,c5]@17 ~@2 f4!2 ~ f4 ~@2 [c4,c#4,f4,g#4]@17 ~@2 [g#3,c4,c#4,f4]@2 ~@3 [g#3,c4,c#4,f4] [d4,d#4,g4,a#4]@10 ~@3 [a#3,d4,d#4,g4]@10 ~@3 [e4,f4,a4,c5]@26]/8", // D#maj7 Emaj7 Fmaj7 D#maj7 Emaj7 Fmaj7 C#maj7 D#maj7 …
})).s("gm_french_horn").gain(0.4)

// chords · french horn · soft notes
const french_horn_soft = note("<~@69 A@2 B@3 ~@6 C ~@20 D@3 E F@2 G@2 H@4 ~ I@3 J@4 ~@51>".pickRestart({
  A: "[d3@9 b3@28 ~@11]/2", B: "[~@10 a3@7 b3@28 a3@5 ~@16 a3@6]/3", C: "~@4 a3@5 ~@15",
  D: "[~@10 [e2,b2,g3]@17 [a2,d#3,c4]@43 ~@2]/3", E: "~@7 [g2,d3,b3]@17", F: "[[g2,d3,b3]@9 [g2,d3,b3]@17 f4@22]/2",
  G: "[~ f4@29 ~@18]/2", H: "[~@23 g4@5 a4@5 a#4@4 f#4@19 ~@4 c4@4 ~ d4@22 d#4@9]/4",
  I: "[~@15 a4@15 e4@8 d#4@28 ~@6]/3", J: "[~@3 d4@35 d#4@52 ~@6]/4",
})).s("gm_french_horn").gain(0.2)

// chords · trumpet
const trumpet = note(`<
  ~@3 A B C D E F G H I J K L@4 ~@10 M@7 N@2 O@2 P Q@6 R@3 S T@3 U@2 V@2 W@4 X ~@73 Y Z AA Z AA AB AC@2 ~@2 AD AE AF@5 ~
  AG@7 AH AI@3 ~@3 AJ@5
>`.pickRestart({
  A: "~@18 e4@2 ~@3 f4", B: "g4 ~@2 c5@14 ~ d4@2 ~@3 e4", C: "f4@17 ~@2 g4@2 ~@3", D: "a4 b4 ~@2 f5@14 ~ a4@2 ~@3",
  E: "b4 c5@5 ~ d5@5 ~ e5@5 ~@2 e4@2 ~@2", F: "f4 ~ g4 ~@2 c5@14 ~ d5@2 ~@2", G: "~ e5 f5@17 ~ g4@2 ~@2",
  H: "~ g4 ~ f4@5 ~ g4 ~@3 g4 ~ f4@5 ~ g4 ~@2", I: "~@2 g4 f4@5 ~ g4 ~@4 g4 f4@3 g4 ~@2 e4@2 ~",
  J: "~@2 f4 g4 ~@3 c5@14 ~ d4@2", K: "~@2 e4 ~ f4@17 ~ g4@2",
  L: "[~@3 a4 b4 ~@3 f5@14 ~ a4@2 ~@2 b4 ~ c5@5 ~ d5@5 ~ e5@5 ~ e4@2 ~@3 f4 g4 ~@3 c5@14 d5@2 ~@3 e5 ~ f5@17 ~]/4",
  M: "[~@4 e4@2 ~@3 g4 f4@17 ~ d4@2 ~@3 f4 ~ e4 g4 ~ e5@14 ~ e4@2 ~@3 g4 f4@17 ~ d4@2 ~@3 f4 d#4 ~ d4 ~ c4@14 ~ e4@2 ~@3 g4 f4@17 ~ d4@2 ~@3 f4 e4 ~ g4 ~ e5@14 ~ d5@2 ~@2 e5 ~ [a4,d5,f5] ~@2 a#4 a4 ~ a#4 ~@2 [a4,d5,f5] ~]/7", // Dm
  N: "[~ a#4 ~ a4 a#4 ~@2 [a4,d5,f5] ~@2 [g4,c5,d#5] ~ [f#4,b4,d5] [g4,c5,d#5]@17 ~@5 c5!2 ~ [a4,d5,f5] ~@2 a#4 a4 ~ a#4 ~@2 [a4,d5,f5]]/2", // Dm Cm Bm Cm Dm
  O: "[~@2 a#4 a4 ~ a#4 ~@2 [a4,d5,f5] ~@2 [g4,c5,d#5] ~ [f#4,b4,d5] [g4,c5,d#5]@17 ~@5 c5!2 [a4,d5,f5] ~@3 a#4 a4 a#4 ~@3]/2", // Dm Cm Bm Cm Dm
  P: "[a4,d5,f5] ~@2 a#4 a4 ~ a#4 ~@2 [a4,d5,f5] ~@2 [g4,c5,d#5] [f#4,b4,d5] ~ [g4,c5,d#5] ~@2 g#4 ~ g4 g#4 ~@2", // Dm Cm Bm Cm
  Q: "[[g4,c5,d#5] ~@2 g#4 ~ g4 g#4 ~@2 [g4,c5,d#5] ~@2 [g4,c5,d#5] ~ [a4,d5,f5] [b4,e5,g5]@38 ~@5 e4@2 ~@3 f4 g4 ~@3 c5@14 d4@2 ~@3 e4 ~ f4@17 ~ g4@2 ~@3 a4 b4 ~@2 f5@14 ~ a4@2 ~@3 b4 c5@5 ~ [g4,d5]]/6", // Cm Dm Em G5
  R: "[~@6 [c5,e5]@2 ~@4 [c4,e4]@2 ~@2 [d4,f4] ~ [e4,g4] ~@2 [g4,c5]@14 ~ [b4,d5]@2 ~@3 [c5,e5] [c#5,f5]@17 ~@2 g4@2 ~@2 g4 ~ [f4,c5]@5]/3", // C Dm Em C5 Bm C C# F5
  S: "~ g4 ~@4 g4 [f4,c5]@5 ~ g4 ~@4 g4 [f4,c5]@5", // F5
  T: "[~ g4 ~@4 g4 [a4,c5]@5 ~ g4 ~@4 g4 g4@38 ~@5 f4@2 ~@3 f#4 g#4 ~@3]/3", // Am
  U: "[c#5@14 ~ d#4@2 ~@2 f4 ~ f#4@17 ~ g#4@2 ~@3 a#4 c5 ~@2]/2",
  V: "[~ f#5@14 a#4@2 ~@3 c5 ~ c#5@5 ~ [g#4,d#5]@5 ~ [c#5,f5]@2 ~@4 [c#4,f4]@2 ~@3 [d#4,f#4] [f4,g#4] ~]/2", // G#5 C# D#m Fm
  W: "[~ [g#4,c#5]@14 ~ [c5,d#5]@2 ~@3 [c#5,f5] [d5,f#5]@17 ~@2 g#4@2 ~@3 g#4 [f#4,c#5,f5]@5 ~ [g#4,d#5] ~@4 g#4 [f#4,c#5,f5]@5 ~ [g#4,d#5] ~@4 g#4 [f#4,c#5,f5]@5 ~ [g#4,d#5] ~@4 g#4 [a#4,c#5,f#5]@5 ~@2 [g#4,f5] ~@3 [g#4,d#5] ~]/4", // C#5 Cm C# D F#maj7 G#5 F#maj7 G#5 …
  X: "[g#4,c#5] ~@23", Y: "~ f5@2 ~@3 g5 [c5,f5,g#5] ~@2 c#5 c5 ~ c#5 ~@2 [c5,f5,g#5] ~@2 c#5 ~ c5 c#5 ~",
  Z: "~ [c5,f5,g#5] ~@2 [a#4,d#5,f#5] ~ [a4,d5,f5] [a#4,d#5,f#5]@17", // Fm D#m Dm D#m
  AA: "~@4 d#5 ~ d#5 [c5,f5,g#5] ~@2 c#5 ~ c5 c#5 ~@2 [c5,f5,g#5] ~@2 c#5 ~ c5 c#5 ~", // Fm
  AB: "~ [c5,f5,g#5] ~@2 [a#4,d#5,f#5] ~ [a4,d5,f5] [a#4,d#5,f#5] ~@2 b4 ~ a#4 b4 ~@2 [a#4,d#5,f#5] ~@2 b4 ~ a#4 b4 ~", // Fm D#m Dm D#m
  AC: "[~ [a#4,d#5,f#5] ~@2 [a#4,d#5,f#5] ~ [c5,f5,g#5] [d5,g5,a#5]@38 ~@3]/2", // D#m Fm Gm
  AD: "~@2 [f4,a4]@2 ~@3 [g4,a#4] [a4,c5] ~@2 [a4,f5]@13", AE: "~@2 g4@2 ~@3 a4 a#4@16",
  AF: "[~@2 c5@2 ~@3 d5 e5 ~@3 a#5@14 d5@2 ~@3 e5 ~ f5@5 ~ g5@5 ~ a5@5 ~ a4@2 ~@2 a#4 ~ c5 ~@2 f5@14 ~ g5@2 ~@3 a5 a#5@17 ~@22]/5",
  AG: "[~@4 a4@2 ~@3 a#4 c5 ~@2 f5@14 ~ g4@2 ~@3 a4 a#4@17 ~@2 c5@2 ~@2 d5 ~ e5 ~@2 a#5@14 ~ d5@2 ~@3 e5 f5@5 ~ [c5,g5]@5 ~ [f5,a5]@2 ~@4 [f4,a4]@2 ~@3 [g4,a#4] [a4,c5] ~@3 [c5,f5]@14 [e5,g5]@2 ~@3 [f5,a5] ~ [f#5,a#5]@17 ~ c5@2 ~@3 c5 [a#4,f5,a5]@6 ~ [c5,g5] ~@3 c5]/7", // C5 F Gm Am F5 Em F F# …
  AH: "~ [a#4,f5,a5]@6 [c5,g5] ~@4 c5 [a#4,f5,a5]@6 [c5,g5] ~@4", // A#maj7 C5 A#maj7 C5
  AI: "[c5 ~ [d5,f5,a#5]@6 [c5,a5] ~@4 [c5,g5] [c5,f5]@42 ~@16]/3", // A# F C5 F5
  AJ: "[~@13 [f4,f5] ~ [f4,f5]!2 ~@2 [f4,f5]@17 ~@2 [f4,f5]@2 ~@3 [f4,f5] [f4,f5]@10 ~@3 [f4,f5]@10 ~@3 [f4,f5]@30 ~@20]/5", // F
})).s("gm_trumpet").gain(0.4)

// other · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~@18 A B ~@4 C@3 D@2 ~@6 E F G H ~@2 I J ~@5 K L M N@2 O P Q R S T@3 U ~@5 V@2 W ~@19 X@3 Y Z@3 AA@8 ~@2 AB AC@6 AD@6
  AE@7 ~ AF@8 ~ AG AH AI AH ~@5 AJ AK AL@2 AM AN AO ~@7 AP AQ AR AS@2 AT AU AV AW AX AY AZ BA
>`.pickRestart({
  A: "g5@2 ~@2 g5 ~ e6@6 d6 ~@4 g5 e6@6", B: "d6 ~@4 g5 e6@6 d6 ~@4 g5 e6@3 d6 ~@2",
  C: "[~@8 d5@24 ~ c5@24 d5 ~@2 g4 ~ f#4 g4 ~@2 d5 ~@3 g4 f#4]/3", D: "[g4 ~@2 d5 ~@3 c5 b4 ~ c5@17 ~@21]/2",
  E: "~@19 c5 d5 d#5 f5 g5", F: "~ g#5 a#5 c6 d6 d#6 f6 g6 ~@16", G: "~@20 c5 d5 d#5 f5",
  H: "g5 g#5 ~ a#5 c6 d6 d#6 f6 g6 ~@15", I: "~@4 g5 ~ a5 b5 c6 ~@2 a5 b5 c6 d6 a5 ~ b5 c6 d6 e6 ~ b5 c6",
  J: "d6 e6 f6 ~ g6 ~@19", K: "c#5 [d#5,f5] g5 [g#5,a#5] c6 c#6 [d#6,f6] ~@5 g6@2 ~@3 g5 e6@5 ~",
  L: "~ d6 ~@3 g5 ~ e6@5 ~ d6 ~@4 g5 e6@5", M: "~ d6 ~@4 g5 f6@5 ~ e6 ~@4 d6 f6@5",
  N: "[~ e6 ~@4 d6 ~ c6@25 ~@11 c#6 ~@3]/2", O: "~@2 c#6 ~@5 c#6 ~@2 c#6 ~ c#6!2 ~ c#6 ~@4 c#6 ~@2",
  P: "~@3 c#6 ~@5 c#6 ~@2 c#6!2 ~ c#6!2 ~@4 c#6 ~@2", Q: "~@3 c#6 ~@5 c#6 ~@2 c#6 ~ c#6!2 ~ c#6 ~@3 c#6 ~@2",
  R: "~@4 c#6 ~@5 c#6 ~@2 c#6!2 ~ c#6!2 ~@4 c#6 ~", S: "~@4 c#6 ~@5 c#6 ~@2 c#6 ~ c#6!2 ~ c#6 ~@3 d6 ~",
  T: "[~ d6 ~ d6!2 ~ d6 ~@3 d6 ~@6 g#6@2 ~@2 g#5 ~ f6@5 ~ d#6 ~@4 g#5 f6@5 ~ d#6 ~@4 g#5 f6@5 ~ d#6 ~@4 g#5 f#6@5 ~ f6 ~@4 d#6 ~]/3",
  U: "c#6 ~@7", V: "[~@9 f4@6 ~@6 g4@6 ~ f5@6 c5@7 a5@7]/2", W: "d5@3 ~@5",
  X: "[~@6 f#5@8 ~ b5@8 a5@7 f#5@7 e5@8 g5@12 a5@4 ~@6 g5@5]/3", Y: "~ a5@5 ~ a5@17",
  Z: "[g5@16 g6@20 d6@17 ~ d#6@18]/3", AA: "[c6@18 d#6@20 d#6@20 g#6@18 d6@17 c6@19 b5@35 c6@43 ~@2]/8", AB: "~ f5@11",
// … 381 more lines

More by John Williams