Strudelify

Time What Is Time

Blind Guardian

KeyG♯ minorTempo182 bpm
0:00/0:00
// Time What Is Time — Blind Guardian
// 182 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 16 "AndreOct2" contrabass (copy of ch 15 "Andre2" distortion guitar)
// note: Full arrangement: all 262 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Acoustic.
setcpm(182/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 · acoustic guitar nylon · "Acoustic"
const acoustic_guitar_nylon = note("<A@6 B@2 C@6 B@2 C@6 B@2 C@6 B@2 ~@200 D@2 E@4 F@6 G@7 H I J@8 K>".pickRestart({
  A: "[~@5 [f#3,a#3]@3, [d#1,d#2], ~ a#2@4 ~ a#2@2 f#3@2 ~@6, ~@4 d#3@4 d#3@6 b2@17 ~, ~@3 f#3@2 ~@2 b3@2 d#3@3 ~@4]/2", // F# D#
  B: "[~@11 c#3@5, f#2 f2 e2@2, ~@4 a#2@7 ~ a#2@7 ~ a#2@12, ~@3 c#3@4 c#3@4 ~@5]/2",
  C: "[~@7 b3@2 ~ [f#3,a#3]@6, [d#1,d#2], ~ a#2@4 ~ a#2@2 ~@8, ~@4 d#3@4 d#3@6 b2@17 ~, ~@3 f#3@2 ~@4 d#3@3 ~@4]/2", // F# D#
  D: "[~@3 d#3@2 g#3@2 a#3@2 a#3@2 b3@5 c#4@4 b3@4 a#3@4 b3@2 f#3@2, ~ g#2@31]/2",
  E: "[~@9 a#3@4 b3@2 f#3@4 ~@2 d#3@3 ~@8 f#3@4 ~@2 d#3@2 g#3@2 a#3@2 ~ a#3@2 b3@4 c#4@4 b3@4 a#3@5, ~@2 b2@17 a#2@8 ~ a2@8 g#2@28, ~@5 d#3@4 ~@21 d#3@4 ~@30, ~@7 f#3@4 ~@13 f#3@6 ~@34]/4",
  F: "[b3@2 f#3@4 ~@6 a#3@4 b3@2 f#3@5 ~@2 d#3@2 ~@8 f#3@4 ~@3 d#3@2 g#3@2 a#3@2 a#3@2 b3@4 c#4@4 b3@5 a#3@4 b3@2 f#3@4 ~@6 a#3@5 b3@2 f#3@4 ~@2 d#3@2 f#3@2, ~@6 b2@17 a#2@8 a2@8 g#2@34 b2@17 a#2@6, ~@8 d#3@4 ~@21 d#3@4 ~@38 d#3@4 ~@17, ~@10 f#3@4 ~@13 f#3@6 ~@44 f#3@4 ~@15]/6",
  G: "[~@7 f#3@4 ~@2 d#3@2 g#3@2 a#3@2 a#3@2 b3@5 c#4@4 b3@4 a#3@4 b3@2 f#3@4 ~@7 a#3@4 b3@2 f#3@4 ~@2 d#3@3 ~@8 f#3@4 ~@2 d#3@2 g#3@2 a#3@2 ~ a#3@2 b3@4 c#4@4 b3@4 a#3@4 b3@2 ~ f#3@4, ~@2 a2@8 ~ g#2@34 ~@2 d#3@4 ~@21 d#3@4 ~@36, ~@5 d#3@4 ~@35 b2@17 a#2@8 ~ a2@8 g#2@34, ~@49 f#3@4 ~@13 f#3@6 ~@40]/7",
  H: "~@3 a#3@2 b3 f#3@2, b2, ~ d#3@2 ~@5, ~ f#3 ~@2", I: "~@3 d#3@2 ~@8 f#3@3, ~ a#2@8 a2@7, ~@5 f#3@6 d#3@4 ~",
  J: "[~@4 d#3@2 g#3@2 a#3@2 a#3@2 b3@4 c#4@4 b3@5 a#3@4 b3@2 f#3@4 ~@6 a#3@5 b3@2 f#3@4 ~@2 d#3@2 ~@6 d#3@3 f#3@4 ~@2 d#3@2 g#3@2 a#3@2 a#3@2 b3@5 c#4@4 b3@4 a#3@4 b3@2 f#3@4 ~@7 a#3@4 b3@2 f#3@4 ~@2 d#3@3 f#3@4, ~ g#2@34 b2@17 a#2@8 a2@8 ~ g#2@34 ~@4 f#3@4 ~@17, ~@37 d#3@4 ~@61 b2@17 a#2@8 ~, ~@39 f#3@4 ~@13 f#3@6 ~@43 d#3@4 ~@19]/8",
  K: "~ f#3 ~@2, a2 ~, ~ d#3@2 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.25).pan(0)

// chords · acoustic guitar steel · "Acoustic"
const acoustic_guitar_steel = note(`<
  ~@7 A B C D@2 E F G H I J K L M N O P Q R@2 S T U V W ~@200 X@2 Y@4 Z@6 AA@7 AB AC AD@8 AE
>`.pickRestart({
  A: "~@14 a#3 g#3", B: "a#3@5 ~@3", C: "~ a#3 d#4 f4 f#4 ~ d#4 c#4, ~@5 f#4 ~@2, ~@11 f4@2 ~@3",
  D: "[~@3 a#3@6 ~@11 [f3,g#3]@7 ~ [a#3,c#4]@4, ~ a#3@2 ~@29, ~ g#3 ~@5 [d#3,f#3]@4 ~@5]/2", // Fm A#m D#m
  E: "[f#3,a#3]!2 [f3,g#3]@2 [f#3,a#3]@4 ~@8", F: "~@4 b3@2 c#4@2 [f#3,a#3]@5 ~@3",
  G: "~ c#4 ~ c#4, f#3 ~ f3 ~, ~ a#3@2 ~@2 a#3@2 ~", H: "~ c#4@2 ~, e3 ~@3, ~ a#3@2 ~@5",
  I: "c#4 ~@3 c#4 ~@3 c#4@2 d#4@6", J: "~@6 f#4 f4", K: "f#4@2 ~@3 d#4@8 ~@3, ~@3 f#4@2 ~@11, ~@4 f4@3 ~@9",
  L: "~ g#4 f#4 ~ f4 f#4 f4 c#4", M: "c#4@5 ~ b3@2", N: "a#3@2 b3@2 ~@4 a#3@5 ~@3, ~@2 a#3!2 ~@4, ~@5 b3@2 g#3@2 ~@7",
  O: "[d#3,f#3] [f3,g#3]!2 [f#3,a#3]!2 [g#3,b3]!2 [a#3,c#4]", // D#m Fm F# G#m A#m
  P: "[a#3,c#4] ~ [f#3,a#3] [f3,g#3] [f#3,a#3]@3 ~, ~ [a#3,c#4] ~@6, ~@3 [g#3,b3]@2 ~@11", Q: "~@4 c#4!12",
  R: "[c#4@4 b3@4 a#3@2 b3@2 ~@4 a#3@3 ~ b3@2 a#3@4 ~@4 [d#4,f#4]!2, ~@6 a#3!2 ~@8, ~@13 b3@2 g#3@2 ~@15]/2", // D#m
  S: "[d#4,f#4]@6 ~@6 [f#4,a#4]!2 [f4,g#4]!2", T: "[f#4,a#4]@5 ~ [g#4,b4]!2 [g#4,b4]@5 ~ [a#4,c#5]!2",
  U: "[a#4,c#5]@4 [g#4,b4]@3 ~ [f#4,a#4]@3 ~ [f4,g#4]@3 ~", // A#m G#m F# Fm
  V: "[f#4,a#4] ~ [d#4,f#4] [c#4,f4] [d#4,f#4] [c#4,f4] [b3,d#4] [a#3,c#4], ~ [f#4,a#4] ~@6, ~@3 [f4,g#4]@3 ~@10", // F# D#m C# D#m C# B A#m F# …
  W: "[b3,d#4] [a#3,c#4] [g#3,b3] [a#3,c#4] [f3,g#3]@4", // B A#m G#m A#m Fm
  X: "[~@3 d#3@2 g#3@2 a#3@2 a#3@2 b3@5 c#4@4 b3@4 a#3@4 b3@2 f#3@2, ~ g#2@31]/2",
  Y: "[~@9 a#3@4 b3@2 f#3@4 ~@2 d#3@3 ~@8 f#3@4 ~@2 d#3@2 g#3@2 a#3@2 ~ a#3@2 b3@4 c#4@4 b3@4 a#3@5, ~@2 b2@17 a#2@8 ~ a2@8 g#2@28, ~@5 d#3@4 ~@21 d#3@4 ~@30, ~@7 f#3@4 ~@13 f#3@6 ~@34]/4",
  Z: "[b3@2 f#3@4 ~@6 a#3@4 b3@2 f#3@5 ~@2 d#3@2 ~@8 f#3@4 ~@3 d#3@2 g#3@2 a#3@2 a#3@2 b3@4 c#4@4 b3@5 a#3@4 b3@2 f#3@4 ~@6 a#3@5 b3@2 f#3@4 ~@2 d#3@2 f#3@2, ~@6 b2@17 a#2@8 a2@8 g#2@34 b2@17 a#2@6, ~@8 d#3@4 ~@21 d#3@4 ~@38 d#3@4 ~@17, ~@10 f#3@4 ~@13 f#3@6 ~@44 f#3@4 ~@15]/6",
  AA: "[~@7 f#3@4 ~@2 d#3@2 g#3@2 a#3@2 a#3@2 b3@5 c#4@4 b3@4 a#3@4 b3@2 f#3@4 ~@7 a#3@4 b3@2 f#3@4 ~@2 d#3@3 ~@8 f#3@4 ~@2 d#3@2 g#3@2 a#3@2 ~ a#3@2 b3@4 c#4@4 b3@4 a#3@4 b3@2 ~ f#3@4, ~@2 a2@8 ~ g#2@34 ~@2 d#3@4 ~@21 d#3@4 ~@36, ~@5 d#3@4 ~@35 b2@17 a#2@8 ~ a2@8 g#2@34, ~@49 f#3@4 ~@13 f#3@6 ~@40]/7",
  AB: "~@3 a#3@2 b3 f#3@2, b2, ~ d#3@2 ~@5, ~ f#3 ~@2", AC: "~@3 d#3@2 ~@8 f#3@3, ~ a#2@8 a2@7, ~@5 f#3@6 d#3@4 ~",
  AD: "[~@4 d#3@2 g#3@2 a#3@2 a#3@2 b3@4 c#4@4 b3@5 a#3@4 b3@2 f#3@4 ~@6 a#3@5 b3@2 f#3@4 ~@2 d#3@2 ~@6 d#3@3 f#3@4 ~@2 d#3@2 g#3@2 a#3@2 a#3@2 b3@5 c#4@4 b3@4 a#3@4 b3@2 f#3@4 ~@7 a#3@4 b3@2 f#3@4 ~@2 d#3@3 f#3@4, ~ g#2@34 b2@17 a#2@8 a2@8 ~ g#2@34 ~@4 f#3@4 ~@17, ~@37 d#3@4 ~@61 b2@17 a#2@8 ~, ~@39 f#3@4 ~@13 f#3@6 ~@43 d#3@4 ~@19]/8",
  AE: "~ f#3 ~@2, a2 ~, ~ d#3@2 ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.25)

// chords · distortion guitar · "Marcus' B"
const distortion_guitar = note(`<
  ~@32 A B A C A B A C D E D F D E D G H I J I H I J I K L K L K L K L M N M N M N M N O P Q H O P I H R S T U R S Q V
  W@2 X@8 Y@8 Z AA AB AC AD AE AB AC AD AE AF@8 AG@8 AH@8 AI@2 AJ@2 AI@2 AK@2 AL@4 AM@4 AN@4 AO@8 AP AQ AR AS AT AU AV
  AW AT AU AV AW ~@16 AX AY AZ BA BB BC R BD@3 R BE@8 Q AL@4 AM@4 AN@4 BF@4 BG@5 ~@25
>`.pickRestart({
  A: "[f#2,c#3,f#3] d#2!2 [f#2,c#3,f#3] d#2!4", B: "d#2!4 d#2@2 d#2@2 d#2!4 d#2@2 d#2@2",
  C: "d#2!4 d#2@2 [e3,a3]@10, ~@3 a2@3 ~@2", D: "[d#3,a#3,d#4]", E: "[c#3,g#3,c#4]", F: "[b2,f#3,b3] [g#2,d#3,g#3]",
  G: "[b2,f#3,b3] [c#3,g#3,c#4]", H: "[d#2,a#2,d#3]", I: "[b2,f#3,b3]", J: "[a#2,f3,a#3]",
  K: "[d#2,a#2,d#3]@2 [d#2,a#2,d#3]@2 [d#2,d#3]!4 [d#2,d#3]@2 [a#2,f3,a#3]@2 [d#2,d#3]@2 [b2,f#3,b3]@2", // D#5 D# A#5 D# B5
  L: "[d#2,a#2,d#3]@2 [d#2,a#2,d#3]@2 [d#2,d#3]!4 [d#2,d#3]@2 [b2,f#3,b3]@2 [d#2,d#3]@2 [a#2,f3,a#3]@2", // D#5 D# B5 D# A#5
  M: "g#2!4 [b2,f#3,b3]@2 g#2!4 [c#3,g#3,c#4]@2 g#2!4", N: "[d3,a3,d4]@2 g#2!4 [c#3,g#3,c#4]@2 g#2!4 [d3,a3,d4]@4",
  O: "[g#2,d#3,g#3]", P: "[e2,b2,e3]", Q: "[f#2,c#3,f#3]", R: "[g#2,d#3,g#3]@2 g#2!14", S: "[e2,b2,e3]@2 e2!14",
  T: "[b2,f#3,b3]@2 b2!14", U: "[d#2,a#2,d#3]@2 d#2!14", V: "[g2,d3,g3]",
  W: "[d#3 ~@4 d#3@3 ~@3 d#4@5, g#2, g#3@2 g#3@2 g#3@3 ~@2 g#3@4 ~@3, ~ d#3@3 ~@4 e3@3 ~@5, ~@3 a#3@2 ~@5 a#3@5 ~]/2",
  X: "[~@11 d#4@5, g#2, ~ d#3@3 ~ d#3@4 ~ a#3@5 ~, ~@2 g#3@2 g#3@3 ~ e3@3 ~@5, ~@3 a#3@2 ~@4 g#3@4 ~@3]/2",
  Y: "[~@22 d#4@10 [c#3,g#3,c#4]@2 c#3@2 c#3@2 c#3@2 [c#3,g#3,c#4]@2 c#3@2 c#3@2 [c#3,g#3,c#4]@2 c#3@2 [c#3,g#3,c#4]@2 c#3@2 c#3@2 [c#3,g#3,c#4]@2 c#3@2 c#3!4 [a2,g#3,c#4]@2 a2@2 a2@2 a2@2 [a2,g#3,c#4]@2 a2@2 a2@2 [a2,g#3,c#4]@2 a2@2 [a2,g#3,c#4]@2 a2@2 a2@2 [a2,g#3,c#4]@2 a2@2 a2!4 [c#3,g#3,c#4]@2 c#3@2 c#3@2 c#3@2 [c#3,g#3,c#4]@2 c#3@2 c#3@2 [c#3,g#3,c#4]@2 c#3@2 [c#3,g#3,c#4]@2 c#3@2 c#3@2 [c#3,g#3,c#4]@2 c#3@2 c#3!4, g#2, ~ d#3@3 ~ d#3@4 ~ a#3@5 ~@49, ~@2 g#3@2 g#3@3 ~ e3@3 ~@53, ~@3 a#3@2 ~@4 g#3@4 ~@51]/8", // C#5 Amaj7 C#5
  Z: "[a2,g#3,c#4] a2!3 [a2,g#3,c#4] a2!2 [a2,g#3,c#4]", AA: "a2@2 [a2,g#3,c#4]@2 a2@2 a2@2 [a2,g#3,c#4]@2 a2@2 a2!4",
  AB: "[d#3,a#3,d#4] d#3!3 [d#3,a#3,d#4] d#3!2 [d#3,a#3,d#4]", // D#5
  AC: "d#3@2 [d#3,a#3,d#4]@2 d#3@2 d#3@2 [d#3,a#3,d#4]@2 d#3@2 d#3!4", // D#5
  AD: "[b2,a#3,d#4] b2!3 [b2,a#3,d#4] b2!2 [b2,a#3,d#4]", AE: "b2@2 [b2,a#3,d#4]@2 b2@2 b2@2 [b2,a#3,d#4]@2 b2@2 b2!4",
  AF: "[[d#3,g#3]@4 [a#2,f3,a#3]@12 [a#2,f3,a#3]@3 [d#3,g#3]@3 [b2,f#3,b3]@4 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@4, g#2@19 g#2@13]/4", // G#5 A#5 G#5 B5 C#5
  AG: "[[d#3,g#3]@4 g#3!4 g#3@2 [d#3,g#3]@4 [e2,b2,e3]@6 g#3!4 g#3@2 [e2,b2,e3]@4 [d#3,g#3]@6 g#3!4 g#3@2 [d#3,g#3]@4 [e2,b2,e3]@6 g#3!4 g#3@2 [e2,b2,e3]@4 [f#2,c#3,f#3]@6 f#3!4 f#3@2 [f#2,c#3,f#3]@4 [c#2,c#3]@6 c#3!4 c#3@2 [c#2,g#2,c#3]@4 [c#2,c#3]@6 c#3!4 c#3@2 [c#2,c#3]@4 [d#2,a#2,d#3]@6 d#3!4 d#3@2 [d#2,a#2,d#3]@4 [g#2,d#3,g#3]@2, g#2@5 g#2@10 g#2@6 g#2@18 g#2@6 ~@2 g#2@6 g#2@10 ~]/8", // G#5 E5 G#5 E5 F#5 C# C#5 C# …
  AH: "[~@4 g#3!4 g#3@2 [d#3,g#3]@4 [e2,b2,e3]@6 g#3!4 g#3@2 [e2,b2,e3]@4 [d#3,g#3]@6 g#3!4 g#3@2 [d#3,g#3]@4 [e2,b2,e3]@6 g#3!4 g#3@2 [e2,b2,e3]@4 [f#2,c#3,f#3]@6 f#3!4 f#3@2 [f#2,c#3,f#3]@4 [c#2,c#3]@6 c#3!4 c#3@2 [c#2,g#2,c#3]@4 [c#2,c#3]@6 c#3!4 c#3@2 [c#2,c#3]@4 [d#2,a#2,d#3]@6 d#3!4 d#3@2 [d#2,a#2,d#3]@5 ~, ~@5 g#2@10 g#2@6 g#2@18 g#2@6 ~@2 g#2@6 g#2@11]/8", // G#5 E5 G#5 E5 F#5 C# C#5 C# …
  AI: "[[g#2,d#3,g#3]@2 g#2!13 ~ [f#2,c#3,f#3]@2 f#2!14, ~@15 g#2@17]/2", // G#5 F#5
  AJ: "[[c#2,c#3]@2 c#2!14 [e2,b2,e3]@2 e2!6 [f#2,c#3,f#3]@2 f#2!6, g#2]/2", // C# E5 F#5
  AK: "[[c#2,c#3]@2 c#2!14 [e2,b2,e3]@8 [f#2,c#3,f#3]@8, g#2]/2", // C# E5 F#5
  AL: "[[d#3,g#3] [e2,b2,e3] [f#2,c#3,f#3] [d#2,a#2,d#3], g#2]/4", // G#5 E5 F#5 D#5
  AM: "[[d#3,g#3] [e2,b2,e3] [b2,f#3,b3] [d#2,a#2,d#3], g#2]/4", // G#5 E5 B5 D#5
  AN: "[[g#2,d#3,g#3]@2 g#2!13 ~ [e2,b2,e3]@2 e2!14 [b2,f#3,b3]@2 b2!14 [d#2,a#2,d#3]@2 d#2!14, ~@15 g#2@49]/4", // G#5 E5 B5 D#5
  AO: "[[g#2,d#3,g#3]@2 g#2!13 ~ [e2,b2,e3]@2 e2!14 [f#2,c#3,f#3]@16 [g2,d3,g3]@16 b3@16 f#3@16 a3@16 f#3@16, ~@15 g#2@113]/8", // G#5 E5 F#5 G5
  AP: "b3", AQ: "f#3", AR: "a3", AS: "a3@3 g#3@3 g3@2", AT: "g#3@2 g#3!14", AU: "e3@2 e3!14", AV: "c#3@2 c#3!14",
  AW: "d#3@2 d#3!14", AX: "e4!2 d#4!2 e4!2 f#4!2 g#4!2 f#4!2 e4!2 d#4!2",
  AY: "c#4!2 c4!2 c#4!2 d#4!2 e4!2 d#4!2 c#4!2 c4!2", AZ: "f#3!2 f3!2 f#3!2 g#3!2 a#3!2 g#3!2 f#3!2 f3!2",
  BA: "b3!2 a#3!2 b3!2 c#4!2 d#4!2 c#4!2 b3!2 a#3!2", BB: "e4!2 d#4!2 e4!2 f#4!2 g#4!2 f#4!2 e4 f#4 e4 d#4", BC: "f#4",
  BD: "[[g#2,d#3,g#3]@2 g#2!13 ~ [e2,b2,e3]@2 e2!14 [f#2,c#3,f#3]@2 f#2!14, ~@5 g#2@11]/3", // G#5 E5 F#5
  BE: "[[g#2,d#3,g#3]@2 g#2!13 ~ [e2,b2,e3]@2 e2!14 [f#2,c#3,f#3]@2 f#2!14 [e2,b2,e3]@2 e2!14 [f#2,c#3,f#3]@2 f#2!14 [d#2,a#2,d#3]@2 d#2!14 [e2,b2,e3]@2 e2!14 [e2,b2,e3]@16, ~@15 g#2@113]/8", // G#5 E5 F#5 E5 F#5 D#5 E5
  BF: "[[g#2,d#3,g#3]@2 g#2!13 ~ [e2,b2,e3]@2 e2!14 [f#2,c#3,f#3]@16 [g2,d3,g3]@16, ~@15 g#2@49]/4", // G#5 E5 F#5 G5
  BG: "[~ [d#3,g#3]@67 ~@12, ~ g#2 ~@78]/5", // G#5
})).s("gm_distortion_guitar").gain(0.5).pan(0.6)

// other · distortion guitar · "André's F"
const distortion_guitar_2 = note(`<
  ~@40 A B C D E F G H I@2 ~ J K L M J ~@68 N@2 O P@2 Q@8 R@3 ~@23 S T U V W X Y Z AA AB AC AD AE AB AC AD AE AF@3 AG
  AH@2 AI@2 AJ@2 ~@6 AK AL AM AN AO AP ~@60
>`.pickRestart({
  A: "c#4@3 a#3", B: "b3@3 c#4@3 b3@2", C: "a#3 b3 a#3 g#3 g#3@8 g#3 a#3 g#3@2", D: "f#3 g#3 a#3 b3 c#4 b3 a#3 g#3",
  E: "a#3@2 c#4@4 c#4 d#4", F: "f4@6 d#4 f4", G: "f#4@2 f#4 f4 d#4@8 c#4 d#4 c#4@2", H: "b3 c#4 d#4 f4 f#4 g#4 a#4 c#5",
  I: "c#5/2", J: "b3 d#4 f#4 f#4@4 ~", K: "f#3@3 f3@3 d#3@2", L: "b2@6 c#3@6 b2@3 ~", M: "a#2 b2 a#2 g#2 g#2@12",
  N: "[f#5@7 ~ f#5@4 d#5@2 e5@6 f#5@6 e5@6]/2", O: "d#5@2 e5@2 d#5@7 ~ g#4@2 a#4@2",
  P: "[b4 c#5 d#5 e5 d#5 c#5 b4 c#5@4 ~ c#5 b4 a#4 b4]/2",
  Q: "[~@2 b4 ~ g#4@8 ~@2 c#5@4 c5@2 c#5@2 e5@4 d#5@2 e5 ~ f#5@8 f#5@2 ~@2 a#5@2 ~@2 b5@12 a#5@2 b5@2 b5@5 ~ b5@2 a#5@6 b5@2 g#5@12 ~@2 d#5@2 e5@6 f#5@8 b4@2 c#5@8 ~@2 c#5@2 b4@2 a#4@2 b4@2, ~@3 a#4@2 ~@123]/8",
  R: "[~@2 b4 ~ g#4@8 ~@2 c#5@4 c5@2 c#5@2 e5@4 d#5@2 e5@2 f#5@8 f#5@10, ~@3 a#4@2 ~@43]/3", S: "~@7 f#4",
  T: "c#5@3 b4", U: "c#5@3 d#5@3 e5@2", V: "f#5@3 e5", W: "a#4@3 b4@3 e5@2", X: "d#5@5 c#5 b4@2", Y: "c#5 f#4@5 g#4@2",
  Z: "a4@3 g#4@3 f#4@2", AA: "c#5@3 b4@3 a4@2", AB: "g#4!2 b4!2 a#4!2 b4!2 d#5!2 b4!2 a#4!2 b4!2",
  AC: "e5!2 b4!2 a#4!2 b4!2 g#4!2 a#4!2 f#4!2 g#4!2", AD: "g#4!2 b4!2 a#4!2 b4!2 d#5!2 b4!2 a#4!2 g#4!2",
  AE: "g4!4 g#4!4 a#4!4 d#5@4", AF: "[c#5@12 a#4@2 b4@6 c#5@8 f#4@2 g#4@14 f#4 g#4 f#4@2]/3",
  AG: "f4@2 f#4@2 g#4@2 a#4@2 b4@2 c#5@2 b4 c#5 b4 a#4", AH: "[g#4@6 c#4 d#4@3 g#4@3 f#4@3]/2",
  AI: "[g#4@2 a#4@2 b4@10 f4@4 f#4@2 g#4@2 a#4@2 b4@2 c#5@2 b4 c#5 b4 a#4]/2", AJ: "[g#4@23 ~@9]/2",
  AK: "e5!2 d#5!2 e5!2 f#5!2 g#5!2 f#5!2 e5!2 d#5!2", AL: "c#5!2 c5!2 c#5!2 d#5!2 e5!2 d#5!2 c#5!2 c5!2",
  AM: "f#4!2 f4!2 f#4!2 g#4!2 a#4!2 g#4!2 f#4!2 f4!2", AN: "b4!2 a#4!2 b4!2 c#5!2 d#5!2 c#5!2 b4!2 a#4!2",
  AO: "e5!2 d#5!2 e5!2 f#5!2 g#5!2 f#5!2 e5 f#5 e5 d#5", AP: "f#5",
})).s("gm_distortion_guitar").gain(0.67).pan(0.7)

// other · contrabass · "Octave An"
const contrabass = note(`<
  ~@40 A B C D E F G H I@2 ~ J K L M J ~@68 N@2 O P@2 Q@8 R@3 ~@23 S T U V W X Y Z AA AB AC AD AE AB AC AD AE AF@3 AG
  AH@2 AI@2 AJ ~@7 AK AL AM AN AO AP ~@60
>`.pickRestart({
  A: "c#5@3 a#4", B: "b4@3 c#5@3 b4@2", C: "a#4 b4 a#4 g#4 g#4@8 g#4 a#4 g#4@2", D: "f#4 g#4 a#4 b4 c#5 b4 a#4 g#4",
  E: "a#4@2 c#5@4 c#5 d#5", F: "f5@6 d#5 f5", G: "f#5@2 f#5 f5 d#5@8 c#5 d#5 c#5@2", H: "b4 c#5 d#5 f5 f#5 g#5 a#5 c#6",
  I: "c#6/2", J: "b4 d#5 f#5 f#5@4 ~", K: "f#4@3 f4@3 d#4@2", L: "b3@6 c#4@6 b3@3 ~", M: "a#3 b3 a#3 g#3 g#3@12",
  N: "[f#6@7 ~ f#6@4 d#6@2 e6@6 f#6@6 e6@6]/2", O: "d#6@2 e6@2 d#6@7 ~ g#5@2 a#5@2",
  P: "[b5 c#6 d#6 e6 d#6 c#6 b5 c#6@4 ~ c#6 b5 a#5 b5]/2",
  Q: "[~@2 b5 ~ g#5@8 ~@2 c#6@4 c6@2 c#6@2 e6@4 d#6@2 e6 ~ f#6@8 f#6@2 ~@2 a#6@2 ~@2 b6@12 a#6@2 b6@2 b6@5 ~ b6@2 a#6@6 b6@2 g#6@12 ~@2 d#6@2 e6@6 f#6@8 b5@2 c#6@8 ~@2 c#6@2 b5@2 a#5@2 b5@2, ~@3 a#5@2 ~@123]/8",
  R: "[~@2 b5 ~ g#5@8 ~@2 c#6@4 c6@2 c#6@2 e6@4 d#6@2 e6@2 f#6@8 f#6@10, ~@3 a#5@2 ~@43]/3", S: "~@7 f#5",
  T: "c#6@3 b5", U: "c#6@3 d#6@3 e6@2", V: "f#6@3 e6", W: "a#5@3 b5@3 e6@2", X: "d#6@5 c#6 b5@2", Y: "c#6 f#5@5 g#5@2",
  Z: "a5@3 g#5@3 f#5@2", AA: "c#6@3 b5@3 a5@2", AB: "g#5!2 b5!2 a#5!2 b5!2 d#6!2 b5!2 a#5!2 b5!2",
  AC: "e6!2 b5!2 a#5!2 b5!2 g#5!2 a#5!2 f#5!2 g#5!2", AD: "g#5!2 b5!2 a#5!2 b5!2 d#6!2 b5!2 a#5!2 g#5!2",
  AE: "g5!4 g#5!4 a#5!4 d#6@4", AF: "[c#6@12 a#5@2 b5@6 c#6@8 f#5@2 g#5@14 f#5 g#5 f#5@2]/3",
  AG: "f5@2 f#5@2 g#5@2 a#5@2 b5@2 c#6@2 b5 c#6 b5 a#5", AH: "[g#5@6 c#5 d#5@3 g#5@3 f#5@3]/2",
  AI: "[g#5@2 a#5@2 b5@10 f5@4 f#5@2 g#5@2 a#5@2 b5@2 c#6@2 b5 c#6 b5 a#5]/2", AJ: "g#5",
  AK: "e6!2 d#6!2 e6!2 f#6!2 g#6!2 f#6!2 e6!2 d#6!2", AL: "c#6!2 c6!2 c#6!2 d#6!2 e6!2 d#6!2 c#6!2 c6!2",
  AM: "f#5!2 f5!2 f#5!2 g#5!2 a#5!2 g#5!2 f#5!2 f5!2", AN: "b5!2 a#5!2 b5!2 c#6!2 d#6!2 c#6!2 b5!2 a#5!2",
  AO: "e6!2 d#6!2 e6!2 f#6!2 g#6!2 f#6!2 e6 f#6 e6 d#6", AP: "f#6",
})).s("gm_contrabass").gain(0.29).pan(0.2)

// bass · electric bass finger · "Hansi fre"
const bass = note(`<
  ~@32 A B A C A B A C D E D F D E D G H I J I H I J I K L K L K L K L M N M N M N M N O P Q H O P I H R S T U R S Q V
  W@4 O P O P O P O P X Y Z AA X Y Z AA AB AC AD AE AB AC AD AE AF@2 AG@2 AF@2 AG@2 AH@8 AI@8 R AJ AK AL R AJ AK AM O P
  Q H O P I H R S T U R S Q V I Q AN Q I Q AN AO R AP AQ AR R AP AQ AR H AS AT AU H AS AT AU H AS AT AU H AS AT AU AV AQ
  AJ T S Q R@2 AW AJ R@2 S AJ S AJ U S P Q O P Q H O P I H R S T U R S Q V AX@5 ~@25
>`.pickRestart({
  A: "f#1 d#1!2 f#1 d#1!4", B: "d#1!4 d#1@2 d#1@2 d#1!4 d#1@2 d#1@2", C: "d#1!4 d#1@2 a1@10", D: "d#2", E: "c#2",
  F: "b1 g#1", G: "b1 c#2", H: "d#1", I: "b1", J: "a#1", K: "d#1 ~ d#1 ~ d#1!5 ~ a#1@2 d#1 ~ b1@2",
  L: "d#1 ~ d#1 ~ d#1!4 d#1@2 b1@2 d#1 ~ a#1@2", M: "g#1!4 b1@2 g#1!4 c#2@2 g#1!4", N: "d2@2 g#1!4 c#2@2 g#1!4 d2@4",
  O: "g#1", P: "e1", Q: "f#1", R: "g#1@2 g#1!14", S: "e1@2 e1!14", T: "b1@2 b1!14", U: "d#1@2 d#1!14", V: "g1",
  W: "g#1@3 ~ g#1@3 ~ g#1@3 ~ g#1@3 ~", X: "c#2!8", Y: "c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2!4",
  Z: "a1 c#2!3 a1 c#2!2 a1", AA: "c#2@2 a1@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2!4", AB: "d#2!8",
  AC: "d#2@2 d#2@2 d#2@2 d#2@2 d#2@2 d#2@2 d#2!4", AD: "b1 d#2!3 b1 d#2!2 b1",
  AE: "d#2@2 b1@2 d#2@2 d#2@2 d#2@2 d#2@2 d#2!4", AF: "[g#1 a#1@3]/2", AG: "[a#1@3 g#1@3 b1@4 c#2@2 c#2@4]/2",
  AH: "[g#1@3 ~ g#1!5 ~ g#1@3 ~ e1@5 ~ e1!5 ~ e1@3 ~ g#1@5 ~ g#1!5 ~ g#1@3 ~ e1@5 ~ e1!5 ~ e1@3 ~ f#1@5 ~ f#1!5 ~ f#1@2 ~@2 c#1@5 ~ c#1!5 ~ c#1@3 ~ c#1@5 ~ c#1!5 ~ c#1@3 ~ d#1@5 ~ d#1!5 ~ d#1@3 ~ g#1@2]/8",
  AI: "[~@4 g#1!5 ~ g#1@2 ~@2 e1@5 ~ e1!5 ~ e1@3 ~ g#1@5 ~ g#1!5 ~ g#1@2 ~@2 e1@5 ~ e1!5 ~ e1@3 ~ f#1@5 ~ f#1!5 ~ f#1@2 ~@2 c#1@5 ~ c#1!5 ~ c#1@3 ~ c#1@5 ~ c#1!5 ~ c#1@3 ~ d#1@5 ~ d#1!5 ~ d#1@5 ~]/8",
  AJ: "f#1@2 f#1!14", AK: "c#1@2 c#1!14", AL: "e1@2 e1!6 f#1@2 f#1!6, c#1 ~@15", AM: "e1 f#1", AN: "a1",
  AO: "a1@3 g#1@3 g1@2", AP: "e2@2 e2!14", AQ: "c#2@2 c#2!14", AR: "d#2@2 d#2!14", AS: "f#1 f1", AT: "c#1",
  AU: "b0 c#1", AV: "g#1@2 [g#1,f2] g#1!13", AW: "e1@2 e1!14, g#1 ~@15", AX: "[~ g#1@67 ~@12]/5",
})).s("gm_electric_bass_finger").gain(0.8)

// other · shanai · "Hansi' "H"
const shanai = note(`<
  ~@48 A B C@2 D E F G H@2 I@2 J@2 K L M N O P@2 Q R S T@2 U V W X Y@2 Z@2 AA@2 AB AC AD AE AF@3 ~ AG AH AI@4 AJ@2 AK AL
  AM AN@5 AO AP AQ@2 AR@2 AS AT ~ AU@3 ~ AV@3 ~@16 AW@2 AX@2 AY AZ BA BB T@2 U V W X Y@2 Z@2 AA@2 AB AC AD BC ~@38 BD
  BE@2 BF@2 BG BH BI BJ BK BL BM BN BO T@2 U V W X Y@2 Z@2 AA@2 AB AC AD BP BQ@3 ~@27
>`.pickRestart({
  A: "~@2 a#3!2", B: "b3@3 c#4@3 b3@2", C: "[b3 a#3@4 ~@2 a#3]/2", D: "a#3", E: "g#3 ~ a#3@2",
  F: "a#3@4 d#3 ~@7 d#4@3 ~", G: "f#4@2 d#4@3 ~ d#4@3 ~@3 d#4@4", H: "[d#4@4 d#4@2 d#4 f#4@2 d#4@3 ~@2 d#4@2]/2",
  I: "[d#4@2 d#4@6 f#4@4 a#4@2 a#4@7 ~@7 a#4@4]/2", J: "a#4!2 ~ a#4", K: "a#4 b4 c#5 b4", L: "a#4@3 a#4",
  M: "a#4 g#4@7", N: "~@4 g#3@2 ~@2 g#3@2 g#3@3 ~@3", O: "g#3 ~@3",
  P: "[~@4 g#4@2 ~@2 g#4@2 g#4@3 ~ b4@5 ~ g#4@7 ~@5]/2", Q: "~@2 b3 c#4 d4 c#4 b3@2",
  R: "g#3@2 ~@2 [b3,g#4,b4]@3 ~@3 [c#4,a#4,c#5]@3 ~@3", S: "[d4,b4,d5]@3 ~@3 [c#4,a#4,c#5]@3 ~@7",
  T: "[[g#4,b4]@7 ~ [g#4,b4]@2 [f#4,a#4]@3 ~ [f#4,a#4]@4 [e4,g#4]@7 ~@3 g#4@4]/2", U: "f#4@3 g#4 f#4@2 e4@2",
  V: "d#4@6 c#4@2 d#4@3 ~ d#4@4", W: "g#4@2 ~ a#4, ~@4 b4@3 ~", X: "~ g#4@4 ~ g#4@2, a#4@5 ~@11",
  Y: "[f#4@8 b4@4 a#4@2 a#4@15 ~@3]/2",
  Z: "[[g#4,b4]@6 ~@2 [g#4,b4]@2 [f#4,a#4]@3 ~ [f#4,a#4]@4 [e4,g#4]@7 ~@2 b4@4 ~]/2", // G#m F# E
  AA: "[c#5@7 ~ b4@2 a#4@3 ~ a#4@11 ~@3 a#4@3 ~]/2", AB: "b4@7 ~ a#4@7 ~", AC: "g#4@11 ~ g#4@3 ~",
  AD: "f#4@7 ~ f#4@6 ~@2", AE: "[d#4,g4]@8 [c#4,g4]@7 ~", AF: "[[b3,d#4,g#4]@41 ~@7]/3", AG: "d#4@6 g#3 ~",
  AH: "g#3@5 ~ g#3 ~", AI: "[g#3@6 ~ a#3@7 ~ b3@8 ~ f#4@3 d#4@3 ~ d#4@22 ~@6 d#4@3 ~@2]/4",
  AJ: "[c#4@2 d#4 ~ d#4@11 ~]/2", AK: "~@4 g#4@3 g#4@4 g#4@4 g#4", AL: "~ g#4@3 ~@4",
  AM: "~@4 g#4@2 ~@2 g#4@3 ~ a4@3 ~",
  AN: "[b4@7 ~@4 a4@3 ~ g#4@3 ~ f#4@4 ~ e4@3 d#4@2 ~ c#4@9 ~@4 g#3@3 ~ g#3@4 c#4@3 ~@2 c#4@3 d#4@3 ~ e4@8 ~ d#4@6 ~@2]/5",
  AO: "~@4 a#4@2 ~@2 a#4@3 ~ a#4@2 ~@2", AP: "a#4!2 ~ a#4@3 ~@2",
  AQ: "[~@4 g#4@2 ~ g#4@3 ~ a#4@3 ~ b4@6 ~@7 [a#3,a#4]@3 ~]/2", // A#
  AR: "[a#4@4 [a#3,d#4]@4 d#4@2 [a#3,d#4]@4 ~ d#4@6 ~@7 d#4@4, a#3@2 ~@6 a#3 ~@6 a#3@2 ~@15]/2", // D#5
  AS: "d#4@3 ~ f#4@4 f4@4 f#4@3 ~", AT: "g#4@7 f#4@7 ~@2", AU: "[g#3@3 ~ a#3 ~ a#3@2 ~@2 a#3@4 ~ f4@6 a#3@16 ~@11]/3",
  AV: "[a#3@3 ~ a#3 ~ a#3@3 g#3@5 ~ a#3@30 ~@3]/3", AW: "[~@4 g#4@2 ~@2 g#4@2 g#4@3 ~ g#4@4 f#4@10 ~@4]/2",
  AX: "[~@4 b4@2 ~@2 b4@2 b4@3 ~ a#4@4 g#4@10 ~@4]/2", AY: "~@4 d#4 d#4@2 ~", AZ: "f#4@2 e4 d#4@2 c#4 c#4@2",
  BA: "b3@6 c#4@5 ~ d#4@2 ~@2", BB: "~@2 c#4@5 ~ c#4@7 ~, d#4 ~@3", BC: "g4@7 ~@9", BD: "~@8 d#4@3 ~ d#4@3 ~",
  BE: "[d#4@7 ~ f#4@5 ~ e4@9 ~ g#4@3 ~ g#4@3 ~]/2", BF: "[f#4@3 ~ g#4@3 ~ f#4@4 e4@2 d#4@6 ~@4 g#4@4 a#4@4]/2",
  BG: "b4 a#4 g#4 f#4", BH: "d#5@3 c#5@3 b4@2", BI: "f#4", BJ: "~@4 g#4@3 ~ g#4@3 ~ g#4@3 ~",
  BK: "a#4@3 ~ a#4 ~ a#4@9 ~", BL: "~@4 a#4@3 ~ d#5@4 a#4@3 ~", BM: "b4@5 ~ g#4 ~", BN: "g#4@5 ~ a#4@6 b4@4",
  BO: "a#4 g#4 f#4@5 ~", BP: "[d#4,g4]@7 ~ [c#4,g4]@7 ~", BQ: "[~ [b3,d#4,g#4]@44 ~@3]/3",
})).s("gm_shanai").gain(0.8).pan(0.4)

// other · orchestra hit · "Backing V"
const orchestra_hit = note("<~@70 A B C D ~@6 C D ~@66 C D ~@6 C D ~@58 C D ~@6 C D ~@36>".pickRestart({
  A: "~@4 [b2,b3]@3 ~@3 [c#3,c#4]@3 ~@3", B: "[d3,d4]@3 ~@3 [c#3,c#4]@3 ~@7", C: "g#3@3 ~@5 g#3@2 f#3@2 ~@2 f#3@2",
// … 131 more lines