Strudelify

How Will I Know

Whitney Houston

KeyB♭ minorTempo120 bpm
0:00/0:00
// How Will I Know — Whitney Houston
// 120 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 132 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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.

// chords · piano
const piano = note(`<
  ~@40 A ~ A B@2 ~ C B@2 ~ C B@2 ~ C ~@17 A ~ A B@2 ~ C B@2 ~ C B@2 ~ C D@8 E@4 ~@9 F ~ F G@2 ~ H ~ H ~ H I@2 ~ H ~@9
>`.pickRestart({
  A: "~@2 [gb4,bb4]@2 [f4,ab4]@4 [eb4,gb4]@3 ~@5", B: "[~@8 [ab4,db5]@4 [gb4,bb4]@8 [f4,ab4]@4 [gb4,b4]@3 ~@5]/2",
  C: "~@2 [gb4,bb4]@2 [f4,ab4]@4 [gb4,b4]@3 ~@5", D: "[~@5 [bb4,db5]@2 [b4,eb5]@3 [bb4,db5]@2 ~@4]/2",
  E: "[~@5 [gb4,bb4,db5]@2 [gb4,b4,eb5]@3 [gb4,bb4,db5]@2 ~@4]/2", F: "~@2 [eb4,g4]@2 [d4,f4]@4 [c4,eb4]@3 ~@5",
  G: "[~@8 [f4,bb4]@4 [eb4,g4]@8 [d4,f4]@4 [eb4,ab4]@3 ~@5]/2", H: "~@2 [g4,bb4,eb5]@6 [ab4,c5,eb5]@3 ~@5",
  I: "[~@8 [g4,bb4]@4 [eb4,g4]@6 [g4,bb4,eb5]@6 [ab4,c5,eb5]@3 ~@5]/2", // Gm Eb Ab
})).s("gm_piano").gain(0.05)

// bass · synth bass 1
const bass = note(`<
  ~@7 A B C D@2 E C D@2 F@2 G H I J K H I J I H I J L H M N O P M N Q R B C S@2 E C T@2 E C S@2 E C T@2 I J I H I J L H
  M N O P M N Q R U C V@2 W C X@2 W C V@2 W C Y@3 Z@2 AA@2 AB@2 AC AD AE AF AG AH AI AJ@2 AK AI AL@2 AH AI AJ@2 AK AI
  AM@2 AH AI AJ@2 AK AI AM@2 AH AI AJ@2 AK AI AN@2
>`.pickRestart({
  A: "~@5 gb1 db3 db2", B: "gb1 ~ gb1@2 bb1@2 bb1@2 b1 ~@3 b1 ~ db2@2", C: "~@2 db2 ~@3 db2 ~ eb2@2 db2@2 eb2@2 gb1@2",
  D: "[~@2 gb1 ~ bb1 ~ bb1 ~ b1 ~@3 bb1 ~ db2@4 db1 ~@3 db1 ~@7 gb1@2]/2", E: "~@2 gb1@2 bb1@2 bb1@2 b1 ~@3 b1 ~ db2@2",
  F: "[~@2 gb1@2 bb1 ~ bb1 ~ b1 ~@3 b1 ~ db2@5 ~ bb1 ~ db2 ~@9]/2", G: "~@2 gb1!2 bb1 ~ bb1@2 b1 ~@5 b1 ~",
  H: "db2 bb1 db2 ~@5", I: "~@2 gb1@2 bb1@2 bb1@2 b1 ~@5 b1 ~", J: "db2@4 bb1@2 db2 ~@9",
  K: "~@2 gb1@2 bb1 ~ bb1 ~ b1@2 ~@4 b1 ~", L: "~@2 gb1@2 bb1 ~ bb1 ~ b1 ~@5 b1 ~", M: "gb1@5 ~ gb1@6 ~@2 ab1 ~",
  N: "bb1@5 ~ bb1@7 ~ gb1 ~", O: "ab1@5 ~ ab1@7 ~ bb1 ~", P: "b1@5 ~ b1@5 ~ b1 ~ db2 ~", Q: "ab1@5 ~ ab1@7 ~ bb1@2",
  R: "b1@2 bb1@2 b1 ~@5 db1@2 db3@2 db1 ~", S: "[~@2 gb1 ~ bb1 ~ bb1 ~ b1 ~@3 bb1 ~ db2@4 db1 ~@3 db1@2 ~@6 gb1@2]/2",
  T: "[~@2 gb1 ~ bb1 ~ bb1 ~ b1 ~@3 bb1 ~ db2@4 db1 ~@3 db1@2 ~@2 db1@2 ~@2 gb1@2]/2",
  U: "gb1 ~ gb1!2 bb1 ~ bb1 ~ b1 ~@3 b1 ~ db2@2",
  V: "[~@2 gb1!2 bb1 ~ bb1 ~ b1 ~@3 bb1 ~ db2@4 db1 ~@3 db1@2 ~@6 gb1@2]/2",
  W: "~@2 gb1!2 bb1 ~ bb1 ~ b1 ~@3 b1 ~ db2@2",
  X: "[~@2 gb1!2 bb1 ~ bb1 ~ b1 ~@3 bb1 ~ db2@4 db1 ~@3 db1@2 ~@2 db1@2 ~@2 gb1@2]/2",
  Y: "[~@2 gb1!2 bb1 ~ bb1 ~ b1 ~@3 bb1 ~ db2@4 db1 ~@3 db1@2 ~@2 bb1 ~ bb1@2 db2@4 db1@2 db2 ~@11]/3",
  Z: "[~@10 bb1 ~ bb1@2 db2@4 db1@2 db2@2 ~@10]/2", AA: "[~@10 bb1 ~ bb1 ~ db2@4 db1@2 db2 ~@11]/2",
  AB: "[~@10 bb1 ~ bb1@2 db2@4 db1@2 db2 ~@11]/2", AC: "~@10 gb1 ~ gb1@2 ab1@2",
  AD: "~@2 ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~", AE: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ b1@2",
  AF: "~@2 b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", AG: "db2@2 db1@2 db2 ~ db1@2 db2@2 db1@2 b3@2 db1 ~",
  AH: "eb1 ~ eb1!2 g1 ~ g1 ~ ab1@2 ~@2 ab1 ~ bb1@2", AI: "~@2 bb1 ~@3 bb1 ~ c2@2 bb1@2 c2@2 eb1@2",
  AJ: "[~@2 eb1!2 g1 ~ g1 ~ ab1@2 ~@2 g1 ~ bb1@4 bb1 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1 ~ eb1@2]/2",
  AK: "~@2 eb1!2 g1 ~ g1 ~ ab1 ~@3 ab1 ~ bb1@2",
  AL: "[~@2 eb1!2 g1 ~ g1 ~ ab1 ~@3 ab1 ~ bb1@4 bb1@2 bb2@2 bb1@4 bb1@2 bb2@2 eb1@2]/2",
  AM: "[~@2 eb1!2 g1 ~ g1 ~ ab1 ~@3 g1 ~ bb1@4 bb1@2 bb2@2 bb1@4 bb1@2 bb2@2 eb1@2]/2",
  AN: "[~@2 eb1!2 g1 ~ g1 ~ ab1 ~@3 g1 ~ bb1@4 bb1@2 bb2@2 bb1@4 bb1@2 bb2@2 ~@2]/2",
})).s("gm_synth_bass_1").gain(0.46)

// chords · piano
const piano_2 = note(`<
  ~@16 A B C D A B C D A B C D A B C D ~@8 E@2 F@2 E@2 G H E@2 F@2 E@2 G H A B C D A B C D ~@8 E@2 F@2 E@2 G H E@2 F@2
  E@2 G I ~@12 J K L M J K N O J K L M J K N O J K L M J K N O J K L M J K N P
>`.pickRestart({
  A: "~@4 [bb3,db4] ~ [bb3,db4,gb4] ~ [b3,eb4,gb4] ~@7, ~@2 gb4 ~@5", B: "[ab3,db4,f4]@4 ~@2 [ab3,db4,f4] ~@9",
  C: "~@2 [bb3,db4,gb4]@2 ~@2 [bb3,db4,gb4] ~ [b3,eb4,gb4] ~@7", D: "[ab3,db4,f4]@3 ~ [ab3,db4,f4]@2 ~@10",
  E: "[~@2 [db4,gb4,bb4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [b3,eb4,gb4] ~@5 [ab3,db4]@4 [ab3,db4] ~@3 [bb3,eb4]@3 ~ [bb3,eb4] ~@5]/2", // Gb Db B Db5 Eb5
  F: "[~@2 [db4,gb4,bb4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [b3,eb4,gb4] ~@3 [db4,gb4,bb4] ~ [db4,f4,ab4]@5 ~ [bb3,db4,gb4] ~@3 [ab3,db4,f4]@3 ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~]/2", // Gb Db B Gb Db Gb Db Gb
  G: "~@2 [db4,gb4,bb4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [b3,eb4,gb4] ~@3 [b3,eb4,gb4] ~@3", // Gb Db B
  H: "[ab3,db4,f4]@2 ~@2 [bb3,db4] ~@3 [ab3,db4,f4]@2 ~@2 [bb3,db4,gb4] ~ [bb3,db4,gb4] ~, ~@2 gb4 ~@5", // Db Bbm Db Gb
  I: "[ab3,db4,f4]@2 ~@2 [bb3,db4] ~@3 [ab3,db4,f4]@2 ~@6, ~@2 gb4 ~@5", // Db Bbm Db
  J: "~@2 [bb3,g4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~ [bb3,d4,f4]@2, ~ eb4 ~@6", // Eb Bb Ab Bb
  K: "~@2 [bb3,d4,f4] ~@3 [bb3,eb4,g4]@3 ~ [bb3,eb4,g4] ~@5", // Bb Eb
  L: "~@2 [bb3,eb4,g4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3", // Eb Bb Ab
  M: "[bb3,d4] ~@3 [bb3,eb4,g4]@2 ~@2 [bb3,f4]@2 ~@2 [eb4,g4]@2 [bb3,eb4,g4] ~, f4@2 ~@6 d4 ~@3 bb3 ~@3", // Bb Eb Bb5 Eb
  N: "~@2 [bb3,eb4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [ab3,c4,eb4] ~@3 [eb4,g4] ~@3, ~ g4 ~@4 bb3 ~", // Eb5 Bb Ab Eb
  O: "[bb3,f4]@2 ~@2 [eb4,g4] ~@3 [bb3,d4,f4] ~@3 [eb4,g4]@2 [bb3,eb4,g4] ~, d4 ~@3 bb3@2 ~@6 bb3 ~@3", // Bb5 Eb Bb Eb
  P: "[bb3,f4]@2 ~@2 [eb4,g4] ~@3 [bb3,d4,f4] ~@7, d4 ~@3 bb3@2 ~@10", // Bb5 Eb Bb
})).s("gm_piano").gain(0.26).pan(0.4)

// chords · epiano2
const epiano2 = note(`<
  A B C D E B C D E B F G E B F H ~@16 I J K L I J K M ~ N ~@22 I J K L I J K M ~ N ~@13 O@2 P Q R@2 P S ~@37
>`.pickRestart({
  A: "~@2 [gb4,bb4,db5]@2 [f4,ab4,db5]@2 [f4,ab4,db5]@2 [gb4,bb4,eb5] ~@3 [bb4,eb5] ~ [f4,ab4,db5]@2, ~@6 gb4 ~", // Gb Db Ebm Eb5 Db
  B: "~@2 [f4,ab4,db5] ~@3 [gb4,bb4,eb5]@3 ~ [gb4,bb4,eb5] ~@5", // Db Ebm
  C: "~@2 [gb4,bb4,db5] ~ [f4,ab4,db5]@2 [f4,ab4,db5] ~ [gb4,bb4] ~@3 [gb4,bb4,eb5] ~@3, ~@4 eb5 ~@3", // Gb Db Gb Ebm
  D: "[f4,ab4,db5] ~@3 [gb4,bb4,db5] ~@3 [f4,ab4,db5]@2 ~@2 [gb4,bb4,db5]@2 [gb4,bb4,db5] ~", // Db Gb Db Gb
  E: "~@2 [gb4,bb4,db5]@2 [f4,ab4,db5] ~ [f4,ab4,db5]@2 [gb4,bb4,eb5] ~@3 [bb4,eb5] ~ [f4,ab4,db5]@2, ~@6 gb4 ~", // Gb Db Ebm Eb5 Db
  F: "~@2 [gb4,bb4,db5] ~ [f4,ab4,db5]@2 [f4,ab4,db5] ~ [gb4,bb4] ~@3 [db4,gb4,bb4] ~@3, ~@4 eb5 ~@3", // Gb Db Gb
  G: "[db4,f4,ab4]@3 ~ [db4,gb4,bb4] ~@3 [f4,ab4,db5]@3 ~ [db4,gb4,bb4] ~@3", // Db Gb Db Gb
  H: "[db4,ab4]@2 ~@2 [db4,bb4]@2 ~@2 [db4,f4,ab4]@2 ~@2 [db4,gb4,bb4]@2 [db4,gb4,bb4] ~, f4 ~@3 gb4 ~@11", // Db5 Gb Db Gb
  I: "[gb2,gb3,bb3,db4]", J: "[bb2,ab3,bb3,db4,f4]", K: "[ab2,ab3,b3,eb4,gb4]", L: "[b2,gb3,b3,eb4]",
  M: "[b2,b3,eb4,gb4]@2 [b2,b3,eb4,gb4] ~@5", N: "~@8 [db4,eb4] ~ eb4 ~@5",
  O: "[~@14 [eb4,gb4,b4]@4 [eb4,gb4,b4] ~ [gb4,bb4]@2 ~@10, ~@20 db4 ~@11]/2", P: "~@7 [eb4,gb4,b4]",
  Q: "~@2 [eb4,gb4,b4] ~ [db4,gb4,bb4]@2 ~@10", R: "[~@14 [eb4,gb4,b4]@5 ~ [db4,gb4,bb4] ~@11]/2",
  S: "~@2 [eb4,gb4,b4] ~ [db4,gb4,bb4] ~@11", // B Gb
})).s("gm_epiano2").gain(0.29).pan(0.3)

// chords · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  A B C D E B C D E B F G E B F H I J K L I J K L I J K L I J K L ~@8 M N M O M P Q R M N M O M P Q R I J K L I J K S
  ~@8 M N M O M P Q R M N M O M P Q T@2 U V W V U X Y Z AA AB AC AD AE AF AG AH AI AF AJ AD AE AF AG AH AI AF AJ AD AE
  AF AG AH AI AF AJ AD AE AF AG AH AI AF AK
>`.pickRestart({
  A: "~@2 [gb4,bb4,db5]@2 [f4,ab4,db5]@2 [f4,ab4,db5]@2 [gb4,bb4,eb5] ~@3 [bb4,eb5] ~ [f4,ab4,db5]@2, ~@6 gb4 ~", // Gb Db Ebm Eb5 Db
  B: "~@2 [f4,ab4,db5] ~@3 [gb4,bb4,eb5]@3 ~ [gb4,bb4,eb5] ~@5", // Db Ebm
  C: "~@2 [gb4,bb4,db5] ~ [f4,ab4,db5]@2 [f4,ab4,db5] ~ [gb4,bb4] ~@3 [gb4,bb4,eb5] ~@3, ~@4 eb5 ~@3", // Gb Db Gb Ebm
  D: "[f4,ab4,db5] ~@3 [gb4,bb4,db5] ~@3 [f4,ab4,db5]@2 ~@2 [gb4,bb4,db5]@2 [gb4,bb4,db5] ~", // Db Gb Db Gb
  E: "~@2 [gb4,bb4,db5]@2 [f4,ab4,db5] ~ [f4,ab4,db5]@2 [gb4,bb4,eb5] ~@3 [bb4,eb5] ~ [f4,ab4,db5]@2, ~@6 gb4 ~", // Gb Db Ebm Eb5 Db
  F: "~@2 [gb4,bb4,db5] ~ [f4,ab4,db5]@2 [f4,ab4,db5] ~ [gb4,bb4] ~@3 [db4,gb4,bb4] ~@3, ~@4 eb5 ~@3", // Gb Db Gb
  G: "[db4,f4,ab4]@3 ~ [db4,gb4,bb4] ~@3 [f4,ab4,db5]@3 ~ [db4,gb4,bb4] ~@3", // Db Gb Db Gb
  H: "[db4,f4] ~@3 [db4,gb4,bb4] ~@3 [db4,f4,ab4] ~ db4 ~ [gb4,bb4]@2 [db4,gb4,bb4] ~, ab4@2 ~@10 db4 ~@3", // Db Gb Db Gb
  I: "~@2 [bb3,db4,gb4] ~ [bb3,db4] ~ [bb3,db4,gb4] ~ [b3,eb4,gb4] ~@7, ~@2 gb4 ~@5", // Gb Bbm Gb B
  J: "[ab3,db4,f4]@4 ~@2 [ab3,db4,f4] ~@9", K: "~@2 [bb3,db4,gb4]@2 ~@2 [bb3,db4,gb4] ~ [b3,eb4,gb4] ~@7",
  L: "[ab3,db4,f4]@3 ~ [ab3,db4,f4]@2 ~@10", // Db
  M: "~@2 [bb3,db4,gb4] ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~ [b3,eb4,gb4] ~@3 [b3,eb4,gb4] ~ [f3,ab3,db4]@2", // Gb Db B Db
  N: "~@2 [f3,ab3,db4] ~@3 [gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4] ~@5", // Db Ebm
  O: "~@4 [db4,gb4,bb4] ~@3 [db4,f4,ab4]@2 ~@2 [db4,gb4,bb4] ~ [db4,gb4,bb4] ~", // Gb Db Gb
  P: "~@2 [ab3,db4,f4] ~@3 [bb3,db4,gb4]@3 ~ [bb3,db4,gb4] ~@5", // Db Gb
  Q: "~@2 [bb3,db4,gb4] ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~ [b3,eb4,gb4] ~@3 [b3,eb4,gb4] ~@3", // Gb Db B
  R: "[db4,f4] ~@3 [db4,gb4,bb4] ~@3 [db4,f4,ab4] ~@3 [db4,gb4,bb4] ~ [db4,gb4,bb4] ~, ab4 ~@7", // Db Gb Db Gb
  S: "[ab3,db4,f4] ~ [ab3,db4,f4] ~@5", // Db
  T: "[[db4,f4] ~@3 [db4,gb4,bb4] ~@3 [db4,f4,ab4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [eb4,gb4,b4]@4 db3@2 [db3,db4,gb4] ~@11, ab4@2 ~@12 db3@3 ~@3 bb4@2 ~@10]/2", // Db Gb Db Gb B Gb5
  U: "~@10 [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db3,eb4,gb4,b4]@2", // Gb B
  V: "~@2 [db3,eb4,gb4,b4] ~ [db3,db4,gb4] ~@11, ~@2 bb4 ~@5", // B Gb5
  W: "~@10 [db3,db4,gb4,bb4] ~ [db3,db4,gb4,bb4] ~ [db3,eb4,gb4,b4]@2", // Gb B
  X: "~@2 [db3,eb4,gb4,b4] ~ [db3,db4,gb4,bb4] ~@11", Y: "~@10 [db3,gb4,bb4,db5] ~ [db3,gb4,bb4,db5] ~ [gb4,b4,eb5]@2",
  Z: "~@2 [gb4,b4,eb5] ~ [gb4,bb4,db5] ~@11", AA: "~@10 [gb4,bb4,db5] ~ [gb4,bb4,db5] ~ [gb4,b4,eb5]@2",
  AB: "~@2 [gb4,b4,eb5] ~ [gb4,bb4,db5] ~@3 [b4,eb5,gb5]@2 ~@2 [b4,eb5,gb5] ~@3", // B Gb B
  AC: "[b4,eb5,gb5] ~@3 [b4,eb5,gb5] ~@3 [db5,f5,ab5] ~@3 [db5,f5,ab5] ~@3", // B Db
  AD: "~@2 [eb5,g5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [c5,eb5,g5] ~@3 [c5,eb5,g5] ~ [bb4,d5,f5]@2, ~ bb4 ~@6", // Eb Bb Cm Bb
  AE: "~@2 [bb4,d5,f5] ~@3 [bb4,eb5,g5]@3 ~ [g4,bb4,eb5] ~@5", // Bb Eb
  AF: "~@2 [bb4,eb5,g5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [c5,eb5,g5] ~@3 [c5,eb5,g5] ~@3", // Eb Bb Cm
  AG: "[bb4,d5,f5] ~ bb4 ~ [c5,eb5,g5] ~@3 [bb4,d5,f5] ~ bb4 ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Bb Cm Bb Eb
  AH: "~@2 [bb4,eb5,g5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [c5,eb5,g5] ~@3 [c5,eb5,g5] ~ [bb4,d5,f5]@2", // Eb Bb Cm Bb
  AI: "~@2 [f4,bb4,d5] ~@3 [bb4,eb5,g5]@3 ~ [g4,bb4,eb5] ~@5", // Bb Eb
  AJ: "[bb4,d5,f5] ~@3 [bb4,eb5,g5] ~@3 [bb4,d5,f5] ~ bb4 ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Bb Eb Bb Eb
  AK: "[bb4,d5,f5] ~@3 [bb4,eb5,g5] ~@3 [bb4,d5,f5] ~ bb4 ~@5", // Bb Eb Bb
})).s("gm_lead_2_sawtooth").gain(0.19).pan(0.7)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@8 A B C D A B C E ~@79 F@2 G H I J K L M N O L P Q R S T U V W X Q R S T U V W X Q R S T U V W Y
>`.pickRestart({
  A: "~@2 [db4,gb4,bb4] ~ [db4,f4,ab4]@2 [db4,f4,ab4] ~ [eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~ [db4,f4,ab4]@2", // Gb Db Ebm Db
  B: "~@2 [db4,f4,ab4] ~@3 [eb4,gb4,bb4]@3 ~ [eb4,gb4,bb4] ~@5", // Db Ebm
  C: "~@2 [db4,gb4,bb4]@2 [db4,f4,ab4] ~ [db4,f4,ab4]@2 [eb4,gb4,bb4] ~@3 [db4,gb4,bb4] ~@3", // Gb Db Ebm Gb
  D: "[db4,f4,ab4]@3 ~ [db4,gb4,bb4] ~@3 [db4,f4,ab4]@3 ~ [db4,gb4,bb4] ~@3", // Db Gb Db Gb
  E: "[db4,f4,ab4] ~@3 [db4,gb4,bb4] ~@3 [db4,f4,ab4] ~@3 [db4,gb4,bb4] ~ [db4,gb4,bb4] ~", // Db Gb Db Gb
  F: "[~@7 ab2@2 eb3 ~ eb3 ~ eb3 ~ eb3, ~@5 ab3 ab2 ab3]/2", G: "~ eb3 ~ eb3 ab2 eb3 ab3 eb3, ab2 ab3 ~@2",
  H: "b2 gb3 b3 gb3 b2 gb3 b3 gb3", I: "~@2 ab3@2 ~@2 ab3@2 db3@7 ~, db3@7 ~@9, ~ db4 ~@2",
  J: "~@2 [g3,bb3,eb4] ~ [f3,bb3,d4] ~@3 [eb3,ab3,c4]@2 ~@4 [f3,bb3,d4]@2", // Eb Bb Ab Bb
  K: "~@2 [f3,bb3,d4] ~@3 [g3,bb3,eb4]@3 ~ [g3,bb3,eb4] ~@5", L: "~@2 [g3,bb3,eb4] ~ [f3,bb3,d4] ~@3 [eb3,ab3,c4] ~@7",
  M: "[f3,bb3,d4]@2 ~@2 [g3,bb3,eb4]@2 ~@2 [f3,bb3,d4]@3 ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~", // Bb Eb Bb Eb
  N: "~@2 [g3,bb3,eb4] ~ [f3,bb3,d4] ~@3 [eb3,ab3,c4] ~@5 [f3,bb3,d4]@2", // Eb Bb Ab Bb
  O: "~@2 [f3,bb3,d4] ~@3 [g3,bb3,eb4]@3 ~ [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~", // Bb Eb
  P: "[f3,bb3,d4]@2 ~@2 [g3,bb3,eb4] ~@3 [f3,bb3,d4] ~ [f3,bb3,d4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~", // Bb Eb Bb Eb
  Q: "~@2 [g3,bb3] ~ [f3,bb3]@2 ~@2 [eb3,ab3]@2 ~@4 [f3,bb3]@2", R: "~@2 [f3,bb3] ~@3 [g3,bb3]@3 ~ [g3,bb3] ~@5",
  S: "~@2 [g3,bb3] ~ [f3,bb3] ~@3 [eb3,ab3] ~@7", T: "[f3,bb3]@2 ~@2 [g3,bb3]@2 ~@2 [f3,bb3]@3 ~ [g3,bb3] ~ [g3,bb3] ~",
  U: "~@2 [g3,bb3] ~ [f3,bb3]@2 ~@2 [eb3,ab3] ~@5 [f3,bb3]@2", V: "~@2 [f3,bb3] ~@3 [g3,bb3]@3 ~ g3 ~@5",
  W: "~@2 [g3,bb3] ~ [f3,bb3]@2 ~@2 [eb3,ab3] ~@7", // Gm Bb5 Ab5
  X: "[f3,bb3]@2 ~@2 [g3,bb3]@2 ~@2 [f3,bb3] ~ [f3,bb3] ~ [g3,bb3] ~ [g3,bb3] ~", // Bb5 Gm Bb5 Gm
  Y: "[f3,bb3]@2 ~@2 [g3,bb3]@2 ~@2 [f3,bb3] ~ [f3,bb3] ~@5", // Bb5 Gm Bb5
})).s("gm_electric_guitar_jazz").gain(0.11).pan(0.7)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@3 A@2 B@2 ~ C D E F C D E G H I J K L I J K L I J K L I J K M N O P Q R S T ~ D U V ~ D W X ~ Y U V ~ D W Z L I J K
  L I J K M N O P Q R S T ~ D U V ~ D W X ~ Y U V ~ D W Z AA AB AC AD AE AF AG AH AI AJ@2 AK AL AM AN AO AP AQ AR AM AS
  AT AU AV AW AM AL AX AY AZ BA BB BC BD AL BE AN BF AN BD BG ~@3
>`.pickRestart({
  A: "[~@4 bb3@2 db4 gb4@6 ~@3]/2", B: "[~@12 db4@11 ~@9, ~@10 gb4@13 ~@9]/2", C: "~@2 gb4 ~ gb4 ~ gb4 ~ gb4@3 ~@5",
  D: "~@8 db4!2 eb4 gb4 ~ gb4 eb4 db4", E: "~@2 gb4 ~ gb4 ~ gb4 ~ gb4@2 ~@6",
  F: "~@5 db4 ~@2 db4!2 ~ db4 ~ db4 eb4 db4", G: "~@5 db4 ~@2 bb3 db4 ~ gb4 ~ gb4 eb4 db4",
  H: "gb4 ~ gb3 ~@3 gb3 ~ gb3 ~ gb3 ~@3 gb3 ~", I: "ab3 ~ ab3 ~ f3 ~ ab3 ~@3 db4!2 ~@2 db4!2",
  J: "~@2 gb3@2 gb3 ~@3 gb3 ~ gb3 ~@3 gb3 ~", K: "ab3 ~ ab3 ~@3 ab3 ~ db4 ~ db4 ~ b3 ~ b3 ~",
  L: "bb3 ~ gb3 ~@3 gb3 ~ gb3 ~ gb3 ~@3 gb3 ~", M: "[bb3,db4,gb4]@5 ~ [bb3,db4,gb4]@9 ~",
  N: "[bb3,db4,ab4]@5 ~ [bb3,db4,ab4]@9 ~", O: "[ab3,eb4,gb4]@5 ~ [ab3,eb4,gb4]@9 ~",
  P: "[gb3,b3,eb4]@5 ~ [gb3,b3,eb4]@9 ~", Q: "[db4,gb4,bb4]@6 [db4,gb4,bb4]@9 ~", R: "[f4,ab4,db5]@3 [f4,ab4,db5]@5",
  S: "[b3,eb4,gb4]@3 [b3,eb4,gb4]@5", T: "[gb3,b3,eb4]@4 [gb3,b3,eb4] ~@7 b3@2 ~@2", U: "~@2 gb4 ~@6 gb4 ~@2 gb4 ~@3",
  V: "~@2 db4 ~@2 db4 ~@2 db4 ~@2 db4 ~@2 db4 ~", W: "db4!2 gb4 ~@13",
  X: "db4!2 ~ db4 ~ db4!2 ~ ab3!2 ~ ab3 ~ ab3 bb3 ~", Y: "~@8 eb4!2 db4 gb4 ~ gb4 eb4 db4",
  Z: "db4!2 ~ db4 ~ db4!2 ~@2 db4 ~ db4 ~ db4!2 ~",
  AA: "~@3 [ab3,db4] ~ [ab3,db4] ~@2 [ab3,db4]!2 ~ [ab3,db4] ~ [ab3,db4] db3 db4", // Db5
  AB: "[ab3,db4]!2 ab3 [ab3,db4] ~ ab3 db3 [ab3,db4]!5 ~@2 db3 ~", // Db5
  AC: "[ab3,db4] db4 db3 [ab3,db4] ~ [db3,db4] ~@2 [db3,ab3,db4] [ab3,db4] ab3 [ab3,db4] ~ [ab3,db4] [db3,ab3] ~", // Db5 Db Db5
  AD: "[ab3,db4]!2 ~ [ab3,db4] ~ [ab3,db4] db3 db4 [ab3,db4] db4 ~ [ab3,db4] ~ db3 ~@2", // Db5
  AE: "~@2 db3 ~@2 db3 ab3 ~ [ab3,db4]!2 ~ [ab3,db4] ~ [ab3,db4] [db3,ab3] ~", // Db5
  AF: "[ab3,db4]!2 ~ [ab3,db4] ~ [ab3,db4] db3 ~ [ab3,db4]!2 ab3 [ab3,db4] ~ [ab3,db4] db3 ~", // Db5
  AG: "~ db3 ~ db3!2 ~@3 [ab3,db4]!2 ab3 [ab3,db4] ~ [ab3,db4] [db3,ab3] [ab3,db4]", // Db5
  AH: "[ab3,db4] ab3 ~ [ab3,db4] ~ [ab3,db4] [db3,ab3] ~ [ab3,db4]!2 ~ [ab3,db4] ~@2 ab2@2", // Db5
  AI: "eb3@2 ab3 ~ bb3@2 eb3@2 b3@2 bb3@2 ab3@2 eb3 ~",
  AJ: "[bb3@2 b3@2 bb3@2 gb3 ~ eb3@2 ab3 ~ bb3 ~ b2@4 gb3@2 b3@2 gb3 ~ db4@2 b3 ~ gb3@2 eb3 ~]/2",
  AK: "db3@3 ~ db3 ~@3 db3 ~@3 db3 ~@3", AL: "~@2 eb4 ~@2 eb4 ~@2 eb4 ~@2 eb4 ~@2 eb4 ~",
  AM: "~@2 eb4 ~@2 eb4 ~@2 bb3!2 ~ eb4 ~ eb4 c4 bb3", AN: "~@2 eb4 ~@2 eb4 ~@2 eb4 ~ bb3 eb4 ~@2 eb4 ~",
  AO: "~ eb4 ~@2 eb4 ~@3 bb3!2 ~ eb4 ~ eb4 c4 bb3", AP: "~@2 eb4 ~@2 eb4 ~@2 eb4 ~ bb3 ~@3 eb4 ~",
  AQ: "~@4 eb4 ~@4 bb3 ~ eb4 ~ eb4 c4 bb3", AR: "~@2 eb4 ~@2 eb4 ~@2 eb4 ~@2 bb3 ~@3 bb3",
  AS: "~@2 eb4 ~@2 eb4 ~@2 eb4 ~@5 bb3 ~", AT: "~ bb3 ~@2 bb3!2 ~ bb3!3 ~ eb4 ~ eb4 c4 bb3",
  AU: "~@2 eb4 ~ bb3!2 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~", AV: "~ bb3 ~@2 bb3 ~@4 c4 ~ eb4 ~ eb4 c4 bb3",
  AW: "~@2 eb4 ~ bb3 eb4 ~ bb3 eb4 ~ bb3 eb4 ~@2 eb4 ~", AX: "~@2 eb4 ~@13", AY: "bb3!2 ~@5 bb3 eb4 ~@2 eb4 ~@2 eb4 ~",
  AZ: "~@2 bb3 ~@2 bb3 ~@2 bb3 ~@7", BA: "~@2 bb3 ~@2 bb3 ~@2 eb4 ~@2 eb4 ~ bb3 eb4 ~",
  BB: "~@2 bb3 ~@2 bb3 ~@2 bb3!2 ~ bb3 ~ bb3!2 ~", BC: "~@2 bb3 ~@2 bb3 ~@2 eb4 ~ bb3 eb4 ~ bb3 eb4 ~",
  BD: "~@2 bb3 ~@2 bb3 ~@2 bb3!2 ~ eb4 ~ eb4 c4 bb3", BE: "~@2 bb3 ~@2 bb3 ~@2 bb3!2 ~ eb4 ~ eb4 ~@2",
  BF: "~ bb3 ~@2 bb3 ~@3 bb3!2 ~ eb4 ~ eb4 c4 bb3", BG: "~@2 eb4 ~@2 eb4 ~@2 eb4 ~@7",
})).s("gm_electric_guitar_muted").gain(0.26).pan(0.3)

// … 128 more lines

More by Whitney Houston