Strudelify

'Disco' la Passione

Rea

KeyA minorTempo129 bpm
0:00/0:00
// 'Disco' la Passione — Rea
// 129 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 160 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(129/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.

// other · timpani · "#Timpani"
const timpani = note("<~@119 [~@4 a2!2 ~ a2 a2@2 ~@6] ~@40>").s("gm_timpani").gain(0.64)

// other · piano · "#A.Piano"
const piano = note(`<
  ~@13 A B C D E B F G H B I G J K L M ~@24 A B C D N O P Q ~@24 A B C D N O P Q H B I G J K R Q ~@26 H B I G J K R Q A
  B C D N O P Q H B I G J K R Q A B C D N O P Q ~
>`.pickRestart({
  A: "~@4 [g4,g5]@4 [e5,e6]@5 ~ [d5,d6]@2", B: "[f5,f6]@15 ~", C: "~@4 [g4,g5]@4 [f5,f6]@5 ~ [e5,e6]@2",
  D: "[g5,g6]@15 ~", E: "~@4 [g5,g6]@4 [f5,f6]@5 ~ [e5,e6]@2", F: "~@4 [f5,f6]@4 [e5,e6]@5 ~ [d5,d6]@2",
  G: "[e5,e6]@15 ~", H: "~@4 [e5,e6]@4 [a5,a6]@5 ~ [g5,g6]@2", I: "~@4 [d5,d6]@4 [g5,g6]@5 ~ [f5,f6]@2",
  J: "~@4 [c5,c6]@4 [f5,f6]@5 ~ [e5,e6]@2", K: "[d5,d6]@15 ~", L: "~@4 [b4,b5]@4 [e5,e6]@5 ~ [d5,d6]@2",
  M: "[c5,c6]@15 ~", N: "~@4 [g5,e6,g6]@4 [f5,d6,f6]@5 ~ [e5,c6,e6]@2", O: "[f5,d6,f6]@15 ~",
  P: "~@4 [f5,d6,f6]@4 [e5,c6,e6]@5 ~ [d5,b5,d6]@2", Q: "[e5,c6,e6]@15 ~",
  R: "~@4 [d5,b5,d6]@4 [g5,e6,g6]@5 ~ [f5,d6,f6]@2", // G C Dm
})).s("gm_piano").gain(0.28)

// bass · electric bass finger · "Fing.Bass"
const bass = note(`<
  ~@6 A@2 B C A@2 B D E F G H I A J D E F G H I A B@2 A@2 B K A@2 B D L F M H I A B@2 A@2 B N A@2 B D O P Q R S A B@2
  A@2 B@2 A@2 B D L F M H I A B@2 A@2 B N A@2 B D O P Q R S A B D O P Q R S A B@2 ~@26 O P Q R T U V W O P Q R T U V W O
  P Q R T U V W O P Q R T U V W
>`.pickRestart({
  A: "e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2@2", B: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2",
  C: "a1 ~@3 a1 ~@3 a1 ~ a1@2 a1 ~ a1@2", D: "c#2 ~ c#2@2 c#2 ~ c#2@2 c#2 ~ c#2@2 c#2 ~ c#2@2",
  E: "d2 ~ d2@2 d2 ~ d2@2 d2 ~@3 d2 ~ d2@2", F: "g1 ~ g1@2 g1 ~ g1@2 g1 ~ g1@2 g1 ~ g1@2",
  G: "c2 ~ c2@2 c2 ~ c2@2 c2 ~@3 c2 ~ c2@2", H: "f2 ~ f2@2 f2 ~ f2@2 f2 ~ f2@2 f2 ~ f2@2",
  I: "b1 ~ b1@2 b1 ~ b1@2 b1 ~ b1@2 b1 ~ b1@2", J: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1 b1",
  K: "a1 ~@3 a1 ~@3 a1 ~@3 a1 ~ a1@2", L: "d2 ~ d2@2 d2 ~ d2@2 d2 ~@3 d2 ~@3", M: "c2 ~ c2@2 c2 ~ c2@2 c2 ~@3 c2 ~@3",
  N: "a1 ~@3 a1 ~ a1@2 a1 ~@3 a1 ~ a1@2", O: "d2 ~@3 d2 ~@3 d2 ~@3 d2 ~@3", P: "g1 ~@3 g1 ~@3 g1 ~@3 g1 ~@3",
  Q: "c2 ~@3 c2 ~@3 c2 ~@3 c2 ~@3", R: "f2 ~@3 f2 ~@3 f2 ~@3 f2 ~@3", S: "b1 ~@3 b1 ~ b1@2 b1 ~@3 b1 ~@3",
  T: "b1 ~@3 b1 ~@3 b1 ~@3 b1 ~@3", U: "e2 ~@3 e2 ~@3 e2 ~@3 e2 ~@3", V: "a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3",
  W: "c#2 ~@3 c#2 ~@3 c#2 ~@3 c#2 ~@3",
})).s("gm_electric_bass_finger").gain(0.25)

// chords · string ensemble 1 · "#St.Strin"
const string_ensemble_1 = note(`<
  A B C@4 ~@6 D E F@2 G@2 H@2 I@4 J@2 K@2 L@2 ~@8 M@2 N@4 O@2 P Q R S@3 T E F@2 U@2 V@2 W@2 ~@3 X Y@2 Z AA AB@2 AC@2
  AD@2 AE@2 P Q R AF@2 Q T E F@2 U@2 V@2 AG@2 AH@2 J@2 AI@2 AJ@2 ~@4 AK AL AM AN AK AL AM AN AK AO ~@3 AP F@2 AQ@2 AR@2
  AS@4 J@2 AT@2 AU@2 F@2 AQ@2 AR@2 AS@4 J@2 AT@2 AU@2 F@2 AQ@2 AR@2 AV@2
>`.pickRestart({
  A: "g4 [d#4,f4] d4 [a#3,c4] a3 ~ a3 [a#3,c4] [d4,d#4,f4] [g4,a4] [a#4,c5] ~ c5 [a4,a#4] [d#4,f4,g4] d4, ~@5 g3@2 ~@4 d5@2 ~@3", // D#sus2 A#sus2 Dm Gsus2 A#sus2 A#maj7 D#
  B: "c4 ~ c4 [d4,f4,g4] [a4,c5] [d5,d#5] ~@2 f5 [d5,d#5] [g4,a#4,c5] f4 d#4 ~ d#4 [f4,g4,a#4], ~ a#3@2 ~@3 f5@2 ~@5 d4@2 ~, ~@7 g5@2 ~@7", // G7 Am D#maj7 C7 Gm7
  C: "[[c5,d5] [d#5,f5] [a5,c6] ~ c6 [a5,a#5] [d#5,f5,g5] d5 c5 ~ c5 [d5,d#5,f5] [a5,a#5] [d6,d#6] [f6,g6] c7@49, ~@3 d6@2 ~@4 a#4@2 ~@53]/4", // Csus2 D#sus2 Am A#maj7 D# Dm A#maj7 D#maj7 …
  D: "~@8 [b4,c5] [f4,g4,a4] [c4,d4,e4] [a3,b3] [b3,c4,d4,e4] [f4,g4] [a4,b4] c5", // Cmaj7 F C Asus2 Cmaj7 Fsus2 Asus2
  E: "a5 ~@3 [g4,g5]@4 [e5,e6]@6 [d5,d6]@2", F: "[[f5,f6]@10 [g4,g5]@2 [f5,f6]@3 [e5,e6]]/2",
  G: "[[g5,g6]@10 [g5,g6]@2 [f5,f6]@3 [e5,e6]]/2", H: "[[f5,f6]@10 [f5,f6]@2 [e5,e6]@3 [d5,d6]]/2",
  I: "[~@12 [a5,a6]@3 [g5,g6] [f5,f6]@10 [d5,d6]@2 [g5,g6]@3 [f5,f6], [e5,e6]@5 ~@3]/4", // A G F D G F E
  J: "[[e5,e6]@10 [c5,c6]@2 [f5,f6]@3 [e5,e6]]/2", K: "[[d5,d6]@10 [b4,b5]@2 [e5,e6]@3 [d5,d6]]/2",
  L: "[[c5,c6]@28 [d6,e6,a6] [a5,b5,c6] [c5,d5,e5,f5] [a4,b4]]/2", M: "[d5,f5]/2",
  N: "[~ g5 [b4,d5,f5]@2, [c5,e5]@33 ~@31]/4", O: "[a4,c5,e5]/2", P: "[g#4,b4]@3 [a4,c5]", Q: "[b4,d5]",
  R: "[a4,c5]@3 [b4,d5]", S: "[[c5,e5]@15 ~ b4@11 ~ a4@3 ~ b4@16, ~@15 g#4@12 c5@4 d5@16 ~]/3",
  T: "[a4,c5]@8 [b4,c5] [f4,g4,a4] [c4,d4,e4] [a3,b3] [b3,c4,d4,e4] [f4,g4] [a4,b4] c#5", // Am Cmaj7 F C Asus2 Cmaj7 Fsus2 Asus2
  U: "[[g5,g6]@10 [g5,e6,g6]@2 [f5,d6,f6]@3 [e5,c6,e6]]/2", V: "[[f5,d6,f6]@10 [f5,d6,f6]@2 [e5,c6,e6]@3 [d5,b5,d6]]/2",
  W: "[[c6,e6]@15 ~, e5]/2", X: "a5@7 ~", Y: "[~@6 b4@2 e5@3 f5@3 d5@14 ~@4]/2",
  Z: "[a4,c5]@2 ~ b4@2 [a4,c5]@3 [c5,e5]@8, ~@2 d5@3 ~@11", AA: "~@2 [g3,a4]@2 [g4,g5]@3 [e4,e5]",
  AB: "[[d5,f5]@10 [f5,a5]@2 [e5,g5]@3 [d5,f5]]/2", AC: "[[c5,e5]@10 [e5,g5]@2 [d5,f5]@3 [c5,e5]]/2",
  AD: "[[b4,d5]@10 [d5,f5]@2 [c5,e5]@3 [b4,d5]]/2", AE: "[c5,e5]/2",
  AF: "[[c5,e5]@15 ~ b4@12 [a4,c5]@4, ~@15 g#4@12 ~@5]/2", AG: "[[e5,c6,e6]@10 [e5,e6]@2 [a5,a6]@3 [g5,g6]]/2",
  AH: "[[f5,f6]@10 [d5,d6]@2 [g5,g6]@3 [f5,f6]]/2", AI: "[[d5,d6]@10 [b4,d5,b5]@2 [e5,g5,e6]@3 [d5,f5,d6]]/2",
  AJ: "[c5,e5,c6]/2", AK: "~@8 b5@2 ~@2 g#5 ~ e5 ~", AL: "d5@3 ~@13", AM: "~@6 e5 ~ c6@2 ~@2 a5 ~ d5 ~",
  AN: "e5@3 ~@13", AO: "d5 ~@7", AP: "~@4 [a2,a3,a4,a5]!3 ~ [a2,a3,a4,a5] ~@7",
  AQ: "[[g5,g6]@10 [e5,g5,e6,g6]@2 [d5,f5,d6,f6]@3 [c5,e5,c6,e6]]/2", // G Em Dm C
  AR: "[[d5,f5,d6,f6]@10 [d5,f5,d6,f6]@2 [c5,e5,c6,e6]@3 [b4,d5,b5,d6]]/2", // Dm C Bm
  AS: "[[c5,c6]@15 ~ c#5@4 ~@4 [a5,a6]@6 [g5,g6]@2 [f5,f6]@20 [d5,d6]@4 [g5,g6]@6 [f5,f6]@2, [e5,e6]@5 ~@3, ~@15 c#6@4 ~@45]/4", // C A G F D G F E
  AT: "[[d5,d6]@10 [g#4,b4,g#5,b5]@2 [c5,e5,c6,e6]@3 [b4,d5,b5,d6]]/2", // D G#m C Bm
  AU: "[[c5,c6]@8 [c#5,c#6]@2 [g4,g5]@2 [e5,e6]@3 [d5,d6], [a4,a5]@5 ~@3]/2", // C C# G E D A
  AV: "[[c5,c6]@15 ~ c#5@4 ~@12, [e5,e6]@5 ~@3, ~@15 c#6@4 ~@13]/2", // C E
})).s("gm_string_ensemble_1").gain(0.16)

// chords · string ensemble 1 · "#Vlo.Strn"
const string_ensemble_1_2 = note(`<
  ~@6 A@2 B@2 C@2 D@2 E F@4 G H@2 E F@4 G H@2 I J K L I J M@2 N@2 O@2 P@2 Q@2 I J K L I J R ~@9 I J K L I J M@2 S@2 T@2
  U@2 Q@2 I J V@2 I J R ~@7 W ~ X@2 Y@2 Z@2 H@2 ~ AA ~ AB ~ AA ~ AB ~ AA ~ AB ~@6 X@2 Y@2 AC@2 AD@2 S@2 T@2 AC@2 AD@2
  S@2 T@2 AC@2 AD@2 S@2 T@2 AC@2 AD@2 S@2 T@2 AE@4
>`.pickRestart({
  A: "[[g#3,b3]@3 [a3,c4] [b3,d4]@12]/2", B: "[[a3,c4]@3 [b3,d4] [c4,e4]@12]/2",
  C: "[[g#3,b3]@3 ~ d4@10 [d4,f4]@2, ~@3 [a3,c4] ~@12, ~@7 b3@20 ~@5]/2", D: "[c4@15 a3@16 ~, e4]/2", E: "d4",
  F: "[b3@31 a3@32 ~]/4", G: "g#3", H: "a3/2", I: "[g#3,b3]@3 [a3,c4]", J: "[b3,d4]", K: "[a3,c4]@3 [b3,d4]",
  L: "[c4,e4]", M: "[c4@16 c#4@3 ~ a3@4 g4@6 [c#4,e4]@2, a3@19 g3@10 ~@3]/2",
  N: "[[d4,f4]@10 [b3,d4]@2 [d4,f4]@3 [b3,d4]]/2", O: "[[c4,e4]@10 [a3,c4]@2 [c4,e4]@3 [a3,c4]]/2",
  P: "[[b3,d4]@10 [d4,f4]@2 [c4,e4]@3 [b3,d4]]/2", Q: "[a3,c4]/2", R: "[a3,c4]", S: "[d4@8 c4@7 b3@16 ~, f4]/2",
  T: "[c4@8 b3@7 a3@16 ~, e4]/2", U: "[b3@8 a3@7 g#3@16 ~, d4]/2", V: "[[a3,c4]@12 [b3,d4]@3 ~ e4@16, ~@15 c4@16 ~]/2",
  W: "~@3 b2", X: "[d4@8 c4@7 b3@16 ~]/2", Y: "[c4@8 b3@7 a3@16 ~]/2", Z: "[b3@8 a3@7 g#3@16 ~]/2",
  AA: "~@6 [d4,f4] ~ [c4,e4]@3 ~ [b3,d4]@3 ~", AB: "~@6 [c4,e4] ~ [b3,d4]@3 ~ [a3,c4]@3 ~",
  AC: "[[b3,d4]@8 f4@4 a4@3 [g#3,g#4]@17, ~ a3 ~@2]/2", AD: "[a3@3 b3 ~ a3 e4 a4, e4@5 ~@3, ~ c#4]/2",
  AE: "[[b3,d4]@8 f4@4 a4@3 [g#3,g#4]@16 ~@12 b3@4 ~@5 a3@3 e4@4 ~ a4@4, ~@8 a3@8 ~@15 a3@12 ~@5 c#4@16, ~@8 e4@5 ~@3]/4", // Bm G#
})).s("gm_string_ensemble_1").gain(0.13)

// chords · string ensemble 1 · "#Vlo.Strn" · soft notes
const string_ensemble_1_soft = note(`<
  ~@6 A@2 B@2 A@2 C D E F G H I J C D E F G H I J B@2 A@2 B@2 A@2 C D E F G H I J B@2 A@2 B@2 A@2 C D E F G H I J B@2
  A@2 B@2 A@2 C D E F G H I J B@2 A@2 B@2 A@2 C D E F G H I J K D E F G H I J B@2 L@2 M@2 L@2 M@2 L@2 M@2 L N ~@4 E F G
  H I J O D E F G H I J O D E F G H I J O D E F G H I J O D E F G H I J O D
>`.pickRestart({
  A: "e3/2", B: "a2/2", C: "a2", D: "c#3", E: "d3", F: "g2", G: "c3", H: "f2", I: "b2", J: "e2", K: "a2@3 ~",
  L: "e2@5 ~ g#2@5 ~ b2@3 ~", M: "a2@5 ~ c3@5 ~ e3@3 ~", N: "e2 ~@7", O: "a2@3 b2",
})).s("gm_string_ensemble_1").gain(0.06)

// other · electric guitar clean · "#Clean Gt"
const electric_guitar_clean = note(`<
  ~@108 A@2 ~@17 B C D E F G H I J C K L M C N E B C D E F G H I J C K L M C N E ~
>`.pickRestart({
  A: "[~ [a3,a4], ~@7 e4@9]/2", B: "~@2 e4@2 a4@3 g4", C: "f4", D: "~@2 d4@2 g4@3 f4", E: "e4",
  F: "~@4 c4@4 f4@5 ~ e4@2", G: "d4", H: "~@4 b3@3 ~ e4@5 ~ d4 ~", I: "c4", J: "~@2 g3@2 e4@3 d4",
  K: "~@2 g3@2 f4@3 e4", L: "g4", M: "~@4 g4@4 f4@5 ~ e4@2", N: "~@4 f4@3 ~ e4@5 ~ d4 ~",
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.3)

// other · tremolo strings · "#Susp.Str"
const tremolo_strings = note("<~@64 [~@3 b5@5] ~@95>").s("gm_tremolo_strings").gain(0.25)

// other · string ensemble 1 · "#Vlo.Strn"
const string_ensemble_1_3 = note(`<
  A B C@4 ~@6 D E ~@14 F G ~@22 H E I J K L M N F O ~@22 H E I J K L M N F P I J K L M N F O ~@4 Q R S T Q R S T Q U ~@3
  V I J K L M N W X I J K L M N W X I J K L M N W X I J K L M N W X I J K L M N W X
>`.pickRestart({
  A: "g4 [d#4,f4] d4 [a#3,c4] a3 ~ a3 [a#3,c4,d4] [d#4,f4] [g4,a4] [a#4,c5] ~ c5 [a4,a#4] [d#4,f4,g4] d4, ~@5 g3@2 ~@4 d5@2 ~@3", // D#sus2 A#sus2 A# D#sus2 Gsus2 A#sus2 A#maj7 D#
  B: "c4 ~ c4 [d4,d#4,f4] [g4,a4] [c5,d5] [d#5,f5] ~ f5 [d5,d#5] [g4,a4,a#4] f4 d#4 ~ d#4 [f4,g4,a#4], ~ a#3@2 ~@4 g5@2 ~@4 d4@2 ~", // Dm Gsus2 Csus2 D#sus2 D#maj7 Gm Gm7
  C: "[[d5,d#5] [f5,g5] [a#5,c6] ~ c6 [a5,a#5] [d#5,f5,g5] d5 c5 ~ c5 [d5,f5,g5] [a#5,c6] [d#6,f6] [g6,a#6] c7@49, ~@3 d6@2 ~@4 a#4@2 ~@53]/4", // D#maj7 Fsus2 A#sus2 A#maj7 D# G7 A#sus2 D#sus2 …
  D: "~@8 [b4,c5] [f4,g4,a4] [c4,d4,e4] [a3,b3] [b3,c4,d4,e4] [f4,g4] [a4,b4] c5", E: "a5 ~@15",
  F: "c5 a4 c5 a5 ~ a5 c5 a4 c5 a4 c5 a5 ~ a5 c5 a4",
  G: "a5 e5 c5 a4 e5 c5 a4 e4 c5 a4 e4 c4 [a4,e5,f5,a5,a6] [e4,a4,a#4,c5,d5] [c4,e4,f4,d5] [a3,d4]", // Fmaj7 Am Dm7 D5
  H: "~@8 [b4,c5] [f4,g4,a4] [c4,d4,e4] [a3,b3] [b3,c4,d4,e4] [f4,g4] [a4,b4] c#5", // Cmaj7 F C Asus2 Cmaj7 Fsus2 Asus2
  I: "a4 f4 a4 d5 f5 d5 a4 f4 a4 f4 a4 d5 f5 d5 a4 f4", J: "b4 g4 b4 d5 f5 d5 b4 g4 b4 g4 b4 d5 f5 d5 b4 g4",
  K: "g4 e4 g4 b4 e5 b4 g4 e4 g4 e4 g4 b4 e5 b4 g4 e4", L: "a4 e4 a4 c5 e5 c5 a4 e4 a4 e4 a4 c5 e5 c5 a4 e4",
  M: "f4 d4 f4 a4 d5 a4 f4 d4 f4 d4 f4 a4 d5 a4 f4 d4", N: "g#4 e4 g#4 b4 d5 b4 g#4 e4 g#4 e4 g#4 b4 d5 b4 g#4 e4",
  O: "e5 c5 e5 a5 c6 a5 e5 c5 e5 c5 e5 a5 c6 a5 e5 c5", P: "a5 e5 c5 a4 e5 c5 a4 e4 c5 a4 e4 c4 a4 e4 c4 a3",
  Q: "~@6 e5 ~ b5@2 ~@2 g#5 ~ e5 ~", R: "d5@3 ~@13", S: "~@6 e5 ~ c6@2 ~@2 a5 ~ d5 ~", T: "e5@3 ~@13", U: "d5 ~@7",
  V: "~@4 [a2,a3,a4,a5]!3 ~ [a2,a3,a4,a5] ~@7", W: "e4 c4 e4 a4 c5 a4 e4 c4 e4 c4 e4 a4 c5 a4 e4 c4", X: "c#4",
})).s("gm_string_ensemble_1").gain(0.19).pan(0.7)

// bass · synth bass 1 · "Synth.Bas"
const bass_2 = note(`<
  ~@6 A@2 B@2 A@2 B C D E F G H A I C D E F G H A B@2 A@2 B@2 A@2 B C D E F G H A B@2 A@2 B@2 A@2 B C D E F G H A B@2
  A@2 B@2 A@2 B C D E F G H A B@2 A@2 B@2 A@2 B C D E F G H A B C D E F G H A B@2 A@2 B@2 A@2 B@2 A@2 B@2 A J ~@3 K ~@8
  D E F G H A L C D E F G H A L C D E F G H A L C D E F G H A L C
>`.pickRestart({
  A: "e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2@2", B: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2",
  C: "c#2 ~ c#2@2 c#2 ~ c#2@2 c#2 ~ c#2@2 c#2 ~ c#2@2", D: "d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2@2",
  E: "g1 ~ g1@2 g1 ~ g1@2 g1 ~ g1@2 g1 ~ g1@2", F: "c2 ~ c2@2 c2 ~ c2@2 c2 ~ c2@2 c2 ~ c2@2",
  G: "f2 ~ f2@2 f2 ~ f2@2 f2 ~ f2@2 f2 ~ f2@2", H: "b1 ~ b1@2 b1 ~ b1@2 b1 ~ b1@2 b1 ~ b1@2",
  I: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1 b1", J: "e2 ~@15", K: "~@4 a1!2 ~ a1!2 ~@7",
  L: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ b1@2",
})).s("gm_synth_bass_1").gain(0.12)

// bass · slap bass 1 · "Slap Bass"
const bass_3 = note(`<
  ~@9 A ~@4 B ~ C ~@5 D ~ C ~ E ~@6 F ~@4 G ~ H ~ E ~@6 I ~@4 J K L M N ~@11 G ~ H ~ E ~@6 I ~@4 J K L M N ~@3 J K L M N
  ~@3 O@2 P@2 O@2 P@2 O@2 P@2 O Q ~@3 R ~@8 S T U V W X Y Z S T U V W X Y Z S T U V W X Y Z S T U V W X Y Z
>`.pickRestart({
  A: "~ a2 ~ a2 ~@4", B: "~@5 d3@2 ~", C: "~@5 c3 ~@2", D: "~@5 d3 ~@2", E: "~@5 b2 ~ b2", F: "~ e3 ~ e3 ~ e3 ~@2",
  G: "~@5 d3 ~ d3", H: "~@5 c3 ~ c3", I: "~ a2 ~@3 a2 ~@2", J: "~ d3 ~ d3 ~ d3 ~ d3", K: "~ g2 ~ g2 ~ g2 ~ g2",
  L: "~ c3 ~ c3 ~ c3 ~ c3", M: "~ f3 ~ f3 ~ f3 ~ f3", N: "~ b2 ~@3 b2 ~ b2", O: "e2@2 ~ g#2@2 ~ b2@2",
  P: "a1@2 ~ c2@2 ~ e2@2", Q: "e2 ~@7", R: "~@4 a1!2 ~ a1!2 ~@7", S: "~@2 d3 ~@3 d3 ~@3 d3 ~@3 d3@2",
  T: "~@2 g2 ~@3 g2 ~@3 g2 ~@3 g2@2", U: "~@2 c3 ~@3 c3 ~@3 c3 ~@3 c3@2", V: "~@2 f3 ~@3 f3 ~@3 f3 ~@3 f3@2",
  W: "~@2 b2 ~@3 b2 ~@3 b2 ~@3 b2@2", X: "~@2 e3 ~@3 e3 ~@3 e3 ~@3 e3@2", Y: "~@2 a2 ~@3 a2 ~@3 a2 ~@3 a2@2",
  Z: "~@2 c#3 ~@3 c#3 ~@3 c#3 ~@3 c#3@2",
})).s("gm_slap_bass_1").gain(0.28)

// other · orchestral harp · "Harp"
const orchestral_harp = note("<A B C@6 ~@152>".pickRestart({
  A: "g4 [d#4,f4] [c4,d4] a#3 [g3,a3] [d#3,f3] [c3,d3] [d#3,f3,g3] [a3,a#3,c4,d4] [d#4,f4,g4] [a4,a#4,c5] d5 [a4,a#4,c5] [f4,g4] [d4,d#4] c4", // D#sus2 Csus2 Gsus2 D#sus2 Csus2 D# D7 D# …
  B: "[g3,a3,a#3] f3 [d#3,g3,a3] [a#3,c4,d4] [d#4,f4,g4] [a4,a#4] [c5,d5,d#5] [f5,g5] [d#5,f5] [c5,d5] [a4,a#4] [f4,g4] [c4,d4,d#4] [c3,d#3,f3,a#3] [g3,a#3,c4,d4] [d#4,f4,g4,a4]", // Gm Am7b5 A# D# A#maj7 Cm Fsus2 D#sus2 …
  C: "[[a#4,c5,d5,d#5] [f5,g5,a5] [a#5,c6] [c6,d6] [g5,a5,a#5] [d5,d#5,f5] [a4,a#4,c5] [f4,g4] d#4 [f4,g4,a4] [a#4,c5] [d#5,f5] [g5,a5,a#5] [c6,d6,d#6] [f6,g6,a6] [a#6,c7] ~@80, ~@11 d5@75 ~@10]/6", // Cm7 F A#sus2 Csus2 Gm Dm Am Fsus2 …
})).s("gm_orchestral_harp").gain(0.09).pan(0.3)

// other · taiko drum · "#Slde.Bas"
const taiko_drum = note("<~@5 [~@5 a#3@3] ~@154>").s("gm_taiko_drum").gain(0.4)

// drums · kick
const kick = s("bd").struct("<~@6 [x!4]!109 x ~@3 [~ x!3] [x!4]!40>").gain(0.48)

// drums · snare
const snare = s("sd").struct("<~@14 A@7 B A@8 ~@24 A@8 ~@24 A@15 B ~@25 C A@7 B A@7 B A@7 B A@7 B>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!3", C: "~@5 x!3",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct("<~@13 [~@7 x] ~@113 [~@3 x ~@2 x ~] ~@32>").gain(0.48)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@6
  [x ~ x!3 ~ x!3 ~ x!3 ~ x!2]!109
  x
  ~@4
  [~@2 x!3 ~ x!3 ~ x!3 ~ x!2]
  [x ~ x!3 ~ x!3 ~ x!3 ~ x!2]!38
  [x ~ x!3 ~ x!3 ~ x!3 ~ x ~]
>`).gain(0.48)
// … 37 more lines