Strudelify
Make Me Smile cover art

1970 · Chicago II

Make Me Smile

Chicago

KeyE♭ majorTempo120 bpm
0:00/0:00
// Make Me Smile — Chicago
// 120 bpm, 4/4, key Eb major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 94 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · "Bass"
const bass = note(`<
  ~ A B C D E F C D E G H I J K L M L M L M L M N O P Q C D E F C D E G H I J K L M L M L M L M N O R S T@2 U@2 V@2 W@2
  X@2 Y@2 X@2 Z@2 AA@2 AB AC L M L M L M L M N O AD AE ~@3 AF AG ~@2 AH AI@2 AJ
>`.pickRestart({
  A: "~ gb3@5 ~@26", B: "~ gb3@5 ~@3 gb3@5 ~@18", C: "~ bb2@3 ~ bb2@6 ~@2 f2@3 ~ bb2@3 ~ bb2@7 ~ ab2@3",
  D: "~ gb2@3 ~ gb2@6 ~@2 gb2@3 ~ gb2@4 ab2@4 bb2@3 ~ c3@3", E: "~ db3@3 ~ db3@8 ab2@4 db3@3 ~ eb3@4 db3@4 b2@3",
  F: "~ c3@3 ~ c3@6 ~@2 c3@4 f2@3 ~ f2@4 a2@4 c3@3", G: "~ c3@3 ~ c3@6 ~@2 c3@4 f3@3 ~ f3@6 ~@2 f3@3",
  H: "~ bb2@2 ~@2 bb2@6 ~@2 bb2@3 ~ c3@3 ~ c3@6 ~@2 c3@3",
  I: "~ db3@2 ~@2 db3@6 ~@2 db3@2 ~@2 eb3@2 ~@2 eb3@6 ~@2 eb3@3", J: "~ f3@3 ~ f3@6 ~@2 f3@2 ~@2 f3@4 c3@4 a2@4 c3@3",
  K: "~ f2@3 ~ f2@8 a2@3 ~ c3@3 ~ f2@4 f3@7", L: "~ db3@3 ~ db3@5 ~@7 db3@3 ~ db3@5 ~@3 db3@3",
  M: "~ b2@3 ~ b2@5 ~@7 gb2@3 ~ gb2@7 ~@4", N: "~ db3@7 ~ c3@7 ~ bb2@6 ~@2 db3@7",
  O: "~ ab2@3 ~ c3@3 ~ eb3@3 ~ ab2@3 ~ ab3@3 ~ gb3@3 ~ f3@3 ~ ab3@3",
  P: "~ gb3@3 ~ db3@3 ~ bb2@3 ~ db3@3 ~ gb2@3 ~ bb2@3 ~ db3@3 ~ bb2@3", Q: "~ gb2@6 ~@2 gb2@6 ~@2 gb2@6 ~@2 gb2@6 ~",
  R: "~ gb3@3 ~ db3@3 ~ bb2@7 ~ db3@3 ~ gb2@3 ~ bb2@3 ~ db3@3", S: "~ a3@7 ~ a3@6 ~@2 a3@7 ~ g3@3 ~ e3@3",
  T: "[~ d3@12 a3@4 d4@4 a3@4 ab3@4 g3@7 ~ g3@7 ~ g3@3 ~ g3@3 ~ g3@7 ~ a3@3]/2",
  U: "[~ d3@12 a3@4 d4@8 a3@4 g3@8 d3@2 ~@2 g2@12 b2@4 c3@4 db3@3]/2",
  V: "[~ d3@12 a3@4 d4@8 a3@4 g3@8 d3@2 ~@2 g2@12 g3@7 ~ c3@3]/2",
  W: "[~ d3@12 a3@4 d4@8 a3@4 g3@8 d3@2 ~@2 g2@8 g3@4 b2@4 c3@4 db3@3]/2",
  X: "[~ d3@12 a3@4 d4@4 e4@4 a3@4 g3@8 d3@2 ~@2 g2@8 g3@4 b2@7 ~ c3@3]/2",
  Y: "[~ d3@12 a3@4 d4@4 e4@4 a3@4 g3@8 d3@3 ~ f3@3 ~ gb3@4 g3@4 d3@4 g3@4 c3@3]/2",
  Z: "[~ d3@12 a3@4 d4@4 e4@4 a3@4 g3@7 ~ g3@7 ~ g3@7 ~ c3@4 d3@4 e3@3]/2",
  AA: "[~ f2@2 ~@2 bb2@2 ~@2 c3@10 ~@2 f2@2 ~@2 bb2@2 ~@2 c3@7 ~ f2@2 ~@2 bb2@2 ~@2 c3@3 ~ d3@3 ~ eb3@3 ~ f3@3 ~ g3@3]/2",
  AB: "~ ab3@11 ~ ab3@2 ~@2 ab3@11 ~ eb3@3", AC: "~ ab2@12 eb3@4 ab3@4 gb3@3 ~ f3@3 ~ eb3@3",
  AD: "~ gb3@16 bb2@4 b2@4 c3@4 db3@3", AE: "~ gb2@4 ~@4 gb2@4 ~@19", AF: "~@17 bb2@2 ~@2 bb2@3 ~@8", AG: "~ bb2@31",
  AH: "~@11 bb2@3 bb2@3 bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@2",
  AI: "~ bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@2", AJ: "~ bb2@3 ~@28",
})).s("gm_acoustic_bass").gain(0.31)

// bass · acoustic bass · "Bass" · soft notes
const bass_soft = note(`<
  ~@88
  [~ bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@2]!2
  [~ bb2@2 bb2@3 bb2@3 bb2@2 ~@21]
  ~@3
>`).s("gm_acoustic_bass").gain(0.1)

// chords · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note(`<
  ~ A B C@8 D@5 E F E F E F E G H I J K@8 L@5 E F E F E F E G H M N O P O P O P O P O P O P O P O P Q@2 R S F E F E F E
  F E G H T U ~@3 V W@2 ~@4 X
>`.pickRestart({
  A: "~ [db5,gb5,b5]@3 ~@28", B: "~ [db5,gb5,b5]@2 ~@6 [db5,gb5,b5]@2 ~@21",
  C: "[~ [bb4,db5,f5]@5 ~ [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,f5]@4 ~@2 [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,gb5]@4 ~@2 [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [bb4,db5,gb5]@5 ~ [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,c5,eb5]@4 ~@2 [bb4,c5,eb5]@2 [bb4,c5,eb5] ~@3 [bb4,c5,eb5]@2 [bb4,c5,eb5]@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@2 [f4,a4,c5] ~@3 [f4,a4,c5]@2 [f4,a4,c5]@2 [bb4,db5,f5]@5 ~ [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,f5]@4 ~@2 [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,gb5]@4 ~@2 [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [bb4,db5,gb5]@5 ~ [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,c5,eb5]@4 ~@2 [bb4,c5,eb5]@2 [bb4,c5,eb5] ~@3 [bb4,c5,eb5]@2 [bb4,c5,eb5]@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@2 [f4,a4,c5] ~@3 [f4,a4,c5]@2 [f4,a4,c5]]/8", // Bbm Gb Db Cm7 F Bbm Gb Db …
  D: "[~ [bb4,db5,f5]@5 ~ [bb4,db5,f5] ~ [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [ab4,c5,eb5]@5 ~ [ab4,c5,eb5]@2 [ab4,c5,eb5] ~@3 [ab4,c5,eb5]@2 [ab4,c5,eb5]@2 [ab4,db5,f5]@5 ~ [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,eb5,gb5]@4 ~@2 [bb4,eb5,gb5]@2 [bb4,eb5,gb5] ~@3 [bb4,eb5,gb5]@2 [bb4,eb5,gb5]@2 [eb5,f5,bb5]@4 ~@2 [eb5,f5,bb5]@2 [eb5,f5,bb5] ~@3 [eb5,f5,bb5]@2 [eb5,f5,bb5]@2 [eb5,f5,bb5]@4 ~@2 [eb5,f5,bb5]@2 [eb5,f5,bb5] ~@3 [eb5,f5,bb5]@2 [eb5,f5,bb5]@2 [eb5,f5,a5]@4 ~@2 [eb5,f5,a5]@2 [eb5,f5,a5] ~@3 [eb5,f5,a5]@2 [eb5,f5,a5]@2 [eb5,f5,a5]@4 ~@2 [eb5,f5,a5]@2 [eb5,f5,a5] ~@3 [eb5,f5,a5]@2 [eb5,f5,a5]@2 [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@8 [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@7]/5", // Bbm Ab Db Ebm Ebsus2 F7 Db
  E: "~ [gb4,b4,eb5]@4 [gb4,b4,eb5]@4 ~@8 [gb4,bb4,db5]@4 [gb4,bb4,db5]@4 ~@7", // B Gb
  F: "~ [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@8 [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@7", // Db
  G: "~ [db5,f5,ab5]@6 ~@2 [db5,f5,ab5]@6 ~@2 [db5,f5,ab5]@6 ~@2 [db5,f5,ab5]@6 ~", // Db
  H: "~ [db5,eb5,ab5]@6 ~@2 [db5,eb5,ab5]@6 ~@2 [c5,eb5,ab5]@6 ~@2 [c5,eb5,ab5]@5 ~@2", // Dbsus2 Ab
  I: "~ [b4,db5,gb5]@6 ~@2 [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@6 ~", // Bsus2
  J: "~ [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@4 ~@3", // Bsus2
  K: "[~ [bb4,db5,f5]@5 ~ [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,f5]@4 ~@2 [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,gb5]@4 ~@2 [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [bb4,db5,gb5]@6 [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [ab4,db5,f5]@5 ~ [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,c5,eb5]@4 ~@2 [bb4,c5,eb5]@2 [bb4,c5,eb5] ~@3 [bb4,c5,eb5]@2 [bb4,c5,eb5]@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@2 [f4,a4,c5] ~@3 [f4,a4,c5]@2 [f4,a4,c5]@2 [bb4,db5,f5]@5 ~ [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,f5]@4 ~@2 [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,gb5]@4 ~@2 [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [bb4,db5,gb5]@5 ~ [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,c5,eb5]@4 ~@2 [bb4,c5,eb5]@2 [bb4,c5,eb5] ~@3 [bb4,c5,eb5]@2 [bb4,c5,eb5]@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@2 [f4,a4,c5] ~@3 [f4,a4,c5]@2 [f4,a4,c5]]/8", // Bbm Gb Db Cm7 F Bbm Gb Db …
  L: "[~ [bb4,db5,f5]@5 ~ [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [ab4,c5,eb5]@5 ~ [ab4,c5,eb5]@2 [ab4,c5,eb5] ~@3 [ab4,c5,eb5]@2 [ab4,c5,eb5]@2 [ab4,db5,f5]@5 ~ [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,eb5,gb5]@4 ~@2 [bb4,eb5,gb5]@2 [bb4,eb5,gb5] ~@3 [bb4,eb5,gb5]@2 [bb4,eb5,gb5]@2 [eb5,f5,bb5]@4 ~@2 [eb5,f5,bb5]@2 [eb5,f5,bb5] ~@3 [eb5,f5,bb5]@2 [eb5,f5,bb5]@2 [eb5,f5,bb5]@4 ~@2 [eb5,f5,bb5]@2 [eb5,f5,bb5] ~@3 [eb5,f5,bb5]@2 [eb5,f5,bb5]@2 [eb5,f5,a5]@4 ~@2 [eb5,f5,a5]@2 [eb5,f5,a5] ~@3 [eb5,f5,a5]@2 [eb5,f5,a5]@2 [eb5,f5,a5]@4 ~@2 [eb5,f5,a5]@2 [eb5,f5,a5] ~@3 [eb5,f5,a5]@2 [eb5,f5,a5]@2 [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@8 [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@7]/5", // Bbm Ab Db Ebm Ebsus2 F7 Db
  M: "~ [bb4,db5,gb5]@6 ~@2 [bb4,db5,gb5]@6 ~@2 [bb4,db5,gb5]@6 ~@2 [bb4,db5,gb5]@5 ~@2", // Gb
  N: "~ [e4,ab4,db5]@6 ~@2 [e4,ab4,db5]@6 ~@2 [e4,ab4,db5]@6 ~@2 [e4,ab4,db5]@5 ~@2", // Dbm
  O: "~@9 [f4,a4,d5]@3 ~@13 [f4,a4,d5]@2 ~@5", P: "~@9 [f4,b4,d5]@3 ~@13 [f4,b4,d5]@2 ~@5",
  Q: "[~ f4@2 ~@2 bb4@2 ~@2 c5@10 ~@2 f4@2 ~@2 bb4@2 ~@2 c5@7 ~ f4@2 ~@2 bb4@2 ~@2 c5@3 ~ d5@3 ~ eb5@3 ~ f5@3 ~ g5@3]/2",
  R: "~ [db5,eb5,ab5]@6 ~@2 [db5,eb5,ab5]@5 ~@3 [db5,eb5,ab5]@5 ~@3 [db5,eb5,ab5]@5 ~@2", // Dbsus2
  S: "~ [db5,eb5,ab5]@5 ~@3 [db5,eb5,ab5]@5 ~@3 [db5,eb5,ab5]@5 ~@3 [db5,eb5,ab5]@4 ~@3", // Dbsus2
  T: "~ [b4,db5,gb5]@6 ~@2 [b4,db5,gb5]@6 ~@2 [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@6 ~", // Bsus2
  U: "~ [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@5 ~@18", V: "~@17 [f4,bb4,d5]@2 ~@2 [f4,bb4,d5]@3 ~@8",
  W: "[~ [f4,bb4,d5]@40 ~@23]/2", X: "~ [f4,bb4,d5]@4 ~@27",
})).s("gm_acoustic_guitar_nylon").gain(0.15)

// chords · piano
const piano = note(`<
  ~ A B C D E F C D E F G H I J K L M N O P O N Q R S@2 C D E F C D E F G H I J K L M N O P O N Q R T U V W V W V W V W
  V W V W V W V W ~@2 X Y K L M N O P O N Q R S Z ~@3 AA AB@2 ~@4 AC
>`.pickRestart({
  A: "~ [db4,gb4,b4]@5 ~@26", B: "~ [db4,gb4,b4]@4 ~@4 [db4,gb4,b4]@5 ~@18",
  C: "~ [bb2,f3,bb3,db4]@6 ~@2 [bb2,f3,bb3,db4]@7 ~ [bb2,f3,bb3,db4]@6 ~@2 [bb2,f3,bb3,db4]@6 ~", // Bbm
  D: "~ [gb2,gb3,bb3,db4]@6 ~@2 [gb2,gb3,bb3,db4]@7 ~ [gb2,gb3,bb3,db4]@6 ~@2 [gb2,gb3,bb3,db4]@6 ~", // Gb
  E: "~ [db2,f3,ab3,db4]@6 ~@2 [db2,f3,ab3,db4]@6 ~@2 [db2,f3,ab3,db4]@6 ~@2 [db2,f3,ab3,db4]@5 ~@2", // Db
  F: "~ [c3,bb3,c4,eb4]@6 ~@2 [c3,bb3,c4,eb4]@6 ~@2 [f2,a3,c4,eb4]@6 ~@2 [f2,a3,c4,eb4]@5 ~@2", // Cm7 F7
  G: "~ [bb2,f3,bb3,db4]@6 ~@2 [bb2,f3,bb3,db4]@6 ~@2 [c3,eb3,ab3,c4]@6 ~@2 [c3,eb3,ab3,c4]@6 ~", // Bbm Ab
  H: "~ [db3,f3,ab3,db4]@6 ~@2 [db3,f3,ab3,db4]@7 ~ [eb3,gb3,bb3,eb4]@6 ~@2 [eb3,gb3,bb3,eb4]@6 ~", // Db Ebm
  I: "~ [f2,bb3,eb4,f4]@7 ~ [f2,bb3,eb4,f4]@7 ~ [f2,bb3,eb4,f4]@6 ~@2 [f2,bb3,eb4,f4]@6 ~", // Ebsus2
  J: "~ [f2,a3,eb4,f4]@6 ~@2 [f2,a3,eb4,f4]@6 ~@2 [f2,a3,eb4,f4]@6 ~@2 [f2,a3,eb4,f4]@5 ~@2", // F7
  K: "~@9 [gb4,ab4,db5]@3 ~@9 [f4,ab4,db5]@3 ~@8", L: "~@9 [eb4,gb4,b4]@4 ~@8 [db4,gb4,bb4]@4 ~@7",
  M: "~@9 [gb4,ab4,db5]@4 ~@8 [f4,ab4,db5]@3 ~@8", N: "~@9 [eb4,gb4,b4]@3 ~@9 [db4,gb4,bb4]@4 ~@7",
  O: "~@9 [gb4,ab4,db5]@4 ~@8 [f4,ab4,db5]@4 ~@7", P: "~@9 [eb4,gb4,b4]@3 ~@9 [db4,gb4,bb4]@3 ~@8",
  Q: "~ [ab3,db4,f4]@6 ~@2 [ab3,db4,f4]@6 ~@2 [ab3,db4,f4]@6 ~@2 [ab3,db4,f4]@6 ~", // Db
  R: "~ [ab3,db4,eb4]@6 ~@2 [ab3,db4,eb4]@6 ~@2 [ab3,c4,eb4]@6 ~@2 [ab3,c4,eb4]@6 ~", // Absus4 Ab
  S: "~ [gb3,b3,db4]@6 ~@2 [gb3,b3,db4]@6 ~@2 [gb3,b3,db4]@6 ~@2 [gb3,b3,db4]@6 ~", // Gbsus4
  T: "~ [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@6 ~", // Gb
  U: "~ [e3,ab3,db4]@6 ~@2 [e3,ab3,db4]@6 ~@2 [e3,ab3,db4]@6 ~@2 [e3,ab3,db4]@6 ~", // Dbm
  V: "~ [f3,a3,c4,d4]@5 ~@3 [f3,a3,c4,d4]@6 ~@2 [f3,a3,c4,d4]@6 ~@2 [f3,a3,c4,d4]@6 ~", // Dm7
  W: "~ [f3,b3,d4]@6 ~@2 [f3,b3,d4]@6 ~@2 [f3,b3,e4]@6 ~@2 [f3,b3,d4]@7", // Bdim E Bdim
  X: "~ [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@5 ~@3 [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@6 ~", // Gb
  Y: "~ [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@5 ~@3 [bb3,db4,gb4]@6 ~", // Gb
  Z: "~ [gb3,b3,db4]@6 ~@2 [gb3,b3,db4]@6 ~@17", AA: "~@17 [bb1,bb2]@2 ~@2 [bb1,bb2]@3 ~@8",
  AB: "[~ [bb1,bb2]@41 ~@22]/2", AC: "~ [bb1,bb2]@4 ~@27",
})).s("gm_piano").gain(0.31)

// other · trumpet
const trumpet = note(`<
  ~ A B ~@12 C@8 D@2 E@2 F G@2 H I G@2 H J K L M C@8 D@2 N@2 O@4 P Q R@3 S@8 T U@2 C@8 D@2 V W ~@3 X Y@6 Z
>`.pickRestart({
  A: "~ b4@4 ~@27", B: "~ b4@4 ~@4 b4@5 ~@18", C: "~@9 db5@4 ~@8 db5@3 ~@8",
  D: "[~@9 f5@4 eb5@4 db5@4 c5@4 bb4@4 ab4@35]/2",
  E: "[~@17 gb4@26 ~@2 gb4@2 ab4@2 bb4@2 ~@2 c5 ~@3 db5@2 ~@2 eb5@2 ~]/2", F: "~ f5@25 ~@6",
  G: "[~ bb4@25 ~@3 db5@2 eb5@2 f5@25 ~@6]/2", H: "~ eb5@11 ~@5 c5@11 ~@4", I: "~ bb4@24 ~@7",
  J: "~ bb4@11 ~@5 ab4@12 ~@3", K: "~ ab4@12 ~@4 gb4@11 ~@4",
  L: "~@5 f4 ~ bb4 ~ c5@6 ~@2 f4 ~ bb4 ~ c5@9 ~@2, ~@9 bb4 ~@22", M: "~@5 f4 ~ a4 ~ c5@6 ~@2 f4 ~ a4 ~ c5@9 ~@2",
  N: "[~@17 bb4@12 b4@2 bb4@2 ab4@25 ~@6]/2",
  O: "[~ a4@11 ~@5 a4@7 ~ c5@4 b4@28 ~@4 a4@2 g4@2 a4@12 ~@4 e5@8 c5@4 b4@28 ~@7]/4", P: "~ d4@8 f4@8 a4@8 c5@7",
  Q: "~ e5@2 d5@2 ~ c5@3 b4@7 ~ a4@8 g4@7",
  R: "[~ a4@8 f4@8 d4@7 ~ c4@4 b3@19 ~@9 d4@2 e4@2 f4@2 g4@2 a4@7 ~ c5@4 a4@8 c5@4 ~@7]/3",
  S: "[~@9 g5@4 ~@4 e5@4 d5@3 ~ c5@3 ~ d5@12 ~@4 c5@2 b4@2 c5@8 ~@4 b4@2 a4@2 b4@8 ~@8 f4@2 e4@2 f4@2 g4@2 a4@2 g4@2 a4@2 b4@2 c5@2 b4@2 a4@2 b4@2 c5@10 ~@2 e5@2 ~@2 e5@2 ~@2 c5@2 d5@6 g5@2 ~@6 d5 ~ d5@6 g5@2 ~@2 f5@2 e5@2 d5@2 c5@6 d5@2 ~@2 e5@2 ~@2 f5@2 e5@6 d5@2 c5@2 d5@2 c5@2 b4@2 c5@6 b4@2 a4@2 b4@2 a4@2 g4@2 a4@6 g4@2 f4@2 g4@2 f4@2 e4@2 f4@2 ~@4 c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@2]/8",
  T: "~ c5@2 ~@2 c5 ~@3 c5 ~@3 c5@2 ~@2 c5@2 ~@2 c5@2 ~@2 c5@2 ~@2 c5@2 ~", U: "[~ ab4@60 ~@3]/2", V: "~ b4@30 ~",
  W: "~ b4@4 ~@4 b4@4 ~@19", X: "~@25 bb4@2 ~@2 bb4@2 ~", Y: "[~ bb4@190 ~]/6", Z: "~ bb4@4 ~@27",
})).s("gm_trumpet").gain(0.51)

// other · alto sax · "Sax"
const alto_sax = note(`<
  ~ A B ~@12 C D C D C D C D E@2 F@2 G H@2 I J H@2 I K L ~@2 C D C D C D C D E@2 M@2 N@4 O P Q@3 R@8 S T@2 C D C D C D C
  D E@2 U V ~@3 W X@6 Y
>`.pickRestart({
  A: "~ gb4@5 ~@26", B: "~ gb4@3 ~@5 gb4@3 ~@20", C: "~@9 ab4@4 ~@8 ab4@4 ~@7", D: "~@9 gb4@4 ~@8 gb4@4 ~@7",
  E: "[~@9 f4@4 eb4@4 db4@4 c4@4 bb3@4 eb4@35]/2",
  F: "[~@17 gb3@26 ~@2 gb3@2 ab3@2 bb3@2 ~@2 c4 ~@3 db4@2 ~@2 eb4@2 ~]/2", G: "~ f4@25 ~@6",
  H: "[~ gb4@25 ~@3 db4@2 eb4@2 f4@26 ~@5]/2", I: "~ eb4@12 ~@4 c4@12 ~@3", J: "~ f4@24 ~@7",
  K: "~ db4@12 ~@4 c4@13 ~@2", L: "~ db4@13 ~@3 eb4@11 ~@4", M: "[~@17 db4@12 eb4@2 db4@2 db4@25 ~@6]/2",
  N: "[~ a3@11 ~@5 a3@8 c4@4 b3@28 ~@4 a3@2 g3@2 a3@12 ~@4 e4@8 c4@4 b3@28 ~@7]/4", O: "~ d3@8 f3@8 a3@8 c4@7",
  P: "~ e4@2 d4@2 ~ c4@2 ~ b3@8 a3@8 g3@7",
  Q: "[~ a3@8 f3@8 d3@8 c3@4 b2@19 ~@9 a3@2 b3@2 c4@2 d4@2 e4@8 g4@4 e4@7 ~ g4@2 ~@9]/3",
  R: "[~@9 g4@4 ~@4 e4@4 d4@4 c4@4 d4@12 ~@4 c4@2 b3@2 c4@8 ~@4 b3@2 a3@2 b3@7 ~@9 c4@2 b3@2 c4@2 d4@2 e4@2 d4@2 e4@2 d4@2 c4@2 b3@2 a3@2 b3@2 c4@10 ~@2 e4 ~@3 e4@2 ~@2 c4@2 d4@6 g4@2 ~@6 d4 ~ d4@6 g4@2 ~@2 f4@2 e4 ~ d4 ~ a4@5 ~ b4@2 ~@2 c5 ~@3 d5@2 c5@6 b4@2 a4@2 b4@2 a4@2 g4@2 a4@5 ~ g4@2 f4@2 g4@2 f4@2 e4@2 f4@5 ~ e4@2 d4@2 e4@2 d4@2 c4@2 d4@2 ~@4 g4 ~@3 g4 ~@3 g4@2 ~@2 g4@2 ~@2 g4 ~@3 g4@2 ~@2 g4 ~@2]/8",
  S: "~ g4 ~@3 g4@2 ~@2 g4@2 ~@2 g4 ~@3 g4@2 ~@2 g4 ~@3 g4@2 ~@2 g4@2 ~", T: "[~ ab3@60 ~@3]/2", U: "~ gb4@30 ~",
  V: "~ gb4@4 ~@4 gb4@4 ~@19", W: "~@25 f4@2 ~@2 f4@2 ~", X: "[~ bb3@191]/6", Y: "~ bb3@3 ~@28",
})).s("gm_alto_sax").gain(0.37)

// other · trombone
const trombone = note(`<
  ~ A B ~@12 C D C D C D C D E@2 F@2 G H@2 I J H@2 I K L M N C D C D C D C D E@2 O@2 P@4 Q R S@3 T@8 U V@2 C D C D C D C
  D E@2 W X ~@3 Y Z@6 AA
>`.pickRestart({
  A: "~ db4@4 ~@27", B: "~ db4@3 ~@5 db4@4 ~@19", C: "~@9 gb4@4 ~@8 f4@4 ~@7", D: "~@9 eb4@3 ~@9 db4@4 ~@7",
  E: "[~@9 f4@4 eb4@4 db4@4 c4@4 bb3@4 db4@35]/2",
  F: "[~@17 gb3@26 ~@2 gb3@2 ab3@2 bb3@2 ~@2 c4 ~@3 db4@2 ~@2 eb4@2 ~]/2", G: "~ f4@26 ~@5",
  H: "[~ db4@24 ~@4 db4@2 eb4@2 f4@25 ~@6]/2", I: "~ eb4@12 ~@4 c4@12 ~@3", J: "~ db4@24 ~@7",
  K: "~ db4@12 ~@4 ab3@12 ~@3", L: "~ db4@13 ~@3 eb4@11 ~@4", M: "~@5 f3 ~ bb3 ~ c4@6 ~@2 f3 ~ bb3 ~ c4@9 ~@2",
  N: "~@5 f3 ~ a3 ~ c4@5 ~@3 f3 ~ a3 ~ c4@7 ~@4", O: "[~@17 gb3@11 ~ ab3@2 gb3@2 e3@25 ~@6]/2",
  P: "[~ a3@11 ~@5 a3@8 c4@4 b3@28 ~@4 a3@2 g3@2 a3@12 ~@4 e4@8 c4@4 b3@28 ~@7]/4", Q: "~ d3@8 f3@8 a3@8 c4@6 ~",
  R: "~ e4@2 d4@2 ~ c4@2 ~ b3@7 ~ a3@8 g3@7",
  S: "[~ a3@8 f3@8 d3@8 c3@4 b2@20 ~@8 f3@2 g3@2 a3@2 b3@2 c4@7 ~ e4@4 c4@7 ~ e4@4 ~@7]/3",
  T: "[~@9 g4@4 ~@4 e4@4 d4@4 c4@4 d4@12 ~@4 c4@2 b3@2 c4@8 ~@4 b3@2 a3@2 b3@7 ~@9 a3@2 ab3@2 a3@2 b3@2 c4@2 b3@2 c4@2 b3@2 c4@2 b3@2 a3@2 b3@2 c4@9 ~@3 e4@2 ~@2 e4@2 ~@2 c4 ~ d4@5 ~ g4@2 ~@6 d4 ~ d4@6 g4@2 ~@2 f4@2 e4 ~ d4@2 e4@6 f4@2 ~@2 g4@2 ~@2 a4@2 g4@6 f4@2 e4@2 f4@2 e4@2 d4@2 e4@6 d4@2 c4@2 d4@2 c4@2 b3@2 c4@5 ~ b3@2 a3@2 b3@2 a3@2 g3@2 a3@2 ~@4 f4@2 ~@2 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~@2]/8",
  U: "~ f4 ~@3 f4@2 ~@2 f4@2 ~@2 f4 ~@3 f4@2 ~@2 f4@2 ~@2 f4 ~@3 f4@2 ~", V: "[~ ab2@59 ~@4]/2", W: "~ db4@29 ~@2",
  X: "~ db4@4 ~@4 db4@4 ~@19", Y: "~@25 d4@2 ~@2 d4@2 ~", Z: "[~ bb3@191]/6", AA: "~ bb3@3 ~@28",
})).s("gm_trombone").gain(0.72)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@2 B@8 A@4 C@8 D@3 A B@7 A@5 C@8 D@3 A D@3 B@13 A@4 C@8 D@3 E ~@2 F G H ~@5 H
>`.pickRestart({
  A: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", B: "~ x ~@3 x ~@7 x ~@3 x ~@3 x ~@7 x ~@2",
  C: "~ x ~@3 x ~@7 x ~@3 x ~@3 x ~@10", D: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", E: "~@5 x ~@7 x ~@18",
  F: "~@17 x ~@3 x ~@3 x ~@3 x ~@2", G: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@10", H: "~ x ~@30",
})).gain(0.41)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B C@4 D@4 E@3 F G@8 H@3 I C@7 J K L H F G@8 H@2 K M H@3 N C@7 O C@3 P Q@2 R S G@8 H@2 K T U V W X ~@7
>`.pickRestart({
  A: "~ x ~@5 x ~ x ~@3 x ~@3 x ~@9 x ~ x ~ x", B: "~@9 x ~@5 x ~@2 x!2 ~ x!3 ~ x!3 ~ x!3", C: "~@9 x ~@15 x ~@6",
  D: "~@9 x ~@5 x ~@9 x ~@6", E: "~ x ~@7 x ~@5 x ~@9 x ~@6", F: "~@9 x ~@5 x ~@9 x ~ x ~ x ~ x",
  G: "~@9 x ~@3 x ~ x ~ x ~@7 x ~ x ~@4", H: "~ x ~@7 x ~@7 x ~@7 x ~@6",
  I: "~ x ~@5 x ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x ~@3 x ~@2", J: "~@5 x ~@3 x ~@11 x ~@5 x ~ x ~ x",
  K: "~ x ~@7 x ~@7 x ~@7 x ~@5 x", L: "~@9 x ~@7 x ~@7 x ~@6", M: "~ x ~ x ~ x ~ x ~ x ~@22",
  N: "~ x ~@7 x ~@15 x ~@6", O: "~@9 x ~@15 x ~ x ~ x ~@2", P: "~ x ~@5 x ~ x ~@22",
  Q: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", R: "~ x ~@3 x!3 ~ x ~@9 x ~@3 x ~@3 x ~ x ~ x",
  S: "~ x ~ x ~ x ~ x ~@24", T: "~ x ~@7 x ~@11 x ~@5 x ~ x ~@2", U: "~@7 x ~ x ~@8 x!2 ~ x!3 ~ x ~@4 x!2",
  V: "~ x ~ x ~@3 x ~@3 x ~ x ~ x ~@5 x ~@5 x ~@4", W: "~ x ~@5 x ~@10 x!2 ~ x!3 ~ x!3 ~ x!3",
  X: "~ x!3 ~ x!3 ~ x!3 ~ x!3 ~@9 x ~@3 x ~@2",
})).gain(0.46)

// drums · low tom
const low_tom = s("lt").struct("<~@50 A ~@19 B ~@14 C ~@3 D@4 E>".pickRestart({
  A: "~@29 x ~@2", B: "~@25 x!3 ~ x!3", C: "~@9 x ~@3 x ~@18", D: "~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3",
  E: "~ x ~@30",
})).gain(0.36)

// drums · pedal hat
const pedal_hat = s("hh").struct("<A ~@2 A@12 ~@8 A@3 B A@12 ~@8 A@3 B A@16 ~@12 A@3 ~@12>".pickRestart({
  A: "~ x ~@7 x ~@7 x ~@7 x ~@6", B: "~ x ~@30",
})).gain(0.36)

// drums · mid tom
const mid_tom = s("mt").struct("<~ A ~@48 B ~@15 C ~@3 D ~@12 E F G ~@8>".pickRestart({
  A: "~@25 x ~@6", B: "~@25 x ~ x ~@4", C: "~@25 x ~ x ~ x ~@2", D: "~@17 x!3 ~ x!3 ~@8", E: "~ x ~@30",
  F: "~@29 x ~ x", G: "~@3 x ~ x ~@11 x ~@14",
})).gain(0.46)
// … 19 more lines

More by Chicago