Strudelify
It Might Be You (Theme From "Tootsie") cover art

It Might Be You - EP

It Might Be You (Theme From "Tootsie")

Stephen Bishop

KeyF majorTempo86 bpm
0:00/0:00
// It Might Be You (Theme From "Tootsie") — Stephen Bishop
// 86 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(86/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 · electric guitar jazz · "G.T"
const electric_guitar_jazz = note(`<
  A B C D E F G H I J K L M N O P Q R S ~ T@2 U@2 V W X Y Z AA AB ~ AC AD AE ~ AF AG AH ~ AI AJ AK AL AM AN AO AP AQ AR
  AS AT AU AV AW AX AY ~ AZ BA BB@2 BC Y BD BE BC BF BG@2 BH BI BJ BK BL BM BN@2 BO@3 BP BQ BR BS BT BU@2 BV BW BX BY BZ
  CA CB CC@2 CD ~@2
>`.pickRestart({
  A: "~@7 c5, ~@3 a5", B: "~ a4@7, e5", C: "~@5 f5@3, d5@3 d5@5, ~ f4@7, ~ bb4@3", D: "~ c6, g5, ~ c5@7",
  E: "~@5 c5@3, a5, ~ c5@4 ~@3, ~ f5@3, ~ a4", F: "~ a4, ~ a4@3 ~@4, ~ e5@3, ~@3 c5@5", G: "~@3 bb4, d5, ~ f5@7",
  H: "~@5 e5@3, c5, ~ g4@7", I: "~@7 c5, a4, ~ c5@6 ~, ~@2 f5@3 f5@3, ~ e5", J: "~@3 c5, a4@5 a4@3, ~ c5@5 ~@2",
  K: "~ d5@3, bb4, ~ f4@7", L: "~ g4@7, d5@15 ~", M: "~@3 f5@5, f4, ~ a4@7, ~ c5@3",
  N: "~@4 a4 [a4,c5]@3, e5, ~ c5@4 ~@3, ~@3 e4@5", O: "~@2 bb4@5 bb4, d5, ~ f4@7", P: "~@5 bb4@3, d5, ~ g4",
  Q: "~ a4@3, c5", R: "c5@2 ~@3 c5@3, a4, ~@2 c5@3 ~@3, ~@3 e5@5", S: "~@5 d5@3, d5@5 ~@3, ~@3 f4@5, ~ bb4",
  T: "[~@13 g4@3, ~ a4@3 ~@2 e4@2, ~@3 c5@5 ~@8, ~ d5 e5@2, ~@7 f5@9]/2", U: "[~ d5@6 ~ b4@8, a4@7 c5@9]/2",
  V: "~@6 f5@9 ~, ~@2 g4@13 ~, ~@4 d5@11 ~", W: "~@3 e5@5, e4, ~ g4@7, ~ c5@3", X: "~@3 f5@5, ~ f4@7, ~ bb4@3",
  Y: "~ c5@7, g4", Z: "~ a5, f4, ~ a4@7, ~ c5@3, ~@3 f5@5", AA: "~@3 a4@5, e5, ~ a4@2 ~@5, ~ c5@3",
  AB: "~@5 d5@3, ~ d5@4 ~@3, ~ f4@3, ~@3 c5@5", AC: "~@5 f5@3, c5, ~@3 a5@5",
  AD: "~@3 a4, e5, ~ a4@5 ~@2, ~ c5@3, ~@5 g4@3", AE: "~@5 bb5@3, d5, ~ f5", AF: "~@7 f5, g5@3 g5, ~@3 c6@5, ~@5 c5@3",
  AG: "~@5 a4@3, e5", AH: "~ f5, f5 ~, ~ d5@7, ~ a5@3, ~@3 g5@5", AI: "~@3 bb5@5, ~ d5@7, ~ g5@3",
  AJ: "~ c5, g5, ~ c5@3 ~@4, ~ e5@3, ~@3 d5@5", AK: "~@3 d6@5, g5, ~ d5@7, ~ bb5@3", AL: "~ g5, g5 ~, ~ c5@7, ~@3 a5@5",
  AM: "~@5 f5@3, f5@5 ~@3, ~@3 a4@5, ~ d5", AN: "~@12 a5@2 c6 ~, ~@10 f5@5 ~", AO: "~@5 e5@3, a5, ~@3 g5@5, ~ c5",
  AP: "~@3 d6@5, ~ g5@7", AQ: "~@5 d5@3, bb5, ~ d5@4 ~@3, ~ f5@3, ~@3 g5@5", AR: "~@7 bb5, ~@5 db6@3, ~@3 f5",
  AS: "~@5 g5@3, a5, ~ c5@3, ~@3 f5@5", AT: "~ g5@4 g5@3", AU: "~ f5@3, a5, ~ d5@7", AV: "~ g5, ~ b5@3, ~@3 d6@5",
  AW: "~ e5, e5 ~, ~ g4@7, ~ c5@3, ~@3 d5@5", AX: "~@7 g5, g5@7 ~, ~ bb4@7, ~ eb5@3", AY: "f5",
  AZ: "g5 ~@2 f5@5, ~ [bb4,g5]@7, ~ d5@3", BA: "~ c5@3, e5, ~ g4@7",
  BB: "[~@2 c5@6 e5@2 f5@4 ~@12 c5@5 ~, a4@4 ~@3 c5@6 ~@3, ~@22 e4@9 ~, ~@24 a4@7 ~]/2",
  BC: "~@3 d5@5, d5@3 ~@5, ~ f4@7, ~ c5@3", BD: "~@3 f5@5, ~ a4@7, ~ c5@3", BE: "~@3 e5@5, ~ g4@7, ~ c5@3", BF: "~ d5",
  BG: "[~@3 g5@4 ~@6 a4@3, c5@7 c5@9, ~@2 g4@13 ~@5 e4@12, ~@4 e5@11 ~ db5@16, ~@11 g4@5]/2",
  BH: "~@3 d5@5, d5@3 ~@5, ~ f4@7, ~ a4@3", BI: "~ b4@3, f5, ~ d5@7", BJ: "~ a5, d5, ~ g4@7, ~@3 f5@5",
  BK: "~ c5, ~ g5@7, ~@3 g4@5", BL: "~ bb4@3, d5, ~ g4@7", BM: "~@7 g5, e5, ~ g4@7, ~ c5@3, ~@3 f5",
  BN: "[~@11 g4@5, a5 ~, ~ d5@7 ~@8, ~@7 e5@9]/2",
  BO: "[~@7 d5, ~ a4@7 ~ e4@7 ~@3 c5@5, ~@2 c5@5 c5@9 d5@5 ~@3, ~@3 f5@5 ~@2 a4@6 ~@2 a4@6, ~@15 f4@2 f4@7]/3",
  BP: "~@5 d5@3, g4, ~ c5@2 c5@5, ~ g5@3", BQ: "~@7 a5, a4, ~ c5@7, ~@2 a5@5 ~, ~@3 f5@5",
  BR: "~@3 e5, c6, ~ e6@7, ~ g5, ~@5 c5@3", BS: "~@5 d6@3, d6@5 ~@3, ~ f5@7, ~ bb5@3, ~@3 c6@5",
  BT: "~@3 c6@5, c5, ~ e5@7, ~ g5@3", BU: "[~@3 a5, ~@7 e5@3 e5@6, ~@9 a4@7, ~@11 g5@5]/2",
  BV: "~@6 d5@9 ~, d5@3 ~@5, ~@2 f4@13 ~, ~@4 c5@11 ~", BW: "~ d5, d5 ~, ~ g4@7, ~@3 c5@5",
  BX: "~@3 c5@5, ~ a5@7, ~ f5@3", BY: "~@7 f4, ~ a4@7, ~ g5@3, ~@3 e5@5, ~ c5", BZ: "~ bb5, ~ bb4@7, ~ d5@3, ~@3 f5@5",
  CA: "~ g5@3, ~ d6@7", CB: "~@7 c5, ~@3 a4",
  CC: "[~ e5@5 ~@8 d5@2, g5@8 ~ f4@7, ~@3 e5 d5@3 ~, ~@7 c5@9, ~@13 f5@3]/2", CD: "~@3 bb5@4 bb5, ~ g5@7, ~ d6@3",
})).s("gm_electric_guitar_jazz").gain(0.36).pan(0.7)

// chords · piano · "P.N"
const piano = note(`<
  A@7 B@2 ~@36 C@2 D@2 E@3 F G@2 H I@2 ~@2 J@5 K L@2 M N O P Q@2 R@2 S@6 T U V@2 W U X@2 Y U Z@3 U AA@3 ~
>`.pickRestart({
  A: "[~@2 c5@3 f5@3 g5@3 ~ a5@2 f5@4 c5@3 f5@3 g5@3 ~ a5@2 f5@4 c5@3 f5@3 g5@3 ~ a5@2 f5@4 c5@3 d5@3 g5@2 f5@2 d5@2 f5@4 c5@3 f5@3 g5@3 ~ a5@2 f5@4 c5@3 f5@3 g5@4 a5@2 f5@4 c5@3 f5@3 g5@3 ~ a5@2 f5@2, ~@12 g5 ~@15 g5 ~@15 g5 ~@11 f5 ~@3 c5 ~@15 g5 ~@15 g5 ~@15 g5 ~@3]/7",
  B: "[~@2 c5@3 d5@2 ~ [f5,g5] ~ f5@2 d5@2 f5@14 ~@4, ~@12 c5 ~@19]/2", // Fsus2
  C: "[~@4 [a4,d5,f5]@2 [g4,c5,e5]@4 [g4,c5,e5]@4 [e3,a3,c4,e4,a4,c5]@17 ~, [g4,c5,e5]@3 ~@13]/2", // Dm C Am C
  D: "[g4@4 [g4,c5,eb5]@2 [g4,bb4,d5]@4 [g4,bb4,d5]@4 [f4,bb4,d5]@14 [f4,bb4,d5]@3 ~, [bb4,d5]@6 ~@8 [g3,d4]@17 ~]/2", // Cm Gm Bb G5
  E: "[~@10 db5@4 ~@12 c5@2 c5@2 d5 ~@7 g5@6 ~@2 a5@2, [f3,db4,f5]@7 [f3,c4]@16 ~, ~@6 eb5@8 c5@12 ~@6 c5@15 ~, ~@22 f4@9 ~@13 g5@4, ~@24 a4@7 ~@5 f5@11 ~]/3", // Db F5
  F: "~@3 f4@3 f4@2, ~@6 d4@9 ~",
  G: "[[g4,b4,d5]@10 [g4,b4,d5]@4 [e4,g4,c5]@8 [e5,f5] ~ e5@7 ~, d4@14 [e3,g3,c4]@17 ~]/2", // G C Fmaj7 C
  H: "eb4@6 ~@4 bb4@5 ~, bb4@5 ~@3, g4@8 g4@7 ~, ~@6 eb4@9 ~", I: "[[f3,d4,f4,bb4,d5]@31 ~]/2",
  J: "[~@5 [d5,f5]@2 [c5,e5]@2 [c5,e5] ~@2 [c5,e5] ~@2 [e5,g5]@2 [e5,g5] ~@5 [g5,bb5]@2 [bb5,d6]@3 ~@11 g4, ~@4 [c5,e5]@3 ~@3 [d5,f5]@3 [d5,f5]@5 [f5,a5]@3 [f5,a5]@16 ~@3, ~@10 e5@8 ~ f4, ~@20 g5@3 ~@2 g5@15, ~@7 [bb5,d6,f6]@3]/5", // Dm C Em Gm Bb C Dm F …
  K: "[c4,e4,a4]", L: "[[f4,bb4,d5]@15 ~ d5@12 [f4,b4,d5]@4, ~@15 [f4,b4]@13 ~@4]/2", M: "e4@7 e4, [g4,c5]",
  N: "[e4,g4,db5]@3 [e4,g4,db5]", O: "[f4,a4,d5]@15 ~", P: "[f4,g4,b4,d5]@15 ~",
  Q: "[[f4,bb4,d5]@10 [f4,bb4,d5]@3 ~ [c4,e4,g4,c5]@10 [c4,e4,g4]@4 [d4,f4,a4] ~@3, [g3,d4]@13 ~ e3@14 ~@4]/2", // Bb C Dm G5
  R: "[[f4,bb4,d5]@10 [f4,bb4,d5]@4 [c4,e4,g4,c5]@9 ~ [c4,e4,g4] ~@3 [d4,f4,a4] ~@3, [g3,d4]@14 e3@15 ~@3]/2", // Bb C Dm G5
  S: "[[f4,bb4,d5]@10 [f4,bb4,d5]@4 c4@18 ~@14 [c5,e5]@4 [c5,e5]@2 [d5,f5]@4 [c5,e5]@2 [d5,f5]@4 [c5,e5]@4 [e5,g5]@2 [f5,a5]@4 [e5,g5]@2 a5@3 ~ bb5@10 [bb5,d6]@4 [bb5,d6,f6]@4, [g3,d4]@7 [e3,e4,g4]@16 ~@25, ~@7 c5@13 [c5,e5]@3 ~@16 g5@9, ~@8 [f3,c4,a4]@5 ~@11, ~@21 [d5,f5]@5 ~@11 f5@11]/6", // Bb C Dm C Dm C Em F …
  T: "[c4,a4,c5,f5,a5]@7 ~ [c5,e5]@2 [d5,f5]@4 [c5,e5]@2", U: "~ [c5,e5] [d5,f5]@2 [c5,e5] [d5,f5]@2 [c5,e5]",
  V: "[~@2 [c5,e5]@2 [d5,f5]@4 c5@2 d5@4 g5@4 ~@11 a6@3, ~@4 e5@6 bb5 d6@2 f6@3, ~@5 f5@11, ~@7 d5@9, ~@9 g5@7]/2", // C Dm
  W: "[c5,f5,a5]@4 [c5,e5] [d5,f5]@2 [c5,e5]", // F C Dm C
  X: "[~ [c5,e5] [d5,f5]@2 c5 [d5,f5]@2 d5@2 ~@3 f6@4, ~@8 e5@6 bb5@17 ~, ~@14 g5@8 g5@9 ~, ~@18 d5@13 ~, ~@20 d6@11 ~]/2", // C Dm
  Y: "[c5,f5,a5]@7 ~ [c5,e5]@2 [d5,f5]@4 [c5,e5]@2", // F C Dm C
  Z: "[~@2 [c5,e5]@2 [d5,f5]@4 [c5,e5]@2 [d5,f5]@4 ~@14 d5@3 ~ [a5,c6]@7 ~ [c5,e5]@2 [d5,f5]@4 [c5,e5]@2, ~@14 bb5@17 ~@17, ~@16 d5@10 bb4@5 [c5,f5]@8 ~@9, ~@9 g5@7 ~@8, ~@20 bb4@2 f5@9 ~@17]/3", // C Dm C Dm Am C Dm C …
  AA: "[~@2 [c5,e5]@2 [d5,f5]@4 [c5,e5]@2 [d5,f5]@4 ~@2 d5@2 g5 ~@4 bb5 c6 ~ d6@2 ~@4 [f5,a5]@14 ~@2, ~@14 bb5@4 ~@4 g5@4 c6 ~ c6@4 ~@16, ~@15 c5@8 ~]/3", // C Dm C Dm F
})).s("gm_piano").gain(0.42).pan(0.7)

// bass · electric bass finger · "bass"
const bass = note(`<
  A B C D A B C D E F G H E F G I J F G K H L M N O@2 P@2 Q F R S J T U V S W X Y Z@2 AA@2 AB AC AD AE AF AG@2 AH AI
  AJ@2 AK@3 AL@2 AM AD AN AO AP AQ U K AR AS AT AU AV@2 AW@2 AX@2 AY@2 AZ BA BB BC BD BE BF BC AZ BA BB BC BG AO BB BC
  AZ BA BH ~
>`.pickRestart({
  A: "f2", B: "a2", C: "bb2", D: "c3", E: "f1", F: "a1", G: "bb1", H: "c2@15 ~", I: "c2", J: "f1@13 ~ f1@2", K: "b1",
  L: "db2", M: "d2", N: "g1@7 ~", O: "[g1@9 ~ g1@2 ~@2 c2@9 ~ d2@3 ~ d2@4]/2", P: "[g1@8 ~@2 g1@2 ~@2 c2@13 ~ c2@4]/2",
  Q: "f1@13 ~ f1 ~", R: "bb1@13 ~ bb1 ~", S: "c2@11 ~ c2@3 ~", T: "a1@11 ~ a1@4", U: "bb1@11 ~ bb1@4", V: "b1@15 ~",
  W: "db2@11 ~ db2@4", X: "d2@9 ~ d2 ~@3 d2@2", Y: "g1@11 ~@5", Z: "[g1@8 ~@2 g1@4 c2@10 d2@3 ~ d2@4]/2",
  AA: "[g1@9 ~ g1@3 ~ c2@9 ~ db2@4 a1@4]/2", AB: "d2@5 g2 a2 c3", AC: "d3 d2@3 ~ d2@3", AD: "a1@9 ~ a1@6",
  AE: "c2@9 ~ c2@4 a1@2", AF: "g1@11 ~ g1@2 a1@2", AG: "[bb1@6 c2@4 bb1@4 f1@15 ~ f1@2]/2", AH: "[e1,e2]@4 a2@3 a1",
  AI: "d2@11 ~ d2@2 a2@2", AJ: "[g2@9 ~ g2@3 ~ c2@14 g2@2 gb2@2]/2", AK: "[f2@9 ~ f2@4 bb1@26 a2@4 d2@4]/3",
  AL: "[g2@9 ~ g2@4 c2@9 ~ c2@7 ~]/2", AM: "f1@6 ~ f1", AN: "bb1@11 ~@3 bb1@2", AO: "c2@9 ~ c2@6", AP: "f1@11 ~ f1@3 ~",
  AQ: "a1@11 ~ a1@3 ~", AR: "c2@9 ~ c2@3 ~ a1@2", AS: "db2@3 a1", AT: "d2@10 c2@3 d2@3", AU: "g2",
  AV: "[g1@9 ~ g1@3 ~ c2@9 ~ d2@3 ~ d2@4]/2", AW: "[g1@9 ~ g1@3 ~ c2@10 d2@3 ~ d2@4]/2",
  AX: "[g1@9 ~ g1@3 ~ c2@9 ~ c2@8]/2", AY: "[f1@9 ~ f1@4 a1@11 ~ a1@3 ~ a1@2]/2", AZ: "bb1@9 ~ bb1@3 ~ bb1@2",
  BA: "c2@9 ~ c2@4 g1@2", BB: "f1@9 ~ f1@3 ~ f1@2", BC: "a1@9 ~ a1@3 ~ a1@2", BD: "bb1@9 ~ bb1@6",
  BE: "c2@7 ~ c2@3 g1@3 c2@2", BF: "f1@9 ~ f1@2 ~ f1@3", BG: "bb1@8 ~@2 bb1@3 ~ bb1@2", BH: "f1@5 ~@3",
})).s("gm_electric_bass_finger").gain(0.45)

// chords · string ensemble 2 · "Str."
const string_ensemble_2 = note(`<
  ~@3 A@7 B C ~@16 D E@2 F@2 G@4 H B ~@4 I@3 J@2 K L M@2 N O@2 P Q ~@3 R@6 S@2 T@3 U ~@4 V@2 W@4 X@7 Y@8 Z AA ~
>`.pickRestart({
  A: "[~@14 c6@52 bb5@3 a5@3 g5@2 f5@2 d5@2 c5@6 [f3,a3,c4]@11 ~ [a3,c4]@15 ~, ~@76 c5 ~@18 e3@15 ~@2]/7", // F Am
  B: "[f3,a3,d4]@15 ~", C: "[f3,bb3,d4], b3 ~@15", D: "[f3,a3,c4]@15 ~",
  E: "[[e3,a3,c4]@15 ~ [f3,d4]@15 ~, ~@15 bb3@15 ~@2]/2", // Am Dm
  F: "[[g3,bb3,d4,f4]@7 ~ f3@7 ~, ~@7 c4@8 ~, ~@15 a3@15 ~@2]/2", // Gm7
  G: "[[e3,a3,c4]@15 ~ [f3,d4]@15 ~ [f3,b3]@15 ~ e3@15 ~, ~@15 bb3@15 ~ [g3,d4]@15 ~ [g3,c4]@15 ~@2]/4", // Am Dm Fdim G5 C5
  H: "[e3,db4], g3@7 ~", I: "[~@4 g4@2 a4 ~ [f3,a3,d4]@15 ~, ~@7 f4@17]/3",
  J: "[~@8 c5@4 ~@4 [g3,c4,g4]@15 ~, [c4,e4]@15 c5@16 ~, a3@12 a4@4 eb3@13 ~@3]/2", // C5 C
  K: "[f4,bb4]@2 a4 bb4, [g3,bb3,d4]@15 ~", L: "[db4,db5], [f3,bb3]@7 ~",
  M: "[[f3,a3,c4]@14 ~@2 b3@7 db4@8 ~, a4@15 g4@16 ~, ~@15 g3@14 ~@3, ~@8 e3@7 ~]/2", N: "[d3,f3,a3]@7 ~, [d4,f4]",
  O: "[[b3,d4,f4,b4]@15 ~ [e3,c4]@16, g3@13 ~@2 [g3,c5]@16 ~]/2", // Bdim C C5
  P: "~ bb3@13 ~@2, [g4,bb4], [g3,eb4]@13 ~@3, eb3@11 ~@5", Q: "[f3,bb3,d4]",
  R: "[a3@4 ~ a3@7 ~@16 c5@4 [bb3,d4,f4,d5]@15 ~ e5@15 b4 [f4,a4,f5]@15 ~@7 e4@7 ~@3, a4@16 ~@5 c5@10 ~, [c4,f4]@13 e4@17 ~@17 [e4,g4,c5]@15 ~@17 [a4,e5]@17, ~@15 [g3,c4]@15 ~@18 c4@32 g5@16, ~@18 e3@12 ~@2 f3@13 ~@51]/6", // Bb F F5 C A5 C5
  S: "[[bb3,d4,f4]@15 [f4,b4]@16 ~, f5, d5@29 ~@3]/2", // Bb Fdim
  T: "[~@15 db5@15 ~@2 d4@15 [b4,b5], [e4,e5]@31 a4@14 ~@3, c5@16 ~@15 [d5,f5]@17, g4@14 ~ g4@14 ~ f4@16 ~@2, ~@8 g5@23 ~ a5@12 ~@4]/3", // B E Dm
  U: "[b4,d5,f5,b5], f4@11 ~@5", // Bdim
  V: "[~@8 g4@2 [f4,a4]@3 ~@11 c4@7 ~, ~@7 bb4@3 ~@3 [e4,g4]@19, ~@23 [c3,e3,g3]@6 ~@3]/2", // F Em C
  W: "[[f3,f4,a4]@13 ~@3 e3@13 ~@2 [f3,bb3]@14 ~@3 g3@15 ~, c4@15 [d4,a4]@8 [c4,e4]@9, a3@12 ~ e4@16 f4@15 ~@20, ~@13 a3@2 a3@13 ~@20 e3@13 ~@3, ~@14 g4@17 ~@14 g4@19]/4", // F Bb5 D5 C
  X: "[~@62 f4@16 ~@2 e4@15 ~ [bb3,d5]@15 g4, a4@24 ~@5 a4@16 ~ g4@14 ~@2 a4@47 ~@3, [f3,a3,f4]@14 e4@16 f4@17 ~@48 f4@16 ~, ~@5 c5@26 d5@14 ~ c5@50 ~@16, ~@15 a3@16 ~ bb3@16 c4@31 c4@16 ~@17]/7", // Bb F
  Y: "[[c4,e4]@15 ~ f4@14 ~ e4@14 ~@3 bb3@15 ~ [c4,e4]@16 f4@15 ~ e4@15 ~ [c4,d5]@15 g4, c5@46 f4@17 g4@17 c4@31 ~@17, ~@16 a4@46 ~@18 a4@29 ~@2 [f4,a4]@16 ~, ~@16 c4@31 d5@15 ~ c5@48 ~@17]/8", // C Csus2 F
  Z: "[c4,e4,c5]", AA: "[f3,c4,f4,a4]@3 ~",
})).s("gm_string_ensemble_2").gain(0.16).pan(0.7)

// chords · epiano1 · "p,n"
const epiano1 = note(`<
  A B C@2 A B D@2 E@5 F G@2 H@2 I J K@4 L@2 M@3 N O@3 P Q@6 R@6 S@4 T U V W X Y@3 Z@2 AA@4 AB AC AD AE AF@2 AG@2 AH@2
  AI@2 AJ@6 AK@4 AL@4 AM@4 AN@6
>`.pickRestart({
  A: "~@2 c4@3 f4@2 ~@4 g4 a4@2 ~@2, [f2,c3,f3], ~ c4", B: "~@2 c4@3 f4@2 ~@5 a4@2 ~@2, [a2,c3,e3], ~@4 c4@3 ~",
  C: "[~@2 c4@3 f4@3 ~@4 a4@2 ~@7 d4@2 ~ g4@2 f4@2 d4@2 ~@2, [bb2,d3,f3] [g2,c3,f3], ~@8 c4@9 ~@11 c4 ~@3, ~@7 f4@2 ~@7]/2", // Bb Csus4
  D: "[~@2 c4@3 f4@3 ~@4 a4@2 ~@7 d4@2 ~ g4 ~ f4@2 d4@2 ~@2, [bb2,d3,f3] [g2,c3,f3], ~@8 c4@9 ~@11 c4 ~@3, ~@7 f4@2 ~@7]/2", // Bb Csus4
  E: "[f4@2 [a3,c4,f4]@2 e4 [a3,c4,f4]@2 [g3,e4]@2 [g3,c4,e4] [a3,c4,f4]@2 e4 c4@2 e4@2 [c4,e4,g4] c4@2 c4 ~@2 [bb4,d5]@2 [bb4,d5] [g4,bb4]@2 ~@2 c4@2 [c3,f3,a3,c4,a4]@8, c3@21 [c4,f4]@2 [d4,g4]@2 f5@3 [d4,bb4]@4 f4@6 ~@2, f3@8 g3 ~@15 g3 ~ a3@10 [f4,a4]@6 a4@10 d5@13 ~@15, ~@30 g3@6 ~@4 e4@25 ~@15, ~@40 g4@6 [g3,bb3]@19 ~@15]/5", // F C F C Bb Gm F F5 …
  F: "a3@2 ~ c4@2 c4@3, c4@3 e4@5, f4 ~@3 a3@12",
  G: "[[f3,bb3,d4]@5 ~@3 d5@6 ~@2 [f3,g3,bb3,d4]@6 ~@6 bb3@4, [f4,bb4,d5]@4 f4@9 bb4@3, ~@5 bb3@10 e5@17, ~@3 [f3,d4]@5 ~@3 [f3,g3,d4]@5, ~@4 bb4@7 bb3 [g4,d5]@4]/2", // Bb Gm7 Bb Dm G7 G5
  H: "[c4@3 ~ a4@4 a3@2 ~ [c4,e4]@2 [c4,e4]@3, c3@11 ~@5, f4@3 ~@5, a3@5 ~@5 a3@6, a4@3 c4@5 [c4,e4]@3 ~@5]/2", // C
  I: "[f3,bb3,d4]@4 ~ [f4,a4,d5]@3, [f4,a4,d5]@5 ~@3, ~@8 [f3,bb3,d4]@7 ~", // Bb Dm Bb
  J: "[f3,g3,b3,d4]@5 ~ d5@2, ~@5 [f3,g3,d4]@3", // G7
  K: "[~@22 e4@6 a4@4 [d4,f4,a4]@6 ~@4 [f5,g5] ~@5 d4@12 d4@4, c3@7 d5@7 [db4,e4]@2 [d3,f3,a3]@3 [d4,f4,a4] d3@12, e4@5 g5@3 db4@3 [g4,db5]@9 [f3,a3]@4 [f3,g3,a3,b3]@8, g3@4 c5@4 [e3,g3,e5]@13 a5@11, [c4,c5]@6 g4@6 c4@31 ~@21]/4", // Dm Fsus2 Dbm Dm Gdim F G7 Em …
  L: "[[g4,bb4]@2 ~@2 bb4 [g4,bb4]@2 [c4,e4,g4]@5 ~@2 [d4,f4]@2, [g3,d4]@7 [c3,g3]@9, bb3@3 bb3@4 ~@5 [c4,e4]@4, ~@2 g4@3 ~@11, ~ bb4 ~@6]/2", // Gm C Dm G5 C5 C
  M: "[[bb3,bb4,d5]@4 [bb4,d5] [g4,bb4,d5]@2 g4@3 ~@6 a3@3 ~@4 g4, [g3,d4]@7 [g3,e4]@9 c3@4 [c4,f4,a4] f3@3, g4@5 ~@2 c4@5 g5@12, ~@4 f5@3 c5@4 c5@13, ~@10 g4@6 [f3,c4,f4,a4]@3 a3@5]/3", // Bb Gm G5 C F
  N: "[c4,e4]@3 ~@2 c4@3, ~@3 e4@5", // C
  O: "[[f3,bb3,d4]@4 ~@3 [bb4,d5] bb4@4 [g4,bb4] ~@3 [f4,a4]@3 f4@3 ~ f4, f4@26 g4@12 c5@7 g4@2 ~, d5@14 ~@12 bb4@21 ~, bb4@12 ~@4 f3@16 [c3,f3,a3,c4]@15 ~, ~@8 [f3,bb3,d4]@8 [bb3,d4,d5]@31 ~]/3", // Bb Gm F Bb
  P: "c4@3 c4@2 c4@3, a3, ~@3 e4@5",
  Q: "[[f3,bb3,d4]@8 ~@8 [f3,b3,d4]@8 ~@8 g3@8 ~@14 db5@4 ~@6 f4@13 f4@3 d4@12 d4@4, bb4@24 [f4,d5] b3@7 [g4,c5]@8 g3@2 c5@6 [g3,db4,g5]@16 a4@10 ~@6 f4@14 ~@2, f4@7 g5@9 [c3,c4]@13 [e4,db5]@16 ~@3, d5@4 [f3,d4] d5@7 [f3,d4]@4 e4@6 e5@10 [a3,c5]@16, ~@4 bb3@10 [f4,b4,d5]@9 f5@9 [f3,d4,d5]@8 [f3,g3,b3,a4,b4,d5]@8]/6", // Bb Bdim Dm C5 Gdim C Dbm Dm …
  R: "[g4@3 ~@2 c5@2 [g4,c5]@4 [g4,c5]!2 ~@3 [g3,d4]@3 ~@2 d4@2 e3@5 ~@10 a4!2 a4@2 a4 ~@2 c5@2 [e4,c5], [bb3,d4]@7 e3@9 [bb3,f4,bb4,d5]@3 [g3,d4] [f4,d5]@3 ~@5 [e3,g3]@12 f3@8, g3@5 a4@9 c4@9 [c4,e4,g4,c5]@9 [d3,f3,a3,d4]@3 f4@13, ~@3 [bb4,d5]@4 [g3,c4]@5 e5@11 ~@7 a5@15 a3@3, ~@3 g4@2 f4@7 g3 [g4,c5,g5]@10 ~@8 f5@4 a4@2 a3@2 c5 [a3,e5]@3 e5@5]/6", // C5 G5 C Bb G5 Dm Em C …
  S: "[~@8 [g4,bb4] [g4,bb4,eb5] [g4,bb4] ~@2 g3@3 bb3@3 [bb4,d5]@2 ~ bb3@2 db5@3 [bb4,db5,f5]@5, a3@11 g4@10 d5@11, [g3,c4]@8 [g3,c4,d5]@2 eb5@9 g5@13, ~@3 e4@8 d5@2 c4@8 [bb4,f5]@3 [f3,bb3,db4,f4]@8, ~@3 c5@5 [g3,d4]@8]/4", // Gm Eb Gm Bb Bbm C5 Gsus4 Bb5 …
  T: "[f4,a4,c5]@3 c4@2 [f4,a4,c5]@3, [f3,a3,c4]@4 ~@2 [f3,a3]@7 ~@3", U: "[e3,g3,b3,e4,g4,b4] [g3,db4,e4,a4,db5]",
  V: "[a3,d4]@6 ~@4 [f4,a4,d5]@5 ~, [f4,a4,d5]@5 ~@3, ~@6 [f3,d4]@9 ~", // D5 Dm
  W: "[g4,b4]@3 [g4,b4]@2 [g4,b4,d5]@3, [g3,b3,f5], d5@5 ~@3, ~@3 d4@5", // G G7
  X: "[c4,e4]@3 ~ g4 [e4,g4,c5]@3, g3, c5@5 ~@3, g4@3 e4@2 ~@3, ~@3 c4@5", // C
  Y: "[[f3,eb4]@4 eb4!2 bb4@2 f4@5 ~@3 d4@4 ~@2 [f4,c5]@2, bb4@3 g4@5 [f3,bb3,d5]@4, g4@5 ~ eb4@14 [d4,bb4]@4, ~@8 [f3,bb3,d4,d5]@7 f5@9, ~@8 bb4@5 f4@9 ~@2]/3", // F7 F5 Bb Gm Bb
  Z: "[bb3@3 ~ [bb4,d5] g4@2 g3@2 ~@5 g3@2, d4@10 d5@4 [c3,e3,c4,e4,g4,c5]@4 g3@2 g5@2 e5@2 d5@3 c5@5, g3@10 bb4@21 ~, g4@8 f5@23 ~, [bb4,d5]@6 bb3@25 ~]/2", // Bb C Bb
  AA: "[[c4,f4,a4]@4 [c4,f4]@4 e4@2 [a3,c4,f4]@4 ~@4 [a3,c4,e4]@2 [a3,c4,f4]@3 ~ a3@2 [a3,c4]@4 ~@4 [a3,c4,e4]@2 [a3,c4,f4]@4 c4@2 [c4,f4,a4]@4 ~@4 bb4@2 ~@8 [c4,f4]@4, c3@15 ~@8 d4@3 f4@4 ~@2, [f3,a3]@8 a3 ~@5 e4@4 ~@6 e4@6 [a3,e4]@4 ~@6 e4@6 [g4,bb4]@4 d5@14, ~@16 a2@14 ~@2 bb2@15 ~ [d3,g3]@16, ~@25 g4@3 d4@4]/4", // F F5 F Am F Am F F5 …
  AB: "c3@3 ~ f3 ~@2 g4, [c4,a4], f4@5 f3@3, [f3,a3] a3, ~@3 c3@5", // F
  AC: "a3@2 ~ c4@2 [c4,f4,a4]@3, [c4,e4,a4]@3 e4@5, ~ a3@3", // F Am
  AD: "[f3,bb3,d4]@10 d4@2 d4@2 d5 ~, [f4,bb4,d5]@15 ~, ~@10 [f3,bb3]@5 ~", // Bb Bb5
  AE: "[b3,d4]@3 ~ [f4,d5]@2 [f4,d5]@2, [f3,f5], ~@3 d4@5, ~@3 b3@2 ~@3, ~ b4", // Bm Dm F
  AF: "[g4@3 ~@10 [e4,db5]@3, e4@13 a5@19, g3@3 c4@5, c4@5 e5@11, c5@3 g4@5 [g3,db4,g5]@8]/2", // Dbm Gdim
  AG: "[[f3,a3,d4,f4,a4,d5]@8 ~@2 a4@3 f4@3 d4@12 ~@2 f4@2, ~@8 [f3,a3]@7 ~ [f3,a3]@16, ~@5 c5@11, ~@7 d4]/2", // Dm F
  AH: "[[g3,bb3,d4]@6 ~@2 [bb4,d5,f5]@5 ~ [g3,c4,e4,c5]@10 ~@4 [d4,f4,a4]@4, g4@13 ~@19, [bb4,d5] ~@3, ~@6 [g3,bb3,d4]@7 ~@11 [d3,c4,e4]@8]/2", // Gm Bb C Dm Bb Gm C
  AI: "[[g3,d4]@3 ~@4 [e3,g3,c4,g4,c5,e5]@5 [d3,c4,e4,g4]@2 [d3,d4,f4,a4]@2, g4@7 ~@9, [bb4,d5] [bb4,d5,f5]@2 ~, ~@3 d4@9 ~@4, ~@3 g3@4 ~@9]/2", // G5 C Dm Bb
  AJ: "[[g3,d4]@8 ~@2 [bb4,d5,f5]@4 g3@6 ~@2 g4@2 ~@4 [c4,a4]@4 [a3,c4,f4,a4]@8 [a3,e4]@2 [a3,c4]@4 ~@4 [a3,c4,e4]@2 [a3,c4,f4]@3 ~ a3@2 [a3,c4,f4]@4 ~@4 [c4,e4]@2 [c4,a4]@3 ~ c4@2 [c4,f4,a4]@4 ~@4 [g4,bb4]@4 d4@4 d4@2 [d4,bb4]@4, g4@7 ~@3 g3@10 ~@25 f4@3, [bb4,d5]@10 ~@4 c5@10 [g4,c5,e5]@17 ~@5 e4@4 ~@6 e4@6 ~@10 e4@6 d4@8 [g4,bb4]@6 ~@4, ~@8 [g3,bb3,d4]@6 [c4,e4]@14 e4@12 c4 ~@21 [c4,e4]@4 ~@12 bb4@4 d5@14, ~@32 c3@15 ~ a2@16 bb2@14 ~@2 c3@16]/6", // G5 Bb F A5 Am F C F …
  AK: "[[c4,f4,a4]@4 [c4,f4,a4]@4 [a3,e4]@2 [a3,c4,f4]@4 ~@4 e4@2 [a3,c4,f4]@3 ~ [a3,c4]@2 [a3,c4,f4]@4 ~@4 e4@2 [c4,f4,a4]@3 ~ g4@2 [c4,f4,a4]@4 ~@14 [g4,bb4,d5]@4, c3@15 ~ a2@16 bb2@14 bb4@4 g4@6 [bb4,d5]@2 bb3@6, [f2,a3]@8 c4 ~@5 [c4,e4]@4 ~@6 e4@6 [c4,e4,g4]@4 c4 ~@5 e4@7 ~ c3@16, ~@40 c4 ~@5 d4@8 [g3,d4]@10, ~@25 [bb4,d5]@2 bb3 f5@4]/4", // F A5 F Am F Gm Bb F …
  AL: "[[c4,f4,a4]@4 [c4,f4,a4]@4 [a3,c4]@2 [a3,c4]@4 ~@4 [a3,c4] ~ [a3,c4,f4]@3 ~ [a3,c4]@2 [a3,c4,f4]@4 ~@4 [c4,e4]@2 [c4,f4,a4]@4 [e4,g4]@2 [c4,f4,a4]@4 ~@4 [bb4,d5]@4 ~@4 d5@4 c4 ~, c3@14 ~@2 a2@16 bb2@14 [g4,bb4]@4 c5@4 [bb4,d5]@2 g4@7 ~, a3@8 e4@6 [a3,c4,e4]@4 e4@2 ~@4 e4@6 [c4,e4,g4]@4 ~@6 c4 ~@5 d4@17 ~, ~@48 c3@15 ~, ~@50 g4@4 f5@9 ~]/4", // F Am F Am F C F Em …
  AM: "[[c4,f4,a4]@4 [c4,f4,a4]@4 [a3,e4]@2 [a3,c4,f4]@4 ~@4 [a3,c4,e4]@2 [a3,c4,f4]@3 ~ a3@2 [a3,c4,f4]@4 ~@4 [c4,e4,g4]@2 [c4,f4,a4]@3 ~ c4@2 [c4,f4,a4]@4 ~@4 bb4@4 ~@6 d5@4, c3@15 ~ a2@15 ~ bb2@24 d5@2 g4@6, a3@8 c4 ~@5 [a3,e4]@4 ~@6 e4@6 [c4,e4,g4]@4 ~@6 e4@6 d4@18, ~@23 [g4,bb4]@2 [g4,d5]@2 bb4 f5@4, ~@3 c3]/4", // F A5 F Am F C F A5 …
  AN: "[[c4,f4,a4]@4 c4@4 [a3,c4]@2 [a3,c4,f4]@4 ~@4 [a3,c4,e4]@2 [a3,c4,f4]@3 ~ [a3,c4,e4]@2 [a3,c4,f4]@4 ~@4 [c4,e4,g4]@2 [c4,f4,a4]@3 ~ c4@2 [c4,f4,a4]@4 ~@8 g4@2 ~@6 c5@2 [f5,a5]@32, ~@2 a4@5 ~@16 bb4@3 bb4@16 ~@6, ~@4 f4@6 ~@6 a2@15 ~ bb2@16 c3@32 ~@16, ~@4 e4@3 [a3,e4]@2 ~@6 [c4,e4,g4]@2 ~@3 [e4,g4]@3 d4@4 c5@3 [bb3,d4]@16 ~@2, ~@23 g4@2 g4 d5@2 [g4,d5]@16 ~@4]/6", // F Am F Am F Am F C …
})).s("gm_epiano1").gain(0.3).pan(0.3)

// chords · epiano1 · "p,n" · soft notes
const epiano1_soft = note(`<
  A@3 B C@3 B D@3 E F G H@2 I@2 ~ J K ~ L@2 M N O@3 P Q R@2 S T@3 U@3 V@3 W@6 X ~@2 Y ~ Z AA AB@2 ~@2 AC@3 AD AE AF AG
  AH AI@2 AJ AK AL@2 ~@2 AM@6 AN@2 AO@2 AP ~ AQ AR AS@2 AT AU AV@2 ~ AW@3
>`.pickRestart({
  A: "[~@8 g4@2 ~@4 f4@4 ~@6 g4@2 ~ g4 ~@2 f4@4 ~@6 g4@3 g4 ~@4]/3", B: "~@2 c4@3 ~@3 f4 ~@5 f4@2",
  C: "[~@8 g4@3 ~@3 f4@4 ~@6 g4@3 g4 ~@2 f4@4 ~@6 g4@3 g4 ~@4]/3",
  D: "[~@4 c4 ~@2 c4@2 ~@3 c4 ~@2 c4@2 ~@7, ~@13 f4@5 ~@6]/3", E: "~@3 f4, ~ g4", F: "~@7 g4, ~@3 f4",
  G: "a4@3 ~@2 [f4,a4]@3, e3, ~@3 g4@5", H: "[~ f5, ~@7 d5@5 ~@4]/2",
  I: "[~@8 a4@3 ~@2 a4@3, ~@5 a3@3 e3@8, ~@6 f4@5 ~@5, ~@7 g4@4 g4@5]/2", J: "~@3 g4, g5, ~@5 b3@3", K: "e3, g4@3 ~@5",
  L: "[~@15 f4, ~@7 f5@9, ~ d5]/2", M: "~@4 d5@3 ~", N: "~@3 a4, ~ g4",
  O: "[~@4 bb3@3 ~@11 f3@3 ~ f4@2, ~@7 e3@16 ~]/3", P: "[a3,a4]@3 c4@2 [f4,a4]@3, e3, ~@3 g4@5", Q: "~@3 f5, ~@6 bb4 ~",
  R: "[~@14 f4 ~, f5@31 ~, ~@22 a4@9 ~]/2", S: "~@5 [f4,a4]@3, e3, a4@5 ~@3, ~@3 g4@5",
  T: "[~@24 b3 ~@23, ~@3 f5@8 ~]/3", U: "[~@3 g4@2 ~@8 a4@3 ~@7 f4, e3@2 ~, ~@5 g4@16 ~@3]/3",
  V: "[bb4@3 ~@17 bb4@3 ~, ~@7 e4@16 ~]/3",
  W: "[~@19 a4@4 ~@12 bb4@4 bb4@4 bb3@3 ~@2, ~@4 [db4,g5]@16 ~@3 a4@5 g4 a4@16 ~@3, ~ [d3,d4] eb3, ~@9 f5@8 ~@7, ~@3 e3@2 ~]/6", // Dbdim D
  X: "bb4@3 ~@5", Y: "f3@6 a3@9 ~", Z: "e3", AA: "~@5 g4 ~@2, ~ f3", AB: "[~@3 bb4@3 ~ a4, ~@3 g4]/2",
  AC: "[~@4 a4@4 c4 ~@5 [a3,c4]@4 ~@6 c4@2 f4@4 c4@4 ~@6 g4@6 ~@2]/3", AD: "~ g4, bb3, ~ bb4@3", AE: "~@3 f4",
  AF: "~@3 g4@5, e3", AG: "~@15 e5", AH: "~@5 b3@3", AI: "[~@13 g4@3, e3 e3, ~ c5@3]/2", AJ: "~@10 g4 ~@5, ~@4 d4@3 ~",
  AK: "[b3,a4]", AL: "[~@14 e3@9 ~ g4@8]/2",
  AM: "[~@14 e3@26 ~@2 f4@4 [a3,c4]@4 ~@6 c4@2 ~@4 g4@4 g4@2 f4@3 ~ g4@6 g4@4 ~@10 g4@4, ~@7 g4@4 ~@37]/6", // Am
  AN: "[~@7 a3@2 a3 ~@6, ~@18 c4 ~@13]/2", AO: "[~@2 g4 ~@11 g4@4 ~@14]/2", AP: "~@5 f4@2 ~", AQ: "~ g4 ~@6",
  AR: "~@10 bb4@5 ~", AS: "[~@7 c4@2 ~@3 c4 ~@3]/2", AT: "~@4 g4@3 ~", AU: "~@3 bb4", AV: "[~@7 c4@2 ~@7]/2",
  AW: "[~ [f3,a3,c4,c5]@2, ~ bb3 ~@6, ~@7 [g3,d4]@5 g3@32 ~@4, ~@5 f5@3 ~@16]/3", // F G5
})).s("gm_epiano1").gain(0.03).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B A B A B A B A B A C A@7 D B A B A@4 C A@7 D B@3 E B F@12 G F@12 A@5 ~ B E B@2 F@18 A ~
>`.pickRestart({
  A: "x", B: "x ~@6 x", C: "x ~@2 x!2 ~ x ~", D: "x ~@2 x ~@2 x ~", E: "x ~@2 x!2 ~@3", F: "x ~@2 x ~@3 x",
// … 73 more lines

More by Stephen Bishop