Strudelify
It's Alright (Baby's Comin' Back) cover art

1992 · Walking on Broken Glass

It's Alright (Baby's Comin' Back)

Annie Lennox

KeyF minorTempo129 bpm
0:00/0:00
// It's Alright (Baby's Comin' Back) — Annie Lennox
// 129 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(129/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 · synth bass 2
const bass = note(`<
  ~@37 A B A B A B A B C D E F C D E F C D E G C D E G H I J K H L J M N O N P N O N Q C D E F C D E F C D E G C D E G H
  I J R H L J S N O N P N O N Q N O N P N O N T C D E G C D E G A B A B A B A B N O N P N O N Q ~@11
>`.pickRestart({
  A: "f2", B: "c2!2 ~@6", C: "f1@3 ~ f1@2 ~ f1@2 ~ f1@3 ~ f1@2", D: "eb1@3 ~ eb1@2 ~ eb1@2 ~ eb1@3 ~ eb1@2",
  E: "db1@3 ~ db1@2 ~ db1@2 ~ db1@3 ~ db1@2", F: "c1@3 ~ c1@2 ~ f1@2 ~ f1@3 ~ eb1@2",
  G: "eb1@3 ~ eb1@2 ~ eb1@2 ~ f1@2 f1@2 eb1@2", H: "f1@2 ~ f1@2 ~ f1@2 ab1@2 ~ ab1@2 ~ ab1@2",
  I: "g1@2 ~ g1@2 ~ g1@2 eb1@2 ~ eb1@2 ~ eb1@2", J: "db1@2 ~ db1@2 ~ db1@2 f1@2 ~ f1@2 ~ f1@2",
  K: "c1@2 ~ c1@2 ~ eb1@2 f1@2 f1@2 eb1 ~ c1@2", L: "g1@2 ~ g1@2 ~ g1@2 eb1 ~ eb1 ~ f1@2 eb1 ~",
  M: "c1@2 c1 ~ eb1@2 f1@2 ab1 ~ ab1@2 f1@2 eb1 ~", N: "f1@3 ~ f1@2 eb1@2 f1@3 ~ f1@2 eb1 ~",
  O: "c1@3 ~ c1@2 ~ c1!2 ~ c1@2 eb1@2 c1@2", P: "c1@3 ~ c1@2 ~ c1 eb1 ~ eb1@2 eb1@2 c1@2", Q: "c1@3 ~@13",
  R: "c1@2 ~ c1@2 ~ eb1 ~ f1@2 f1@2 eb1@2 c1 ~", S: "c1@2 c1 ~ eb1@2 f1@2 ab1@2 ab1 ~ f1@2 eb1@2",
  T: "c1!2 eb1 f1 ab1 g1 f1 eb1",
})).s("gm_synth_bass_2").gain(0.57)

// bass · cello
const bass_2 = note("<~@3 A B C D@3 E@7 F@8 G@2 ~ H I J I H I J I K@2 ~@111 L@4>".pickRestart({
  A: "~ c3@4 f3@3", B: "~ f3@7", C: "~@3 eb3@13", D: "[~@4 db3@16 c3@8 ~ f2@16 f2@3]/3",
  E: "[~@6 eb2@16 db2@17 c2@8 f2@25 eb2@17 db2@17 c2@6]/7",
  F: "[~@2 f2@25 eb2@16 ab2@12 ~ bb2@4 c3@17 f2@16 eb2@17 db2@17 eb2]/8", G: "[~@7 f2@25]/2", H: "f2", I: "eb2",
  J: "db2", K: "f2/2", L: "[~@6 c3@5 f2@17 ~@4]/4",
})).s("gm_cello").gain(0.22).pan(0.4)

// chords · piano
const piano = note("<A@2 B C@5 D@5 E@3 F G@3 H@7 I J K L M N@2 O P@2 ~@104 Q R@7 S@3>".pickRestart({
  A: "[~@12 f3@3 ~@14 f4@3, f2@4 f4@2 g4@2 f3@2 f4@6 eb4@3 eb3@2 bb3@2 ab4@2 [eb3,g4]@7, ~@2 c3@13 ~ [eb2,bb4]@16, ~@3 c4@12 bb3@3 bb2@14, ~@3 f3 ab4@11 ~ g4@6 eb4@10]/2", // Eb Eb5
  B: "~@13 db2@3, ~ db2@7 g4 db3@3 f4@4, ~ [ab2,ab3]@3, ~@4 db3 f4 ab4@10, ~@5 db4@11", // Ab
  C: "[~@7 g4@2 ~@5 f3@2 ~ f4 ~@5 f3@2 ~@22 [eb2,f4]@4 ~@13 db3@4 ~@7 e4@2 ~ f4@2, ~ c2@8 ~ [f2,c4]@9 c5 f3 c5@10 [f2,g4]@2 ab4@2 g4@6 ab4@9 ~@6 ab4@3 db3@3 f4@6 e4@6 ~@6, ~@2 [c3,g3,e4]@8 ab3@13 ab4@2 f3@9 bb3@16 ~@4 db3@2 f4@2 g4@10 ~@4 d4@5 ~@3, ~@5 f4@5 f4@6 f3@2 [f4,ab4] f5@6 f4@2 c4@8 eb2@8 [eb3,g4]@8 db2@17 [c2,c3]@9 [f2,ab3,c4]@3, ~@12 c3@15 f2@2 f4@6 [eb4,bb4]@16 ~@4 [ab3,db4]@13 ~@12]/5", // Ebsus2 F5 Fsus2 C Fm Eb C Fm …
  D: "[~@13 [f4,ab4]@7 ~@14 eb4@3 ~ ab3@9 ~@4 db2@3 ~ [c2,c3,c4,e4]@8 f2@8 ~@8 ab4, ~@5 f2@15 ~@2 eb2@16 db2@13 ~@21 f2@8, ~@5 [c4,f4,ab4]@7 c4@8 ~@9 g3@8 ~@12 ab3@5 g3@8 ~ ab3@13 ab3@4, ~@9 f3@11 ~@6 eb3@11 ~@10 db3@7 ~@23 c4@3, ~@30 [bb3,f4]@7 ~ [db4,f4]@15 ~@10 [c4,f4]@15 f4@2]/5", // Fm C Fm Bb5 Db F5
  E: "[~@4 [f2,f4]@3 ~@3 bb3@4 ~@7 eb2@3 ~ [db3,db4,ab4]@8 ~@4 [db2,db4,ab4]@3 ~@6 e4@2, [f3,g4]@8 eb2@11 g4@5 ~ f4@16 ~@7, ~@10 eb4@13 ~@10 [db4,ab4]@2 bb4@5 ~@8, ~@10 g4@7 eb3@7 ~ db2@12 ~@4 [c2,c3,c4,g4]@7, ~@15 [bb3,f4]@9 ~@9 db3@7 ~@8]/3", // F Db5 Fsus2 Db5 C5 Bb5
  F: "~ [f2,ab3,c4,f4]@4 [c4,f4,ab4] [c4,f4,ab4]@2, ~@5 f2@3", // Fm
  G: "[~@7 f2@2 ~@14 eb2@2 [eb4,ab4,c5]@3 ~ ab4@7 ~@4 [ab2,c5]@3 ~@3 c5@2, [f4,ab4]@4 ~@5 [eb4,g4,bb4]@4 [eb4,g4,bb4]@4 [eb4,g4,bb4]@4 [eb4,g4,bb4]@4 ~@4 c5@9 ab4@5 ~@5, ~ c4@4 [c4,f4,ab4]@4 ~@6 eb3@4 eb3@6 ~@4 eb4@6 ~ [ab3,eb4]@8 ~@4, ~@2 f3@6 ~@3 eb2@4 eb2@8 ~@5 ab2@12 ~@4 [c3,e4,bb4,db5]@4]/3", // Ab Fm Eb Fm Ab5 Bbdim
  H: "[bb4@2 ~@6 c3@3 e4 ~ [c4,f4]@2 [c4,f4,ab4]@4 ~@8 [c4,f4,ab4]@2 ~@13 eb2@2 ~@15 db2@4 g4@4 g4@3 ~ [f2,f3,f4,g4,a4,c5]@28 ~@13, ~@2 [e4,g4]@4 e4@4 ~@3 f3@8 f3@8 ~@5 eb3@4 eb3@6 ~@6 db3@4 db3@8 ~@50, ~@4 c2@7 ~@2 f2@12 f2@4 eb2@13 ~@4 db2@13 ~@4 [eb2,eb3,eb4,bb4]@7 ~@42, ~@19 [c4,f4,ab4]@4 [c4,f4,ab4]@4 ~@5 [eb4,g4,bb4]@4 [eb4,g4,bb4]@4 [eb4,g4,bb4]@4 [f4,ab4,c5]@4 [f4,ab4,c5]@4 [f4,ab4,c5]@4 [ab4,c5]@6 ~@50, ~@57 f4@6 ~@49]/7", // F5 Fm F Em Eb5 Fm Eb Fm …
  I: "~@6 [f4,c5,f5,c6,f6]@9 ~, [f1,f2]@15 ~", J: "~@6 [f4,c5,f5,c6,f6]@9 ~, [eb1,eb2]@15 ~",
  K: "~@6 [db4,ab4,eb5,f5,ab5,db6]@9 ~, [db1,db2]@15 ~", // Db
  L: "~@13 [ab4,ab5]@2 ~, [eb1,eb2]@11 [c5,c6]@5, ~@2 db5@13 ~, ~@3 db6@13, ~@5 c5 c6@2 [bb4,bb5]@7 ~", // Ab Eb C Bb
  M: "~@12 [c5,c6]@3 ~, [f1,f2,f4,f5]@15 ~, ~@3 [ab4,ab5]@5", // C F Ab
  N: "[~@12 [eb4,eb5]@3 ~@14 ab4@2 db4, [eb1,eb2,bb4,bb5]@15 db1@10 ab4@2 db4 g5@3 ~, ~@6 [g4,g5]@9 ~ [db2,db5]@16, ~@16 db4@8 ab5@7 ~, ~@22 [f4,f5]@9 ~]/2", // Eb Eb5 G Db F
  O: "[eb1,eb2,g4,g5]@7 ~", P: "[f1,f2,f4,c5,f5]/2",
  Q: "~@13 f3@3, f2@4 f4@3 g4 f3@2 f4@6, ~ c3@7, ~@3 c4@13, ~@3 f3 ab4@12",
  R: "[~@14 f4@4 ~@14 db2@4 ~@7 g4@2 ~@5 f3@2 f4 ~@6 f3@2 ~@8 ab4@2 ~@13 [eb2,f4]@4 ~@14 db3@5 ~ e4@4, bb3@3 bb2@6 ab4 g4 eb3@8 ~@2 ab2@5 g4@4 f4@10 f4@5 ~ f4@6 f3@2 [f4,ab4] f5@4 ab4@2 [f3,f4]@2 [f2,c4]@2 f4@2 [f2,g4]@4 eb2@9 [eb3,g4]@8 ~ db2@19 ~@4, ~ [eb2,bb4]@18 db2@4 f4 ab4@12 ~@12 c3@23 ~ g4@6 ab4@10 ~@4 [ab3,db4]@5 db3@3 f4@8 ~@4, ~ g4@5 bb3@13 ~@3 ab3@6 db3@8 [c2,c3,e4]@9 ~ [f2,c4]@9 c5 f3 c5@14 ~ bb4@16 ~@5 ab4@14 [c2,c3]@5, ~ eb4@3 eb3@3 eb4@12 ~@3 db3 db4@13 ~ g3@8 ~ ab3@25 [bb3,eb4]@17 ~@3 db3@2 f4@3 g4@12 ~@4]/7", // Ebsus2 Fm F F5 Fsus2 Eb Eb5 Db5 …
  S: "[~@3 e4@2 c2@2 [f1,ab3,c4,f4]@32 ~@9, d4@7 ~@41]/3", // Fm
})).s("gm_piano").gain(0.42)

// chords · harpsichord
const harpsichord = note("<~@4 A@2 B C@3 ~@142>".pickRestart({
  A: "[~@2 f3@3 ab3@2 ~@2 ab3@2 ~@2 ab3@2 ~@2 ab3@2 ~@2 g3@2 ~@2 g3@2 eb3@3 g3@2, ~@7 c4@4 f3@4 c4@4 eb3@4 bb3@4 ~@5]/2",
  B: "~ g3 ~ ab3 ~ ab3 ~ ab3, bb3 f3 db4 f3",
  C: "[~@2 ab3@2 ~@2 g3@3 ~@2 g3@2 ~@2 ab3@2 ~@2 ab3@2 f4@17 ~@10, db4@4 e3@4 ~ c4@4 f3@4 c4@4 ~@27]/3",
})).s("gm_harpsichord").gain(0.12).pan(0.6)

// chords · synth bass 1
const synth_bass_1 = note(`<
  ~@41 A B A C D E F G D E F G H I J K H I L M N O P Q N O P Q R S T U T U T V D E F G D E F G H I J K H I L M N O P Q N
  O P Q R S T U T U T V ~@8 H I J K H I L M ~@4 A B A C R S T U T U T V ~@11
>`.pickRestart({
  A: "f3!16", B: "c3!14 f3!2", C: "c3 ~ c3 ~@13", D: "~ f3!4 ~ f3 ~@2 f3!4 ~ f3 ~",
  E: "~ eb3!4 ~ eb3 ~@2 eb3!4 ~ eb3 ~", F: "~ db3!4 ~ db3 ~@2 db3!4 ~ db3 ~", G: "~ c3!4 ~ c3 ~@2 f3!4 ~ f3 ~",
  H: "f3!2 [f5,c6] [f3,f5,c6] [f3,c6] [f5,c6] [f3,f5,c6] [f3,c6] f3!2 [f5,c6] [f3,f5,c6] [f3,c6] [f5,c6] [f3,f5,c6] [f3,c6]", // F5
  I: "eb3!2 [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6] [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6] eb3!2 [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6] [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6]", // Eb5 Eb Eb5 Eb Eb5 Eb Eb5 Eb
  J: "db3!2 [db5,ab5] [db3,db5,ab5] [db3,ab5] [db5,ab5] [db3,db5,ab5] [db3,ab5] db3!2 [db5,ab5] [db3,db5,ab5] [db3,ab5] [db5,ab5] [db3,db5,ab5] [db3,ab5]", // Db5
  K: "eb3!2 [c6,f6] [eb3,c6,f6] [eb3,f6] [c6,f6] [eb3,c6,f6] [eb3,f6] eb3!2 [c6,f6] [f3,c6,f6] [f3,f6] [c6,f6] [eb3,c6,f6] [eb3,f6]", // F5 F7 Ebsus2 F5 F7 Ebsus2 F5 F …
  L: "db3!2 [ab5,db6] [db3,ab5,db6] [db3,db6] [ab5,db6] [db3,ab5,db6] [db3,db6] db3!2 [ab5,db6] [db3,ab5,db6] [db3,db6] [ab5,db6] [db3,ab5,db6] [db3,db6]", // Db5 Db Db5 Db Db5 Db Db5 Db
  M: "eb3!2 [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6] [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6] eb3!2 [bb5,eb6] [f3,bb5,eb6] [f3,eb6] [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6]", // Eb5 Eb Eb5 Eb Eb5 Ebsus2 F7 Eb5 …
  N: "[f3,c4]!2 f3 c4 [f3,c4] f3 [f3,c4]!4 f3 c4 [f3,c4] f3 [f3,c4]!2", // F5
  O: "[eb3,bb3]!2 eb3 bb3 [eb3,bb3] eb3 [eb3,bb3]!4 eb3 bb3 [eb3,bb3] eb3 [eb3,bb3]!2", // Eb5
  P: "[db3,ab3]!2 db3 ab3 [db3,ab3] db3 [db3,ab3]!4 db3 ab3 [db3,ab3] db3 [db3,ab3]!2", // Db5
  Q: "[c3,g3]!2 c3 g3 [c3,g3] c3 [c3,g3]!4 c3 g3 [c3,g3] c3 [c3,g3]!2", // C5
  R: "~ [ab4,c5]!3 ~@2 [ab4,c5]!4 ~ [ab4,c5] c5 ~@2 [ab4,c5]", // Ab
  S: "bb4 [g4,bb4]!4 ~ [g4,bb4] ~@2 [g4,bb4] ~ [g4,bb4] bb4 ~@2 [g4,bb4]", // Gm
  T: "~ [ab4,c5]!3 ~@2 [ab4,c5]!2 c5 [ab4,c5] ~ [ab4,c5] c5 ~@2 [ab4,c5]", // Ab
  U: "bb4 [g4,bb4]!3 bb4 ~ [g4,bb4] ~@2 [g4,bb4] ~ [g4,bb4] bb4 ~@2 [g4,bb4]", V: "[g4,bb4] ~@15",
})).s("gm_synth_bass_1").gain(0.11).pan(0.3)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@5 A B C@2 D@7 E@8 F@2 ~ G H I H G H I H J@2 ~@24 K L M N K L M N O P O P O P O Q ~@16 K L M N K L M N O P O P O P O
  Q ~@24 O P O P O P O Q ~@7 R@4
>`.pickRestart({
  A: "~@3 [bb3,eb4,g4]@13", B: "~ [ab3,db4,f4]@3", C: "[~@4 [e4,g4]@8 ~@9 ab3@11, ~ c4@7, ~@13 f4@19]/2",
  D: "[~@6 [bb3,eb4,g4]@16 [ab3,db4,f4]@17 [e4,g4]@8 ~@9 ab3@16 [bb3,eb4,g4]@17 [ab3,db4,f4]@17 [c4,e4,g4]@6, ~@39 c4@33 ~@40, ~@47 f4@25 ~@40]/7", // Eb Db Em Eb Db C
  E: "[~@2 f4@8 [f3,ab3,c4,f4]@17 [eb3,g4]@16 ab3@17 bb4@8 ~@5 e4@4 ~@12 ab4@4 [eb4,g4]@8 ~ eb4@8 [db3,ab3,db4,f4]@17 [eb3,bb3,eb4,g4], ~@27 eb4@33 c3@17 [f3,f4]@17 ~@34, ~@43 c4@50 [eb3,bb3]@17 ~@18, ~@15 e4@3 ~@14, ~@17 g4@2 ~@13]/8", // Fm Eb Db Eb F Eb5
  F: "[~@7 [f3,c4,f4,a4]@25]/2", G: "[f3,c4,f4,ab4]", H: "[eb3,bb3,eb4,g4]", I: "[db3,ab3,db4,f4]",
  J: "[f3,c4,f4,c5]/2", K: "[ab3,c4]", L: "[g3,bb3]", M: "[f3,ab3]", N: "[eb3,g3]", O: "[f2,f4,ab4,c5]",
  P: "[c2,eb4,g4,bb4]", Q: "[c2,eb4,g4,bb4] ~@7", R: "[~@6 g3@5 f3@17 ~@4, ~@3 c4@11 ~@2]/4",
})).s("gm_string_ensemble_2").gain(0.24).pan(0.4)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@61 A B C D E B C D F G H G F G H I ~@16 A B C D E B C D F G H G F G H I ~@24 F G H G F G H I ~@11
>`.pickRestart({
  A: "[f5,f6]@3 ~ [f5,f6]@3 ~@9", B: "~@14 eb5 ~", C: "f5 ~@3 f5 ~@11", D: "~@10 c6 eb6 f6 ab6 f6 eb6",
  E: "[f5,f6] ~ [f5,f6] ~@5", F: "f6", G: "bb6", H: "ab6 f6 eb6 c6 ab6 f6 eb6 c6 ab6 f6 eb6 c6 ab6 f6 eb6 c6",
  I: "bb6 ~@7",
})).s("gm_string_ensemble_1").gain(0.12).pan(0.6)

// chords · orchestral harp
const orchestral_harp = note(`<
  ~@45 A B C D A B C D E ~@15 F G F G F G F ~ A B C D A B C D E ~@15 F G F G F G F ~ H@8 E ~@15 F G F G F G F ~@12
>`.pickRestart({
  A: "f4 ~@3 ab4 ~ c5 ~@3 c5 ~@3 c5 ~", B: "eb5 ~@3 eb5 ~ bb4 ~@3 bb4 ~@3 bb4 ~",
  C: "c5 ~@3 c5 ~ ab4 ~@3 ab4 ~@3 ab4 ~", D: "g4 ~@3 g4 ~ f4 ~@3 f4 ~@3 eb4 ~", E: "f4 ~@15",
  F: "[ab4,c5] ~@3 [ab4,c5] ~@5 [ab4,c5] ~@3 [ab4,c5] ~", G: "~@7 [g4,bb4]!2 ~ [g4,bb4] ~@3 [g4,bb4] ~",
  H: "~@2 [eb5,ab5] ~@3 [eb5,ab5] ~@3 [eb5,ab5] ~@3 [eb5,ab5] ~", // Ab5
})).s("gm_orchestral_harp").gain(0.3).pan(0.7)

// other · orchestra hit
const orchestra_hit = note("<~@61 A B A ~ A B A ~@25 A B A ~ A B A ~@52>".pickRestart({
  A: "f5 ~ f5 ~@5", B: "~@7 eb5",
})).s("gm_orchestra_hit").gain(0.24)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@36 A B C B D B C B E ~@16 F ~@3 F ~@3 B G B G B G B H ~@16 F ~@3 F ~@3 B G B G B G B H ~@16 B C B D B C B I B G B G
  B G B J ~@11
>`.pickRestart({
  A: "~@14 [c3,f3]!2", B: "[c3,f3]@15 ~", C: "[g2,c3] ~ [g2,c3] ~@11 [c3,f3]!2", D: "[g2,c3] ~ [g2,c3] ~@9 [bb2,eb3]@4",
  E: "[g2,c3] ~ [g2,c3] ~@13", F: "[f2,c3]@3 ~ [f2,c3]@3 ~@9", G: "[g2,c3]@9 ~ [g2,c3]@2 [bb2,eb3]@2 [g2,c3]@2",
  H: "[g2,c3]@2 ~@6 [bb2,eb3]!2 [bb2,eb3]@2 [bb2,eb3]!2 [bb2,eb3]@2", // C5 Eb5
  I: "[g2,c3] ~ [g2,c3] ~@5 [bb2,eb3]!2 [bb2,eb3]@2 [bb2,eb3]!2 [bb2,eb3]@2", J: "[g2,c3] ~@7",
})).s("gm_distortion_guitar").gain(0.21).pan(0.3)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@45 A@24 ~ B ~ B ~ B ~@2 A@24 ~ B ~ B ~ B ~@3 B ~ B ~ B ~ B A@8 ~@9 B ~ B ~ B ~@13
>`.pickRestart({
  A: "~@3 x ~@12", B: "~@7 x ~@2 x ~@3 x ~",
})).gain(0.3)

// drums · snare
const snare = s("sd").struct(`<
  ~@36 A B C B D E F G H I J I J I J I J I J I J I J I J I J I J I J I J E K E G E K E ~ I J I J I J I J I J I J I J I J
  I J I J I J I J E K E G E K E ~ E K E G E K E G I J I J I J I@2 B C B D E F G H E K E G E K E ~@12
>`.pickRestart({
  A: "~@14 x!2", B: "x", C: "x ~ x ~@11 x!2", D: "x!2 ~@3 x ~ x", E: "~ x ~ x", F: "~@4 x ~@2 x ~@2 x ~@3 x!2",
  G: "~@4 x ~@5 x ~@3 x!2", H: "x!2 ~@6", I: "~@4 x ~@7 x ~ x!2", J: "~@2 x ~@3 x!2", K: "~@2 x ~@2 x ~ x",
})).gain(0.3)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@45 [~@10 x!2 ~@4]!24 ~@8 [~@10 x!2 ~@4]!24 ~@16 [~@10 x!2 ~@4]!8 ~@27>")
  .gain(0.12)

// drums · clap
const clap = s("cp").struct("<~@53 [~@2 x ~@3 x!2]!8 ~@24 [~@2 x ~@3 x!2]!8 ~@24 [~@2 x ~@3 x!2]!8 ~@27>").gain(0.36)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<~@53 [~@3 x ~@12]!8 ~@24 [~@3 x ~@12]!8 ~@24 [~@3 x ~@12]!8 ~@27>").gain(0.18)

// drums · low tom
const low_tom = s("lt").struct("<~@36 A B C B D ~@83 A B C B D ~@23>".pickRestart({
  A: "~@15 x", B: "x", C: "x ~ x ~@12 x", D: "x!2 ~@5 x",
})).gain(0.48)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@41 A@3 B ~@24 C@7 D C@16 ~@8 C@7 D C@16 ~@4 A@3 B C@7 D ~@11>".pickRestart({
  A: "x!2", B: "x!2 ~@6", C: "x!4", D: "x",
})).gain(0.36)

// drums · mid tom
const mid_tom = s("mt").struct("<~@36 A ~ A ~ B ~@3 C ~@79 A ~ A ~ B ~@3 C ~@19>".pickRestart({
  A: "~@7 x", B: "~@5 x ~@2", C: "x!2 ~@6",
})).gain(0.36)

// drums · open hat
const open_hat = s("oh").struct("<~@41 A@3 ~@25 B@7 ~ B@16 ~@8 B@7 ~ B@16 ~@4 A@3 ~ B@7 ~@12>".pickRestart({
  A: "~@3 x ~@3 x", B: "~ x ~ x ~ x ~ x",
})).gain(0.18)

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

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@26 A ~ B ~ B ~@2 C ~@118>".pickRestart({
// … 31 more lines

More by Annie Lennox