Strudelify
Tell Him cover art

Let’s Talk About Love

Tell Him

Streisand

KeyB majorTempo70 bpm
0:00/0:00
// Tell Him — Streisand
// 70 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 7 "warmpad" pad warm (copy of ch 6 "melodie" voice oohs); ch 9 "panfluit" pan flute (copy of ch 8 "melodie" voice oohs)
// note: Full arrangement: all 89 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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, A@4 for four bars: edit a riff to change every repeat.

// bass · acoustic bass · "acbass"
const bass = note(`<
  ~ A B C D E F G H I J A K L M N G H O P F Q J R G F S T U R V W K R X Y W B Z AA D AB AC G H AD F AE AF J R AG F AH W
  K AI X W D R F W AJ V AK AL AM AN AO AP AQ AR AS AT Q AU AS AT AF AV AT@2 AW AX AY AZ BA ~
>`.pickRestart({
  A: "g#2@3 g#2", B: "g#2", C: "g#1@3 g#2", D: "f#2", E: "f#1@3 f#2", F: "e2@20 ~ e2@2 ~", G: "c#2@20 ~ c#2@2 ~",
  H: "b1@20 ~ b1@2 ~", I: "b1@12 f2@8 ~ f2@3", J: "g#2@20 ~ g#2@2 ~", K: "f#2@20 ~ f#2@2 ~",
  L: "f#2@18 f#2@2 ~ f#2 ~@2", M: "e1!2", N: "d#2@8 ~ d#2@3 g#2@8 ~ g#2@3", O: "b1@18 b1@3 b1 ~@2", P: "e2@21 e1@2 ~",
  Q: "d#2@20 ~ d#2@2 ~", R: "d2@20 ~ d2@2 ~", S: "e2@18 e2@3 e2 ~@2", T: "a1@18 g#2@3 g2 ~@2", U: "f#2@18 e2@3 c#2 ~@2",
  V: "e2@8 ~ e2@3 e2@8 ~ e2@3", W: "a1@20 ~ a1@2 ~", X: "e2@5 ~ e1@6", Y: "a1@23 ~", Z: "g#2@18 g#2@3 g#2 ~@2",
  AA: "f#2@18 c2@3 c#2 ~@2", AB: "e2@6 e2@5 ~", AC: "d#1@12 g#2@8 ~ g#2@3", AD: "b1@3 b1", AE: "e2@3 e2", AF: "d#2",
  AG: "c#2@23 ~", AH: "e2", AI: "d2@18 d2@3 d2 ~@2", AJ: "f2@12 a#1@8 ~ a#1@3", AK: "d2@5 ~ b1@6", AL: "c2@23 ~",
  AM: "g#2@8 ~ g#2@3 c#2@8 ~ c#2@3", AN: "c2@5 ~ f2@5 ~", AO: "a#1@8 ~ a#1@3 c1@12", AP: "c#2@8 ~ c#2@3 f2@6 f2@6",
  AQ: "a#1@8 ~ a#1@3 c2@8 ~ c2@3", AR: "f2@5 ~ f2@5 ~", AS: "a#1@23 ~", AT: "g2@20 ~ g2@2 ~", AU: "f2@8 ~ f2@3 f1@12",
  AV: "f2@20 ~ f2@2 ~", AW: "f2@18 f2@3 f2 ~@2", AX: "d#2@8 ~ d#2@3 c2@12", AY: "a#1@20 ~ a#1@2 ~", AZ: "a#1@11 ~",
  BA: "a#1@19 ~@5",
})).s("gm_acoustic_bass").gain(0.4).pan(0.7)

// chords · epiano1 · "elecpiano1"
const epiano1 = note(`<
  ~@2 A@2 B@2 C D E F A@2 G@2 H I J E K@2 L M N O P@2 Q@3 R@2 S T U@3 V W X Y Z AA AB AC@3 AD@2 M AE AF@2 AG@3 T AH AI
  AJ@2 AK AL AM AN AO AP AQ AR AS AT AU AV@2 AW AX AY AZ@2 AX BA BB BC BD@2 BE AW BF@2 ~
>`.pickRestart({
  A: "[b3@9 ~@5 b4@2, b4@7 ~, g#4@13 g#4@3, d#4@11 d#4@5, ~@9 b3@7]/2",
  B: "[f#3@5 ~@9 f#4@2, f#4@7 ~, d#4@3 d#4, ~@5 f#3@6 f#3@5, ~@7 a#4@9]/2",
  C: "b3@5 ~@2 e4, g#4, e4@17 ~ b3@6, g#3@13 ~@2 g#3@9", D: "c#4@8 ~ c#4@3, [g#3,e4,g#4]",
  E: "f#3@5 ~ f#3@2, [b3,d#4,f#4]", F: "[f#3,d#4]@2 ~ a#3, ~ [g3,d#4,g4]",
  G: "[a#3@9 ~@6 f#4, f#2, f#4@13 d#4@3, d#4@10 ~ a#3@5, f#3@25 ~@2 f#3@21]/2", H: "[g#3,d#4]@2 ~ c#4, ~ [a#3,f#4,a#4]",
  I: "[f#3,c#4]@4 ~@5 d#4@3, ~@3 [b3,f#4,g#4]@5", J: "c#4@8 ~ c#4@3, [b3,e4,g#4]",
  K: "[b3@16 ~@2 b3@2 ~ e3@18 ~@3 e3@6, [f#3,d#4,f#4]@20 ~ [g#3,b3,d#4]@27]/2", L: "b3@8 ~ b3@3, [g#3,d#4,f#4]",
  M: "a#3@8 ~ a#3@3, [f#3,c#4,d#4]", N: "b3@5 ~@2 d#4, f#4, d#4@17 ~ b3@6, g#3@13 ~@2 g#3@9",
  O: "d4@8 ~ d4@3, [a3,f#4,a4]", // D
  P: "[e3@15 ~@3 e3@2 ~ b3@18 ~@6 e4@3, [a3,c#4,e4]@20 ~ g#4@27, ~@21 e4@20 ~ b3@6, ~@21 g#3@16 ~@2 g#3@9]/2", // A
  Q: "[b3@15 ~@3 b3@2 ~ a3@19 ~@2 a3@2 ~ f#3@18 ~@3 f#3@6, g#4@5 ~@13, e4@17 ~@4 e4 ~@50, g#3@13 ~@2 g#3@5 ~ [e3,c#4]@23 ~ [a3,c#4,e4]@27]/3", // C#m A
  R: "[b3@15 ~@3 b3@2 ~ d4 ~@8 b3@6 [g#3,e4]@12, f#4@5 ~@7, d4@17 ~@31, a3@13 ~@2 a3@5 ~ [a3,f#4]@15 ~@12]/2", // C#m D
  S: "a3@5 ~@2 c#4, e4, c#4@17 ~ a3@6, e3@13 ~@2 e3@9", T: "f#3@5 ~ f#3@2, [a3,c#4,e4]",
  U: "[d4@16 ~@2 d4@2 ~@10 b3@6 [g#3,e4]@8 ~ e3@18 ~@3 e3@6, [c#4,f#4,a4]@20 ~ [a3,d4,f#4]@15 ~@9 [a3,c#4,e4]@27]/3", // C#m F#m D A
  V: "e3@5 ~ e3@2, [a3,c#4,e4]", W: "d#4@8 ~ d#4@3, [b3,g#4,b4]", X: "b3@5 ~ b3@2, [d#4,g#4,b4]",
  Y: "a#3@5 ~@2 d#4, f#4, d#4@17 ~ a#3@6, f#3@13 ~@2 f#3@9", Z: "a#3@8 ~ a#3@3, [f#3,d#4,f#4]",
  AA: "[g#3,d#4] [a#3,f#4]", AB: "f#3@5 ~@4 c#4@3 [b3,f#4]@12, [a#3,d#4] ~, c#4 ~@5 f#3@6 ~@12",
  AC: "[g#3@15 ~@3 g#3@2 ~ b3@30 ~@18 f#4@3, [b3,c#4,e4]@20 ~ b2@51, ~@7 f#4@14 d#4@3, ~@7 d#4@11 ~ b3@5, ~@21 f#3@28 ~@2 f#3@21]/3", // C#m7
  AD: "[g#3@5 ~@9 f#4@2, f#4@7 ~, d#4@3 d#4, ~@5 g#3@6 g#3@5, ~@7 b4@9]/2", AE: "g#3@5 ~ g#3@2, [b3,d#4,f#4]",
  AF: "[a3@15 ~@3 a3@2 ~ e3@18 ~@3 e3@6, [d4,f#4,a4]@20 ~ [a3,c#4,e4]@27]/2", // D A
  AG: "[g#3@9 ~@5 g#4 a3@6 ~@2 c#4, g#4@7 ~@5, e4@13 e4@2 e4@9, b3@33 b3@12 c#4@20 ~ a3@6, ~@27 g#3@18 e3@16 ~@2 e3@9]/3",
  AH: "b3@5 ~@2 d4, f#4, d4@17 ~ b3@6, a3@13 ~@2 a3@9", AI: "~ b3 [g#3,e4]@2, [a3,d4,f#4] ~",
  AJ: "[e3@15 ~@3 e3@2 ~ c#4@19 ~@2 c#4@6, [a3,c#4,e4]@20 ~ [a3,e4,f#4]@27]/2", AK: "d4@8 ~ d4@3, [c#4,f#4,a4]",
  AL: "a3@5 ~@2 b3, d4, b3@17 ~ a3@6, f#3@13 ~@2 f#3@9", AM: "a3@8 ~ a3@3, [e3,c#4,e4]",
  AN: "~ c4 [a3,d4]@2, [a3,f4,a4] ~", AO: "[g3,d4]@2 ~ c4, ~ [g3,e4,g4]",
  AP: "~@6 d4@6 b3@5 ~@4 f4@3, [c4,f4,a4] [d4,g4], ~@12 f4 ~@5 b3@6", AQ: "g3@5 ~ g3@2, [c4,e4,g4]",
  AR: "[c4,g#4]@2 ~ c#4, ~ [c4,f4,g#4]", AS: "~ c4 ~ c4, [a#3,d#4,g4] [g#3,d#4,f4]",
  AT: "g#3@5 ~@4 c#4@3 [c4,g#4]@12, [a#3,f4] ~, c#4 ~@5 g#3@6 ~@12", AU: "[c4,f4]@2 [g3,d#4] [g#3,d#4]",
  AV: "[~@6 a#3@6 ~@6 d#4@2 ~ [a#3,f4]@15 [a3,f4]@12, [g#3,c#4,f4]@3 [c4,g#4,c5]@2 ~@7]/2", // A#5 Dm C# Fm
  AW: "a#3@5 ~@2 d4, f4, d4@17 ~ a#3@6, f3@13 ~@2 f3@9", AX: "g3@5 ~ g3@2, [a#3,d4,f4]",
  AY: "a#3@8 ~ a#3@3, [g3,c4,d#4]", // Cm
  AZ: "[[a#3,d#4]@12 a3@5 ~ a3@2 ~ f3@18 ~@3 f3@6, ~@12 [c4,a4]@8 ~ [a#3,d4]@27, ~@12 f4 ~@8 f4 ~@26]/2", // D#5 F A#
  BA: "a#3@8 ~ a#3@3, [g3,d4,f4]", BB: "a#3@5 ~@2 c4, d#4, c4@17 ~ a#3@6, g3@13 ~@2 g3@9",
  BC: "d4@5 ~@2 g4, a#4, g4@17 ~ d4@6, a#3@13 ~@2 a#3@9",
  BD: "[a#3@15 ~@3 a#3@2 ~ a3@18 ~@3 a3@6, [d4,g4,a#4]@20 ~ [d4,f4,a4]@27]/2", BE: "[g3,d4] [a#3,d#4]",
  BF: "[~@3 f4@4 ~@5, [f3,a#3,d4]@7 ~@5]/2", // A#
})).s("gm_epiano1").gain(0.48).pan(0.4)

// chords · acoustic guitar steel · "steelstrgt"
const acoustic_guitar_steel = note(`<
  A@2 B@2 C@2 D E F@2 G H I@2 J K L M N O P Q R S T U D V W X Y T W Z AA AB@2 AC@2 AD AE AF AG AH AI@2 AJ@2 AK AL AM@2
  AN@4 AO AP AQ AR@2 AS AT AU AV@2 AW AX@2 AY@2 AZ BA BB BC BD BE BB BF BG BH BI@2 BJ BK BL BM@3
>`.pickRestart({
  A: "[[b3,d#4]@2 [b3,d#4] b3!4 ~@3 [b3,d#4] b3!4 [b3,d#4], g#2 g#2, g#3@12 g#3@6 ~@3 [b3,d#4]@9 ~@6 g#3@6 g#3@5 ~, ~@3 d#4@2 d#4@2 ~@4 d#4@2 d#4@2 ~]/2", // B
  B: "[b3@4 ~@2 [b3,d#4]@3 d#4@6 ~@3 b3@3 b3@3 ~@6 b3@3 ~@9 g#3@6, g#3@2 ~@2 g#3@2 g#3 ~, ~@2 g#4@3 [d#4,g#4]@5 [d#4,g#4]@3 ~@3, ~@11 b3@2 [b3,d#4,g#4]@3]/2", // B G#5 G#m
  C: "[[d#3,f#3,a#3,d#4]@2 [d#3,f#3] d#3 [f#3,a#3,d#4] [d#3,f#3,a#3,d#4]@2 f#3@2 f#3 [a#3,d#4]@2 [d#3,f#3,a#3,d#4] [d#3,f#3]!2 [d#3,f#3,a#3], ~@2 [a#3,d#4]@2 ~@3 [a#3,d#4]@3 f#3 ~@2 d#4@3, ~@13 a#3@2 ~]/2", // D#m D#5 D#m D#5
  D: "g#3@4 ~@2 [g#3,b3]@3 b3@6 ~@3 g#3@3 g#3@3, e3 ~, ~@2 e4@3 [b3,e4]@3", // G#m E5
  E: "[g#3,c#4,e4]@2 [g#3,c#4,e4] g#3!5, e3@4 e3@3 ~, ~@3 [c#4,e4]@3 [c#4,e4]@2", // C#m
  F: "[[d#3,f#3,b3,d#4]@2 [b3,d#4]@2 [f#3,b3,d#4] [d#3,f#3,b3,d#4]@2 [f#3,b3,d#4]@3 [b3,d#4]@2 [d#3,g3]@2 [d#3,g3] g3, ~@2 [d#3,f#3] ~@4 d#3@2 ~ [d#3,f#3] ~@3 [a#3,d#4]@2]/2", // B D# D#m D#5
  G: "[b3,d#4,g#4]@2 [b3,d#4,g#4] b3!5, g#3@4 g#3@3 ~, ~@3 [d#4,g#4]@3 [d#4,g#4]@2", // G#m G#5
  H: "b3!6 [b3,d#4,g#4]@2, g#4@3 ~@5, d#4@2 ~ [d#4,g#4]@3 ~@2", // G#m G#5
  I: "[f#3@4 ~@2 [f#3,a#3]@3 a#3@6 ~@3 f#3@3 f#3@3 ~@6 f#3@3 ~@9 d#3@6, d#3@2 ~@2 d#3@2 d#3 ~, ~@2 d#4@3 [a#3,d#4]@5 [a#3,d#4]@3 ~@3, ~@11 f#3@2 [f#3,a#3,d#4]@3]/2", // F# D#5 D#m
  J: "[e3,g#3,b3]@2 [g#3,b3]@2 ~@3 c#4, d#3 ~ [d#3,e3] ~ c#4@3 ~, ~@3 [f#3,a#3]", // E G#m Emaj7 F#
  K: "~@3 [c#3,d#3] [g#3,b3,d#4]@2 [b3,d#4]@2, d#3@3 ~@5, ~ [f#3,a#3]@3 f#3 ~ [f#3,g#3] ~", // C#sus2 G#m B F# F#sus2
  L: "[e3,g#3,b3,c#4]@2 [b3,c#4]@2 [g#3,b3,c#4] [e3,g#3]@2 [e3,g#3], ~@2 [e3,g#3] ~@2 [b3,c#4]@3", // C#m7 Bsus2 C#7 E Bsus2
  M: "b3@2 ~@2 b3 b3@3, f#3!2, d#3@3 d#3@5, ~ b3 ~@2",
  N: "[f#3,b3,d#4]@2 [f#3,b3,d#4] f#3!5, d#3@4 d#3@3 ~, ~@3 [b3,d#4]@3 [b3,d#4]@2", // B
  O: "e3@5 ~@16 [d#3,b3]@3, d#3@5 d#3@2 ~, ~@5 e3@13 e3@6, ~@5 g#3@9 ~ g#3@9, ~@2 b3@5 ~", // G#m
  P: "g#3@2 ~@2 g#3 g#3@3, e3!2, d#3@3 d#3@5, ~ g#3 ~@2",
  Q: "[d#3,f#3,a#3]@2 [d#3,f#3,a#3] d#3!5, c#3@4 c#3@3 ~, ~@3 [f#3,a#3]@3 [f#3,a#3]@2", // D#m F#
  R: "b3@2 ~@2 b3 b3@3, g#3!2, f#3@3 f#3@5, ~ b3 ~@2", S: "d4@2 ~@2 d4 d4@3, a3!2, f#3@3 f#3@5, ~ d4 ~@2",
  T: "a3@2 ~@2 a3 a3@3, e3!2, c#3@3 c#3@5, ~ a3 ~@2",
  U: "[e3,g#3,b3,e4]@2 [b3,e4]@2 [g#3,b3,e4] [e3,g#3]@2 [e3,g#3], ~@2 [e3,g#3] ~@2 [b3,e4]@3", // E E5 E E5
  V: "[c#3,e3,a3,c#4]@2 [a3,c#4]@2 [e3,a3,c#4] [c#3,e3]@2 [c#3,e3], ~@2 [c#3,e3] ~@2 [a3,c#4]@3", // A C#m A
  W: "f#3@5 ~@16 [e3,c#4]@3, e3@5 e3@2 ~, ~@5 f#3@13 f#3@6, ~@5 a3@9 ~ a3@9, ~@2 c#4@5 ~", // C#m
  X: "[f#3,a3,b3,d4]@2 [b3,d4]@2 [a3,b3,d4] [f#3,a3]@2 [f#3,a3], ~@2 [f#3,a3] ~@2 [b3,d4]@3", // Bm7 Bm Bm7 F#m Bm
  Y: "[f#3,a3,b3] [a3,b3] [g#3,b3,e4] [e3,g#3,b3,e4], d3 ~ [d3,f#3] ~@5", // B7 Asus2 E D
  Z: "a3@5 ~@16 [f#3,d4]@3, f#3@5 f#3@2 ~, ~@5 a3@13 a3@6, ~@5 c#4@9 ~ c#4@9, ~@2 d4@5 ~", // D
  AA: "[f#3,a3,b3] [a3,b3] [g#3,b3,e4] [b3,e4], d3 ~ [d3,f#3] ~ e3 ~ [e3,g#3] ~", // B7 Asus2 E E5 D E
  AB: "e3@5 ~@16 [c#3,c#4]@3, c#3@5 c#3@2 ~, ~@5 e3@13 e3@6, ~@5 a3@9 ~ a3@9, ~@2 c#4@5 ~", // C#
  AC: "[b3@4 ~@2 [b3,d#4]@3 d#4@6 ~@3 b3@3 b3@6 ~@3 [b3,d#4]@3 d#4@6 ~@3 b3@3 b3@3, g#3@4 ~@3 g#3@5 ~@4, ~@2 g#4@3 [d#4,g#4]@2 ~@3 g#4@3 [d#4,g#4]@3]/2", // B G#5
  AD: "a#3@2 ~@2 a#3 a#3@3, f#3!2, d#3@3 d#3@5, ~ a#3 ~@2",
  AE: "[d#3,f#3,a#3,d#4]@2 [a#3,d#4]@2 [f#3,a#3,d#4] [d#3,f#3]@2 [d#3,f#3], ~@2 [d#3,f#3] ~@2 [a#3,d#4]@3", // D#m D#5 D#m D#5
  AF: "[e3,g#3,b3]@2 [g#3,b3]@2 [f#3,a#3]@2 [f#3,a#3] a#3, d#3 ~ [d#3,e3] ~@3 [c#4,f#4]@2", // E G#m F# Emaj7 F#5
  AG: "[d#3,a#3] [c#3,d#3,f#3,a#3] [g#3,b3,d#4] [f#3,g#3,b3,d#4], f#3 ~@23", // D#5 D#m7 G#m G#m7
  AH: "[g#3,b3,c#4]@2 [g#3,b3,c#4] g#3!5, e3@4 e3@3 ~, ~@3 [b3,c#4]@3 [b3,c#4]@2", // C#7 Bsus2
  AI: "[f#3@4 ~@2 [f#3,b3]@3 b3@6 ~@3 f#3@3 f#3@3 ~@6 f#3@3 ~@9 d#3@6, d#3@2 ~@2 d#3@2 d#3 ~, ~@2 d#4@3 [b3,d#4]@5 [b3,d#4]@3 ~@3, ~@11 f#3@2 [f#3,b3,d#4]@3]/2", // B5 B
  AJ: "[[e3,g#3]@2 [e3,g#3] e3!4 ~@3 [e3,g#3] e3!4 [e3,g#3], e2 e2, d#3@12 d#3@6 ~@3 [e3,g#3]@9 ~@6 d#3@6 d#3@5 ~, ~@3 g#3@2 g#3@2 ~@4 g#3@2 g#3@2 ~]/2", // E
  AK: "d#3@4 ~@2 [d#3,f#3]@3 f#3@6 ~@3 d#3@3 d#3@3, c#3 ~, ~@2 a#3@3 [f#3,a#3]@3", // D#m F#
  AL: "g#3@5 ~@16 [f#3,d#4]@3, f#3@5 f#3@2 ~, ~@5 g#3@13 g#3@6, ~@5 b3@9 ~ b3@9, ~@2 d#4@5 ~", // D#m
  AM: "[[a3,d4,f#4]@2 [a3,d4,f#4] a3!3 [a3,d4,f#4] [e3,a3,c#4]@3 [e3,a3,c#4] e3!5, f#3@4 f#3@3 c#3@5 c#3@3 ~, ~@3 [d4,f#4]@3 ~@5 [a3,c#4]@3 [a3,c#4]@2]/2", // D A D A
  AN: "[g#3@4 ~@2 [g#3,b3]@3 b3@6 ~@3 g#3@3 g#3@3 ~@6 g#3@3 ~@9 e3@3 e3@6 ~@3 [e3,a3]@3 a3@6 ~@3 e3@3 [f#3,a3,c#4]@9 [f#3,a3,c#4]@3 f#3@3 f#3@3 f#3@3 f#3@3 f#3@3, e3@4 ~@4 e3@4 e3@2 ~ c#3@5 ~@3 e3@5 e3@3 ~, ~@2 e4@3 [b3,e4]@5 [b3,e4]@3 ~@5 c#4@3 ~@11, ~@11 g#3@2 [g#3,b3,e4]@2 ~@6 [a3,c#4]@2 ~@4 [a3,c#4]@3 [a3,c#4]@2]/4", // G#m A5 F#m E5 E A
  AO: "a3@5 ~@16 [f#3,d4]@3, f#3@5 f#3@2 ~, ~@5 a3@13 a3@6, ~@5 b3@9 ~ b3@9, ~@2 d4@5 ~", // D
  AP: "~@3 [d3,f#3] ~@3 b3, f#3@3 ~@3 [e3,g#3]@2, ~ [a3,b3]@3 b3@3 ~", // D E Asus2
  AQ: "e3@4 ~@2 [e3,a3]@3 a3@6 ~@3 e3@3 e3@3, c#3 ~, ~@2 c#4@3 [a3,c#4]@3", // A5 A
  AR: "[f#3@5 ~@13 f#3@3 a3@8 ~@16 [f#3,d4]@3, e3@5 [e3,a3]@2 ~@3 d4@5 ~, ~@5 f#3@13 ~@3 f#3@18 f#3@6 ~@3, ~@5 a3@9 ~@15 a3@13 a3@6, ~@6 c#4@15 ~@8 c#4@9 ~ c#4@9]/2", // D A5
  AS: "[d3,f#3,a3,b3]@2 [a3,b3]@2 [f#3,a3,b3] [d3,f#3]@2 [d3,f#3], ~@2 [d3,f#3] ~@2 [a3,b3]@3", // Bm7 Asus2 B7 D Asus2
  AT: "[e3,a3,c#4]@2 [e3,a3,c#4] e3!5, c#3@4 c#3@3 ~, ~@3 [a3,c#4]@3 [a3,c#4]@2", // A
  AU: "[f3,a3]@2 [f3,a3] ~ [d3,f3]@2 [d3,f3] f3, ~ [c4,f4] ~@2, ~@3 a3@3 [a3,a#3]@2", // F Dm F5 A#maj7
  AV: "[~@3 [d3,e3] [g3,c4,e4]@2 [e3,g3,c4,e4] [a3,c4,d4]@3 [c4,d4]@2 ~@3 [f3,g3], e3@3 ~ e3 ~@2 f3@2 ~ [f3,a3] ~@2 [b3,d4]@3, ~ [g3,b3]@3 ~@8 g3@3 ~]/2", // Dsus2 C D7 Csus2 Fsus2 F Bm G
  AW: "[e3,g3,c4,e4]@2 [c4,e4]@2 [g3,c4,e4] [e3,g3]@2 [e3,g3], ~@2 [e3,g3] ~@2 [c4,e4]@3", // C Em C
  AX: "[~@3 [g#3,c4] [f3,g#3]@2 [f3,g#3] ~ [d#3,g3]@2 [d#3,g3] g3 [f3,g#3,c4]@2 [d#3,f3,g#3,c4]@2, c4@3 ~@3 [c4,c#4]@2 ~@2 [a#3,c4]@2 ~@4, ~ [d#4,g#4]@3 ~@3 g#3@5 ~@4]/2", // G# Fm D# Fm Fm7 C#maj7 A#sus2 G#5
  AY: "[[f3,g#3,a#3]@2 [c#3,f3,g#3,a#3]@2 [c4,d#4,g#4]@2 [g#3,c4,d#4,g#4] [f3,g#3]@3 [f3,g#3,c4,c#4] [g3,a#3,d#4]@3 [f3,g#3,c4]@2, ~@11 d#3@2 ~ d#3 ~]/2", // A#7 A#m7 G# Fm C#maj7 D# Fm
  AZ: "[f3,g#3,a#3] [c#3,f3,g#3,a#3] [c4,d#4,g#4] [g#3,c4,d#4,g#4]", // A#7 A#m7 G#
  BA: "[a#3,c4,f4] [c4,f4] [a3,c4,f4] [c4,f4], f3 ~ [f3,a#3] ~ f3 ~ [f3,a3] ~", // A#sus2 F5 F F5 A#5 F
  BB: "f3@4 ~@2 [f3,a#3]@3 a#3@6 ~@3 f3@3 f3@3, d3 ~, ~@2 d4@3 [a#3,d4]@3", // A#5 A#
  BC: "a#3@2 ~@2 a#3 a#3@3, g3!2, f3@3 f3@5, ~ a#3 ~@2",
  BD: "d#3@4 ~@2 [d#3,g3]@3 g3@6 ~@3 d#3@3 d#3@3, c3 ~, ~@2 a#3@3 [g3,a#3]@3", // D# Gm
  BE: "[g3,a#3,c4] [a#3,c4] [a3,c4,f4] [f3,a3,c4,f4], d#3 ~ [d#3,g3] ~@5", // C7 A#sus2 F D#
  BF: "g3@4 ~@2 [g3,a#3]@3 a#3@6 ~@3 g3@3 g3@3, f3 ~, ~@2 d4@3 [a#3,d4]@3", // Gm A#
  BG: "[d#3,g3,a#3]@2 [d#3,g3,a#3] d#3!5, d3@4 d3@3 ~, ~@3 [g3,a#3]@3 [g3,a#3]@2", // D# Gm
  BH: "[d#3,g3,a#3,c4]@2 [a#3,c4]@2 [g3,a#3,c4] [d#3,g3]@2 [d#3,g3], ~@2 [d#3,g3] ~@2 [a#3,c4]@3", // Cm7 A#sus2 C7 D# A#sus2
  BI: "[a#3,d4,g4]@2 [a#3,d4,g4] a#3!5, g3@4 g3@3 ~, ~@3 [d4,g4]@3 [d4,g4]@2", // Gm G5
  BJ: "[a3,d4,f4]@2 [a3,d4,f4] a3!5, f3@4 f3@3 ~, ~@3 [d4,f4]@3 [d4,f4]@2", // Dm
  BK: "~@3 [d3,d#3] ~@3 a#3, d#3@3 ~@3 [d#3,g3]@2, ~ [g3,a#3]@3 a#3@3 ~", // D#maj7 D# Gm
  BL: "f3@5 ~@16 [d3,d4]@3, d3@5 d3@2 ~, ~@5 f3@13 f3@6, ~@5 a#3@9 ~ a#3@9, ~@2 d4@5 ~", // D
  BM: "[[d3,f3,a#3,d4]@2 f3!2 [f3,a#3,d4] d3@2 d3@16 ~, ~@2 [d3,a#3,d4]@2 ~ [f3,a#3,d4]@16 ~@3]/3", // A# Gm A#
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.3)

// chords · acoustic guitar steel · "steelstrgt" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A@2 B C D@2 E F G H I@2 J K L M N ~ O ~@2 P ~@3 N E Q ~ R S ~@3 T ~@2 U B ~ G V ~ F J K W@2 X ~@2 P E Y Z F ~ AA AB
  ~@2 AC P AD AE AF AG AH@2 ~ AI ~ AJ AK ~ AL AM AK AN AO AP AQ@2 AR AA ~ AS ~@2
>`.pickRestart({
  A: "[~@3 g#3@3 ~@2]/2", B: "~ g#3, ~@3 b3@3 ~@2", C: "b3!2 ~@6",
  D: "[~@10 f#3@2 d#3@3 ~@6 d#3@9 d#3@3 [d#3,f#3]@3 ~@12]/2", E: "~ e3, ~@3 g#3@3 ~@2", F: "~@7 e3",
  G: "~@10 f#3@2 d#3@3 ~@9, ~@3 d#3 ~@4", H: "~@4 d#3@2 ~@3 [d#3,f#3]@3 ~@9 d#3@3",
  I: "[~@10 d#4 ~ g#3@2 g#3@2, ~@7 g#3@5 ~@4]/2", J: "~ d#3, ~@3 f#3@3 ~@2", K: "f#3!2 ~@6",
  L: "~@4 d#3@2 ~@3 [d#3,e3]@3 ~@12", M: "c#3@9 ~@7 f#3@2 ~@3 [f#3,g#3]@3", N: "~@10 g#3@2 e3@3 ~@9, ~@3 e3 ~@4",
  O: "~@7 d#3", P: "~@7 c#3", Q: "~@10 e3@2 c#3@3 ~@9, ~@3 c#3 ~@4", R: "~@10 a3@2 f#3@3 ~@9, ~@3 f#3 ~@4",
  S: "~@4 d3@2 ~@3 [d3,f#3]@3 ~@12", T: "~@4 d3@2 ~@3 [d3,f#3]@3 ~@4 e3@2 ~@3 [e3,g#3]@3",
  U: "~@4 g#3@3 ~, ~@3 b3@3 ~@2", V: "~@4 d#3@2 ~@3 [d#3,e3]@3 ~@9 f#3@3", W: "[~@3 d#3@3 ~@2]/2",
  X: "~ c#3, ~@3 d#3@3 ~@2", Y: "g#3!2 ~@6", Z: "~@4 c#3@3 ~, ~@3 e3@3 ~@2", AA: "d3@3 ~@5", AB: "~ c#3, ~@3 e3@3 ~@2",
  AC: "~@10 f#3@2 d3@3 ~@9, ~@3 d3 ~@4", AD: "~@3 f3 ~@3 d3", AE: "d3@9 ~@7 e3@2 ~@6",
  AF: "~@4 f3@2 ~@3 [f3,a3]@3 f3@9 ~@3", AG: "~@10 g3@2 e3@3 ~@9, ~@3 e3 ~@4",
  AH: "[g#3@3 ~@8 d#3 ~@4, ~@7 f3@5 ~@4]/2", AI: "~@8 d#3 ~@2 d#3",
  AJ: "~@4 f3@2 ~@3 [f3,a#3]@3 ~@4 f3@2 ~@3 [f3,a3]@3", AK: "~ d3, ~@3 f3@3 ~@2", AL: "~ c3, ~@3 d#3@3 ~@2",
  AM: "~@4 d#3@2 ~@3 [d#3,g3]@3 ~@12", AN: "~ f3, ~@3 g3@3 ~@2", AO: "~@7 d3", AP: "~@10 g3@2 d#3@3 ~@9, ~@3 d#3 ~@4",
  AQ: "~@7 g3", AR: "~@7 f3", AS: "~@4 d3 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.3)

// chords · string ensemble 1 · "strings"
const string_ensemble_1 = note(`<
  A@4 B@2 C@2 D E A@2 B@2 F G H D@2 I@2 J K L M C@2 M N K O M N P O M@2 Q@2 D@2 F G H B@2 R@2 J K L M S@2 M N K O M N P
  T M U V W X Y Z AA AB AA AC AD AE AF AG AD AE AH AI AJ@2 AK AL AD AM@2 ~
>`.pickRestart({
  A: "[b5,g#6]/2", B: "[f#5,d#6]/2", C: "[g#5,e6]", D: "[f#5,d#6]", E: "[f#5,d#6] [g5,d#6]", F: "[g#5,d#6] [a#5,f#6]",
  G: "[f#5,c#6] [b5,f#6]", H: "[b5,e6]", I: "[g#5,d#6]", J: "[f#5,c#6]", K: "[b5,f#6]", L: "[a5,f#6]", M: "[e5,c#6]",
  N: "[a5,e6]", O: "[a5,d6] [g#5,e6]", P: "[c#6,f#6]", Q: "[b5,g#6]", R: "[g#5,d#6]/2", S: "[g#5,e6]/2", T: "[a5,d6]",
  U: "[a5,f6] [a5,d6]", V: "[g5,d6] [g5,e6]", W: "[c6,f6] [b5,f6]", X: "[g5,e6]", Y: "[c6,g#6] [c6,f6]",
  Z: "[a#5,d#6] [g#5,d#6]", AA: "[g#5,c#6] [c6,g#6]", AB: "[c6,f6]@2 [g5,d#6] [g#5,d#6]", AC: "[a#5,f6] [a5,f6]",
  AD: "[f5,d6]", AE: "[a#5,f6]", AF: "[g5,c6]", AG: "[a#5,d#6] [a5,f6]", AH: "[g5,d6]", AI: "[a#5,d#6]", AJ: "[a#5,g6]",
  AK: "[a5,f6]", AL: "[g5,d6] [a#5,d#6]", AM: "[f5,d6]/2",
})).s("gm_string_ensemble_1").gain(0.38).pan(0.4)

// chords · piano · "piano1"
const piano = note(`<
  ~ A B@2 C D E F G H B@2 C D I J K L G M N O P Q R S E T U V W X U Y W X@2 B@2 C D I Z AA L G N M AB AC Q R S@2 T U V
  AD X AE AF AG T AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AR AS AV AW AX@2 AY AZ AR BA@2 ~
>`.pickRestart({
  A: "~@4 d#4@2 g#4@2 ~@2 b3@2 ~@4 d#4@2 g#4@2 d#4@2 b3 ~, g#3@9 ~@3 g#3@8 ~@4, ~@2 b3@5 ~ d#4@4 ~@2 b3@5 ~@5",
  B: "[~@10 b3@2 ~@20 d#4@2 ~ d#2 ~@8 d#4@2 b3 ~, g#3@11 ~ g#3@11 g#2@11 b3@2 ~@2 b3@8 ~@2, ~@2 b3@8 ~@4 b3@8 b3@2 g#3@11 ~ [g#2,g#3]@11 ~, ~@2 d#4@2 d#4@2 ~@2 d#4@2 d#4@2 ~ b3@4 d#4@3 d#4@2 ~@2, ~@6 g#4@5 ~@7 g#4@6 ~@4 d#4@2 g#4@6 ~@6 g#4@4 ~@2]/2", // G#
  C: "~@2 f#4 a#4 ~ d#4 ~@2 f#4 a#4 ~ d#4, a#3@11 ~ a#3@9 ~@3, ~ d#4@2 ~ f#4@2 ~ d#4@2 ~ f#4@2",
  D: "~@4 f#4@2 a#4@2 ~@2 d#4@2 ~@4 f#4@2 a#4@2 f#4@2 d#4 ~, a#3@9 ~@3 a#3@8 ~@4, ~@2 d#4@5 ~ f#4@4 ~@2 d#4@5 ~@5",
  E: "~@20 g#4@2 e4 ~, [e2,b3]@11 e2@12 ~, ~ e4@4 e4@2 e4@4 ~, ~@4 g#4@4 g#4@8 g#4@2 b4@5 ~, ~@6 b4@5 ~ b3@11 ~", // E5
  F: "~@10 c#4@2 ~@10 c#4 ~, g#3@11 ~ [c#2,g#3]@12, ~ c#4@4 ~@2 c#4@4 ~, ~ e4!2 ~ e4!2, ~@6 g#4@5 ~@7 g#4@6", // C#5
  G: "~@10 d#4@2 ~@10 d#4 ~, b3@11 ~ [b2,b3]@12, ~ d#4@4 ~@2 d#4@4 ~, ~ f#4!2 ~ f#4!2, ~@6 b4@5 ~@7 b4@6", // B
  H: "~@8 f#4@2 d#4 ~@9 g4@2 d#4 ~, b2 f2, b3@5 ~ a#3@5 ~, ~ d#4@4 ~@2 d#4@4 ~, ~@2 f#4 b4@2 ~@3 g4 a#4@2 ~",
  I: "~@8 f#4@2 d#4 ~@11 f#3 ~, e2@12 [e2,f#3]@9 e2@2 ~, b3@10 ~@4 a#3@9 ~, ~@2 d#4@8 ~@6 c#4@4 c#4@3 ~, ~@4 f#4@2 g#4@4 ~@8 f#4@5 ~", // Esus2
  J: "~@10 a#3 ~@9 d#4@2 b3 ~, [d#2,a#3]@9 d#2@2 ~ g#2@12, ~@2 c#4@9 ~ g#3@10 ~@2, ~@4 d#4@4 d#4@3 ~@3 b3@8 ~@2, ~@6 f#4@5 ~@5 d#4@2 f#4@4 ~@2", // D#5
  K: "~@20 c#4@2 b3 ~, [c#2,g#3]@11 c#2@12 ~, ~ b3@4 b3@2 b3@4 ~, ~@4 c#4@4 c#4@8 c#4@2 e4@5 ~, ~@6 e4@5 ~ g#3@11 ~", // C#5
  L: "~@20 f#4@2 d#4 ~, [b2,b3]@11 b2@12 ~, ~ d#4@4 d#4@2 d#4@4 ~, ~@4 f#4@4 f#4@8 f#4@2 b4@5 ~, ~@6 b4@5 ~ [b1,b3]@11 ~", // B
  M: "~@20 f#4@2 d#4 ~, [e2,b3]@11 e2@12 ~, ~ d#4@4 d#4@2 d#4@4 ~, ~@4 f#4@4 f#4@8 f#4@2 g#4@5 ~, ~@6 g#4@5 ~ b3@11 ~", // E5
  N: "~@10 d#4@2 ~@10 d#4 ~, b3@11 ~ [e2,b3]@12, ~ d#4@4 ~@2 d#4@4 ~, ~ f#4!2 ~ f#4!2, ~@6 g#4@5 ~@7 g#4@6", // E5
  O: "~@10 c#4@2 ~@10 c#4 ~, a#3@11 ~ [d#2,a#3]@12, ~ c#4@4 ~@2 c#4@4 ~, ~ d#4!2 ~ d#4!2, ~@6 f#4@5 ~@7 f#4@6", // D#5
  P: "~@10 b3@2 ~@10 b3 ~, g#3@11 ~ [g#2,g#3]@12, ~ b3@4 ~@2 b3@4 ~, ~ d#4!2 ~ d#4!2, ~@6 f#4@5 ~@7 f#4@6", // G#
// … 81 more lines