Strudelify

Don't Walk Away

The Pointer Sisters

KeyF majorTempo123 bpm
0:00/0:00
// Don't Walk Away — The Pointer Sisters
// 123 bpm, 4/4, key F major. Source: 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 94 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 · epiano2 · "E.PIANO 3"
const epiano2 = note(`<
  A B C D E F@2 G H ~@4 I@4 J@6 K@8 L M@8 N@7 O@7 P G H ~@3 Q@2 R G H ~@4 S@16 I@4 T@5
>`.pickRestart({
  A: "~@3 d6, f5@15 ~, ~@6 g5@9 ~, ~@8 a5@7 ~", B: "~@3 d5, c6@15 ~, ~@6 g5@9 ~", C: "f5@2 ~ d5", D: "~ d5@2 ~, f5 ~",
  E: "~@6 d5 ~, ~@6 g5@9 ~, ~@8 f5@7 ~",
  F: "[~@7 d5, f3@8 f5@2 d4@2 d5@5 ~@5 g5@9 ~, f5@4 d5@2 c4@8 d4@17 ~, ~ g3@7 ~@8, ~@4 bb3@12 f5@8 f5@7 ~]/2",
  G: "~@12 d5@3 ~, ~ d5@2 ~, ~@8 f5@7 ~", H: "f5@8 f5@7 ~",
  I: "[~@15 [f4,a4,c5]@2 f4 f4@2 f4@3 [f4,bb4,d5]@9, [f4,a4,c5]@15 ~@2 a4@3 [a4,c5]@12, ~@7 [g4,eb5]@16 ~@9, ~@7 bb4@11 [bb4,d5]@5 ~@9]/4", // F Bb F Am Cm Bb
  J: "[~@7 bb4@8 f4@5 f4@3 f4@8 ~@8 bb4@8 [f4,bb4,d5], [a4,c5]@16 ~@4 [a4,c5]@11 ~@8 [eb4,g4]@9, f4@15 f5@16 ~@17, ~@7 [eb4,g4]@16 ~@8 [f4,a4,c5]@16 ~, ~@15 [bb4,d5]@8 [bb4,d5]@16 ~@9]/6", // Bb Am Eb F Bb
  K: "[~@8 f4@6 f4@16 ~@16 bb4@16 [f4,f5]@8 a3@5 ~@5 [bb3,d4,g4]@3 ~@29 [g4,bb4]@16, ~@8 [a4,c5]@22 [f4,a4,c5]@32 [bb4,d5]@21 [bb3,d4]@32 ~@13, ~@7 [bb4,d5]@16 [eb5,g5]@15 [a3,db4,gb4]@16 ~@10, ~@35 [c4,f5]@13 [f4,a4,c5]@16, ~@70 [f4,a4,c5]@13 g4@29 ~@16]/8", // F Gm Am F Bb Eb Gbm F5 …
  L: "[f4,a4]", // F
  M: "[f4@16 c5@16 ~@32 d4@3 ~@45 [f4,a4]@16, [bb4,d5]@32 [eb4,ab4,c5]@32 ~@3 [bb3,d4]@32 ~@29, ~ [f4,a4]@2 [f4,bb4,d5]@2 [f4,a4,c5]@2 ~, ~@67 g4@29 [g4,bb4]@32]/8", // F Bb Ab Bb F Bb F Gm
  N: "[f4@8 c5@8 ~@16 c4@7 [c4,f4]@4 ~@9 [f5,bb5]@3 [f5,bb5,d6], [bb4,d5]@4 [eb4,ab4,c5]@4 [eb4,g4]@4 ~ d5, ~@8 [f4,a4]@16 d5@16 ~@3 [c4,f4,a4]@13, ~@24 [f4,bb4]@15 bb4@16 ~]/7", // F5 Bb5 Bb Ab Eb F Bb5
  O: "[~ f5 [d5,f5,c6] [d5,f5] [d5,f5]@2 ~@2 c4@7 [c4,f4]@4 ~@4 [f5,bb5,d6]@2 ~ [f5,a5,c6] ~ [d5,f5]@2 f5 [f5,bb5,d6]@2 bb5@3 ~@18 d5@2, ~ d6@7 [eb4,g4]@16 ~@6 d5@4 ~@8 c5@3 ~ d5@4 d5@4 ~@2, ~ bb5@3 bb5@15 [c4,f4,a4]@16 ~@21, ~@3 c6@12 bb4@16 ~@2 f5 ~@6 f5@4 f5@4 f5@4 f5@4, ~@6 [d5,f5]@16 ~@6 bb5@3 ~@2 d6@16 ~@7]/7", // Dm7 Dm F5 Bb F Dm Bb Eb …
  P: "~@3 [d5,g6], f5@8 [f5,bb6]@7 ~, ~ g6@2 ~, ~@6 [g5,c7]@9 ~", Q: "[~@7 d5, f5!2 f5!2, ~ d5@2 d5@2 d5@2 ~]/2",
  R: "~@3 d5, f5@8 f5@7 ~, ~@6 g5@9 ~",
  S: "[~@30 [f4,a4,c5]@4 f4@2 f4@4 f4@6 f4@17 ~@15 bb4@16 f4@10 f4@6 [f4,bb4,d5]@18, [f4,a4,c5]@15 ~@2 a4@3 [a4,c5]@12 [a4,c5]@16 ~@4 [a4,c5]@12, ~@7 [g4,eb5]@16 ~@9 f4@15 f5@16 ~, ~@7 bb4@11 [bb4,d5]@5 [bb4,d5]@16 [eb4,g4]@16 ~@9, ~@47 [bb4,d5]@8 ~@9]/8", // F Bb F Am Cm Bb Eb Bb
  T: "[~@7 bb4@8 f4@5 f4@3 [f4,bb4,d5]@16 ~, [a4,c5]@4 ~ [a4,c5]@4 ~, f4@15 f5@16 ~@9, ~@7 [eb4,g4]@16 ~@17, ~@15 [bb4,d5]@8 ~@17]/5", // Bb Am Eb Bb
})).s("gm_epiano2").gain(0.29)

// chords · epiano2 · "E.PIANO 3" · soft notes
const epiano2_soft = note(`<
  A B C D E F G H I J@3 ~@3 K ~@34 L@4 M H I J@3 N@2 G H I J@3 ~@3 K ~@7 K ~@7 K ~@6
>`.pickRestart({
  A: "~@4 c5@11 ~", B: "~@10 c5@5 ~, ~@2 c5@3 ~@3, ~@8 f5@7 ~", C: "~@5 c5@3, ~@2 c5@3 ~@3, ~@3 g5@5, ~ f5",
  D: "~@6 d5 g5, ~ c5@4 c5@3, ~@3 g5@4 ~, ~@8 f5@7 ~", E: "~ c5 c5@3 c5@2 d5", F: "~@5 c5@3, ~@3 g5@5",
  G: "~@4 c5@6 c5@5 ~", H: "~@5 c5@2 g5, f5 ~, ~ c5@4 ~@3, ~@3 g5@4 ~", I: "~@3 d5, ~@4 c5@6 c5@5 ~, ~@6 g5@9 ~",
  J: "[~@7 g5@16 ~, f5 f5@4 ~, ~ c5@4 c5@16 ~@3, ~ d5@2 d5@8 ~, ~@3 g5@4 ~@17]/3", K: "~ c5@3 ~@4",
  L: "[~ f5 ~ c6@7 [d5,f5,c6] [d5,f5] [d5,f5]@2 f5@2 ~@13 c5@3, ~ d6@6 ~@4 c6@16 ~@5, ~ bb5@3 ~@8 bb5@16 ~@4, ~@3 a5@16 g5@8 g5@5, ~@3 f5 ~@10 d5@7 c5@8 ~@3]/4", // Dm7 Dm
  M: "~@4 c5@6 c5@5 ~, ~ c7@2 ~@5, ~@3 bb6@5 ~@8", N: "[~@13 c5@3, ~@3 g5@8 g5@5, ~@5 c5@8 ~@3]/2",
})).s("gm_epiano2").gain(0.13)

// bass · electric bass finger · "A.BASS 2"
const bass = note(`<
  ~@4 A@2 B@2 C@2 D@2 E F G H E F G I J F G K J F G L M N O P O Q R S M N O P O Q T U V W X Y Z AA AB AC AD AE AF AG AH
  AI AJ@2 AK AL AM AN AO AP AJ@2 E F G H E F G K E F G H E F G K E F G H E F G I ~@2
>`.pickRestart({
  A: "[bb1@23 ~@8 c2]/2", B: "[d2@21 ~@7 bb1@3 ~]/2", C: "[eb2@11 ~@3 eb3@2]/2",
  D: "~@2 g1 ~ g1 ~ g1@2 ~@2 f1 ~ f1 ~@3", E: "bb1 ~ f1 ~ bb1 ~ f1 ~ bb1 ~ f1 ~ bb1 ~ c2 ~",
  F: "d2 ~ a1 ~ d2 ~ a1 ~ d2 ~ a1 ~ d2 ~ eb2@2", G: "~@2 bb1 ~ eb2 ~ bb1 ~ eb2 ~ bb1 ~ eb2 ~ f2@2",
  H: "~@2 f2 ~ c2 ~ c2 ~ f1 ~ f1 ~ f1 ~@3", I: "~@2 f2 ~ c2 ~ c2 ~ f1 ~ f1 ~ f1 ~ bb1@2",
  J: "~@2 f1 ~ bb1 ~ f1 ~ bb1 ~ f1 ~ bb1 ~ c2 ~", K: "~@2 f2 ~ c2 ~ c2 ~ f1 ~ f1 ~ f1 ~ bb1 ~",
  L: "~@2 [eb2,f2] ~ c2 ~ c2 ~ f1@2 ~@2 gb1@2 ~@2", M: "g2@2 ~ g3 ~@2 f2 ~ g2 ~@5 c3 ~", N: "d3 ~@5 c3 ~ d3 ~@3 f2@3 ~",
  O: "g2 ~@5 f2 ~ g2 ~@5 c3 ~", P: "d3 ~@5 c3 ~ d3 ~ d3 ~ f3 ~ d3 ~", Q: "d3 ~@5 c3 ~ d3@2 ~@2 d3@2 ~@2",
  R: "bb2@2 ~ bb2 ~@2 ab2 ~ bb2 ~@7", S: "bb2@2 ~@2 f2 ~ ab2 ~@2 bb2 ~@2 f2 ~ gb2 ~",
  T: "bb2@2 ~ bb2 ~@2 f2 ~ bb2 ~@5 f2 ~", U: "bb2@2 ~@2 f2@3 ~ g2@3 ~ f2@2 ~@2",
  V: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c4 ~ c3 ~ g2 ~", W: "f2 ~ f2!3 ~ f2@2 ~@2 f2 ~ g2 ~ bb2@2",
  X: "~@2 bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2@2", Y: "~@2 bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ b2 ~ b2 ~",
  Z: "c3 ~ c3 ~ g2 ~@2 g2 c2 ~ c2 ~ g1 ~ f1@2", AA: "~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ g1 ~ bb1@2",
  AB: "~@2 bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2", AC: "~@2 bb1 ~ bb1 ~ bb1 ~ g1@2 ~@2 f1@2 ~@2", AD: "bb2",
  AE: "~@6 f2@2 bb2@3 ~ f2@3 ~", AF: "d2@5 ~@2 eb3", AG: "d3@2 ~ d3 d2@3 ~", AH: "eb2@5 ~@2 c3",
  AI: "bb2@4 ~@2 g2@2 f2 ~ d2 ~ c2 ~ bb1 ~", AJ: "~@2 g2 ~ g2 ~ g2@2 ~@2 f2 ~ f2 ~@3", AK: "bb2@5 ~@2 f2",
  AL: "bb2@8 ~@4 bb2 ~ c3@2", AM: "d3@5 ~@2 g3", AN: "f3 ~ d3@2 c3@2 bb2 ~ g2@2 f2@2 d2@3 ~", AO: "eb2@15 ~",
  AP: "~@4 eb3@3 ~ bb2@3 ~ eb2@4",
})).s("gm_electric_bass_finger").gain(0.8)

// chords · electric guitar clean · "E.GUITAR 2"
const electric_guitar_clean = note("<~@28 A B C D E B ~@2 A B C D E B ~@52>".pickRestart({
  A: "~@4 [bb4,d5]!3 ~@9", B: "~@2 [a4,d5]!2 ~@10 [a4,d5]!2", C: "~@2 [bb4,d5] bb4 ~@12", D: "~@2 [a4,d5]!4 ~@10",
  E: "~@4 [bb4,d5] ~ [bb4,d5] ~@9", // Bb
})).s("gm_electric_guitar_clean").gain(0.46)

// chords · synth brass 2 · "SYNBRASS 4" · Gm F5 F Gm F5 F Gm F5 …
const synth_brass_2 = note(`<
  ~@10
  [~@2 [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5]@3 ~ [c4,f4,c5] ~ [c4,f4,a4,c5] ~@3]!2
  ~@46
  [~@2 [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5]@3 ~ [c4,f4,c5] ~ [c4,f4,a4] ~@3]!2
  ~@6
  [~@2 [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5]@3 ~ [c4,f4,c5] ~ [c4,f4,a4] ~@3]!2
  ~@26
>`).s("gm_synth_brass_2").gain(0.22)

// chords · string ensemble 2 · "STR.SECT 2"
const string_ensemble_2 = note("<~@4 A@7 B C@8 D@8 E@8 F@4 G@8 H@4 I@8 J@8 K@8 L@16 ~@2>".pickRestart({
  A: "[~ [d3,f3]@31 ~ d3@31 ~@22 bb2@12 [d3,bb3]@2 [d3,bb3]@2 g3@4 [c3,a3] ~ [c3,a3] ~@3, bb2@48 ~@16 [d3,bb3]@34 g3 ~ g3 ~@11, ~@32 [a2,a3]@43 c3@17 ~@10 [d3,bb3]@8 ~@2, ~@16 f3@16 f3@21 f3!2 ~, ~@4 bb2 ~@2]/7", // Dm Gm F Gm A Gm
  B: "~@2 [d3,g3,bb3] ~ [d3,g3,bb3] ~ [d3,g3,bb3]@4 [c3,f3,a3] ~ [c3,f3,a3] ~@3", // Gm F
  C: "[~@30 g3@27 ~@19 bb3@2 ~@16 bb3@27 ~@7, f3@14 a3@14 a3@5 ~@41 g3@3 ~ a3@14 a3@5 ~@31, ~@10 g3@2 bb3@3 ~@11 g3@3 ~@35 f3@15 a4@12 a4@3 ~@34, ~@11 bb4@4 ~@10 g4@2 ~@2 g4@26 ~@8 f4@18 ~@8 g4@3 ~ bb4@26 ~@9, ~@13 a4@14 a4@4 ~@44 bb4@5 ~@10 g3@3 ~@35]/8",
  D: "[~@33 eb4@23 ~@20 bb3@2 ~@17 g4@27 ~@6, d4@24 ~ g4@2 a4@3 bb3@27 ~@7 d4@25 g4@2 a4@3 bb3@27 ~@7, [f3,f4]@16 ~ f4@24 ~@21 f4@19 f4@21 ~@26, ~@10 g3@2 bb3@2 a3@14 a3@5 ~@31 f3@14 a3@14 a3@5 ~@31, ~@11 bb4@2 a4@13 g3@3 g4@26 ~@19 g3 bb4@4 a4@11 g3@3 bb4@26 ~@9]/8", // F
  E: "[~@6 [a4,c5]@2 [bb4,d5]@3 ~@11 [e4,g4]@2 [f4,a4]@3 ~@43 [a4,c5]@2 [bb4,d5]@3 ~@13 [f4,a4]@3 ~@21 [f3,bb3]@16, [bb3,d4]@22 ~@10 [g3,bb3]@23 ~@9 [bb3,d4]@24 ~@8 [eb3,ab3]@24 ~@8, ~@16 [a3,c4]@21 ~@11 [f3,a3]@22 ~@10 [a3,c4]@22 ~@26, ~@43 [e4,g4]@2 ~@19]/8", // Am Bb Em F Am Bb F Bb5 …
  F: "[~@6 [a4,c5]@2 [bb4,d5]@3 ~@11 [e4,g4]@2 [f4,a4]@3 ~@21 [f3,a3]@16, [bb3,d4]@22 ~@10 g3@23 ~@9, ~@8 [a3,c4]@10 d4@3 ~@11, ~@16 bb3@6 bb3@3 ~@7, ~@32 eb4@6 ~@2 c4@7 ~@17]/4", // Am Bb Em F Bb Am
  G: "[~@61 f4@3 bb4@30 [d4,f4,bb4]@4 [d4,f4] ~ bb3@4 [bb3,d4,f4]@6 [d4,f4,bb4]@4 [d4,f4,bb4] ~ [bb3,eb4,g4] ~ [eb4,g4]@2 [bb3,d4,f4]@4 [bb3,d4,f4]@3 ~, [bb3,d4]@25 ~@7 [eb3,ab3,eb4]@24 g4@7 ~@35 bb4@11 ~@19, ~@16 [a3,c4]@21 ~@11 f3@20 ~@60, ~@48 bb3@16 c4@45 ~@9 bb3 ~@9, ~@48 f4@13 ~@3 [bb3,eb4,g4]@36 [eb4,g4]@9 ~@19]/8", // Bb Dm Bb Eb Bb Ab5 Am Eb
  H: "[bb4@20 ~ [eb4,f4] [d4,bb4] [f4,bb4]@9, [bb3,c4,g4]@45 ~@19, eb4@21 ~@11, ~@10 [d4,bb4] ~@5]/4", // Ebsus2 Gm Bb5 C7 Gm
  I: "[~@28 f4@70 [g3,d4,g4,bb4,d5] ~ [d3,d4,g4,bb4,d5]@2 [g3,bb3,d4,g4,bb4,d5]@4 [c3,a3,g4,a4,c5] [c4,e4,f4,b4] [c4,f4,a4,c5]@3 ~@3 [d3,d4,g4,d5]@2 [g3,bb3,bb4,d5] ~ [g3,bb3,d4,g4,bb4,d5]@4 [f3,c4,f4,a4,c5]@2 [c4,f4,a4,c5]@2 ~@2, bb2, f3@106 f3@2 f3@14 [c3,a3] ~ [c3,a3] ~@3, d3@98 [d3,bb3]@2 [g3,bb3] ~ d3@12 [g3,bb3,bb4] ~@9 f3@4, ~@108 [c3,a3] ~@7 [d3,d4,g4]@2 d3@10]/8", // Gm Am7 Cmaj7 F G5 Gm F Gm …
  J: "[~@28 f4@70 [g3,bb3,d4,g4,bb4,d5] ~ [d3,d4,g4,bb4,d5]@2 [g3,bb3,d4,g4,bb4,d5]@4 [c3,a3,g4,a4,c5] [c4,e4,f4,b4] [c4,f4,a4,c5]@3 ~@3 [d3,d4,g4,bb4,d5]@2 [g3,bb3,bb4,d5] ~ [g3,bb3,d4,g4,bb4,d5]@4 [f3,c4,f4,a4,c5]@2 [c4,f4,a4,c5]@2 ~@2, bb2, f3@106 f3@2 f3@14 [c3,a3] ~ [c3,a3] ~@3, d3@98 d3@2 [g3,bb3] ~ d3@12 [g3,bb3] ~@9 f3@4, ~@108 [c3,a3] ~@7 [d3,d4,g4]@2 d3@10]/8", // Gm Am7 Cmaj7 F Gm F Gm F …
  K: "[~@30 g3@27 ~@19 bb3@2 ~@16 bb3@27 ~@7, f4@18 ~@7 g4@2 ~@2 g4@26 ~@8 f4@18 ~@8 g4@3 ~ bb4@26 ~@9, f3@14 a3@14 a3@5 ~@41 g3@3 ~ a3@14 a3@5 ~@31, ~@10 g3@2 bb3@3 ~@11 g3@3 ~@35 f3@15 a4@12 a4@3 ~@34, ~@11 bb4@2 a4@14 a4@4 ~@44 bb4@5 ~@10 g3@3 ~@35]/8",
  L: "[~@30 g3@27 ~@19 bb3@2 ~@16 bb3@27 ~@7, [f3,f4]@16 ~@10 g3@3 ~@35 f3@15 a4@12 a4@3 ~@34, ~@10 g3@2 bb3@2 a3@14 a3@5 ~@41 g3@3 ~ a3@14 a3@5 ~@31, ~@11 bb4@4 ~@10 g4@2 ~@2 g4@26 ~@7 f4@18 ~@9 g4@3 ~ bb4@26 ~@9, ~@13 a4@14 a4@4 ~@44 bb4@5 ~@10 g3@3 ~@35]/8", // F
})).s("gm_string_ensemble_2").gain(0.1)

// other · tubular bells · "WARM BELL"
const tubular_bells = note("<~@12 A ~@16 B C D ~@3 E F B C D ~@54>".pickRestart({
  A: "bb5 ~@15", B: "f5 ~@15", C: "eb5 ~@3 d5 ~@11", D: "a4 ~@15", E: "~@4 d6 ~@3 c6 ~@3 bb5 ~@3", F: "g5 ~@15",
})).s("gm_tubular_bells").gain(0.22)

// other · tubular bells · "WARM BELL" · soft notes
const tubular_bells_soft = note("<~@30 [~@8 c5 ~@3 bb4 ~@3] ~@7 [~@8 c5 ~@3 bb4 ~@3] ~@55>")
  .s("gm_tubular_bells").gain(0.14)

// chords · orchestral harp · "HARP 1"
const orchestral_harp = note("<A@8 B@4 ~@40 C@16 ~@26>".pickRestart({
  A: "[~@58 d5@2 ~@62 d5@2 ~@3 c5, c4@8 d5 f5 c5@17 c6 f6@22 g5@2 f5 a4@4 f5@3 d5 f5@4 d4@10 d5@18 d6 c6 a5 d6@22 c5 d5 g5 f5@3 d5 f5 d5@2, ~ d4@10 d5@18 d6 c6 a5 d6@22 c5 d5 g5@11 a4 d5 c5 a4@7 a5 c6 d6 f6 c6 d6 f6 a6 c6 g6 c6 f6 a6@8 c6 a5 g5 a5 c6@27, ~@2 f4@10 f5@14 g6@12 a5 g5 f5@2 d5@2 c5 a4 c5 d5 a5@18 f4@10 f5@14 g6@12 a5 g5 f5@2 d5@2 c5 a4 c5 d5 a5@16, ~@3 a4 d5 c5 a4@7 a5 c6 d6 f6 c6 d6 f6 a6 c6 g6 c6 f6 a6@8 c6 a5 g5 a5 c6@25 d5 c5 c4@8 d5 f5 c5@17 c6 f6@22 g5@2 f5 a4@11]/8",
  B: "[~@31 a5@32 ~, c4@8 d5 f5 c5@16 g6@32 ~@6, ~ d4@10 d5@16 c6 f6@32 ~@4, ~@2 f4@10 f5@17 d6@32 ~@3, ~@3 a4 d5 c5 a4@7 a5 c6 d6 f6 c6 d6 f6 a6 c6 g6 c6 f6 a6@5 c6@32 ~@2]/4",
  C: "[~@58 d5@2 ~@35 a5@32 ~, c4@8 d5 f5 c5@17 c6 f6@22 g5@2 f5 a4@4 f5@3 d5 f5@4 d4@10 d5@16 c6 f6@32 ~@4, ~ d4@10 d5@18 d6 c6 a5 d6@22 c5 d5 g5@11 a4 d5 c5 a4@7 a5 c6 d6 f6 c6 d6 f6 a6 c6 g6 c6 f6 a6@5 c6@32 ~@2, ~@2 f4@10 f5@14 g6@12 a5 g5 f5@2 d5@2 c5 a4 c5 d5 a5@18 f4@10 f5@17 d6@32 ~@3, ~@3 a4 d5 c5 a4@7 a5 c6 d6 f6 c6 d6 f6 a6 c6 g6 c6 f6 a6@8 c6 a5 g5 a5 c6@25 d5 c5 c4@8 d5 f5 c5@16 g6@32 ~@6]/8",
})).s("gm_orchestral_harp").gain(0.79)

// chords · orchestral harp · "HARP 1" · soft notes
const orchestral_harp_soft = note("<A ~ B C A ~ B C A ~@43 A ~ B C A ~@3 A ~ B C A ~@29>".pickRestart({
  A: "~@7 c5@3 ~@6", B: "~@9 c5@2 a4@2 ~@3", C: "~ c5@2 c5@3 ~@5 c5@4 ~",
})).s("gm_orchestral_harp").gain(0.47)

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

// drums · rim
const rim = s("rim").struct("<~@28 [~@3 x]!5 ~@3 [~@3 x]!5 ~@53>").gain(0.51)

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

// drums · clap
const clap = s("cp").struct("<~@28 [~@3 x]!5 ~@3 [~@3 x]!5 ~@53>").gain(0.51)

// drums · low tom
const low_tom = s("lt").struct("<~@9 A B C ~@15 D ~@23 E ~@5 A B C ~@5 F B G ~@26>".pickRestart({
  A: "~@10 x!3 ~@3", B: "~@3 x ~@2 x ~", C: "x ~@2 x ~@2 x ~", D: "~@3 x ~@3 x", E: "~@3 x ~@4", F: "~@12 x!3 ~",
  G: "x ~@5 x ~@5 x!2 ~@2",
})).gain(0.51)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C D B@5 E F G H I H I H I H I H I H I H I H I J@3 K L M N O J@3 K L M P Q R@2 S T S T S U B@6 V G B@5 D G@2 H I H
  I H I H I H I H I H I H I H I H I H I H I ~@2
>`.pickRestart({
  A: "~@5 x ~@2", B: "x!2 ~@2 x ~@3", C: "x ~@3 x!2 ~@2", D: "x!2 ~@2 x!2 ~@2", E: "x!2 ~@2 x ~@2 x",
  F: "~@2 x ~ x!3 ~", G: "x ~ x ~ x!3 ~", H: "x!3 ~ x!3 ~", I: "x!5 ~ x ~", J: "x!6 ~ x", K: "x!6 ~@2", L: "~ x!5 ~ x",
  M: "x!5 ~@3", N: "~@3 x!2 ~ x ~ x ~ x ~ x ~ x ~", O: "~ x!3 ~@4", P: "~@3 x!2 ~ x ~ x ~ x ~@3 x ~", Q: "~@14 x!2",
  R: "x!8", S: "~ x ~ x ~ x ~ x", T: "~ x ~@3 x!2 ~", U: "~ x ~ x ~@4", V: "~@4 x ~@3 x ~ x ~ x ~ x!2",
})).gain(0.35)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  A B C ~ B@6 D ~ E B E B E B E B E B E B E B E B ~@24 B@6 D ~ B@5 ~@3 E B E B E B E B E B E B E B E B E B E B E B E B
  ~@2
>`.pickRestart({
  A: "~@2 x!2 ~@2 x ~", B: "~@5 x ~@2", C: "~ x ~@6", D: "x", E: "~@3 x ~@4",
})).gain(0.2)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@2 A B ~@5 C ~@2 D@2 ~@2 D@2 ~@2 D ~ D@4 ~@2 B@5 ~@2 C B@5 ~@5 E F E F E G ~@5 C ~ H ~@5 I J ~ D@2 ~@2 D@2 ~@2 D@2
  ~@2 D@2 ~@2 D@2 ~@2 D@2 ~@4
>`.pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~@6 x!2", D: "~@7 x", E: "x!2", F: "x ~@2 x ~@4", G: "x", H: "x ~@6 x",
  I: "~@2 x ~@3 x!2", J: "~ x!3 ~ x!2 ~",
})).gain(0.51)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<A B ~ C B@5 C ~@42 B@5 C ~@2 B@5 ~@29>".pickRestart({
  A: "x!2", B: "~ x ~ x", C: "~ x ~@2",
})).gain(0.25)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@9 A B C ~@7 C ~@7 D ~@5 E F@2 ~@5 E F G ~@13 A C@2 ~@5 H B I ~@7 C ~@7 C ~@7 C ~@2
>`.pickRestart({
  A: "~@7 x", B: "~@10 x ~@4 x", C: "~@5 x ~@2", D: "~ x ~@2", E: "~@13 x ~@2", F: "~ x ~ x", G: "~@3 x",
  H: "~@2 x!6 ~@8", I: "~@8 x!3 ~@5",
})).gain(0.51)
// … 23 more lines

More by The Pointer Sisters