Strudelify

Something's Gotten Hold of My Heart

Marc Almond

KeyF♯ minorTempo96 bpm
0:00/0:00
// Something's Gotten Hold of My Heart — Marc Almond
// 96 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 33, 4/4 at bar 34, 2/4 at bar 90, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 113 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(96/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.

// bass · acoustic bass
const bass = note(`<
  ~@2 A B C D E F G@3 H I J K L M N M N O P Q R S T U Q V W X W Y Z AA AB AC AD@2 AE AF AG AH AG AI AJ AK AL AM AN@2
  AO@2 AP ~ AO AP ~ AQ@14 AA AB AC AD@2 AE AF AG AH AG AI AD AR Q@2 AS N AT AU AV Q V W X W Y Z AA AB AC AD@2 AE AF AG
  AH AG AW AX@2 ~
>`.pickRestart({
  A: "~@8 b1@5 ~ b1 ~", B: "b1@7 ~ b1@5 ~ b1 ~", C: "b1@5 ~@3 f#2@5 ~ f#2 ~", D: "f#2 ~ f#2 ~ f2 ~ d#2@7 ~ d#2 ~",
  E: "d#2 ~ f2 ~ d#2@3 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~", F: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~@7",
  G: "[~@8 f#2@14 ~@2 e2@15 ~ f#2@8]/3", H: "c#2@7 ~ f#2@5 ~ f#2 ~", I: "f#2@7 ~ f#2@5 ~ f#2 ~",
  J: "f#2@7 ~ e2@5 ~ e2 ~", K: "e2@7 ~ f#2@5 ~ f#2 ~", L: "c#2@6 ~@2 f#2@5 ~ f#2 ~", M: "e2@5 ~ e2 ~ f#2@5 ~ f#2 ~",
  N: "c#2@5 ~ c#2 ~ f#2@5 ~ f#2 ~", O: "f#2@7 ~ f#2@4 ~@4", P: "f#2@3 g#2@2 a2@2 ~ e2@5 ~ e2 ~",
  Q: "e2@5 ~ e2 ~ e2@5 ~ e2 ~", R: "e2@5 ~ e2 ~ a2@4 ~@2 a2@2", S: "d2@5 ~ d2@2 c#2@5 ~ c#2 ~",
  T: "f#2@5 ~ f#2 ~ f#2@6 ~@2", U: "f#2@3 g#2@2 a2 ~@2 e2@5 ~ e2 ~", V: "e2@5 ~ e2@2 a2@4 ~@2 a2 ~",
  W: "e2@5 ~ e2@2 b2@4 ~@2 b2@2", X: "e2@5 ~ e2 ~ b2@4 ~@2 b2@2", Y: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2",
  Z: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2@3 ~", AA: "f#2@7 ~", AB: "e2@15 ~", AC: "f#2@8 c#2@7 ~",
  AD: "f#2@5 ~ f#2 ~ f#2@7 ~", AE: "e2@5 ~ e2 ~ e2@7 ~", AF: "f#2@5 ~ f#2 ~ c#2@6 ~@2", AG: "f#2@5 ~ f#2 ~ e2@5 ~ e2 ~",
  AH: "f#2@5 ~ f#2 ~ c#2@5 ~ c#2@2", AI: "f#2@5 ~ f#2 ~ c#2@5 ~ c#2 ~", AJ: "f#2@5 ~ f#2 ~ f#2@5 ~ c#2@2",
  AK: "f#2 ~@11 f#2@4", AL: "b1@5 ~ b1 ~ b1@7 ~", AM: "b1@5 ~ b1 ~ b1@5 ~@3",
  AN: "[f#2@5 ~ f#2 ~ f#2 ~ f#2 ~ f2 ~ d#2@7 ~ d#2 ~ d#2 ~ f2 ~ d#2@3 ~]/2",
  AO: "g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~", AP: "g#1 ~@7",
  AQ: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~", AR: "f#2@7 ~ f#2@3 g#2@2 a2@2 ~",
  AS: "a2@4 ~@2 a2@2 d2@5 ~ d2@2", AT: "f#2@5 ~@7 f#2@3 ~", AU: "~@4 f#2@3 ~@5 f#2@3 ~", AV: "~@8 e2@5 ~ e2 ~",
  AW: "~ f#2@5 ~ f#2 ~ c#2@5 ~@2", AX: "[c#2 ~@2 f#2@23 ~@6]/2",
})).s("gm_acoustic_bass").gain(0.32)

// chords · piano
const piano = note(`<
  ~@2 A@6 B@3 C@4 D E F G H@5 I J@4 K L M N O P Q R S T U V W X W Y Z AA AB@2 AC@2 AD@2 AE ~ AF AE ~ AG@14 AH AI AJ S AK
  AL AM AN AO AN AM AP@2 AQ@2 AR AS@2 AT AU@3 AV K AW AX O AY AZ BA BB BC BD BE BF BG BH BI BJ@3
>`.pickRestart({
  A: "[~@8 [b1,b2]@5 ~ [b1,b2] ~ [b1,b2]@7 ~ [b1,b2]@5 ~ [b1,b2] ~ [b1,b2]@6 ~@2 [f#2,f#3]@4 ~@2 [f#2,f#3] ~ [f#2,f#3] ~ [f#2,f#3] ~ [f2,f3] ~ [d#2,d#3]@6 ~@2 [d#2,d#3] ~ [d#2,d#3] ~ [f2,f3] ~ [d#2,d#3]@3 ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~@7, ~@8 [b3,d#4]@30 ~@2 [a#3,c#4,f#4]@12 ~@2 [b3,d#4,f#4]@16 ~@2 [g#3,c#4]@17 ~@7]/6", // B F# F D# F D# C# B …
  B: "[~@8 [f#2,f#3,a3,c#4]@15 ~ [e2,e3,g#3,b3]@14 ~@2 [f#2,a3,c#4]@7 ~]/3", // F#m E F#m
  C: "[[c#2,c#3,c#4,f4]@7 ~ [f#2,f#3,a3,c#4]@15 ~ [f#2,f#3]@5 ~ [f#2,f#3] ~ [f#2,f#3]@6 ~@2 [e2,e3]@5 ~ [e2,e3] ~ [e2,e3]@6 ~@2 [a3,c#4]@6 [f#2,f#3] ~, ~@24 c#4@15 ~@25, ~@24 a3@13 ~@3 [g#3,b3]@14 ~@2 [f#2,f#3]@4 ~@4]/4", // C# F#m F# E A F# G#m F#
  D: "[c#4,f4]@6 [c#2,c#3] ~ [a3,c#4]@6 f#2 ~, [c#2,c#3]@5 ~@3 f#2@4 ~@4", // C# A C#
  E: "[e2,e3,g#3,b3]@7 ~ [a3,c#4]@6 f#2@2, ~@2 f#2 ~", F: "[c#2,c#3,c#4,f4]@7 ~ [a3,c#4]@6 f#2 ~, ~@2 f#2 ~",
  G: "[e2,g#3,b3]@3 ~ [f#2,a3,c#4]@3 f#2", // E F#m
  H: "[[c#2,c#3,c#4,f4]@6 ~@2 f#2@4 ~@2 f#2 ~ f#2@5 ~@3 f#2 ~@5 c#4 ~ [a3,c#4]@3 [a3,c#4]@2 ~ [f#2,a3,c#4]@2 e2@4 ~@2 [e2,e3] ~ [e2,e3]@6 ~@2 [e2,e3]@5 ~ [e2,e3] ~ e3@2 ~@2 g#3@2 b3@2 [e3,a3,c#4]@6 [a1,a2]@2, ~@8 [a3,c#4]@15 ~@7 [a3,f#4]@2 f#4@7 ~@25 e2@5 ~@3 [a1,a2]@4 ~@4, ~@31 f#2@6 a4@2 ~@29 g#2 ~ g#2 ~@9, ~@31 f#3@4 [f#3,g#4]@5 [g#3,b3]@25 ~ e3@4 ~@10]/5", // C# A F#m E A D A F#sus2 …
  I: "[d2,f#3,a3,d4]@5 ~ d2@2 [g#3,c#4,f4]@6 c#2@2, ~@2 c#2 ~", // D C#
  J: "[f#2@4 ~@2 f#2 ~ [f#2,f#3]@6 f#2!2 f#2 ~@2 [g#1,g#2,a3,c#4,g#4]@2 ~ [a1,a2,a3,c#4,f#4,a4]@2 e2@5 ~ [e2,e3] ~ [e2,e3]@6 ~@2 [e2,e3]@4 ~@2 [e2,e3] ~ e3@2 g#3@2 [e3,b3]@2 g#2 ~ [a3,c#4,e4]@6 [a1,a2]@2, [a3,c#4,f#4]@17 ~@7 e4@30 ~@10, ~@15 f#1@3 ~@6 b3@27 ~@13, ~@12 g#3@12 e2@3 ~ [a1,a2]@2 ~@2]/4", // F# Amaj7 F#m E E5 A F#m A
  K: "[g#3,b3,e4]@3 e2 [f#3,b3,d#4]@3 [b1,b2], e2 ~ [b1,b2] ~", // E B
  L: "[g#3,b3,e4]@3 e2 [f#3,b3,d#4]@3 b2, e2@3 ~@5 [b1,b2]@4 ~@2 b1 ~", // E B
  M: "[g#3,b3,e4]@3 e2 [b1,b2,b3,d#4]@3 ~, e2 ~ f#3 ~", // E B
  N: "[d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~, [a3,d4,f#4]@15 ~", // D
  O: "[c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~, [c#4,f4]@15 ~", // C#
  P: "[f#2,a3,c#4]@7 ~, f#3@3 ~", Q: "[e2,e3,g#3,b3]@15 ~", R: "[f#2,a3,c#4]@7 ~ [c#2,c#3,c#4,f4]@7 ~",
  S: "[f#2,a3,c#4]@7 ~", T: "[f#2,f#3]@4 ~@2 [f#2,f#3] ~ [f#2,f#3]@6 ~@2, [a3,c#4]@7 ~",
  U: "[e2,e3]@4 ~@2 [e2,e3] ~ [e2,e3]@6 ~@2, [g#3,b3]@7 ~", // E G#m
  V: "[a3,c#4]@6 [f#2,f#3] ~ [c#2,c#3,c#4,f4]@7 ~, [f#2,f#3] ~@3", W: "[a3,c#4]@6 f#2@2 [e2,e3,g#3,b3]@7 ~, f#2 ~@3",
  X: "[a3,c#4]@6 f#2@2 [c#2,c#3,c#4,f4]@7 ~, f#2 ~@3", Y: "[f#2,a3,c#4]@6 f#2 ~ [c#2,c#3,c#4,f4]@7 ~",
  Z: "f#2@4 ~@2 f#2 ~ f#2@7 ~, [a3,c#4]", AA: "f#2 ~@15",
  AB: "[[b1,b2]@4 ~@2 [b1,b2] ~ [b1,b2]@6 ~@2 [b1,b2]@5 ~ [b1,b2] ~ [b1,b2]@5 ~@3, [b3,d#4]@29 ~@3]/2", // B
  AC: "[[f#2,f#3]@5 ~ f#2 ~ [f#2,f#3] ~ [f#2,f#3] ~ [f2,f3] ~ [d#2,d#3]@7 ~ [d#2,d#3] ~ [d#2,d#3] ~ [f2,f3] ~ [d#2,d#3]@2 ~@2, [a#3,c#4,f#4]@12 ~@2 [b3,d#4,f#4]@17 ~]/2", // F# F D# F D# F# B
  AD: "[[g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~, [g#3,c4]@15 ~]/2", // G#
  AE: "[g#1,g#2,g#3,c4] ~@15", // G#
  AF: "[g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~ [g#1,g#2] ~, [g#3,c4]@15 ~", // G#
  AG: "[c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~ [c#2,c#3] ~", // C#
  AH: "[f#2,a3,c#4]@15 ~", AI: "[e2,e3,g#3,b3]", AJ: "[f#2,a3,c#4] [c#2,c#3,c#4,f4]",
  AK: "[f#2,f#3]@5 ~ f#2 ~ f#2@6 ~@2, [a3,c#4]@7 ~", AL: "[e2,e3]@5 ~ e2 ~ e2@7 ~, [g#3,b3]@7 ~",
  AM: "[a3,c#4]@6 f#2@2 [c#2,c#4,f4]@7 ~, f#2 ~@3", AN: "[a3,c#4]@3 f#2 [e2,b3]@4, f#2@2 ~@2 g#3@3 ~",
  AO: "[f#2,a3,c#4]@3 f#2 [c#2,c#4,f4]@4", AP: "[f#2@5 ~ f#2 ~ f#2@6 ~@2 f#2 ~@15, [a3,c#4]@9 ~@7]/2",
  AQ: "[e2@4 ~@2 e2 ~ e2@6 ~@2 [e2,e3]@5 ~ e2 ~@7 e4@2, e4@7 b3, b3@26 g#3@5 ~, g#3@24 e2@6 g#2 ~]/2", // E
  AR: "[a3,c#4,e4]@3 [a1,a2] [a3,d4,f#4]@3 d2, [a1,a2] ~ d2 ~", // A D A
  AS: "[[c#4,f4]@6 c#2@2 [f#2,c#4]@4 ~@4 f#3@4 a3@2 f#3 ~@5 [f#2,f#3,a3,c#4,f#4] ~@3, c#2 ~ f#4@4 ~@2, ~@8 a3@3 ~ a3@7 ~@13, ~@14 [f#2,c#4]@9 ~@9]/2", // C# F#5 F#m F#5
  AT: "~@4 [f#2,f#3,a3,c#4,f#4] ~@7 [f#2,f#3,a3,c#4,f#4] ~@3", // F#m
  AU: "[~@8 [e2,e3,g#3]@4 g#3 ~ [e3,g#3] ~ [e3,g#3]@4 ~@2 e3 ~ [e2,e3]@4 g#3 ~@7 b3@2 g#2 ~ [a3,c#4,e4]@6 [a1,a2]@2, ~@4 [b3,e4]@13 g#3@2 ~@5, ~@7 e2@4 ~@4 e2@4 ~ [a1,a2]@2 ~@2, ~@20 g#3@4 g#3@2 ~@6 e3@5 ~@11]/3", // E A E5 A
  AV: "[g#3,b3,e4]@3 e2 [f#3,b3,d#4]@3 [b1,b2], e2@3 ~@5 [b1,b2]@4 ~@4", // E B
  AW: "[g#3,b3,e4]@6 e2@2 [b1,b2,f#3,b3,d#4]@5 ~@3, e2 ~@3", // E B
  AX: "[d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~, [a3,d4,f#4]@7 ~", // D
  AY: "[f#2,c#4]@15 ~, a3@13 ~@3", AZ: "[g#3,b3]@7 ~, e2", BA: "[f#2,a3,c#4] [c#2,c#4,f4]", BB: "[f#2,a3,c#4]@13 ~@3",
  BC: "[f#2,f#3]@4 ~@2 [f#2,f#3] ~ [f#2,f#3]@6 ~@2, [a3,c#4,f#4]@7 ~", // F# F#m
  BD: "[e2,e3]@5 ~ [e2,e3] ~ [e2,e3]@6 ~@2, [g#3,b3,e4]@7 ~", // E
  BE: "[a3,c#4,f#4]@6 [f#2,f#3] ~ [c#2,c#3,g#3,c#4,f4]@6 [c#2,c#3]@2, [f#2,f#3] ~@3", // F#m F# C# F#
  BF: "[a3,c#4,f#4]@6 f#2 ~ e4@2 b3@2 e4 ~ f#2 ~, f#2@4 ~@4 [e2,e3,g#3]@5 ~@3", // F#m E
  BG: "[f#3,c#4,f#4]@6 f#2 ~ [c#2,c#3,c#4,f4]@6 c#2@2, f#2@5 ~@9 c#3 ~", // F#5 C#
  BH: "[c#4,f#4]@6 f#2 ~ [e2,e3,g#3,b3,e4]@7 ~, f#2 ~@3", BI: "~ [f#2,c#4,f#4]@8 [c#2,c#4,f4]@6 ~",
  BJ: "[~@4 f#4@31 ~@13, ~ f#1@16 ~@7, ~@3 [f#2,a#3,c#4]@32 ~@13]/3", // F#
})).s("gm_piano").gain(0.22).pan(0.6)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@6 A B ~@3 C D@2 ~@23 E F@2 ~@15 G H@2 ~ I ~@2 J@4 K@2 L M@3 ~@3 E N@2 ~ O@4 P Q ~@4 R S ~@11 T U@4 ~@6
>`.pickRestart({
  A: "~@8 f4 d#4 f4 f#4 g#4 f#4 g#4 a4", B: "b4 a4 b4 c#5 d5 c#5 b4@2 c#5@2 ~@6", C: "~@3 f#4",
  D: "[a4@4 c#5 f5 f#5 g#5 a5@10 b5@2 a5@2 c#6@4 b5 a5 g#5@4]/2", E: "~@4 f#4@4 a4@4 c#5 ~@2 g#5, ~@13 f5@2 ~, ~@7 f#5",
  F: "[a5@10 b5@2 a5@2 c#6@4 b5 ~ g#5@4 ~@8, ~@19 a5@2 ~@11]/2",
  G: "c5 g#4 c5 ~ d#5 c5 d#5 ~ [g#5,d#6] d#5 g#5 ~ c6 g#5 c6 ~", H: "[d#6@10 c#6@8 c6@7 ~ f6 ~ f#6 ~@3, f#5@3 ~]/2",
  I: "f4 f#4 g4 g#4 a4 a#4 b4 c5 c#5 d5 d#5 e5 f5 f#5 g5 g#5", J: "[b5@10 a#5@8 g#5@8 f#5@2 g#5@2 g#5@33 ~]/4",
  K: "[c#6@11 ~@5]/2", L: "g#6", M: "[f#6 f6@2 d#6 ~@4 g#6@8 f#6 f6@2 d#6 c#6@4, ~@4 c#6@15 ~@5]/3",
  N: "[a5@10 b5@2 a5@2 c#6@4 b5 ~ g#5@3 ~@9, ~@19 a5@2 ~@11]/2",
  O: "[~@8 g#4@2 f#4@2 g#4@2 a4@4 f#4@5 ~ f4@2 d#4@2 f4 ~ f#4@4 c#4@4 f#4 ~ g#4@2 f#4@2 g#4@2 a4@4 f#4@3 ~ f#4@2 f4@2 d#4@2 f4@3 ~]/4",
  P: "f#4@5 ~ f#4 ~ f#4@6 ~@2", Q: "[f#3,f#4] g3 [g#3,a3] a#3 b3 c4 c#4 d4 d#4 e4 f4 f#4 g4 g#4 a4 a#4",
  R: "~@12 [a5,c#6,f#6] ~@3", S: "~@4 [a5,c#6,f#6] ~@7 [a5,c#6,f#6] ~@3", T: "~ c#5 f#5 a5 c#6 f#5 a5 c#6",
  U: "[a5@10 b5@2 a5@2 g#5@4 f#5 e5 d5@3 ~ b4@2 c#5@2 d5@2 f#5@6 d5@2 c#5@2 b4@2 a4@2 g#4@2 a4@9 ~@9]/4",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.7)

// other · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~ A B@2 C D E F G H I J@3 K L M N O P Q R@3 S@2 T@3 U@3 V W X@4 Y@7 Z AA AB AA AC@2 AD AE AF ~ AG AH@3 AI AJ@2 AK@4 AL
  AM@5 AN@4 AO@4 ~@4 AP AQ@3 AR@2 AS AT@2 AU AV@3 V AW AX@4 AY@5 ~@5
>`.pickRestart({
  A: "~@14 c#6!2", B: "[c#6@3 b5@2 a#5@3 f#5@17 ~@5 c#6!2]/2", C: "c#6@3 b5@2 a#5@3 f#5@8", D: "~@2 f#5 ~ f5 ~ d#5@9 ~",
  E: "d#5 ~ f5 ~ d#5@2 ~@2 f5 d#5 f5 f#5 g#5 f#5 g#5 a5", F: "b5 a5 b5 c#6 d6 c#6 b5@2 c#6@2 ~@6",
  G: "~@4 f6 d6 c#6 b5 c#5@8", H: "c#6 b5 a5 b5@5", I: "g#5 a5 b5 c#6@3 b5 a5",
  J: "[g#5@2 f#5@2 f5@2 f#5@17 ~ c#6@10 d6@2 c#6@2 e6@4 d6 c#6 b5@4]/3", K: "g#5@2 a5@2 b5@2 c#6@6 b5@2 a5 ~",
  L: "g#5 f#5 f5 f#5@4 ~", M: "g#4@2 f#4@2 g#4@2 a4@4 f#4@5 ~", N: "f4@2 d#4@2 f4 ~ f#4@4 c#4@4 f#4 ~",
  O: "g#4@2 f#4@2 g#4@2 a4@4 f#4@3 ~ f#4@2", P: "f4@2 d#4@2 f4@3 ~ f#4@5 ~ f#4 ~", Q: "f#4 ~ f#4 ~",
  R: "[~@4 b5@13 c#6 d6 e6@3 d6 c#6]/3", S: "[d6@4 c#6@2 b5@2 a5@2 g#5@2 f5@2 f#5@17 ~]/2",
  T: "[f#5@3 g#5@2 a5@3 b5@24 e6@2 f#6@2 g#6@2 a6@6 g#6@2 f#6@2]/3",
  U: "[~@2 f#6 e6 f#6 g#6 f#6 e6@5 f#6 e6 f#6 g#6@4 e6 f#6 g#6 f#6@2, g#6 ~@7]/3", V: "f#6@5 g#6 f#6@2", W: "f6",
  X: "[c#6@4 c#6 b5 a5 b5@5 g#5 a5 b5 c#6@3 b5 a5 g#5 f#5 f5 f#5@9]/4",
  Y: "[c#6@10 d6@2 c#6@2 e6@4 d6 c#6 b5@4 g#5@2 a5@2 b5@2 c#6@6 b5@2 a5 ~ g#5@2 f#5@2 f5@2 f#5@8 ~@2 g#4@2 f#4@2 g#4@2 a4@4 f#4@5 ~ f4@2 d#4@2 f4 ~ f#4@4 c#4@4 f#4 ~ g#4@2 f#4@2 g#4@2 a4@4 f#4@3 ~ f#4@2 f4@2 d#4@2 f4@3 ~]/7",
  Z: "f#4@5 ~ f#4 ~ f#4@8", AA: "~@6 c#6!2 c#6@3 b5@2 a#5@3", AB: "f#5",
  AC: "[f#5@9 ~ f#5 ~ f5 ~ d#5@9 ~ d#5 ~ f5 ~ d#5@2 ~@2]/2", AD: "c5@3 d#5@3 g#5@2", AE: "a#5@6 g#5@2 c6@4 d#6@3 ~",
  AF: "f#6 ~@15", AG: "d#5 [c5,d#5] d#5 ~ g#5 d#5 g#5 ~ c6 g#5 c6 ~ d#6 c6 d#6 ~",
  AH: "[f#6@10 f6@8 d#6@6 ~@2 g#6 ~ a#6 ~ g#6@18]/3", AI: "g#4 a4 a#4 b4 c5 c#5 d5 d#5 e5 f5 f#5 g5 g#5 a5 a#5 b5",
  AJ: "[[g#5,b5]@10 [f#5,a#5]@8 [f5,g#5]@13 ~]/2", // G#m F# Fm
  AK: "[d#6@10 c#6@8 b5@8 a#5@2 b5@2 c#6@12 d#6@2 f6@2 d#6@4 c#6@13 ~]/4", AL: "g#6",
  AM: "[f#6 f6@2 d#6 ~@4 g#6@8 f#6 f6@2 d#6 ~@4 g#6@8 f#6 f6@2 d#6 c#6@4, ~@4 c#6@15 ~ c#6@15 ~@5]/5",
  AN: "[c#6@8 c#6@2 b5@2 a5@2 b5@10 g#5@2 a5@2 b5@2 c#6@6 b5@2 a5@2 g#5@2 f#5@2 f5@2 f#5@15 ~@3]/4",
  AO: "[c#6@10 d6@2 c#6@2 e6@4 d6 c#6 b5@4 g#5@2 a5@2 b5@2 c#6@6 b5@2 a5 ~ g#5@2 f#5@2 f5@2 f#5@8 ~@10]/4",
  AP: "f#4 g4 [g#4,a4] a#4 b4 c5 c#5 d5 d#5 e5 f5 f#5 g5 g#5 a5 a#5", AQ: "[b5@13 c#6 d6 e6@3 d6 c#6 d6@2 c#6 b5]/3",
  AR: "[a5@2 g#5@2 f5@2 f#5@18 ~@4 [a4,c#5,f#5] ~@3]/2", AS: "~@4 [a4,c#5,f#5] ~@7 [a4,c#5,f#5] ~@3", AT: "[~ b5@3]/2",
  AU: "e6 f#6 g#6 a6@3 g#6 f#6", AV: "[g#6@2 f#6 e6 f#6 g#6 f#6 e6@5 f#6 e6 f#6 g#6@4 e6 f#6 g#6 f#6@2]/3",
  AW: "f6@15 ~", AX: "[c#6@5 b5 a5 b5@5 g#5 a5 b5 c#6@3 b5 a5 g#5 f#5 f5 f#5@5 ~@4]/4",
  AY: "[f#6@10 g#6@2 f#6@2 e6@4 d6 c#6 b5@4 g#5@2 a5@2 b5@2 c#6@6 b5@2 a5@2 g#5@2 f#5@2 f5@2 f#5@10 g#4@2 f#4@2 g#4@2 a4@4 f#4@5 ~ f4@2 d#4@2 f4 ~ f#4@2]/5",
})).s("gm_string_ensemble_1").gain(0.36).pan(0.6)

// other · string ensemble 1
const string_ensemble_1_3 = note(`<
  ~@2 A B@2 C D E ~@11 F G ~@24 H I J K L@2 M@2 N ~ M N ~ O@14 ~@27 P Q R S ~@10
>`.pickRestart({
  A: "~@10 f#3@2 d#4@2 f#4 ~", B: "[f#4@2 d#4@2 b3@2 f#3@2 d#3@11 ~@5 f#3@5 ~ f#3 ~]/2",
  C: "f#3 ~ f#3 ~ f3 ~ d#3@6 ~@2 d#3 ~", D: "d#3 ~ f3 ~ d#3@2 ~@2 c#3 ~ c#3 ~ c#3 ~ c#3 ~",
  E: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~@7", F: "~@8 f#3@5 ~ f#3 ~", G: "f#3 ~ f#3 ~", H: "f#3@5 ~ f#3 ~ f#3@8",
  I: "~@6 c#5!2 c#5@3 b4@2 a#4@3", J: "~@2 f#3@2 d#4@2 f#4 ~ f#4@2 d#4@2 b3@2 f#3@2", K: "d#3@11 ~@5",
  L: "[f#3@5 ~ f#3 ~ f#3 ~ f#3 ~ f3 ~ d#3@6 ~@2 d#3 ~ d#3 ~ f3 ~ d#3@2 ~@2]/2",
  M: "g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~", N: "g#2 ~@15",
  O: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~", P: "f#4 ~@3 f#4 ~ f#4 ~@5 f#4@4",
  Q: "e4@2 ~@2 b4 ~ b4 ~@5 b4@4", R: "f#4@4 c#4@3 ~", S: "f#4@3 ~ f#4 ~ f#4 ~@5 f#4@4",
})).s("gm_string_ensemble_1").gain(0.36)

// chords · string ensemble 1
const string_ensemble_1_4 = note(`<
  ~@2 A@5 ~@8 B C D C E@2 F@3 G H@4 I@2 J K L ~@7 M N M N O ~ P@2 Q@2 R@2 ~@2 S ~ T@2 ~ U@6 V@6 ~@7 M N M N O ~ W@2 X
  Y@2 ~ Z@3 I@2 J K L ~@7 M N M AA@3 ~
>`.pickRestart({
  A: "[~@4 [b3,d#4,f#4]@16 [a#3,c#4]@7 [b3,d#4]@9 ~@4, ~@5 f#3@4 ~]/5", B: "~ [f#3,a3]", C: "[e3,g#3] [f#3,a3]",
  D: "[f3,g#3] [f#3,a3]", E: "[[f3,g#3] [f#3,a3]@2 ~]/2", F: "[~ [g#4,b4]@4 [a4,c#5]]/3", G: "[f#4,d5] [f4,c#5]",
  H: "[[f#4,a4]@3 [e4,g#4]@4 [a4,c#5]]/4", I: "[g#4 f#4 g#4 d#5, b4]/2", J: "[g#4,e5] [b4,d#5]", K: "[f#4,a4]",
  L: "[f4,g#4]", M: "[f#3,a3] [e3,g#3]", N: "[f#3,a3] [f3,g#3]", O: "[f#3,a3]", P: "[b3,d#4,f#4]/2",
  Q: "[[a#3,c#4]@7 [b3,d#4]@9, f#3]/2", R: "[g#4,c5]/2", S: "[g#4,c5]", T: "[~@7 f6@9]/2", U: "[c#5,f5]/6",
  V: "[f5,g#5,b5]/6", W: "[g#4,b4]/2", X: "[a4,c#5] [f#4,d5]", Y: "[[f4,c#5] [f#4,a4]@2 ~]/2",
  Z: "[~ [e4,g#4]@4 [a4,c#5]]/3", AA: "[[f#3,a3]@9 [f3,g#3]@9 ~ [f#3,a#3]@23 ~@6]/3",
})).s("gm_string_ensemble_1").gain(0.19).pan(0.6)

// other · music box
const music_box = note("<~ A B@2 C D E F@2 ~@6 G H I J K ~@21 L@4 M N O P Q@2 R S T ~@59>".pickRestart({
  A: "~@14 c#5!2", B: "[c#5@2 ~ b4@2 a#4@2 ~ f#4@15 ~@7 c#5!2]/2", C: "c#5@2 ~ b4@2 a#4 ~@2 f#4@8",
  D: "~@2 f#4 ~ f4 ~ d#4@10", E: "d#4 ~ f4 ~ d#4@2 ~@2 f4 d#4 f4 f#4 g#4 f#4 g#4 a4",
  F: "[b4 a4 b4 c#5 d5 c#5 b4@2 c#5@10 ~@14]/2", G: "~@8 f#4@5 ~ c#4 ~", H: "g#4@2 f#4@2 g#4 ~ a4@4 f#4@4 f#4 ~",
  I: "f4@2 d#4@2 f4 ~@5 c#4@3 ~ c#4 ~, ~@3 f#4@3 ~@2", J: "g#4@2 f#4@2 g#4 ~ a4@4 f#4@3 ~ f#4 ~",
  K: "f4 d#4 f4 ~ f#4@3 ~",
  L: "[f#4@5 ~ c#4 ~ g#4@2 f#4@2 g#4 ~ a4@4 f#4@4 f#4 ~ f4@2 d#4@2 f4 ~@5 c#4@3 ~ c#4 ~ g#4@2 f#4@2 g#4 ~ a4@4 f#4@3 ~ f#4 ~ f4@2 d#4@2 f4@2 ~@2, ~@15 f#4@3 ~@14]/4",
  M: "f#4@3 ~@5", N: "~@6 c#5!2 c#5@2 ~ b4@2 a#4@2 ~", O: "f#4@15 ~", P: "~@6 c#5!2 c#5@2 ~ b4@2 a#4 ~@2",
  Q: "[f#4@9 ~ f#4 ~ f4 ~ d#4@10 d#4 ~ f4 ~ d#4@2 ~@2]/2", R: "c5@6 d#5@6 g#5@3 ~", S: "a#5@3 g#5 c6@2 d#6 ~",
  T: "f#6 ~@7",
})).s("gm_music_box").gain(0.19).pan(0.3)

// other · piano
const piano_2 = note("<~@16 A B A C ~@22 D@2 E F ~@34 D@2 E F ~@23 D@2 G@2 ~@2>".pickRestart({
  A: "~@6 [g#3,g#4] [f#3,f#4]", B: "[f3,f4]@2 [d#3,d#4]@2 [f3,f4]@2 [f#3,f#4]@4 [c#3,c#4]@5 ~",
  C: "[f3,f4] [d#3,d#4] [f3,f4]@2 [f#3,f#4]@3 ~", // F D# F F#
  D: "[~@4 [g#3,g#4]@2 [f#3,f#4]@2 [f3,f4]@2 [d#3,d#4]@2 [f3,f4]@2 [f#3,f#4]@4 [c#3,c#4]@5 ~@9]/2", // G# F# F D# F F# C#
  E: "~@2 [g#3,g#4] [f#3,f#4] [f3,f4] [d#3,d#4] [f3,f4]@2", F: "[f#3,f#4]@3 ~@5",
  G: "[~@5 [g#3,g#4]@2 [f#3,f#4]@2 [f3,f4]@2 ~ [d#3,d#4]@2 [f3,f4]@5 [f#3,f#4]@7 ~@6]/2", // G# F# F D# F F#
})).s("gm_piano").gain(0.36).pan(0.6)

// other · music box
const music_box_2 = note("<~@3 A ~@43 B C ~@25 D@2 ~@3 E@4 F ~@22 G@4 ~@3>".pickRestart({
  A: "f#5@3 e5@3 d#5@2 ~ b4@7", B: "~@8 f#5@3 e5@3 d#5@2", C: "~ b4@7 ~@8",
  D: "[~@8 [f4,g#4]@2 [f#4,a4]@2 [g#4,b4] ~ [a4,c#5]@7 ~@11]/2", // Fm F#m G#m A
  E: "[f#4@5 ~ c#4 ~ g#4@2 f#4@2 g#4 ~ a4@4 f#4@4 f#4 ~ f4@2 d#4@2 f4 ~@5 c#4@3 ~ c#4 ~ g#4@2 f#4@2 g#4 ~ a4@4 f#4@3 ~ f#4 ~ f4@2 d#4@2 f4@2 ~@2, ~@15 f#4@3 ~@14]/4",
  F: "f#4@3 ~@5",
  G: "[f#4@5 ~ c#4 ~ g#4@2 f#4@2 g#4 ~ a4@4 f#4@4 f#4 ~ f4@2 d#4@2 f4 ~@5 c#4@3 ~ c#4 ~ g#4@2 f#4@2 g#4 ~ a4@5 f#4@3 ~ f#4 ~ f4@2 ~ d#4@2 f4@2, ~@15 f#4@3 ~@14]/4",
})).s("gm_music_box").gain(0.19).pan(0.3)

// chords · epiano1
const epiano1 = note(`<
// … 105 more lines