Strudelify

Put Your Hands Where My Eyes Could See

Busta Rhymes

KeyB♭ minorTempo188 bpm
0:00/0:00
// Put Your Hands Where My Eyes Could See — Busta Rhymes
// 188 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 200 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(188/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(`<
  ~@7 A@3 B@6 C@2 D@6 C@2 B@6 C@2 D@6 C@2 D@6 C@2 B@6 C@2 D@6 C@2 B@6 C@2 D@6 C@2 D@6 C@2 B@6 C@2 D@6 C@2 B@6 C@2 D@6
  C@2 D@6 C@2 B@6 C@2 D@6 C@2 B@6 C@2 D@6 C@2 D@6 C@2 B@6 C@2 D@6 C@2 B@6 E@4 F@4
>`.pickRestart({
  A: "[~@24 bb2@4 f2@2 bb1@2 ~@5 [bb0,bb1]@3 ~@6 bb0@4 ~@20 f2@2, ~@23 f2@2 ~@20 bb1@5 ~@22]/3", // Bb
  B: "[bb2@4 f2@2 bb1@2 ~@4 [bb0,bb1]@4 ~@6 [bb0,bb1]@5 ~@21 bb2@4 f2@2 bb1@2 ~@5 [bb0,bb1]@4 ~@5 [bb0,bb1]@5 ~@21 bb2@4 f2@2 bb1@2 ~@5 [bb0,bb1]@4 ~@5 bb0@5 ~@20 f2, ~@47 f2@2 ~@46 f2@2 ~@20 bb1@6 ~@21]/6", // Bb
  C: "[bb2@4 f2@2 bb1@2 ~@5 [bb0,bb1]@3 ~@6 bb0@4 ~@20 f2@2, ~@21 bb1@5 ~@22]/2", // Bb
  D: "[bb2@4 f2@2 bb1@2 ~@4 [bb0,bb1]@4 ~@6 [bb0,bb1]@5 ~@21 bb2@4 f2@2 bb1@2 ~@5 [bb0,bb1]@4 ~@5 [bb0,bb1]@5 ~@21 bb2@4 f2@2 bb1@3 ~@4 [bb0,bb1]@4 ~@5 bb0@5 ~@20 f2, ~@47 f2@2 ~@46 f2@2 ~@20 bb1@6 ~@21]/6", // Bb
  E: "[bb2@4 f2@2 bb1@2 ~@5 [bb0,bb1]@4 ~@5 [bb0,bb1]@5 ~@21 bb2@4 f2@2 bb1@2 ~@5 [bb0,bb1]@4 ~@5 bb0@5 ~@20 f2, ~@47 f2@2 ~@20 bb1@6 ~@21]/4", // Bb
  F: "[bb2@4 f2@2 bb1@2 ~@5 [bb0,bb1]@4 ~@5 [bb0,bb1]@5 ~@21 bb2@4 f2@2 bb1@3 ~@4 [bb0,bb1]@4 ~@5 bb0@5 ~@20 f2, ~@47 f2@2 ~@20 bb1@6 ~@21]/4", // Bb
})).s("gm_acoustic_bass").gain(0.8)

// chords · french horn
const french_horn = note("<~@40 A@4 B@4 C@2 D@6 E ~@30 F@3 G@8 H@7 ~@95>".pickRestart({
  A: "[~@5 f4@15 ~@10 a3@16 ~@2, db3@41 ~@7 eb4@43 ~@5, ~@9 db4@36 ~@2 c5@46 ~@3, ~@48 [gb4,a4]@37 ~@11, ~@48 a3 c3@47]/4", // Gbm
  B: "[~@35 bb4@12 ~@37 [bb3,bb4]@2 ~@10, bb2@47 ~, [db4,c5]@43 ~@5, ~@35 bb3@10 ~@51]/4", // Bb Dbmaj7
  C: "[~ db4@21 ~@2, db3, ~ db5@43 ~@4, ~@2 f4@39 ~@7]/2",
  D: "[~@3 g4@5 ~@11 gb4@17 ~@30 bb4@24 ~@7 c5@18 bb4@24 ab4@5, c3@50 ~@15 bb3@25 ~@54, ~ eb4@37 ~@10 bb2@77 ~@19, ~@48 f4@43 ~@6 f4@41 ~@6, ~@12 [ab4,c5]@5 ~@19]/6", // Ab
  E: "bb3 ~@11", F: "[~@25 db3@47, ~@23 db4@45 ~@4, ~@24 f4@41 ~@7]/3",
  G: "[~ a4@37 ~@51 bb4@7 [ab4,c5]@41 bb4@6 ~@19 bb4@17 ~ g4@12, c3@12 bb2@21 ~@3 db3@11 ~, gb4@38 ~@9 [db4,f4]@91 ~@6 db4@48, ~@47 c5@44 ~@52 db5@46 ~@3, ~@47 ab4@41 ~@55 f4@39 ~@10]/8", // Ab Db
  H: "[~@8 c5@35 ~@47 ab3@6 ~@18 bb4@24 [ab3,ab4]@5 ~ [f4,bb4]@2 ~@22, c3@49 ~@35 [f3,f4]@8 ~@5 db4@45 ~@26, eb4@41 ~@25 [bb3,bb4]@20 ~@10 f4 c5@18 ~@53, c5@6 ~@41 ab4@20 ~@23 ab4@23 bb3@25 ~@5 bb3@2 ~@23, ~ c4@46 ~ bb2@82 ~@38]/7", // Ab Bb5 F Bb
})).s("gm_french_horn").gain(0.44).pan(0.6)

// chords · french horn · soft notes
const french_horn_soft = note("<~@40 A@3 B@5 ~ C@7 D ~@30 E@3 F@4 G@2 ~@3 H@3 I J@2 ~@95>".pickRestart({
  A: "[~@3 c4@14 ~@7, ~ db5@4 ~@3]/3", B: "[~@21 bb3@2 ab4@37 ~@27 ab4@23 ~@10, ~@23 [c4,f4]@86 ~@11]/5",
  C: "[~@36 a4@27 ~@9 c4@20 ~@46 bb3@27 g3@3, ~@22 c4@49 db4@97, ~@25 c5@44 ~@45 ab3@3 ~@3 c4@20 ~@28, ~@115 ab4@25 ~@28]/7",
  D: "bb4 ~@11", E: "[~@23 db5@44 ~@5]/3", F: "[[c4,eb4,c5]@41 ~@48 bb3@7, ~@46 c4@47 ~@3]/4", G: "[c4@41 bb3@6 ~]/2",
  H: "[~@25 c4@20 ~@27, ~@23 db4@42 ~@7, ~@23 c5@19 ~@30, ~@24 f4@29 ~@19]/3", I: "~ c4@18 ~@5",
  J: "[~@23 db4@2 ~@23]/2",
})).s("gm_french_horn").gain(0.22).pan(0.6)

// other · synth brass 1
const synth_brass_1 = note(`<
  ~@112 A@7 ~ B C D E@2 F@2 ~ G H I J K@3 L M N@4 O P Q@2 R S T U V W@2 X Y@2 Z AA AB AC@4 AD@2 AE AF AG AH@5 AI@2 AJ@2
  AK AL AM AN@4 AO AP@8 ~@8
>`.pickRestart({
  A: "[~ f5@155 gb5@2 ~@2 f5@4 eb5@2 ~@2, e5@2 ~@157 gb5@2 ~@7]/7", B: "~@6 f5@3 ~ db5@2 bb4@3 ~@9",
  C: "eb5@3 ~@7 eb5@3 ~@3 b4@7 ~", D: "~ bb4@2 ~ f4@2 ~@6 ab4@3 ~@2 eb4@2 ~@3 gb4@2, a4 ~@11",
  E: "[~ d4 ~@4 gb4@2 ~@2 f4@4 ~ b3@2 ~@4 a3@2 bb3@2 ~@23]/2",
  F: "[~@5 db4 eb4@2 ~ bb3@3 ab3@9 f3@2 ab3@3 bb3@22, ~@4 db4 ~@19]/2", G: "~@5 bb4 ~@5 bb5 ~@4 gb5 ~@7",
  H: "~@6 ab5 ~ gb5 ab5@2 gb5", I: "f5@3 ~@15 f5@3 eb5@2 ~", J: "~@11 f5@3 ~@10",
  K: "[bb4@5 ~@12 c5@4 bb4@2 f4@3 ~ db4@2 c4@7 ~@4 eb4@2 bb3@2 ~@3 db4@2 ab3@2 f4@15 db4@3 ~ bb3@2]/3",
  L: "~@14 bb3@2 ~ c4@4 db4@2 ~", M: "~@11 f4@2 ~@7 f5@2 ~@2", N: "[~@7 f5@83 ~@6]/4",
  O: "~@4 bb5@3 f5@3 ~@3 ab5@4 ~@7", P: "~@6 gb5 f5@8 ~@9", Q: "[f5@27 ~@2 bb5@2 ~@5 ab5@3 ~@7 gb5@2]/2",
  R: "~@6 f5@4 b4@3 ~@9 f4@2", S: "a4@4 bb4@2 ~@6 a4@3 ~ bb4@2 ~@4 db5@2", T: "~@5 c5@4 ~@5 b4@4 ~@5 bb4",
  U: "~@3 bb4@3 ~@4 ab4@3 ~@11", V: "~@4 ab3@2 db4@2 ~@5 ab4@2 ~@2 eb4 ab4@3 ~@3, ~@12 bb3@5 ~@7",
  W: "[~@5 bb4@2 f4@3 ~@2 bb4@4 f4@2 ~@3 bb4@6 ~@21]/2", X: "~@5 f4@2 c4@3 ~@2 gb4@3 ~@3 ab3@3 ~@3",
  Y: "[eb4@3 ~@2 gb4@4 ~@3 ab3@3 gb4@3 ~@5 f4@4 ~@6 gb4@2 ~@6 ab4@5 eb4@2, ~@2 bb3 ~@21]/2",
  Z: "~@3 ab4@3 eb4@2 ~ bb3@2 ~@6 bb3@2 ~@3 bb4@2", AA: "f4@3 ~@3 bb4@3 f4@3 c4@2 ~@10",
  AB: "~@3 f5@2 c5@2 ~@5 gb5@3 db5 ~@6 f5@2", AC: "[c5@3 ~@16 f5@36 ~@5 bb5@3 ~@3 c5@2 ~ c6@27, ~@19 g5@2 ~@75]/4",
  AD: "[~@6 bb5@3 f5@2 ~@4 bb5@2 ~@6 ab5@22 ~@3]/2", AE: "~@6 f5@3 ~@8 f5@3 ~@4", AF: "~ f5@4 c5@2 db5@3 ~ eb5@6 ~@7",
  AG: "~@12 bb4@2 ~@7 bb4@2 ~",
  AH: "[~@22 f3 bb3@4 f3@2 bb2@3 ~@4 bb2@3 ~@7 bb2@28 ~@4 f3@2 ~@6 bb2@4 ~@4 bb2@23 ~ f3@2]/5",
  AI: "[bb3@3 ~ f3@2 bb2@2 ~@4 bb2@3 ~@6 bb2@27]/2", AJ: "[~@2 f3 bb3 ~@2 bb3 ~@4 bb3@6 ~@3 db4 eb4 ~ f4]/2",
  AK: "~@5 bb4@2 ~@6 db5 ~@8 f5@2", AL: "~@3 eb5 ~@4 b4 ~@2 ab5", AM: "gb5@3 ~ f5@2 bb5@4 ~@5 c5@2 ~@4 ab5@3",
  AN: "[~@4 ab5@3 ~@7 gb5 ab5@2 gb5 f5@3 eb5@2 f5@52 ~@8 db5@2 c5@3 bb4@3 ~@5]/4",
  AO: "~@17 eb5@3 ~@2 f4@2, ~@16 f5@3 ~@5",
  AP: "[ab4@4 f4 bb4@36 ~@2 ab4@3 bb4@31 ~@10 bb4@2 f4@4 ~@2 f4@35 ~ eb4@4 e4@3 ~@3 db4@23 eb4@2 c4@18 ~@8, ~@94 eb4@2 ~@70 db4 ~@25]/8",
})).s("gm_synth_brass_1").gain(0.64).pan(0.1)

// other · synth brass 1 · soft notes
const synth_brass_1_soft = note(`<
  ~@118 A@2 B ~@9 C D ~ E ~@7 F@2 ~ G H I J K L M ~ N O P Q R ~@3 S ~ T ~@15 U ~@4 V ~ W ~ X ~ Y ~ Z ~@8
>`.pickRestart({
  A: "[~@7 ab5 ~@3 f5@8 ~@5]/2", B: "~@8 f4 ~@3", C: "~@3 f5 ~@8", D: "~@14 eb5@3 b4@3 f4@3 ~",
  E: "~@14 ab4@3 ~@4 gb4@3", F: "[~@23 gb5@3 ~@14 f5@4 ~@4]/2", G: "~@7 f5@3 c5@2 ~@4 eb5@2 bb4@3 ~@3",
  H: "~@4 ab4@2 ~@10 f4@2 b4 ~@5", I: "~@7 bb4 ~@2 f4@2 ~@12", J: "~@13 f4@2 ~@9", K: "~@5 f4@3 ~ c4 ~@14",
  L: "~@9 gb4@2 ~@13", M: "~@11 c4@2 ~@11", N: "~@10 g3 ~@4 db4@2 ~@5 ab4@2", O: "~@10 db4 ~@9 ab3@2 ~@2",
  P: "~@2 c4@2 ~ g3@3 ~@3 db4@3 ~@2 ab3@3 ~@5", Q: "bb3 ~@3 ab4 ~@3", R: "~@2 c4 ~@9", S: "~@8 f5 ~@3",
  T: "~@11 c5@3 ~@3 f5@4 ~ c5@2", U: "~@11 f5 ~@12", V: "~@10 b4 ~", W: "~@17 f4@2 ~@5", X: "~@8 ab4 ~@3",
  Y: "~@17 f4@4 ~@3", Z: "~@9 bb3 ~@2",
})).s("gm_synth_brass_1").gain(0.32).pan(0.1)

// other · timpani
const timpani = note("<~@103 A@2 B@2 C@2 ~ D ~ E F G H I J K ~ L@2 M ~ N O P ~ Q R@2 ~ S T@2 ~@65>".pickRestart({
  A: "[~@23 bb3@4 f3@2 ~ bb2@2 ~@4 bb2@2 ~@7 bb2@2 ~, ~@11 f3 ~@12]/2",
  B: "[~@24 bb3@3 ~ f3@2 bb2@2 ~@4 bb2@2 ~@7 bb2@2 ~, ~@23 f3@2 ~@23]/2",
  C: "[~@24 bb3@3 ~ f3@2 bb2@2 ~@4 bb2@3 ~@6 bb2@2 ~, ~@23 f3@2 ~@23]/2", D: "bb2@2 ~@9 bb2 ~@9 bb2@2 ~",
  E: "bb2 ~@3 bb2 ~ bb2 ~@5 bb2 ~@8 bb2 ~@2", F: "~@17 bb2 ~@3 bb2 ~ bb2", G: "~@11 bb2 ~@9 bb2 ~@2",
  H: "~@17 b2@3 ~@4, ~@8 db3 ~@3", I: "bb2@2 ~@10 bb2 ~@9 bb2 ~", J: "~@8 db3 b2 ~@2",
  K: "bb2@2 ~@10 bb2 ~@7 bb2@2 ~@2",
  L: "[~@6 bb3@4 ~@5 ab3@2 eb3@2 ~@2 bb2@2 gb3@3 ~@3 ab2@2 ~@2 f3@3 ~@4 f2@2 bb2@3 ~@2 bb2]/2", M: "~@3 bb2 ~@7 bb2",
  N: "~@6 bb3@5 ~@5 ab3@3 eb3@3 ~@2", O: "~@2 gb3 ~@5", P: "bb2 ~@5 bb2 ~@3 bb2 ~", Q: "~@11 bb2@2 ~@8 bb2@3",
  R: "[~@23 bb3@3 ~ f3@2 bb2@2 ~@5 bb2@2 ~@7 bb2@2 ~, ~@11 f3 ~@12]/2", S: "~@12 bb2@3 ~@6 bb2@2 ~",
  T: "[~@24 bb3@4 f3@2 bb2@2 ~@4 bb2@2 ~@7 bb2@2 ~, ~@23 f3@2 ~@23]/2",
})).s("gm_timpani").gain(0.45)

// other · timpani · soft notes
const timpani_soft = note(`<
  ~@109
  [~@17 gb2@4 ~ f2@2]
  ~@10
  [~@10 f3@2 c3@3 ~@9]
  [~@11 b2@3 ~@10]
  ~@2
  [~@10 f3@2 c3@3 ~@9]
  ~@75
>`).s("gm_timpani").gain(0.22)

// chords · piano
const piano = note(`<
  ~@7 A B C D E F G H@2 I J K@4 L M N@2 O@4 P Q R S T U V W X@3 Y@3 Z AA@7 AB@2 AC AD ~@49 AE AF AG AH AI@2 AJ AK@4 AL@5
  AM@2 AN AO AP@4 AQ AR AS AT AU AV AW@5 AX@2 AY@2 AZ@2 BA@6 BB@2 BC BD BE@2 BF@8 BG@7 BH BI@2 BJ BK BL BM@2 BN BO BP BQ
  BR@2 BS BT BU BV@2 ~@8
>`.pickRestart({
  A: "~@8 c5 bb4@2 f4", B: "db4@6 ~@3 db4 ~ db4 c4@4 bb3 ~@5 c4 ~, ~@5 eb4 ~@6", C: "~@4 f3 ~@19", D: "~@4 f4 ~ bb3 ~",
  E: "db4@3 eb4@2 ~ f4@4 ~@3 gb4 ab4@2 gb4 f4@2 eb4@4 ~", F: "f4 ~", G: "~@4 f5@2 eb5@3 ~ b4@11 ~ a4@2",
  H: "[bb4@3 ~ f4@2 ~@4 gb4 bb4 gb4 f4@3 eb4@2 f4@16 gb4@3 ~@4 bb4@2 ~@5, ~@11 ab4@2 ~@35]/2",
  I: "~@6 db5@2 ~@4 f5@4 db5@2 c5@3 f5@3", J: "~@6 db5@4 c5@2 ~@5 a4@2 f4@2 ~@3, ~@8 bb4 ~@3",
  K: "[c5@3 ~@9 g4@3 ~ d4@2 c5@4 ~ d4@3 ~ bb4@3 ~@5 ab4 ~@3 eb4@2 bb3@3 ~@2 gb4 db4@2 ~ ab3@2 gb4@3 ~@2 db4 ~ ab3@2 ~@2 f4@3 ~@5 eb4@3 bb3@2 f3@3 ~ eb4@2 ~@5 db4@3 ab3@3 ~ eb3@2, ~@11 c5@3 ~@73 eb3 ~@8]/4",
  L: "b3@4 gb3 db3@3 ~ b3@3 gb3@2 ~@3 b3@4 ~ bb3@2", M: "~@4 f3@3 c3@4 f3@2 bb3@3 ~@8",
  N: "[~@6 f3@2 ~@2 f4@20 eb4@3 db4@3 eb4@4 f4@2 eb4@4 db4@2, ~@4 bb3 ~@19, ~@9 db4@2 ~@37]/2",
  O: "[~@16 db4 eb4@2 db4@12 ~@3 db4@2 ~@2 db4 ~@2 db4@4 eb4@2 b3@8 ~@2 eb4 ~@6 f4@2 ~@3 gb4 ~@2 gb4 f4@2 eb4@2 ~ f4@14 eb4@4, ~@47 db4 ~@23 ab4@2 ~@23]/4",
  P: "~ bb3@5 ~@2", Q: "~@3 c4@2 f4@2 ~@4 bb4@3 ~ f4@2 c5@4 ~@3", R: "~@12 db5@3 ~@2 eb4@3 ~ b4@2 ~",
  S: "~@4 b4@3 ~@3 db4@2 bb4@2 ~@10", T: "f4 bb4@3 f4@2 c4@4 ~ f4@3 ~@2 ab4@3 eb4@2 ~ bb3@2, ~@5 bb4 ~@6",
  U: "gb4@3 ~@2 ab3@3 ~ gb4@3 ~@12", V: "~@6 f4@4 ~@6 eb4@2 bb3@3 ~ f3@2", W: "~@7 ab3@2 ~ eb3@2 ~ b3@4 ~@7",
  X: "[~@6 bb3@3 ~ f3@2 c3@4 ab3@3 ~@4 gb3@3 ~@3 ab2@2 ~@2 f3@6 ~@6 f3@2 bb2@3 ~@3 g2@2 ~@10 db3@2 ~@2 eb3@2 ~, ~@11 bb2 ~@24]/3",
  Y: "[~@2 f3@2 ~@6 ab3@2 ~ f3@3 ~ f3@10 ~ ab3@2 a3@3 ~ [f4,g4]@3 ~ eb4@2 ~ f4@3 eb4@2 ~@2 eb4 ~@8 gb4 ~ ab4 f4@2 ~@2 f4@5 ~@2 db4, ~@9 gb3@2 ~ gb3@2 ~@2 eb3@2 ~@28 f4@6 ~@8 gb4 ~@2 eb4@2 ~@7]/3", // Fsus2
  Z: "~@2 db4@2 c4@2 bb3 ~ c4@10 bb3 ~ c4@2 db4@2, ~ eb4@2 ~@21",
  AA: "[~ eb4@2 f4@2 gb4@2 ~@2 gb4 f4@2 ~@2 f4@26 g4@2 ~@2 ab4@2 ~ bb4@2 ~@2 c5@2 ~ db5@2 eb5@2 db5 ~@3 db5@2 ~ eb5@2 e5 f5@2 ~ [db5,eb5]@2 c5@2 bb4@10 ~@2 [f4,bb4]@2 db5@2 c5@9 ~@2 db5@2 c5@7 f4@2 c5 ~ c5@8 ~ [f4,bb4]@2 db5@2 c5@6 ~@2 c5 db5@2 c5@17 ~@5 e4@2 ~ eb4 ~@2 db4, ~@8 ab4@2 ~@3 eb4@2 ~@46 eb5@2 ~@7 e5@2 ~@28 f4@2 ~@32 f4@2 ~@24 bb4@2 ~@6, ~@101 bb4@2 ~@11 db5@2 ~@19 bb4@2 ~@22 c5@2 ~@7]/7", // Dbsus2 Bb5
  AB: "[~ eb4 db4 c4@2 ~ bb3@2 c4@8 bb3 ~ bb3 ~ f3@2 f4@22 ~@4, ~@22 e4 ~@25]/2",
  AC: "~@6 f4@2 ~ f4 ~@2 f4 ~ f4 ~@2 f4 ~ f4 ~ f4 ~@2", AD: "f4 ~ f4 ~@4 f4 ~@14 bb4 ~", AE: "~@17 [b3,eb4,gb4]@4 ~@3",
  AF: "[bb3,db4] ~@16 db4@2 ~@5, f4 ~@11", AG: "~@16 b3@3 ~@3 bb3@2", AH: "~@9 f3@2 f4@3 ~ db4@2 ~@7",
  AI: "[~@11 eb4@4 f4@5 ~@8 bb3@2 ~@3 f3@2 bb3@9 f3@2 ~@2, ~@11 [f2,b2,eb3]@9 ~ db4@4 ~@2 db4@2 ~@4 g3 ~@14, ~@11 [f2,bb2]@12 ~, ~@23 db3@25]/2", // Fm7b5 Bb5
  AJ: "~@3 [gb2,b2,eb3,b3]@2 ~@11 b2@7 ~, ~@5 [gb2,eb3]@2 ~", // B Ebm
  AK: "[[f2,bb2,db3]@3 bb3@2 db4 ~@4 db4 ~ db5@3 ~@2 db4@2 ~@3 c3@5 c5@3 ~@3 eb4@2 c4 b2@2 ~@8 bb3@4 ~ f2@2 ~@12 [c4,f4,bb4]@2 ~@5 eb4@2 ~@7 [ab3,db4,gb4]@3 ~@6 [g3,c4,f4]@3 ~ [g3,f4]@2, ~@11 db3@7 ~@23 bb2@7 ~@48, ~@16 f4@2 ~@17 b3@2 ~@8 a3@2 ~@3 f3@2 ~@19 [bb3,ab4]@2 ~@17 db4 ~@5]/4", // Bbm Fsus4 Dbsus4 Csus4 G7 Bb7
  AL: "[~@6 [f3,bb3,db4]@2 ~@2 [f3,bb3] ~ [bb2,db3]@2 ~@3 [f3,bb3,eb4]@13 ~@4 [eb3,ab3,db4]@3 ~@6 [gb3,b3]@3 ~ [c3,f3,bb3]@5 bb2@3 [c3,f3,bb3]@3 [c3,f3,bb3]@3 bb2@4 [c3,f3,bb3]@4 ~@4 [c3,f3]@5 bb2@4 [c3,f3,bb3]@4 ~@3 [c3,f3,bb3]@3 ~ [c3,f3,bb3]@2 bb2@7 [c4,f4,bb4]@3 ~@9 gb3 ~@5, gb2@4 ~@6 db4@2 ~@35 b3@2 ~@23 bb3@6 ~@34 [bb3,eb4,ab4]@4 ~@4, ~ f2@11 ~@30 db3@3 ~@10 d3 ~@9 d3 ~@5 bb2@2 ~@15 bb2@2 ~@30]/5", // Bbm Bb5 Bbm Ebsus2 Dbsus2 B5 Fsus4 F5 …
  AM: "[gb3 [ab3,db4,gb4]@4 ~@5 [f3,b3,f4]@6 ~ [f2,b2,eb3]@2 [f3,b3,f4]@3 ~ [f3,b3,f4]@2 [f2,bb2,db3]@6 [f3,bb3] ~@6 ab4@2 ~@6 b2@2, ~@37 db3@5 ~@6, ~@37 [db4,f4,db5]@3 ~@8]/2", // Dbsus4 Fdim Fm7b5 Fdim Bbm Bb5 Db
  AN: "~ c3@8 [b3,eb4,gb4]@4 ~@4 b2@7, c5@2 ~@7 b2@6 ~@9", // B
  AO: "~@7 [bb2,bb3] ~@9 [b2,ab3]@2 ~@5, ~@16 [b3,eb4,f4,bb4]@3 ~@5, ~@17 f3 ~@6", // Bb E Bmaj7
  AP: "[[bb2,e3,g3,bb3,d4,e4,a4]@2 ~@8 a3 db3@2 ~@16 f3@2 ~@2 bb3@2 f4@3 ~ db4@2 ~@9 f2@2 ~@3 db4@2 ~ c4@2 bb3@2 ~ g3 ~@19 [bb3,f4]@3 ~@7 f4@3, ~@10 [a2,eb3,db4,eb4,ab4]@3 ~@10 bb2@24 ~@16 f3@8 db3@21 ~@4, ~@44 c4@11 ~@13 f2@21 ~@7, ~@9 bb2@2 ~]/4", // Em7b5 Bb5 Amaj7
  AQ: "~@5 b3@6 ~@7 [gb3,f4]@3 ~@3, ~ [gb2,b2,eb3]@4 ~, ~@4 eb4@13 ~ b3 ~@5, ~ gb3@2 ~@3", // Gbmaj7 B
  AR: "[f3,bb3,db4]@2 ~@9 f4@2 ~@5 [gb2,c3,eb3,gb3,ab3,eb4]@3 ~@3, db3@13 ~@11, [f2,bb2]@11 ~@13", // Bbm Ab7 Bb5
  AS: "~ [f2,ab2,b2,db3,f3,ab3,b3,db4] ~@6", AT: "~@5 f3@2 ~@5 f4@3 ~@4 b2@2 ~@3, [f2,bb2,db3]@13 ~@5 [f2,db4]@2 ~@4",
  AU: "~@4 c4@3 ~@11 b2@4 a3@2, ~@13 b3@6 ~@5, ~@17 [gb2,eb3]@5 ~@2", // Ebm
  AV: "[bb2,bb3]@3 ~ f3@2 ~@4 [e3,f3]@3 ~@4 f3@3 ~ gb4 ~ gb4, d3 ~@21 ab4@2", // Bb Fmaj7
  AW: "[f4@2 eb4@2 ~@6 [eb3,e3] f3@5 ~ b4@2 ~@52 f3@36 ~ f4@8 ~@4, ~@5 f4@15 ~@5 [f3,bb3,db4]@31 gb5@10 eb5@5 [bb3,db4]@39 ~@10, ~@16 f2@2 ~@20 db5@27 eb4@12 ~@30 eb4@6 ~@7, ~@17 f5@14 ~@6 bb4@40 ~@43, ~@38 f5@10 ab5@29 ~@43]/5", // Emaj7 Bbm
  AX: "[[db4,f4]@13 ~@25 gb4@10, bb3, ~@13 [db4,f4,db5]@35, ~@13 c5@11, ~@37 [eb3,b4]@11]/2", // Db Abm
  AY: "[~ [bb2,bb3]@45 ~@2]/2", // Bb
  AZ: "[~@41 [gb4,b4,gb5]@7, bb2@5 g4@3, ~ bb4@47, ~@19 [ab3,db5,ab5]@29, ~@29 [g3,g5]@19]/2", // B5 Db5 G
  BA: "[~@40 [gb3,gb4,b4,gb5]@5 ~@25 [db5,gb5,c6]@6 ~@15 [b4,e5]@7 ~ eb5@16 ~@3 bb4@26, ~ [bb3,f4,bb4]@18 [ab4,db5,ab5]@12 ~@48 f5@18 ~@19 eb5@7 ~@21, ~@18 ab3@13 ~@16 [bb3,f4,bb4]@29 ~@4 c5@18 ~@17 db5@2 db5@6 ~@21, ~@29 [g3,g4,c5,g5]@17 ~@98]/6", // B5 Gb E5 Bb5 Db5 Bb5 C5
  BB: "[~@2 bb4@10 ~ bb4@4 f4@2 ~@20 f4@3 ~@6, ~@2 [bb2,bb3]@13 ~@9 eb4@11 ab3@6 ~@7, ~@12 f4@3 ~@7 ab4@19 ~@7, ~@27 bb3@14 ~@7, ~@29 gb4@12 ~@7]/2", // Bb
  BC: "~@9 f4@2 c4, [ab3,bb3]@23 ~, ~@13 bb4@10 ~", BD: "~@2 f3@9 ~",
  BE: "[~@15 gb4@2 ~@6 ab4, ~ bb3@32 ~@12 bb3@3, ~@13 f4@10 [e4,f4]@10 ~@7 gb4@8, ~@9 g3@5 ~@4 ab3@6]/2", // Fmaj7
  BF: "[ab3 ~@11 f4@9 f4@6 e3 ~@8 f4@5 ~ f4@5 ~@2 bb3@11 ~@7 bb4@2 ~@19 f5@3 ~@23 bb4@3 ~@7 f4@2 f4@2 ~@11 eb4@2 ~@8 db4@3 ~ db4@3 db4@8 ~@2 db4 ~ d4 ~@10 bb3@2 c4@4 ~@2 bb3 b3@3 ~, ~@6 bb2@19 ~@4 [e3,f3]@16 ~@16 [f3,bb3,eb5]@8 ~@15 eb5@6 ~@3 db5@6 db5@18 ~@11 f4@9 f4@4 f4@9 ~@2 eb4@10 ~@2 db4@2 ~ c4@10 ~@4 db4 ~@10, ~@34 [ab4,bb4]@10 ~@16 db4@9 ~@13 f4@8 ~@4 [f3,bb3,db4]@26 ~@15 ab4@7 ~@23 eb4@3 ~@24, ~@35 gb4@9 ~@3 eb4@22 ~@2 bb4@19 ~@8 eb5@19 ~@17 gb4@2 gb4@6 ~@4 bb3@22 ~@18 f3@2 ~@4, ~@41 [f2,eb4]@4 ~@55 c5@17 ~ c5@24 ~@50]/8", // Fmaj7 Ebsus2 Absus2 Bbm F7
  BG: "[a3@2 bb3@5 ~@4 f3@2 ~@4 f4@3 ~@4 f4@6 ~@3 gb4 ab4@2 f4@11 eb4@2 f4@4 ~@4 bb4@2 ~@2 bb4@4 ~@2 db5@4 bb4@2 f4@3 ab4@7 ~@3 gb4 bb4 gb4 f4@4 ~@15 bb4@4 ~ c4@2 ~ ab4@3 ~@6 gb4@3 ~@3 ab3@2 ~ f4@3 ~@7 [f2,bb2,db3]@3 ~ f3@2 ~@5 f4@3 ~ c4@2 ~@7, ~@7 [f2,db3]@22 ~ f4@3 ~@3 gb4 ~@17 f5@5 db5@4 ~@20 eb3@8 ~@4 f4@2 ~@15 f4@2 ~@54, ~@31 [gb2,eb3]@16 ~@2 db3@30 ~@4 gb2@10 ~@75, ~@84 b2@7 ~@5 bb2@27 ~@45, ~@87 ab4@2 ~@5 eb4@2 ~@47 bb3@2 ~@23]/7", // Bbm Db Ebm
  BH: "~@3 eb4@2 bb3@3 ~@3 db4@3 ~ ab3 ~ eb3@2 ~@2 b3@2 gb3",
  BI: "[~@5 bb3@4 f3@2 c3@3 ~@2 bb3@3 f3@3 ~ bb2@8 ~@3 bb2@6 ~@8, ~@15 bb2@2 ~@5 c3@2 ~@24]/2",
  BJ: "~@2 bb4@3 f4@2 c4@2 ~@4 [bb2,c4,f4,bb4]@2 ~@6 [bb2,c4,f4,bb4]@3, ~@2 bb2@5 ~@17", BK: "~@8 b4 gb4 ~@2",
  BL: "~ bb2@2 ~ f4@2 ~@6 [bb2,c4,f4,bb4]@2 ~@7 [bb2,c4,f4,bb4]@2 ~, bb4@5 ~@19", // Bbsus2
  BM: "[~@15 [f2,b4]@2 gb4@2 ~@2 db4@2 ~ bb2@2 ~@2 f4@2 ~@5 [bb2,c4,f4,bb4]@2 ~@8 bb2@2 ~, ~@23 bb4@3 ~@18 [bb3,eb4,ab4]@2 ~@2]/2", // Fdim Bbsus2 Ebsus4
  BN: "~@6 [f2,gb4] ~, ~@17 ab3@3 ~@4", BO: "~ [bb2,g3,a3,c4,f4]@3 ~@9 [bb2,f3,bb3]@2 ~@6 [g3,c4,f4]@2 ~, ~@6 eb4 ~@5",
  BP: "~@4 f2 ~@12 f2@7", BQ: "bb2@2 ~@11 f4@3 ~@4 b3@2 ~@2",
  BR: "[~@4 [gb2,eb3] ~@4 eb4@2 f4@2 ~@2 gb4 bb4 gb4 f4@3 ~@8 db3@2 ~@5 f2 [b2,d5] ~@2 b4@2 ~@6, ~@16 ab4@2 ~@4 eb4@2 ~@5 bb2 ~@6 eb3@2 ~@10, ~@23 f4@8 ~@17]/2", // Ebm Bm
  BS: "~@4 [bb2,eb5] ~@8 a2@2 ~@2 eb4@2 ~@5", BT: "bb2@2 ~@10 bb4@2 ~@3 db4@2 ~@2 c4@2 ~, bb4 ~@15 f4@2 ~@6",
  BU: "~@15 b3@2 bb4@3 ~@4", BV: "[~@4 bb2@2 ~@6 f4@3 bb4@2 f4@3 ~ db4@5 ~@2 db4 ~ db4 c4@11 ~@6, ~@29 eb4@2 ~@17]/2",
})).s("gm_piano").gain(0.64)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@10 A ~@2 B ~ C D E F G H ~ I ~@3 J K ~@5 L ~@2 M N O P ~@2 Q R ~@3 S T U V ~ W ~ X Y ~@53 Z AA ~@4 AB ~@2 AC ~@4 AD
  AE AF ~@2 AG ~ AH ~ AI ~ AJ AK@5 ~ AL AM@2 AN@2 AO AP@5 AQ AR@2 AS AT AU ~@2 AV ~@2 AW AX ~ AY@2 AZ@2 BA@2 BB BC BD
  ~@2 BE BF ~ BG BH BI ~ BJ ~ BK BL ~ BM BN BO ~@8
>`.pickRestart({
  A: "~@8 c4 ~@2 c4", B: "~@5 bb4@2 ~@5", C: "~@13 ab4@4 ~@7", D: "c5 ~@11", E: "~ db5@3 c5@2 ~@18", F: "~@21 g4@2 ~",
  G: "~@6 f4@3 c4@2 ~@13", H: "~@17 c4@3 ~ g3@2 ~", I: "~@16 db3 ~@7", J: "~@2 db4@11 ~@11", K: "~@4 db4 ~@7",
  L: "~@7 gb4@2 ~@5 b4@9 ~", M: "~@10 c4@2 ~ g3@3 ~@8", N: "~@5 db4@3 ~@16", O: "~@9 eb3 ~@2",
  P: "~@17 c3@3 ~@4, ~@8 g2 ~@3", Q: "~@3 gb3@2 ~@19", R: "~@5 f4@5 ~@13 eb4", S: "~@12 c5@2 ~@2 c5@2 db5 ~@5",
  T: "~@17 c5 ~@6", U: "~@6 c5 ~@9 bb4@2 ~@6", V: "~@5 c5 ~@18", W: "~@17 c4@2 ~@5",
  X: "~@3 eb5 f5@2 ~@9 f5 ~@2 f5 ~@4 f5", Y: "~ f5 ~ f5 ~@7 f5 f4 f5 ~@10", Z: "~@3 b3 ~@4", AA: "~ f4@2 ~@8 b3@3 ~@10",
  AB: "~@23 [b3,c4]", AC: "e3 ~@6 gb3 ~@5 ab2@2 ~@9", AD: "c4 ~@7", AE: "~@6 f3 ~@17, ~ f2@7 ~@16", AF: "a3 ~@23",
  AG: "~@2 f3 ~@5 f3 ~@3", AH: "~@8 f3@2 ~ f3@2 ~@6 c4 ~@4", AI: "~@6 db3 ~", AJ: "f2 ~@11",
  AK: "[~@21 f4@8 ~@79 b3@8 ~@4, ~@36 f4@24 f4@12 db5@37 ~@11, ~@47 ab4@30 ~@43, ~@53 gb4@24 ~@30 f3@7 ~@6, ~@62 f5@15 ~@43]/5",
  AL: "~@13 [b2,b3,eb4]@11, ~ c4@23", AM: "[~ [f3,db4,bb4]@46 ~]/2", AN: "[~@41 gb3@7, bb3, ~ db4@47, ~@19 ab4@29]/2",
  AO: "~ f5@18 ~@5", AP: "[~@23 f5@29 ~@15 b3@7 ~@2 bb4@18 ~@12 f2@6 ~@4 f4@4, ~@74 bb3@25 f3@21, ~@14 f2]/5",
  AQ: "~@10 c4@5 ~@4 c4@2 ~@3", AR: "[~@17 c4@3 ~ g3@25 ~@2]/2", AS: "~@6 f2@5 ~, ~@2 e3@9 ~", AT: "~@5 c4@3",
  AU: "~@4 g3@5 ~@15, ~ c4@8 ~@15", AV: "~@2 f4@5 ~", AW: "~@7 f3@4 ~", AX: "~@6 eb4 ~, ~ f4@3",
  AY: "[~@7 bb2@19 ~@4 b2@16 ~@2]/2", AZ: "[~@17 f4@2 ~@29, f2@29 ~@19, ~@2 bb2@27 ~@19]/2",
  BA: "[~ f2@26 bb3 ~@12 c4@2 ~@4 g3 ~, ~ db3@33 ~@14]/2", BB: "~@9 g3 ~@2", BC: "~@9 f3@2 ~@13", BD: "~@4 db3 ~@19",
  BE: "~@22 db4 ~", BF: "~@5 c4@2 ~@17", BG: "c4 ~@23", BH: "~@19 db4@2 ~@3", BI: "~ db4 ~@22", BJ: "~@5 f3@2 ~@17",
  BK: "~@9 ab4 ~@2", BL: "~@13 eb4 ~@10, ~@6 eb2 ~@5", BM: "~@21 f4@2 ~", BN: "~@9 bb3 ~@14", BO: "~@7 d4@2 ~@15",
})).s("gm_piano").gain(0.32)

// other · kalimba
const kalimba = note(`<
  ~@56 A B C@2 D E F@2 G@2 H I@2 J K ~ L M N O@3 P Q R@2 S@2 T U V W X Y@2 Z AA AB AC@3 AD@2 AE AF AG@3 AH ~@95
>`.pickRestart({
// … 457 more lines

More by Busta Rhymes