Strudelify
Raiders of the lost ark cover art

1981 · Raiders of the Lost Ark: The Movie on Record

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, A@4 for four bars: edit a riff to change every repeat.

// other · orchestral harp
const orchestral_harp = note(`<
  A@5 B C D E F G H I@3 J K L M N ~@4 O P ~@2 Q R@6 S@2 T@2 U V@3 W@4 X Y Z AA AB AC ~@6 AD@2 AE ~@6 AF AG ~@8 AH ~@22
  AI AJ ~@3 AK AL ~@7 AM@2 AN@4 ~@4 AO AP ~@7 AQ AR AS AT AS AT AU AV@2 ~@8 AW AX AY ~@5 AZ BA BB BC BD ~@8
>`.pickRestart({
  A: "c2 ~@14 c2 ~@8", B: "c2 ~@7 c2 ~@3", C: "~ c2@2 ~@13 c2@2 ~@6", D: "~ c2@2 ~@14 g1@2 ~@5",
  E: "~@2 c2@2 ~@13 c2@2 ~@5", F: "~@2 c#2@2 ~@13 c#2@2 ~@5", G: "~@9 g2@2 ~@10 g2@2 ~", H: "~@9 g2@2 ~@7 g2@2 ~@4",
  I: "~@4 c2@2 ~@13 c2@2 ~@3", J: "~@5 c2@2 ~@13 g1@2 ~@2", K: "~@5 c2@2 ~@13 c2@2 ~@2", L: "~@6 c#2@2 ~@13 c#2@2 ~",
  M: "~@6 g2 ~@5", N: "g2 ~@5 g2 ~@4 g2", O: "~@15 [a#3,d4] f4 a#4 [d5,f5] ~@5", P: "~@15 g#3 c4 [d#4,g#4] c5 d#5 ~@4",
  Q: "~@5 c2@7",
  R: "[~@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",
  S: "[~@7 c2@2 ~@4 c2@15 ~@3 c2@2 ~@4 g1@2 ~@9]/2", T: "[~@8 c2@2 ~@4 c2@15 ~@3 c2@2 ~@4 g1@2 ~@8]/2",
  U: "~@9 g1@2 ~@4 f1@2 ~@7", V: "[~@9 f1@2 ~@4 c2@38 ~@11 c2@2 ~@4 c2@2]/3",
  W: "[~@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",
  X: "c2 ~@2 c2 ~@2 c2 ~@2 c#2 ~@2", Y: "c#2 ~@2 c#2 ~@8", Z: "~ g1@2 ~@10 g1@2 ~@9",
  AA: "~ g1@2 ~@10 g1@2 ~@4 c2@2 ~@3", AB: "~@5 f2", AC: "~@2 e2 ~@4 d2 c2 ~@15", AD: "~@5 g#1@2 ~@10 g#1@2 ~@5",
  AE: "c#2 ~@11", AF: "~@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",
  AG: "[a5,a#5] c6 d6 e6 f6 g6 a6 a#6 c7 d7 ~@14", // A#maj7
  AH: "~@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 …
  AI: "~@10 e2@3 b2@3 e3@2 g3@3 b3@3", AJ: "e4@3 a2@3 d#3@3 c4@3 ~ g4@4 ~@7",
  AK: "~@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 …
  AL: "[a#5,c6] d6 ~@22", AM: "[~@7 c2@14 ~@3]/2", AN: "[~@3 g2@9 g2@17 g2@10 c2@51 a#1@6]/4",
  AO: "~@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
  AP: "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
  AQ: "~@18 c2 d#2 [f2,g2] a#2 [c3,d#3] [f3,g3]", // Fsus2 Cm Fsus2
  AR: "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", AS: "~ d#2 ~@5 d#2@15 ~@2",
  AT: "~ d#2 ~@5 a#1 ~@16", AU: "~ a#1 ~@5 g#1 ~@16", AV: "[~ g#1 ~@5 d#2@38 ~@3]/2", AW: "~@16 c2 ~@7",
  AX: "~@4 c2 ~@11 c2 ~@7", AY: "~@4 c2 ~@19", AZ: "~@19 c2@2 ~@3", BA: "~@7 c2@2 ~@10 c2@2 ~@3",
  BB: "~@4 c2 ~@2 f2 ~@4", BC: "~@15 a#2@6 a2 ~@2", BD: "~@2 g2 ~ f2 ~@19",
})).s("gm_orchestral_harp").gain(0.3)

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

More by John Williams