Strudelify

No Tell Lover

Chicago

KeyF majorTempo104 bpm
0:00/0:00
// No Tell Lover — Chicago
// 104 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 91 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(104/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(`<
  A B C@2 D E F@2 G H I J K H I L M N O P Q R S@2 T U V W X U V 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 K H I L M N O P Q R AX AY AZ BA BB BC AZ BA BB BC AZ BA BB BC AZ BA BB BC AZ BA BB BC AZ BA BD
>`.pickRestart({
  A: "f2@5 a2 c3 a2 d3@2 ~@4 a2 c3, [g4,a4,c5,e5]@2 [e3,g3,a3,c4] [a3,c4,e4,g4], ~@5 c3@2 ~", // Am7
  B: "f2@5 a2 c3 a2 d3@2 c3@4 [a2,d4] [c3,e4], [g3,a3,c4,e4]@3 ~", // D5 C Am7
  C: "[bb1@5 d2 f2 d2 g2@2 f2@4 d2 f2 bb1@5 d2 f2 d2 g2@2 f2@6, [a3,c4,d4,f4]@7 ~]/2", // Dm7
  D: "f2@5 a2 c3 a2 d3@2 ~@4 a2 c3, [g3,a3,c4,e4]@2 [c4,e4,g4,a4] [g4,a4,c5,e5], ~@5 c3@2 ~", // Am7
  E: "f2@5 a2 c3 a2 d3@2 ~@4 bb4 c5, [e4,g4,a4,c5]@3 ~, ~@5 c3@3", // Am7
  F: "[bb1@5 d2 f2 d2 g2@2 f2@4 d2 f2 bb1@5 d2 f2 d2 g2@2 ~ [a3,a4]@2 [bb3,bb4]@3, [f4,a4,c5,d5]@12 ~ f2@3]/2", // A Bb Dm7
  G: "~@2 a4!2 ~ a2 [c3,g4] [a2,g4] [d3,g4]@2 f4!2 f4@2 a2 c3, [c4,c5], e4@7 e4, f2@2 a4 ~@2 a2@2 ~", // C5 A7 G5 C
  H: "e4@2 f4@2 ~ a2 c3 a2 d3@2 [c3,d4]@4 [a2,f4] [c3,d4], c4!2, f2@2 g4 f4 ~@4", // Csus2 Dm Csus2
  I: "f4@2 f4@2 ~ d2 f2 d2 g2@2 f2@4 d2 f2, a3, bb1@2 d4 f4@5",
  J: "~@5 d2 f2 d2 g2@2 f2@2 d2@2 f2@2, bb1@5 ~@11, ~ [f4,a4,c5,d5]@7", // Dm7
  K: "~@2 a4!2 ~ a2 [c3,g4] [a2,g4] [d3,g4]@2 f4!2 f4@2 a2 c3, c4, e4@7 e4, f2@2 a4 ~@2 a2@2 ~", // C5 A7 G5
  L: "~@5 d2 f2 d2 g2@2 ~@2 a4@4, bb1@5 ~@5 f2@6, ~ [f4,a4,c5,d5]@3 d4@2 ~@2", // Dm7
  M: "f4@2 [f4,ab4]!2 [f4,ab4]@2 [db2,f4,ab4]@2 [ab2,g4,bb4]@2 [f4,ab4]@2 [eb4,g4]@2 [ab2,db4,f4]@2, c4, db2@3 ~@2 ab2@2 ~", // Fm Db Eb Fm Eb Db
  N: "~@2 [f4,ab4]!2 [f4,ab4]@2 [db2,f4,ab4]@2 [ab2,g4,bb4]@2 [f4,ab4]@2 [eb4,g4]@2 [ab2,db4,f4]@2, c4, db2@3 ~@2 ab2@2 ~", // Fm Db Eb Fm Eb Db
  O: "~@2 [eb4,g4]!2 [eb4,g4]@2 [c2,eb4,g4]@2 [g2,eb4,g4]@2 [eb4,g4]@2 [d4,f4]@2 [g2,c4,eb4]@2, bb3, c2@3 ~@2 g2@2 ~", // Eb Cm Eb Dm Cm
  P: "g4@3 f4 eb4@3 f4 ~@2 c2@2 c2@4, bb3, c2@5 ~@3, ~ [eb4,g4]", // Eb
  Q: "~@2 [f4,ab4]!2 [f4,ab4]@2 [f4,ab4]!2 [ab2,g4,bb4]@2 [f4,ab4]@2 [eb4,g4]@2 [ab2,db4,f4]@2, c4, db2@3 db2 ~ ab2@2 ~", // Fm Eb Fm Eb Db
  R: "~@2 [f4,ab4]!2 [f4,ab4]@2 [db2,f4,ab4]@2 ab2@2 ~@4 f4@2, c4, db2@3 ~ [f4,bb4]@3 ~, ~@5 ab2@3", // Fm Db Bb5
  S: "[e4@5 d4 ~@8 a2@2 a2@8 a2@4 a2@4, g3, a2@7 ~@9, ~@3 c4@13]/2",
  T: "~@2 b4!3 [b2,a4] [d3,a4] [b2,a4] [e3,a4]@2 d3@4 [b2,gb4] [d3,gb4], b3, gb4@7 ~, g2@5 ~@5 g4@2 ~@4", // B7 D5 B7 A5 B5 D
  U: "gb4@2 g4@2 ~ b2 d3 b2 [e3,d4]@2 e4@4 g4 e4, b3, g2@2 a4 g4 ~ d3@3", // E7
  V: "g4@2 g4@2 ~ e2 g2 e2 a2@2 g2@4 e2 g2, b3, c2@2 e4 g4@5",
  W: "~@5 e2 g2 e2 a2@2 g2@2 e2@2 g2@2, c2@5 ~@11, ~ [g4,b4,d5,e5]@7", // Em7
  X: "~ b4!3 ~ b2 [d3,a4] [b2,a4] [e3,a4]@2 d3@4 b2 d3, b3, gb4@7 gb4, g2@2 b4 ~@2 g4 ~@2", // D5 B7 A5
  Y: "~@5 e2 g2 e2 a2@2 ~@2 b4@4, c2@5 ~@5 g2@6, ~ [g4,b4,d5,e5]@3 e4@2 ~@2", // Em7
  Z: "g4@2 [g4,bb4]!2 [g4,bb4]@2 [eb2,g4,bb4]@2 [bb2,a4,c5]@2 [g4,bb4]@2 [f4,a4]@2 [bb2,eb4,g4]@2, d4@7 ~, eb2@3 ~@2 bb2@2 ~", // Gm Eb F Gm F Eb
  AA: "~@2 [g4,bb4]!2 [g4,bb4]@2 [eb2,g4,bb4]@2 [bb2,a4,c5]@2 [g4,bb4]@2 [f4,a4]@2 [bb2,eb4,g4]@2, d4@7 ~, eb2@3 ~@2 bb2@2 ~", // Gm Eb F Gm F Eb
  AB: "~@2 [f4,a4]!2 [f4,a4]@2 [d2,f4,a4]@2 [a2,f4,a4]@2 [f4,a4]@2 [e4,g4]@2 [a2,d4,f4]@2, c4, d2@3 ~@2 a2@2 ~", // F Dm F Em Dm
  AC: "a4@3 g4 f4@3 g4 ~@2 d2@2 d2@4, c4, d2@5 ~@3, ~ [f4,a4]", // F
  AD: "~@2 [g4,bb4]!2 [g4,bb4]@2 [g4,bb4]!2 [bb2,a4,c5]@2 [g4,bb4]@2 [f4,a4]@2 [bb2,eb4,g4]@2, d4@7 ~, eb2@3 eb2 ~ bb2@2 ~", // Gm F Gm F Eb
  AE: "~@2 [g4,bb4]!2 [g4,bb4]@2 [eb2,g4,bb4]@2 bb2@2 ~@4 d4@2, d4@7 ~, eb2@3 ~ [g4,c5]@3 ~, ~@5 bb2@3", // Gm Eb C5
  AF: "[b2,gb4]@4 ~ e4 ~@2 d3@4 e3@4, a3, ~ db3 ~@2, ~@3 d4@5", AG: "gb3@2 gb3 gb2, [b3,d4,gb4,a4]",
  AH: "ab4@2 ~@3 db2 e2 db2 gb2@2 ~@2 gb4 ab4@3, [ab3,db4]@2 ~ [ab3,db4], a2@5 ~@5 e2@6, ~ e4@3 ~@4", // Db5
  AI: "a4@2 ~@3 gb2 a2 gb2 b2@2 ~@2 gb4 ab4@3, [a3,db4]@2 ~ [a3,db4], d2@5 ~@5 a2@6, ~ gb4@3 ~@4", // A
  AJ: "[gb4,a4]@2 g4@2 ~ b1 d2 b1 e2@2 ~@4 a4@2, [g2,b3,d4]@3 ~@2 d2@3, ~@2 gb4 [b3,d4,gb4,a4]@3 ~@2", // Gbm G Bm7
  AK: "[b3,e4,g4] f4@2 [b3,e4]@3 [c2,f4]@2 c2@2 ~@4 e4@2, c2@3 ~ [b3,e4,g4]@3 ~, ~@5 c2@3", // Em E5 F5 Em
  AL: "g4@2 ~@3 a2 c3 a2 d3@2 ~@2 e4 g4@3, [a3,c4]@2 ~ [a3,c4], f2@5 ~@5 c3@6, ~ e4@3 ~@4", // Am
  AM: "a4@2 ~@3 d2 f2 d2 g2@2 f2@4 bb2@2, [a3,d4]@3 ~, bb1@5 ~@11, ~ f4@5 ~@2", AN: "[a2,g3,c4,e4]@3 [b2,a3,d4,gb4]@5",
  AO: "[g2,f3,bb3,d4,g4]@3 f2@3 f2@2, ~@3 [eb3,bb3,c4,eb4,g4]@5", // Gm7 Cm7
  AP: "[gb2,db4,f4,bb4]@6 gb2@2 ~ a3 bb3 c4 db4 c4 db4 f4, ~@2 gb2!2", // Gbmaj7
  AQ: "[c4,eb4] db4 ~@4 db2@2 db2@4 db2@4, db2@3 ~@5, ~ c4@7, ~@3 [f4,ab4]@13", // Cm Fm
  AR: "e2@6 e2@2 ~ g3 ab3 bb3 b3 bb3 b3 eb4, [b3,eb4,ab4]@2 e2!2", // Abm
  AS: "db4 bb3 ~ [eb4,gb4] ~ gb4 ~@2 b1@4 b1@4, b1 ~, ~@3 [bb3,eb4]@5", // Ebm Eb5
  AT: "~@4 [db4,gb4]@2 g4 ~@2 e4@2 ~@2 e4 d4 db4, d2@7 [db4,gb4]@2 ~@2 [a3,d4]@2 ~@3, ~@2 d2!2", // Gb5 D5
  AU: "[gb3,b3] bb3 b3 db4 d4 b3 a4 ~ g2@4 g2@4, g2@7 [b3,d4,gb4]@9", // B5 Bm
  AV: "[eb2,g3,bb3,d4]@6 [a3,c4,e4]@8 d4 e4, ~@3 f2@5", AW: "g2@6 g3 f3, [bb3,d4,f4]",
  AX: "e4@5 d4 ~@8 a2@2, g3, a2@7 ~, ~@3 c4@5", AY: "a2@2 a2!2, [b3,c4,e4,g4]",
  AZ: "gb4@2 ~@3 b2 d3 b2 e3@2 ~@2 d4 gb4@3, [gb3,b3]@4 ~ d3@3, g2@5 ~@11, ~ d4@3 ~@2 [gb3,b3]@2", // B5
  BA: "g4@2 ~@3 a2 c3 a2 d3@2 ~@2 d4 e4@3, [a3,c4]@2 ~ [a3,c4], f2@5 ~@5 c3@6, ~ e4@3 ~@4", // Am
  BB: "gb4@2 e4@2 ~ b2 d3 b2 e3@2 ~@2 d4@2 [d2,gb4]@2, [g2,b3]@3 ~@2 d3@2 ~, ~@2 d4 [b3,d4,gb4]@3 ~@2", // D G Bm
  BC: "[eb2,g4]@4 ~ g2 bb2 g2 c3@2 ~@4 eb2@2, [bb3,d4], ~ f4 eb4 g4, ~@5 bb2@2 ~", // Eb Bb
  BD: "gb4@2 e4@2 ~ b2 d3 b2 e3@2 d3@4 ~@2, [g2,b3]@3 ~@5, ~@2 d4 [b3,d4,gb4]@3 ~@2", // G Bm
})).s("gm_piano").gain(0.64).pan(0.6)

// bass · fretless bass
const bass = note(`<
  A B C D A B C E A B C D A B C E F G H I F G J K L M I N L M I O P Q R S P Q T U V W L I X Y Z AA AB G AC AD AE AF AG
  AH A B C D F G H I F G V AI AJ AK L AL AJ AK L AM AJ AK L AL AJ AK L AN AJ AK L AL AJ AK AO
>`.pickRestart({
  A: "f2@5 ~ f2@8 c2 ~", B: "f2@5 ~ f2@4 f3 c3 f2 c3 c2@2", C: "bb2@5 ~ bb2@9 ~", D: "bb2@5 ~ bb2@7 ~ f2 ~",
  E: "bb2@5 ~ bb2@8 ~@2", F: "db2@6 db2@8 db3!2", G: "db2@5 ~ db2@7 ~ ab2 bb2", H: "c2@5 ~ c2@8 g1 ~",
  I: "c2@5 ~ c2@9 ~", J: "a2@5 ~ a2@8 e2 ~", K: "a2@5 ~ a2@8 ~@2", L: "g2@5 ~ g2@8 d2 ~",
  M: "g2@5 ~ g2@4 g3 d3 g2 d3 d2@2", N: "c2@5 ~ c2@7 ~ g1 ~", O: "c2@3 c2@4 ~", P: "eb2@6 eb2@8 eb3!2",
  Q: "eb2@5 ~ eb2@7 ~ bb2 c3", R: "d2@5 ~ d2@8 a1 ~", S: "d2@5 ~ d2@9 ~", T: "b1@5 ~ b1@8 gb1 ~", U: "b1@6 b1@8 b2!2",
  V: "a2@6 a2@8 a2!2", W: "d2@5 ~ d2@7 ~ a2 b2", X: "f2@6 f2@8 f3!2", Y: "bb2@5 ~ bb2@7 ~ f3 g3", Z: "a2@5 ~ b2@8 ~@2",
  AA: "g2@5 ~ f2@8 ~@2", AB: "gb2@6 gb2@8 gb3!2", AC: "e2@5 ~ e2@8 b1 ~", AD: "b1@5 ~ b1@9 ~", AE: "d2@6 d2@8 d3!2",
  AF: "g2@5 ~ g2@7 ~ d3 e3", AG: "eb2@5 ~ f2@8 c2 ~", AH: "g2@5 ~ g2@9 ~", AI: "a2@3 a2@4 ~", AJ: "g2@6 g2@8 g3!2",
  AK: "f2@5 ~ f2@7 ~ c3 d3", AL: "eb2@5 ~ eb2@9 ~", AM: "eb2@3 eb2@4 ~", AN: "eb2@5 ~ eb2@8 ~@2", AO: "g2@5 ~ g2@8 ~@2",
})).s("gm_fretless_bass").gain(0.44)

// chords · brass section
const brass_section = note(`<
  A B C@2 A B D@2 ~@3 E F ~@2 G H ~@10 I J ~@2 K L M N@2 O@2 P Q R S T ~ U V W X Y Z AA AB AC AD AE AF F ~@2 G H ~@7 AG
  U AH AI AG U AH AI AG U AH AI AG U AH AI AG U AH AI AG U AH
>`.pickRestart({
  A: "~@2 [a3,a4] [e4,e5]", B: "[g3,a3,c5]@14 [a2,d4] [c3,e4]", C: "[[a3,c4,d4,f4]@7 ~]/2",
  D: "[[a3,c4,d4,f4]@27 [a3,a4]@2 [bb3,bb4]@3]/2", E: "~ [f4,a4,c5,d5]@7", F: "[c4,e4]",
  G: "~ [f4,a4,c5,d5]@3 d4@2 a4@2", H: "c4, f4 ~@7", I: "~ [g4,b4,d5,e5]@7", J: "b3, gb4@7 ~",
  K: "~ [g4,b4,d5,e5]@3 e4@2 b4@2", L: "a4, d4@7 ~", M: "[d4,a4]", N: "[c4,g4]", O: "[d4,g4]", P: "[d4,gb4]",
  Q: "[d4,gb4,a4]", R: "[ab4,db5]@3 [ab4,db5]", S: "[a4,db5]@3 [a4,db5]", T: "[b4,d5]@3 ~", U: "[a4,c5]@3 [a4,c5]",
  V: "[a4,d5]@3 ~", W: "[g3,c4,e4]@3 [a3,d4,gb4]@5", X: "[f3,bb3,d4,g4]@3 [eb3,bb3,c4,eb4,g4]@5",
  Y: "[db4,f4,bb4]@6 ~@3 a3 bb3 c4 db4 c4 db4 f4", Z: "[c4,eb4] db4 ~ [f4,ab4]@13, ~ c4@7",
  AA: "[b3,eb4,ab4]@8 ~ g3 ab3 bb3 b3 bb3 b3 eb4", AB: "db4 bb3 ~ [eb4,gb4] ~ gb4 [bb3,eb4]@10",
  AC: "~@4 [db4,gb4]@2 g4 [db4,gb4]@2 e4@2 [a3,d4]@2 e4 d4 db4", AD: "[gb3,b3] bb3 b3 db4 d4 b3 a4 [b3,d4,gb4]@9",
  AE: "[g3,bb3,d4]@6 [a3,c4,e4]@8 d4 e4", AF: "~@7 f3, [bb3,d4,f4]", AG: "[gb4,b4]@3 [gb4,b4]",
  AH: "[b3,b4]@3 [b3,e5]@3 ~@2", AI: "[g3,g4] [f3,f4] [eb3,eb4] [g3,g4]",
})).s("gm_brass_section").gain(0.36).pan(0.4)

// chords · epiano1
const epiano1 = note("<~@8 A@2 B@2 A@2 C@8 ~@2 D@2 E@2 D@2 F@8 ~@18 G@4 ~@31>".pickRestart({
  A: "[[e4,f4,a4]@31 ~]/2", B: "[[a3,bb3,d4,a4]@15 ~]/2", C: "[a3,bb3,d4,a4]/8", D: "[[gb4,g4,b4]@31 ~]/2",
  E: "[[b3,c4,e4,b4]@15 ~]/2", F: "e4/8", G: "[a4@31 ~, f4@31 ~@33]/4",
})).s("gm_epiano1").gain(0.24)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@16 A@2 B@2 A@2 C@8 ~ D E@2 F@2 E@2 G@2 H@8 I J K L M N O@8 P@7 Q@4 R@4 Q@4 S@3 T@7
>`.pickRestart({
  A: "[db6@3 ab5, [ab3,db4,f4,ab4]]/2", B: "[g3,eb4,g4,c5,c6]/2", C: "[e4,c5,e5,a5,a6]/8",
  D: "[b3,c4,b4] ~@15, [e4,c6]@15 ~", E: "[eb6@3 bb5, [bb3,eb4,g4,bb4]]/2", F: "[a3,f4,a4,d5,d6]/2",
  G: "[gb4,d5,gb5,b5,b6]/2", // Bm
  H: "[[e4,a4,db5]@2 [a3,d4,gb4,a4]@2 [d4,b4,d5,g5,g6]@2 [g3,e4,g4,c5,c6]@2 [c4,f4,a4,f6]@2 bb6 f6 ~@4, e5, ~@2 d6 ~@5 c5@8, ~@5 [f4,bb4,d5,f5] ~@2]/8", // A D G C F Bb
  I: "[db4,gb4,bb4,db5,gb6]", J: "db6 ab5, [ab3,db4,f4,ab4]", K: "[b3,ab4,b4,e6]", L: "[gb4,eb5,gb5,b5,b6]",
  M: "[a3,d4,gb4,a4,d6]", N: "g6 d6, [d4,g4,b4,d5]",
  O: "[~@3 [c4,a4,f5,f6]@5 [d4,bb4,d5,g5,g6]@8 ~@32 db6@12 ab5@4, [bb3,g4,bb4,eb5,eb6] ~@11 [ab3,db4,f4,ab4]@4, ~@3 c5@61]/8", // F Gm Eb Db
  P: "[[g3,eb4,g4,c6]@4 db6@3 ab5 ~@4 [d4,g4,b4,d5,g6]@2, c5, ~@2 [ab3,db4,f4,ab4]@2 ~@3]/7", // Cm G Db
  Q: "[f6 c6 [d4,b4,d5,g5,g6]@2 [bb3,g4,bb4,eb5,eb6]@2 [d4,g4,b4,d5,g6]@2, c5, [c4,f4,a4] ~@3]/4", // G Eb G F
  R: "[f6@8 c6@8 [d4,b4,d5,g5,g6]@16 [bb3,eb4,g4,bb4,eb6]@15 ~ [d4,g4,b4,d5,g6]@16, c5, [c4,f4,a4] ~@3]/4", // G Eb G F
  S: "[f6 c6 [d4,b4,d5,g5,g6]@4, c5, [c4,f4,a4] ~@2]/3", // G F
  T: "[g4@2 f6 c6 ~@2 [bb3,g4,bb4,eb5,eb6]@2 g4@2 f6 c6 ~@2, [d4,b4,d5,g6]@2 g5@5, ~ c5@5 ~, ~ [c4,f4,a4] [d4,b4,d5,g6]@2 [d4,b4,d5,g6]@3, ~@5 [c4,f4,a4] ~]/7", // Eb G F G F
})).s("gm_string_ensemble_2").gain(0.24)

// chords · string ensemble 2
const string_ensemble_2_2 = note(`<
  ~@7 A B@2 C@2 B@2 D@2 ~@7 E F@2 G@2 F@2 H@8 ~@8 I J ~@8 B@2 C@2 ~@23 K ~@7
>`.pickRestart({
  A: "[bb5,a6]@15 ~", B: "[f6@11 e6@3 a5@2]/2", C: "[[a4,bb4]@29 ~@3]/2", D: "[~@16 [bb5,f6]@15 ~, [a4,bb4]@29 ~@3]/2",
  E: "[a6,g7]@15 ~", F: "[g6@11 gb6@3 b5@2]/2", G: "[[b4,c5]@29 ~@3]/2", H: "b4/8", I: "~@6 [b6,d7]@9 ~, [a6,c7] ~",
  J: "~@6 [c6,bb6]@9 ~, [g6,d7] ~", K: "[eb6,bb6]@15 ~",
})).s("gm_string_ensemble_2").gain(0.2)

// chords · epiano1
const epiano1_2 = note(`<
  ~@16 A@2 B@2 A@2 C@8 ~ D@8 ~ E F@8 G H I J K L M@7 B@2 A@2 ~@2 N O@2 P@8 Q@7 R@5
>`.pickRestart({
  A: "[db5@2 ~ [db5,db6]@6 ~@2 ab5@5, db4@17 ~ ab4@12 ~@2, ~@5 db5@3]/2", // Db
  B: "[c5 ~@3 [g4,eb5]@18 ~@6 g5@4, c4@10 ~ c4@5, ~@2 eb4@19 ~@3 eb4@8, ~@13 c5@3]/2", // Cm
  C: "[a5 ~@3 [e5,c6]@124, a4, ~ c5@63]/8", // C
  D: "[c5@6 c5@7 ~@3 eb5@4 ~@2 [eb5,eb6]@12 ~@4 bb5@10 d5 ~@3 f5@18 ~@6 a5@4 eb5@4 ~@2 [eb5,eb6]@12 ~@4 bb5@10 b5 ~@3 [gb5,d6]@12, c4@15 ~ eb4@17 ~ bb4@12 ~@2 d4@20 ~@2 d4@4 d5@6 ~@18 bb4@12 ~@2 b4@16, ~@3 c6@61, ~@36 eb5@12 ~@2 f4@19 ~@3 f4@8 eb4@17 ~@3 eb5@12 ~@2 d5@14, ~@13 a4@19]/8", // Eb D
  E: "a5@2 ~ [a5,a6]@5, a4", // A
  F: "[[d5,d6]@2 ~@4 a5@10 g5 ~@3 [d5,b5]@12 [c4,e4,g4]@5 ~@7 g5@4 f5@4 ~@2 [f5,f6]@10 [bb5,bb6]@2 ~@4 f6@10 ~@32 gb5@4 ~@2 [gb5,gb6]@10, d4 ~ a4@126, ~@4 d5@12 g4@16 ~@6 c4@4 c5@6 ~@16 bb4 ~ f5@12 ~@34 gb4@16, ~@9 b4@7 e5@48, ~@10 e4@2 f4@4 ~ bb5@15]/8", // D G C F Bb Gb
  G: "[db5,db6] ~@2 ab5@5, db4 ~ ab4@12 ~@2, ~ db5@3", H: "~ [b4,ab5]@3, e4, ~ ab4@7",
  I: "[eb5,gb5,eb6]@3 ~@3 gb6@2, b4@2 ~ b4@5, ~ eb5, ~@5 b5@3", J: "d5@2 ~ [d5,d6]@5, d4",
  K: "[g5,g6] ~@2 d6@5, g4 ~ d5@12 ~@2, ~ g5@3", L: "eb5 ~@5 [f4,c5,a5]@10, eb4 ~, ~ g4@3 ~@4, ~ [bb4,g5] ~@2",
  M: "[[g4,bb4,d5]@5 ~@7 d6@4 ~@64 db5@4 ~@2 [db5,db6]@12 ~@4 ab5@10, bb5, ~@6 g4@10 ~@64 db4@17 ~@15, ~@4 bb4@4 ~@41 ab4@6 ~, ~@5 g5@3 ~@42 db5@6]/7", // Gm Db
  N: "g5@2 ~ [g5,g6]@5, g4", // G
  O: "[[f5,f6]@2 ~@14 g5 ~@3 [d5,b5]@12, f4 ~ c5@12 ~@2 g4@16, ~@2 f5@6 ~ b4@7, ~@3 c6@13]/2", // F G
  P: "[[g4,bb4,g5]@6 ~@10 g5@4 ~@2 [g5,g6]@10 [f5,f6]@2 ~@14 g5 ~@3 [d5,b5]@12 eb5@4 ~@2 [eb5,eb6]@8 ~@2 g5@4 ~@2 [g5,g6]@10 [f5,f6]@2 ~@14 g5 ~@3 [d5,b5]@12, eb4@4 ~@2 eb4@10 ~@16 f4 ~@5 c6@64 c6@26, ~@8 g4@8 g4@16 ~@4 f5@12 ~@2 b4@14 ~@16 g4@16 f4 ~ c5@12 ~@2 g4@16, ~@10 eb5@6 ~@18 c5@12 ~@2 g4@16 eb4@15 ~@21 f5@12 ~@2 b4@14, ~@3 bb5@29]/8", // Gm G F G Eb G F G
  Q: "[[g4,bb4,g5]@6 ~@10 g5@4 ~@2 [g5,g6]@10 [f5,f6]@2 ~@14 g5 ~@31 g5@4 ~@2 [g5,g6]@10 [f5,f6]@2 ~@4 c6@10, eb4@4 ~@2 eb4@10 ~@16 f4 ~@5 c6@42 g4@16 f4 ~ c5@2 f5@12, ~@4 g4@4 g4@8 ~@2 f5@6 ~ b4@31, ~@5 eb5@3 ~@9 c5@6 ~ g4@2 [d5,b5]@30, ~@3 bb5@25]/7", // Gm G F G F G
  R: "[g5 ~@15 [bb4,g5]@6 ~@4 eb5@6 g5@4 ~@2 [g5,g6]@10 [f5,f6]@2 ~@2 f5@12 g5 ~@15, g4@2 g4!2 g4@6, ~ b4@39, ~ [d5,b5]@19, ~@16 eb4@4 ~@2 eb4@10 ~@16 f4 ~ c5@12 ~@18]/5", // Eb G F G
})).s("gm_epiano1").gain(0.35)

// chords · string ensemble 1
const string_ensemble_1 = note("<A@2 B@2 A@2 B@2 ~@83>".pickRestart({
  A: "[f3,e4,f4,a4]/2", B: "[bb2,a3,bb3,d4,a4]/2",
})).s("gm_string_ensemble_1").gain(0.26)

// chords · string ensemble 2 · Bm Am F
const string_ensemble_2_3 = note("<~@39 [[gb4,b4,d5,gb5,b6]] ~@26 [[e4,a4,c5,e5,a6]] [[b3,a4,b4,c5,a6]@15 ~] ~@23>")
  .s("gm_string_ensemble_2").gain(0.33)

// drums · kick
const kick = s("bd").struct("<A@7 B A@7 B A@7 B A@22 B@2 A@6 C A@28 B A@7>".pickRestart({
  A: "x ~@2 x ~@4", B: "x ~@2 x ~@3 x", C: "x",
})).gain(0.45)

// drums · rim
const rim = s("rim").struct("<A@7 B A@7 B ~@7 B A@7 ~@15 B@2 ~@8 A@4 ~@23 B ~@7>".pickRestart({
  A: "~ x ~@2", B: "~@4 x ~@7 x!3 ~",
})).gain(0.4)

// drums · rim · soft notes
const rim_soft = s("rim").struct("<~@7 A ~@7 A ~@7 A ~@22 A@2 ~@35 A ~@7>".pickRestart({
  A: "~@15 x",
})).gain(0.2)

// drums · snare
const snare = s("sd").struct("<~@16 A@7 ~@8 A@15 ~@2 A@8 ~@4 A@23 ~ A@7>".pickRestart({
  A: "~ x ~@2",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~ A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~ B ~ A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ B ~ A ~ A ~ A ~ B ~ A ~ A ~ A ~@3 A ~ A ~ A ~
>`.pickRestart({
  A: "~@6 x!2", B: "~@14 x!2",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<A@7 B A@7 B A@7 B A@7 B A@14 B@2 A@6 C A@12 B A@7 B A@7 B A@6 D>".pickRestart({
  A: "x!8", B: "x!4 ~@4", C: "x!4 ~ x!3", D: "x!6 ~@2",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct(`<
// … 62 more lines

More by Chicago