Strudelify
Where Is the Love cover art

1972 · Roberta Flack & Donny Hathaway

Where Is the Love

Roberta Flack

KeyE♭ majorTempo107 bpm
0:00/0:00
// Where Is the Love — Roberta Flack
// 107 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 5 "LS 2" piano (copy of ch 4 "LS 1" piano)
// note: Full arrangement: all 94 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: The whole transcription plays 21 ms ahead of the beat; the grid follows it, so its parts stay together.
setcpm(107/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.

// other · piano · "US 1"
const piano = note(`<
  ~@4 A@2 B@2 A@2 C ~ D@2 E@2 F@4 G H I J K L@4 ~ D@2 E@2 F@4 G H I J K L@4 ~ M@3 N@6 O@2 P Q R@4 S T ~ B@2 A@2 C ~ U V
  W X A@2 B@2 Y Z AA@2 AB AC@3 AD AE AF ~
>`.pickRestart({
  A: "[~@4 g3 ab3 g3 bb3@3 ~@6]/2", B: "[~@4 f3 g3 f3 ab3@5 ~@4]/2", C: "~@4 f3 g3 f3 ab3",
  D: "[~@4 g3 ab3 g3 bb3@6 ab3 g3 ab3]/2",
  E: "[g3@3 f3@2 ~ f3@7 ~ g3 ~ g3@3 f3@3 f3@5 f3@2 ~ gb3@2, ~@15 ab3@2 ~@15]/2",
  F: "[f3@3 eb3@3 eb3@18 bb3@2 ab3@2 gb3@2 bb3@34]/4", G: "~@2 eb4@2 eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~",
  H: "eb4@4 db4 ~ db4@8 ~@2", I: "~@2 bb3@2 bb3 ~ bb3 ~ bb3@2 ab3@2 gb3@2 ab3@2", J: "bb3@4 db4@2 bb3@7 ~@3",
  K: "~@2 eb3@2 eb3 ~ eb3 ~ eb4@2 eb4 ~ eb4 ~ eb4 ~",
  L: "[eb4@4 db4 ~ bb3@4 ab3 ~ gb3@2 f3@4 bb3@2 bb3 ~ bb3@2 c4@2 eb4@2 c4@2 f4@20 ~@14]/4",
  M: "[~@8 g3@2 ab3@2 g3@2 bb3@10 g3@2 ab3@2 g3@2 bb3@10 g3@2 ab3@2 g3@2 bb3 ~]/3",
  N: "[~@2 ab3 ~@3 g3 ~@3 f3@12 ~@2 f3@2 gb3@2 f3@2 ab3@4 gb3@2 ~@2 f3@2 ~@2 eb3@2 ~@2 bb2@4 bb3@12 bb4@20 eb5@2 eb5 ~ eb5@2 eb5@2 eb5@2 eb5@2 eb5@2]/6",
  O: "[eb5@2 db5 db5@6 ~ bb4!3 ab4 gb4 ab4]/2", P: "bb4@4 db5@2 bb4@7 ~@3",
  Q: "~@2 eb4@2 eb4 ~ eb4 ~ eb5 ~ eb5 ~ eb5 ~ eb5@2",
  R: "[eb5@4 db5@2 bb4@4 ab4@2 gb4@3 f4@3 bb4 ~ bb4@2 bb4@2 c5@2 eb5@2 c5@2 f5@20 g5@3 f5@3 eb5@3 c5@3 bb4@2]/4",
  S: "g4@2 ~ g4@3 f4@2 g4@2 ~ g4@3 f4@2", T: "g4 bb4@2 ~ g3 ab3 g3 bb3", U: "~@4 g3 ab3 g3 c4", V: "bb3@7 ~@9",
  W: "~@8 f3@2 g3@3 ~ f3@2", X: "ab3 ~", Y: "~@4 eb3 f3 eb3 g3", Z: "f3@14 eb3 f3",
  AA: "[g3 f3 eb3@8 c3@2 eb3 ~ g3@4 ~ bb3@7 eb4@4 b3@2]/2", AB: "bb3@9 ~ c4@4 bb3 ~",
  AC: "[g3 f3 eb3@8 c3@2 eb3 ~ f3@4 eb3@8 c3@2 eb3 ~ g3@4 bb3@8 ab3@2 g3@2 f3 ~]/3", AD: "g3 g3@14 ~, ~ ab3 ~@14",
  AE: "~@10 db5 d5@3 bb4@2", AF: "~@2 g4 ab4 g4@12",
})).s("gm_piano").gain(0.42).pan(0.3)

// chords · piano · "LS 1"
const piano_2 = note("<A@4 B C D@2 E F G H I J@6 K@8 L@3 M@7 N@8 O P@2 Q@7 R@7 S@4 T@7 U@8 V@4 W@7 ~@2>".pickRestart({
  A: "[f3,g3,bb3,d4]/4", B: "[f3,g3,bb3,d4]@4 [f3,g3,bb3,d4] ~@5 [f3,g3,bb3,d4]@3 ~@3, ~@10 ab3 ~@5",
  C: "[c4,db4,f4,ab4]@4 [c4,db4,f4,ab4]@5 ~ [c4,db4,f4,ab4]@3 ~@3", // Dbmaj7
  D: "[[bb3,c4,eb4,g4]@3 ~ [bb3,c4,eb4,g4]@3 ~@3 [bb3,c4,g4]@5 ~ [ab3,b3,f4]@6 [ab3,b3,eb4,f4] ~@3 [ab3,b3,eb4,f4]@5 ~, ~@10 eb4@11 ~@11]/2", // Cm7 C7 Fdim Fm7b5
  E: "[f3,g3,bb3,d4] ~@3 [f3,g3,bb3,d4]@5 ~ [f3,g3,bb3,d4]@3 ~@3", F: "[bb3,db4,f4,ab4]@15 ~",
  G: "[bb3,c4,eb4,g4]@10 [bb3,c4,eb4,g4]@5 ~, db4 ~@15", // Cm7
  H: "[ab3,b3,eb4,f4] ~ [ab3,b3,eb4,f4] ~@3 [ab3,b3,eb4,f4]@8 ~@2", I: "[f3,g3,bb3,d4]@7 ~",
  J: "[bb3@8 ~@8 [ab3,f4]@8 ~@7 eb4@9 [f3,ab3,c4,eb4]@3 [f3,ab3,c4,eb4]@2 [f3,ab3,c4,eb4]@2 [f3,ab3,c4,eb4], [db4,f4,ab4] b3 ~, ~ [bb3,c4,eb4,g4]@2 [ab3,bb3,db4,f4]@2 ~, ~@29 e4@16 ~@3, ~@31 gb3@16 ~]/6", // Db Fm7 Db Cm7 Bbm7
  K: "[~@2 [f3,ab3,c4,eb4]@4 [f3,ab3,c4,eb4]@4 [f3,ab3,c4,eb4]@3 ~ f3@2 bb3@16 db4@16 eb4@16 [f3,ab3,c4,eb4]@10 [f3,ab3,c4,eb4]@3 f3@3 bb3@16 ab3@16 [f3,ab3,c4,eb4]@16, ~@13 ab3@18 ~ [ab3,bb3,f4]@32 ~@13 [c4,eb4]@32 ~@19, ~@7 [c4,eb4]@16 ~ [db4,gb4,bb4]@16 [f3,g3,d4]@16 ~@8, ~@16 [f3,g3,d4]@32 ~@29 ab3@19 [bb3,db4,f4]@32]/8", // Fm7 Bb7 Cm Gb G7 Bbm
  L: "[~ [f3,ab3,c4,eb4]@2 [f3,ab3,c4,eb4] [f3,ab3,c4,eb4]@16 ~@4]/3", // Fm7
  M: "[bb3@16 bb3@16 [bb3,c4,eb4,g4]@3 [bb3,c4,eb4,g4]@3 [bb3,c4,eb4,g4]@6 eb4@4 [ab3,eb4,f4]@3 [ab3,eb4,f4]@3 [ab3,b3,eb4,f4]@6 [ab3,f4]@4 [ab3,bb3,db4]@10 [bb3,db4]@4 eb4@20 [f3,ab3,c4,eb4]@4 [f3,ab3,c4,eb4]@2 [f3,ab3,c4,eb4]@4 [f3,ab3,c4,eb4]@2 [f3,ab3,c4,eb4]@2, [f3,g3,d4]@16 ~@6 [c4,g4]@15 e4@16 ~@3, ~@8 [db4,f4,ab4]@16 b3@3 ~@3 b3@9 [gb3,bb3,db4]@16 ~, ~@11 bb3@5 f4@8 ~@4, ~@30 eb4@7 ab3@12 ~@7]/7", // Cm7 Fm7 Fm7b5 Db Bbm7 Bbm Fm7 G7 …
  N: "[~@2 [f3,ab3,c4,eb4]@4 [f3,ab3,c4,eb4]@2 [f3,ab3,c4,eb4]@4 f3@4 bb3@16 db4@16 eb4@16 [f3,ab3,c4,eb4]@10 [f3,ab3,c4,eb4]@3 f3@3 bb3@16 ab3@16 [f3,ab3,c4,eb4]@16, ~@3 [c4,eb4]@8 ~ [db4,gb4,bb4]@8 [f3,g3,d4]@8 ~@4, ~@12 ab3@20 [ab3,bb3,f4]@32 ~@13 [c4,eb4]@32 ~@19, ~@16 [f3,g3,d4]@32 ~@29 ab3@19 [bb3,db4,f4]@32]/8", // Fm7 Cm Gb G7 Bb7 Cm G7 Bbm
  O: "~ [f3,ab3,c4,eb4]@2 [f3,ab3,c4,eb4] [f3,ab3,c4,eb4]@2 [f3,ab3,c4,eb4]!2", // Fm7
  P: "[~@2 [f3,ab3,c4,eb4]@3 [f3,eb4]@2 ~ [f3,eb4]@3 [f3,ab3,c4,eb4]@3 [f3,ab3,c4,eb4]@18, ~@5 [ab3,c4]@5 ~@22]/2", // Fm7 F7 Fm7 Ab
  Q: "[~@6 [bb3,d4]@2 [bb3,d4]@4 bb3@4 ab4@3 ~ ab4@4 [bb3,db4,f4,ab4]@4 bb3@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,c4,eb4,g4]@2 [bb3,c4,eb4,g4]@4 [c4,eb4]@4 eb4@2 [b3,eb4]@4 [ab3,b3,eb4,f4]@4 [ab3,b3,eb4,f4]@4 [ab3,f4]@2 [bb3,db4]@16 eb4@16 [f3,ab3,c4,eb4]@16, [f3,g3]@6 [f3,g3,d4]@16 bb3@9 eb4@9 ~@16, [bb3,d4]@2 f4@6 [bb3,db4,f4]@4 ~@2 [db4,ab4]@10 [ab3,f4]@3 ~@4 b3@16 ~@9, ~@2 [bb4,d5]@14 c4@3 ~@3 g4@10 [ab3,f4]@16 ~@8, ~ g4@6 f4@5 c4@8 [gb3,bb3,db4]@8]/7", // Bb Bbm7 Eb Cm7 Cm B Fm7b5 Db …
  R: "[~@2 [ab4,c5,eb5,g5]@2 ~@10 f3@2 bb3@16 db4@16 eb4@16 [f3,ab3,c4,eb4]@10 [f3,ab3,c4,eb4]@3 f3@3 bb3@16 [ab3,bb3,db4,f4]@16, c4@32 [ab3,bb3,f4]@32 ~@13 [c4,eb4]@32 ~@3, eb4@3 eb4@2 eb4@2 eb4@16 ~ [db4,gb4,bb4]@16 [f3,g3,d4]@16, ~ [ab4,c5,eb5,g5]!2 [ab4,c5,eb5,g5]@8 ~@17, ~@16 [f3,g3,d4]@32 ~@29 ab3@19 ~@16]/7", // Abmaj7 Fm7 Bbm7 Bb7 Cm Gb G7 Abmaj7 …
  S: "[eb4@32 ~@4 eb4@4 eb4@3 eb4@21, [ab3,c4]@47 ~@17, f3@9 f3@7, ~@8 eb4 ~@7, ~@17 [ab4,c5,eb5,g5]@15]/4", // Ab Abmaj7
  T: "[~@3 bb3 bb3@4 eb4@4 ~@4 bb3@4 bb3@4 [bb3,c4,eb4,g4]@4, g3 [bb3,d4] eb3@8 ~@2 [ab3,b3,eb4,f4]@8 ~@8, [f3,bb3,d4] f4 f3@14 [bb3,c4,g4]@16 [f3,g3,d4]@16 ~@8, ~ [bb4,d5]@7 [db4,f4,ab4]@16 ~@16 [db4,f4,ab4]@16, ~ g4@5 d4@16 ~@34]/7", // Cm7 Bb Fm7b5 Bb C7 G7 Bb Db
  U: "[~ bb3 bb3 eb4 ~ bb3 bb3 [bb3,c4,eb4,g4], [ab3,b3,eb4,f4] [db4,f4,ab4] [ab3,b3,eb4,f4] [db4,f4,ab4], ~ [f3,g3,d4]@2 [bb3,c4,g4]@2 [f3,g3,d4]@2 ~]/8", // Cm7 Fm7b5 Db Fm7b5 Db G7 C7 G7
  V: "[~ bb3 bb3 [bb3,c4,eb4,g4], [ab3,b3,eb4,f4] [db4,f4,ab4], ~ [eb3,g3,d4]@2 ~]/4", // Cm7 Fm7b5 Db Ebmaj7
  W: "[[ab3,b3,eb4,f4]@2 [ab3,b3,eb4,f4]@2 [ab3,b3,eb4,f4]@2 [ab3,b3,eb4,f4]@2 [ab3,eb4,f4]@2 [ab3,eb4,f4]@2 f4@4 [f4,g4,bb4,d5]@3 [f4,g4,bb4,d5]@3 ~@2 d4@4 f4@4 ab4@9 ab4@3 ~@14 g4@2 eb5@4 [ab3,eb4,f4,ab4,b4,eb5,f5]@2 [ab3,eb4,f4,ab4,b4,eb5,f5]@4 [ab3,eb4,f4,ab4,b4,eb5,f5]@2 [ab3,eb4,f4,ab4,b4,eb5,f5]@4 [ab3,b3,eb4,f4,ab4,b4,eb5,f5]@32 ~@4, ~@4 b3@2 [ab3,b3,eb4]@8 bb4@8 [ab4,f5]@2 [eb4,g4]@2 [bb4,c5,eb5,g5] [eb4,g4] [bb4,c5,eb5,g5] eb4 [g4,bb4,c5,g5]@16 ~@10, ~@8 [f3,g3]@6 g4@2 [db4,f4]@16 b3@3 b3@3 ~@18, ~@4 c4@3 [d4,d5]@4 c5 [bb3,c4]@8 ~@8, ~@8 [bb3,d4]@3 [f4,g4,bb4,d5] bb3@4 c4@6 [db5,ab5]@16 ~@18]/7", // Fm7b5 Fm7 Gm7 Fm7b5 Abm Db Eb Cm7 …
})).s("gm_piano").gain(0.17).pan(0.3)

// chords · string ensemble 1 · "CHORD AUT."
const string_ensemble_1 = note(`<
  ~@4 A B@3 C@2 D@2 E@6 F@5 G@7 H@2 I@8 J K@8 L M@8 N@3 O@5 P@4 Q@4 R@4 Q@4 S T@3 U@4 V@4
>`.pickRestart({
  A: "~@10 ab4 ~@5", B: "[[db5,f5,ab5]@4 bb4 bb4@3 [ab4,b4,f5]@4, c5@2 ~, ~ eb5@2, ~ g5 ~]/3",
  C: "[g4 g4@3 [db5,f5,ab5]@4, bb4, [f4,d5] ~]/2", D: "[[bb4,c5,g5] [ab4,b4,f5], eb5]/2",
  E: "[[f4,g4,d5]@8 [db5,f5,ab5]@8 [c5,g5]@8 [ab4,b4]@8 ~@5 e5@2 [gb4,eb5]@9, bb4@24 f5@13 ~@11, ~ eb5 [bb4,db5], ~@32 ab4@7 ~@9]/6", // G7 Db C5 Abm Ebm Bbm
  F: "[[f4,c5]@3 eb5@2 eb5@6 eb5@2 eb5@2 eb5 [g4,d5]@8 [ab4,f5]@8 [eb5,gb5,bb5]@8, ab4@2 bb4@2 ~, ~@3 [f4,c5]@8 f4@13 ~@16, ~@22 c5@11 ~@15 db5@32]/5", // F5 G5 Db Ebm F5
  G: "[~@10 eb5@3 eb5@3 [g4,d5]@16 [db5,f5]@16 eb5@22 ~@26 g6@6 f6@2 [c6,g6]@6 ~@2, f4@2 ab4@5, [ab4,c5] bb4@2 [f4,c5]@4, ~@5 eb5@3, ~@48 [ab5,c6,eb6]@7 ~]/7", // G5 Db C5 Ab F5 Ab
  H: "[[f4,g4,d5] [db5,f5,ab5], bb4]/2", // G7 Db
  I: "[[bb4,c5,g5]@8 b4@8 ~@5 e5@2 [gb4,bb4]@10 ~@8 eb5@7 [g4,d5]@8 [ab4,db5,f5]@8, eb5@16 db5@17 ~@31, ~@8 ab4@15 ~@10 f4@23 ~@8, ~@8 f5@13 ~@2 eb5@18 ~@23, ~@16 bb4@7 ~@10 [ab4,c5]@15 bb4@16]/8", // C7 Gb G5 Db Ab
  J: "[eb5,gb5,bb5]", // Ebm
  K: "[~@10 eb5@3 eb5@3 [g4,d5]@16 [db5,f5]@16 f4@22 ~@2 eb5@19 ~@5 c6@3 c6@3 [c6,f6]@2 c6@2 ~ [ab5,c6]@3 [ab5,c6,eb6,f6]@2 ~@4 [f5,g5,bb5,d6]@6 ~@6, f4@16 ab4@35 eb6@4 ~ [g4,bb4,d5]@8, [ab4,c5]@8 bb4@16 c5@28 g6@3 ~@9, ~@48 eb5@24 ~@19 eb5@16 [ab4,c5,eb5]@6 ~@15, ~@70 f4@26 [ab5,eb6,g6]@3 f4@8 f4@21]/8", // G5 Db F5 Ab Fm7 Gm7 Gm Ab …
  L: "[db5,f5,ab5]", // Db
  M: "[g5@2 g5@14 ~@32 gb4@16 ~@18 [ab5,c6,eb6,g6] ~ [ab5,c6,eb6,g6]@3 ~ [ab5,c6,eb6,g6]@4 ~@2 eb5@2 [g4,d5]@16 [ab4,db5,f5]@16, eb5@8 ~@4 eb5@11 ~@9, c5@9 b4@7 [bb4,db5]@16 [ab4,c5]@16 bb4@16, bb4 ab4@2 ~ f4@3 ~, ~@8 f5@3 f5@13 ~@22 [ab5,c6,eb6,g6]@2 ~@16]/8", // Abmaj7 G5 Db Bbm Ab Abmaj7
  N: "[[db5,gb5,bb5]@16 ~@13 eb5@3 [g4,bb4,d5]@16, eb5@29 ~@19, ~ f4@2, ~ [ab4,c5] ~]/3", // Gb Gm Ab
  O: "[[bb4,db5,f5]@16 ~@36 eb5@12 eb5@3 ~@3 [c6,f6]@2 c6@3 c6@3 ~@2, ab4@64 [c6,g6]@3 eb5@5 g6@6 ~@2, ~@2 [f4,c5]@6 [f4,c5] [f4,ab4,c5,eb5], ~@8 eb5@17 eb6@6 ~ eb6@7 ~, ~@25 [ab5,c6,g6]@7 ab5@8]/5", // Bbm F5 C5 F5 Fm7 Abmaj7
  P: "[~ eb4 [db5,f5,ab5]@2 [c5,g5]@2 [ab4,b4,f5]@2, bb4@3 ~, [g4,d5] ~@3, ~ [f5,g5,bb5,d6]@5 ~@10 eb5@16]/4", // Db C5 Fdim G5 Gm7
  Q: "[[f4,g4,d5] [db5,f5,ab5] [c5,g5] [ab4,b4,f5], bb4@3 ~, ~ eb5]/4", // G7 Db C5 Fdim
  R: "[[f4,g4,d5]@16 [db5,f5,ab5]@16 [c5,g5]@15 ~ [ab4,b4,f5]@16, bb4@23 ~@9, ~ eb5]/4", S: "[eb4,g4,bb4,d5]",
  T: "[[db5,f5,ab5]@8 [c5,g5]@8 f5@2 f5 eb5@2 eb5@3, bb4@2 b4, ~@8 eb5@11 ~@5, ~@16 ab4@3 [ab4,f5]@5]/3", // Db C5 Db
  U: "[[f5,d6]@3 d6@13 ab5@12 [ab5,c6,db6,f6,ab6]@4 ~@4 [bb5,c6,eb6,g6]@2 ~@2 [c6,g6]@4 [g5,c6,g6]@4 [f5,ab5,b5,eb6,f6]@2 [f5,ab5,b5,eb6,f6]@6 [f5,ab5,b5,eb6,f6]@4 [f5,ab5,b5,eb6,f6]@4, [f4,g4,bb4,d5,g5,bb5] c5@2 ~, c5 ~@2 f5@29 eb5@18 eb5@14, ~ db5 bb4 [ab4,b4], ~@16 g5@3 g5 [bb5,eb6]@4 ~@8]/4", // Dm Dbmaj7 Cm7 C5 Fm7b5 Gm7 Abm Eb5
  V: "[[f4,g4,bb4,d5]@63 ~, [f5,g5,bb5,d6]@7 ~@25]/4", // Gm7
})).s("gm_string_ensemble_1").gain(0.09).pan(0.3)

// other · synth brass 2 · "PART 8"
const synth_brass_2 = note(`<
  ~@5 A@2 B@2 C D E@2 ~@15 F G H@2 I@2 J@4 K L M N O P@4 Q R ~@5 S@3 T@2 U V W@4 X Y A@2 B@2 C D E@2 Z AA AB AC AD AE
  AF@2 ~@6 AG AH AI AJ ~
>`.pickRestart({
  A: "[~@8 bb3@2 c4@2 eb4 ~ f4@4 eb4@6 ~@8]/2", B: "[~@4 g3 f3 eb3 g3@4 ~@5, ~@8 gb3 ~@23]/2",
  C: "~@2 bb3@2 c4@2 eb4 ~", D: "f4@2 g4 f4 eb4@4 ~@8", E: "[~@8 g3@2 f3@2 eb3@2 eb3@7 ~@11]/2",
  F: "~@2 g4@3 f4@2 ~ eb4@3 c4@3 ab3@2", G: "g3@2 ~ g3@3 f3@2 g3@2 ~ g3@2 f3@2 ~",
  H: "[g3 bb3@3 g3 ab3 g3 bb3@6 ab3 g3 ab3, gb3 ~@31]/2",
  I: "[g3@3 f3@3 f3@7 ~ g3 ~ g3@3 f3@3 f3@5 ~ f3@2 gb3@2, ~@15 ab3@2 ~@15]/2",
  J: "[f3@3 eb3@3 eb3@18 bb3@2 ab3@2 gb3@2 bb3@34]/4", K: "~@2 eb4@2 eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~ eb4 ~",
  L: "eb4@4 db4 ~ db4@8 ~@2", M: "~@2 bb3@2 bb3 ~ bb3 ~ bb3@2 ab3@2 gb3@2 ab3@2", N: "bb3@4 db4@2 bb3@7 ~@3",
  O: "~@2 eb3@2 eb3 ~ eb3 ~ eb4@2 eb4 ~ eb4 ~ eb4 ~",
  P: "[eb4@4 db4 ~ bb3@4 ab3 ~ gb3@2 f3@4 bb3@2 bb3 ~ bb3@2 c4@2 eb4@2 c4@2 f4@20 ~ g4@3 f4@3 eb4@2 c4@3 bb3@2]/4",
  Q: "g3@2 g3@3 ~ f3@2 g3@2 ~ g3@3 f3@2", R: "gb3 ~ bb3@2 ~@12, ~ g3@2 ~@13", S: "[~ bb3@6 bb4@10 eb5!7]/3",
  T: "[eb5@2 db5 db5@6 ~ bb4!3 ab4 gb4 ab4]/2", U: "bb4@4 db5@2 bb4@7 ~@3",
  V: "~@2 eb4@2 eb4 ~ eb4 ~ eb5 ~ eb5 ~ eb5 ~ eb5@2",
  W: "[eb5@4 db5@2 bb4@4 ab4@2 gb4@3 f4@3 ~ bb4 bb4@2 bb4@2 c5@2 eb5@2 c5@2 f5@20 ~ g5@3 f5@2 eb5@3 c5@3 bb4@2]/4",
  X: "g4@2 ~ g4@3 f4@2 g4@2 ~ g4@3 f4@2", Y: "g4 bb4@2 ~@5", Z: "~@8 bb3@2 ~ c4@2 eb4@3", AA: "f4@2 eb4@5 ~@9",
  AB: "~@8 g3@2 f3@3 eb3@3", AC: "g3@7 ~@9", AD: "~@4 bb3@4 c4@4 eb4@3 ~", AE: "f4@2 ~ [f4,g4] eb4@4 ~@8",
  AF: "[~@8 g3@2 f3@2 eb3@3 g3@9 ~@8]/2", AG: "~@10 ab3@2 g3@2 f3 ~", AH: "g3 g3@14 ~, ~ ab3 ~@14",
  AI: "~@10 db5 d5@3 bb4@2", AJ: "~@2 g4 ab4 g4@12",
})).s("gm_synth_brass_2").gain(0.25).pan(0.2)

// chords · piano · "ACC. 1"
const piano_3 = note(`<
  A B C D E F G H I J K L M N K L O P Q R S T U V M T W X Y Z S AA K L AB P AC X AD T U AE S T AF X Y AG S N AH AI AJ AK
  AL X S T U AM M T W X Y AN AO AP AQ@2 AO AR AS@2 AO AR AT AU AO AV AW@2 AO AR AS@2 AO AX AY@2 AZ@4
>`.pickRestart({
  A: "~@15 ab3, f5 f5@2 f4@2 ~@2 f4, ~ [f3,d5]@7 [f3,ab3,c4]@8, ~ bb4@3, ~ d4 ~ d4", // Dm Fm
  B: "bb4@3 ~@2 g3 [f3,ab3,c4,f4,g4]@10, [g3,f4]@3 ~@5, d4@2 ~ bb3@3 ~@10, ~ bb4@3", // Fm G7
  C: "f4@2 ~@2 d6@2 ~@6 f5 ~ g5@2, d5@3 [ab3,c4,bb4,bb5]@5, ~ f5@2 [f4,f5]@3 f4@2, ~@10 g5@3 f5@3", // Ab F
  D: "[f3,f5,g5]@2 [g3,c5,f5,ab5] ~ [ab3,ab4,f5] ~ [bb3,f4,ab4]@6 ~@2 [f4,ab4] ~, bb4 ~@5 c5@9 ~, ~@12 [bb3,f4,ab4]@3 ~, ~@13 g4@2 ~", // Fsus2 Fm Db Bb7 Fm Bb7
  E: "[bb3,d4,f4,g4,bb4]@2 ~@8 [g3,bb3,d4,f4] [f3,ab3,c4] ~@4", // Gm7 Fm
  F: "[f3,ab3,db4,f4]@2 [f3,ab3,db4,f4] ~@7 [f3,ab3,db4,f4]@4 ~@2", G: "[c4,eb4,g4,bb4]@3 ~, [f3,ab3] ~@15",
  H: "[b3,eb4,f4,ab4]@2 [b3,eb4,f4,ab4] ~@7 [eb4,f4,ab4,b4]@5 [bb4,eb5,f5]", // Fm7b5 Bbsus4
  I: "[d4,f4]@9 ~ [g3,bb3,d4,f4] ~@5, [b3,bb4] ~@15", // Dm Gm7 Bmaj7
  J: "[g3,ab3,db4,d4] ~ [f3,ab3,db4,f4] ~@7 [f3,ab3,db4,f4]@4 ~@2, [f3,f4] ~@7", // Db F
  K: "[c4,eb4,g4,bb4]@3 ~, [db3,f3,ab3] ~@15", // Cm7 Db
  L: "[bb3,b3,d4,f4,g4,ab4] ~ [b3,eb4,f4,ab4] ~@7 [eb4,f4,ab4,b4]@5 [bb4,eb5,f5], eb4 ~@7", // Bb7 Fm7b5 Bbsus4
  M: "[g3,d4,f4]@9 ~ [g3,bb3,d4,f4] ~@5", // G7 Gm7
  N: "[g3,ab3,db4,d4,bb4,d5] ~ [f3,ab3,db4,f4] ~@7 [f3,ab3,db4,f4]@4 ~@2, f4 ~@7", // Gm Db
  O: "[f4,ab4]@9 ~ [bb3,db4,e4,f4,ab4] ~@5, [b3,bb4] ~@15", // Fm Bbm7 Bmaj7
  P: "[gb3,bb3,eb4,gb4]@2 [gb3,bb3,eb4,gb4] ~@7 [gb3,bb3,eb4,gb4]@4 ~@2", // Ebm
  Q: "[bb3,db4,ab4] ~@9 eb4@2 ~@4, [c4,g4]@3 ~, eb4@10 f4 ~@5", // Bbm7 C5
  R: "[eb4,g4,c5]@2 [eb4,g4,ab4,c5] ~@7 [g4,ab4,c5,eb5]@4 [eb5,f5] ~, ab4 ~@15", // Cm Abmaj7 Ebsus2
  S: "[ab3,eb4,g4] ~@9 [g3,bb3,d4,f4] ~@5, [d4,f4]@9 ~@7", // Abmaj7 Gm7 Dm
  T: "[f4,bb4]@2 [db4,f4,bb4,db5] ~@7 [db4,f4,bb4,db5]@4 ~@2, [d4,d5] ~@15", // Bb5 Bbm D
  U: "[db3,f3,ab3,c4] ~@15, [gb3,bb3,db4]@3 ~", // Dbmaj7 Gb
  V: "[db4,eb4,f4,gb4,g4,ab4,bb4,c5] ~ [eb4,g4,ab4,c5] ~@7 eb5@3 [eb5,f5] ~@2, ~@10 [g4,ab4,c5]@5 ~", // Dbmaj7 Abmaj7 Ebsus2 Abmaj7
  W: "[ab3,c4,eb4,g4]@3 ~, [db3,f3] ~@15", X: "[eb4,g4,ab4,c5]@2 [eb4,g4,ab4,c5] ~@7 [g4,ab4,c5,eb5]@5 ~",
  Y: "[ab3,eb4,g4]@9 ~ [ab3,c4,eb4,g4] ~@5", Z: "~@2 [ab3,g4,c5,eb5] ~@2 [eb4,ab4,c5] ~@2 [eb4,ab4]@7 ~",
  AA: "[f3,ab3,db4,f4]@2 [f3,ab3,db4,f4] ~@7 [f3,ab3,db4,f4]@4 ~@2, [g3,d4] ~@15", // Db G5
  AB: "[bb3,f4,ab4]@9 ~ [bb3,db4,e4,f4,ab4] ~@5", AC: "[bb3,db4,ab4] [c4,g4]@5 ~@2, eb4@3 ~",
  AD: "~@4 [g3,bb3,f4,bb4] [g3,f4] ~ [g3,bb3,f4,bb4]@9", // Gm7 G7 Gm7
  AE: "[db4,f4,gb4,g4,ab4,bb4] ~ [eb4,g4,ab4,c5] ~@7 [g4,ab4,c5,eb5]@5 ~, [eb4,c5] ~@7", AF: "[ab3,c4,eb4,g4]@3 ~",
  AG: "~@2 [ab3,c4,g4,bb4,c5,eb5,g5] ~@2 [eb4,ab4,c5] ~@2 [eb4,ab4]@7 ~", // Abmaj7 Ab Ab5
  AH: "[db3,f3,ab3] ~ eb4@10 ~@4, [c4,g4,bb4]@3 ~, eb4@2 f4 ~@13", // Db C7
  AI: "[bb3,d4,f4,g4] ~ [b3,eb4,f4,ab4] ~@7 [eb4,f4,ab4,b4]@5 [bb4,eb5,f5], [c4,eb4,ab4] ~@7", // Gm7 Fm7b5 Bbsus4 Ab
  AJ: "[f4,ab4]@9 ~ [bb3,db4,f4,ab4] ~@5, [b3,bb4] ~@15", AK: "~@6 [gb3,bb3,db4,eb4]@9 [ab4,bb4]",
  AL: "[c4,eb4,g4]@3 ~, [bb3,db4,ab4] ~@15", // Cm Bbm7
  AM: "[db4,eb4,f4,gb4,g4,ab4,bb4,c5] ~ [eb4,g4,ab4,c5] ~@7 [g4,ab4,c5,eb5]@5 ~", // Dbmaj7 Abmaj7
  AN: "[ab3,c4,eb4,ab4] [ab3,ab4] ab4 [eb4,ab4,c5]@3 [ab3,ab4] ~@9", AO: "~@7 [g4,bb4,d5,f5] ~@8",
  AP: "[c4,f4,ab4,bb4,d5] [c4,f4,bb4] [c4,f4,ab4] ~@3 [ab3,c4,f4]@5 ~ db4@2 ~@2", // Bb7 Fsus4 Fm
  AQ: "[[f3,ab3,c4,db4,f4] ~@4 c4 [c4,eb4,g4,bb4,c5,eb5] ~@7 [c4,g4,bb4,c5] ~ [ab3,b3,f4]@15 [eb4,b4], [bb4,c5,eb5]@5 ~@9 eb4@2 ~@16, ~@15 [g3,bb3]@2 ~@15]/2", // Dbmaj7 Cm7 C7 Fdim Abm Cm7 Gm
  AR: "[c4,f4,ab4] [c4,f4,bb4] [c4,f4,ab4] ~@3 [ab3,c4,f4]@6 db4@2 ~@2", // Fm Fsus4 Fm
  AS: "[[bb4,c5,eb5]@5 c4 [c4,eb4,g4,bb4,c5,eb5] ~@7 [c4,g4,bb4,c5] ~ [ab3,b3,f4]@15 [eb4,b4], [eb4,g4] ~@13 eb4@2 ~@16, ~@15 [g3,bb3]@2 ~@15]/2", // Cm7 C7 Fdim Abm Eb Gm
  AT: "[bb4,c5,eb5]@5 c4 [c4,eb4,g4,bb4,c5,eb5] ~@7 [eb4,g4,c5]@2, [eb4,g4] ~@13 [c4,bb4] ~", // Cm7 Cm Eb C7
  AU: "[ab3,b3,f4]@15 [eb4,b4]", AV: "[c4,f4,ab4] [c4,f4,bb4] [c4,f4,ab4] ~@3 [ab3,c4,f4]@6 db4 ~@3",
  AW: "[[f3,ab3,c4,db4,eb4,f4,g4] ~@4 c4 [c4,eb4,g4,bb4,c5,eb5] ~@7 [c4,g4,bb4,c5] ~ [ab3,b3,f4]@15 [eb4,b4], [bb4,c5,eb5]@5 ~@9 eb4@2 ~@16, ~@15 [g3,bb3]@2 ~@15]/2", // Fm7 Cm7 C7 Fdim Abm Cm7 Gm
  AX: "[c4,f4,g4,ab4] [c4,f4,c5] [c4,f4,ab4] ~@3 [ab3,c4,f4]@6 db4 ~@3", // Fm F5 Fm
  AY: "[[bb4,c5,eb5]@5 c4 [c4,eb4,g4,bb4,c5,eb5] ~@7 [c4,g4,bb4,c5] ~ [ab3,b3,f4]@8 [ab3,b3,f4]@7 ~, [eb4,g4] ~@13 eb4@2 ~@8 [eb4,ab4,b4] ~@7, ~@15 [g3,bb3]@2 ~@15]/2", // Cm7 C7 Fdim Eb Abm Gm
  AZ: "[[bb3,db4,ab4] ~@3 [f4,f5]@2 ~@8 [g3,f4]@2 ~@8 c4@2 c4@3 f4@2 [bb2,f4]@4 ~@6 bb4@21 ~@2, ~@2 f5@2 ~@2 g3@8 ~@2 [ab3,c4]@8 bb2@7 ~@4 [bb2,g3]@27 ~@2, ~@3 d5@3 bb4@12 bb4@2 bb4@4 ~@40, ~@6 [bb3,d4]@6 [bb3,d4]@4 ~@3 ab4@5 ab3@5 [f3,ab3,c4]@7 [bb3,d4,f4,g4]@26 ~@2, ~@10 f4@4 ~@2 f4@6 f4@7 ~@35]/4", // Bbm7 F G7 Bb5 Ab Eb Bb Fm …
})).s("gm_piano").gain(0.22).pan(0.3)

// chords · piano · "ACC. 1" · soft notes
const piano_soft = note(`<
  A B C D ~@4 E ~@3 F G ~@2 H ~ I ~ J K L ~ F K ~@2 M N O ~@3 P ~ Q ~ R K L ~ J K ~@2 M S T G ~@2 H ~ I ~ O K L ~ F K
  ~@2 M U ~ V ~@3 V ~@3 V ~@3 V ~@3 V ~@3 V ~@2 W ~ X@2
>`.pickRestart({
  A: "~@3 bb3@5 ~@2 f4@4 ~@2, ~ f4@5 ~@10", B: "bb3 ~ d4@4 ~@10, ~ bb3@2 ~@13",
  C: "~@3 f4@3 ~@9 ab3, [g3,bb3,d4]@3 ~@5", D: "~@11 f4 ~@4, ~@10 c4@5 ~", E: "[g3,bb3]@9 ~@7, eb4 ~@15",
  F: "bb3@9 ~@7", G: "f3 ~@7", H: "[bb3,db4]@9 ~@7, eb4 ~@15", I: "ab3@3 ~", J: "[g3,bb3] ~, c4 ~@15",
  K: "db5 ~@7, db4 ~@15", L: "eb3@3 ~", M: "c4@9 ~@7", N: "~@8 [f3,c4]@7 ~", O: "[g3,bb3]@9 ~@7, c4 ~@15",
  P: "db4@9 ~@7", Q: "~ ab3@5 ~@2", R: "~@5 [bb3,bb4] ~@10", S: "~@8 f3@3 f3@4 ~, ~@8 c4@7 ~, ~@11 g3 ~@4",
  T: "c4 [g3,bb3]@8 ~@7", U: "~@2 ab3 c4@3 [c4,eb4] ~@9", V: "~@12 [f3,ab3] ~@3", W: "[f3,ab3]@3 ~@5, f4 ~@3",
  X: "[~@7 d6@8 ~, ~@11 f5@19 ~@2, ~@6 g5@9 ~]/2",
})).s("gm_piano").gain(0.11).pan(0.3)

// other · electric guitar muted · "ACC. 2"
const electric_guitar_muted = note(`<
  ~@2 A B ~@9 C D E F G H I J K L M J K N I N O ~@9 P Q M J K R I S O ~@8 J K L M J K R I N T U V W X Y Z W X Y Z AA AB
  Y Z W AC U Z W X Y AD W AE ~@2 AF ~
>`.pickRestart({
  A: "~@4 bb4@11 ~", B: "~@2 [c4,ab4] ~@13", C: "~@2 bb3@2 ab3@2 f3 ~ c4@2 db4@4 ~@2", D: "~@10 ab4@2 g4@2 eb4 ~",
  E: "[c4,db4] ~ db4@2 b3@2 ab3 ~ [db4,eb4]@2 ab4 ~@5", F: "~@10 gb4 ~ e4@2 db4 ~",
  G: "b3 ~ b3@2 bb3@2 gb3 ~ db4@2 eb4@4 ~@2", H: "~@10 [f4,g4] ~ eb4@2 c4 ~",
  I: "f4@2 f4@2 eb4@2 c4 ~ [f4,g4]@2 c5 ~@5", J: "~@10 eb4 ~ d4@2 bb3 ~",
  K: "[gb4,g4] ~ gb4@2 f4@2 db4 ~ ab4@2 bb4@4 ~@2", L: "~@10 b3@2 bb3@2 gb3 ~",
  M: "[eb4,f4] ~ f4@2 eb4@2 c4 ~ [f4,g4]@2 c5 ~@5", N: "~@10 f4 ~ eb4@2 c4 ~", O: "~@9 g4 ~ f4 g4!2 f4 ~",
  P: "~@2 gb4@2 f4@2 db4 ~ ab4@2 bb4@4 ~@2", Q: "~@10 b3 ~ bb3@2 gb3 ~", R: "~@10 f4@2 eb4@2 c4 ~",
  S: "~@10 f4 [f4,g4] eb4@2 c4 ~", T: "~@8 g4!3 f4 g4@2 f4 ~", U: "~@4 f4!2 eb4 f4 ~ f4 ~@2 f4@2 eb4 ~",
  V: "[c4,f4] c4 ~@2 c4 ~@2 c4 ~ c4 bb3 f3 c4 ~ db4 ~", W: "~@4 bb4!2 ab4 bb4 ~ bb4 ~@2 bb4@2 ab4 c4",
  X: "[d4,eb4] eb4 db4 eb4 ~ db4 ~ eb4 ~ eb4 db4 ~ eb4 ~ f4 b4", Y: "~@4 f4!2 eb4 f4 ~ f4 ~@2 f4@2 eb4 g4",
  Z: "c4!2 ~@2 c4 ~@2 c4 ~ c4 bb3 f3 c4 ~ db4 ~", AA: "~@4 bb4!2 ab4 bb4 ~ bb4 ~@2 bb4@2 ab4 ~",
  AB: "eb4!2 db4 eb4 ~ db4 ~ eb4 ~ eb4 db4 ~ eb4 ~ f4 b4", AC: "d4 eb4 db4 eb4 ~ db4 ~ eb4 ~ eb4 db4 ~ eb4 ~ f4 b4",
  AD: "c4!2 ~@2 c4 ~@2 c4 ~ c4 bb3 f3 c4 ~ db4 f4", AE: "[d4,eb4] eb4 db4 eb4 ~ db4 ~ eb4 ~ eb4 db4 ~ eb4 ~ f4 ~",
  AF: "~@2 a4 ab4 ~@12",
})).s("gm_electric_guitar_muted").gain(0.25).pan(0.4)

// other · electric guitar muted · "ACC. 2" · soft notes
const electric_guitar_muted_2 = note(`<
  A B C@2 ~@9 D ~@3 E ~@3 F ~@3 F ~@3 G ~@9 F ~@3 F ~@3 G ~@9 F ~@3 F ~@4 H I J ~ H I J ~ H I J ~ H I J ~ H I J ~ H I J
  ~ K@4
// … 168 more lines

More by Roberta Flack