Strudelify
Time Stand Still cover art

1987 · Hold Your Fire

Time Stand Still

Rush

KeyE majorTempo140 bpm
0:00/0:00
// Time Stand Still — Rush
// 140 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (7/4 at bar 1, 4/4 at bar 10, 7/4 at bar 42, 4/4 at bar 46) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 "DISTORTION" distortion guitar (copy of ch 1 "CLEAN GTR" electric guitar clean); ch 8 "DISTORTION" distortion guitar (copy of ch 1 "CLEAN GTR" electric guitar clean, 0.104 beats late)
// note: Full arrangement: all 176 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/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 · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  A@2 B C@2 D@2 E@4 F G H@6 I@2 J K L@3 ~@11 M@2 N@5 O@5 P@3 Q R S T@3 U@2 V@2 W@2 X Y Z@6 AA AB AC@3 ~@7 M@2 AD@6 AE@3
  AF@4 AG AH@2 AI@7 AJ@2 AK@7 AL@7 AM@7 ~@7 AN@6 AO@7 AP@7 AG AH@2 AQ@5 AR@7 AS@2
>`.pickRestart({
  A: "[~@8 b3@2 ~@2 b3@2 ~@4 e3 ~@5 [e3,a3,b3]@4 [a2,e3,a3,b3]@4, ~@4 b2@5 ~@5 b3@6 ~@12, ~@6 f#3@4 e3@6 c#3@4 a2@7 ~@5]/2", // Esus4 Asus2
  B: "~ f#3 b3 ~ b3 ~@2 e3, b2@5 ~ e3@6 c#3@4, ~@5 b3@3",
  C: "[a2@3 ~ [a2,e3,a3,b3]@4 [a2,e3,a3,b3]@3 ~@5 b3@2 ~@2 b3@2 ~@2 c#3@2 e3 ~ a2@4, ~@12 b2@5 ~@5 b3@5 ~@5, ~@7 f#3@2 e3@3 ~@4]/2", // Asus2
  D: "[[a2,e3,a3,b3]@2 [a2,e3,a3,b3]@2 [g#3,c#4]@11 [c#3,g#3,c#4], ~@2 c#3@5 ~]/2", // Asus2 C#5
  E: "[~@2 [c#3,g#3]@2 ~ c#4@3 a2@4 a2@2 ~@20 a3@2 a3@2 a3@2 ~@4 e4@2 [g#3,b3,e4]@6 [g#3,b3,e4]@4 ~@2 e2@2 f#2@2 g#2@2, ~@4 [c#3,g#3]@3 ~@7 a2@26 e2@17 ~@7, ~@43 e3@14 ~@7, ~@43 [g#3,b3]@3 ~@18, ~@44 b2@13 ~@7]/4", // C#5 E C#5 G#m
  F: "a2 b2 c#3 g#2 b2@2 [f#3,b3,d#4] ~", G: "~@2 [b2,f#3,b3,d#4]@2 [f#3,b3,d#4] ~@3 [g#3,b3,e4] ~@5 [g#3,b3,e4] ~",
  H: "[~@4 [f#3,b3,d#4] ~@7 [a3,c#4]@2 [e3,a3,b3]@8 ~@14 e4@2 b3 ~ [c#3,g#3,c#4,e4]@15 ~ c#4@2 b3@2 ~@8 b3@2 c#4@2 a2@2 ~@2 e4@2 e4@9 ~ [e3,a3,b3,e4]@2 ~@4 [e3,a3,b3,e4]@2, ~@8 a2@11 ~@5 b2@15 ~@16 c#3@17 ~@2 a2@13 ~@9, ~@10 e3@4 ~@12 b3@8 b3@4 ~@17 g#3@10 ~ g#3@6 ~@4 [e3,a3,b3]@11 ~@9, ~@28 d#4@11 ~@21 c#4@8 ~@28, ~@15 e4@3 ~@10 e4@3 e4@5 ~@12]/6", // B A Esus4 C#m Esus4
  I: "[~@2 [e3,a3]@2 [e3,a3]@2 [b2,a3]@2 ~@2 g#3@2 e4@2 e4@5 ~@3 e4@4 e2@2 f#2@2 g#2@2, ~ b2@2 e3@3 [e3,g#3]@7 ~@3, ~@4 [e2,b2]@9 ~@3, ~@12 b3@7 ~ b3@6 ~@6]/2", // A5 B7 E E5
  J: "a2 b2 c#3 g#2 b2@2 [b2,f#3,b3] ~", K: "~ [b2,f#3,b3]!2 ~ [e3,b3,e4] ~@2 [e3,b3,e4]",
  L: "[~@4 [b2,f#3,b3] ~@2 b3@6 ~ b3@8 ~ e4 ~@6 b3@9 ~@9, ~@6 a2@15 ~ b2@17 ~@9, ~@7 [e3,a3,e4]@15 ~ f#3@17 ~@8, ~@23 b3@7 ~@18, ~@8 e4@5 ~@3]/3", // B5 A5
  M: "[~@12 b3@2 ~@2 b3@2 ~@4 e3 ~@5 [e3,a3,b3]@4, ~@8 b2@5 ~@5 b3@6 ~@8, ~@10 f#3@4 e3@6 c#3@4 a2@7 ~]/2", // Esus4
  N: "[[a2,e3,a3,b3]@4 ~@2 f#3@2 b3@2 ~@2 b3@2 ~@4 e3@2 a2@3 ~ [a2,e3,a3,b3]@4 [a2,e3,a3,b3]@3 ~ [b2,e3,g#3,b3,e4]@13 ~@3 [b3,e4,g#4]@13 ~@3 [b3,d#4]@15 ~, ~@4 b2@5 ~ e3@6 c#3@4 ~@11 e2@14 ~@2 [c#3,g#3]@14 ~@2 [b2,f#3]@16 ~, ~@7 b3@3 ~@30]/5", // Asus2 E B C#5 B5
  O: "[~@12 c#4@2 ~@3 e4@13 ~@3 f#4@11 ~@2 e4 [b3,e4] [e3,g#3,b3,e4]@29 ~ [d3,a3,d4] [a3,d4], e4@3 e4@4 ~@33, ~@2 b3@8 b3@4 ~ [a2,e3]@15 ~ [c#3,f#3]@13 ~@2 [e2,b2]@30 ~@4, ~@4 d#4@5 ~@7 [a3,b3]@14 ~@2 [a3,c#4]@11 ~@3 [e3,g#3]@2 ~@32]/5", // E5 E D5 A5 F#5 E5 Asus2 A …
  P: "[[a3,d4,f#4]@6 [d4,f#4]@7 ~@3 [f#3,a3,b3,e4]@6 [b3,e4]@8 [g#3,b3,e4]!2 [g#3,b3,e4]@6 [e3,g#3,b3,e4]@10, a2@22 ~@8 b2@17 ~, d3@15 ~@7 [e3,a3]@6 ~@2 e3@8 ~@10, ~@3 a3@5 ~@16]/3", // D F#m7 E5 E A5
  Q: "[g#3,b3,e4]@6 [g#3,b3,e4]@9 ~, [b2,e3]@15 ~", R: "[a3,d4,f#4]@13 ~@3, d3@15 ~", S: "[a2,f#3,a3,b3,e4]",
  T: "[~@8 b3@2 ~@2 c#3@2 c#3@2 a2@4 [e3,a3]@4 [e3,a3]@2 ~ b3 [b2,f#3,b3]@19 ~, b2@15 ~@5 a2@7 ~@21, ~ f#3@3 ~@9 [f3,a#3] ~@10, ~@2 b3@2 ~ b3@5 ~@14, ~ e3 ~@6]/3", // A5 B5 A#5
  U: "[[a2,e3,a3,b3,e4]@4 [a2,e3,a3,b3,e4]@3 ~ [g#3,b3,c#4]@16 ~@2 [c#3,g#3,c#4]@2 ~@2 c#3@2, ~@7 c#3@17 ~@8]/2", // Asus2 C#7 C#5
  V: "[[c#3,g#3,c#4]@2 ~@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 ~@4 [a3,b3]@2 ~@6 b3@2 b3@2 [e3,a3,b3] ~@5 [a2,e3,a3,b3]@2, ~@5 a2@7 ~@4, ~@5 e3@4 e3@3 ~@4, ~@7 e4@5 ~@4, ~@7 [a3,b3]@3 a3@2 ~@4]/2", // C#5 Asus2 Esus4 Asus2
  W: "[~ [a2,e3,a3,c#4] [a3,b3]!2 e2 ~ [g#3,b3]@4 [g#3,b3]@2 [g#3,b3,e4] e2 f#2 g#2, ~@2 e3@2 ~ e2@8 ~@3, ~@3 e4@3 ~@2]/2", // A Asus2 G#m E
  X: "a2@2 b2@2 c#3@2 g#2@2 b2@4 [f#3,b3,d#4] ~@3", // B
  Y: "b2@2 [f#3,b3,d#4] ~@5 e4@2 d#4@2 [f#3,b3]@2 [b3,e4]@2, ~@2 [f#3,b3] ~", // B B5 E5 B5
  Z: "[b3@2 ~@2 d#4@2 [f#3,b3]@2 [c#3,g#3,c#4] ~ [c#3,g#3,c#4] ~ e4 e4@11 ~@12 c#4@2 g#3@2 a2@2 ~@2 b3@11 ~@13 b2@2 a2@2 ~@4 [g#3,b3,e4]@8 [g#3,b3,e4]@4 ~@2 e2@2 f#2@2 g#2@2, d#4@4 ~@8 b3@14 c#4@9 ~@9 a3@12 b3@16 ~@24, ~@2 [f#3,b3]@4 ~@6 g#3@25 ~@5 a2@24 e3@6 [e2,b2]@17 ~@7, ~@12 c#4@12 e4@6 e4@9 ~@5 e4@27 ~@25, ~@28 b3@5 ~ b3@6 ~@4 e3@18 a3@9 ~@4 e3@13 ~@8]/6", // B5 C#5 E B5 E5
  AA: "a2@2 b2@2 c#3@2 f#2@2 [b2,f#3,b3]@4 [f#3,b3,d#4] ~@3", AB: "~@2 [f#3,b3,d#4] ~@5 [g#3,b3,e4] ~@5 [g#3,b3,e4] ~",
  AC: "[~@4 [f#3,b3,d#4] ~@3 [e3,a3,b3,e4]@15 ~ [b2,f#3,b3,e4]@16 ~@8, ~@7 a2@15 ~@26]/3", // B Esus4 Bsus4
  AD: "[[a2,e3,a3,b3]@3 ~ [b2,e3,g#3]@12 ~@5 e4@14 ~ [b3,e4]@13 ~@15 b3@3 ~ [b3,e4]@13 ~@4 f#4@11, ~@3 e2@14 ~@2 c#3@12 ~@4 b2@31 ~ a2@15 ~ [f#2,c#3]@12 ~, ~@4 e4@15 ~@33 e4@6 e4@9 ~@29, ~@4 b3@14 ~@2 [g#3,b3,c#4]@12 ~@3 f#3@13 ~@6 d#4@8 d#4@5 ~ a3@11 ~@5 [a3,c#4]@11 ~, ~@56 b3@8 ~@3 e3@12 ~@17]/6", // Asus2 E E5 F#5 C#7 A
  AE: "[~@2 [b2,g#3,b3] [g#3,b3,e4] [b2,e3,g#3]@17 ~ [b2,g#3]@2 [b2,e3,g#3,b3]@2 [e3,g#3,b3]@2 [e3,g#3,b3]@2 [b2,g#3,b3,e4]@2 [b2,g#3,b3,e4]@2 ~@2 [e3,b3,e4]@12, ~@2 e2@32 ~ [e2,b2]@12 ~, ~ e3 e4@13 ~@9, ~@2 b3@10 ~@6 g#3@5 ~, ~@21 e3@2 ~@3 b2@4 e3@4 [e3,g#3,b3,e4]@2 ~@12]/3", // E E5 E
  AF: "[~@4 [c#4,e4]@14 ~@2 [f#3,b3]@11 ~@11 e4@4 f#4@5 ~ [a2,e3,a3,b3,e4]@12, ~@3 [c#3,g#3]@13 ~@3 b2@11 ~@6 f#3@15 ~@13, ~@4 b3@12 ~@4 e4@14 ~@4 b3@13 ~@13, ~@40 d#4@11 ~@13]/4", // C#m B5 Asus2 C#5
  AG: "~@2 [a2,e3,a3,b3,e4] ~ [c#3,e3,a3,c#4]@12", // Asus2 A
  AH: "[~@2 [c#3,e3,a3] ~ e2@15 ~ e2@2 e2@2 e2 ~ [e2,b2,e3,g#3,b3]@2 [e2,e3,g#3,b3]@2 [e2,e3,g#3,b3]@2, ~@2 [b2,g#3,b3]@11 ~ b2@2, ~@2 e3@9 e3@2 ~@3]/2", // A E
  AI: "[[e2,b2,e3,g#3,b3,e4]@2 [e2,e3,b3,e4] ~ f#4 f#4@11 ~@4 [a2,f#3,a3,b3,e4]@8 [a2,e3,a3,b3]@6 b2!2 [b2,g#3,b3]@15 ~ [b2,e3]@2 [b2,e3]@2 ~@2 [e2,b2,e3]@9 ~ [a3,d4,f#4]@13 ~@3 [a2,e3,a3,b3,e4]@15 ~ b3@2 ~@8 d#4@2, ~@4 d3@15 ~@15 e2@17 ~ e2@4 ~@52 e4@4, ~@4 [a3,d4]@13 ~@18 e3@16 ~@16 d3@15 ~@22 c#4@6 ~@2, ~@36 e4@13 ~@53 b3@4 b3@6]/7", // E E5 Asus2 E E5 D Asus2 D5
  AJ: "[~@4 d#4 c#4 b3 c#4 b3 ~@6 e4, b3@2 b3@4 ~@3 b3@2 b3@3 b3@2, ~ e4@2 e4@9 e4@3 ~, ~@10 c#4@3 d#4@2 ~]/2",
  AK: "[~@2 d#4 c#4 b3 c#4 b3 ~@9 d#4 c#4 b3 c#4 b3!2 ~@8 d#4 c#4 b3 c#4 b3 ~@9 d#4 c#4 b3 c#4 b3 ~@6 e4, b3@4 ~@3 b3@2 b3@3 b3@2 b3@4 ~@4 c#4@3 d#4@2 ~@9 c#4@3 d#4@2 ~@9 c#4@3 d#4@2 ~, ~@2 e4@18 e4@6 e4@4 e4@18 e4@6 e4@4 e4@17 ~ e4@6 e4@4 e4@17 ~ e4@6 ~@2, ~@8 c#4@3 d#4@2 ~@10 b3@3 b3@2 b3@4 ~@3 b3@2 b3@3 b3@2 b3@4 ~@3 b3@2 b3@3 b3@2]/7",
  AL: "[~@2 d#4 c#4 b3 c#4 b3 ~@4 d#4 ~@4 d#4 c#4 b3 c#4 b3 ~@9 d#4 c#4 b3 c#4 b3 ~@9 d#4 c#4 b3 c#4 b3 ~@6 e4, b3@4 ~@3 b3@2 b3@3 b3@2 b3@4 ~@3 b3@2 b3@3 b3@2 b3@4 ~@3 b3@2 b3@3 b3@2 b3@4 ~@3 b3@2 b3@3 b3@2, ~@2 e4@17 ~ e4@6 e4@4 e4@17 ~ e4@6 e4@4 e4@18 e4@6 e4@4 e4@18 e4@6 ~@2, ~@8 c#4@3 ~@11 c#4@3 d#4@2 ~@9 c#4@3 d#4@2 ~@9 c#4@3 d#4@2 ~]/7",
  AM: "[~@4 d#4@2 c#4@2 b3@2 c#4@2 b3@2 ~@18 d#4@2 c#4@2 b3@2 c#4@2 b3@2 ~@18 d#4@2 c#4@2 b3@2 c#4@2 ~@26 b3@5 ~@13, b3@8 ~@6 b3@4 b3@6 b3@4 b3@8 ~@6 b3@4 b3@6 b3@4 b3@8 ~@4 a3@13 ~@31, ~@2 e4@17 ~ e4@6 e4@4 e4@16 ~@2 e4@6 e4@4 e4@9 ~@5 b3@9 ~@3 b3@4 b3@5 ~@19, ~@16 c#4@6 d#4@4 ~@18 c#4@6 d#4@4 ~@16 c#4@11 ~@5 d#4@13 ~@13, ~@74 e4@16 e4@9 ~@13]/7",
  AN: "[~@4 b3@2 b3@2 ~@8 b3@2 e4@3 ~@3 d#4@2 ~@2 b3@2 c#4@2 b3@2 b3@2 ~@2 b3@2 e4@2 ~@4 e4@4 ~@2 d#4@2 ~@4 c#4 ~ b3@2 b3@2 ~@2 b3@2 ~@6 e4@4 ~@2 d#4@2 ~@4 c#4@2 b3@2 b3@2 ~@2 b3@2, ~@8 c#4@6 d#4@5 ~@7 c#4@4 ~@6 c#4@6 ~@8 e4@18 e4@6 ~@4 e4@4 ~@14, ~@10 b3@4 ~@30 b3@11 ~ b3@4 ~@12 b3@11 ~ b3@4 ~@8, ~@12 e4@6 ~@4 e4@18 ~@2 d#4@9 ~@3 c#4@4 ~@6 c#4@5 ~ d#4@9 ~@3 c#4@4 ~@6 c#4@4]/6",
  AO: "[~@6 e4@2 [b3,f#4]@11 ~ [b2,e3,g#3]@12 ~@5 e4@14 ~ [b3,e4]@13 ~@15 b3@2 ~@2 [b3,e4]@13 ~@4 f#4@11, e4@4 b3@4 ~@11 e2@31 ~@20 d#4@8 d#4@5 ~ a3@11 ~@5 [a3,c#4]@11 ~, ~@2 d#4@4 ~@14 e4@15 ~ [g#3,b3,c#4]@12 ~@3 f#3@13 ~@4 e4@6 e4@9 ~@29, ~@20 b3@14 ~ c#3@12 ~@4 b2@31 ~ a2@15 ~ [f#2,c#3]@12 ~, ~@72 b3@8 ~@3 e3@12 ~@17]/7", // B5 E E5 A C#7 F#5
  AP: "[~@2 [b2,g#3,b3] [g#3,b3,e4] [b2,e3,g#3]@17 ~ [b2,g#3]@2 [b2,e3,g#3,b3]@2 [e3,g#3,b3]@2 [e3,g#3,b3]@2 [b2,g#3,b3,e4]@2 [b2,g#3,b3,e4]@2 ~@2 [e3,g#3,b3,e4]@13 ~@3 [c#4,e4]@14 ~@2 [f#3,b3]@11 ~@11 e4@4 f#4@5 ~ [a2,e3,a3,b3,e4]@12, ~@2 e2@32 ~ [e2,b2]@15 ~@62, ~@2 e3@2 e4@26 ~@38 e4@14 ~@4 b3@13 ~@13, ~@4 b3@20 ~@28 b3@12 ~@20 f#3@15 ~@13, ~@21 e3@2 ~@3 b2@4 e3@4 [e3,g#3,b3,e4]@2 ~@15 [c#3,g#3]@13 ~@3 b2@11 ~@10 d#4@11 ~@13]/7", // E C#m B5 Asus2 E5 E C#5
  AQ: "[[e2,b2,e3,g#3,b3,e4]@2 [e2,e3,b3,e4] ~ [d3,a3,d4,f#4]@6 [a2,d3]@9 [e3,a3] [e3,a3]@6 ~ a3@8 e2 ~ b2@5 e2@8 ~ b2 [b2,e3,g#3]@6 [b2,e3,g#3]@6 ~@5 d4@5 [d3,a3,d4]@6, ~@10 [d4,f#4]@7 ~@2 a2@7 [a2,e3]@9 ~ [e2,e3]@6 e3@10 ~@15 d3@6 ~@7, ~@20 e4@32 ~@17 f#4@11, ~@20 b3@15 ~ [g#3,b3]@16 ~@16 a3@6 ~@6, ~@42 b2@5 ~@3 e2@2 [e2,b3,e4]@14 ~@14]/5", // E E5 D D5 A5 E D5 D …
  AR: "[~@3 [a2,e3,a3] [a2,e3,a3]@6 [a2,e3]@9 ~ [e2,e3,g#3]@6 [e2,e3]@8 e3 e2 [e2,b2,e3,g#3,b3]@6 [b2,e3,g#3]@6 ~@2 d3@2 [a3,d4,f#4]@13 ~@3 [e3,a3,b3,e4]@16 ~@4 b3@2 ~@2 b3@2 ~@4 e3 ~@5 [e3,a3,b3]@4 [a2,e3,a3,b3]@4, ~@4 [b3,e4]@16 ~@6 g#3@10 e4@14 ~@36 f#3@4 e3@6 c#3@4 a2@7 ~@5, ~@10 a3@7 ~@3 [b2,b3,e4]@16 ~@6 [e2,b3]@8 ~@2 [a2,d3]@16 ~@16 b2@5 ~@5 b3@6 ~@12]/7", // A5 E D Esus4 Asus2 E5 D5
  AS: "[[b2,f#3,b3]@7 ~]/2", // B5
})).s("gm_electric_guitar_clean").gain(0.25)

// bass · electric bass pick · "PICK BASS"
const bass = note(`<
  ~ A B@3 C D E F G H I J K@3 D E F G H I L@3 M@7 N@7 O@2 P D Q R F S T U V W X@2 Y Z B@3 C D AA F G H I J AB AC AD AE
  AF H I J AG@2 AH@3 AI@7 AJ AK AL AM AN AO AP AQ AR AK AL AS@2 AT AU AV AW AX AY AZ BA@4 BB@2 D AA BC BD BE F BF BG BH
  BI BJ BK F BL BM BN@2 BO BP BQ@8 BR S BS BT F BU Q BV AK AL AM AN AO AP BW AR AK AL AS@2 AT AU AV AW AX AY AZ BX AX BY
  BZ@5 CA@2
>`.pickRestart({
  A: "~@2 a1!2", B: "[b1@5 a1!2 b1@5]/3", C: "a1@2 a1@2 c#2!4", D: "c#2!8", E: "c#2!3 g#1 a1!4", F: "a1!8",
  G: "a1 g#1 a1 g#1 e1!2 e2 e1", H: "e1!2 e2 e1!3 f#1 g#1", I: "a1 b1 c#2 g#1 b1!4", J: "b1!4 e2 d#2 b1 e2",
  K: "[d#2 b1 d#2 b1 a1@2 a2 a2@2 a1 a2 a1 b1@3 b1@2 a1 b1 c2 c#2!4]/3",
  L: "[b1!4 e2 d#2 b1 f#2@2 e2 d#2 c#2 a1@3 a2@2 e2 a2 e2 b1 f#2 b1 f#2]/3",
  M: "[~ e2 d#2 f#2 a1@8 e1@8 c#1@7 b1@9 a1@8 e1@8 c#1@4]/7", N: "[~@3 b1@9 a1@8 e1@8 c#1@8 b1@8 b1@10 a1@2]/7",
  O: "[c#2 b1@5 a1!2]/2", P: "e2!7 b1", Q: "b1!8", R: "b1!3 b1@2 c#2 b1 c#2", S: "f#1!8",
  T: "e1@2 e1@2 e1@2 e1@2 e1@2 e1@2 e1@2 e2!2", U: "e2@2 f#2@2 g#2@2 f#2@4 e2@2 e2 f#2 e2 c#2",
  V: "d2@6 d2@4 d2 c#2 d2@2 c#2@2", W: "a1@6 a1@4 b1@2 c#2 b1 a1@2", X: "e1 e2 b1 e2@2 f#2 e2 c#2", Y: "d2", Z: "a1",
  AA: "c#2 b1 c#2 b1 a1!4", AB: "d#2 b1 d#2 b1 c#2 c#2@2 c#2", AC: "c#2 b1@2 b1 c#2 c#2@2 c#2",
  AD: "c#2 b1@2 c#2 a1 a1@2 a1", AE: "a1 g#1!3 a1 a1@2 a1", AF: "a1 g#1!2 a1 e1!2 e2 e1",
  AG: "[f#2@2 g#2@2 f#2@2 e2@2 a1@6 a2@4 e2@2 a2@2 e2@2 b1@2 f#2@2 b1@2 f#2!2]/2",
  AH: "[f#2 ~ e2 ~ d#2 ~ c#2 ~ a1@16 e1@16 c#1@8]/3", AI: "[~@6 b1@18 a1@16 e1@16 c#1@16 b1@16 b1@20 a1@2 a1!2]/7",
  AJ: "a1@2 e2!6", AK: "e2 b1 c#2!6", AL: "c#2!2 b1!6", AM: "b1!3 c#2 d#2 c#2@2 b1", AN: "c#2 b1 a1!6",
  AO: "a1!2 f#1!6", AP: "f#1@2 f#1@2 e1@2 e1@2 e1@2 e1@2 e1@2 e2 ~",
  AQ: "f#2 ~ g#2 ~ f#2 ~ e2 ~ d#2 ~ d#2 c#2 b1 c#2 b1 a1", AR: "g#1 a1 g#1 f#1 e1@2 e2@2 e2@2 e2@2 e2@2 e2@2",
  AS: "[b1@2 b1@2 b1@2 c#2@2 d#2@2 c#2@4 b1@4 c#2 b1 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2]/2", AT: "a1 e2 f#2!6",
  AU: "f#2@2 c#2@2 e2@2 e2@2 e2@2 e2!2 e2@2 e2@2", AV: "e2@2 e2@2 e2@2 f#2 g#2@2 f#2 g#2@2 f#2 g#2@2 f#2",
  AW: "g#2@2 f#2 e2 d2@6 d2@4 d2 c#2", AX: "d2 c#2 a1@3 a1@2 b1", AY: "c#2 b1 a1@2 e1@2 e2@2 e1@2 e2@4 f#2@2",
  AZ: "e2 c#2 e1 e2 b1 e2@2 f#2", BA: "[e2 e2@2 e2 d2@16 a1@16 b1@20 a1@4 c#2@4]/4", BB: "[b1@10 a1@2 a1@2 c#2!2]/2",
  BC: "a1!5 g#1 a1 g#1", BD: "a1 e2 c#2!6", BE: "c#2!5 b1 c#2 b1", BF: "a1!3 g#1 a1 c#2 e1!2", BG: "e1!8",
  BH: "f#1 g#1 b1 c#2 b1!4", BI: "b1!5 f#2!2 b1", BJ: "f#2 b1 c#2!6", BK: "c#2!3 b1 c#2 b1 c#2 b1",
  BL: "a1!3 g#1 a1 g#1 e1!2", BM: "e1!3 e2 e1 e2 e1!2", BN: "[e1 f#1 g#1 a1 b1@5 b1!6 c#2]/2",
  BO: "b1@2 c#2@2 a1@10 e2!2", BP: "a2@2 e2 c#2 b1@2 f#2@2 b1@2 f#2@4 c#2@2",
  BQ: "[b1 c#2 a1@8 e1@8 c#1@8 b1@8 a1@8 e1@8 c#1@8 b1@6]/8", BR: "~@2 f#1!6", BS: "g#1!8", BT: "g#1!6 a1!2",
  BU: "a1!4 b1!4", BV: "b1!2 e2!6", BW: "f#2 ~ g#2 ~ f#2 ~ e2@2 d#2 ~ d#2 c#2 b1 c#2 b1 a1",
  BX: "e2 e2@2 e2 d2@6 d2@4 d2 c#2", BY: "c#2 b1 a1@2 e1@2 e2@2 e1@2 e2@4 c#2@2",
  BZ: "[b1@2 a1 ~ g#1 a1 g#1 f#1 e1@2 f#1 g#1 f#1@2 e1@5 ~ d1@16 a1@16 b1@18 ~@2 a1@4 c#2@4]/5", CA: "[b1@19 ~@13]/2",
})).s("gm_electric_bass_pick").gain(0.35)

// chords · lead 3 calliope · "CALLIOPE"
const lead_3_calliope = note("<~@25 A@6 B@7 ~@38 C@6 D@3 ~@46 E F G H@2 I@4 ~@36>".pickRestart({
  A: "[~@8 b4@10 g#4@2 f#4@2 ~@12 e4@2 f#4@2 e4@2 [c#4,g#4]@10 f#4@2 e4@2 [b3,f#4]@17 ~ b4@10 g#4@2 f#4@2 b3@10, ~@11 b3@7 ~@30]/6", // C#5 B5
  B: "[~@2 e4@2 f#4@2 e4@2 [c#4,g#4]@10 f#4@2 e4@2 [b3,f#4]@17 ~ b4@10 g#4@2 f#4@2 b3@12 e4@2 f#4@2 e4@2 c#4@10 f#4@2 e4@2 [b3,f#4]@18 ~@8, ~@18 g#4@3 ~@7]/7", // C#5 B5
  C: "[~@9 g#4 f#4@2 b3@5 e4 f#4 e4 [c#4,g#4]@8 [b3,f#4]@8 b4@5 g#4 f#4@2 b3@4, ~@2 b4@3 ~@19]/6", // C#5 B5
  D: "[~ e4 f#4 e4 [c#4,g#4]@8 [b3,f#4]@10 ~@2]/3", E: "~@7 g#4, ~ b4@3", F: "f#4 b3@6 e4", G: "f#4@2 [c#4,g#4]@5 f#4",
  H: "[e4 [b3,f#4]@9 b4@5 g#4]/2", I: "[f#4@2 b3@12 ~@2 f#4@4 [c#4,g#4]@16 [b3,f#4]@19 ~@9, ~@14 e4@5 ~@45]/4",
})).s("gm_lead_3_calliope").gain(0.24).pan(0.6)

// other · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~@5 A B@2 C D@4 E F G H@2 I J@2 K L M F ~@6 N@2 O ~ P@2 Q@2 R@2 S@3 ~ T@3 ~ U V@2 ~ U W X Y@2 A Z@2 AA AB@4 G AC@2 AD
  AE@2 AF@2 AG AH ~@2 N@2 O ~ P@2 AI@2 AJ@2 AK@2 AL@2 AM@2 AN@2 AO@2 AP@2 AM@2 AQ AR AS ~ AQ AR AT@2 AU AV@2 ~@20 AW AX
  AY ~ AZ BA BB@2 ~ BC@2 ~@2 BD@2 AK@2 BE@2 AM@2 BF@2 AO@2 BG@2 BH@2 AQ AR BI@2 AQ AR BJ@2 BK BL BM@2 ~@2
>`.pickRestart({
  A: "~@7 e3", B: "[f#3 g#3@2 g#3@2 f#3 e3 e3@5 ~@3 e3]/2", C: "a3 b3@2 a3@4 e3",
  D: "[a3!4 g#3 g#3@7 ~ g#3!2 g#3@2 g#3!2 f#3 g#3 f#3!2 f#3@6 e3 f#3 e3]/4", E: "f#3 g#3 f#3 e3 g#3@2 f#3 e3",
  F: "f#3 e3@7", G: "~@7 c#4", H: "[c#4@2 c#4@4 c#4@4 c#4@4 c#4@4 g#3@9 ~@3 a3@2]/2", I: "a3!2 b3 a3@4 a3",
  J: "[a3 a3@2 a3@2 g#3 f#3 g#3@6 e4!3]/2", K: "b3@3 b3 e4 d#4 c#4 b3", L: "b3@5 f#3@2 f#3",
  M: "f#3 g#3 f#3!2 g#3@2 f#3 e3",
  N: "[~@3 [b2,b3] [g#3,g#4]!3 [g#3,g#4]@2 [f#3,f#4] [e3,e4] [f#3,f#4]@2 [f#3,f#4]!2 [g#3,g#4]]/2", // B G# F# E F# G#
  O: "[f#3,f#4]@2 [e3,e4] [c#3,c#4]@5", // F# E C#
  P: "[~@3 [b2,b3] [g#3,g#4]!3 [b3,g#4]@2 [b3,f#4] [b3,e4]!2 [e4,f#4]!2 [d#4,f#4]!2]/2", // B G# E B5 E5 Esus2 D#m
  Q: "[[c#4,f#4]@2 b3 c#4 [b3,f#4]@8 ~@2 a3@2, ~ f#4 ~@6]/2", R: "[c#4 b3@4 ~@3]/2",
  S: "[~@4 b4 b4@2 g#4@2 g#4@2 g#4!2 a4 g#4 g#4@2 f#4 f#4@6]/3",
  T: "[~ e4@2 e4@2 e4@2 c#4@2 c#4@2 c#4!2 e4 c#4 c#4@2 b3 b3@6]/3", U: "~@3 [f#3,a3,f#4]!3 [f#3,a3,f#4]@2",
  V: "[[a3,c#4,f#4]@5 [g#3,b3,e4]!2 [g#3,b3,e4]@7 ~@2]/2", W: "[a3,c#4,f#4]@5 [g#3,b3,e4] [g#3,b3,e4]@2",
  X: "[f#3,b3,d#4]", Y: "[~ a3 c#4 b3@4 ~]/2", Z: "[g#3 g#3@2 g#3@2 f#3 e3 e3@5 ~@3 e3]/2", AA: "a3 b3@2 a3@5",
  AB: "[a3!4 g#3 g#3@7 ~ g#3!2 g#3@2 g#3!2 g#3@2 f#3 e3 f#3@5 ~@4]/4",
  AC: "[c#4 c#4@2 c#4@2 c#4@2 c#4@2 e4@4 ~@2 a3]/2", AD: "a3@2 g#3 a3@5", AE: "[~ a4!4 g#4 f#4 e4@6 e4!3]/2",
  AF: "[b3@3 b3 e4 d#4 c#4 b3@5 ~@2 [d#4,f#4]!2]/2", // D#m
  AG: "[d#4,f#4] [e4,g#4] [d#4,f#4] [c#4,e4] [e4,g#4]@2 [d#4,f#4] [c#4,e4]", AH: "[d#4,f#4] [c#4,e4]@4 ~@3",
  AI: "[[c#4,f#4]@2 b3 c#4 [b3,f#4]@8 ~@4, ~ f#4 ~@6]/2", AJ: "[~@6 b4 b4@2 g#4@2 g#4@2 g#4!2 a4]/2",
  AK: "[g#4 g#4@2 f#4 f#4@6 ~@6]/2", AL: "[~@3 e4@2 e4@2 e4@2 c#4@2 c#4@2 c#4!2 e4]/2", AM: "[c#4 c#4@2 b3 b3@6 ~@6]/2",
  AN: "[~@4 b4 b4@2 b4@2 g#4@2 g#4@2 g#4!2 f#4]/2", AO: "[e4 g#4@2 f#4 f#4@6 ~@6]/2",
  AP: "[~@5 e4@2 e4@2 c#4@2 c#4@2 c#4!2 e4]/2", AQ: "~@5 [f#3,a3,f#4]!3",
  AR: "[f#3,a3,f#4]@2 [a3,c#4,f#4]@5 [g#3,b3,e4]", AS: "[g#3,b3,e4] [g#3,b3,e4]@7",
  AT: "[[g#3,b3,e4]@4 [f#3,b3,d#4]@19 ~ a3@4 c#4@4]/2", AU: "b3", AV: "[~ g#4!2 g#4@4 ~]/2",
  AW: "~ [b2,b3] [g#3,g#4]!3 [g#3,g#4]@2 [f#3,f#4]", AX: "[e3,e4] [f#3,f#4]@2 [f#3,f#4]!2 [g#3,g#4] [f#3,f#4]@2",
  AY: "[e3,e4]@2 [c#3,c#4]@11 ~@3", AZ: "~ [b2,b3] [g#3,g#4]!3 [b3,g#4]@2 [b3,f#4]",
  BA: "[b3,e4]!2 [e4,f#4]!2 [d#4,f#4]!2 [c#4,f#4]@2", BB: "[b3 c#4 [b3,f#4]@8 ~@6, f#4 ~@7]/2",
  BC: "[~@2 g#4@2 g#4@2 g#4@7 ~@3]/2", BD: "[~@4 b4!3 b4@2 g#4@4 g#4@2 a4]/2",
  BE: "[~@3 e4@2 e4!2 e4@2 c#4@2 c#4@2 c#4@2 e4]/2", BF: "[~@5 b4@2 b4@2 g#4@2 g#4@2 g#4!2 f#4]/2",
  BG: "[~@3 e4@2 e4@2 e4@2 c#4@2 c#4@2 c#4!2 b3]/2", BH: "[a3 a3@2 g#3@7 ~@6]/2",
  BI: "[[g#3,b3,e4] [g#3,b3,e4]@9 ~@6]/2", BJ: "[[g#3,b3,e4] [g#3,b3,e4]@4 ~@3]/2", BK: "~@5 a3!3", BL: "a3@2 c#4@5 b3",
  BM: "[b3 b3@5 ~@2]/2",
})).s("gm_epiano2").gain(0.22).pan(0.6)

// other · shakuhachi · "SHAKAHUCHI"
const shakuhachi = note("<~@29 A@3 ~ A@3 ~@40 B@3 ~ C@3 ~@93>".pickRestart({
  A: "[~@8 b4@10 g#4@2 f#4@4 b3@13 ~@11]/3", B: "[~@4 b4@5 g#4 f#4@2 b3@8 ~@4]/3",
  C: "[~@8 b4@9 g#4@3 f#4@4 b3@16 ~@8]/3",
})).s("gm_shakuhachi").gain(0.25).pan(0.3)

// bass · fretless bass · "FRETLESS"
const bass_2 = note("<~@27 A@3 B@2 C@2 B@2 D@2 ~@40 E@3 F G@3 ~@91>".pickRestart({
  A: "[~@2 e3@2 f#3@2 g#3@5 ~@3 g#3@4 f#3@2 e3@2 f#3@3 ~ g#3@4 f#3@6 ~@12]/3", B: "[~ g#3 f#3 b2@6 e3 f#3 g#3@5]/2",
  C: "[~@2 f#3@2 e3@2 f#3@13 ~@13]/2", D: "[~ f#3 e3 f#3@7 ~@6]/2",
  E: "[~@2 e3@2 f#3@2 g#3@12 f#3@2 e3@2 f#3@15 ~@11]/3", F: "~ g#3 f#3 b2@5", G: "[~ e3 f#3 g#3@6 f#3 e3 f#3@9 ~@4]/3",
})).s("gm_fretless_bass").gain(0.27)

// other · woodblock
const woodblock = note("<~@25 A B A B A B A B A B A B ~@39 A B A B A B A B C ~@46 D E D E D E D E ~@37>".pickRestart({
  A: "~@8 c4 ~@3 g4 ~ e5 ~", B: "e6 ~@3 b5 ~@7 c4 ~ c4 ~", C: "~@8 c4 ~@7", D: "~@4 c4 ~@3 g4 ~ e5 ~ e6 ~@3",
  E: "b5 ~@7 c4 ~ c4 ~@5",
})).s("gm_woodblock").gain(0.22)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C ~ D E F E F E F E F E G E F E F E F E H I J K@11 L M N A K@7 O P Q R S B@3 C ~ D E F E F E F E T E F E U E U V
  W X Y K@7 L M Z K@15 AA AB@3 AC AD@2 A B AE AF@17 AA AG Z K@7 AF@7 Z K@15 AA AB@2 AH AA AB@2 AI AJ AD@2 A B ~
>`.pickRestart({
  A: "~@2 x!2", B: "x", C: "~ x!3", D: "x!3 ~", E: "~ x ~ x!2 ~@2 x", F: "~ x ~@2 x!2 ~@2", G: "x ~@2 x!3 ~@2",
  H: "~ x ~@2 x ~@2 x", I: "~@2 x!2 ~@2 x ~ x ~ x!2 ~@2 x ~", J: "~ x ~ x ~@2 x ~ x ~@3 x ~@3", K: "x!4",
  L: "x ~ x!3 ~@3", M: "~@3 x", N: "x!2 ~@2", O: "x ~ x!6", P: "x ~@5 x ~@3 x!2 ~@2 x ~",
  Q: "x ~ x!2 ~@2 x ~@3 x!2 ~@2 x ~", R: "x ~@2 x ~@2 x ~@3 x!2 ~@2 x ~", S: "x ~ x!2 ~@2 x ~@2 x ~ x ~@4",
  T: "x ~@3 x!2 ~@2", U: "~ x ~ x!3 ~@2", V: "~ x ~ x!2 ~@3", W: "~@4 x ~@2 x", X: "~@2 x ~@3 x ~ x ~ x!2 ~@2 x ~",
  Y: "~ x ~ x ~@4 x ~@3 x ~@3", Z: "x!3 ~ x ~ x ~", AA: "x ~ x ~ x ~@5 x ~@3 x!2", AB: "~@2 x ~ x ~ x!2 ~@2 x ~@3 x!2",
  AC: "~ x ~@2 x ~@11", AD: "~ x ~@2", AE: "~@2 x ~ x ~ x!2", AF: "x!8", AG: "~@2 x ~ x ~ x!2 ~@2 x ~ x ~ x ~",
  AH: "~@2 x ~ x ~ x!2 ~@2 x ~ x ~@3", AI: "~ x!2 ~ x ~ x ~", AJ: "x!3 ~@5",
})).gain(0.38)

// drums · snare
const snare = s("sd").struct(`<
  ~@5 A B@9 C B@7 D B E F@11 A F G H B@3 I B@3 J B F B K ~@2 B ~@2 A B@7 L B@6 M N B O F@7 B P G Q@3 G Q@3 R Q@5 S T G
  Q@2 U V ~ G W B ~ Q X B Y Z B AA Z AB AA Y AC B AD Z AB AE AF AG AH W@7 AI AJ@4 AK AL R Q@3 R Q@2 AM G Q@6 W G Q@2 AN
  Q@3 W ~@6
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~ x!2 ~@3 x ~", D: "~@2 x!2 ~@2 x ~", E: "~ x!2 ~@5", F: "~ x ~@2", G: "~ x",
  H: "x ~@13 x!2", I: "~@4 x ~@7 x!3 ~", J: "~@4 x ~ x ~ x!2 ~@6", K: "~@4 x ~@5 x ~ x ~ x!2",
  L: "~@2 x ~ x ~ x!2 ~@4 x ~@3", M: "~@2 x ~@3 x!2", N: "x ~ x ~ x ~ x!2 ~@8", O: "~@2 x ~ x ~ x!2 ~@8",
  P: "~@4 x ~@10 x", Q: "x!2", R: "x!4 ~@4 x ~@7", S: "x ~@7 x ~@6 x", T: "x!2 ~@14", U: "x ~@7 x ~@4 x ~@2",
  V: "x ~@2 x ~@12", W: "x", X: "x!2 ~ x ~@2 x ~", Y: "~ x ~@2 x ~@3", Z: "x ~@3 x ~@2 x", AA: "~@2 x ~@2 x ~@2",
  AB: "~@3 x ~@2 x ~", AC: "x ~@2 x ~@3 x", AD: "~ x ~@3 x ~@2", AE: "x ~@7 x ~@3 x ~@2 x", AF: "x!2 ~@2 x ~@3",
  AG: "x ~@7 x ~@3 x!4", AH: "x!4 ~@12", AI: "x ~ x!2", AJ: "x!4", AK: "x ~ x ~ x!4", AL: "x ~ x ~ x ~ x ~ x ~ x!6",
  AM: "x ~@7 x ~ x!2 ~ x ~@2", AN: "x ~@7 x ~@2 x!2 ~@2 x",
})).gain(0.44)

// drums · low tom
const low_tom = s("lt").struct("<~@37 A B C D ~@7 E ~@5 F B ~@46 G ~@4 E D ~@45 H ~@3 I ~@3 J ~@7 J ~@5>".pickRestart({
  A: "~@3 x", B: "~ x ~@2", C: "~ x", D: "x", E: "~@7 x", F: "~@5 x!2 ~", G: "x!2 ~@6", H: "~@2 x!2 ~@12", I: "~ x ~@6",
  J: "x ~ x!2 ~@12",
})).gain(0.44)

// drums · hihat
// … 85 more lines

More by Rush