Strudelify
I Don't Think That Man Should Sleep Alone cover art

After Dark

I Don't Think That Man Should Sleep Alone

Ray Parker Jr.

KeyB♭ minorTempo104 bpm
0:00/0:00
// I Don't Think That Man Should Sleep Alone — Ray Parker Jr.
// 104 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 98 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(104/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 · "SYN BASS 2"
const bass = note(`<
  ~@2 A B C D E F C D E G H I J@2 C K L F M K N F C K E F O P Q@2 C D E F C D E G H I R@2 C K L F M K N F C K E F O P
  S@2 T@8 U@7 V@7 W X@8 Y@7
>`.pickRestart({
  A: "~@2 ab1 ~@5 ab1 ~@7", B: "ab1@2 ~@10 f1@4 f1@7 ~ c2@7 ~", C: "bb1@11 ~ ab1@11 ~ f1@7 ~",
  D: "gb1@11 ~ eb1@7 ~ ab1@4 f1@7 ~", E: "bb1@11 ~ f1@11 ~ ab1@7 ~", F: "gb1@11 ~ gb1@11 ~ gb1@4 ab1@4",
  G: "gb1@11 ~ gb1@11 ~ ab1@4 ~@4", H: "eb1@11 ~ eb1@15 ~ eb1@4", I: "eb1@11 ~ eb1@4 eb1@4 eb1@2 gb1@2 bb1@4 ab1@4",
  J: "[ab1@8 ~@4 ab1@4 ~@8 ab1@11 ~ g1@4 gb1@4 f1@11 ~ f1@7 ~]/2", K: "gb1@11 ~ eb1@7 ~ ab1@2 eb1@2 f1@4 ~@4",
  L: "bb1@11 ~ f1@11 ~ ab1@4 f1@4", M: "bb1@11 ~ ab1@12 f1@2 ~@2 f1@4", N: "bb1@11 ~ f1@11 ~ ab1@4 gb1@4",
  O: "bb1@11 ~ ab1@11 ~ f1@2 ~@2 f1@4", P: "gb1@11 ~ eb1@7 ~ ab1@2 bb1@2 f1@4 eb2@4",
  Q: "[eb2@11 ~ eb2@11 ~ ab1@11 ~ g1@4 gb1@4 f1@7 ~ ab1@2 bb1@2 gb2@4 eb2@2 ~@2]/2",
  R: "[ab1@7 ~@5 ab1@3 ~@9 ab1@11 ~ g1@4 gb1@4 f1@11 ~ f1@7 ~]/2",
  S: "[eb2@11 ~ eb1@11 ~ ab1@11 ~ g1@4 gb1@4 f1@7 ~ ab1@2 bb1@2 gb2@4 eb2@2 ~@2]/2",
  T: "[bb1@11 ab1@11 ~ f1@7 ~ gb1@11 ~ eb1@7 ~@2 ab1@3 f1@7 ~ bb1@11 ~ f1@11 ~ ab1@7 ~ gb1@11 ~ gb1@11 ~ gb1@4 ab1@4 bb1@11 ~ ab1@11 ~ f1@7 ~ gb1@11 ~ eb1@7 ~ ab1@4 f1@7 ~ bb1@11 ~ f1@11 ~ ab1@7 ~ gb1@11 ~ gb1@11 ~ ab1@4 ~@4 bb1]/8",
  U: "[~@11 ab1@11 ~ f1@7 ~ gb1@11 ~ eb1@7 ~ ab1@4 f1@7 ~ bb1@11 ~ f1@11 ~ ab1@4 f1@4 gb1@11 ~ gb1@11 ~ gb1@4 ab1@4 bb1@11 ~ ab1@11 ~ f1@7 ~ gb1@11 ~ eb1@7 ~ ab1@4 f1@7 ~ bb1@11 ~ f1@11 ~ ab1@7 ~ gb1]/7",
  V: "[~@5 gb1@2 ~@8 bb1@4 ab1@4 gb1@4 f1@4 eb1@7 ~@5 eb1@13 ~@3 eb1@4 eb1@4 ~@8 eb1@11 ~ gb1@7 ~ ab1@7 ~@5 ab1@13 ~@3 ab1@4 ab1@7 ~@9 ab1@7 ~ gb1@7 ~ eb1@7 ~@5 eb1@13 ~@3 eb1@4 eb1@4 ~@8 eb1@11 ~ gb1@7 ~@2, ~@15 ab1 ~@208]/7",
  W: "~@3 ab1@3 ~@9 ab1@4 ~@12 ab1",
  X: "[~@11 f1@19 ~ bb1@11 ~ ab1@11 ~ f1@7 ~ gb1@11 ~ eb1@7 ~ ab1@2 eb1@2 f1@4 ~@4 bb1@11 ~ f1@11 ~ ab1@7 ~ gb1@11 ~ gb1@11 ~ gb1@4 ab1@4 bb1@11 ~ ab1@11 ~ f1@7 ~ gb1@11 ~ eb1@7 ~ ab1@2 eb1@2 f1@4 ~@4 bb1@11 ~ f1@11 ~ ab1@7 ~ gb1]/8",
  Y: "[~@11 gb1@11 ~ gb1@4 ab1@2 ~@2 bb1@11 ~ ab1@11 ~ f1@7 ~ gb1@11 ~ eb1@7 ~ ab1@2 eb1@2 f1@4 ~@4 bb1@11 ~ f1@11 ~ ab1@4 f1@4 gb1@11 ~ gb1@11 ~ gb1@4 ab1@4 bb1@11 ~ ab1@11 ~ f1@7 ~ gb1@11 ~ eb1@7 ~ ab1@2 eb1@2 ~@9]/7",
})).s("gm_synth_bass_2").gain(0.27)

// other · tubular bells · "TUBULARBEL"
const tubular_bells = note("<~@14 A B ~@26 A C ~@23 D@2 ~@6 E F G ~@2 F G ~@16>".pickRestart({
  A: "~@4 ab5 ~@3 db5 ~@3 f5 ~@7 bb4 ~@7 db5 ~@3", B: "~@4 eb5 ~@7 db5 ~@7 c5 ~@7 f4 ~@3",
  C: "~@4 eb5 ~@7 db5 ~@7 c5 ~@7 f5 ~@3", D: "[~@29 f6 eb6 c6@16 ~@17, ~@31 db6 ~@32]/2", E: "~@31 bb5", F: "~@31 c6",
  G: "~@15 db6 ~@7 ab5 ~@7 bb5",
})).s("gm_tubular_bells").gain(0.1)

// chords · piano · "A.PIANO 2"
const piano = note(`<
  ~@2 A B C D C D C D C D E@2 F@2 G@2 H I C D H D J@2 H I K@2 L@2 C D C D C D C D E@2 F@2 G@2 H I C D H D J@2 H I K@2
  L@2 M@7 N@8 O@7 P Q@8 R@7
>`.pickRestart({
  A: "~@4 [bb3,db4,eb4,gb4,bb4]@3 ~@9 [bb3,db4,eb4,gb4,bb4]@3 ~@13", // Ebm7
  B: "[bb3,db4,eb4,gb4,bb4]@3 ~@9 [c4,eb4,gb4,a4]@18 ~@2", C: "[bb3,db4,f4,ab4,c5]@11 ~ [bb3,db4,f4,ab4,c5]@3 ~",
  D: "[gb3,bb3,db4,f4,ab4]@5 ~ [gb3,bb3,db4,f4,ab4]@5 ~ [gb3,bb3,db4,f4,ab4]@3 ~", // Gbmaj7
  E: "[[ab3,bb3,db4,eb4]@9 ~@7 [ab3,eb4,f4]@5 ~ [ab3,bb3,db4,eb4,gb4]@5 ~ [ab3,bb3,db4,eb4,ab4]@3 ~, f4@14 db4@7 ~@11, ~@5 ab3@3 ~@8, ~@12 bb3@9 ~@11]/2", // Absus4 Fm7 Ebm7 Absus4
  F: "[[ab3,bb3,db4,eb4]@18 ~@22 bb4@3 ~@13 gb4@4 a4@3 ~, [f4,bb4]@16 eb4@2 f4@5 ~@3 eb4@5 ~, ~@10 ab3@11 ~@11, ~@12 bb3@9 ~@11, ~@14 db4@7 ~ [c4,c5]@9 ~]/2", // Absus4 Bb5 C
  G: "[[bb3,db4,f4,ab4,c5]@22 ~@2 [ab4,c5]@6 ~@22 ab4@3 ~ bb4@6 ~@2, ~@12 [bb3,db4,f4]@19 ~, ~@16 gb3@15 ~, ~@4 bb4@3 ~]/2", // Bbm7 Ab Bbm
  H: "[bb3,db4,f4,ab4,c5]@15 ~", I: "[gb3,bb3,db4,f4,ab4]@5 ~ [gb3,bb3,db4,f4,ab4]@9 ~",
  J: "[[bb3,db4,f4,ab4,c5]@11 ~ c5@3 ~ gb3@5 ~ [gb3,bb3,db4,f4,ab4]@9 ~, ~@12 [bb3,db4,f4,ab4]@9 ~@11]/2", // Bbm7 Gbmaj7 Bbm7
  K: "[[bb3,db4,f4,ab4,c5]@11 ~ c5@3 ~ gb3@5 ~ [gb3,ab4]@5 ~ [gb3,bb3,db4,f4,ab4]@3 ~, ~@12 [bb3,db4,f4]@15 ~@5, ~@12 ab4@9 ~@11]/2", // Bbm7 Gbsus2 Gbmaj7 Bbm
  L: "[[gb3,bb3,db4,eb4,f4]@11 ~ [gb3,bb3,db4,eb4,f4]@7 ~@3 [c4,eb4,gb4,a4]@9 ~]/2", // Gbmaj7 Cdim
  M: "[[bb3,db4,f4,ab4,c5]@22 ~@2 [bb3,db4,f4,ab4,c5]@6 ~@2 [gb3,bb3,db4]@10 ~ [gb3,bb3,db4,f4,bb4]@10 ~@3 [gb3,bb3,db4,f4,bb4]@6 ~@2 [bb3,db4,f4,c5]@22 ~ [bb3,db4,f4,ab4,c5]@6 ~@3 [gb3,f4,bb4]@10 ~ [gb3,bb3,db4,f4,bb4]@10 ~@2 [gb3,bb3,db4,f4,bb4]@6 ~@3 [bb3,db4,c5]@22 ~ [bb3,db4,f4,ab4,c5]@6 ~@3 [gb3,bb4]@10 ~ [gb3,bb3,db4,f4,bb4]@10 ~@3 [gb3,bb3,bb4]@6 ~@2 [bb3,f4,ab4]@22 ~ [bb3,db4,f4,ab4,c5]@6 ~@2 bb3, ~@31 [f4,bb4]@10 ~@22 ab4@22 ~@10 [bb3,db4]@10 ~@22 [f4,ab4]@22 ~@10 [bb3,db4,f4]@10 ~@14 [db4,f4]@6 ~@2 [db4,c5]@22 ~@11]/7", // Bbm7 Gb Gbmaj7 Bbm Bbm7 Gbmaj7 Bbm Bbm7 …
  N: "[[gb3,db4,f4,bb4]@10 ~@2 [bb3,bb4]@10 ~@2 [gb3,bb3,f4,bb4]@6 ~@2 [bb3,f4]@22 ~ [bb3,db4,f4,ab4,c5]@6 ~@3 [bb3,bb4]@10 ~@2 [bb3,bb4]@10 ~@2 [gb3,bb3,db4,f4,bb4]@6 ~@2 [bb3,c5]@22 ~@2 [bb3,ab4,c5]@6 ~@2 [gb3,db4,bb4]@10 ~@2 [bb3,bb4]@10 ~ [gb3,bb3,db4,f4,bb4]@6 ~@2 [bb3,db4,f4,ab4,c5]@22 ~@2 [bb3,db4,f4,ab4,c5]@6 ~@3 [gb3,bb3,bb4]@10 ~@2 [gb3,bb3,db4,bb4]@10 ~@2 [gb3,bb3,bb4]@6 ~@2 [bb3,db4,f4]@22 ~ [bb3,db4,f4,ab4,c5]@6 ~@2 [db4,f4], ~@11 [gb3,db4,f4]@10 ~@2 db4@6 ~@2 [db4,ab4,c5]@22 ~@10 [gb3,db4,f4]@10 ~@2 [gb3,db4,f4]@10 ~@10 [db4,f4,ab4]@22 ~@2 [db4,f4]@6 ~@2 [bb3,f4]@10 ~@2 [gb3,db4,f4]@10 ~@42 [db4,f4]@10 ~@2 f4@10 ~@2 [db4,f4]@6 ~@2 [ab4,c5]@22 ~@11]/8", // Gbmaj7 Bb Gbmaj7 Bb5 Bbm7 Bb Gbmaj7 Bbsus2 …
  O: "[[gb3,bb3,bb4]@3 ~@3 [gb3,bb3,bb4]@2 ~@23 [gb3,bb3,db4,eb4,f4]@18 ~@26 f4@18 ~@2 [db4,eb4,f4]@20 ~@28 bb4@4 f4@4 eb4@3 ~ db4@3 ~ [db4,eb4]@24 ~@12 db4@8 eb4@3 ~@3 db4@2 eb4@3 ~ db4@4 eb4@3 ~@2, ~@5 [db4,f4]@2 ~@44 gb3@42 ~@2 [gb3,bb3]@18 ~@2 gb3@38 ~@6 [gb3,bb3]@18 ~@6 gb3@38 ~@3, ~@55 bb3@38 ~@26 bb3@38 ~@30 bb3@34 ~@3, ~@59 db4@34 ~@30 db4@16 f4@8 ~@12 f4@22 ~@26 f4@6 ~@11, ~@67 eb4@26 ~@38 eb4@18 ~@75]/7", // Gb Gbmaj7 Db Dbsus2 Db Gb
  P: "~@3 [bb3,db4,eb4,gb4,bb4]@3 ~@9 [bb3,db4,eb4,gb4,bb4]@3 ~@13 [bb3,db4,eb4,gb4,bb4]", // Ebm7
  Q: "[~@11 [c4,eb4,gb4,a4]@18 ~@3 [bb3,f4,c5]@22 ~ [ab4,c5]@6 ~@2 [gb3,bb4]@10 ~@2 [gb3,bb3,db4,f4,bb4]@18 ~@3 [f4,ab4,c5]@26 ~@6 [gb3,bb4]@10 ~@2 [bb3,bb4]@10 ~ [gb3,bb3,db4,f4,bb4]@6 ~@3 [f4,c5]@22 ~ [ab4,c5]@6 ~@2 [gb3,bb4]@10 ~@3 [gb3,bb3,f4]@10 ~ [gb3,bb3,db4,f4,bb4]@6 ~@3 [bb3,db4,f4]@30 ~ [bb3,db4,f4], ~@31 [db4,ab4]@22 ~@2 [bb3,db4,f4]@18 ~@22 [bb3,db4]@26 ~@6 [bb3,db4,f4]@10 ~@2 [gb3,db4,f4]@10 ~@10 [bb3,db4,ab4]@22 ~@2 [bb3,db4,f4]@18 ~@2 [db4,bb4]@10 ~@10 [ab4,c5]@30 ~@3]/8", // Cdim Bbsus2 Ab Gb Gbmaj7 Fm Gb Bb …
  R: "[[gb3,bb4]@10 ~ [gb3,bb3,db4,f4,bb4]@10 ~@2 [gb3,bb3,db4,f4,bb4]@3 ~@5 [bb3,db4,f4,ab4,c5]@22 ~@2 [ab4,c5]@6 ~@2 [gb3,bb4]@10 ~@2 [gb3,bb3,db4,f4,bb4]@14 ~@6 [bb3,f4,ab4,c5]@30 ~@2 [gb3,bb3,db4,f4,bb4]@10 ~@2 [gb3,bb3,db4,f4,bb4]@18 ~@2 [bb3,db4,f4,ab4,c5]@22 ~@2 [ab4,c5]@6 ~@2 [gb3,bb4]@10 ~@2 [gb3,bb3,db4,f4,bb4]@18 ~@3, ~@55 [bb3,db4,f4]@18 ~@22 db4@26 ~@62 [bb3,db4,f4]@18 ~@23]/7", // Gb Gbmaj7 Bbm7 Ab Gb Gbmaj7 Fm Gbmaj7 …
})).s("gm_piano").gain(0.2)

// chords · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note(`<
  A B C D A B E F A B E G ~@3 H I ~@2 J K ~@3 L@2 ~@4 M@2 A B E F A B E G ~@3 H I ~@2 N K ~@3 L@2 ~ O@3 M@2 P@2 Q R S@2
  T U@3 V@3 W T X@7 Y@2 Z@2 AA@2 S@2 AB@4 AC@4
>`.pickRestart({
  A: "~@2 db5@2 c5 ~@3 ab4 ~@3 f4 ~@3", B: "bb4 ~@3 f4@2 eb4 ~@3 ab4@2 f4 ~@3", C: "~@2 bb4 ~@5 bb4 ~@7",
  D: "bb4@2 ~@10 a4@17 ~@3", E: "~@2 db5@2 c5 ~@3 ab4 ~@3 f4 ~ bb4 ab4",
  F: "bb4 ~@3 [db4,gb4,bb4] [eb4,ab4,c5] [f4,bb4,db5] [gb4,c5,eb5]", G: "bb4 ~@7", H: "~ bb4 db5 eb5@3 db5 c5",
  I: "c5@7 ~@9", J: "~@16 bb4@3 ~ c5@4 db5@4 eb5@4", K: "c5 ~",
  L: "[~ [f4,ab4,c5]!2 ~ [f4,ab4,c5]!2 ~ [gb4,bb4,db5]@2 [eb4,gb4,bb4] ~@6]/2", // Fm Gb Ebm
  M: "[bb3@23 ~ f4@19 ~ [eb4,gb4]@11 ~ [f4,ab4]@2 [eb4,gb4]@2 ~@4, ~@24 db4@31 ~@9]/2", N: "~@4 bb4 c5 db5 eb5",
  O: "[~@7 [f4,ab4,c5]@2 [f4,ab4,c5] [f4,ab4,bb4] [f4,ab4,c5]@3 ~ [gb4,bb4,db5]@2 [gb4,bb4,db5] [eb4,gb4,bb4] [gb4,bb4,db5]@2 ~@3]/3", // Fm Bb7 Fm Gb Ebm Gb
  P: "[~@4 db5@4 c5@2 ~@6 ab4@2 ~@6 f4@2 ~@5 bb4@2 ~@7 f4@3 eb4@2 ~@6 ab4@4 ~ f4@2 ~@6]/2",
  Q: "~@3 db5@4 ~ c5@2 ~@6 ab4@2 ~@5 f4@2 ~@2 bb4@2 ab4@2 ~",
  R: "bb4@3 ~@12 [db4,gb4,bb4]@4 [eb4,ab4,c5]@4 [f4,bb4,db5]@4 [gb4,c5,eb5]@4 ~", // Gb Ab Bbm Cdim
  S: "[~@3 db5@4 c5@2 ~@6 ab4@2 ~@6 f4@2 ~@6 bb4@2 ~@6 f4@4 eb4@2 ~@6 ab4@4 f4@2 ~@7]/2",
  T: "~@3 db5@4 c5@2 ~@6 ab4@2 ~@6 f4@2 ~@2 bb4@2 ab4@2 ~",
  U: "[bb4@3 ~@32 db5@4 ~@12 bb4@4 [f4,ab4,c5]@4 ~ [bb4,db5]@3 bb4@2 ~@7 f4@3 eb4@2 ~@6 ab4@4 ~ f4@2 ~@6, ~@31 f4@24 ~@4 gb4@4 ~@33, ~@31 ab4@16 ab4@8 ~@41, ~@31 c5@9 c5@11 ~@45]/3", // Fm Bbm
  V: "[~@3 [db5,eb5]@4 eb5@4 ~ db5@3 eb5@4 db5@4 bb4@4 bb4@2 ab4@2 ~ bb4@4 ~@11 [db4,gb4,bb4]@4 [eb4,ab4,c5]@4 [f4,bb4,db5]@4 [gb4,c5,eb5]@4 ~@4 db5@4 ~@12 bb4@4 [f4,ab4,c5]@4 [gb4,bb4,db5]@4 ~, ~@7 c5@2 ~@6 ab4@2 ~@6 f4@2 ~@2 f5@8 ~@28 f4@24 ~@9, ~@63 ab4@16 ab4@8 ~@9, ~@63 c5@9 c5@11 ~@13]/3", // Dbsus2 Gb Ab Bbm Cdim Fm Gb
  W: "bb4@2 ~@5 f4@4 eb4@2 ~@7 ab4@3 f4@2 ~@7",
  X: "[bb4@3 ~@32 [bb4,db5,f5]@2 ~ [bb4,f5]@2 ~ [bb4,db5,eb5]@2 [bb4,db5,f5]@2 ~@54 [bb4,db5,f5]@2 [bb4,db5,f5]@2 ~@2 [bb4,db5,eb5]@2 ~ [bb4,f5]@2 ~@21 f5@4 db5@4 bb4@4 db5@2 bb4@4 bb4@6 db5@4 ~@4 [bb4,db5,f5]@2 [bb4,db5,f5]@2 ~@5 [bb4,db5]@2 ~@50, ~@31 [bb3,db4,f4]@64 [bb3,db4,f4]@60 ~@4 [bb3,db4,f4]@64 ~, ~@37 db5@2 ~@68 db5@2 ~@60 [db5,eb5]@2 f5@2 ~@51, ~@85 bb4 ~@26]/7", // Bbm Bb5 Eb7 Bbm Eb7 Bb5 Bbm Dbsus2
  Y: "[~@3 [bb3,db4,eb4,gb4,bb4,db5,f5,bb5]@4 ~@8 [bb3,db4,eb4,gb4,bb4,db5,f5,bb5]@4 ~@12 [bb3,db4,eb4,gb4,bb4]@4 ~ f5@3 ~ bb5@3 [c5,eb5,a5]@12 ~ ab5@3 [c5,f5,ab5]@4 ~, ~@27 [f5,bb5]@8 ~@20 [db5,f5]@4 ~@5, ~@28 db5@7 [db5,bb5]@4 [db5,f5]@4 [c4,eb4,gb4,a4]@20 ~]/2", // Ebm7 Adim Fm Bb5 Db Gb Db Cdim
  Z: "[~@3 db5@4 c5@2 ~@6 ab4@2 ~@6 f4@2 ~@6 bb4@2 ~@7 f4@3 eb4@2 ~@6 ab4@4 f4@2 ~@7]/2",
  AA: "[~@3 db5@4 ~ c5@2 ~@5 ab4@2 ~@7 f4@2 ~ bb4@2 ab4@2 bb4@4 ~@12 [db4,gb4,bb4]@4 ~ [ab4,c5]@3 [f4,bb4,db5]@4 [gb4,c5,eb5]@4 ~, ~@51 eb4@4 ~@9]/2", // Gb Ab Bbm Cdim
  AB: "[~@3 db5@4 c5@2 ~@6 ab4@2 ~@7 f4@2 ~ bb4@2 ab4@2 bb4@3 ~@33 db5@4 ~@12 bb4@4 [f4,ab4,c5]@4 [gb4,bb4,db5]@4 bb4@2 ~@6 f4@3 ~ eb4@2 ~@6 ab4@4 f4@2 ~@7, ~@63 f4@24 ~@41, ~@63 ab4@16 ab4@8 ~@41, ~@63 c5@8 c5@12 ~@45]/4", // Fm Gb
  AC: "[~@3 db5@4 c5@2 ~@6 ab4@2 ~@6 f4@2 ~@2 bb4@2 ab4@2 bb4@4 ~@12 [db4,gb4,bb4]@4 [eb4,ab4,c5]@4 [f4,bb4,db5]@4 [gb4,c5,eb5]@4 ~@4 db5@4 ~@12 bb4@4 [f4,ab4,c5]@4 [gb4,bb4,db5]@4 bb4@2 ~@6 f4@4 eb4@2 ~@6 ab4@4 ~@9, ~@63 f4@24 ~@41, ~@63 ab4@16 ab4@8 ~@41, ~@63 c5@8 c5@12 ~@45]/4", // Gb Ab Bbm Cdim Fm Gb
})).s("gm_lead_2_sawtooth").gain(0.1).pan(0.6)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@12 A@2 B@2 C ~@12 D E@3 ~@7 A@2 B@2 C ~@30 F@8 G ~@3 H@2 ~@2 I@7>".pickRestart({
  A: "[f4@43 ~ gb4@11 ~ ab4@7 ~]/2", B: "[bb4@41 ~@3 c5@19 ~]/2", C: "f5@29 ~@3", D: "f5@31 ~",
  E: "[bb4@23 ~ f5@69 ~@3]/3",
  F: "[~@31 bb4@31 ~ c5@15 ~ db6@7 ~ ab5@7 ~ bb4@47 ~ ab4@7 ~ gb4@3 ~ ab4 ~ gb4 ~ f4@61 ~@7 bb4 ~@11 bb4 ~@15 bb4, ~@31 f5@225]/8",
  G: "~@15 c6@7 ~ db6@7 ~@2, ~@13 a4@17 ~@2", H: "[~@19 db6@3 ~ c6@3 ~ db6@3 ~ f5@25 ~@8]/2",
  I: "[~@19 c6@3 ~ db6@3 ~ eb6@3 ~ [f5,f6]@123 ~ [ab5,ab6]@3 ~ [f5,f6]@64 ~]/7", // F Ab F
})).s("gm_string_ensemble_1").gain(0.1).pan(0.6)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@4 A B ~ C D B ~@9 C E ~@6 F G ~ H@2 A B ~ C D B ~@5 I ~@3 C E ~@6 C ~@4 J@2 ~ K L@2 ~@5 K ~@12 M@2 ~ K M@2 ~@2 N@2 ~
  K O@2
>`.pickRestart({
  A: "~@2 db4@2 c4 ~@3 ab3 ~@3 f3 ~@3", B: "bb3 ~@3 f3@2 eb3 ~@3 ab3@2 f3 ~@3",
  C: "~@4 [gb4,bb4] [ab4,c5] [bb4,db5] [c5,eb5]", D: "~@2 db4@2 c4@2 ~@2 ab3 ~@3 f3@2 ~@2", E: "[ab4,c5]@3 ~",
  F: "~@4 [bb3,gb4,bb4] [c4,ab4,c5] [db4,bb4,db5] [eb4,c5,eb5]", G: "[bb3,c4,f4]@19 ~@13",
  H: "[~@12 f3@6 eb3@2 db3@2 eb3@7 f3 eb3@2]/2", I: "~@12 bb3@7 ~@13",
  J: "[~@4 db4@4 c4@2 ~@6 ab3@2 ~@6 f3@2 ~@5 bb3@2 ~@6 f3@3 ~ eb3@2 ~@7 ab3@3 ~ f3@2 ~@6]/2",
  K: "~@15 [gb4,bb4]@4 [ab4,c5]@4 [bb4,db5]@4 [c5,eb5]@4 ~", // Gb Ab Bbm Cm
  L: "[~@3 db4@4 c4@2 ~@6 ab3@2 ~@6 f3@2 ~@6 bb3@2 ~@6 f3@3 ~ eb3@2 ~@6 ab3@3 ~ f3@2 ~@7]/2",
  M: "[~@3 db4@4 c4@2 ~@6 ab3@2 ~@6 f3@2 ~@6 bb3@2 ~@6 f3@4 eb3@2 ~@6 ab3@4 f3@2 ~@7]/2",
  N: "[~@3 db4@4 c4@4 ~@4 ab3@2 ~@6 f3@2 ~@6 bb3@2 ~@6 f3@4 eb3@2 ~@6 ab3@4 f3@2 ~@7]/2",
  O: "[~@3 db4@4 c4@2 ~@6 ab3@2 ~@6 f3@2 ~@6 bb3@2 ~@6 f3@4 eb3@2 ~@6 ab3@4 ~@9]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.1)

// other · whistle
const whistle = note("<~@55 A B@5 ~@37>".pickRestart({
  A: "~@10 eb6 d6 c6@19 ~", B: "[ab5@23 ~ bb5@27 ~ c6@3 ~ db6@3 ~ f6@91 ~@9]/5",
})).s("gm_whistle").gain(0.15).pan(0.4)

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

// drums · snare
const snare = s("sd").struct("<~@3 A B@27 C B@27 C B D E F@12 G F@21 G>".pickRestart({
  A: "~@5 x!2 ~", B: "~ x ~ x", C: "~@4 x ~@3 x!3 ~ x ~@3", D: "~@7 x ~@16 x ~@7", E: "~@8 x ~@14 x ~@8",
  F: "~@7 x ~@15 x ~@8", G: "~@7 x ~@24",
})).gain(0.35)

// drums · clap
const clap = s("cp").struct("<~@4 A@19 B A@27 B A@8 C A C D C D@2 ~ C A D C@3 D E ~@8 D@5 C D@7 E>".pickRestart({
  A: "~ x ~ x", B: "~ x!2 ~@5", C: "~@8 x ~@14 x ~@8", D: "~@7 x ~@15 x ~@8", E: "~@7 x ~@24",
})).gain(0.35)

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

// drums · low tom
const low_tom = s("lt").struct("<~@2 [~ x!2 ~@5] ~@72 [~@27 x ~@4] ~@22>").gain(0.3)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~ [~@7 x] ~ [~@7 x] ~@71 [~@23 x ~@8] ~@22>").gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@82 [~@3 x ~@11 x ~@15 x] [~@11 x ~@20] ~@14>").gain(0.35)

// drums · ride
const ride = s("rd").struct("<~@74 [~@31 x] [~@5 x ~@26] ~@22>").gain(0.35)

// drums · tambourine
const tambourine = s("tb").struct("<~@11 A ~@11 B ~@7 C ~@7 A ~@3 B ~@7 B ~@7 C ~@7 D ~@7 E ~@15 D ~@6>".pickRestart({
  A: "~ x ~@3 x ~@2", B: "~ x!2 ~@5", C: "~@2 x ~ x ~@3 x!5 ~@3", D: "~@3 x ~@15 x ~@12", E: "~@3 x ~@28",
})).gain(0.35)

// drums · congas
const congas = s("conga:13").struct(`<
  ~@2 A B C ~ C ~ C ~ C D ~@4 C ~ C ~ C ~ C D ~@2 C ~ C ~ C ~ C ~ C ~ C ~ C D ~@4 C ~ C ~ C ~ C D ~@2 C ~ C ~ C ~@3 C E
  ~ E ~ F ~ E ~ E ~ E ~@11 E ~ E ~ E ~ F ~ E ~ E ~@2
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~", B: "~ x ~ x!2 ~@3", C: "x", D: "~@9 x ~ x ~@4", E: "~@31 x", F: "~@17 x ~@3 x ~@10",
})).gain(1.43)

// drums · congas
const congas_2 = s("conga:18").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~ B ~@3 C ~ A ~ A ~ A ~ B ~ A ~ A ~ A ~@3 A ~ A ~ A ~ B ~@3 C ~ A ~ A ~ A ~ B ~ A ~ A ~ A ~@3 D ~
  D ~ D ~ E ~ D ~ D ~ A ~@9 F ~ D ~ D ~ D ~ G ~ D ~ D ~@2
>`.pickRestart({
  A: "~@7 x", B: "~@4 x!3 ~", C: "~@12 x!4", D: "~@27 x ~@4", E: "~@15 x ~@3 x ~@4 x ~@7", F: "~@31 x",
// … 32 more lines

More by Ray Parker Jr.