Strudelify

American Trilogy

Elvis Presley

KeyC majorTempo88 bpm
0:00/0:00
// American Trilogy — Elvis Presley
// 88 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: metre changes (4/4 at bar 1, 2/4 at bar 52, 4/4 at bar 53, 2/4 at bar 54, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 90 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(88/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 · piano
const piano = note(`<
  ~@21 A B C D E F G H@2 I@2 J K L@2 M N O P Q R S T U V W X Y ~@3 Z AA AB AC AD AE AF AG AH@7 AI AJ@3 AK AL@2 AM AN AO
  AP AQ AR AS AT AU AV AW AX AY AZ@2 ~
>`.pickRestart({
  A: "c4@3 ~ c4@3 ~ e4@3 ~ c4@15 ~ g3@3 ~, [c3,e3]@31 ~, g3@7 ~", // C
  B: "e3@7 ~ g3@3 ~ e3@9 ~@3 [e3,g3]@3 ~ [g3,a#3]@3 ~, [e2,c3]@29 ~@3", C: "[c3,f3,a3]@31 ~", D: "[c3,f#3,a3]@29 ~@3",
  E: "g3@24 [g3,c4,e4]@3 ~ [g3,c4]@3 ~, c3@31 ~", F: "~@4 a3@3 ~ c4@3 ~ a3@3 ~ e4@7 ~ e4@3 ~ f4@3 ~, a2@31 ~",
  G: "[d4,f4,g4]@31 ~", // G7
  H: "[~@24 [c4,e4]@2 [d4,f4]@2 [e4,g4]@2 [d4,f4]@2 [c4,e4]@21 ~@3 [c4,e4]@2 [d4,f4]@2 [e4,g4]@2 [d4,f4]@2, c3@51 ~@13]/2", // C Dm Em Dm C Dm Em Dm
  I: "[[g3,c4,e4]@15 ~@5 [c4,e4,g4]@7 ~ [c4,e4,g4]@11 ~ [c4,e4,a4]@3 ~ [c4,e4,g4]@7 ~ [c4,e4,g4]@3 ~ [c4,e4,a4]@3 ~ [c4,e4,g4]@3 ~]/2", // C Am C Am C
  J: "[g3,c4,e4]@7 ~ [c4,e4,a4]@3 ~ [c4,e4,g4]@7 ~ [c4,e4,g4]@7 ~ [c4,e4,a4]@3 ~", // C Am C Am
  K: "[c4,e4,g4]@15 ~ [c2,c3]@7 ~ [e2,e3]@7 ~", // C E
  L: "[~@20 [a4,a5]@3 ~ [b4,b5]@3 ~ [c5,c6]@11 ~ [c5,c6]@3 ~ [d5,d6]@11 ~ [a4,a5]@7 ~, [f2,f3]@31 ~@33]/2", // A B C D A F
  M: "[g4,g5]@7 ~ [a4,a5]@3 ~ [g4,g5]@7 ~ c4@3 ~ d4@5 ~@3", // G A G
  N: "[c4,e4]@7 ~ [e4,a4]@3 ~ [e4,g4]@7 ~ [e4,g4]@3 ~ [e4,g4]@3 ~ [e4,g4]@3 ~", // C A5 Em
  O: "[e4,g4]@3 ~ [e4,g4]@3 ~ [e4,g4]@3 ~ [e4,g4,a5]@3 ~ [e4,g4,g5]@7 ~ [e4,g4,g5]@3 ~ [e4,g5]@3 ~", // Em A7 Em
  P: "~@4 d5@3 ~ e5@3 ~ f5@3 ~ e5@7 ~ [e4,g#4,d5]@7 ~, [e4,g#4]@23 ~@9", // E7 E
  Q: "c5@7 ~ c5@3 ~ [c4,e4,a4]@19 ~, [e4,a4]@11 ~@21", R: "[c4,f4,a4]@15 ~ [c4,f4,a4]@7 ~ [c4,f4,a4]@7 ~",
  S: "[c4,f4,a4]@7 ~ [c4,f4,a4]@7 ~ [c4,f4,a4]@7 ~ [c4,f4,a4]@7 ~", // F
  T: "[d4,f4,a4]@7 ~ [d4,f4,a4]@7 ~ [d4,f4,b4]@7 ~ [d4,f4,b4]@7 ~", U: "[e4,a4,c5]@15 ~ [e4,a4,c5]@7 ~ [e4,a4,c5]@7 ~",
  V: "[c4,f4,a4]@7 ~ [c4,f4,a4]@7 ~ [c4,f4,a4]@7 ~ a4@2 c5@5 ~", W: "[d4,f4,a4,d5]@15 ~ [c4,f4,a4]@15 ~",
  X: "~@8 b4@3 ~ c5@3 ~ f#4@3 ~ g4@3 ~ d#4@3 ~ e4@3 ~, c4@31 ~, e4@7 ~, g4@5 ~@3", Y: "c4@31 ~",
  Z: "~@24 [c4,e4]@3 ~ [b3,d4]@3 ~", AA: "[a3,c4]@29 ~@3", AB: "[f3,a3,c4]@29 ~@3", AC: "[f3,a3,c4]@31 ~",
  AD: "[e3,g3,c4]@29 ~@3", AE: "[e3,a3,c4]@29 ~@3", AF: "[f3,a3,d4]@29 ~@3", AG: "c4@15 ~ b3@15 ~, [f3,g3]@31 ~",
  AH: "[[c3,e3,g3,c4]@27 ~@5 g4@26 ~@6 [f4,a4]@27 ~@5 [f#4,a4]@27 ~@6 g4@27 ~@4 [e4,a4]@27 ~@6 a4@11 ~@5 b4@11 ~@4, ~@30 g3@27 ~@6 [a3,c4]@27 ~@4 a3@27 ~@4 g3@27 ~@6 a3@27 ~@7 f4@11 ~@5 f4@11 ~@5, ~@31 [c4,e4]@27 ~@37 c4@27 ~@5 [c4,e4]@27 ~@5 c4@27 ~@5 c4@11 ~@5 d4@11 ~@6]/7", // C F F#m A5 Am C
  AI: "~@27 c2 c3 c2 c3 c2", AJ: "c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2!5 c3 c2!2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2",
  AK: "c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2!4 [c2,c3]@7 ~ [e2,e3]@7 ~", AL: "[[f2,f3]@57 ~@7]/2", AM: "[c2,c3]@31 ~",
  AN: "g2@7 ~ g2@7 ~ g2@7 ~ g2@7 ~", AO: "[c4,e4]@7 ~ [c4,e4]@7 ~ [c4,e4]@7 ~ [c4,e4]@7 ~",
  AP: "e4@7 ~ [d5,d6]@3 ~ [f5,f6]@3 ~ [e4,e5,e6]@7 ~ [e4,d5,d6]@7 ~, ~@8 e4@7 ~@17", // D F E E7
  AQ: "e4@7 ~ [e4,a4]@15 ~ [c4,e4,a4]@7 ~, [c5,c6]@21 ~@11", AR: "[c4,f4]@15 ~ [c4,f4]@7 ~ [c4,f4]@7 ~",
  AS: "[d4,f4]@15 ~ [d4,f4]@7 ~ [d4,f4]@7 ~", AT: "[d4,g4]@15 ~ [d4,g4]@15 ~",
  AU: "~@8 [e4,a4]@7 ~ [e4,a4]@7 ~ [e4,g4]@7 ~", AV: "f4@7 ~ [f4,a4]@7 ~ [f4,a4,c5]@7 ~ [f4,a4]@7 ~",
  AW: "[f4,a4]@13 ~@3 [f4,a4]@15 ~", AX: "~@8 [g4,b4]@7 ~ [g4,b4]@7 ~ [g4,b4]@7 ~",
  AY: "[e4,g4]@17 ~ d#4@4 e4@4 ~ f#4@2 ~ g4@2", AZ: "[a4@2 ~ b4@2 ~ [c5,c6]@29 ~@29]/2",
})).s("gm_piano").gain(0.4)

// chords · piano · soft notes
const piano_soft = note("<~@66 A@3 ~@21>".pickRestart({
  A: "[~@32 c2 c3 c2 c3 ~@2 c2 c3 c2 c3 c2 c3 c2!5 c3 c2!2 c3 c2 c3 c2 c3 c2 c3 ~@37, ~@31 e4@59 ~@6, ~@32 g4@59 ~@5, ~@33 c5@59 ~@4]/3",
})).s("gm_piano").gain(0.25)

// bass · acoustic bass
const bass = note(`<
  ~@5 A B C D E F G H A B I H J K C@2 L M N O P Q R S@2 T@3 U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO J@2
  K D AP I AQ AR AS AT AU AV I AW@2 ~@2 AX AY@2 AZ C Z AA BA AC BB BC BD BE BF BG BH BI ~@2
>`.pickRestart({
  A: "f2@15 ~", B: "f#2@15 ~", C: "g2@15 ~", D: "a2@15 ~", E: "~ g2", F: "~@8 g2@7 ~", G: "c3@7 ~ g2@7 ~",
  H: "c2@7 ~ e2@7 ~", I: "g2@7 ~ g2@7 ~", J: "f2@7 ~ f2@7 ~", K: "c2@15 ~", L: "c2@29 ~@3", M: "e2@29 ~@3",
  N: "f2@29 ~@3", O: "f#2@29 ~@3", P: "g2@29 ~@3", Q: "a1@29 ~@3", R: "~@16 g2@13 ~@3",
  S: "c2@13 ~@3 g2@5 ~@3 g2@5 ~@3", T: "c2@7 ~ g2@7 ~", U: "c2@6 ~@2 c2@3 ~ e2@3 ~", V: "f2@5 ~ f2 ~ f2@6 ~@2",
  W: "f2@10 ~@2 f2@2 ~@2 f2@6 ~@2 a2@3 ~ b2@3 ~", X: "c2@5 ~ c2 ~ c2@7 ~",
  Y: "c2@8 ~@4 c2@2 ~@2 g1@6 ~@2 a1@3 ~ b1@3 ~", Z: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
  AA: "b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~",
  AB: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~",
  AC: "f1@3 ~ f1@3 ~ f1@3 ~ f1@3 ~ f1@3 ~ f1@3 ~ a1@3 ~ c2@3 ~",
  AD: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@2 e2@2 f2@3 ~",
  AE: "g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~",
  AF: "a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ g2@3 ~ g2@3 ~",
  AG: "f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~ e2@6 ~@2", AH: "d2@10 ~@2 d2@3 ~ g2@6 ~@2 g2@6 ~@2",
  AI: "c2@10 ~@2 c2@3 ~", AJ: "c2@3 ~ c2@3 ~ c2@6 ~@2", AK: "c2@10 ~@2 c2@3 ~ c2@12 ~@4", AL: "c2@6 f2@2 g2@7 ~",
  AM: "g2@3 ~ g2@4", AN: "~@8 c2@14 ~@2 c3@3 ~ b2@3 ~", AO: "a2@11 ~ g2@3 ~", AP: "d2@22 ~@2 e2@3 ~ d2@3 ~",
  AQ: "c2@24 ~@4 c2@3 ~", AR: "e2@22 ~@2 a2@3 ~ g2@3 ~", AS: "f2@26 ~@2 f2@3 ~", AT: "f#2@26 ~@2 f#2@3 ~",
  AU: "g2@12 ~@2 f2 g2", AV: "a2@26 ~@2 e2@3 ~", AW: "[c2@31 ~]/2", AX: "~@8 c2@3 ~ e2@3 ~", AY: "[f2@27 ~ d2@3 ~]/2",
  AZ: "c2@31 ~", BA: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ g1@3 ~",
  BB: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ f2@3 ~", BC: "g2@14 ~@2 g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~",
  BD: "a2@3 ~ a2@3 ~ a2@3 ~ a2@2 a2@2 g2@2 a2@2 a2@3 ~ a2@6 ~@2",
  BE: "f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~ e2@3 ~",
  BF: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ c2@3 ~ b1@3 ~ a1@3 ~",
  BG: "g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~", BH: "c2@4 c2@4 c2@4 ~ c2@4 ~ c2@4 c2@4 ~ c2@2 ~ a1@2",
  BI: "f1@2 ~ a1@2 ~ c2@26",
})).s("gm_acoustic_bass").gain(0.4)

// other · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A B@2 C D E@2 F G@2 H@2 I J K L M N O P Q R S T U V W X Y@2 Z AA AB AC AD@2 AE AF AB AG AH AD AI AJ AK AL AM ~ AN AO
  AP AQ AR AS AT AU AV AW AX AY AZ BA ~@28
>`.pickRestart({
  A: "~@4 e4@4 ~@2 e4 d4@2 c4@10 ~ [c4,e4]@8, ~@2 g3@7 d4@2 ~@21, ~@3 c4@9 ~@11 g3@9", // C
  B: "[~@2 g3@4 ~@2 d4@4 ~ e4@4 ~@2 f4@5 ~@3 g4@36 ~, ~@25 g3@37 ~@2, ~@26 [c4,e4]@37 ~]/2", // C
  C: "~@6 g4 e4, c3@15 ~ c3@15 ~, ~@6 g3@11 ~@6 g3@9, ~@7 c4@11 ~@6 c4@8, ~@8 e4@11 ~@13",
  D: "~@2 [c4,e4]@2 ~@2 g4 e4, e3@13 ~@3 e3@15 ~, ~@7 g3@9 ~@7 g3@9, ~@3 c4", // C
  E: "[~@9 a4@20 ~@27 a3@5 ~@2 g3, f3@27 ~@5 [f#3,f#4,a4]@29 ~@3, ~@6 a3@21 ~@37, ~@7 c4@21 ~@3 c4@23 ~@10, ~@8 f4@21 ~@35]/2", // F#m
  F: "~ g4@29 ~@2, [g3,c4,d4]@29 ~@3", // Gsus4
  G: "[a3@4 c4@4 e4@4 c4@4 a4@4 e4@4 c4@4 e4@3 ~@2 [b3,d4]@22 ~ f4@4 b3@4, ~@31 g3@23 ~@10]/2", // Bm
  H: "[~@12 e4@51 ~, e3@63 ~, ~@4 g3@59 ~, ~@8 c4@55 ~]/2", I: "[g3,c4,e4]@15 ~ [g3,a#3,e4]@15 ~",
  J: "[f3,a3,c4]@13 ~@19", K: "[f#3,a3,c4]@17 ~@15", L: "[a3,c4]@15 ~ [g3,b3]@11 ~@5", M: "g3@15 ~ g3@15 ~",
  N: "g3@13 ~@3 g3@11 ~@5", O: "g3@13 ~@3 g3@13 ~@3", P: "g3@31 ~", Q: "c4@29 ~@3",
  R: "~@2 g3@2 c4@2 g3@2 c4 ~ c4@2 g3@2 c4@2, e3@15 ~ e4@7 ~@9", S: "~ g3 c4 g3 g4 e4 c4 g3, e3@15 ~@17",
  T: "f3 a3 c4 a3 f4 c4 a3 f3", U: "f#3 a3 c4 a3 c3 f#3 a3 c4", V: "e3 g3 c4 g3 e4 c4 g3 e3",
  W: "a3 e3 a3 c4 e4 c4 a3 c4", X: "d3 f3 a3 c4 d4 a3 f3 a3",
  Y: "g3@2 e3@2 g3@2 c4@2 e4@2 g3@2 [c4,e4] [d4,f4] [e4,g4] [d4,f4]", // C Dm Em Dm
  Z: "~@14 c4@5 ~ g3@4 ~@4 e4@4, e3@31 ~, ~@4 g3@9 ~@19, ~@6 c4@4 ~@14 c4@7 ~, ~@8 e4@19 ~@5",
  AA: "~@12 g3@7 ~ c4@4 g3@4 c4@4, g3@8 e4@15 ~@9, ~@4 c4@7 ~@21", AB: "c3 e3 g3 e3 e4 c4 g3 c4",
  AC: "c3@4 e3@4 g3@4 e3@4 c3@7 ~ e3@7 ~", AD: "f3 a3 c4 a3 f4 c4 a3 c4", AE: "e3 g3 c4 g3 e4 g3 c4 e3",
  AF: "c3 e3 g3 e3 c4 g3 e3 g3", AG: "e3 g#3 b3 g#3 d4 e4 d4 b3", AH: "a3 c4 e4 e3 a3 c4 e4 c4",
  AI: "d4 c4 a3 f3 d3 f3 a3 d4", AJ: "g3 b3 d4 d3 g3 f3 b3 d4, ~@10 g3 ~@5", AK: "c4 a3 e3 a3 c4 a3 c4 e4",
  AL: "f4@2 c4@2 a3@2 f3@2 c3@2 f3@2 a3@2 c4 ~", AM: "[f3,a3,d4]@15 ~@17", AN: "~@12 [c4,e4] [d4,f4] [e4,g4] [d4,f4]",
  AO: "[c4,e4]@27 ~@5", AP: "c3 e3 g3 c4 ~ d3 f3 g3", AQ: "d4 c4 a#3 g3 d3 f3 g3 d4",
  AR: "c4@4 c3@4 e3@4 g3@4 c4@7 ~ g3@7 ~", AS: "~@4 a3@4 c3@4 e3@4 a3@11 ~@5", AT: "~ c3 f3 a3 c4 a3 f3 a3",
  AU: "~@16 a3@7 ~ c4@5 ~@3, c3@27 ~@5, ~@8 f3@19 ~@5", AV: "~@8 g3@11 ~ c4@4 g3@4 e3@4, c3@19 ~@13, ~@4 e3@15 ~@13",
  AW: "a3@4 e3@4 c3@11 ~ e3@4 a3@7 ~", AX: "~@8 a3@7 ~ d4@7 ~ c4@7 ~, d3@31 ~, ~@4 f3@11 ~@17",
  AY: "~@4 c4@4 d4@4 c4@4 ~@8 f3@5 ~@3, g3@23 ~@9, ~@16 b3@13 ~@3",
  AZ: "~@4 e3@4 g3@4 e3@4 c4@7 ~@5 e3@4, c3@27 ~@5, ~@24 g3@7 ~", BA: "c3@27 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.35).pan(0.1)

// other · electric guitar muted
const electric_guitar_muted = note("<~@3 A B C D E F E G H I J K L M N O P Q ~@30 R S T J U ~@34>".pickRestart({
  A: "c3", B: "e3", C: "f3", D: "f#3", E: "g3", F: "a3", G: "~@4 e3 f3 g3 f3", H: "~ c4@3, e3, ~ g3@7", I: "e3@13 ~@3",
  J: "f3 g3 a3 b3 c4@2 a3@2", K: "f#3 c4 a3@2", L: "a3 c4 d4 c4 b3@2 g3 e3", M: "c3!2 e3!2", N: "f3@2 f3@2 f3@3 f3",
  O: "e3!4", P: "~ f4 ~ d4, g3 d3, ~ d4@3 ~ a3@3", Q: "~@4 d4@4 d3@7 ~, d3 ~, ~ g3@3 ~@4", R: "a4 a#4",
  S: "~@2 c4@4 c4!2", T: "a3@3 ~ a3@2 b3@2 c4@4 c4@4", U: "a3@3 ~",
})).s("gm_electric_guitar_muted").gain(0.4).pan(0.9)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@25 A B C D@2 E@4 F@2 G@2 H I J K ~ L M N O P Q ~@3 R S T@2 U S V W U ~@6 X@7 Y Z H AA AB AC AD AE AF@2 AG AH AI@4
>`.pickRestart({
  A: "~@24 g4@7 ~", B: "a4@15 ~ c5@15 ~, a2@31 ~", C: "[d2,f4]@15 ~ [g2,a4]@15 ~",
  D: "[g4@39 ~ a4@7 ~ b4@4 c5@4 d5@4 e5@4, c2@61 ~@3]/2",
  E: "[g5@15 ~ e5@15 ~ d5@15 ~ c5@15 ~ g4@47 ~ [c2,e4]@7 ~ [e2,g4]@7 ~, c2@109 ~@19]/4", F: "[[f2,a4]@63 ~]/2",
  G: "[~@40 c5@11 ~ g4@2 ~@2 c4@7 ~, c3@63 ~]/2", H: "g5@31 ~", I: "g#5@23 ~ b5@7 ~", J: "c6@15 ~ c6@7 ~ e6@7 ~",
  K: "f6 c6 a5 f5 a5 f5 c5 a4", L: "~@24 b5@7 ~", M: "c6@23 ~ a5@7 ~", N: "f5@7 ~ g5@7 ~ a5@7 ~ b5@7 ~", O: "f6",
  P: "~@2 b5 c6 f#5 g5 d#5 e5", Q: "c5@31 ~", R: "~@8 c3@13 ~@3 c3@3 ~ b2@3 ~", S: "a2@31 ~", T: "f2@31 ~",
  U: "c2@31 ~", V: "d2@31 ~", W: "g2@31 ~",
  X: "[c2@143 ~@2 f3 g3 [a3,a#3] c4 [d4,e4] f4 [g4,a4] a#4 [c5,d5] e5 [f5,g5] a5 [a#5,c6] d6 f6@64 ~, ~@159 e6 ~@64]/7", // A#maj7 Dsus2 Gsus2 Csus2 Fsus2 A#sus2
  Y: "~@8 e6@3 ~ c6@3 ~ g5@3 ~ e5@3 ~ c5@3 ~ a#4 a4 [f4,g4] [d4,e4]", Z: "c4@15 ~", AA: "g#5@31 ~", AB: "a5@31 ~",
  AC: "c6@31 ~", AD: "d6@31 ~", AE: "g5@15 ~ a5@7 ~ b5@7 ~", AF: "[c6@63 ~]/2", AG: "d6@15 ~ d6@15 ~",
  AH: "f6@15 ~ e6@15 ~", AI: "[c6@97 ~@31]/4",
})).s("gm_string_ensemble_1").gain(0.45)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@26 A B C@2 D E F@2 G@2 H@2 I J K L M N O L P Q@2 ~@7 R@3 S T ~@11 U@2 V@2 W X W Y Z AA AB AC Z AA AD@4
>`.pickRestart({
  A: "~@16 a4@15 ~", B: "c4@15 ~ [c4,f4]@15 ~", C: "[[c4,e4]@63 ~]/2", D: "e5@15 ~ c5@15 ~", E: "g4@15 ~ g4@15 ~",
  F: "[e4@47 ~@17]/2", G: "[[c4,f4]@63 ~]/2", H: "[[c4,g4]@63 ~, e4@59 ~@5]/2", I: "[c4,e4,g4]@31 ~",
  J: "[b3,e4,g#4]@31 ~", K: "[e4,a4,c5]@31 ~", L: "[c4,f4,a4]@31 ~", M: "[d4,f4,a4]@31 ~",
  N: "[e4,g4,b4]@15 ~ [d4,g4,b4]@15 ~", O: "[e4,a4,c5]@15 ~ [e4,a4,c5]@15 ~", P: "[f4,a4,d5]@31 ~",
  Q: "[[c4,e4,g4]@63 ~]/2", R: "[[c4,e4,g4]@71 ~ [c4,d4,f4]@23 ~]/3", S: "[f3,b3,d4]@31 ~", T: "[c3,e3,g3,c4]@31 ~",
  U: "[[a3,c4]@63 ~]/2", V: "[[g3,c4]@63 ~]/2", W: "[c4,e4]@31 ~", X: "[b3,e4]@31 ~", Y: "[c4,f4]@31 ~",
  Z: "[d4,f4]@31 ~", AA: "[d4,g4]@31 ~", AB: "[e4,a4]@31 ~", AC: "[f4,a4]@31 ~", AD: "[[c4,e4]@37 ~ [c4,e4]@59 ~@31]/4",
})).s("gm_string_ensemble_2").gain(0.4)

// other · piccolo
const piccolo = note("<~@28 A@2 B C D@2 ~@22 E@2 ~@2 F G@2 H I@2 J K@4 ~@19>".pickRestart({
  A: "[c6@63 ~]/2", B: "e6@31 ~", C: "d6@15 ~ c6@15 ~", D: "[g5@47 ~@17]/2", E: "[e5@4 f5@4 g5@55 ~]/2",
  F: "c5@20 d5@7 e5@2 f5@2 ~", G: "[g5@6 g#5 a5@4 ~ g5@8 d#5@2 d5@3 c5@12 ~@7 c5 ~ c5@2 a5@2 b5 a5 g#5@6 a5@3 b5@3]/2",
  H: "c6@12 b5@2 c6@2 b5@3 ~ a5@5 ~@2 c6@2 d6@3",
  I: "[~ e6@18 c6@6 ~ a5 g5@8 ~ c6@18 ~@2 e5@4 g5@2 a5@2, d#6@2 ~@23 b5@2 ~@37]/2",
  J: "g5@19 ~@2 a5@7 g5@4, ~@10 g#5 ~@5", K: "[~ d#5@3 d5@4 c5@96 ~@24]/4",
})).s("gm_piccolo").gain(0.4)

// other · french horn
const french_horn = note("<~@22 A B@2 ~@32 C@2 D E ~@11 F G H I ~@4 J I K L M N O P@3>".pickRestart({
  A: "~@24 g4@7 ~", B: "a4@31 ~", C: "[c4@3 ~ d4@3 ~ e4@3 ~ f4@3 ~ g4@23 ~ f4@19 ~ e4@3 ~]/2", D: "d4@31 ~",
  E: "c4@21 ~@11", F: "f4@27 ~ g4@3 ~", G: "a4@11 ~ g4@3 ~ a4@7 ~ f4@7 ~", H: "e4@31 ~", I: "g4@31 ~",
  J: "~@16 e4@7 ~ f4@7 ~", K: "~@8 a4@15 ~ g4@7 ~", L: "f4@31 ~", M: "d4@29 ~@3", N: "f4@15 ~ b4@15 ~",
  O: "~@18 g4@4 g4@4 ~ g4@4 ~", P: "[g4@5 ~ g4@59 ~@31]/3",
})).s("gm_french_horn").gain(0.45)

// chords · trumpet
const trumpet = note(`<
  ~@22 A B C D E F G@2 ~@3 H I@2 J@2 K L M N O D P Q F G@2 ~@18 R@5 S@2 T U V W X Y Z AA AB AC AD AE AF AG@3
>`.pickRestart({
  A: "~@24 e2@7 ~", B: "f2@31 ~", C: "f#2@31 ~", D: "g2@31 ~", E: "a2@31 ~", F: "d2@15 ~ g2@15 ~", G: "[c2@63 ~]/2",
  H: "~@16 [c2,c3]@7 ~ [e2,e3]@7 ~", I: "[[f2,f3]@61 ~@3]/2", J: "[[c2,c3]@53 ~@11]/2", K: "[c3,g5]@31 ~",
  L: "[b2,g#5]@31 ~", M: "a2@15 ~ g2@15 ~, a5@31 ~", N: "[f2,f5]@29 ~@3", O: "d3@31 ~",
  P: "a2@13 ~@3 a2@6 ~@2 g2@6 ~@2", Q: "f2@23 ~ e2@7 ~", R: "[c2@143 ~ c2@7 ~ e2@7 ~]/5",
  S: "[~@16 [a4,a5]@11 ~ [b4,b5]@3 ~ [c5,c6]@11 ~ [b4,b5]@3 ~ [c5,c6]@7 ~ [a4,a5]@5 ~@3, f2@63 ~]/2", // A B C B C A
  T: "[c2,g4,g5]@31 ~", U: "[g2,e4,e5]@31 ~", V: "c3@31 ~, g5@25 ~@7", W: "b2@31 ~, g#5@23 ~@9",
  X: "[a2,a5]@27 ~ g2@3 ~", Y: "[f2,c6]@27 ~@5", Z: "[d3,d6]@29 ~@3", AA: "~@8 g5@23 ~, g2@29 ~@3",
  AB: "~@8 [c5,e5]@7 ~@9 [g2,c5,e5]@7 ~, a2@23 ~@9", AC: "~@8 [c5,e5]@5 ~@11 [c5,f5]@4 e2@3 ~, f2@27 ~@5",
  AD: "~@8 [d5,f5]@5 ~@3 d2@3 ~ c2@3 ~ [d5,f5]@4 a1@3 ~, d2@15 ~@9 b1@3 ~@5", // Dm
  AE: "~@8 [d5,f5]@5 ~@11 [b4,e5]@5 ~@3, g1@15 ~ g2@15 ~", // Dm E5
  AF: "[c5,e5]@12 ~@6 d#5@4 e5@4 ~ f#5@3 a2@2, c3@24 ~@3 c3@2 ~@3", AG: "[g2@2 ~ a2@2 ~ [c2,c6]@60 ~@30, g5@5 ~@91]/3",
})).s("gm_trumpet").gain(0.66)

// chords · trombone
const trombone = note(`<
  ~@22 A B C ~@13 D E F G@2 H I B J K@2 ~@18 L@5 M@2 N@2 O P Q R@2 S T R@2 U V W@2 ~
>`.pickRestart({
  A: "~@24 e3@7 ~", B: "[f3,a3,c4]@31 ~", C: "[f#3,a3,c4]@31 ~", D: "[c4,e4,g4]@31 ~", E: "[b3,e4,g#4]@31 ~",
  F: "[a3,c4,e4]@31 ~", G: "[a3,c4,f4]@31 ~", H: "[g3,b3,d4]@31 ~", I: "[e3,a3,c4]@31 ~",
  J: "[a2,d3,f3]@15 ~ [d3,f3,g3]@15 ~", K: "[[c3,e3,g3]@63 ~]/2",
  L: "[[c3,e3,g3,c4]@143 ~ [c3,c4]@5 ~@3 [e3,e4]@5 ~@3]/5", M: "[[f3,a3,c4]@61 ~@3]/2", N: "[[e3,g3,c4]@63 ~]/2",
  O: "[g3,c4]@29 ~@3", P: "[g#3,b3]@29 ~@3", Q: "[a3,c4]@31 ~", R: "[f3,a3]@29 ~@3", S: "[g3,b3]@29 ~@3",
  T: "[a3,c4]@29 ~@3", U: "[g3,b3]@15 ~ [g3,b3]@13 ~@3", V: "[e3,g3]@15 ~@3 d#3@4 e3@4 ~ g#3@4 ~",
// … 80 more lines

More by Elvis Presley