Strudelify

You're the Inspiration

Chicago

KeyE♭ minorTempo77 bpm
0:00/0:00
// You're the Inspiration — Chicago
// 77 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 77 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(77/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 · lead 3 calliope
const lead_3_calliope = note(`<
  ~@6 A B ~@2 C@2 D E F@2 G H G I J K L M N ~@4 O P ~@2 Q@2 R S T U V W X W Y Z AA ~@5 AB K AC AD AE AF AG AF ~@18
>`.pickRestart({
  A: "~@4 b5@2 b5 b5@3 b5@2 b5@3 b5", B: "b5 b5@2 gb5 e5@12", C: "[~@4 b5@2 b5 b5@3 b5@2 b5@2 b5 b5@3 b5@2 ab5@12]/2",
  D: "bb5@6 bb5 bb5@3 b5@6", E: "e5@2 eb5 db5@3 b4 db5@9",
  F: "[g4@2 g4 g4@3 g4 ab4@4 ab4 ab4@2 ab4 bb4@3 ~@2 bb4@2 bb4 c5@4 ~ d5@2 d5@2]/2",
  G: "~ [bb4,g5] [bb4,g5]@2 [bb4,g5]@2 [bb4,g5]@2 [bb4,g5]@2 [bb4,ab5] [g5,bb5]@5", // Eb Bb7 Gm
  H: "[ab4,c5]!2 c5 [eb5,c6] [eb5,bb5]@2 [bb4,d5]@2", I: "[ab4,eb5]!2 c5 [eb5,c6] [eb5,bb5]@2 [bb4,d5]@2",
  J: "~@4 [db5,bb5]!4 [db5,b5]@2 [gb5,db6]@4 ~@2", K: "b5!4 b5@2 b5@2 d6@4 d6@2 b5@2",
  L: "~@4 bb4@2 bb4@2 bb4@2 b4@2 db5 b4 bb4@2", M: "b5 db6", N: "db6",
  O: "~@4 [eb5,b5]@2 [eb5,b5] b5@2 ~ b5@2 [eb5,b5]@3 [eb5,b5], ~@9 eb5@3 ~@4", P: "[eb5,b5] b5@2 gb5 [e5,ab5]@4 ~@8",
  Q: "[~@4 [eb5,b5]@2 b5@3 ~ [eb5,b5]@2 [eb5,b5]@2 [eb5,b5] [eb5,b5]@3 [e5,b5]@2 ~@12, ~@6 eb5 ~@25]/2", // Abm E5
  R: "bb5@6 ~ bb5@3 b5@2 ~@4", S: "~@2 db5 [b4,e5] [a4,e5]@2 [ab4,e5] ~ e5@4 ~@4",
  T: "g4@2 g4 g4@3 [g4,bb5] ~ b5@3 ab4 ab4@2 ab4@2, ~@7 ab4@4 ~@5", U: "[bb4,gb5]@3 bb4 bb4@2 c5 c5@2 c5 d5 d5@5",
  V: "~ [bb4,g5] [bb4,g5]@2 [bb4,g5]@2 [bb4,g5]@2 [bb4,g5]@2 [bb4,ab5] bb5@5, ~@10 g5@5 ~", // Eb Bb7
  W: "[ab4,eb5]!2 c6 [eb5,c6] [eb5,bb5]@2 [bb4,d5]@2", // Ab5 Cm Eb5 Bb
  X: "~ [bb4,g5] [bb4,g5]@2 [bb4,g5]@2 [bb4,g5]@2 [bb4,g5]@2 [bb4,ab5] bb5@5, ~@10 eb5@5 ~", // Eb Bb7
  Y: "~@4 [db5,bb5]!4 [db5,b5]@2 [gb5,db6]@6", Z: "b5!4 b5@2 b5@2 d6@3 d6@3 b5@2", AA: "~@2 bb5!2 eb6 db6 b5 bb5",
  AB: "~@4 bb5!4 b5@2 db6@4 ~@2", AC: "~@4 bb4@2 bb4@2 bb4@2 b4@2 db6 b5 bb5@2", AD: "bb5 db6 b5 bb5",
  AE: "[c5,a5]@2 [c6,a6]@2 [c6,a6]@2 [c6,a6]@2 [c6,a6]@2 [c6,a6] a6@5", // F
  AF: "[bb5,f6]!2 [d6,bb6] [f5,d6] [f5,c6]@2 [c6,e6] ~", // Bb5 Gm Dm F5 C
  AG: "~ [c6,a6] [c6,a6]@2 [c6,a6]@2 [c6,a6]@2 [c6,a6]@2 [c6,bb6] c7@5, ~@10 f6@5 ~", // F C7
})).s("gm_lead_3_calliope").gain(0.64)

// chords · piano
const piano = note(`<
  A B C D E F G H@2 I G J@2 K@8 L M N@2 O P Q R S T@2 U V@2 W X@4 Y@2 Z@2 AA@6 AB@2 L AC AD@2 AE@2 AF@6 AG@4 AH@4 AI@5
>`.pickRestart({
  A: "[ab4,c5,c6] [bb4,db5,db6] [c5,eb5,eb6]@3 [bb4,db5,db6] [ab4,c5,c6]@2 [db4,ab4]@2 ab4@2 [ab4,db5]@2 ab4@2, ~@2 [eb5,ab5,eb6]!2", // Ab Bbm Cm Bbm Ab Db5 Ab5
  B: "[eb4,bb4] bb4!3 [ab4,eb5] eb5 [eb5,ab5] eb5, [eb5,bb5,eb6]!2 [c5,c6,eb6]!2, [ab4,ab5] ~@7 [bb4,bb5] ~@7", // Eb5 Ab5 Eb5 Cm Ab Bb
  C: "~ db5 eb5@3 [ab4,db5] ~ eb5 [ab4,eb5]@4 [ab4,eb5]@4, [ab4,c5]@5 ~@11, eb5 ~@2 c5 [db5,f5]@4", // Db5 Ab5 Ab Db
  D: "[g4,bb4,eb5]@9 eb5@2 g5 bb5 eb6 bb5 g5", E: "~@7 b4, [b2,gb3,gb4], [b4,eb5]@13 eb5@3, ~@3 gb5",
  F: "~@4 b4@4 [bb4,eb5,gb5]@4 ~@3 bb5, bb5@7 gb5, db5@3 [bb4,eb5], [eb3,bb3,eb5,gb5] [eb3,bb3], ~@12 gb5 db5@3", // Ebm Eb5 Ebm Eb5
  G: "b4@5 ~@2 eb5 b4@5 ~@2 eb5, [ab3,eb4,ab4,eb5,gb5,ab5] [gb3,eb4,eb5,gb5,ab5], ~@5 gb4@3 ~@5 gb4@3, ~@3 b4 ~@3 b4", // Ab7
  H: "[[ab4,b4]@4 [ab4,b4]@4 ~@8 [gb4,b4,eb5]@7 [gb4,b4,eb5] ~@2 [gb4,b4,eb5]@6, [e3,b3,e5] [e3,ab4,b4,e5] [b2,gb3]@2, ~@12 [bb4,db5,gb5]@12 ~ b3@7]/2", // Abm B E5 E B5 Gb
  I: "db5@4 db5@2 ~ [db5,eb5,gb5,bb5] ~@2 [eb5,gb5]@2 [bb4,eb5,gb5]@4, [eb3,bb3,eb5,gb5,bb5] [eb3,bb3], ~@3 b4 bb4@2 ~@2, ~@4 [eb5,gb5] [db5,bb5]@3, ~@9 eb4@7", // Ebm7 Ebm Eb5 Ebm Gb
  J: "[~@3 [ab4,b4,e5]@3 [ab4,b4]@2 [ab4,b4]@4 ~@6 bb5@2 [bb5,gb6]@4 [gb4,b4,eb5,eb6]@4 ~@3 eb6, [e3,b3]@8 e3@6 ab6@10 ~@4 eb5 gb4 eb5@2, [ab4,b4,e5]@2 b5@6 ~@5 e6@3 ~ db6@7 gb5@8, ~ ab5@7 ~@4 [ab4,b4,b5]@4 gb4@8 ~@4 [b4,b5,eb6]@4, ~@3 e5@5 [bb4,db5]@2 [bb4,db5]@6]/2", // E Abm Ebm B E5 E Abm B …
  K: "[[e5,b5,e6]@4 [e5,b5,e6]@4 [a4,b4,db5]@4 [a4,db5]@4 [eb5,g5]@5 ~@2 bb5 ab4@4 [f4,db5]@4 bb4@4 [g4,bb4]@2 ~@6 bb4@4 [g4,bb4,eb5]@8 eb5@8 [ab4,c5]@2 [ab4,c5]@2 ab4 ~@2 eb5 bb4@4 bb4@4 [g4,bb4,eb5]@8 eb5@8 [ab4,c5]@2 [ab4,c5]@2 ~@4 bb4@4 bb4@4 db5@8 [db5,f5]@5 ~@2 ab5, ab4@8 [g4,bb4]@3 g5 ~@7 g4@5 ~@4 [g4,bb4]@8 [g4,eb5]@4 ~@4 [g4,bb4]@8 ~@2 [f4,d5]@6 ab4@4, b4@8 [e5,ab5,b5]@16 ~@12 eb5@2 bb4@6 ~@20 eb5@7 ~@5 [d5,f5]@12 ~@8 eb5@8 [eb5,g5]@8 ~@14 f5@2, ~@8 [e6,ab6]@8 ~@5 eb5@3 ~@4 [ab4,f5]@12 [ab4,c5,eb5]@8 ~@20 c5@2 c5@2 ~@53 db5@3, ~@12 b4@12 [b4,eb5]@8 [gb4,db5,gb5]@8 ~@4 [f4,d5]@12 ~@13 ab4@3 ~@28 [ab4,c5]@12 [gb4,bb4]@16]/8", // E5 A Eb Db Gm Eb Ab Eb …
  L: "[b4,eb5]@5 ~@2 gb5 [b4,d5]@5 ~@2 gb5, gb4!2, ~@5 b4@3 ~@5 b4@3, ~@3 eb5 ~@3 d5", M: "gb4 [gb4,b4,eb5], [bb4,db5]",
  N: "[[b4,eb5]@4 b4 ~@2 gb5 [ab4,db5]@4 db5@4 [gb4,bb4,db5,gb5]@3 db5 ~@2 db5@2 [gb4,db5]@4 [gb4,db5]@4, gb4@4 ~@2 ab4@5 [bb4,gb5]@5, ~@2 eb5!2 f5@8 ~@4, ~@5 b4@3 ~@11 [bb4,gb5] db5 e3@3 ~@8, ~@5 gb4 ~@2]/2", // B Db5 Gb Gb5 Ebm
  O: "b4 b4@3 [eb5,gb5]@4 ~@6 [gb4,b4,eb5]@2, gb4@13 [b3,e5]@3, db5@4 eb5@3 ~, [eb5,gb5]@2 b4@5 ~, ~@9 e5 gb5@6", // Ebm B E5 Ebm
  P: "[db5,e5,gb5]@4 ~@3 b5 bb4@5 ~@2 db5, [ab4,b4]@8 ~@5 gb4@3, ~ [db5,gb5] [db5,gb5]@2, ~@5 e5@3 ~@6 bb4@2, ~@3 ab5 ~@4", // Gb7 Abm Gb5
  Q: "[gb4,b4] ~@13 b4@2, eb5@3 gb5, ~ gb4@15, ~ b4@12 eb5@3", // B5
  R: "~@2 b4@2 [bb4,eb5,gb5]@2 ~ [db5,eb5,gb5,bb5], [db5,bb5]@13 eb4@3, [eb5,gb5]@2 ~ bb4, ~@6 [eb5,gb5] ~", // Ebm Ebm7 Gb Ebm
  S: "b4@5 ~@2 eb5 b4@5 ~@2 eb5, [ab4,eb5,gb5,ab5]@4 ~@3 b4, ~@5 gb4@3 ~@5 gb4@3, ~@3 b4 [eb5,gb5,ab5]@4", // Ab7
  T: "[[ab4,b4,e5]@4 ~@3 b5 ~@4 bb4@4 [gb4,b4,eb5]@7 [gb4,b4,eb5] ~@2 [gb4,b4,eb5]@6, ~@4 [ab4,b4]@4 [ab4,b4,e5]@8 ~@9 b3@7, ~@5 e5@3 ~@4 [db5,gb5,bb5]@12 ~@8, ~@3 ab5 ~@12]/2", // E B Abm E Gb
  U: "db5@4 ~@2 b4@2 ~@3 gb5 ~@3 gb5, bb5@6 bb5!2, [eb5,gb5]@2 [bb4,gb5] [bb4,eb5,gb5], ~@4 db5@4 eb5@2 eb5@2 ~ eb6@3, ~@9 db5@7", // Ebm
  V: "[[ab4,b4,eb5,gb5,ab5]@4 b4@4 [ab4,b4]@4 [ab4,b4]@2 ~ [ab4,b4,e5], ~@4 [eb5,gb5,ab5]@8 ~@2 [ab4,b4] ~, ~@16 e5@13 e4@3]/2", // Abm7 Abm E Ab7 Abm
  W: "[bb4,db5]@4 ~@4 [b4,eb5]@4 b4 ~@2 gb5, gb5@7 eb5, ~ [bb4,db5]@3, ~ gb4, ~@12 eb5 b4@3", // Bbm B Bbm
  X: "[[b4,e5]@8 [a4,b4,db5]@4 b4@4 eb5@8 ab4@4 [f4,db5]@4 bb4@4 [g4,bb4]@2 ~@6 bb4@4 eb5@5 ~@2 bb5 [eb5,g5]@5 ~@2 bb5, ab4@16 [g4,bb4]@16 [gb4,db5]@6 bb4@6 ~@9 eb5@3 ~@5 eb5@3, ~@4 [e5,b5]@8 ~@2 [ab4,f5]@6 [ab4,c5,eb5]@4 ~@3 g5 ~@3 g5, ~@3 [a4,db5]@3 [b4,eb5]@2 ~ eb5 ~ [d5,f5]@3 ~@2, ~@19 g4@5 [g4,bb4]@4 [g4,bb4]@4]/4", // E5 A Db Gm Eb Gm Gb5 E5 …
  Y: "[[ab4,c5]@2 [ab4,c5]@2 ~@4 bb4@4 bb4@4 eb5@5 ~@2 bb5 eb5@5 ~@2 bb5, eb5 [g4,eb5] [g4,bb4]!2, ~@4 [ab4,c5]@12 ~@5 eb5@3 ~@5 eb5@3, ~@3 [d5,f5]@3 ~@2, ~@11 g5 ~@3 g5]/2", // Ab Cm Gm Ab Dm
  Z: "[[ab4,c5]@2 [ab4,c5]@2 ab4 ~@2 eb5 bb4@4 bb4@4 db5@8 [db5,f5]@5 ~@2 ab5, eb5@7 ~@5 [d5,f5]@12 ~@5 db5@3, ~@2 c5!2 ~@8 ab4@4, ~@5 ab4@3 [g4,eb5]@8 [gb4,bb4]@16, ~@15 f5]/2", // Ab Db Dm Cm Gb
  AA: "[[b4,eb5]@5 ~@2 gb5 [gb4,b4]@8 [gb4,b4,gb5]@8 [b4,eb5]@4 [b4,eb5]@4 [b4,eb5]@5 ~@2 gb5 bb4@8 [eb5,g5]@4 [eb5,g5]@4 [eb5,g5,bb5]@4 [eb5,g5,bb5]@4 [ab4,c5,eb5,ab5]@4 ~@3 eb5 [bb4,bb5]@4 [bb4,bb5]@4 [eb5,g5,bb5]@4 [eb5,g5,bb5]@4 [eb5,g5,bb5]@4 eb5 ~@2 bb5, gb4 ~@2 [gb4,gb5] gb4 ~ [g4,bb4] [g4,bb4]@2 [g4,eb5,g5] [g4,bb4]!2, ~@5 b4@3 ~@8 [db5,bb5]@16 ~@5 b4@3 ~@28 c5@2 c5@2 ~@21 eb5@3, ~@6 eb5@2 d5@16 ~@4 [f5,ab5]@12 ~@29 ab4@3 ~@22 g5@2, ~@38 eb5@2 [d5,f5]@16 ~@12 [eb5,ab5]@4 ~@4 [d5,f5]@12 ~@4 [g5,bb5]@3 ~]/6", // B B5 B Eb Ab Bb Eb Gb …
  AB: "[[c5,eb5,ab5]@4 [eb5,ab5]@4 [bb4,bb5]@4 [bb4,bb5]@4 bb4@5 ~@2 db5 [db5,f5]@5 ~@2 ab5, ab4@8 ~@3 bb4 ab4@4, ~@4 c5@12 [db5,gb5,bb5]@8 ~@5 db5@3, ~@8 [g4,eb5,g5]@8 ~@5 gb4@3 ~@8, ~@6 [d5,f5]@6 ~@3 f5]/2", // Ab Ab5 Bb Db Gb Cm Dm
  AC: "~@8 [b4,eb5]@5 ~@2 gb5, [bb4,db5,gb5], ~ gb4, ~@13 b4@3, ~@7 eb5", // B Gb
  AD: "[~@8 f5@4 f5@4 [a4,c5,f5]@8 f5@5 ~@2 c6, [gb4,b4,eb5]@8 ~@7 a5, ~ [ab4,db5] ~ [a4,c5], ~@12 [bb4,d5]@12 ~@5 f5@3]/2", // F B Db5 Am Bb
  AE: "[bb4@5 ~@2 f5 c5@4 c5@4 [a4,f5]@8 [d5,f5]@5 ~@2 a5, [d5,f5]@3 d5 ~@2 [g4,e5]@6 a4@4, ~@5 bb4@3 [a4,f5]@8 c5@16, ~@29 d5@3, ~@15 f5]/2", // Dm C Dm
  AF: "[f5@4 f5@4 ~@4 c5@4 [c5,f5]@2 [c5,f5]@2 [c5,f5]@4 f5@8 [bb4,d5]@4 bb4 ~@2 f5 c5@4 [c5,g5]@4 f5@2 f5@2 [c5,f5]@4 [d5,f5]@8 f5@4 f5@4 ~@4 c5@4 [c5,f5]@2 [c5,f5]@2 f5 ~@2 c6 f5@5 ~@2 c6, [bb4,d5]@8 [bb4,d5,f5,a5]@8 ~@16 f5@7 ~@17 a5@16 ~@13 f5 a5@2 ~@5 f5@3, ~@2 a4@6 a4@4 [a4,c5]@8 [a4,f5,a5]@4 a4@8 [bb4,d5]@4 [bb4,d5,f5,g5]@4 ~@2 c5@2 ~@3 a5, ~@2 c5@4 [g4,e5]@6 ~@6 d5!2 ~@4 c5@2 ~@2 c5@6 c5@4 [g4,e5]@6 ~@4, ~@37 bb4@3 ~@4 [g4,e5]@12 ~@12 a4@12 a4@8 [a4,c5]@8]/6", // F5 Bb C5 F5 Dm F5 Bb Bbmaj7 …
  AG: "[[bb4,d5]@4 ~@4 c5@4 [c5,g5]@4 f5@2 f5@2 f5 ~@2 c6 [d5,f5]@8 f5@4 f5@4 ~@4 c5@4 [c5,f5]@2 [c5,f5]@2 [c5,f5]@4 f5@5 ~@2 c6, f4@16 ~@5 f5 a5@2 a5@16 ~@22 a5@2, ~ [bb4,d5]@3 c5!2 c5@3 c5@2 [g4,e5]@3 ~@2, ~@8 [a4,f5,a5]@8 a4@8 ~@8 [bb4,d5]@8 [d5,f5,g5,bb5]@8 ~@13 f5@3, ~@3 [g4,e5]@3 ~@3 a4@3 a4@2 [a4,c5]@2]/4", // Bb C5 Dm F5 Bb C Dm Bb …
  AH: "[[bb4,d5]@4 ~@4 c5@4 [c5,g5]@4 f5@2 f5@2 [c5,f5]@4 [d5,f5]@8 f5@4 f5@4 ~@4 c5@4 [c5,f5]@2 [c5,f5]@2 f5 ~@2 c6 f5@5 ~@2 c6, f5@4 [a4,f5,a5]@4 a4@8 [bb4,d5]@4 [bb4,d5,f5,g5]@4 ~@2 c5 a5 ~@3 a5, ~@4 [bb4,d5]@12 c5@4 ~@4 a5@16 ~@13 f5@3 ~@5 f5@3, ~@3 [g4,e5]@3 c5@3 a4@3 a4@2 [a4,c5]@2, ~@9 c5@2 [g4,e5]@3 ~@2]/4", // Bb C5 F5 Dm F5 Dm Bb Gm7 …
  AI: "[[bb4,d5]@4 bb4 ~@2 f5 c5@4 [c5,g5]@4 f5@2 f5@2 [c5,f5]@4 [d5,f5]@8 f5@4 f5@4 ~@4 [g4,c5,e5]@32 ~@4, f4@2 ~ [g4,e5]@3 c5@3 a4@8 ~@3, ~@2 d5!2 ~@4 c5@2 ~@2 a5@8 ~@20, ~@5 bb4@3 [a4,f5,a5]@8 a4@16 [bb4,d5]@8 [bb4,d5,f5,g5]@32 ~@8, ~@9 c5@2 ~@9]/5", // Bb C5 F5 Dm C Dm Bb Gm7
})).s("gm_piano").gain(0.56)

// chords · dulcimer
const dulcimer = note("<~@4 A B C D E F C G H I J K ~@11 A B C D E F C G H I J K ~@38>".pickRestart({
  A: "[gb5,b5,eb6]", B: "[eb5,gb5,bb5,db6] [eb5,bb5]", C: "[eb5,gb5,ab5,b5]",
  D: "[e5,ab5,b5]@2 [ab5,b5,e6] [gb5,bb5,db6]", E: "[eb5,gb5,b5]", F: "[eb5,gb5,bb5]", G: "[e5,ab5,b5]",
  H: "[gb5,bb5,db6] [eb5,gb5,b5]", I: "[e5,ab5,b5]@3 [a5,b5,db6]", J: "[g5,bb5,eb6]@2 [ab5,b5,eb6] [f5,ab5,b5,db6]",
  K: "[gb5,bb5,db6] [eb5,g5,bb5] [eb5,ab5,c6] [f5,bb5,d6]", // Gb Eb Ab Bb
})).s("gm_dulcimer").gain(0.48)

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

// bass · fretless bass · soft notes
const bass_soft = note(`<
  A B ~@11 C ~@3 D E D F G F ~@6 H C ~ I J ~ K C L ~ E D L ~@3 F M E D L D N K O P ~ Q R ~ S Q R ~@3 T ~ U ~ R ~ S ~@5
>`.pickRestart({
  A: "ab3 bb3 c4@3 bb3 ab3@2 db3@2 ab3@2 db4@2 ab3@2", B: "eb3 bb3 eb4 bb3 ab3 eb4 ab4 eb4", C: "~@5 bb2 ~@10",
  D: "~@5 d3 ~@10", E: "~@5 a2 ~@7 a2 ~@2", F: "~@5 c3 ~@10", G: "~@5 f2 ~@7 f2 ~@2", H: "~@5 d3 ~@7 d3 ~@2",
  I: "~@13 eb2 ~@2", J: "~@13 d3 ~@2", K: "~@13 f2 ~@2", L: "~@5 a2 ~@10", M: "~@5 f2 ~@7 e2 ~@2", N: "~@13 g2 ~@2",
  O: "~@5 c3 ~@7 f2 ~@2", P: "~@5 f2 ~@10", Q: "~@5 e2 ~@10", R: "~@5 b2 ~@7 ab2 ~@2", S: "~@5 b2 ~@7 b2 ~@2",
  T: "~@13 ab2 ~@2", U: "~@5 b2 ~@10",
})).s("gm_fretless_bass").gain(0.4)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@14 A B C D C E F G H@2 I ~@15 J C E F G K@2 C E L M F N O@2 P Q R S P T U V W T U V W T U V W T U V ~@2
>`.pickRestart({
  A: "eb5@4 g4@4 bb4 ~ ab4@2 db5@4", B: "gb5 eb5 ab5 bb5", C: "eb5 g5", D: "ab5@2 eb5 bb5", E: "ab5@3 eb5 bb5@4",
  F: "gb5 db5", G: "b4 gb5 b4@2", H: "[gb5@8 b4@4 db5@8 b4@2 gb5@3 db5@7]/2", I: "~ bb5@14 ~", J: "~@2 eb5 bb5",
  K: "[gb5@2 b4 ~ b4@2 bb4@2, ~@3 db5@2 ~@3]/2", L: "g5 g4", M: "c5@3 bb4@5", N: "b4",
  O: "[gb5@8 b4@15 db5@4 ~ bb4@4]/2", P: "f5 a5", Q: "bb5 c6", R: "f5 d5", S: "bb4 f5 g5 c5", T: "bb4@7 ~ f5@4 c5@4",
  U: "~@2 db5 ~@5 d5@8, f5 ~", V: "bb5@4 f5@3 g5@4 c5@5", W: "~ a5",
})).s("gm_string_ensemble_1").gain(0.8)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A ~@13 B C B D B D B E ~ F C B C B G B C B H B C B I B C B H B H B C B C B C B C B C B C B J B C B C B C B I B C B
  K B C B H ~@2
>`.pickRestart({
  A: "x!3 ~@2 x!2 ~@9", B: "x ~@6 x!2 ~@7", C: "x ~@6 x ~ x!2 ~@5", D: "~@5 x!2 ~@2 x ~@5 x", E: "x ~@6 x ~@8",
  F: "~@8 x!4 ~ x!2 ~", G: "x ~@6 x ~@2 x ~@4 x", H: "x ~@2 x ~@7 x ~@4", I: "x ~@4 x!2 ~@2 x!2 ~@5",
  J: "x ~@6 x ~@2 x ~@5", K: "x ~@6 x ~ x ~@6",
})).gain(0.72)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@2 A ~@13 B@3 C B C B D ~ E F B@3 G B F B H B F B I B@3 H B H B J B@3 F B@3 F B@3 G B@3 F B@3 K B@3 L B@3 M ~@2
>`.pickRestart({
  A: "x!3 ~@2 x!2 ~@9", B: "~ x ~ x", C: "x!2 ~ x!2 ~@6 x!2 ~@3", D: "~@3 x!2 ~@11", E: "~@8 x!3 ~ x!4",
  F: "~@4 x ~@7 x!4", G: "~@4 x ~@7 x!2 ~@2", H: "x ~@11 x ~ x!2", I: "~@4 x ~@7 x!2 ~ x", J: "~@4 x ~@7 x ~ x!2",
  K: "~@4 x ~@7 x ~@2 x", L: "~@3 x!2 ~@6 x!2 ~@2 x", M: "x ~@5 x!2",
})).gain(0.72)

// drums · high tom
const high_tom = s("ht").struct("<~@16 A@7 B ~ C A@3 D A@31 D A@11 D E ~@2>".pickRestart({
  A: "~ x!3 ~ x!3 ~ x!3 ~ x!3", B: "~ x!3 ~ x!3 ~@8", C: "~@11 x ~ x!3", D: "~ x ~@3 x!3 ~ x!3 ~ x!3",
  E: "~ x!3 ~ x!3 ~ x!3 ~ x!2 ~",
})).gain(0.4)

// drums · china
const china = s("cr").struct(`<
  ~@19 A ~ B ~ C ~@2 D ~ E F G ~@3 H ~ D ~ I ~@2 J K ~ K ~@3 E ~@3 L J E ~ E ~ G ~ E F E ~ M ~ I ~@2 J N ~ E F K ~@2
>`.pickRestart({
  A: "~@3 x ~@2 x ~@2 x ~@6", B: "~@6 x ~@2 x ~@6", C: "~@7 x ~@8", D: "x ~@2 x ~@12", E: "~@3 x ~@12", F: "~@13 x ~ x",
  G: "~@7 x ~@2 x ~@5", H: "~@3 x!2 ~@11", I: "~@3 x ~@2 x ~@3 x ~@5", J: "~@15 x", K: "~ x ~@2", L: "~@3 x ~@6 x ~@5",
  M: "~@3 x ~@6 x ~@2 x ~@2", N: "~@7 x ~ x ~@6",
})).gain(0.56)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@16 A@3 B A C A ~@3 A@2 D E F A@3 G A D A H A@2 I J A J A@3 D A@3 K I D A D A F A D E D A L A H A@2 I M A D E J ~@2
>`.pickRestart({
  A: "x!16", B: "x!3 ~ x!2 ~ x!2 ~ x ~@5", C: "x!6 ~ x!2 ~ x ~@5", D: "x!3 ~ x!12", E: "x!13 ~ x ~",
  F: "x!7 ~ x!2 ~@2 x!4", G: "x!3 ~@13", H: "x!3 ~ x ~@11", I: "x!15 ~", J: "x!4 ~@12", K: "x!3 ~ x!6 ~ x!5",
  L: "x!3 ~ x!6 ~ x!2 ~ x!2", M: "~@4 x!2 ~@2",
})).gain(0.48)

// drums · vibraslap
const vibraslap = s("vibraslap:0").struct("<~@16 [x!16]!7 [x!8 ~@8] ~ [~@11 x!5] [x!16]!48 [x!15 ~] ~@2>").gain(3.76)

// drums · bongos
const bongos = s("bongo:18").struct(`<
  ~@16 A ~@3 A ~ A ~@4 A ~@5 A ~ A ~ A B A ~@3 A ~ A ~ A ~@3 A ~@3 A ~@7 A ~@2 B A ~@3 A ~@5
>`.pickRestart({
  A: "x", B: "~@15 x",
})).gain(1.68)

// drums · congas
const congas = s("conga:33").struct("<~@16 A@7 B ~ C A@3 D A@31 D A@11 D A ~@2>".pickRestart({
  A: "x!4", B: "x!2 ~@2", C: "~@3 x", D: "x ~ x!3 ~@3 x ~@3 x ~@3",
})).gain(1.54)

stack(
  lead_3_calliope, piano, dulcimer, bass, bass_soft, string_ensemble_1, kick, mid_tom, high_tom, china, ride_bell,
  vibraslap, bongos, congas
)

More by Chicago