Strudelify
Does Anybody Really Know What Time It Is? cover art

1970 · Chicago Transit Authority

Does Anybody Really Know What Time It Is?

Chicago

KeyG majorTempo119 bpm
0:00/0:00
// Does Anybody Really Know What Time It Is? — Chicago
// 119 bpm, 4/4, key G major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 85 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Lead L.
setcpm(119/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.

// other · electric guitar jazz · "Lead L"
const electric_guitar_jazz = note(`<
  ~@14 A ~@2 B C ~@4 D ~@11 E F G ~@2 H@2 I ~@6 J K L M ~@3 N@2 O P Q R ~ S T ~@6 U V ~@2 W ~@3 X ~@5
>`.pickRestart({
  A: "~@21 c5 ~@2", B: "~@5 a#4 ~@2", C: "~@3 c5@2 ~@19", D: "~ b4@3 ~@9 e4@2 ~@2 a4@5 ~@2", E: "~@18 c#5 ~@2 c5 ~@2",
  F: "~ d5 ~@6, ~@3 c5 ~@20", G: "~@19 c#5 ~ c5 ~@2", H: "[d5@2 c5@2 ~ d5@33 ~@10]/2", I: "~@22 d5 ~",
  J: "~@21 d4 e4@2", K: "~ d4@3 e4 ~@19", L: "~@11 d4", M: "~ g4 ~@4", N: "~@22 c5 ~", O: "~ d5@2 a#4@3 ~@18",
  P: "~@17 a#4@2 ~@5", Q: "~ c5 ~@10", R: "~@6 d5 ~@17", S: "b4@3 ~@13 g4@2 a4@2 ~@4", T: "~@6 b4 ~",
  U: "~@13 f5@3 ~@8", V: "~@3 d5@2 ~@19", W: "e5@2 d5 ~@9", X: "~@4 d5 ~@2 e5@2 ~@15",
})).s("gm_electric_guitar_jazz").gain(0.41).pan(0.3)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@22 A@2 B@2 C@2 D ~@13 A@2 B@2 C@2 D ~@13 A@2 B@2 C@2 D ~@3 E@2 F@2 G@2 H ~@6
>`.pickRestart({
  A: "[[f#3,d4]@22 [g3,e4]@7 ~@19]/2", B: "[[b3,f#4]@22 [c4,g4]@7 ~@7 [c4,g4]@3 ~ [d4,a4]@3 ~@3 [c4,a4]@2]/2",
  C: "[b4@13 ~@8 d4@2 [b3,d4], d4@12 ~@9 g4 ~@2]/2", // Bm
  D: "[c4,e4]@3 [b3,d4]@2 ~ [g3,b3]@3 ~ b3@6 [c4,e4]@2 ~@6, ~@3 d4@2 ~@3", E: "[[f#3,b3,d4]@11 [g3,c4,e4]@4 ~@9]/2",
  F: "[[b3,d4,f#4]@22 [c4,e4,g4]@7 ~@7 [c4,e4,g4]@4 [d4,f#4,a4]@3 ~@3 [c4,g4,a4]@2]/2", // Bm C D Am7
  G: "[[f#4,b4]@27 ~@15 [b3,g4]@2 ~@2 [g3,b3,d4]@2, d4@12 ~@9 d4@2 ~]/2", // B5 Em G
  H: "[a3,c4,e4]@3 [g3,b3,d4]@2 ~ [e3,g3,b3]@3 ~ b3@6 [a3,c4,e4]@2 ~@6, ~@3 [g3,d4]@2 ~@3", // Am G Em Am G5
})).s("gm_string_ensemble_1").gain(0.46)

// chords · piano
const piano = note(`<
  A B C@2 D@2 E@2 F G H I J K@7 L M A B C@2 D@2 E@2 H I J K@7 L M A B C@2 D@2 E@2 H I J K@7 L M A B C@2 D@2 E@2 L M A B
  C@2 D@2 E@2 N@2 O@3
>`.pickRestart({
  A: "[g3,b3,d4,f#4]@5 ~ [b3,d4,f#4]@4 g3 ~ [b3,d4,f#4]@4 g3@2 [g3,b3,d4,f#4]@2 ~@2 [g3,b3,c4,e4]@2, ~@3 g3 ~@2 g3 ~@5", // Gmaj7 Bm Gmaj7 Cmaj7
  B: "~ g3 ~@2 [g3,b3,c4,e4]@4 ~@2 g3@2 g3@3 ~ g3@2 g3@3 ~ g3 ~, ~@10 [b3,c4,e4]@6 [b3,c4,e4]@5 ~@3", // Cmaj7
  C: "[[g3,f#4]@3 g3@3 [b3,d4,f#4]@4 g3@2 [b3,d4,f#4]@4 g3@2 [g3,b3,d4,f#4]@3 ~ g3@2 g3@2 ~@2 [g3,b3,c4,e4]@4 ~@2 g3@2 g3@2 ~@2 g3@2 ~ g3@2 [b3,c4] g3 ~, [b3,d4]@6 g3@2 ~@4 g3@2 ~@8 [b3,c4,e4]@4 ~@8 [b3,c4,e4]@5 ~ [b3,c4,e4]@6 ~@2]/2", // Gmaj7 Bm Gmaj7 Cmaj7 Bm Cmaj7
  D: "[[b3,d4,f#4]@4 g3@2 [b3,d4,f#4]@4 g3@2 [b3,d4,f#4]@4 g3@2 [g3,b3,d4,f#4]@4 [b3,c4,e4]@3 g3@2 ~ [g3,b3,c4,e4]@5 ~ [g3,b3,c4,e4]@4 ~@2 g3 ~ g3@4 [b3,c4] ~, g3@3 ~@3 g3@2 ~@4 g3@2 ~@8 g3@2 ~@15 c4@6 ~@3, ~@40 [b3,e4]@7 ~]/2", // Bm Gmaj7 Cmaj7 E5
  E: "[[g3,b3,d4,f#4]@4 g3@2 f#4@4 g3@2 [b3,d4,f#4]@4 g3@2 [g3,b3,d4,f#4]@2 ~@2 g3@2 ~ g3@2 ~ [b3,c4,e4]@3 g3@2 ~ [g3,b3,c4,e4]@3 g3@2 b3 ~ d4 ~@6, c#4 ~@5 [b3,d4]@6 ~@10 [b3,c4,e4]@5 ~@21, ~@6 g3@2 ~@4 g3@3 ~@13 g3@2 ~@10 [g3,b3,c4,e4]@4 ~@4]/2", // Gmaj7 Bm Gmaj7 Cmaj7 Bm Cmaj7
  F: "[a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@4 ~@2 [b3,e4,g4]@4 ~@2 [b3,e4,g4]@3 ~@3", // D Em
  G: "[c4,f4,a4]@4 ~@2 [c4,f4,a4]@3 ~@3 [b3,e4,g4]@3 ~@3 [b3,e4,g4]@3 ~@3", H: "[g2,g3,b3,d4,g4]@23 ~",
  I: "[f2,f3,a3,c4,d4,f4]@23 ~", // Dm7
  J: "[f4,a4]@4 d4@2 [f4,a4]@4 d4@2 [f4,a4]@4 d4@2 [f4,a4]@4 d4 ~, [a#2,d3,f3,a#3]@19 ~@5", // F A#
  K: "[[d#4,g4]@4 d4@2 [d#4,g4]@4 d4@2 [d#4,g4]@4 d4@2 [d#4,g4]@3 ~ [d3,d4]@6 d4@2 d4@4 ~@6 d4@2 [a#3,d4,f4,a4]@4 d4@5 d4@3 d4@4 [d#3,d4]@2 d4@4 d4@2 [a#3,d4,g4,a#4]@4 d4@6 d4@2 d4@4 d4@2 d4@4 d4@2 [a#3,d4,f4,a4]@4 d4@5 d4@3 d4@4 [d#3,d4]@2 d4@4 d4@2 [a#3,d4,g4,a#4]@4 [d#3,d4] ~ d4@4 d4@2 d4@4 [d#3,d4]@2 d4@4 d4@2 d4@4 [d#3,d4]@2 d4@4 d4@2 d4@4 [d#3,d4]@2 d4@4 ~@2 [a#3,d4,g4,a#4]@4 [d#3,d4] ~, [d#3,g3,a#3]@20 ~@2 f3@12 a#2@12 f#3 ~@7 [g4,a#4]@6 [g4,a#4]@6 ~@12 [f4,a4]@6 [f4,a4]@6 ~@12 [g4,a#4]@6 [g4,a#4]@6 ~@12 [g4,a#4]@6 [g4,a#4]@6 [g4,a#4]@6 [g4,a#4]@6 [g4,a#4]@6 [g4,a#4]@4 d4@2 ~@6, g#3@2 ~@16 d4 ~@3 a#2@8 [f4,a4]@4 d4@2 f3@10 g3@18 [f#3,g3]@6 ~@24 g3@18 [f#3,g3]@7 g3@17 g3@12 g3@12 f#3@7 ~, ~@22 [a#3,f4,a4]@8 a#3@6 [f4,a4]@6 ~@4 [a#3,g4,a#4]@8 a#3@12 ~@4 [a#3,f4,a4]@8 a#3@12 ~@4 [a#3,g4,a#4]@8 a#3@12 ~@6 [a#3,g4,a#4]@6 a#3@12 a#3@12 a#3@11 g3@6 ~, ~@14 d3@9 d#3@6 ~ d#3@5 a#2@6 a#2@6 d#3@6 ~ d#3@5 ~ d#3@5 ~ d#3@5 ~ d#3@5 ~ d#3@5 ~]/7", // D# D A#maj7 D#maj7 Gm A#maj7 D#maj7 Gm …
  L: "[a3,d4,f#4]@5 ~ [a3,d4,f#4]@5 ~ [b3,e4,g4]@5 ~ [b3,e4,g4]@5 ~", // D Em
  M: "[c4,f4,a4]@5 ~ [c4,f4,a4]@4 ~@2 [b3,e4,g4]@4 ~@2 [b3,e4,g4]@3 ~@3", // F Em
  N: "[f4@9 f4@2 ~@13 [d#3,a#3,d4,g4,a#4,d5]@11 ~ [f3,a3,c4,f4,a4,c5]@12, [d3,a3,c4,a4,c5]@11 ~ [f3,a3,d4,f4,a4,d5]@10 g3@8 ~@18, ~@20 a#3@3 ~ c5 ~@23, ~@21 d#3@2 ~@25]/2", // D#maj7 F D7 Dm
  O: "[~ g#3 ~@10 d5@2 ~@21 a6@34 ~@3, f#5@14 b4@12 b5@2 f#4@3 d6@2 b5@36 ~@3, [d4,b4,d5]@7 f#4 b4 [d4,d5] f#4 b4 d4@2 f#4 d5 f#5@2 f#4 d5@11 f#6@39 ~@3, [g3,f#4]@6 g3@19 f#5@44 ~@3, b3@5 b3@15 f#5 b5@2 f#4 d4@45 ~@3]/3", // G D Gmaj7
})).s("gm_piano").gain(0.28)

// other · trumpet
const trumpet = note(`<
  A B@2 C D E@2 F G H I ~@2 J@5 K@2 G H L M N M O P Q P R ~@2 S@5 K@2 G H L M N M O P Q P I ~@2 S@5 K@2 G H L M N M O P
  Q P G H ~ T@2 U@2 V@2 W@2 X Y@3
>`.pickRestart({
  A: "~@11 d5", B: "[c5@3 b4@9 g4@4 a4@2 b4@3 ~ d4@18 ~@2 d5@2 ~@2 d5@2]/2", C: "c5@2 b4@10 ~ b4@5 a4 b4@5, ~@6 a4 ~@5",
  D: "d4@11 ~@7 b4@2 c5 d5 ~ e5", E: "[~ f#5 ~ g5 ~@2 a5@23 ~ a5 b5@3 g5@2 f#5@4 e5@2 d5@4 c5@2]/2",
  F: "b4@12 g4@3 ~ a4@2 g4@2 a4@2 b4@2", G: "d5 ~ d5 ~ d5 ~ d5 ~", H: "d5@3 ~@3 d5@2 ~@4 d5@3 ~@3 d5@2 ~@4",
  I: "g4@23 ~", J: "[d5@3 ~@3 c5@2 ~@4 a#4@3 ~ g4@2 ~@4 d4@24 g4@23 ~ a#4@24 g4@25 ~]/5", K: "[g4@7 ~]/2",
  L: "b4@3 ~@4 b4@3 ~@3 b4@2 ~@3 b4@3 ~ g4@2", M: "~@2 g4 ~@2 g4 ~@2 g4 ~@3",
  N: "b4@3 ~@3 b4@3 ~@3 b4@4 c5@2 b4@4 g4@2", O: "b4@2 ~@4 b4@3 ~@3 b4@4 c5@2 b4@4 g4@2",
  P: "~@2 g4 ~@2 g4 ~@2 e4 g4 ~@2", Q: "b4@3 ~@3 b4@3 ~@3 b4@3 ~ c5@2 b4@4 g4@2", R: "g4",
  S: "[d5@3 ~@3 c5@3 ~@3 a#4@3 ~ g4@2 ~@4 d4@24 g4@23 ~ a#4@24 g4@25 ~]/5",
  T: "[b4!2 ~@4 a4!2 ~@4 g4@5 ~ e4@3 ~ d4@21 ~@5]/2", U: "[b4 ~ b4 ~@3 a4!2 ~@4 g4@5 e4 a4 ~@3 d4@20 ~@6]/2",
  V: "[b4!2 ~@4 a4 ~ a4 ~@3 g4@5 ~ e4 ~@3 d4@13 ~@13]/2", W: "[b4 ~ b4 ~@3 a4!2 ~@4 g4@6 a4@2 ~@2 c5@13 ~ d5@8 ~@4]/2",
  X: "d5@10 ~@2 c5@9 ~@3", Y: "[b4@65 ~@7]/3",
})).s("gm_trumpet").gain(0.32)

// other · trombone
const trombone = note(`<
  A B C B D E F E G H I ~@2 J@5 ~@2 G H A B C B D E F E I ~@2 J@5 ~@2 G H A B C B D E F E I ~@2 J@5 ~@2 G H A B C B D E
  F E G H ~ K@2 L@2 M@2 N@2 O P@3
>`.pickRestart({
  A: "f#3@3 ~@3 f#3@3 ~@3 f#3@2 ~@4 f#3@2 ~@2 e3@2", B: "~@2 e3 ~@2 e3 ~@2 e3 ~@3",
  C: "f#3@2 ~@4 f#3@2 ~@4 f#3@4 g3@2 f#3@3 ~ e3@2", D: "f#3@3 ~@3 f#3@3 ~@3 f#3@4 g3@2 f#3@3 ~ e3@2",
  E: "~@2 e3 ~@2 e3 ~@2 d3 e3 ~@2", F: "f#3@3 ~@3 f#3@3 ~@3 f#3@4 g3@2 f#3@4 e3@2", G: "d3@5 ~ e3@5 ~",
  H: "f3@3 ~ e3@3 ~", I: "d3", J: "[~@22 d3@24 a#2@23 ~ d3@24 a#2@26]/5",
  K: "[b3!2 ~@4 a3 a3@2 ~@3 g3@5 ~ e3@2 ~@2 d3@14 ~@12]/2", L: "[b3 ~ b3 ~@3 a3 a3@2 ~@3 g3@6 a3 ~@3 d3@15 ~@11]/2",
  M: "[b3!2 ~@4 a3!2 ~@4 g3@6 e3 ~@3 d3@12 ~@14]/2", N: "[b3 b3@2 ~@3 a3!2 ~@4 g3@5 ~ a3 ~@3 f3@13 ~ a#3@9 ~@3]/2",
  O: "d#3@5 ~ f3@4 ~@2", P: "[g3@65 ~@7]/3",
})).s("gm_trombone").gain(0.46).pan(0.1)

// other · brass section · "Brass"
const brass_section = note(`<
  A B C D E F G H I J ~@3 K@5 L@2 I J A B C D E F G M ~@3 K@5 L@2 I J A B C D E F G M ~@3 K@5 L@2 I J A B C D E F G M I
  J ~ N@2 O@2 P@2 Q@2 R S@3
>`.pickRestart({
  A: "d4@2 ~@4 d4@2 ~@4 d4@2 ~@4 d4@3 ~ b3@2", B: "~@4 b3@2 ~@4 b3@2 ~@4 b3@3 ~@5",
  C: "d4@3 ~@3 d4@3 ~@3 d4@4 e4@2 d4@3 ~ b3@2", D: "~@2 b3 ~@2 b3 ~@2 b3 ~@3",
  E: "d4@2 ~@4 d4@2 ~@4 d4@4 e4@2 d4@3 ~ b3@2", F: "~@2 b3 ~@2 b3 ~@2 a3 b3 ~@2",
  G: "d4@3 ~@3 d4@3 ~@3 d4@4 e4@2 d4@4 b3@2", H: "~@4 b3@2 ~@4 b3@3 ~@3 e4@2 g4@2 ~@4", I: "f#3@10 ~@2 g3@9 ~@3",
  J: "a3@3 ~ g3@3 ~", K: "[d5@3 ~@3 c5@3 ~@3 a#4@3 ~ g4@2 ~@4 a3@24 a#3@24 a3@24 d4@26]/5", L: "[d4@7 ~]/2",
  M: "~@4 b3@2 ~@4 b3@3 ~@3 a3@2 b3@2 ~@4", N: "[b4!2 ~@4 a4!2 ~@4 g4@6 e4 ~@3 d4@20 ~@6]/2",
  O: "[b4!2 ~@4 a4 a4@2 ~@3 g4@6 a4 ~@3 d4@20 ~@6]/2", P: "[b4 ~ b4 ~@3 a4 a4@2 ~@3 g4@6 e4 ~@3 d4@13 ~@13]/2",
  Q: "[b4 ~ b4 ~@3 a4 a4@2 ~@3 g4@6 a4 ~@3 d4@13 ~ f4@9 ~@3]/2", R: "g4@10 ~@2 a3@9 ~@3", S: "[f#4@65 ~@7]/3",
})).s("gm_brass_section").gain(0.27).pan(0.9)

// chords · pad sweep · "Swell"
const pad_sweep = note("<~@13 A@5 ~@15 A@5 ~@15 A@5 ~@27>".pickRestart({
  A: "[~@22 [d4,f4,a4]@22 ~@2 [d4,g4,a#4]@23 ~ [f4,a4,d5]@22 ~@2 [d4,g4,a#4]@26]/5", // Dm Gm Dm Gm
})).s("gm_pad_sweep").gain(0.41)

// other · trombone · "Solo"
const trombone_2 = note(`<
  ~@82
  [~@13 d4 d#4 ~ d4 ~ b3 g3 ~@2 d#3 ~]
  [d3@9 ~@2 d#3 e3 ~ g3 ~ a3 ~ b3 ~ c#4 d4 ~ e4]
  [~ f#4 ~@2 g4@2 ~ f#4@10 ~@7, ~@4 f#4 ~@19]
>`).s("gm_trombone").gain(0.51)

// bass · acoustic bass · "Bass"
const bass = note(`<
  A@2 B@2 C@2 D@2 E F G H I J@5 K L M N A@2 B@2 O@2 D@2 G H I J@5 K L M N P@2 B@2 C@2 D@2 G H I J@5 K L M N A@2 B@2 C@2
  D@2 M Q P@2 B@2 C@2 D@2 R S T@3
>`.pickRestart({
  A: "[g2@5 ~ f#2@6 e2@4 d2@2 b1@4 c2@6 b1@2 a1@4 g1@6 a1@2 b1@3 ~ a1@2]/2",
  B: "[g2@6 f#2@6 e2@4 d2@2 b1@4 c2@5 ~ a1@2 d2@4 ~@2 e2@4 ~@2 f#2@5 ~, ~@28 c2 ~@19]/2",
  C: "[g2@6 f#2@6 e2@4 d2@2 b1@4 c2@6 b1@2 a1@4 g1@6 a1@2 b1@3 ~ b1@2]/2",
  D: "[~@4 c2 ~@5 c2 ~ e2@4 d2@2 b1@3 ~ c2@5 ~ c2@2 d2@4 b1@2 e2@4 c2 ~ g2@6, g2 f#2 ~@6]/2",
  E: "d2@4 ~@2 d2@5 ~ e2@4 ~@2 e2@4 b1 ~", F: "f2@4 ~@2 f2@4 b1 ~ e2@4 ~@2 e2@3 ~@3", G: "g2@11 ~", H: "f2@21 ~ f1@2",
  I: "~ a#1@3 f1@2 c2@4 a#1 ~ d2@4 a1 ~ f2@4 a1 ~",
  J: "[d#2@4 d#2 ~ f2@4 [c#2,d#2]@2 g2@3 ~ a2@2 ~@4 a#2@8 a2@4 a1 b1 g2@4 ~ b1 f2@3 ~ d#2@7 ~ d2@4 g#1@2 d#2@4 c2@2 a#1@4 a#2@6 a#2 ~ a2@4 c2 [d2,e2] g2@4 ~@2 f2@3 ~ d#2@8 d2@4 g#1@2 d#2@4 c2@2 a#1@4 e1@2, ~@22 c#3 ~@67 c2 ~@29]/5", // C#sus2 Dsus2
  K: "d#2@4 ~@2 d#2@3 ~ c2 ~ d#2@4 ~@2 d#2@4 ~@2", L: "d#2@4 ~@2 d#2@3 ~ c2 ~ d#2@3 ~@3 d#2@4 ~@2",
  M: "d2@3 ~@3 d2@4 ~@2 e2@3 ~@3 e2@3 ~@3", N: "f2@4 ~@2 f2@4 [g1,a1] ~ e2@4 ~@2 e2@3 ~ d1@2",
  O: "[g2@6 f#2@6 e2@4 d2@2 b1@3 ~ c2@6 b1@2 a1@4 g1@6 a1@2 b1@3 ~ b1@2]/2",
  P: "[g2@5 ~ f#2@6 e2@3 ~ d2@2 b1@4 c2@6 b1@2 a1@4 g1@6 a1@2 b1@3 ~ a1@2]/2",
  Q: "f2@4 ~@2 f2@3 ~ [g1,a1] ~ e2@4 ~@2 e2@3 ~ d1@2", R: "f2 f2@2 ~@3 f2@4 ~@2 a#1 ~ a#1@2 ~@2 a#1@4 a#1 ~",
  S: "d#2 d#2@2 ~@3 d#2@5 ~ f1 f1@2 ~@3 f1@4 [c1,d1] ~", T: "[g1@7 ~]/3",
})).s("gm_acoustic_bass").gain(0.32)

// bass · acoustic bass · "Bass" · soft notes
const bass_soft = note(`<
  ~@3 A ~ B ~ C D E ~@2 F G H I J K ~@2 B ~@4 A ~ B ~ C ~@2 F G H I J K ~@2 B ~@4 A ~ B ~ C ~@2 F G H I J K ~@2 B ~@4 A
  ~ B ~ C B ~@4 A ~ B ~ C ~ L ~@3
>`.pickRestart({
  A: "~@10 [b1,c2] ~@5 [b1,d2,e2] ~@7, ~@8 c2 ~@3", B: "~@22 a1 ~", C: "~@10 [g1,a1] ~@13", D: "~@10 b1 ~@13",
  E: "~@10 a1 ~@11 [a1,b1] ~", F: "~@4 g#1 ~@5 g#1 ~@5 b1 ~@5 g1 b1", G: "~@10 a#1 ~@9 e2 ~@3", H: "~@16 a1 ~@7",
  I: "~@4 g#1 a#1 ~@18", J: "~@16 [a1,b1] ~@7", K: "~@11 a#1 ~@10 f#1@2", L: "~@18 e1 ~@3 e1 ~",
})).s("gm_acoustic_bass").gain(0.14)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<A@8 ~@6 A@4 ~@4 A@8 ~@4 A@4 ~@4 A@8 ~@4 A@4 ~@4 A@8 ~@2 A@8 B A ~@3>".pickRestart({
  A: "~@5 x ~@6", B: "~@5 x ~@5 x",
})).gain(0.34)

// drums · snare
const snare = s("sd").struct(`<
  A B A B A B A@2 C@2 A@3 D E@3 A@3 C@2 A B A B A B A@5 D E@3 A@3 C@2 A B A B A B A@5 D E@3 A@3 C@2 A B A B A B A@2 C@2
  A B A B A B A@4 ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~@6 x ~@9 x!3 ~@5", C: "x!4", D: "x!2 ~@4 x ~@5 x ~@3 x!3 ~@5", E: "~ x ~@2",
})).gain(0.54)

// drums · low tom
const low_tom = s("lt").struct("<~@14 A@3 ~@17 A@3 ~@17 A@3 ~@25 B C D>".pickRestart({
  A: "~@3 x", B: "~@7 x", C: "~@2 x ~@7 x ~@2 x ~@2 x ~@3 x ~@3", D: "~ x!2 ~ x ~ x ~ x ~@4 x!2 ~@9",
})).gain(0.41)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@10 A@2 B A@7 ~@10 A@2 B A@7 ~@10 A@2 B A@7 ~@25>".pickRestart({
  A: "x!4", B: "x!3 ~",
})).gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<~@14 A@3 ~@17 A@3 ~@17 A@3 ~@25 B C D>".pickRestart({
  A: "~@16 x!2 ~@6", B: "~@20 x!2 ~ x", C: "x ~@2 x!3 ~@3 x ~@2 x ~ x ~@2 x ~ x ~ x ~ x", D: "~ x",
})).gain(0.48)

// drums · open hat
const open_hat = s("oh").struct("<~@12 [~@3 x] ~@19 [~@3 x] ~@19 [~@3 x] ~@32>").gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@82 [~@19 x ~@4] [~@7 x ~@16] ~>").gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  A ~ A ~ A ~ A ~@6 B@4 ~ A ~@3 A ~ A ~ A ~ A ~@4 B@4 ~ A ~@3 A ~ A ~ A ~ A ~@4 B@4 ~ A ~@3 A ~ A ~ A ~ A ~@3 A ~ A ~ A
  ~ A ~ C D A ~@2
>`.pickRestart({
  A: "x", B: "~@11 x", C: "x ~@12 x ~@10", D: "~ x ~@11 x ~@10",
})).gain(0.41)

// drums · ride
const ride = s("rd").struct(`<
  A B A B A B A B@3 ~@10 B@2 A B A B A B A B ~@10 B@2 A B A B A B A B ~@10 B@2 A B A B A B A B@3 A B A B A B A B A B ~@3
// … 8 more lines

More by Chicago