Strudelify

Red Sector A

Rush

KeyA minorTempo116 bpm
0:00/0:00
// Red Sector A — Rush
// 116 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 145 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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 · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A B C D E F G H I J K L M N O@2 P@2 Q@2 R@2 S@2 Q@2 R@2 T@2 U ~ V ~ W ~ X ~ Y@4 ~ Z ~@9 V ~ W ~ X ~ Y@4 ~ Z ~@7 AA
  AB@4 AC@2 AB@4 AD@2 AE@2 AF@2 AG@2 AH AI AH AJ@3 AK@2 AL AM@2 AN AO@2 AP@2 AQ@3 AR@3 AS AT@8 AU AB@4 AC@2 AB@4 AV@2
  AW@2 AX@2 AY@6
>`.pickRestart({
  A: "[a3,c4,g4,c5,g5]@5 ~ [a3,c4,e4,c5,e5]@2 ~@2 [a3,d4,a4,d5]@2 ~@2 [a3,c4,e4,c5,e5]@2", B: "[a3,c4,g4,a4,c5,g5]@3 ~",
  C: "[c4,e4,c5,e5]!2 ~ [a3,d4,a4,d5] ~ [a3,c4,e4,c5,e5] ~ [a3,d4,a4,d5], a3 ~@3", // C D5 Am D5
  D: "[c4,e4,c5,e5]@2 [c4,e4,c5,e5]@2 ~@2 [a3,d4,a4,d5]@9 ~, a3 ~@3", // C D5
  E: "[c4,f4]!2 ~ [c4,e4] ~ [a3,d4] ~ [a3,c4,e4], a3 ~@3", F: "[c4,f4]!2 ~ [a3,c4,g4]@4 ~, a3 ~@3",
  G: "[a3,c4,f4]@2 ~ [a3,c4,g4] ~ [c4,f4] ~ a3", H: "[c4,f4]!2 ~ [d3,a3,c4]@5, a3 ~@3", I: "f3@13 ~@3",
  J: "[a3,c4,e4]@7 ~", K: "[c4,g4]@5 ~ [c4,e4]@2 ~@2 [a3,d4]@2 ~@2 [a3,c4,e4]@2, a3@9 ~@7", L: "[a3,c4,g4]@15 ~",
  M: "[a3,c4,e4,a4]@2 ~ [a3,d4,e4]@3 ~@2", N: "[f3,a3,c4]@5 ~ [a3,c4,g4]@6 ~@4, e4@3 ~@13",
  O: "[[a3,c4,g4]@2 ~ [a3,d4,e4] ~@2 [a3,d4]@9 ~]/2", P: "[[a3,c4,g4]@4 ~@2 [a3,d4,e4]@3 ~@3 [a3,d4,e4]@19 ~]/2",
  Q: "[[a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@18 ~@2]/2", // Asus4 Am
  R: "[[a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,f4]@6 ~@2 [c4,e4,a4]@8 [c4,e4,a4]@2 ~@2]/2", // Asus4 Am F5 Am
  S: "[[a3,d4,e4]@4 ~@2 [a3,c4,e4,a4]@3 ~@3 [c4,e4,a4]@18 ~@2]/2", // Asus4 Am
  T: "[[a3,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@19 ~, d4 ~@15]/2", U: "[a3,c4,e4,a4]",
  V: "~ a4 [c4,e4,a4] [e4,a4] [c4,e4,a4] ~@11, [c4,e4,a4] ~@7", // Am A5 Am
  W: "[c4,e4,a4] [c4,a4] [c4,e4,a4] [e4,a4] [c4,e4,a4] ~@11", // Am F Am A5 Am
  X: "[c4,e4,a4] [e4,a4] [c4,e4,a4] [e4,a4] [c4,e4,a4] ~@11", // Am A5 Am A5 Am
  Y: "[~ a4 [c4,e4,a4] [e4,a4] [c4,e4,a4] ~@10 b3 [b3,d4,g4]@31 ~ g4@16, [c4,e4,a4]@2 ~@13 [g2,d3,g3]@32 [g2,d3,g3,b3,d4]@17]/4", // Am A5 Am G Am G5 G
  Z: "~ a4 [c4,e4,a4] [e4,a4] [c4,e4,a4]@2 ~@10, [c4,e4,a4] ~@7", AA: "~@4 [a3,d4,e4]@2 ~ [a3,c4,e4]",
  AB: "[~@2 [c4,e4,a4]@9 ~ [a3,d4,e4]@2 ~ [a3,c4,e4]]/2", // Am Asus4 Am
  AC: "[~@2 [c4,f4]@3 ~ [c4,e4,a4]@4 [c4,e4,a4] ~ [a3,d4,e4]@2 ~ [a3,c4,e4,a4]]/2", // F5 Am Asus4 Am
  AD: "[~@2 [c4,f4]@3 ~ [c4,e4,a4]@4 [c4,e4,a4] ~ [a3,e4]@2 ~ [a3,c4,e4], ~@12 d4 ~@3]/2", // F5 Am A5 Am
  AE: "[~@4 [c4,e4,a4]@19 ~ [a3,e5]@8]/2", AF: "[b4@13 c5 [c#5,d5] ~ d5@4 [a3,g5]@4 [a3,e5]@8, e3@21 ~@11]/2",
  AG: "[b4@8 f#5 d5 a3@2 c#5@2 d5@2, e3@10 e5 ~@5]/2", AH: "g5 f#5", AI: "d5@2 c#5 d5",
  AJ: "[d5@4 f#5@4 ~@4 b4@2 ~@2 c5@2 ~@2 d5@2 ~@2 c5@2 c5!2 c5@2 b4@2 a4@4 b4@3 ~@3 c5@2 ~@2 e4@2, ~@4 [g2,d3]@16 ~ e4@2 ~, ~@11 c5]/3", // G5
  AK: "[[e4,c5]@4 c5@4 d5@2 e5@2 d5@2 c5@2 d5@4 c5@3 ~ [c4,e4]@2 [d4,f#4]@2 [c4,e4]@2 [e4,g4]@2, ~@4 e4@19 ~@9]/2", // C D C Em
  AL: "~ [e4,g4] ~ [d4,f#4] ~ [c4,e4] ~ [e4,g4]", // Em D C Em
  AM: "[[d4,f#4]@4 [c4,e4]@2 ~@2 [d4,g4,b4]@2 [d4,g4,c5]@2 [d4,g4,b4]@2 [d4,g4,d5]@4 [d4,g4]@3 ~ [c4,f4]@2 ~@2 [c4,f4]@2 ~@2 [c4,f4,c5]@2, ~@9 d5@5 ~@2]/2", // D C G Csus2 G G5 F5
  AN: "[d4,g4,b4]@4 [d4,g4,b4]@3 ~ e3@2 ~@2 c4@2 e4@2, ~@5 a3@2 ~", // G
  AO: "[e4 ~ b4 ~ c5@8 c4 ~ a3 c4, ~@2 g4@4 ~ [f4,a4]@17 ~@2 e3@4 ~@2]/2", // F
  AP: "[b4@4 g4@3 ~@7 c5@4 b4@5 ~@5 c4@2 e4 ~, ~@7 [a3,c4]@16 ~@3 a3@5 ~, ~@8 f4@15 ~@9]/2", // Am
  AQ: "[[d4,g4]@4 [d4,g4]@2 g4 ~ [c4,g4]@4 c4@3 ~ d4@3 ~ [c4,e4]@4 b3@6 [d3,g3]!2 [d3,g3]@8 ~@2 [a3,e4,a4] [e4,a4]!5, b3@7 ~ a3@8 a3@7 ~@7 g2@10 ~@8, ~@12 e4@7 ~@5 [d4,g4]@16 ~@8, ~@31 b3@9 ~@4 a3@4]/3", // G5 C5 C G5 A5 G5
  AR: "[[a3,e4,a4]@8 ~@4 e4 ~ e4@2 ~ [c4,e4] ~@2 [e3,a3]@4 ~@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]!2 ~@2 e3@4 ~@4 [e3,a3,c4,e4]@4, ~@4 a2@5 ~@3 a2@5 ~ [a3,c4]@3 ~@3, ~@6 [a3,c4]@2 [e3,a3,c4,e4] ~ [c4,e4]@4 ~@4 e4@4 ~@2, ~@5 a2]/3", // A5 C A5 Am C
  AS: "[e3,a3,c4,e4] [a3,c4,e4] ~@2 [e3,a3,c4]@4 ~@4 [e3,a3,c4,e4]@4, ~ e4@2 ~, ~ a2", // Am
  AT: "[[a3,c4,e4]!2 ~@2 [a2,e3,a3,c4,e4]@3 ~@3 a2@4 ~@6 e3@2 d3@2 [b2,e3]@4 ~@4 e3@3 ~ d3@2 e2@2 ~@8 b3@2 ~@2 a3@2 e2@2 ~@8 b3@2 ~@2 a3@2 ~@6 [c4,e4]@4 c4@4 d4@2 c4@2 [e2,b2,e3]@4 [e3,g3]@4 e3@3 ~@3 e2@2 ~@8 b3@2 ~@2 a3@2 e2@2 [c4,f4]@4 [c4,f4]@2 ~@2, ~@14 a2@9 ~ e2@6 e2@7 ~@3 f2@14 ~@2 f2@15 ~@21 [e2,b2]@10 ~@2 f2@13 ~@3 f2@8, ~@14 e3@6 ~@8 e3@4 ~@10 c3@12 ~@4 c3@13 ~ [a2,e3]@16 ~@12 d3@4 ~@2 c3@11 ~@11, ~@16 [a3,c4,e4,a4]@6 ~@6 [g3,b3,e4]@11 ~@5 f3@10 ~@6 f3@11 ~@9 e4@8 ~@4 e4@18 a3@4 b3@5 ~@9, ~@46 a3@4 b3@4 ~@8 a3@4 b3@4 ~@6 a3@12 ~@4 b3@16 f3@9 ~@11]/8", // Am E5 C E5 Em F5 E5 A5 …
  AU: "[d4,g4]@2 [d4,g4] ~ [a3,d4,e4]@2 ~ [a3,c4,e4]", // G5 Asus4 Am
  AV: "[~@2 [c4,f4]@3 ~ [c4,e4,a4]@4 [c4,e4,a4] ~ [c4,g4]!2 ~ [a3,c4,e4], ~@6 [a3,a4] ~]/2", // F5 Am C5 Am A
  AW: "[~@2 [a3,d4]@2 ~@2 [c4,e4]@2 [c4,g4,a4]@13 ~@3 [a3,c4,e4]@2 [c4,e4]@2 c4@2 [a3,d4]@2, ~@6 a3@15 ~@5 a3@4 ~@2, ~@7 e4]/2", // D5 C Am7 Am C D5
  AX: "[~@2 [c4,e4]@2 ~@2 d4@2 [c4,e4]@2 [c4,e4]@2 [a3,c4]@2 [a3,d4]@5 ~@5 [c4,f4]@2 [c4,f4]@2 ~@2 [a3,c4,e4]@2, ~@6 a3@6 e4@7 ~@5 a3@4 ~@4, ~@4 a4@3 ~@9]/2", // C Am D5 F5 Am
  AY: "[~@2 [a3,d4]@2 ~@2 [c4,e4]@2 [c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,g4]@8 ~@2 [c4,f4]@13 ~@3 [c4,e4,a4]@13 ~@3 [c4,d4,g4]@28 ~@12, ~@6 a3@4 ~@13 a3@13 ~@3 a3@13 ~@3 [d3,f3]@29 ~@12]/6", // D5 C F5 F Am7 F5 Am Csus2 …
})).s("gm_overdriven_guitar").gain(0.32).pan(0.7)

// bass · electric bass pick · "PICK BASS"
const bass = note(`<
  A@8 B C A@2 B C A@6 B C A@4 B C A@2 C@9 D@3 C@2 E F B@2 G H B I C@8 D@3 C@2 J K L@2 M N O P A@3 Q R S A@3 T R S A U
  V@7 W X Y Z AA AB AC AD AE AF R AF R AF AG D AH C@3 AI@5 AJ AK O A@4 Q R S A@3 T R S A@5 T R AL@3
>`.pickRestart({
  A: "d2!16", B: "f1!16", C: "a1!16", D: "g1!16", E: "a1@2 a1 a1@2 a1 a1@2 a1@2 a1 a1@3 a1@2",
  F: "e1@2 e1 e1@2 e1 e1@2 e1@2 e1@4 e1@2", G: "a1@2 a1 a1@2 a1 a1@2 a1@2 a1 a1@3 a1 ~",
  H: "e1@2 e1 e1@2 e1 e1@2 e1@2 e1@2 e1@2 e1@2", I: "f1!4 f1@2 f1!10", J: "a1@2 a1@2 a1@2 a1 a1@3 a1@2 a1@2 a1@2",
  K: "e1@2 e1@2 e1@2 e1 e1@3 e1@2 e1@2 e1@2", L: "f1@2 f1@2 f1@2 f1 f1@3 f1@2 f1@2 f1@2",
  M: "a1@2 a1 a1@3 a1@2 a1@2 a1 a1@3 a1@2", N: "e1@2 e1 e1@3 e1@2 e1@2 e1 e1@3 e1@2", O: "f1!8",
  P: "f1@2 f1@2 f1@2 f1@2 d2!8", Q: "d2!8 f1!6 f1@2", R: "f1!8 a1!8", S: "a1!8 d2!8", T: "d2!8 f1!8",
  U: "d2!7 ~ a1!4 [a1,a2] a1 [a1,a2] a1, ~@7 d2@2 ~@7", V: "a1!4 [a1,a2] a1 [a1,a2] a1!5 [a1,a2] a1 [a1,a2] a1",
  W: "a1!4 [a1,a2] a1 [a1,a2] a1 g1!4 [g1,g2] g1!3, ~@7 g2", X: "g1!4 [g1,g2] g1!7 [g1,g2] g1 [g1,g2] g1, ~@3 g2 ~@4",
  Y: "g1!4 [g1,g2] g1 [g1,g2] g1 a1!4 [a1,a2] a1 [a1,a2] a1", Z: "a1!4 [a1,a2] a1 [a1,a2] a1!5 [a1,a2] a1!3, ~@7 a2",
  AA: "a1!4 [a1,a2] a1!3 d2!4 [d2,a2] d2 [d2,a2] d2, ~@3 a2 ~@4", // A D5
  AB: "d2!4 [d2,a2] d2 [d2,a2] d2!5 [d2,a2] d2 [d2,a2] d2", AC: "d2!4 [d2,a2] d2 [d2,a2] d2 g1!4 [g1,g2] g1 [g1,g2] g1",
  AD: "g1!4 [g1,g2] g1 [g1,g2] g1!5 [g1,g2] g1 [g1,g2] g1", AE: "g1!4 [g1,g2] g1 [g1,g2] g1 a1!8, g2@3 ~@13",
  AF: "g1!8 f1!8", AG: "f1!8 g1!8", AH: "g1!8 a1!8",
  AI: "[a1!8 a1@2 a1@2 a1@2 a1 a1@3 a1@2 a1@2 a1@2 e1@2 e1@2 e1@2 e1 e1@3 e1@2 e1@2 e1@2 f1@2 f1@2 f1@2 f1 f1@3 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1 f1@3 f1@2 f1@2 f1@2 a1@2 a1 a1@3 a1@2]/5",
  AJ: "a1@2 a1 a1@3 a1@2 e1@2 e1 e1@3 e1@2", AK: "e1@2 e1 e1@3 e1@2 f1@2 f1@2 f1@2 f1@2", AL: "[a1!8 d2@29 ~@11]/3",
})).s("gm_electric_bass_pick").gain(0.38)

// chords · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note(`<
  ~@31 A ~ A ~ A ~ A ~@4 A ~ B C D@2 B C E@2 A ~ A ~ A ~ A ~@4 A ~ B C D@2 B C E@2 ~@6 F G ~@29 H I J K L@8 ~@7 F G ~@14
>`.pickRestart({
  A: "[a3,c4,e4]@2 ~ [a3,b3,d4]@2 ~ [a3,d4,f4]@2 ~ [a3,b3,d4]@2 ~ [a3,c4,e4]!2 ~@2", B: "[a3,c4,e4]", C: "[g3,b3,e4]",
  D: "[a3,c4,f4]/2", E: "[[a3,c4,f4]@15 ~]/2", F: "~@2 a4!2", G: "a4!2 ~@2", H: "~@8 e4@3 d4@2 ~ f4@2",
  I: "~ d4@3 e4@3 ~@3 [a4,a5]@2 ~ [a4,a5]@2 ~", J: "[a4,a5]@5 ~@3 e4@3 d4@3 f4@2",
  K: "~ d4@3 e4@3 ~@3 [a4,a5]!3 [a4,a5]@2 ~", // A
  L: "[[a4,a5]!4 [a4,a5]@3 ~ [a3,c4,e4]@16 [g3,b3,e4]@16 [a3,c4,f4]@32 [a3,c4,e4]@16 [g3,b3,e4]@16 [a3,c4,f4]@24]/8", // A Am Em F Am Em F
})).s("gm_lead_2_sawtooth").gain(0.27).pan(1)

// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth_2 = note(`<
  ~@31 A ~ A ~ A ~ A ~@4 A ~ B@2 C@2 B@2 C@2 A ~ A ~ A ~ A ~@4 A ~ B@2 C@2 B@2 C@2 ~@37 D E F G H@8 ~@23
>`.pickRestart({
  A: "e4@2 ~ d4@2 ~ f4@2 ~ d4@2 ~ e4!2 ~@2", B: "e4/2", C: "f4/2", D: "~@8 [a3,c4,e4]@3 [a3,b3,d4]@2 ~ [a3,d4,f4]@2",
  E: "~ [a3,b3,d4]@3 [a3,c4,e4]@3 ~@3 a5@2 ~ a5@2 ~", F: "a5@4 ~@4 [a3,c4,e4]@3 [a3,b3,d4]@2 ~ [a3,d4,f4]@2",
  G: "~ [a3,b3,d4]@2 ~ [a3,c4,e4]@3 ~@3 a5!3 a5@2 ~", H: "[a5!4 a5@3 ~ e4@32 f4@32 e4@32 f4@24]/8",
})).s("gm_lead_2_sawtooth").gain(0.31).pan(0)

// chords · whistle
const whistle = note("<~@86 A@8 B@2 C@7 D@4 E@6 ~@29 F@3>".pickRestart({
  A: "[~@8 [e5,a5]@8 [a4,e5]@7 ~ e4@8 [a4,d5]@8 [a4,e5]@8 [e4,a4]@8 [a4,e5]@4 [e5,a5]@20 [e4,a4]@8 [a4,e5]@3 ~ e5@23 [a5,e6]@8 ~ [e6,a6]@4, ~ [a1,a2]@15, ~@23 a4@8 ~@60 a5@24 ~@13]/8", // A5 D5 A5 A
  B: "[~@2 [g5,e6] [d6,a6]@2 [g5,e6] [g5,d6]@2, ~ [g1,g2]@3]/2", // C D5 C G5 G
  C: "[~@12 [a5,e6]@12 [g4,e5,g5]@8 ~@16 [a5,e6]@7 [d5,a5]@8 ~ [a5,d6]@8 [d6,g6]@8 [g5,d6]@8 [g4,d5]@7 [g4,b4]@9 d5@4 e5@4, [d6,g6]@3 ~@5 [a4,e5,a5]@4 ~@16, ~ [a1,a2]@4 [d2,d3]@4 [g1,g2]@4 [a1,a2,a4]]/7", // A5 C A5 D5 G5 G G5 A5 …
  D: "[[g4,e5]@4 [g5,d6]@4 [a5,c6]@8 [a5,c6]@4 [a5,e6]@4 [a1,a2,c5]@8 ~@4 d6@4 ~@7 f5@4 ~ [e6,g6]@4 [a1,a2,a5,e6]@8, [g1,g2]@7 ~ [f1,f2]@15 ~ g5@16 c6@12 ~@12, ~@32 [g1,g2,b5]@8 [f1,f2]@15 ~@9, ~@43 a5@8 ~@13]/4", // C G5 Am A5 Am Em A5 G …
  E: "[d6@4 ~ d6@2 ~ [f5,d6]@4 [f5,c6]@4 [c6,a6]@4 [a5,e6]@4 [b5,g6]@3 ~ [g5,b5]@8 [b5,f#6]@3 ~ b5@3 [d6,a6]@8 ~ [a6,e7]@3 ~ [a6,e7]@4 e7@2 a7@2 a7@4 [a6,e7]@4 a6@10 ~@14, [g1,g2,g5]@8 [f1,f2]@15 ~ [g1,g2]@31 [a1,a2]@33 ~@8, ~@4 e6@2 ~@33 g6@4 ~@17 a6@8 ~@28]/6", // Dm F5 F A5 Em G B5 D5 …
  F: "[~@8 d6@5 g6@5 a6@10 d7@8 ~@12]/3",
})).s("gm_whistle").gain(0.09)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  A B C D E F G H I J K L M N O@2 P@2 Q@2 R S T@2 U@2 V@2 W@2 ~ X Y Z Y Z Y AA Y ~@3 X AB@2 AC AD AE AF AG@3 X Y Z Y Z Y
  AA Y ~@3 X AB@2 AC AD AE AF AH@3 AI@4 AJ@2 AK@2 AL@2 AM@2 AN@2 ~@35 AO AI@4 AJ@2 AK@2 AL@2 AP@2 AQ@2 AR@2 AS@6
>`.pickRestart({
  A: "[a3,c4,g4]@5 ~ [c4,e4]@2 ~@2 [a3,d4]@2 ~@2 [a3,c4]@2", B: "[a3,c4,g4]@3 ~",
  C: "[a3,c4,e4]!2 ~ [a3,d4] ~ [c4,e4] ~ [a3,d4]", D: "[a3,c4,e4]!2 ~ [a3,d4]@4 ~",
  E: "[c4,f4]!2 ~ [a3,c4,e4] ~ [a3,d4] ~ [a3,c4,e4], a3 ~@3", F: "[c4,f4]!2 ~ [a3,c4,g4]@4 ~, a3 ~@3",
  G: "[a3,c4,f4]@2 ~ [a3,c4,g4] ~ [a3,c4,f4] ~ a3", H: "[c4,f4]!2 ~ [d3,a3,c4,f4]@5, a3 ~@3", I: "f3@13 ~@3",
  J: "[a3,c4,e4]@13 ~@3", K: "[a3,c4,g4]@2 ~ [a3,c4,e4] ~ [a3,d4] ~ [a3,c4]", L: "[a3,c4,g4]@15 ~",
  M: "[a3,c4,e4]@4 ~@2 [a3,d4]@9 ~", N: "[f3,a3,c4]@4 ~@2 [a3,c4,g4]@9 ~",
  O: "[[a3,c4,g4]@4 ~@2 [a3,d4,e4]@3 ~@3 [a3,d4,e4]@16 ~@4]/2", // Am7 Asus4
  P: "[[a3,c4,g4]@4 ~@2 [a3,e4]@4 ~@2 [a3,d4,e4]@19 ~, ~@3 d4 ~@12]/2", // Am7 A5 Asus4
  Q: "[[a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@17 ~@3]/2", R: "[a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,f4]@4",
  S: "~@2 [c4,e4,a4]@4 [c4,e4,a4] ~", T: "[[a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@16 ~@4]/2",
  U: "[[a3,d4,e4,a4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@16 ~@4]/2", // Asus4 Am
  V: "[[a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,f4]@7 ~ [c4,e4,a4]@8 [c4,e4,a4]@2 ~@2]/2", // Asus4 Am F5 Am
  W: "[[a3,d4,e4,a4]@3 ~@3 [a3,c4,e4,g4]@2 ~@4 [c4,e4,a4]@20]/2", X: "e3@3 d3@3 f3@3 d3@2 ~ e3!2 ~@2",
  Y: "~ e3 ~ e3 [a2,e3]@2 ~@10, [a2,e3]!2 ~@6", Z: "e3@3 d3@2 ~ f3@3 d3@2 ~ e3!2 ~@2",
  AA: "e3@2 ~ d3@2 ~ f3@3 d3@2 ~ e3!2 ~@2",
  AB: "[[a2,e3]!3 e3 [a2,e3]@2 ~@12 a2@4 ~@6 e3@2 d3@2, ~@15 [a3,e4,a4]@7 e3@6 ~@4, ~@16 e3@6 a2@9 ~, ~@12 [a3,c4,e4,a4]@3 ~]/2", // A5 Am
  AC: "[b2,e3]@4 ~@4 e3@3 ~ d3@2 e2@2, e2@6 e2@7 ~@3, ~@4 [g3,b3,e4]@11 ~, ~ e3 ~@2", // E5 Em
  AD: "~@4 b3 ~ a3 e2, f2@7 ~, ~ c3@6 ~, ~@2 f3@5 ~, ~@3 a3@2 b3@2 ~",
  AE: "~@4 b3 ~ a3 ~, f2@15 ~, ~@2 c3@13 ~, ~@4 f3@11 ~, ~@3 a3@2 b3@2 ~",
  AF: "~@2 [c4,e4]@2 c4@2 d4 c4, [a2,e3], ~ a3@3, ~ e4", // C A5
  AG: "[[e2,b2,e3]@4 [e3,g3]@4 e3@3 ~@3 e2@2 ~@8 b3@2 ~@2 a3@2 e2@2 ~@12 [f3,a3]@3 ~, ~@4 e4@18 a3@4 b3@10 ~@2 a3@2 b3@7 ~, ~@4 b3@16 f3@9 ~@7 f3@8 ~@4, ~@4 [e2,b2]@10 ~@2 f2@13 ~@3 f2@15 ~, ~@12 d3@4 ~@2 c3@11 ~@5 c3@13 ~]/3", // E5 Em F E5
  AH: "[[e2,b2,e3]@4 [e3,g3]@4 e3@3 ~@3 e2@2 ~@8 b3@2 ~@2 a3@2 e2@2 ~@6 a3@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@2, ~@2 e4@9 a3@2 b3@5 ~@6, ~@4 b3@16 f3@9 ~@7 f3@8 ~@4, ~@4 [e2,b2]@10 ~@2 f2@13 ~@3 f2@15 ~, ~@12 d3@4 ~@2 c3@11 ~@5 c3@13 ~]/3", // E5 Em Asus4 Am E5
  AI: "[~@4 [c4,e4,a4]@17 ~@3 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@2]/2", // Am Asus4 Am
  AJ: "[~@2 [c4,f4]@2 ~@2 [c4,e4,a4]@4 [c4,e4,a4] ~ [a3,d4,e4]@2 ~ [a3,c4,e4]]/2", // F5 Am Asus4 Am
  AK: "[~@2 [c4,e4,a4]@8 ~@2 [a3,d4,e4,a4]@2 ~ [a3,c4,e4]]/2", AL: "[~@2 [c4,e4,a4]@8 ~@2 [a3,d4,e4]@2 ~ [a3,c4,e4]]/2",
  AM: "[~@4 [c4,f4]@7 ~ [c4,e4,a4]@8 [c4,e4,a4]@2 ~@2 [a3,d4,e4,a4]@3 ~@3 [a3,c4,e4,g4]@2]/2", // F5 Am Asus4 Am7
  AN: "[~ [c4,e4,a4]@5 ~@2]/2", AO: "~@4 [a3,d4,e4]@2 ~ [a3,c4,e4]",
  AP: "[~@4 [c4,f4]@7 ~ [c4,e4,a4]@8 [c4,e4,a4]@2 ~@2 [c4,g4]@2 [c4,g4]@2 ~@2 [a3,c4,e4]@2, ~@6 [a3,a4] ~]/2", // F5 Am C5 Am A
  AQ: "[~@2 [a3,d4]@2 ~@2 [c4,e4]@2 [c4,g4,a4]@13 ~@3 [a3,c4,e4]@2 [c4,e4]@2 c4@2 [a3,d4]@2, ~@6 a3@15 ~@5 a3@4 ~@2, ~@7 e4]/2", // D5 C Am7 Am C D5
  AR: "[~@2 [c4,e4]@2 ~@2 d4@2 [c4,e4]@2 [c4,e4]@2 [a3,c4]@2 [a3,d4]@5 ~@5 [c4,f4]@2 [c4,f4]@2 ~@2 [a3,c4,e4]@2, ~@6 a3@6 e4@7 ~@5 a3@4 ~@4, ~@4 a4@3 ~@9]/2", // C Am D5 F5 Am
  AS: "[~@2 [a3,d4]@2 ~@2 [c4,e4]@2 [c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,g4]@8 ~@2 [c4,f4]@13 ~@3 [c4,e4,a4]@13 ~@3 [c4,d4,g4]@28 ~@12, ~@6 a3@4 ~@13 a3@13 ~@3 a3@13 ~@3 [d3,f3]@29 ~@12]/6", // D5 C F5 F Am7 F5 Am Csus2 …
})).s("gm_electric_guitar_clean").gain(0.36).pan(0.4)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  A B C D E F G H@2 I J K L M N@2 O@4 P@2 Q@2 R@2 P@2 S@4 T ~ U ~ V ~ T W@2 X ~ Y ~@9 T ~ U ~ V ~ T W@2 X ~ Y ~@7 Z@5
  AA@8 AB@8 AC@6 AD AE AF AG AH@2 AI@2 AJ@3 AK AL@4 AM@8 AN@8 AO@8 AP@6
>`.pickRestart({
  A: "~@2 [a3,c4,g4,c5,g5]@5 ~ [a3,c4,e4,c5,e5]@2 ~@2 [a3,d4,a4,d5]@2 ~@2", // Am7 Am D5
  B: "[a3,c4,e4,c5,e5] [a3,c4,g4,a4,c5,g5]@6 ~", // Am Am7
  C: "~ [c4,e4,c5,e5]!2 ~ [a3,d4,a4,d5] ~ [a3,c4,e4,c5,e5] ~, ~ a3@2 ~@5", // C D5 Am
  D: "[a3,d4,a4,d5] [c4,e4,c5,e5]!2 ~ [a3,d4,a4,d5]@4, ~ a3@2 ~@5", E: "~ [c4,f4]!2 ~ [c4,e4] ~ [a3,d4] ~, ~ a3@2 ~@5",
  F: "[a3,c4,e4] [c4,f4]!2 ~ [a3,c4,g4]@4, ~ a3@2 ~@5", G: "~ [a3,c4,f4]@2 ~ [a3,c4,g4] ~ [c4,f4] ~",
  H: "[a3@2 [c4,f4]@2 [c4,f4]@2 ~@2 [d3,a3,c4]@10 f3@13 ~, ~ a3@2 ~@13]/2", I: "~ [a3,c4,e4]@7",
  J: "~@2 [c4,g4]@5 ~ [c4,e4]@2 ~@2 [a3,d4]@2 ~@2, ~@2 a3@9 ~@5", K: "[a3,c4,e4] [a3,c4,g4]@7",
  L: "~ [a3,c4,e4,a4]@2 ~ [a3,d4,e4]@3 ~", M: "~@2 [f3,a3,c4]@5 ~ [a3,c4,g4]@6 ~@2, ~@2 e4@3 ~@11",
  N: "[~ [a3,c4,g4]@2 ~ [a3,d4,e4] ~@2 [a3,d4]@9]/2", // Am7 Asus4 D5
  O: "[~@2 [a3,c4,g4]@4 ~@2 [a3,d4,e4]@3 ~@3 [a3,d4,e4]@19 ~ [a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@18]/4", // Am7 Asus4 Am
  P: "[~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,f4]@6 ~@2 [c4,e4,a4]@8 [c4,e4,a4]@2]/2", // Asus4 Am F5 Am
  Q: "[~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4,a4]@3 ~@3 [c4,e4,a4]@18]/2", // Asus4 Am
  R: "[~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@18]/2", // Asus4 Am
  S: "[~@2 [a3,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@19 ~ [a3,c4,e4,a4]@16 ~@14, ~ d4 ~@30]/4", // A5 Am
  T: "~@2 a4 [c4,e4,a4] [e4,a4] [c4,e4,a4] ~@10, ~ [c4,e4,a4]@2 ~@13", // Am A5 Am
  U: "~ [c4,e4,a4] [c4,a4] [c4,e4,a4] [e4,a4] [c4,e4,a4] ~@10", // Am F Am A5 Am
  V: "~ [c4,e4,a4] [e4,a4] [c4,e4,a4] [e4,a4] [c4,e4,a4] ~@10", W: "[b3 [b3,d4,g4]@31, [g2,d3,g3]]/2",
  X: "~ g4@15, [g2,d3,g3,b3,d4]", Y: "~@2 a4 [c4,e4,a4] [e4,a4] [c4,e4,a4]@2 ~@9, ~ [c4,e4,a4]@2 ~@13",
  Z: "[~@9 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@18 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@18 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]]/5", // Asus4 Am Asus4 Am Asus4 Am
  AA: "[~@5 [c4,f4]@6 ~@2 [c4,e4,a4]@8 [c4,e4,a4]@2 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4,a4]@3 ~@3 [c4,e4,a4]@18 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@18 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,f4]@6 ~@2 [c4,e4,a4]@8 [c4,e4,a4]@2 ~@2 [a3,e4]@4 ~@2 [a3,c4,e4], ~@121 d4@2 ~@5]/8", // F5 Am Asus4 Am Asus4 Am Asus4 Am …
  AB: "[~@5 [c4,e4,a4]@19 ~@2 [a3,e5]@8 b4@13 c5 [c#5,d5] ~ d5@4 [a3,g5]@4 [a3,e5]@8 b4@16 f#5@2 d5@2 a3@4 c#5@4 d5@4 g5@8 f#5@8 d5@8 c#5@4 d5@2, ~@34 e3@21 ~@11 e3@20 e5@2 ~@40]/8", // Am A5 Dmaj7 A7 A5
  AC: "[~@2 g5@8 f#5@8 d5@4 f#5@4 ~@4 b4@2 ~@2 c5@2 ~@2 d5@2 ~@2 c5@2 c5!2 c5@2 b4@2 a4@4 b4@3 ~@3 c5@2 ~@2 e4@2 [e4,c5]@4 c5@4 d5@2 e5@2 d5@2 c5@2 d5@4 c5@3 ~ [c4,e4]@2 [d4,f#4]@2 [c4,e4]@2, ~@26 [g2,d3]@32 ~@2 e4@4 ~@6 e4@19 ~@7, ~@31 c5@2 ~@15]/6", // C D C G5
  AD: "[e4,g4] ~ [e4,g4] ~ [d4,f#4] ~ [c4,e4] ~", AE: "[e4,g4] [d4,f#4]@2 [c4,e4] ~ [d4,g4,b4] [d4,g4,c5] [d4,g4,b4]",
  AF: "[d4,g4,d5]@4 [d4,g4]@3 ~ [c4,f4]@2 ~@2 [c4,f4]@2 ~@2, ~@2 d5@5 ~", // G5 F5
  AG: "[c4,f4,c5]@2 [d4,g4,b4]@4 [d4,g4,b4]@3 ~ e3@2 ~@2 c4@2, ~@3 a3", // F5 G
  AH: "[e4!2 ~ b4 ~ c5@8 c4 ~ a3, ~@4 g4@4 ~ [f4,a4]@17 ~@2 e3@4]/2", // F
  AI: "[c4@2 b4@4 g4@3 ~@7 c5@4 b4@5 ~@5 c4@2, ~@9 [a3,c4]@16 ~@3 a3@4, ~@10 f4@15 ~@7]/2", // Am
  AJ: "[e4 ~ [d4,g4]@4 [d4,g4]@2 g4 ~ [c4,g4]@4 c4@3 ~ d4@3 ~ [c4,e4]@4 b3@6 [d3,g3]!2 [d3,g3]@8 ~@2 [a3,e4,a4] [e4,a4]!3, ~@2 b3@7 ~ a3@8 a3@7 ~@8 b3@9 ~@4 a3@2, ~@14 e4@7 ~@5 [d4,g4]@16 ~@6]/3", // G5 C5 C G5 A5 G5
  AK: "[e4,a4]!2 [a3,e4,a4]@8 ~@3 [a3,c4]@2 e4, ~@13 e4 ~@2", // A5 Am
  AL: "[~@2 [c4,e4] ~@2 [e3,a3]@4 ~@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]!2 ~@2 e3@4 ~@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4] [a3,c4,e4] ~@2 [e3,a3,c4]@4 ~@4 [a3,c4,e4]@4 [a3,c4,e4]!2 ~@2 [a2,e3,a3,c4,e4]@3 ~@3 a2@4 e3, ~ [e3,a3,c4,e4]@2 ~@2 [c4,e4]@8 ~@8 e4@8 ~@8 e4@8 ~@19, ~@9 a2@10 ~@2 [a3,c4]@6 ~@18 e3@6 ~@13, ~@25 a2@10 ~@6 a2@10 ~@13]/4", // C A5 Am C Am
  AM: "[~@5 e3@2 d3@2 [b2,e3]@4 ~@4 e3@3 ~ d3@2 e2@2 ~@8 b3@2 ~@2 a3@2 e2@2 ~@8 b3@2 ~@2 a3@2 ~@6 [c4,e4]@4 c4@4 d4@2 c4@2 [e2,b2,e3]@4 [e3,g3]@4 e3@3 ~@3 e2@2 ~@8 b3@2 ~@2 a3@2 e2@2 [c4,f4]@4 [c4,f4]@2 ~@2 [d4,g4]@4 [d4,g4]@2 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4], ~ [a3,c4,e4,a4]@6 ~@2 e2@6 e2@7 ~@3 f2@14 ~@2 f2@15 ~@33 f2@13 ~@3 f2@15 ~@8, ~@13 [g3,b3,e4]@11 ~@5 f3@10 ~@6 f3@11 ~@9 e4@8 ~@4 e4@16 ~@2 a3@4 b3@5 ~@24, ~@13 e3@4 ~@10 c3@12 ~@4 c3@13 ~ [a2,e3]@16 ~@12 d3@4 ~@2 c3@11 ~@26, ~@31 a3@4 b3@4 ~@8 a3@4 b3@4 ~@6 a3@12 ~@4 b3@12 ~@4 f3@9 ~@26]/8", // E5 C E5 Em F5 G5 Asus4 Am …
  AN: "[~@5 [c4,e4,a4]@18 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,e4,a4]@18 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,f4]@6 ~@2 [c4,e4,a4]@8 [c4,e4,a4]@2 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4,a4]@3 ~@3 [c4,e4,a4]@18 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]]/8", // Am Asus4 Am Asus4 Am F5 Am Asus4 …
  AO: "[~@5 [c4,e4,a4]@18 ~@2 [a3,d4,e4]@4 ~@2 [a3,c4,e4]@3 ~@3 [c4,f4]@6 ~@2 [c4,e4,a4]@8 [c4,e4,a4]@2 ~@2 [c4,g4]@2 [c4,g4]@2 ~@2 [a3,c4,e4]@2 ~@2 [a3,d4]@2 ~@2 [c4,e4]@2 [c4,g4,a4]@13 ~@3 [a3,c4,e4]@2 [c4,e4]@2 c4@2 [a3,d4]@2 ~@2 [c4,e4]@2 ~@2 d4@2 [c4,e4]@2 [c4,e4]@2 [a3,c4]@2 [a3,d4]@5 ~@5 [c4,f4]@2 [c4,f4]@2 ~@2 [a3,c4,e4], ~@57 [a3,a4]@4 ~@10 a3@15 ~@5 a3@4 ~@8 a3@6 e4@7 ~@5 a3@4 ~@3, ~@93 e4@4 ~@8 a4@6 ~@17]/8", // Am Asus4 Am F5 Am C5 Am D5 …
  AP: "[~@3 [a3,d4]@2 ~@2 [c4,e4]@2 [c4,f4]@2 [a3,c4,f4]@2 ~@2 [a3,c4,g4]@8 ~@2 [c4,f4]@13 ~@3 [c4,e4,a4]@13 ~@4 [c4,d4,g4]@27 ~@11, ~@7 a3@4 ~@13 a3@13 ~@3 a3@13 ~@4 d3@29 ~@10]/6", // D5 C F5 F Am7 F5 Am Csus2
})).s("gm_distortion_guitar").gain(0.1).pan(0.1)

// other · pad new age · "FANTASIA"
const pad_new_age = note(`<
  ~@14 A B A B A B C D A B A B E F A B ~@42 G H@3 I J K H@3 L M N H O ~@35 G H@3 I J K H@3 L M P Q R Q R S T@4 ~
>`.pickRestart({
  A: "d5 ~ f5 ~ g5 ~ f5 ~ d5 ~ f5 ~ g5 ~ f5 ~", B: "d5 ~ f5 ~ g5 ~ f5 ~ d5 ~ f5 ~ d5 ~ f5 ~", C: "f4@4 f5@3 ~",
  D: "a4@4 a5@3 ~", E: "f4@8 f5@7 ~", F: "a4@8 a5@5 ~@3", G: "~@8 d5 ~ f5 ~ a5 ~ f5 ~",
  H: "d5 ~ f5 ~ a5 ~ f5 ~ d5 ~ f5 ~ a5 ~ f5 ~", I: "d5 ~ f5 ~ a5 ~ f5 ~ f4@7 ~", J: "f5@5 ~@3 a4@7 ~",
  K: "a5@5 ~@3 d5 ~ f5 ~ a5 ~ f5 ~", L: "d5 ~ f5 ~ a5 ~ f5 ~ f4@8", M: "f5@7 ~ a4@8", N: "a5@8 d5 ~ f5 ~ a5 ~ f5 ~",
  O: "d5 ~ f5 ~ a5 ~ f5 ~@9", P: "a5@4 d5 f5 a5 f5", Q: "d5 f5 a5 f5 d5 f5 a5 f5",
  R: "d5@2 f5@2 a5 ~ f5@2 d5@2 f5@2 a5@2 f5@2", S: "d5@2 ~ a5@2 ~ f5@2 d5@2 f5@2 a5@2 f5@2, ~ f5 ~@6",
  T: "[d5@2 f5@2 a5@2 ~ f4@8 f5@8 ~ a4@7 a5@8 ~ d5@13 ~@11, ~@3 f5 ~@28]/4",
})).s("gm_pad_new_age").gain(0.17)

// … 124 more lines

More by Rush