Strudelify
KeyA majorTempo84 bpm
0:00/0:00
// Pirates — Emerson, Lake & Palmer
// 84 bpm, 2/4, key A 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, 6/8 at bar 49, 2/8 at bar 50, 4/4 at bar 51, ...) are rendered on a constant 2/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: ch 2 "Lead/Vocal" Triangle -> tinkle bell; ch 2 "Lead/Vocal" Shakuhachi -> shakuhachi; ch 2 "Lead/Vocal" Clarinet 2 -> clarinet; ch 2 "Lead/Vocal" Engl Horn -> english horn; ch 2 "Lead/Vocal" Violin 2 -> violin; ch 3 "Orchestra" Orche Hit -> orchestra hit; ch 4 "Bass" Shakuhachi -> shakuhachi; ch 4 "Bass" Acou Bass 1 -> acoustic bass; ch 4 "Bass" Cello 2 -> cello; ch 5 "Horns" Syn Brass 4 -> synth brass 2; ch 5 "Horns" Trombone 1 -> trombone; ch 5 "Horns" Flute 1 -> flute; ch 6 "Picolo" Piccolo 2 -> piccolo; ch 6 "Picolo" Harmonica -> harmonica; ch 7 "Horns" Syn Brass 3 -> synth brass 1
// note: Full arrangement: all 331 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/2)

// 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 · orchestra hit · "Orchestra"
const orchestra_hit = note(`<
  ~@39 A@2 B C D@2 E@2 F@2 G@2 H@2 I J K@3 L ~@43 M N ~@6 O P Q@3 R@2 ~@102 S T U S T U ~@47 V@7 W X ~@6 Y Z ~ Y Z ~ AA
  AB ~ AA AB ~@5 AC AD ~ AE AF ~@2 AG AH ~ AI AJ ~@14 AK ~
>`.pickRestart({
  A: "[~@12 [e4,a4]@16 ~@6 [c4,g4]@11 ~@3]/2", B: "~@7 [e4,a4]@16 ~", C: "~@4 [c4,g4]@11 ~@9",
  D: "[~ a3@5 ~ a3@5 a3@5 a3@5 ~ a3@5 a3@5 a3@5 a3@5 ~ a3@4]/2",
  E: "[~ a3@5 a3@5 ~ a3@5 a3@5 a3@5 ~ a3@5 a3@5 a3@5 ~ a3@4]/2",
  F: "[~ a3@5 a3@5 a3@5 ~ a3@5 a3@5 a3@5 ~@6 [e4,b4]@5 [e4,b4]@5]/2", // E5
  G: "[~@6 [d4,a4]@5 [d4,a4]@5 ~ [c4,g4]@5 [c4,g4]@5 c4@5 c4@5 ~ c4@5 c4@5]/2", // D5 C5
  H: "[c4@5 ~ c4@5 c4@5 c4@5 ~ c4@5 c4@5 c4@5 c4@5 ~ c4@5]/2", I: "c4@5 c4@5 ~ c4@5 [c4,d#4]@5 ~@3",
  J: "~@8 [e4,f4,g#4]@5 ~@11", K: "[~@5 [e4,b4]@21 ~@10]/3", L: "~ f#4@4 ~@4 g#4@3", M: "~@12 [e4,b4]@5 ~ [e4,b4]@5 ~",
  N: "~@4 [d4,a4]@5 ~ [d4,a4]@5 ~@9", O: "~@17 [c4,d#4]@5 ~@2", P: "~@9 [e4,f4,g#4]@5 ~@10",
  Q: "[~@11 [e4,b4]@42 ~@19]/3", R: "[~@3 f#4@8 ~@8 g#4@8 ~@21]/2", S: "~@2 [d4,f#4,a4]@2 ~ [e4,a4,c#5]@2 ~",
  T: "[g#4,b4,e5]@2 ~ [e4,a4,c#5] ~@2 [d4,f#4,a4]@2", U: "~ [e4,a4,c#5]@2 ~ [e4,g#4,b4] e4 [e4,a4,c#5]@2",
  V: "[~@3 [e2,b2,e3]@6 [d2,a2,e3]@6 [e2,b2,e3]@6 [d2,a2,e3]@6 [e2,b2,e3]@6 [d2,a2,e3]@6 c#2 ~@2]/7", // E5 Dsus2 E5 Dsus2 E5 Dsus2
  W: "d2 ~@2 e2 ~@2", X: "f#2 ~@2 c#3 ~@2",
  Y: "~@3 [f4,a4,c5]@2 ~ [f4,a4,c5]@2 ~@4 [g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~@4 [b4,d5,g5]@2 ~", // F C G
  Z: "[b4,d5,g5]@2 ~@4 [g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~@13", // G C
  AA: "~@3 [g#4,c5,d#5]@2 ~ [g#4,c5,d#5]@2 ~@4 [a#4,d#5,g5]@2 ~ [a#4,d#5,g5]@2 ~@4 [d5,f5,a#5]@2 ~", // G# D# A#
  AB: "[d5,f5,a#5]@2 ~@4 [a#4,d#5,g5]@2 ~ [a#4,d#5,g5]@2 ~@13", AC: "~@3 [f4,c5]",
  AD: "[g4,e5]@3 [b4,g5]@2 [b4,g5] [g4,e5]@2", AE: "~@9 [a4,c5]@2 ~",
  AF: "[c5,e5]@6 ~@3 [d5,g5]@4 ~@2 [d5,g5]@2 ~ [g4,e5]@4 ~@2", AG: "~@6 [g#4,d#5]@4 ~@2 [d#5,g5]@6 ~@3 [d5,a#5]@3",
  AH: "~@3 [f5,a#5]@2 ~ [a#4,g5]@4 ~@14", AI: "~@9 [g#4,d#5]@2 ~",
  AJ: "[d#5,g5]@6 ~@3 [f5,a#5]@4 ~@2 [d5,a#5]@2 ~ [a#4,d#5]@4 ~@2", AK: "~@14 [g5,c6,g6]@7 ~@3",
})).s("gm_orchestra_hit").gain(0.27)

// bass · shakuhachi · "Bass"
const bass = note(`<
  ~@46 A@3 B C D E@4 ~ F G H I@2 J@2 K L M@2 N@2 O@2 P Q R@2 S@3 T@2 U@3 V@2 W X Y Z@3 AA AB AC AD ~@4 AE@2 AF@6 AG AH
  AI@4 AJ AK@2 AL AM AN AO@8 ~@35 AP@2 AQ@2 AP@2 AQ@2 AR AS AT@2 AU@2 AV@8 AQ@2 AR AS AT@2 AU@2 AW@8 AX AY ~@16 AZ@2
  BA@3 BB@2 BC@4 BD@8 BE@2 BF@4 BG@8 BH@8 BI@5 BJ@2 BK BL BM@2 BN@8 BO BP BQ BR BS BT BU ~ BV BW BX BV BY@2 BZ CA ~ BZ
  CA ~@17 CB CC@6 CD@2 CE CF CG CH CI@2 CJ
>`.pickRestart({
  A: "[~@9 b2@2 ~ c#3@2 d3@4 ~@2 a2@2 e2@8 f#2@3 g2@2 a2@5 ~ e2@2 b1@13 ~ [a1,a2]@11 ~@4]/3", // A
  B: "~ [b1,b2]@11 ~@5 [a1,c3]@4 ~ d3@2", C: "e3@2 ~ f#3@4 ~ d3@2 ~ a2@6 ~@2 b2@2 ~ c3@2",
  D: "d3@4 ~@2 a2@2 e2@6 ~@2 a2@3 g2@3 f#2@2",
  E: "[e2@3 d2@3 b1@2 e2@3 c2@8 c2@16 e2@2 a1@3 [b1,b2]@16 a1@27 ~@5 [e2,e3]@4 ~ [g1,g2]@3, ~@56 a2@19 ~@21]/4", // B E G
  F: "~@5 d3@5 ~@6 d3@3 ~@5", G: "~ f#2@4 ~@4 g#2@3", H: "~@10 e3@3 ~@2 b2@3 ~@3 f#2@3",
  I: "[~@2 d#3@3 ~@2 a#2@3 ~@2 d#2@3 ~@3 a#1@3 ~@2 d#2@3 ~@2 f2@3 ~@3 c5 ~ a#4 ~@2 c5@3 ~@2 g#4@3 ~]/2",
  J: "[~@2 f4@3 ~@2 a#4 ~@2 g#4 ~ g4 ~@2 f4 ~@2 d#4@3 ~@2 [a#1,a#2]@3 ~@2 [f1,f2]@3 ~@2 [c2,c3]@5 ~@6 g2@4]/2", // A# F C
  K: "~@7 c2@5 ~@5 g1@5 ~@2", L: "~@2 c2@5 g2@5", M: "[~ c2@5 g1@5 ~ c2@10 d2@11 g2@11 b2@4]/2",
  N: "[~ g2@5 a2@5 d3@5 ~ e3@5 f#3@16 g3@3 f#3@2 e3@5]/2", O: "[~ d3@10 [c2,c3]@5 ~@6 g2@5 ~@5 c2@5 ~@6 g1@5]/2",
  P: "~@3 c2@5 g2@4", Q: "~@3 c2@5 g1@5 c2@11", R: "[d2@11 g2@10 b2@5 ~ g2@5 a2@5 d3@5 ~ e3@5]/2",
  S: "[f#3@16 g3@2 f#3@3 e3@5 d3@11 [d#1,d#2]@28 ~@7]/3", T: "[~@7 [d#1,d#2]@28 ~@13]/2",
  U: "[~ [d#1,d#2]@14 ~@7 [d#1,d#2]@14]/3", V: "[~@15 [d#1,d#2]@28 ~@5]/2", W: "~@9 c3@14 ~", X: "~@3 f3@7 ~@2",
  Y: "~@2 d3@7 ~@3", Z: "[~ a2@14 ~@7 d3@14 ~@7 a2@14 ~@8 e2@3 ~@2 e2@2]/3",
  AA: "~@3 e2@3 ~@2 e2@3 ~@3 e2@3 ~@2 e2@3 ~@2", AB: "e2@3 ~@3 e2@3 ~@2 g2@3 ~@8 e2@2",
  AC: "g2@2 ~@11 e2@2 ~ g2@2 ~ a1@3 ~@2", AD: "d2@3 ~@2 e2@7 ~@12",
  AE: "[~@13 e2@5 ~@3 e2@2 g2@2 ~ a2@2 ~ b2@4 ~ a2@11 ~@3]/2",
  AF: "[~@2 b2@4 ~ [a1,a2]@11 ~@5 [b1,b2]@11 ~@5 e3@2 ~ f2@2 g2@2 ~ c3@2 ~ f2@2 g2@2 ~ d3@2 ~ f2@2 g2@2 ~ c3@2 ~ f2@2 g2@2 ~ d3@2 f2@2 ~ g2@2 ~ c3@2 e3@2 ~ f2@2 ~ g2@2 c3@2 ~ f2@2 ~ g2@2 d3@2 ~ f2@2 ~ g2@2 c3@2 ~ f2@2 ~ g2@2 d3@2 ~ f2@2 ~ g2@2 c3@2 ~ e3@2 ~ f2@2 g2@2 ~ c3@2 f2@2 ~ g2@2 ~ d3@2 f2@2]/6", // A B
  AG: "~ g2@2 ~ c3@2 f2@2 ~ g2@2 ~ d3@2 f2@2 ~ g2@2 ~ c3@2 e3@2",
  AH: "~ f2@2 ~ g2@2 c3@2 ~ f2@2 ~ g2@2 d3@2 ~ f2@2 ~ g2@2 c3@2",
  AI: "[~ f2@2 ~ g2@2 d3@2 ~ f2@2 g2@2 ~ c3@2 ~ [b1,b2]@16 a1@27 ~@5 [e2,e3]@4 ~ [g1,g2]@4 ~@22, ~@33 a2@19 ~@44]/4", // B E G
  AJ: "~@6 d3@5 ~@5 d3@3 ~@5", AK: "[~@3 f#2@8 ~@8 g#2@8 ~@8 e3@3 ~@2 b2@3 ~@2 f#2@3]/2",
  AL: "~@3 d#3@3 ~@2 a#2@3 ~@2 d#2@3 ~@3 a#1@3 ~@2", AM: "d#2@3 ~@8 a5@2 ~@2 g5@2 ~ a5@4 ~@2",
  AN: "~ f5@4 ~@2 d5@4 ~@3 g5@2 ~ f5@2 ~@2 e5@2 ~", AO: "[d5@2 ~ c5@4 ~@3 g4@4 ~@3 [a3,a4]@175]/8", AP: "[a1,a2]!2",
  AQ: "[[b1,b2]@6 [c#2,c#3]@6 [d2,d3]@3 [d2,d3]@6 e3@15 e3@4 ~@2 e2@4 ~@2, ~@7 e2@3 ~@6]/2", // B C# D
  AR: "[d2,d3]@2 ~ [d2,d3]@2 ~", AS: "[c#2,c#3]@2 ~ [c#2,c#3]@2 ~",
  AT: "[[b1,b2]@2 ~ [c#2,c#3]@2 ~ [d2,d3]@2 ~ [e2,e3]@5 ~ b2@2 ~ [e2,e3]@4 ~@2]/2", AU: "[a1,a2]@2 ~ [a1,a2]@2 ~",
  AV: "[[b1,b2]@4 ~@2 [c#2,c#3]@4 ~@2 [d2,d3]@2 ~ [e2,e3]@4 ~@2 a2@11 ~@16 [a1,a2]@12 [a1,a2]@12 [a1,a2]@12 [a1,a2]@12 [b1,b2]@6 [c#2,c#3]@6 [d2,d3]@3 [d2,d3]@6 e3@15 e3@4 ~@2 e2@4 ~@2 [a1,a2]@12 [a1,a2]@12 [a1,a2]@12 [a1,a2]@12, ~@7 a3@57, ~@39 e2@3 ~@22]/8", // B C# D E A B C# D …
  AW: "[[b1,b2]@4 ~@2 [c#2,c#3]@4 ~@2 [d2,d3]@2 ~ [e2,e3]@4 ~@2 a2@11 ~@16 a2@2 ~ f#2@2 ~ e2@2 ~ a2@5 ~ e2@2 ~ f#2@2 ~ e2@2 ~ a2@4 ~@2 f#2@4 ~@2 e2@4 ~@2 f#2@4 ~@2 d2@8 ~@10 d2@4 ~@2 a2@2 ~ b2@2 ~ c#3@4 ~@2 b2@2 ~ a2@2 ~ f#2@2 ~ f#2@2 ~ a2@2 ~ f#2@2 ~ e2@2 ~ a2@5 ~ e2@2 ~ f#2@2 ~ e2@2 ~ a2@4 ~@2 f#2@4 ~@2 e2@4 ~@2 f#2@4 ~@2, ~@7 a3@57]/8", // B C# D E
  AX: "d2@4 ~@5 d2@2 ~", AY: "a2@2 ~ b2@2 ~ c#3@4 ~@2 b2@2 ~ a2@2 ~ f#2@2 ~ f#2@2 ~",
  AZ: "[d2 d3 d4 a2 ~ e4 e2 e3 g#4 a2 ~ e4 d2 d3 d4 a2, ~@2 a3@3 a3@3]/2",
  BA: "[~ e4 e2 e3 g#4!2 ~@2 d2 d3 d4 a2 ~ e4 e2 e3 g#4 a2 ~ e4 d2 d3 d4 a2, a3!2 a3 a3]/3",
  BB: "[~ e4 e2 e3 g#4!2 a3@4 [a3,d4]@2 [a3,e4]@3 [a3,f#4], a3@3 ~@5]/2", // D5 A5 D
  BC: "[[a3,e4]@2 [a3,d4]@2 [a3,g#4]@2 a3@2 a3@4 a3@4 a3@4 [a2,e3]@4 ~@2 [a3,d4]@2 [a3,e4]@3 [a3,f#4], ~@3 a4@13, ~@12 e4@4 ~@2 e4@4 ~@2 d3@4 ~@2 a3@9 ~@9]/4", // A5 D5 Amaj7 A5 D5 A5 D
  BD: "[[a3,e4]@3 [a3,d4]@3 [a3,g#4]@3 a3@3 a3@6 a3@6 a3@6 [a2,e3]@6 ~@3 d4@2 ~ [e3,b3]@8 ~@4 d3@8 ~@4 [e3,b3]@8 ~@4 d3@8 ~@4 [e3,b3]@6, ~@3 a4@29, ~@12 e4@4 ~@2 e4@4 ~@2 d3@4 ~@2 a3@9 a3@15 a3@24 a3@18]/8", // A5 D5 Amaj7 A5 E5
  BE: "[~ a3@2 a3, ~@3 d3@4 ~@2 c#3@2 ~]/2",
  BF: "[a3@3 e3@2 ~ [f#3,c#4]@2 ~ [e3,c#4]@4 ~@2 a3@6 [c#3,a3]@3, d3@2 ~ a3@12 d3@4 ~@5]/4", // F#5 C#m F#m
  BG: "[~@3 b2@4 ~@2 [e3,g#3]@3 ~@3 a1@12 a1@12 a1@9, ~ a3@15]/8", BH: "[~ a1@4 a1@4 a1@4 a1@3]/8",
  BI: "[~@17 d2 a1@2, ~ a1@8 ~]/5", BJ: "[d2@3 e2@6 a1@2 ~]/2", BK: "d2@2 ~ a1@2 ~", BL: "g#1@2 ~ a1@2 ~",
  BM: "[d2@2 ~ e2@6 a1@2 ~]/2",
  BN: "[d2@6 ~@3 a1@19 ~@8 [e2,b2]@24 [d2,a2]@24 [e2,b2]@24 [d2,a2]@24 [e2,b2]@24 [d2,a2]@24 c#2@12]/8", BO: "d2 e2",
  BP: "f#2 c#3", BQ: "f#2@2 f#2 d2@3 d2@2", BR: "d2!3 c#2 c#2@2 c#2@2", BS: "c#2 d2 e2 f2@3 f2@2", BT: "f2!3 e2@3 e2@2",
  BU: "e2 f2 g2 c2 ~@4", BV: "[f2,f3]@2 ~ [c3,c4]@2 ~ [g3,g4]@2", BW: "~ [c3,c4]@2 ~@2 f4@2 ~",
  BX: "[c4,g4]@4 ~@2 e4@2 ~ [g3,d4]@2 ~", BY: "[~ [c3,c4]@2 ~ [d5,f5]@2 ~ [c5,d#5]@2 ~ [a#4,d5]@2 ~ [g#4,c5]@2 ~]/2",
  BZ: "[g#2,g#3]@2 ~ [d#3,d#4]@2 ~ [a#2,a#3]@2", CA: "~ [d#3,d#4]@2 ~@5", CB: "~@3 g1",
  CC: "[~@3 g2@6 ~@3 f2@6 ~@3 e2@6 ~@3 d2@2 ~ c2@2 ~ b1@2 ~ a1@2 ~ g1@6]/2",
  CD: "[~@3 g2@6 ~@3 f2@6 ~@3 e2@6 ~@3 d2@2 ~ c2@2 ~ b1@2 ~ a1@2 ~ g1@4 ~@2]/2", CE: "~@3 g2@2 ~@4 g2 ~@2",
  CF: "f2 ~@2 e2 ~@2 d2 ~@2 c2 ~@3 b1 ~@2 a1 ~@2 g1@4 ~", CG: "~@8 g2@4 ~@9 g2@2 ~", CH: "~@4 f2 ~@3 e2 ~@3 d2@5 ~@7",
  CI: "[~@2 c2@4 ~@7 c2 ~@2 f2@32]/2", CJ: "~@8 c2 ~@3 c2@4 ~@8",
})).s("gm_electric_bass_finger").gain(0.27)

// bass · acoustic bass · "Bass"
const bass_2 = note(`<
  ~@121 A B C D A B C D E F E F E F G H I F J K L A B C D A B C D E F E F E F G H I F J K M ~@168
>`.pickRestart({
  A: "[a3,e4]@6 ~@3 [a3,f#4]@2 ~ [a3,e4]@4 ~@2 [a3,d4]@4 ~@2", B: "[a3,g#4]@2 ~ [a3,a4]@2 ~ [a3,e4]@4 ~@2",
  C: "[a3,e4]@2 ~ [d3,a3]@2 ~", D: "[a2,e3,a3]@6 ~@3 [a3,d4]@2 ~", E: "[e3,b3]@2 ~", F: "[d3,a3]@2 ~",
  G: "[c#3,a3]@2 ~ [d3,a3]@2 ~", H: "[e3,a3]@2 ~ [f#3,c#4]@2 ~", I: "[e3,c#4]@2 ~", J: "[c#3,a3]@2 ~", K: "[b2,a3]@2 ~",
  L: "[e3,g#3]@6 ~@3 [a3,d4]@2 ~", M: "[e3,g#3]@6 ~@3 b2@2 ~ e3@4 ~@8",
})).s("gm_acoustic_bass").gain(0.27)

// chords · cello · "Bass"
const cello = note("<~@285 A@2 ~@44>".pickRestart({
  A: "[~@6 [f4,a4]@2 ~ [c4,g4]@5 ~@4 [a3,e4]@2 ~@4]/2", // F C5 A5
})).s("gm_cello").gain(0.27)

// chords · synth brass 2 · "Horns"
const synth_brass_2 = note("<~@7 A@6 B@2 ~ C@4 D@4 ~ E F@2 G@3 ~ H I@2 J K@2 ~ L M N O ~@288>".pickRestart({
  A: "[~@17 g4@50 ~@3 a#4@10 d5@11 a#4@10 c5@37 ~ a4@2 f4@3]/6", B: "[c4@7 ~]/2",
  C: "[~@13 g4@50 ~@3 a#4@10 d5@11 a#4@9]/4", D: "[~@2 c5@37 a4@2 f4@3 c4@42 ~@10]/4", E: "~@9 [d#4,a#4]@14 ~",
  F: "[~ [g#4,d#5]@12 ~@4 [c5,g5]@14 ~@2 [g#4,d#5]@12 ~@3]/2", G: "[~ [c#4,g#4]@10 [g#3,d#4]@11 [a#3,f4]@42 ~@8]/3",
  H: "~@11 [d#4,a#4]@13", I: "[~@3 [g#4,d#5]@12 ~@4 [c5,g5]@14 ~ [g#4,d#5]@12 ~@2]/2",
  J: "~@2 [c#4,g#4]@11 [g#3,d#4]@11", K: "[[a#3,f4]@7 ~]/2", L: "~ a4", M: "~@5 g4@7", N: "~@7 a4@14 ~@3",
  O: "~@2 g4@7 ~@3",
})).s("gm_synth_brass_2").gain(0.27).pan(0.3)

// chords · trombone · "Horns"
const trombone = note("<~@195 A B A B A B A B ~@128>".pickRestart({
  A: "[d4,f#4,a4]@6 ~@3 [e4,a4,c#5]@2 ~@7 [d4,f#4,a4]@6", // D A D
  B: "~@3 [e4,a4,c#5]@4 ~@5 [d4,f#4,a4]@4 ~@2 [e4,a4,c#5]@4 ~@2", // A D A
})).s("gm_trombone").gain(0.27).pan(0.3)

// chords · flute · "Horns"
const flute = note("<~@246 A@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 D@2 ~@23 E F G E H@2 I J ~ I J ~@33>".pickRestart({
  A: "[~@12 [d4,a4]@4 ~@2 c#5@2 ~ [e4,b4]@5 ~ e5@2 ~ [a4,c#5]@12 ~@3 a4@2 ~]/2", // D5 E5 A
  B: "[b5@2 ~ e5@2 ~ b4@2 ~ a4@2 ~ [d4,a4]@4 ~@2 c#5@2 ~ [e4,b4]@5 ~ e5@2 ~ [a4,c#5]@12 ~@3 a4@2 ~]/2", // D5 E5 A
  C: "[[e4,b4]@2 ~ g#4@2 ~ e4@4 ~@2 [d4,a4]@4 ~@2 c#5@2 ~ [e4,b4]@5 ~ e5@2 ~ [a4,c#5]@12 ~@3 a4@2 ~]/2", // E5 D5 E5 A
  D: "[[e4,b4]@2 ~ g#4@2 ~ [e4,a4]@42]/2", E: "[f2,f3]@2 ~ [c3,c4]@2 ~ [g3,g4]@2", F: "~ [c3,c4]@2 ~@2 [f4,a4]@2 ~",
  G: "[c4,g4]@4 ~@2 [a3,e4]@2 ~ [g3,d4]@2 ~", H: "[~ [c3,c4]@2 ~ [d5,f5]@2 ~ [c5,d#5]@2 ~ [a#4,d5]@2 ~ [g#4,c5]@2 ~]/2",
  I: "[g#2,g#3]@2 ~ [d#3,d#4]@2 ~ [a#2,a#3]@2", J: "~ [d#3,d#4]@2 ~@5",
})).s("gm_flute").gain(0.27).pan(0.3)

// other · piccolo · "Picolo"
const piccolo = note(`<
  ~@14 A B C ~@6 D E@2 ~@4 F@3 ~@4 G H I@5 ~@14 J@2 ~ K L@2 M@2 N O P Q R S T U V W X Y ~@8 Z AA AB AC AD AE ~@3 AF AG
  AH AI AJ@2 ~@2 AK@5 AL AM AN ~@4 AO AP ~ AQ AR AS ~@104 AT ~@89 AU AV AW AX AY AZ BA BB BC BD BE@3 BF@2 ~
>`.pickRestart({
  A: "~@18 c8 ~@2 a7 ~@2", B: "c7 ~ g6 ~@2 c6 ~@2 f5 ~ g5 ~@2 c5 ~@2 f4 ~ g4 ~@2 c4 ~ f3", C: "~@2 g3@5 ~@17",
  D: "~@14 c8@2 ~ a7@2 ~ c7@2 g6@2", E: "[~ c6@2 ~ f5@2 g5@2 ~ c5@2 ~ f4@2 g4@2 ~ c4@2 ~ f3@2 g3@7 ~@19]/2",
  F: "[~@16 c5@5 ~@2 c5@2 a#4@2 c5@8 d5@2 a4@3 f4@3 g4@16 ~@13, ~@11 d5 ~@24]/3", G: "~@18 g4 ~@2 a#4 ~ d5",
  H: "~@2 d#5 ~@2 g5 ~ a#5 ~@2 d6 ~@2 d#6 ~ d6 ~@2 a#5 ~@2 g5 ~ c6",
  I: "[~@2 a5 ~@2 f5 ~ c5 ~@2 g4 ~ [d4,e4,a4]@3 ~@5 e5 ~@2 d5@2 ~@3 a4@2 ~@4 c7@2 g6@2 ~ d6@2 ~ c6@2 g5@2 ~ d5@2 ~ c5@2 g4@2 ~ [d4,e4,a4]@3 ~@5 e5 ~@2 d5@2 ~@3 a4@2 ~@3 c7@2 ~ g6@2 d6@2 ~ c6@2 ~ g5@2 d5@2 ~ c5@2 ~ g4@2 ~@23]/5", // Dsus2
  J: "[~@2 f#4@3 ~@2 c#5@3 ~@3 a4@3 ~@2 g#4@3 ~@2 d#5@3 ~@3 b4@3 ~@16]/2",
  K: "~@4 f2@3 ~@3 c5 ~ a#4 ~@2 c5@3 ~@2 g#4@3 ~",
  L: "[~@2 f4@3 ~@2 a#4 ~@2 g#4 ~ g4 ~@2 f4 ~@2 d#4@3 ~@2 [a#1,a#2]@3 ~@2 [f1,f2]@3 ~@2 c5 ~@2 d5 ~@2 e5 ~ f5 ~@2 g5 ~@2 a5]/2", // A# F
  M: "[~ d5@8 ~@3 g5@3 d5@2 e5@5 ~ c5@2 b4@3 c5@3 g5@2 e5@3 c5@2 b4@3 f5@3 d5@2 b4@2]/2",
  N: "~ e5@3 c5@2 g4@3 e4@3 c4@10 b5@2", O: "c6@2 b5@2 a5@2 g5@3 f#5@3 e5@2 d5@3 b4@3 c5@2 e5@2",
  P: "~ b4@3 g4@2 a4@11 a4@2 b4@3 c5@2", Q: "~ d5@2 e5@3 g5@3 f#5@2 d5@3 e5@3 c5@2 a4@3 g4@2",
  R: "~ f#4@2 d5@3 ~@5 c5 ~@2 d5 ~@2 e5 ~ f5 ~@2 g5 ~", S: "a5 ~@2 d5@8 ~@3 g5@2 d5@3 e5@5",
  T: "c5@3 b4@3 c5@2 g5@3 e5@3 c5@2 b4@3 f5@3 d5@2", U: "b4@3 e5@3 c5@2 g4@3 e4@2 c4@11",
  V: "b5@2 c6@2 ~ a5@3 g5@3 f#5@2 e5@3 d5@3 b4@2 c5@3, ~@2 b5 ~@9", W: "e5@3 b4@2 g4@3 a4@11 a4@2 b4@3",
  X: "c5@2 d5@3 e5@3 g5@2 f#5@3 d5@3 e5@2 c5@3 a4@3", Y: "g4@2 f#4@3 d4@8 ~@11",
  Z: "~@9 g4@2 ~ a#4@2 d5@2 ~ d#5@2 ~ g5@2 a#5@2", AA: "~ d6@2 ~ d#6@2 d6@2 ~ a#5@2 ~ g5@2 c6@2 ~ a5@2 ~ f5@2 c5@2",
  AB: "~ g4@2 ~ [d4,e4,a4]@3 ~@5 e5 ~ d5@2 ~@4 a4@2 ~@2", // Dsus2
  AC: "~ c7@2 ~ g6@2 d6@2 ~ c6@2 g5@2 ~ d5@2 ~ c5@2 g4@2 ~ [d4,e4,a4]@2", // Dsus2
  AD: "~@6 e5 ~@2 d5@2 ~@3 a4@2 ~@3 c7@2 ~ g6@2", AE: "~ d6@2 c6@2 ~ g5@2 ~ d5@2 c5@2 ~ g4@2 ~@8",
  AF: "~@8 e5@2 ~ f#5@2 b5@2 ~ a5@2 ~ f#5@2 e5@2 ~", AG: "f#5@2 ~ g5@2 f#5@2 ~ e5@2 ~ f#5@2 g5@2 ~ a5@2 ~ g5@2 f#5@2 ~",
  AH: "e5@2 f#5@2 ~ g5@2 ~ a5@2 b5@2 ~ e6@2 ~ b5@2 a5@2 ~ g5@3",
  AI: "~@2 a5@4 ~@2 g5@2 b5@2 ~ [e6,g6]@2 ~ [e6,g6]@2 d6@2 ~ b5@2 ~", // Em
  AJ: "[[a#5,e6]@2 a5@2 ~ g5@2 ~ e5@2 g5@2 ~ e5@2 ~ [a5,d6]@2 g5@2 ~ e5@2 d5@2 ~ b4@4 ~ d5@2 ~ b4@2 ~@12]/2", // A#dim D5
  AK: "[~@15 b5@2 ~ e6 d6 a5@2 ~ b5@2 ~ c6@2 d6@2 ~ b5@2 ~ g5@2 d5@2 ~ b4@2 ~ d5@2 b4@2 ~ c5@2 c5@2 ~ a4@2 ~ f4@2 e4@2 ~ g4@2 ~ f#4@2 e4@2 ~ f4@2 ~ a4@2 c5@2 ~ e5@2 ~ [c5,a5]@4 ~ c6@2 ~ [d5,b5]@4 ~ g5@2 ~ d5@2 b4@2 ~ c5@2 ~ c5@2 a4@7 ~ c5@2 ~ b4@2 c5@2]/5", // F G
  AL: "~ a4@5 ~@3 c5@2 ~ b4@2 c5@2 ~ a4@2 ~ b4@2 c5@2", AM: "~ e5@2 ~ d5@2 b4@2 ~ a4@2 ~ c5@2 b4@2 ~ g4@2 ~ f4@2 a4@2",
  AN: "~ g4@2 ~ e4@2 d4@2 ~ f4@2 e4@2 ~ c4@2 ~@8", AO: "~@3 f#4@3 ~@2 c#5@3 ~@2 a4@3 ~@3 g#4@3 ~@2",
  AP: "d#5@3 ~@2 b4@3 ~@16", AQ: "~@11 a5@2 ~@2 g5@2 ~ a5@4 ~@2", AR: "~ f5@4 ~@2 d5@4 ~@3 g5@2 ~ f5@2 ~@2 e5@2 ~",
  AS: "d5@2 ~ c5@4 ~@3 g4@4 ~@3 f#4@4 ~@3", AT: "~ a4 ~@2", AU: "b5@4 ~@2 c6@2 ~ g5@4 ~@2 e5@2 ~ f5@4 ~@2",
  AV: "g5@2 ~ e5@4 ~@2 c5@2 ~ d5@2 ~ f5@2 ~ a5@2 ~ c6@2 ~", AW: "d6@4 ~@2 e6@2 ~ b5@4 ~@2 g5@2 ~ a5@4 ~@2",
  AX: "b5@2 ~ g5@4 ~@2 e5@2 ~ f5@2 ~ a5@2 ~ c6@2 ~ e6@2 ~", AY: "f5@4 ~@2 g5@2 ~ d5@4 ~@2 b4@2 ~ c5@4 ~@2",
  AZ: "d5@2 ~ b4@4 ~@2 g4@2 ~ a4@2 ~ c5@2 ~ e5@2 ~ g5@2 ~", BA: "a5@4 ~@2 b5@2 ~ f5@4 ~@2 d5@2 ~ e5@4 ~@2",
  BB: "f5@2 ~ d5@4 ~@2 b4@2 ~ c5@4 ~@2 c5@4 ~@2", BC: "e5@6 ~@3 f5@2 ~ g5@6 ~@3 f5@2 ~", BD: "g5@4 ~@5 c5@2 ~",
  BE: "[e5@6 ~@3 f5@2 ~@2 g5@2 ~ f5@2 ~ g5@15 ~@11 c5@5 ~@2 e5@7 ~@4 f5@2 ~@2 g5@5]/3",
  BF: "[~@2 f5@2 ~@2 e5@2 ~ f5@22 ~@3 g5@2 ~@2 g5@7 ~@3]/2",
})).s("gm_piccolo").gain(0.27)

// other · harmonica · "Picolo"
const harmonica = note("<~@195 A B C ~ A B C ~ D E F G H@2 I@2 J K@5 L@2 ~@112>".pickRestart({
  A: "a6@6 ~@3 f#6@2 ~@7 e6@6", B: "~@3 b5@2 ~ c#6@4 ~@2 a5@4 ~@2 f#5@4 ~@2",
  C: "a5@6 ~@3 b5@2 ~ c#6@2 ~ f#5@2 ~ a5@4 ~@2", D: "a5@4 ~@2 b5@2 ~ c#6@2 ~@7 c#6@6",
  E: "~@3 f#5@4 ~@2 a5 ~ f#5 e5@2 ~ f#5@2 ~ a5@2 ~ a5 ~ f#5", F: "e5@2 ~ f#5@2 ~ a5@2 ~ a5@4 ~@2 f#5@2 ~ a5@6",
  G: "~ c#5@2 c#5@2 b4 a4 f#4", H: "[e4@12 c#5@3 e5@18 f#5@2 ~ b4 ~ c5 b4 ~ a4 f#4@2 ~ e4@2 ~]/2",
  I: "[a4 a4@2 a4!2 b4 f#4@10]/2", J: "a5 f#5",
  K: "[e5@2 ~ c#5@6 ~@3 a4@4 ~@2 b4@2 ~ c#5@11 ~@4 f#5@2 g5 ~ f#5 ~ e5 ~@2 [a#4,f#5]@15 ~@6 g#4@2 ~ [d4,f#4,a4]@11 ~@4 b4@4 ~@2 g#4@2 ~ a4@7 ~@2 e5@12 c#5@3 a4@3, ~@93 e4@19 ~@8]/5", // D#m D
  L: "[[e4,a4,c#5]@2 a4 f#4 a4 f#4 d4 [a3,d4,e4]@5 ~@4]/2", // A Asus4
})).s("gm_harmonica").gain(0.27)

// other · synth brass 1 · "Horns"
const synth_brass_1 = note(`<
  ~@7 A@6 B@2 ~ C@4 D@4 ~ E F@2 G@3 ~ H I@2 J K@2 ~ L M N O ~@120 P@2 Q@2 P@2 Q@2 ~@8 P@2 Q@2 P@2 Q@2 ~@144
>`.pickRestart({
  A: "[~@17 d5@53 f5@10 a5@11 f5@10 g5@37 ~ e5@2 c5@3]/6", B: "[g4@7 ~]/2", C: "[~@13 d5@53 f5@10 a5@11 f5@9]/4",
  D: "[~@2 g5@37 e5@2 c5@3 g4@42 ~@10]/4", E: "~@9 g#4@11 ~@4", F: "[~ c#5@11 ~@5 f5@14 ~@2 c#5@12 ~@3]/2",
  G: "[~ f#4@7 ~@3 c#4@7 ~@4 d#4@42 ~@8]/3", H: "~@11 g#4@11 ~@2", I: "[~@3 c#5@11 ~@5 f5@14 ~ c#5@12 ~@2]/2",
  J: "~@2 f#4@7 ~@4 c#4@7 ~@4", K: "[d#4@7 ~]/2", L: "~ d4", M: "~@5 c4@7", N: "~@7 d4@14 ~@3", O: "~@2 c4@7 ~@3",
  P: "a2@2 ~ a2@2 ~", Q: "[b2@4 ~@2 c#3@4 ~@2 d3@2 ~ d3@4 ~@2 e3@11 ~@16]/2",
})).s("gm_synth_brass_1").gain(0.27).pan(0.7)
// … 436 more lines

More by Emerson, Lake & Palmer