Strudelify

Someone for Me

Whitney Houston

KeyA majorTempo123 bpm
0:00/0:00
// Someone for Me — Whitney Houston
// 123 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 150 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 · slap bass 2 · "SomeoneFo"
const bass = note(`<
  ~@7 A B@2 C D E D F@2 C D@2 G E H I@2 D E J@2 G@2 K@2 D@2 L@2 G D M@3 N@2 O@4 P@5 Q R S G H T G K@2 D@2 U V E@2 W@2 X
  E Y@2 G@2 Z@3 AA@6 AB@5 Q C B@5 AC@2 AD AE AD AF AG AH@4 AI@6 AJ@5 AK AL C D B@3 AM@2 B@2 R B R B AM@2 D AN AO B X D
  AP@2 B@3 C B@2 ~
>`.pickRestart({
  A: "~@7 a1", B: "~ a1 ~ a1 g2 a2 ~ a1", C: "~@2 a1@3 ~ a1@2 g2@2 a2@2 ~@2 a1@2",
  D: "~@2 a1@2 ~@2 a1@2 g2@2 a2@3 ~ a1@2", E: "~@2 a1@3 ~ a1@2 g2@2 a2@4 a1@2",
  F: "[~@2 a1@2 ~@2 a1@2 g2@2 a2@4 f#1@7 ~ c2@6 ~@2 a1@2]/2", G: "~@2 a1@3 ~ a1@2 g2@2 a2@3 ~ a1@2",
  H: "~ a1 ~ a1 g2 a2@2 a1", I: "[~@2 a1@3 ~ a1@2 g2@2 a2@3 ~ f#1@6 ~@2 c2@6 ~@2 a1@2]/2",
  J: "[~@2 a1@2 ~@2 a1@2 g2@2 a2@4 g1@7 ~ g1 ~ g1@5 ~ a1@2]/2",
  K: "[~@2 a1@3 ~ a1@2 g2@2 a2@3 ~ f#1@7 ~ c2@7 ~ a1@2]/2",
  L: "[~@2 a1@2 ~@2 a1@2 g2@2 a2@3 ~ g1@7 ~ g1@2 g2@2 g1@2 g2@2 a1@2]/2",
  M: "[~@2 a1@3 ~ a1@2 g2@2 a2@3 ~ f#1@7 ~ c2@6 ~@2 f2@6 ~@2 f2@2 e2@2 f2@4 ~@2]/3",
  N: "[c2@5 ~ c3@2 b2@2 g2@2 ~@2 e2@6 ~@2 d2@4 a2@2 d3 ~ d3@2]/2",
  O: "[~@2 a2@2 d2@2 c2@4 d2@2 e2@2 f2@6 ~@2 f2@2 e2 ~ f2@2 ~@2 c2@6 ~@2 c2@2 b1@2 c2@3 ~ e2@4 b2@2 e3 f#3 e3@7 ~@3]/4",
  P: "[f2@4 c2@2 f2@4 c2@2 f1 ~ e1@7 ~ e2@7 ~ a1@8 ~@2 a1@2 b1@2 c2 ~ c2@7 ~ b1@7 ~ a1@14 ~@4]/5", Q: "~@3 a1",
  R: "~@2 a1@2 ~@2 a1 ~ g2@2 a2@2 ~@2 a1@2", S: "~@2 a1@3 ~ a1 ~ g2@2 a2@2 ~@2 a1@2",
  T: "~@2 a1@2 ~@2 a1 ~ g2@2 a2@3 ~ a1@2", U: "~@2 a1@3 ~ a1@2 g2@2 a2@3 ~ g1@2",
  V: "~@2 g1@3 ~ g1@2 g2@2 g1@2 g2@2 a1@2", W: "[~@2 a1@2 ~@2 a1 ~ g2@2 a2@3 ~ f#1@7 ~ c2@6 ~@2 a1@2]/2",
  X: "~@2 a1@2 ~@2 a1 ~ g2@2 a2@4 a1@2", Y: "[~@2 a1@3 ~ a1@2 g2@2 a2@3 ~ g1@7 ~ g2@4 g1@2 g2@2 a1@2]/2",
  Z: "[~@2 a1@3 ~ a1@2 g2@2 a2@3 ~ f#1@7 ~ c2@7 ~ f1@6 ~@2 f2@2 e2@2 f2@4 ~@2]/3",
  AA: "[c2@4 ~@2 c3@2 b2 ~ g2@2 ~@2 e2@7 ~ d2@4 a2@2 d3 ~ d3@4 a2@2 d2@2 c2@4 d2@2 e2 ~ f2@6 ~@2 f2@2 e2@2 f2@2 ~@2 c2@6 ~@2 c2@2 b1@2 c2@2 ~@2 e2@4 b2@2 e3 f#3 e3@7 ~@3]/6",
  AB: "[f2@4 c2 ~ f2@4 c2@2 f1 ~ e1@7 ~ e2@8 a1@9 ~ a1@2 b1@2 c2 ~ c2@8 e2@8 a1@17 ~]/5",
  AC: "[~@2 a1@2 ~@2 a1@2 g2 ~ a2@2 ~@2 f#1@7 ~ c2@7 ~ a1 ~]/2", AD: "a1@2 ~ a1 g2 a2 ~ a1",
  AE: "~@2 a1@3 ~ a1 ~ g2@2 a2 ~@3 a2@2", AF: "~ a1 ~ a1 g2 a2 g2 a2", AG: "a1@4 ~@2 a1 ~ g2@2 a2@2 ~@2 a1@2",
  AH: "[~@2 a1@2 ~@2 a1@2 g2@2 a2@2 ~@2 a1@7 ~ a1@2 g2@2 a2@2 ~@2 f#1@6 ~@2 c2@7 ~ f1@6 ~@2 f2@2 e2@2 f2@2 ~@4]/4",
  AI: "[c2@4 c3@2 ~@2 b2@2 g2@2 ~@2 e2@7 ~ d2@4 a2@2 d3 ~ d3@4 a2@2 d2 ~ c2@4 d2@2 e2 ~ f2@6 ~@2 f2@2 e2@2 f2 ~@3 c2@6 ~@2 c2@2 b1@2 c2@2 ~@2 e2@4 b2@2 e3 f#3 e3@7 ~@3]/6",
  AJ: "[f2@4 c2@2 f2@4 c2@2 f1 ~ e1@7 ~ e2@8 a1@8 ~@2 a1@2 b1@2 c2 ~ c2@7 ~ e2@8 a1@15 ~@3]/5",
  AK: "~@8 a1@2 b1 [c2,d2,e2] [f2,g2] a2@3", AL: "a1 ~ a1@3 ~ a1 ~ g2@2 a2@2 ~@2 a1@2",
  AM: "[~@2 a1@2 ~@2 a1@2 g2@2 a2@2 ~@2 f#1@7 ~ c2@6 ~@2 a1@2]/2", AN: "~ a1 ~ a1 g2 a2 g2 e2",
  AO: "a1 ~ a1@2 ~@2 a1 ~ g2@2 a2@2 ~@2 a1@2", AP: "[~@2 a1@2 ~@2 a1 ~ g2@2 a2@2 ~@2 f#1@7 ~ c2@6 ~@2 a1@2]/2",
})).s("gm_slap_bass_2").gain(0.45)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  A B@7 A@2 B C D E@2 F E G@3 E G H I J G K L E@2 M F E G N O P G Q R S T U V W X Y Z AA AB@3 AC D E B G B G AD AE G@2 N
  AF E@2 AG AH D E AI AJ E G AK AL AM AN AO AP AQ AR AS AT AU AV AW@2 ~ AX AY AZ BA BB BA BC BD BE BF BG BH BI BJ BK BL
  BM BN BO BP BQ@3 BR BS BT BU@2 BV BW BX BA BY BZ BA CA CB CC CD CE CF CG@2 CH CI CJ CK CL CM CN@2 CO CP CQ CR CN CS CT
  CS ~
>`.pickRestart({
  A: "a2 ~ a2 ~ a2 ~@3 a2 ~ a2 ~ a2 ~ a2 ~", B: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
  C: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~ [a2,e3] ~", D: "a2 ~ a2 ~ [a2,e3] ~@3 a2 ~ [a2,e3] ~ a2 ~ a2 ~",
  E: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~", F: "f#2 ~ f#2 ~ f#2 ~ c3 ~ c3 ~ c3 ~ c3 ~ a2 ~",
  G: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~", H: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~@3",
  I: "f#2 ~ f#2 ~ f#2 ~ g2 ~ g2 ~ g2 ~ c3 ~ a2 ~", J: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,e3] ~@3 a2 ~",
  K: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ a2 ~ a2 ~ g2 ~", L: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ a2 ~",
  M: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~ f#2 ~", N: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~ g2 ~",
  O: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ [g2,d3] ~ g2 ~ g2 ~", P: "~@2 a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,e3] ~@3 a2 ~",
  Q: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ a2 ~ a2 ~ f#2 ~", R: "f#2 ~ f#2 ~ f#2 ~ c3 ~ c3 ~ c3 ~ c3 ~ f3 ~",
  S: "f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ c3 ~", T: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ e3 ~",
  U: "e3 ~ e3 ~ e3 ~ d3 ~ d3 ~ d3 ~ d3 ~ [d3,a3] ~", V: "d3 ~ d3 ~ d3 ~ [c3,g3] ~ c3 ~ c3 ~ [c3,g3] ~ [e3,a3] ~",
  W: "e3 ~ [e3,a3] ~ [e3,a3] ~@3 [e3,a3] ~ e3 ~ [e3,a3] ~ [e3,g3] ~", // A5 Em
  X: "~@2 [e3,g3] ~ [e3,g3] ~ [e3,g3] ~ [e3,g3] ~ g3 ~ [e3,g3] ~ [e3,a3] ~", // Em A5
  Y: "a3 ~ [e3,a3] ~ [e3,a3] ~ a3 ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [a3,c4] ~", // A5 Am
  Z: "[a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~", // Am
  AA: "[e3,b3] ~ b3 ~ [e3,b3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [e3,a3] ~", // E5 D5 A5
  AB: "[[e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~@3 g3 ~ [e3,g3]@8 [f#3,a3]@8 [e3,a3]@10 ~@8]/3", // A5 Em F#m A5
  AC: "~@14 a2 ~", AD: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~ [c#3,f#3] ~",
  AE: "~@2 [c#3,f#3] ~ [c#3,f#3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~ [a2,e3] ~", // F#5 C5 A5
  AF: "g2 ~ g2 ~ [g2,d3] ~ g2 ~ g2 ~ [g2,d3] ~ g2 ~ g2 ~", // G5
  AG: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~ [c#3,f#3] ~", // A5 F#5
  AH: "c#3 ~ c#3 ~ c#3 ~ c3@2 c3 ~ c3 ~ c3 ~ [a2,e3] ~, ~@3 g3@3 ~@2", // A5
  AI: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~ g2 ~", AJ: "g2 ~ g2 ~ [g2,d3] ~ g2 ~ g2 ~ [g2,d3] ~ g2 ~ a2 ~",
  AK: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ a2 ~ a2 ~ [c#3,f#3] ~", AL: "c#3 ~ c#3 ~ c#3 ~ [c3,g3] ~ c3 ~ c3 ~ c3 ~ [e3,a3]@2",
  AM: "e3 ~ e3 ~ [e3,a3]@2 ~@4 a3@3 ~ [e3,g3]@2, ~@10 e3 ~@5", // A5 Em
  AN: "e3 ~ [g3,b3] ~ [g3,b3] ~ [g3,b3] ~ [e3,g3] ~ [e3,g3] ~ [g3,b3] ~ [e3,g3] ~", // G Em G Em
  AO: "~@2 g3 ~ [e3,g3] ~ [d3,f#3] ~ [d3,f#3] ~ [d3,f#3] ~ [d3,f#3] ~@3", // Em D
  AP: "d3 ~ d3 ~ d3 ~ c3 ~ c3 ~ c3 ~ [c3,g3] ~ c3 ~", // C5
  AQ: "[c3,f3] ~ c3 ~ [c3,f3] ~@3 [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [e3,g3] ~", // F5 Em
  AR: "~@2 [e3,g3] ~ [e3,g3] ~ [e3,g3] ~ [e3,g3] ~ [e3,g3] ~ [e3,g3] ~ [e3,a3] ~", // Em A5
  AS: "~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [a3,c4] ~", // A5 Am
  AT: "~@2 [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ a3 ~ [a3,c4] ~ [e3,b3] ~", // Am E5
  AU: "b3 ~ b3 ~ [e3,b3] ~ [d3,a3] ~ a3 ~ [d3,a3] ~ [d3,a3] ~ [d3,a3]@2", // E5 D5
  AV: "e3 ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ a2@2 b2 ~ c#3 ~ e3@2, ~@14 c3 ~", // A5
  AW: "[~ c3 [e3,g3] [d3,f#3]@2 d3 f#3 e3@7 ~@2]/2", AX: "~@2 a2 ~ [a2,e3] ~ a2 ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~",
  AY: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [a2,a3] ~ a2 ~ [a2,e3] ~", AZ: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,a3] ~ a2 ~ a2 ~",
  BA: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,a3] ~ a2 ~ [a2,e3] ~", BB: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ a2 ~ [a2,a3] ~ a2 ~",
  BC: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,a3] ~ [a2,e3] ~ f#3@2", // A5 A A5
  BD: "~@2 [c#3,f#3] ~ [c#3,f#3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~ [e3,a3] ~", // F#5 C5 A5
  BE: "~@2 e3 ~ [e3,a3] ~@3 e3 ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~", // A5
  BF: "a2 ~ a2 ~ [e3,a3] ~ a2 ~ a2 ~ [a2,e3,a3] ~ a2 ~ [a2,e3,a3] ~", // A5
  BG: "a2 ~ a2 ~ [a2,e3,a3] ~ a2 ~ a2 ~ [a2,e3,a3] ~ a2 ~ d3 ~", // A5
  BH: "g2 ~ a2 ~ [e3,a3] ~ a2 ~ a2 ~ [e3,a3] ~ a2 ~ [e3,a3] ~", // A5
  BI: "a2 ~ a2 ~ [a2,e3,a3] ~@3 a2 ~ [a2,e3,a3] ~ a2 ~ [a2,e3,a3] ~", // A5
  BJ: "~@2 a2 ~ [a2,e3,a3] ~ a2 ~ a2 ~ a2 ~ [a2,e3,a3] ~ a2 ~", // A5
  BK: "a2 ~ a2 ~ [a2,e3,a3] ~ a2 ~ a2 ~ [e3,a3] ~ a2 ~ f#2 ~", // A5
  BL: "f#2 ~ f#2 ~ [c#3,f#3] ~ f#2 ~@3 [c3,g3] ~ [c3,g3] ~@3", // F#5 C5
  BM: "[c3,f3] ~ c3 ~ [c3,f3]@2 ~@2 [f3,a3] ~ c3 ~ [f3,a3]@2 c3 ~", // F5 F
  BN: "[e3,g3]@3 ~ [e3,g3]@2 e3 ~@3 g3@3 ~ e3 ~, ~@10 e3 ~@5", BO: "~@2 e3 ~ [e3,b3]@2 e3 ~@3 d3 ~ [d3,a3]@2 d3 ~",
  BP: "~@2 d3 ~ [d3,a3] ~ c3 ~@3 c3 ~ [c3,g3] ~ c3 ~", // D5 C5
  BQ: "[~@2 e3 ~ a3@3 ~@3 e3 ~ [e3,a3]@2 g3@4 e3 ~ [e3,g3] ~ e3 ~@3 e3 ~ [e3,g3] ~ e3@4 e3 ~ e3 ~ e3 ~@3 a3@4 e3 ~, ~@4 e3 ~@9 e3@2 ~@14 a3@10 ~@2 e3@2 ~@4]/3", // A5 Em
  BR: "~@2 [a3,c4] ~ [a3,c4]@2 ~@2 [a3,c4]@2 ~@2 [a3,c4]@2 e3 ~", BS: "b3@5 ~ [d3,a3]@8 ~@2, g3 ~@7",
  BT: "[e3,a3]@13 ~ [g3,b3] ~", BU: "[~@2 g3 ~ [g3,b3] ~ [f#3,a3] ~@3 [f#3,a3] ~ [f#3,a3] ~ [e3,a3]@15 ~@3]/2",
  BV: "~@12 [e3,a3] ~@3", BW: "a2 ~ a2 ~ [a2,e3] ~@3 a2 ~ [a2,a3] ~ a2 ~ [a2,e3] ~",
  BX: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~", BY: "a2 ~ a2 ~ [a2,a3] ~ a2 ~ a2 ~ [a2,e3] ~ a2 ~ [a2,e3] ~",
  BZ: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ a2 ~ a2 ~ [a2,e3] ~", // A5
  CA: "a2 ~ a2 ~ [a2,e3,a3] ~ a2 ~ a2 ~ [e3,a3] ~ a2 ~ [c#3,f#3] ~", // A5 F#5
  CB: "~@2 [c#3,f#3] ~ [c#3,f#3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [e3,a3] ~", // F#5 C5 A5
  CC: "e3 ~ e3 ~ [e3,a3] ~ e3 ~ [e3,a3] ~@3 [e3,a3] ~ [e3,a3] ~", // A5
  CD: "~@2 e3 ~ [e3,a3] ~@3 e3 ~ [e3,a3]@2 ~@2 [e3,a3]@2", CE: "~@2 e3 ~ [e3,a3]@2 e3 ~ e3 ~ [e3,a3] ~ e3 ~ e3 ~",
  CF: "e3 ~ e3 ~ [e3,a3] ~ e3 ~ e3 ~ [e3,a3]@2 e3 ~ [e3,a3]@2", // A5
  CG: "e3 ~ e3 ~ [e3,a3] ~ e3 ~ e3 ~ [e3,a3] ~ e3 ~ [e3,a3] ~", // A5
  CH: "e3 ~ e3 ~ [e3,a3] ~ e3 ~ e3 ~ [e3,a3]@2 e3 ~ [c#3,f#3]@2", // A5 F#5
  CI: "c#3 ~ [c#3,f#3] ~ [c#3,f#3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [e3,a3] ~", // F#5 C5 A5
  CJ: "e3 ~ [e3,a3] ~ [e3,a3] ~ e3 ~ [e3,a3] ~ e3 ~ [e3,a3] ~ [e3,a3] ~", // A5
  CK: "~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ e3 ~ [e3,a3] ~ [e3,a3] ~", // A5
  CL: "~@2 e3 ~ [e3,a3] ~ e3 ~ e3 ~ [e3,a3]@2 e3 ~ [e3,a3] ~", // A5
  CM: "~@2 [e3,a3] ~ [e3,a3] ~ e3 ~ [e3,a3] ~ e3 ~ [e3,a3] ~ e3 ~", // A5
  CN: "a2 ~ a2 ~ [a2,e3,a3] ~ a2 ~ a2 ~ [a2,e3,a3] ~ a2 ~ [a2,e3,a3] ~", // A5
  CO: "a2 ~ a2 ~ [e3,a3]@2 a2 ~ a2 ~ [e3,a3]@2 a2 ~ [c#3,f#3] ~", // A5 F#5
  CP: "[c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [e3,a3] ~", // F#5 C5 A5
  CQ: "a2 ~ [e3,a3]@2 a2 ~ [e3,a3] ~ a2 ~ a2@2 [e3,a3] ~ a2 ~", CR: "a2 ~ [e3,a3] ~ a2 ~ a2 ~ a2 ~ a2 ~ [e3,a3] ~ a2 ~",
  CS: "a2 ~ a2 ~ [e3,a3] ~ a2 ~ a2 ~ a2 ~ [e3,a3] ~ a2 ~", CT: "a2 ~ a2 ~ [e3,a3]@2 a2 ~ a2 ~ a2 ~ [e3,a3] ~ a2 ~",
})).s("gm_electric_guitar_muted").gain(0.14).pan(0.3)

// chords · electric guitar muted · soft notes
const electric_guitar_muted_2 = note(`<
  A ~@7 A@2 ~@2 A ~@9 B ~ C ~@11 D ~@7 E F G ~ H I ~@3 A ~@6 J ~@8 A ~@7 K ~ L ~ M N O P Q R S@2 ~@8 T U ~@3 A V ~ W M
  ~@3 E ~@2 X Y ~ Z ~@2 A ~@6 AA AB AC AD ~@5 AE AF AG O ~@11
>`.pickRestart({
  A: "~@6 a2 ~@9", B: "~@14 a2 ~", C: "~@12 a2 ~@3", D: "a2 ~@11 a2 ~@3", E: "~@6 e3 ~@9", F: "g3 ~@9 e3 ~@5",
  G: "e3 ~@5 e3 ~@9", H: "~@2 e3 ~@13", I: "~@10 [f#3,b3] ~@5", J: "[c#3,f#3] ~@7 [c3,g3] ~@7", K: "~@6 e3 ~@5 e3 ~@3",
  L: "[e3,g3] ~ e3 ~@11 d3 ~", M: "~@6 c3 ~@9", N: "[e3,g3] ~@15", O: "[e3,a3] ~@15", P: "[a3,c4] ~@9 c4 ~@5",
  Q: "e3 ~ e3 ~@5 d3 ~@7", R: "a3 ~@15", S: "[c3 e3 ~@10 a3@16 ~@4]/2", T: "d3 ~@7 [c3,g3] ~@7",
  U: "[e3,a3] ~ a3 ~@3 [e3,a3] ~ a3 ~@7", V: "a2 ~@15", W: "~@14 c3 ~", X: "~@6 [e3,a3] ~@3 [e3,a3] ~@5",
  Y: "~@2 e3@3 ~@11", Z: "[g3,b3] ~ b3 ~@5 [f#3,a3] ~@7", AA: "[c#3,f#3] ~@15", AB: "a3 ~ a3 ~@3 a3 ~@3 [e3,a3] ~@5",
  AC: "[e3,a3] ~@5 e3 ~@5 e3 ~@3", AD: "e3 ~@15", AE: "a3 ~@5 a3 ~@3 a3 ~@5", AF: "[e3,a3] ~@9 a3 ~@5",
  AG: "[e3,a3] ~@11 a3 ~@3", // A5
})).s("gm_electric_guitar_muted").gain(0.09).pan(0.3)

// chords · tuba
const tuba = note(`<
  ~@12 A ~ B@3 ~@5 C@4 D@8 E@3 F G@5 H@5 I@4 J K ~@5 L@4 M@8 N@8 O@8 P@2 Q ~@6 R@2 S ~@3 T U V@5 W@5 X@4 Y ~@6 Z@6 AA@7
  AB@2 AC@5 AD@4 ~
>`.pickRestart({
  A: "~@2 [e3,a3,c#4] ~@5 [d3,g3,b3]@7 ~", // A G
  B: "[~@2 [a3,d4]@2 [e3,a3,c#4] ~@9 [a3,c#4]@7 ~ [g3,b3]@8 [a3,c#4]@7 ~@11, ~@2 f#3 ~@11 e3@22 ~@12]/3", // D5 A G A
  C: "[~@14 [a3,c#4]@7 ~ [g3,b3]@8 [a3,c#4]@5 ~ [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@5 ~ [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@2]/4", // A G A
  D: "[~@4 [a3,c#4] ~@5 [a3,c#4,e4] ~@3 [b3,d4,e4]@15 ~ [a3,c#4,e4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [c#4,e4]@5 ~ [c#4,e4] ~@5 [a3,c#4,e4] ~@3 [c#4,e4]@5 ~ [c#4,e4] ~@5 [a3,c#4,e4] ~@3 [e3,a3,c#4]@7 ~ [g3,b3,e4]@7 ~ [a3,c#4,e4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@5 ~ [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2, ~@23 a3@3 ~@5 a3@3 ~@30]/8", // A E7 A C#m A C#m A Em …
  E: "[~@4 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [b3,d4,e4]@16 [a3,c#4,e4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2]/3", // A E7 A
  F: "~@4 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2", // A
  G: "[~@4 [c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@7 ~ [g3,b3,e4]@7 ~ [a3,c4,e4]@16 [g3,b3,e4]@14 ~@2 [g3,b3,d4]@7 ~ [f#3,a3,d4]@7 ~ [f3,a3,d4]@2]/5", // C#m A Em Am Em G D Dm
  H: "[~@6 [g3,b3,e4]@7 ~ [a3,c4,e4]@14 ~@2 [b3,e4]@16 [e3,a3,b3]@15 ~ [e3,a3,c4]@15 ~ [b3,e4]@2, ~@15 g3@7 ~@18]/5", // Em Am E5 Esus4 Am E5
  I: "[~@6 [a3,d4]@7 ~ [a3,c#4,e4]@10 [a3,c#4]@2 [b3,d4]@2 c#4@2 [g3,b3]@7 ~ [f#3,a3,d4]@7 ~ [e3,a3,c#4]@15 ~@3, ~@14 e4@5 ~@13]/4", // D5 A Bm G D A
  J: "~@12 [a3,c#4,e4] ~@3", K: "[a3,c#4,e4] ~@15",
  L: "[~@14 [e3,a3,c#4]@8 [g3,b3]@8 [a3,c#4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2, ~@11 e4@7 ~@14]/4", // A G A
  M: "[~@4 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [b3,d4,e4]@16 [a3,c#4,e4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [c#4,e4]@5 ~ [c#4,e4] ~@5 [a3,c#4,e4] ~@3 [c#4,e4]@5 ~ [c#4,e4] ~@5 [a3,c#4,e4] ~@3 [e3,a3,c#4]@8 [g3,b3,e4]@8 [a3,c#4,e4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2, ~@23 a3@3 ~@5 a3@3 ~@30]/8", // A E7 A C#m A C#m A Em …
  N: "[~@4 [c#4,e4] ~@5 [a3,c#4,e4] ~@3 [b3,d4,e4]@16 [a3,c#4,e4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [c#4,e4]@5 ~ [c#4,e4] ~@5 [a3,c#4,e4] ~@3 [e3,a3,c#4]@8 [g3,b3,e4]@7 ~ [a3,c4,e4]@15 ~ [g3,b3,e4]@15 ~ [g3,b3]@2, ~@31 a3@3 ~@30]/8", // C#m A E7 A C#m A Em Am …
  O: "[~@6 [f#3,a3]@6 ~@2 [f3,a3]@7 ~ [g3,b3]@7 ~ [c4,e4]@14 ~@2 [g3,b3,e4]@14 ~@2 [d4,f#4,b4]@14 ~@2 [c4,a4]@15 ~ [d4,b4]@14 ~@2 [c#4,a4]@16 [c4,e4]@2]/8", // F#m F G C Em Bm F G …
  P: "[~@6 [b3,d4]@8 [a3,c#4]@17 ~]/2", Q: "~@6 [a3,c#4,e4] ~", R: "[~@14 [a3,c#4]@7 ~ [g3,b3]@8 ~@2]/2",
  S: "[a3,c#4,e4] ~@7", T: "~@14 [c#4,e4] ~, ~@7 a4",
  U: "[b3,d4]@2 ~@2 [d4,f#4] ~@3 [c#4,e4] ~@5 [a3,c#4,e4]@2, g4 ~@3 a3@2 ~@2 a3@2 ~@6", // Bm D C#m A
  V: "[~@4 [a3,c#4] ~@9 [e3,a3,c#4]@7 ~ [g3,b3,e4]@7 ~ [a3,c4,e4]@16 [g3,b3,e4]@14 ~@2 [g3,b3,e4]@7 ~ [f#3,a3,d4]@7 ~ [f3,a3,d4]@2]/5", // A Em Am Em D Dm
  W: "[~@6 [g3,b3,e4]@6 ~@2 [a3,c4]@15 ~ [g3,b3]@14 ~@2 [a3,b3,e4]@15 ~ [a3,c4,e4]@15 ~ [b3,e4]@2, ~@7 e4@15 ~@18]/5", // Em Am G Asus2 Am E5
  X: "[~@6 [a3,d4]@7 ~ [e3,a3,c#4]@12 d4@2 ~@2 [g3,b3]@7 ~ [f#3,d4]@8 [a3,c#4]@18, ~@14 e4@5 ~@13]/4", // D5 A G D A
  Y: "~@12 [c#4,e4,a4]@3 ~", // A
  Z: "[~@14 [a3,c#4,e4]@7 ~ [g3,b3,e4]@8 [a3,c#4]@7 ~ [a3,c#4] ~@7 [a3,c#4,e4]@5 ~ [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@6 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [c#4,e4]@5 ~ [c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2, ~@15 e4@4 ~@20 a3@3 ~@6]/6", // A Em A C#m A
  AA: "[~@4 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [c#4,e4]@5 ~ [c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@6 [c#4,e4] ~@5 [a3,c#4,e4] ~@3 [e3,a3,c#4]@7 ~ [g3,b3,e4]@7 ~ [e3,a3,c#4]@6 [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@5 ~ [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@5 ~ [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@2, ~@7 a3@3 ~@46]/7", // A C#m A C#m A Em A
  AB: "[~@4 [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@6 [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@2]/2", // A
  AC: "[~@4 [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@5 ~ [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@7 ~ [g3,e4]@7 ~ [a3,c#4]@6 [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@5 ~ [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@2]/5", // A C A
  AD: "[~@4 [a3,c#4] ~@5 [a3,c#4] ~@3 a3@6 c#4 ~@5 [a3,c#4] ~@3 [a3,c#4]@6 [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@6 [a3,c#4] ~@5 [a3,c#4] ~@3 [a3,c#4]@2, ~@14 c#4@5 ~@45]/4", // A
})).s("gm_tuba").gain(0.19).pan(0.2)

// other · synth strings 1
const synth_strings_1 = note(`<
  A@8 ~@2 B@3 ~@3 C ~ D E@3 ~@14 F@3 ~ G@2 ~ H@5 ~ I@4 ~@3 J@3 ~@4 K L@2 M@3 ~@4 N O@2 ~ P@3 Q@6 R@3 ~@4 S@3 ~@2 T ~ U V
  W ~ X@2 Y@3 Z@5 AA@3 AB@2 ~@3 J@3 ~@5 AC@4 AD@8 ~@4 AE@3 ~
>`.pickRestart({
  A: "[[a3,e4]@22 [b3,f#4]@4 [g3,d4]@4 [a3,e4]@24 [b3,f#4]@4 [g3,d4]@4 ~@20 a4@14 ~@2 b4@15 ~@7 [e6,a6]@8, ~@31 [a3,e4]@33, ~@49 e5@15, ~@57 a5@7]/8", // A5 B5 G5 A5 B5 G5 A5
  B: "[~@7 b4@2 e5@2 b4@3 a4 e4@8 ~]/3", C: "[a4,a5] ~@15", D: "~@7 e5",
  E: "[b5@2 ~@2 a5@2 e5@4 d5@2 c#5@2 a4@21 ~@13]/3", F: "[~@2 a5@13 ~, ~@4 e5@41 ~@3]/3", G: "[~@4 a5 b5 c6 b5@8 ~]/2",
  H: "[~@4 c5 d5 e5@34]/5", I: "[~@8 [a4,c#5]@2 [b4,d5]@2 ~@2 g4@7 ~ [f#4,d5]@8 [e4,c#5]@19 ~@15, ~@12 e5@11 ~@41]/4",
  J: "[~@8 b4@4 a4@2 e4@27 ~@7]/3", K: "~@2 b4@3 a4@3", L: "[e4@31 ~]/2", M: "[~@2 e5@2 b5@8 a5@2 e5@19 ~@15]/3",
  N: "~@2 b5@3 a5@3", O: "[e5@31 ~]/2", P: "[~@4 a5 b5 c6 b5@11 ~@6]/3", Q: "[~@5 c5 d5 e5@36 ~@5]/6",
  R: "[~@7 e5@4 [f#4,d5]@4 [e4,c#5]@7 ~@2, ~@7 g4@3 ~@14]/3", S: "[~@4 b4@2 a4 e4@15 ~@2]/3", T: "[e5,a5] ~@7",
  U: "~ b4 b5@3 a5@3", V: "e5 d5 c#5@2", W: "a4@15 ~",
  X: "[~@2 [a4,c#5]@2 [b4,d5] ~ [c#5,e5] ~@3 [b4,d5] ~@3 [a4,c#5]@6 ~@2 [g4,b4]@9 ~]/2", // A Bm C#m Bm A G
  Y: "[~@8 a5@2 b5@2 c6@2 b5@19 ~@15]/3", Z: "[~@5 c5 d5 e5@16 e6@12 c6@5]/5", AA: "[b5@3 a5@9 c#5 d5 e5@5 d5@5]/3",
  AB: "[c#5@21 ~@11]/2", AC: "[~@3 e5 b5@2 a5 e5@7 d5 c#5@4 a4@11 ~@2]/4", AD: "[~@14 a4@57 ~ b4@4 a4@2 e4@32 e5@18]/8",
  AE: "[~@2 e4 ~@3 e4@2 b4@2 e4@2 a4@2 e4@26 e5@8]/3",
})).s("gm_synth_strings_1").gain(0.22)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@8 A@4 ~@37 B@4 ~@33 C@4 ~@25 D@4 ~@31>".pickRestart({
  A: "[d6,g6]/4", // G5
  B: "[~@14 [b3,g4]@8 [a3,f#4]@8 e4@12 ~ b3 ~@2 a5 b5 c#6@12 [e5,a5,c#6]@2 ~@2, ~@30 a3@10 ~@2 a3@16 ~@2 [a3,c#4] ~@3, ~@22 c#4@7 ~@3, ~@45 e5@13 ~@6]/4", // Em D A
  C: "[~@14 [b3,g4]@8 f#4@8 e4@12 ~ b3 ~@2 a5 b5 c#6@10 ~@2 [a3,a5,c#6,e6]@3 ~, ~@11 a3@9 ~ a3@8 ~@3, ~@44 c#4@15 ~@5, ~@45 e5@15 ~@4]/4", // Em A
  D: "[~@14 g4@8 [a3,f#4]@8 [c#4,e4]@12 ~ b3 ~@2 a5 b5 c#6@10 ~@2 [a3,a5,c#6,e6]@3 ~, ~@7 b3@3 ~@11 a3@8 ~@3, ~@22 c#4@7 ~@3, ~@45 e5@15 ~@4]/4", // D C#m A
})).s("gm_string_ensemble_1").gain(0.35).pan(0.7)
// … 110 more lines

More by Whitney Houston