Strudelify

True Love

Dee

KeyC♯ minorTempo105 bpm
0:00/0:00
// True Love — Dee
// 105 bpm, 6/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 61 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(105/6)

// 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 · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~@15 A B C D E F G H A B I J I K E F G H A B I J I L M N O P M N O P Q R S T U V W X W Y Z@4
>`.pickRestart({
  A: "[f4,g#4]@15 ~ [g#4,c#5]@7 ~ [a#4,c#5]@15 ~ c5@3 ~ a#4@3 ~", // Fm C#5 A#m
  B: "[c#4,e4,g4]@12 ~@4 [e4,g4]@7 ~ [c#4,f4,g#4]@23 ~, ~@12 c#4@11 ~@25", C: "[c4,d#4,g#4]@23 ~ [c4,d#4,f#4]@22 ~@2",
  D: "[f#4,a#4,d#5]@18 ~@6 c#5@23 ~, ~@22 f4@25 ~, ~@23 g#4@24 ~", // D#m
  E: "[c#4,e4,g#4]@22 ~@2 [c#4,e4,g#4]@7 ~ [b3,d#4,f#4]@12 [c#4,e4]@3 ~", // C#m B C#m
  F: "[b3,d#4,f#4]@23 ~ [b3,d#4,f#4]@7 ~ [g#3,c#4,e4]@11 ~ [b3,d#4]@3 ~", // B C#m B
  G: "[c#4,e4,g#4]@16 [c#4,e4,g#4]@7 ~ [c#4,e4,g#4]@7 ~ [b3,d#4,f#4]@9 ~@3 [c#4,e4]@3 ~", // C#m B C#m
  H: "[g#3,c4,d#4]@15 ~ [c4,d#4,g#4]@7 ~ [a#3,c#4,f#4]@14 ~@2 [c4,d#4,g#4]@8", I: "[c4,d#4]@11 ~ [c4,d#4]@11 ~",
  J: "[c#4,f#4,a#4]@3 ~ [c#4,f4,g#4]@3 ~", // F# C#
  K: "[c#4,f#4,a#4]@18 ~@14 c#4@4 d#4@3 ~ e4@3 ~ f#4@4, ~@11 f4@9 ~@4, ~@23 g#4@24 ~, ~@24 c#5@23 ~", // F#
  L: "[c#4,f#4,a#4]@18 ~@6 c#5@23 ~, ~@22 f4@25 ~, ~@23 g#4@24 ~", // F#
  M: "[g#3,b3]@14 ~@2 [c#4,e4]@6 ~@2 [c#4,e4]@7 ~ [b3,d#4]@7 ~ [a3,c#4]@7 ~", // G#m C#m B A
  N: "[g3,a#3]@15 ~ [g3,c#4]@7 ~ [g#3,b3]@22 ~@2", O: "[b3,d#4]@7 ~ [a3,c#4]@7 ~", P: "[f#4,a4]@11 ~ [e4,g#4]@11 ~",
  Q: "[e4,g4,b4]@22 ~@2 [e4,g4,b4]@7 ~ [d4,f#4,a4]@12 [e4,g4]@3 ~", // Em D Em
  R: "[d4,f#4,a4]@23 ~ [d4,f#4,a4]@7 ~ [b3,e4,g4]@11 ~ [d4,f#4]@3 ~", // D Em D
  S: "[e4,g4,b4]@16 [e4,g4,b4]@7 ~ [e4,g4,b4]@7 ~ [d4,f#4,a4]@9 ~@3 [e4,g4]@3 ~", // Em D Em
  T: "[b3,d#4,f#4]@15 ~ [d#4,f#4,b4]@7 ~ [c#4,e4,a4]@14 ~@2 [d#4,f#4,b4]@8", // B A B
  U: "[g#4,b4]@15 ~ [b4,e5]@7 ~ [c#5,e5]@15 ~ d#5@3 ~ c#5@3 ~", // G#m E5 C#m
  V: "[e4,g4,a#4]@12 ~@4 [g4,a#4]@7 ~ [e4,g#4,b4]@23 ~, ~@12 e4@11 ~@25", W: "[d#4,f#4]@11 ~ [d#4,f#4]@11 ~",
  X: "[e4,a4,c#5]@3 ~ [e4,g#4,b4]@3 ~", Y: "[e4,a4,c#5]@18 ~@6 e5@23 ~, ~@22 g#4@25 ~, ~@23 b4@24 ~",
  Z: "[[d#4,f#4]@18 ~@2 [e4,g#4]@3 ~ [f#4,a4]@7 ~ [b3,d#4]@15 ~ [c#4,e4]@45 ~@3 g#4@92 ~@4, ~@47 a3@46 ~ b3@94 ~@4, ~@95 e4@93 ~@4]/4", // D#m E F#m B C#m
})).s("gm_epiano2").gain(0.48)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B A C D ~@6 E F G H E F I H J K L M E N O P Q R S T U M V N O W X R Y Z AA AB AC AD AE AB AF AG AH AI AJ AK AL AM AN
  AO AP AQ AR ~
>`.pickRestart({
  A: "f#1@43 ~ c#1@3 ~", B: "f#1@35 ~ f#2@3 ~ c#2@3 ~ f#1@3 ~", C: "f#1@37 ~@3 c#1@3 ~ c#1@3 ~", D: "c#1@23 ~@25",
  E: "c#1@23 ~ f#1@18 ~@2 f#1@3 ~", F: "g1@23 ~ c#1@19 ~ g1@3 ~", G: "g#1@38 ~@2 d#1@3 ~ g#1@3 ~",
  H: "f#1@23 ~ c#1@19 ~ c#1@3 ~", I: "g#1@38 ~@2 g#2@3 ~ g#1@3 ~", J: "f#1@20 a#1@3 ~ b1@18 ~@2 a#0@3 ~",
  K: "e1@15 ~ e1@3 ~ e1@3 ~ c#1@7 ~ c#2@3 ~ c#1@3 ~ c#1@3 ~ c#1@3 ~", L: "f#1@19 ~ a#1@3 ~ b1@14 ~@2 b1@3 ~ a1@3 ~",
  M: "g#1@23 ~ g#1@15 ~ g#1@7 ~", N: "g1@23 ~ c#1@7 ~ c#2@3 ~ c#1@3 ~ g1@3 ~ g#1@3 ~", O: "g#1@38 ~@2 g#1@3 ~ c1@3 ~",
  P: "f#1@23 ~ c#1@7 ~ c#2@3 ~ c#1@3 ~ g1@3 ~ g#1@3 ~", Q: "g#1@42 ~@2 f1@3 ~",
  R: "f#1@18 ~@2 c#1@3 ~ c#1@10 ~@2 c#1@3 ~ c#1@3 ~ c#1@3 ~", S: "f#1@15 ~ a1@3 ~ f#1@3 ~ b1@15 ~ b0@3 ~ b0@3 ~",
  T: "e1@15 ~ e1@3 ~ e1@3 ~ c#1@7 ~ c#2@3 ~ c#2@3 ~ c#1@3 ~ c#1@3 ~",
  U: "f#1@15 ~ a1@3 ~ f#1@3 ~ b1@14 ~@2 b1@3 ~ d#1@3 ~", V: "c#1@23 ~ f#1@18 ~@2 c#1@3 ~",
  W: "f#1@19 ~ c#1@3 ~ c#1@7 ~ c#2@3 ~ c#1@3 ~ g1@3 ~ g#1@3 ~", X: "g#1@39 ~ g#1@3 ~ g#0@3 ~",
  Y: "e1@19 ~ e1@3 ~ a1@20 e1@3 ~", Z: "a#1@19 ~ e1@3 ~ b1@3 ~ g#1@3 ~ e1@7 ~ b0@3 ~ b0@3 ~",
  AA: "b0@18 ~@2 f#1@3 ~ b1@7 ~ b0@3 ~ c#1@3 ~ d#1@3 ~ b0@3 ~", AB: "a1@15 ~ a1@3 ~ b1@3 ~ e1@15 ~ e1@7 ~",
  AC: "e1@19 ~ g#1@3 ~ a1@15 ~ e1@3 ~ e1@3 ~", AD: "a#1@15 ~ e1@3 ~ a#1@3 ~ b1@3 ~ g#1@3 ~ e1@7 ~ b0@3 ~ b0@3 ~",
  AE: "b0@18 ~@2 f#1@3 ~ b1@15 ~ f#1@3 ~ b1@3 ~", AF: "a1@15 ~ c2@3 ~ c#2@3 ~ d2@8 d1@7 ~ d1@3 ~ d1@3 ~",
  AG: "g1@15 ~ g1@3 ~ e1@3 ~ e1@4 b1@4 e2@3 ~ e2@3 ~ b1@3 ~ g1@3 ~",
  AH: "a1@15 ~ c2@3 ~ d2@3 ~ d2@11 ~ d2@3 ~ a1@3 ~ d2@3 ~", AI: "b1@7 ~ b1@7 ~ b1@7 ~ c#2@4 f#1@4 b1@7 ~ d#1@7 ~",
  AJ: "e1@23 ~ a1@18 ~@2 e1@3 ~", AK: "a#1@23 ~ e1@15 ~ a1@3 ~ b1@3 ~", AL: "b1@23 ~ b0@23 ~",
  AM: "a1@23 ~ e1@7 ~ e2@3 ~ e1@3 ~ a#1@3 ~ b1@3 ~", AN: "b1@22 ~@2 b0@15 ~ f#1@3 ~ b1@3 ~",
  AO: "a1@23 ~ e1@10 ~@2 e2@3 ~ g#1@3 ~ a1@3 ~", AP: "b1@23 ~", AQ: "a1@23 ~", AR: "e1@23 ~",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B A B C@7 D E F G H I J K L M N O H P Q R Q S L M N O H P Q R Q S T U V W T U V W X Y Z AA AB AC AD AE AD AF ~@4
>`.pickRestart({
  A: "d#3@7 ~@13 f#2@4 [f#2,c#3,a#3]@23 ~, f#2@5 ~@7, c4@16 c4@7 ~@25, ~@8 d#3@15 ~@25, ~@12 g#3@11 ~@25", // F#
  B: "d#3@7 ~@13 f#2@4 [f#2,c#3,a#3]@23 ~, f#2@5 ~@7, c4@16 c#4@7 ~@25, ~@8 d#3@15 ~@25, ~@12 g#3@11 ~@25", // F#
  C: "[~@17 c#4@8 ~@19 g#4@24 ~@20 f3@4 ~@18 [g#2,c4]@25 ~@21 c#4@5 ~@19 [a4,d#5]@26 ~@14 f3@4 ~@4 f3@4 ~@12 g#3@5 ~@3 g#3@5 ~@20 d#4@5 ~@25 c#4@29, c#2@25 ~@13 d#4@30 ~@12 d#4@4 f4@8 d#4@43 ~@13 f3@4 g#3@9 ~@8 f#3@36 ~@3 [g#3,f4]@14 ~@2 [g#3,f4]@7 ~ [g#3,f4]@14 ~@3 c#4@8 f#3@8 a#2@8 c#4@9 ~@2 d#4@10 f#3@42, ~@4 g#2@20 ~ g#2@42 ~ c#3@24 g#2@16 ~@28 c#2@26 ~@12 a#4 f#5@31 ~@10 c#3@16 ~@8 c#3@17 d#4@12 f#3@13 g#3@3 g#4@50 ~, ~@8 c#3@17 ~@9 c4@34 ~@8 c#4@17 ~@8 d#3@34 ~@5 g#2@21 f#2@44 ~@3 c#2@24 c#2@24 ~ d#2@25 ~ d#2@16 g#3@35 ~@2, ~@12 f3@13 ~@4 g#3@38 ~@5 g#3@21 ~@4 g#3@8 g#3@30 ~@9 c#3@17 ~@4 c#3@40 ~@7 g#2@20 ~@4 g#2@22 ~@3 d#3@21 ~@2 c#4@4 d#3@48]/7", // G# Adim C#
  D: "~@3 g#3 ~ g#3 ~@3 a#3 ~ a#3, c#2@3 ~@2 c4, ~ g#2@5 f#2@6, ~@2 c#3@4 ~ c#3@5, ~@16 c#4@9 ~@7 f#3@16",
  E: "~@2 c#4 ~@2 c#4, g2 c#2, ~ e3@5 ~ c#3@5, ~ g3@2 ~ f3@2, ~@12 a#3@13 ~@11 g#3@12",
  F: "~@5 f#3 ~@4 c4@2, g#2@23 ~ g#2@24, ~ d#3@5 ~ d#3@5, ~@8 f#3@8 c4@9 ~@11 g#3@12, ~@12 g#3@13 ~@7 f#3@16",
  G: "~@4 d#4@2 ~@5 c#4, f#2@3 c#2@2 g#3, d#4 a#3 ~ f3, f#3@7 ~ f#3@16 ~@8 c#3@16, ~ d#3@5 ~ g#2@5",
  H: "~@3 g#3 ~ g#3 ~@3 a#3 ~ a#3, c#2@6 ~ c#3@5, ~ g#2@5 f#2@6, ~ c#3@2 a#3 f#3@2, ~@16 c#4@8 c#4@15 ~ c4@8",
  I: "~@2 [c#4,g4] ~@2 c#4, g2 [c#2,g#4], [c#4,g4]@12 a#3@13 ~@7 f3@16, ~ e3@5 ~ c#3@5, ~@2 g3@4 c#4@3 g#3@3", // C#dim C#5 C#dim
  J: "~@5 g#3 ~@5 c4, g#2@23 ~ g#2@24, ~ d#3@5 ~ d#3@5, ~@8 g#3@8 d#4@9 ~@11 f#3@12, ~@12 c4@13 ~@7 g#3@7 ~ g#3@8",
  K: "~@5 d#4 ~@5 g#3, [f#2,f#4]@3 c#2@2 c#4, d#4@5 ~ d#4@2 g#3@4 c#4@6 f3@6, f#3@7 ~ f#3@16 ~@8 c#3@16, ~ d#3@5 ~ g#2@5", // F#
  L: "~@16 f#2@4 [a2,e4]@4 [c#4,e4]@7 ~ d#4@12 c#4@4, g#4@23 ~@25, e4@3 a3@3 ~@2 b3@4, f#2 c#4@2 ~@3, ~@4 f#3@20 b2@23 ~", // A5 C#m
  M: "g#3 ~@4 g#3 ~@5 [b3,d#4], [e2,b3,d#4] c#2, ~@4 d#3@11 ~ d#3@8 ~@4 e3@7 ~ e3@12, ~@8 g#3@10 ~@6 [d#4,f#4]@7 ~ [c#4,e4]@10 ~@6, ~@12 b2@12 ~@16 g#3@7 ~", // B Emaj7 D#m C#m
  N: "~@12 e4@3 ~@5 a2@4 [c#4,e4,g#4]@7 ~@9 b2@3 ~ a2@3 ~, f#2@5 ~@7, c#4@13 ~@3 [e4,g#4]@8 ~@8 [d#4,f#4]@13 ~@3, e4@8 a3@15 ~@9 b3@16, ~@4 c#3@19 ~ b2@16 ~@8", // C#m E D#m
  O: "~@16 g#4@8 g#2@8 d#3@3 ~ c#3@3 ~ [g#2,c4,d#4,g#4]@8, g#2 ~, d#4@5 ~ d#4@6 ~@12, c4@7 ~ c4@16 [a#3,c#4,f#4]@13 ~@11, ~ g#3@5 ~@6", // G# F#
  P: "~@16 [c#4,g4]@8 ~@16 c#4@7 ~, g2 [c#2,g#4], [c#4,g4]@12 a#3@13 ~@7 f3@16, ~ e3@5 ~ c#3@5, ~@2 g3@4 c#4@3 g#3@3", // C#dim C#5 C#dim
  Q: "~@5 g#3 ~@5 f#3, g#2@23 ~ g#2@24, c4@12 d#4@13 ~@3 d#3@20, d#4@2 g#3@2 c4@2 c4@3 d#4@3, ~@4 d#3@20 g#3@7 ~ g#3@7 ~ c4@8",
  R: "~@5 f#3 ~@5 c#3, [f#2,d#4] c#2, [f#3,a#3]@7 ~ a#3@7 ~ a#3@8 [g#3,c#4]@8 c#3@8 g#3@8, ~@4 d#3@20 f3@12 c#4@11 ~, ~@12 c#4@7 ~@9 g#2@19 ~", // D#m F# C#5
  S: "~@5 f#3 ~@5 c#4, f#2 c#2, f#3@2 a#3 [g#3,c#4] c#3 g#3, c#4@8 a#3@4 c#4@7 ~@9 g#2@20, a#3@4 c#3@20 f3@12 c#4@7 ~@5", // C#5
  T: "~@3 b3 ~ b3 ~@3 c#4 ~ c#4, e2@6 ~ e3@5, ~ b2@5 a2@6, ~ e3@2 c#4 a3@2, ~@16 e4@8 e4@15 ~ d#4@8",
  U: "~@2 [e4,a#4] ~@2 e4, a#2 [e2,b4], [e4,a#4]@12 c#4@13 ~@7 g#3@16, ~ g3@5 ~ e3@5, ~@2 a#3@4 e4@3 b3@3", // Edim E5 Edim
  V: "~@5 b3 ~@5 d#4, b2@23 ~ b2@24, ~ f#3@5 ~ f#3@5, ~@8 b3@8 f#4@9 ~@11 a3@12, ~@12 d#4@13 ~@7 b3@7 ~ b3@8",
  W: "~@5 f#4 ~@5 b3, [a2,a4]@3 e2@2 e4, f#4@5 ~ f#4@2 b3@4 e4@6 g#3@6, a3@7 ~ a3@16 ~@8 e3@16, ~ f#3@5 ~ b2@5", // A
  X: "~@16 a2@4 [c3,g4]@4 [e4,g4]@7 ~ f#4@12 e4@4, b4@23 ~@25, g4@3 c4@3 ~@2 d4@4, a2 e4@2 ~@3, ~@4 a3@20 d3@23 ~", // C5 Em
  Y: "b3 ~@4 b3 ~@5 [d4,f#4], [g2,d4,f#4] e2, ~@4 f#3@11 ~ f#3@8 ~@4 g3@7 ~ g3@12, ~@8 b3@10 ~@6 [f#4,a4]@7 ~ [e4,g4]@10 ~@6, ~@12 d3@12 ~@16 b3@7 ~", // D Gmaj7 F#m Em
  Z: "~@12 g4@3 ~@5 c3@4 [e4,g4,b4]@7 ~@9 d3@3 ~ c3@3 ~, a2@5 ~@7, e4@13 ~@3 [g4,b4]@8 ~@8 [f#4,a4]@13 ~@3, g4@8 c4@15 ~@9 d4@16, ~@4 e3@19 ~ d3@16 ~@8", // Em G F#m
  AA: "~@16 b4@8 c#3@8 f#3@3 ~ e3@3 ~ [b2,d#4,f#4,b4]@8, b2 ~, f#4@5 ~ f#4@6 ~@12, d#4@7 ~ d#4@16 [c#4,e4,a4]@13 ~@11, ~ b3@5 ~@6", // B A
  AB: "~@3 b3 ~ b3 ~@3 c#4 d#4 c#4, e2@3 ~ a3@2, b3@11 ~@5 e4@8 e4@15 ~@9, ~ b2@5 a2@6, ~@2 e3@4 ~ e3@5",
  AC: "~@16 [e4,a#4]@8 ~@16 e4@7 ~, a#2 [e2,b4], [e4,a#4]@12 c#4@13 ~@7 g#3@16, ~ g3@5 ~ e3@5, ~@2 a#3@4 e4@3 b3@3", // Edim E5 Edim
  AD: "~@5 b3 ~@5 a3, b2@23 ~ b2@24, d#4@12 f#4@13 ~@3 f#3@20, f#4@2 b3@2 d#4@2 d#4@3 f#4@3, ~@4 f#3@20 b3@7 ~ b3@7 ~ d#4@8",
  AE: "~@5 a3 ~@5 e3, [a2,f#4] e2, [a3,c#4]@7 ~ c#4@7 ~ c#4@8 [b3,e4]@8 e3@8 b3@8, ~@4 f#3@20 g#3@12 e4@11 ~, ~@12 e4@7 ~@9 b2@19 ~", // D A E5
  AF: "~@5 a3 ~@5 e4, a2 e2, a3@2 c#4 [b3,e4] e3 b3, e4@8 c#4@4 e4@7 ~@9 b2@20, c#4@4 e3@20 g#3@12 e4@7 ~@5", // E5
})).s("gm_acoustic_guitar_steel").gain(0.48).pan(0.6)

// chords · fretless bass · "FRETLESS"
const fretless_bass = note(`<
  ~@4 A@6 B C D E F G H I J K L M N O P Q R@2 S K L M N O P Q R@2 T ~@2 U V ~@2 W X Y Z AA AB AC AD AE AF@2 AG AH AI AJ
  ~
>`.pickRestart({
  A: "[g#3@5 ~ c#4@18 g#3@5 ~ d#4@28 ~@5 g#3@5 ~ f4@6 f4@5 ~@2 f4@6 f#4@4 ~ f4@6 d#4@6 ~ d#4@29 ~ g#3@5 ~ c#4@19 a#3@5 a3@3 a#3@5 ~ f#4@30 ~@3 [c#4,f4]@15 ~ [c#4,f4]@7 ~ [c#4,f4]@4 [g#3,d#4]@15 ~ [g#3,c#4]@4 ~ [a#3,d#4]@26 ~@5]/6", // C# G#5 C#5 D#5
  B: "~@39 g#3@4 ~ g#3@3 ~", C: "g#3@16 c#4@6 ~@2 c#4@16 c4@3 ~ a#3@4", D: "g3@15 ~ a#3@7 ~ g#3@22 ~@2",
  E: "[g#3,c4]@23 ~ [f#3,a#3]@18 ~@6", F: "[a#3,d#4]@23 ~ [g#3,c#4]@15 ~ g#3@7 ~",
  G: "g#3@15 ~ c#4@7 ~ c#4@15 ~ c4@3 ~ a#3@4", H: "g3@16 a#3@8 g#3@21 ~@3", I: "[g#3,c4]@22 ~@2 [f#3,a#3]@19 ~@5",
  J: "[d#4,f#4]@22 ~@2 [c#4,f4]@19 ~ [c#4,e4]@4", // D#m C# C#m
  K: "[c#4,e4]@16 [e4,g#4]@3 ~ [e4,g#4]@11 ~ [d#4,f#4]@7 ~ [c#4,e4]@7 ~", // C#m E D#m C#m
  L: "[b3,d#4]@16 [d#4,f#4]@3 ~ [d#4,f#4]@10 ~@2 [c#4,e4]@12 [b3,d#4]@4", // B D#m C#m B
  M: "[a3,c#4]@19 [c#4,e4]@4 ~ [c#4,e4]@3 ~ [b3,d#4]@15 ~ [a3,c#4]@4", N: "[g#3,c4]@26 ~@14 g#3@3 ~ g#3@3 ~",
  O: "g#3@19 ~ c#4@3 ~ c#4@16 c4@3 ~ a#3@4", P: "g3@15 a#3@7 ~@2 g#3@21 ~@3",
  Q: "[c4,d#4]@19 [c#4,f4]@4 ~ [d#4,f#4]@7 ~ [g#3,c4]@14 ~@2", // Cm C# D#m G#
  R: "[a#3@24 g#3@19 ~@4 [c4,d#4]@20 ~ [c#4,f4]@3 ~ [d#4,f#4]@7 ~ [g#3,c4]@14 ~@2, c#4@11 ~@13]/2", // Cm C# D#m G#
  S: "a#3@12 g#3@7 ~@3 [c#4,e4]@2, c#4@13 ~@3", T: "a#3@12 g#3@7 ~@5, c#4@13 ~@3", U: "[b3,d#4]@23 ~ [a3,c#4]@21 ~@3",
  V: "[c#4,f#4]@11 ~ [b3,e4]@12", W: "[b3,d#4]@22 ~@2 c#4@21 ~@3, ~@23 a3@21 ~@4",
  X: "[c#4,f#4]@11 ~ [b3,e4]@10 [e4,g4]@2", Y: "[e4,g4]@16 [g4,b4]@3 ~ [g4,b4]@11 ~ [f#4,a4]@7 ~ [e4,g4]@7 ~",
  Z: "[d4,f#4]@16 [f#4,a4]@3 ~ [f#4,a4]@10 ~@2 [e4,g4]@12 [d4,f#4]@4", // D F#m Em D
  AA: "[c4,e4]@19 [e4,g4]@4 ~ [e4,g4]@3 ~ [d4,f#4]@15 ~ [c4,e4]@4", AB: "[b3,d#4]@26 ~@14 b3@3 ~ b3@3 ~",
  AC: "b3@19 ~ e4@3 ~ e4@16 d#4@3 ~ c#4@4", AD: "a#3@15 c#4@7 ~@2 b3@21 ~@3",
  AE: "[d#4,f#4]@19 [e4,g#4]@4 ~ [f#4,a4]@7 ~ [b3,d#4]@14 ~@2", // D#m E F#m B
  AF: "[c#4@24 b3@19 ~@4 [d#4,f#4]@20 ~ [e4,g#4]@3 ~ [f#4,a4]@7 ~ [b3,d#4]@14 ~@2, e4@11 ~@13]/2", // D#m E F#m B
  AG: "c#4@12 b3@7 ~@5, e4@13 ~@3", AH: "[d#4,f#4]@18 ~@2 [e4,g#4]@4 [f#4,a4]@7 ~ [b3,d#4]@16",
  AI: "~ e4@44 ~@3, c#4@15 ~", AJ: "[b3,e4]",
})).s("gm_fretless_bass").gain(0.48)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<A B@2 C ~@14 D@5 E@7 F@3 G@6 H@4 I@8 J@2 K@8>".pickRestart({
  A: "[d#3,g#3]@23 [c#3,f#3]@25", B: "[[d#3,g#3]@23 ~ f#3@23 ~ d#3@24 [c#3,f#3]@24, ~@23 c#3@24 g#3@25 ~@24]/2",
  C: "[d#3,g#3]@23 ~ c#3@24, ~@23 f#3@25", // G#5
  D: "[~@64 e4@15 ~ [d#5,f#6]@12 [c#4,c#5,e5,e6]@3 ~@16 d#4@16 ~ e6@11 ~@20 c#4@16 ~ [b3,d#6]@11 ~ [a3,c#6]@3 ~@24 f#4@16 g#4@9, ~@47 [e5,g#6]@32 ~@17 [d#5,f#5,f#6]@32 ~@11 [b3,b4]@4 a3@16 ~@16 [b4,d#5]@13 ~@3 g#4@24 ~@25, ~@47 c#4@17 ~@15 [d#4,f#5]@13 ~@3 b3@16 ~@16 [c#4,c#5,e5]@13 ~@3 c#5@33 ~@11 [a4,c#5]@5 g#3@48, ~@48 g#5@32 ~@60 [d#5,d#6]@4 [e5,e6]@32 ~@16 d#6@39 ~@9, ~@193 d#5@36 ~@11]/5", // D#m C#m B A E D#m B D#m …
  E: "[~@23 a#3@24 g3@24 [g#3,g#4]@24 ~ g#3@23 ~@49 g#3@23 g#3@24 ~@24 a#3@24 [f3,g#3]@24 ~@17 e4@15 ~ [d#5,f#6]@12 [c#4,c#5,e5,e6]@3 b3, g#3@23 ~@73 d#4@48 c#4@48 ~@47 c#4@47 ~ [e5,g#6]@32 ~@17, ~@16 c#4@79 c4@48 a#3@24 f3@24 ~@24 f#3@48 ~@25 g#5@32 ~@16, ~@119 f#3@49 ~@23 [c4,d#4]@48 ~@48 c#4@17 ~@15 [d#4,f#5]@13 ~@4]/7", // G# Fm D#m C#m E Cm D#m
  F: "[~@15 d#4@16 ~ e6@11 ~@20 c#4@16 ~ [b3,d#6]@11 ~ [a3,c#6]@3 ~@24 f#4@16 g#4@8 ~, [d#5,f#5,f#6]@31 [c#4,c#5,e5]@12 [b3,b4]@4 c#5@33 ~@11 [a4,c#5]@5 [g#3,d#6]@48, ~@44 [d#5,d#6]@4 [e5,e6]@32 ~@17 d#5@46 ~, ~@47 a3@16 ~@16 [b4,d#5]@13 ~@3 g#4@24 ~@25]/3", // B A D#m C#m B A G#5 D# …
  G: "[g#4@23 a#3@24 g3@24 [g#3,g#4]@24 ~ g#3@23 ~@49 g#3@23 g#3@24 ~@25 a#4@23 [f3,g#3]@24 [g#5,b5], c#4@95 c4@48 [a#3,a#4]@24 f3@24 [c4,d#4]@48 c#4@47 ~@2, g#3@48 ~@48 [d#4,g#4]@48 c#4@48 ~@23 f#3@48 g#4@18 ~@7, ~@23 a#4@50 ~@46 f#3@49 g#4@71 a#3@25 ~@24]/6", // G# Fm G#m A# Cm G#5
  H: "[b3@16 [e4,c#6,e6]@15 ~ d#6@7 [c#4,a5,c#6]@8 [a#3,a#5]@16 [c#4,c#6]@8 ~ [g#5,b5]@23 ~@24 a4@24 [c#4,a4,f#5]@24 ~ e5@23 [g#5,b5], e5@95 f#4@48 ~@49, ~@31 [d#4,b5]@9 ~@7 g5@24 b3@24 b4@24 ~@73, ~@96 d#4@47 ~@24 [b3,g#4]@24 ~]/4", // C#m F#m A# C# G#m F#m G#m E
  I: "[b3@16 [e4,c#6,e6]@15 ~ d#6@7 [c#4,a5,c#6]@8 [a#3,a#5]@16 [c#4,c#6]@8 ~ [g#5,b5]@23 ~@24 a4@24 [c#4,a4,f#5]@24 ~ e5@23 ~@17 g4@15 ~ [f#5,a6]@12 [e4,e5,g5,g6]@3 ~@16 f#4@16 ~ g6@11 ~@20 e4@16 ~ [d4,f#6]@11 ~ [c4,e6]@3 ~@24 a4@16 b4@9, e5@95 f#4@48 ~@48 e4@17 ~@15 [f#4,a5]@13 ~@3 d4@16 ~@16 [e4,e5,g5]@13 ~@3 e5@33 ~@11 [c5,e5]@5 b3@48, ~@31 [d#4,b5]@9 ~@7 g5@24 b3@24 b4@24 ~@72 [g5,b6]@32 ~@17 [f#5,a5,a6]@32 ~@11 [d4,d5]@4 c4@16 ~@16 [d5,f#5]@13 ~@3 b4@24 ~@25, ~@96 d#4@47 ~@24 [b3,g#4]@24 ~ b5@32 ~@60 [f#5,f#6]@4 [g5,g6]@32 ~@16 f#6@39 ~@9, ~@337 f#5@36 ~@11]/8", // C#m F#m A# C# G#m F#m Em D …
  J: "[g#3@23 [a3,c#4]@24 ~@20 d#5@2 ~@3 g#3@23 d#4, e4@95 ~, b3@47 [a#3,e5]@22 c#5@4 ~@23, ~@48 g3@23 [b3,b4]@24 ~]/2", // A A#dim B
  K: "[b3@23 ~@49 b3@23 b3@24 ~@25 c#5@23 [g#3,b3]@24 ~ [b3,f#5,f#6]@46 ~ [a3,e4,a4,b5]@48 ~ [g#4,e5]@96, [f#4,b4,f#6]@47 [c#4,c#5]@24 g#3@24 [d#4,f#4,f#6]@48 e4@47 ~@48 c#4@49 ~@97, ~@23 a3@49 b4@71 c#4@25 ~@23 [a3,d#4,f#4]@48 ~@48 [e3,b3]@97, ~@48 [e4,e6]@48 ~@23 a3@48 b4@18 ~@199, ~@144 e6@48 ~@47 e6@144 ~]/8", // G#m B5 Asus2 C#m B5 C# D#m D#dim …
})).s("gm_string_ensemble_2").gain(0.48)

// other · tinkle bell · "TINKLEBELL"
const tinkle_bell = note(`<
  A B A B C ~@20 D E D E F G H I ~@2 D E D E J K L M J K L N O P Q R ~@2 S T S T S U V ~
>`.pickRestart({
  A: "c7 ~@23 a#6 ~@23", B: "c7@2 ~@14 c#7 ~@7 a#6 ~@23", C: "g#6 ~@47", D: "d#7 ~@19 f7 ~@3 f#7 ~@7 c7 ~@15",
  E: "c#7 ~@23 g#7 ~@23", F: "f#7 ~@15 g#7 ~@7 g#7 ~@7 f#7 ~@11 e7 ~@3",
  G: "f#7 ~@7 d#6 ~@3 g#6 ~@3 b6 ~@3 g#6 ~@3 d#7 ~@7 c#7@2 ~@10 d#7 ~@3",
  H: "e7@2 ~@6 a6 ~@3 b6 ~@3 c#7 ~@7 e7 ~@7 d#7 ~@11 c#7 ~@3", I: "d#7 ~@7 c6 ~@3 d#6 ~@3 g#6 ~@15 g#6 ~@7 g#6@2 ~@6",
  J: "b6 ~@19 e7 ~@3 e7 ~@7 d#7 ~@7 c#7 ~@7", K: "a#6 ~@15 c#7 ~@7 b6 ~@23", L: "b6 ~@23 a6@2 ~@22",
  M: "a6@2 ~@22 g#6 ~@23", N: "f#7@2 ~@22 e7 ~@23", O: "a7 ~@15 b7 ~@7 b7 ~@7 a7 ~@11 g7 ~@3",
  P: "a7 ~@7 f#6 ~@3 b6 ~@3 d7 ~@3 b6 ~@3 f#7 ~@7 e7@2 ~@10 f#7 ~@3",
  Q: "g7@2 ~@6 c7 ~@3 d7 ~@3 e7 ~@7 g7 ~@7 f#7 ~@11 e7 ~@3", R: "f#7 ~@7 d#6 ~@3 f#6 ~@3 b6 ~@15 b6 ~@7 b6@2 ~@6",
  S: "f#7 ~@19 g#7 ~@3 a7 ~@7 d#7 ~@15", T: "e7 ~@23 b7 ~@23", U: "e7 ~@47", V: "b7 ~@47",
})).s("gm_tinkle_bell").gain(0.56).pan(0.8)

// chords · flute · C#maj7
const flute = note(`<
  [~@31 f#4 ~ [c5,c#5] f#5 ~@4 a#4!2 [c#4,c5,c#5] f#5 ~@4 a#4, ~@30 c#4@2 a#4@2 ~ g#5@2 c#5@2 ~@4 g#5@2 c#5@2 ~, ~@18 f#5 c5 f#4 ~ f#5 c5]
  [~ c5 f#5 ~ f#5@2 ~@42, ~@3 g#5@2 ~@43]
  ~@59
>`).s("gm_flute").gain(0.15).pan(0.3)

// chords · flute · soft notes
const flute_soft = note("<~ [a#4 c#4 c#5 ~@6 c#4 ~@38, f#4@2 ~@3 c#5@2 a#4@2 ~@39, ~@3 c5 f#4 ~@19] ~@59>")
  .s("gm_flute").gain(0.05).pan(0.3)

// chords · string ensemble 1 · "STRINGS" · F# D#sus2 C#maj7
const string_ensemble_1 = note(`<
  [~@40 c#5@5 ~@3, ~@32 [c#4,f#4,a#4,c5]@13 ~@3]!4
  ~@18
  [~@33 f#5 [d#5,f5] [c5,c#5] a#4 ~ f#4 ~@4 g#3 ~@2 d#3 ~, ~@32 g#5@2 ~@3 g#4@2 d#4@2 c4@2 ~@2 f3@2 ~, ~@19 f4 c#4 a#3 f#3 ~]
  ~@38
>`).s("gm_string_ensemble_1").gain(0.4).pan(0.3)

// other · orchestral harp · "HARP"
const orchestral_harp = note("<~@2 [~@2 c#5] ~@58>").s("gm_orchestral_harp").gain(0.48).pan(0.2)

// other · acoustic guitar steel · "+MANDOLIN"
const acoustic_guitar_steel_2 = note(`<
  [~@8 d#5!24 c5!6 ~ c5 c#5!4 ~@3 c#5]
  [~@8 d#5!24 f5!5 ~@3 f#5!4 ~@3 f#5]
  [f#5 f5 d#5 ~@5 d#5!25 ~@7 d#5!8]
  [c5!3 ~@5 c5!16 a#4!22 ~@2]
  ~@57
>`).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.9)

// other · acoustic guitar steel · "+MANDOLIN" · soft notes
const acoustic_guitar_steel_3 = note(`<
  [d#5!8 ~@30 c5 ~@5 c#5!3 ~]
  [d#5!8 ~@29 f5!3 ~@4 f#5!3 ~]
  [~@3 d#5!5 ~@25 d#5!7 ~@8]
  [~@3 c5!5 ~@38 a#4!2]
  ~@57
>`).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.9)

// other · french horn · "FR.HORN"
const french_horn = note("<~@17 [g#4@3 f#4@2 g#4] [a#4@23 g#4@24 ~] ~@42>").s("gm_french_horn").gain(0.32)

// chords · celesta
// … 93 more lines

More by Dee