Strudelify
Love Is the Seventh Wave cover art

1998 · The Dream Of The Blue Turtles

Love Is the Seventh Wave

Sting

KeyG majorTempo160 bpm
0:00/0:00
// Love Is the Seventh Wave — Sting
// 160 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 3 "MARIMBA" marimba (copy of ch 1 "E.PIANO 1" epiano1); ch 12 "JAZZ GTR" electric guitar jazz (copy of ch 8 "JAZZ GTR" electric guitar jazz, 0.333 beats late)
// note: Full arrangement: all 129 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/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, A@4 for four bars: edit a riff to change every repeat.

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  A B C D E B F G H I J K H I L M H I J K H I L M H I J K H I L M H I J K H I L M H I J K H I L M H I J K H I L M H I J
  K H I L M H I J K H I L M H I J K H I L M ~@8 H I J K H I L M H I J K H I L M H I J K H I L M H I J K H I L M H I J K
  H I L M ~
>`.pickRestart({
  A: "~@10 [g1,b3,g4] ~ g2@4 g3 ~ [d4,b4] ~@3 [d4,b4] ~, ~@9 g2@2 ~", // G
  B: "c2@4 g3 ~ [e4,c5] ~@3 [e4,c5] ~@5 g3 ~ [c4,a4] ~@3 [d2,c4,a4] ~, ~@3 e2@3 d2@3 c2@2 ~", // C F D7
  C: "g1@6 [b3,g4] ~@3 [g1,b3,g4] ~ g2@2 ~@2 [g2,g3] ~ [b3,g4] ~@3 [b3,g4] ~, ~@18 g2@3 ~ g2@2", // Em G Em
  D: "c2@4 g3 ~ [c4,a4] ~@3 [c4,a4] ~ d2@6 [a3,f#4] ~@3 [a3,f#4] ~, ~@3 e2@3 ~@5 d2", // F D
  E: "~@4 d3 ~ [b3,g4] ~@3 [g1,b3,g4] ~ g2@4 g3 ~ [d4,b4] ~@3 [d4,b4] ~, g1@3 ~@6 g2@2 ~", // Em G
  F: "~@4 g3 ~ [b3,g4] ~@3 [g1,b3,g4] ~ g2@4 g2@2 [b3,g4] ~@3 [b3,g4] ~, g1@3 ~@8 g2", // Em G Em
  G: "c2@4 g3 ~ [c4,a4] ~@3 [c4,a4] ~@5 g3 ~ [a3,f#4] ~@3 [a3,f#4] ~, ~@6 e2@6 d2@11 ~", // F D
  H: "~@4 d3 ~ [b3,g4] ~@3 [b3,g4] ~@5 g3 ~ [d4,b4] ~@3 [d4,b4] ~", // Em G
  I: "~@4 g3 ~ [e4,c5] ~@3 [e4,c5] ~@5 g3 ~ [c4,a4] ~@3 [c4,a4] ~", // C F
  J: "~@4 g3 ~ [b3,g4] ~@3 [b3,g4] ~@7 [b3,g4] ~@3 [b3,g4] ~", // Em
  K: "~@4 g3 ~ [c4,a4] ~@3 [c4,a4] ~@5 g3 ~ [a3,f#4] ~@3 [a3,f#4] ~", // F D
  L: "~@4 g3 ~ [b3,g4] ~@3 [b3,g4] ~@5 g2 ~ [b3,g4]@2 ~@2 [b3,g4] ~", // Em
  M: "~@4 g3 ~ [c4,a4] ~@3 [c4,a4] ~@5 g3 ~ [a3,f#4] ~@3 [a3,f#4]@2", // F D
})).s("gm_epiano1").gain(0.25).pan(0.4)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@8 A B C D E D F D F G H D I D H G J K L M N M N O P D Q D R D S D T G Q U Q D Q U V W X Y@4 W Z W AA W Z AB AC AD T
  G Q U Q D Q U V W X Y@4 W AE ~@6 AF AG AH AI AJ AK AL AK AH Z W AA W Z AB AC AD T G Q U Q D Q U V W X Y@4 W Z W AA W Z
  AB AC AD AM
>`.pickRestart({
  A: "g1@6 g2@5 ~ g2@6 ~@6", B: "~@2 d2@2 g2@2 g1@2 d2@2 g2@2 c2@3 ~ c2@2 e2@3 ~ d2@2",
  C: "g1@3 ~@3 g2@4 ~@2 g2@5 ~@5 g2 ~", D: "c2@3 e2@3 d2@3 c2@2 d2", E: "g1@3 ~ g1@2 g2@4 d2@2 g2@3 ~ g2 ~ g2@3 ~ g2 ~",
  F: "g1@4 g2@2 ~@4 d2 ~ g2@3 ~ g2 ~ g2@3 ~ g2 ~", G: "c2@5 ~ e2@6 d2@6 ~@4 d2@2",
  H: "g1@6 ~@4 g1 ~ g2@3 ~ g2@2 ~@4 g2 ~", I: "g1@4 g2 ~@5 d2 ~ g2@3 ~ g2 ~ g2@2 ~@2 g2 ~", J: "g1@5 ~ g1@5 ~ g2@7 ~@5",
  K: "~@10 g1 ~ d2@3 ~ d2 ~ d2@3 ~ d2@2", L: "g1@4 ~@2 g1@6 g2@5 ~@7", M: "~@10 g1 ~ d2 ~ d2 ~ d2 ~ d2@3 ~ d2@2",
  N: "g1@2 ~ g1@2 ~ g1@3 ~@3", O: "~@5 g1 d2@2 c2 a#1 g1 f1", P: "g1@5 ~ g1@5 ~ g2@5 ~@5 g2@2",
  Q: "g1@5 ~@5 d2 ~ g2@3 ~ g2 ~ g2@3 ~ g2@2", R: "g1@5 ~@5 d2 ~ g2@6 ~@4 g2 ~",
  S: "g1@5 ~@5 d2 ~ g2 ~ g2 ~ g2 ~ g2@3 ~ g2@2", T: "g1@8 ~@2 d2 ~ g2@4 ~@2 g2@5 ~", U: "c2@6 e2@5 ~ d2@6 c2@4 d2 ~",
  V: "g1@3 ~@2 d2 g2@3 ~@2 g2", W: "d2@4 ~@2 d2@4 ~@2 d2@5 ~@5 d2@2", X: "g1@3 ~ g1 ~ g1@3 ~ g1 ~ g2@5 ~ g2@5 ~",
  Y: "[d2@4 ~@2 d2@4 ~@2 d2@5 ~@4 d2@2 g1@3 ~@2 g1 ~ g1@3 ~ g1 ~ g2@4 ~@2 g2@5 ~]/2",
  Z: "g1@7 ~@3 g1@2 g2@2 ~@2 g2@2 f#2@3 ~ e2@2", AA: "g1@2 ~@2 g1@2 g1@4 ~@2 g2@5 ~ g2@3 ~ g2@2",
  AB: "d2@4 ~@2 d2@4 ~@2 c2@2 ~ b1@2 ~ c2@2 ~@2 d2@2", AC: "g1@2 ~@2 g1 ~ g1@4 ~@2 g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~",
  AD: "d2@4 ~@2 d2@4 ~@2 d2@3 c2@2 ~ b1@2 ~@2 a1@2", AE: "g1@5 ~@19", AF: "~@22 d2 ~",
  AG: "g1@7 ~@3 g1@2 g2@6 ~@4 g2 ~", AH: "c2@4 ~@2 c2@5 ~ d2@6 ~@4 d2@2", AI: "g1@6 ~@4 g1@2 g2@5 ~@5 g2 ~",
  AJ: "c2@4 ~@2 c2@5 ~ d2@5 ~@5 d2 ~", AK: "g1@6 ~@4 g1 ~ g2@3 ~ g2 ~ g2@3 ~ g2 ~", AL: "c2@4 ~@2 c2@5 ~ d2@5 ~ d2@5 ~",
  AM: "g1@13 ~@11",
})).s("gm_fretless_bass").gain(0.49)

// chords · epiano1 · "E.PIANO 1"
const epiano1_2 = note(`<
  ~@16 A B@2 C A D@2 E F@2 G C H I H J K L@2 M K L@2 N O@2 P@2 Q@2 R@3 S@2 T K L@2 T ~@8 U@2 V@2 W@2 X@3 S@2 M K L@2 Y Z
  AA AB AC AD@2 AE AF K L@2 M K L@2 AG@2 AH@6 AI ~@25
>`.pickRestart({
  A: "~@3 d4!3", B: "[e4@2 e4@3 c4@3 d4@3 d4@2 ~@4 d4 d4@2 d4@2 e4@2]/2", C: "d4@2 c4@5 ~@5",
  D: "[e4@2 e4@3 c4@3 d4@3 d4@2 ~@5 d4@2 d4@2 e4@2]/2", E: "d4 c4@3 ~@2",
  F: "[~@2 d4 g4@3 g4@2 d4@3 e4@4 d4@2 c4@3 d4@4]/2", G: "~@2 d4 g4@3 g4@2 d4@2 e4@2", H: "~@2 d4 g4@3 g4@3 d4@3",
  I: "e4@3 d4@2 c4@3 d4@3 ~", J: "e4@2 d4@3 c4@4 ~@3", K: "~@3 [d4,g4]!3",
  L: "[[e4,a4]@4 [e4,a4]@6 [c4,f#4]@6 [d4,g4]@6 [d4,g4]@5 ~@9 [d4,g4]@4 [d4,g4]@4 [e4,a4]@4]/2", // A5 Cdim G5 A5
  M: "[d4,g4]@4 [c4,f#4]@11 ~@9", N: "[d4,g4] [c4,f#4]@2 ~@3", O: "[~@2 d4@2 g4@2 g4@3 b3@2 c4@2 b3@2 a3@2 b3@4 ~@3]/2",
  P: "[~@2 d4@2 g4@2 g4@3 d4@2 e4@4 d4@2 c4@4 ~@3]/2", Q: "[~@2 d4@2 g4@2 g4@3 d4@2 e4@2 g4@2 g4@2 d4@3 ~@4]/2",
  R: "[~@2 d4@2 g4@2 g4@3 d4@2 e4@3 d4@3 c4@3 b3@3 c4@4 ~@3 [d4,g4]@2 [d4,g4]@2 [d4,g4]@2]/3", // G5
  S: "[[e4,a4]@4 [e4,a4]@5 [c4,f#4]@7 [d4,g4]@6 [d4,g4]@5 ~@9 [d4,g4]@4 [d4,g4]@4 [e4,a4]@4]/2", // A5 Cdim G5 A5
  T: "[d4,g4]@2 [c4,f#4]@7 ~@3", U: "[~@2 d4@2 g4@2 g4@3 d4@2 e4@3 d4 c4@3 d4@4 ~@2]/2",
  V: "[~@4 d4@4 g4@4 g4@6 d4@4 e4@6 d4@2 c4@9 ~@9]/2", W: "[~@2 d4@2 g4@2 g4@3 d4@2 e4@2 g4@2 g4@2 d4@4 ~@3]/2",
  X: "[~@2 d4@2 g4@2 g4@2 d4@3 e4@3 d4@3 c4@3 b3@3 c4@4 ~@3 [d4,g4]@2 [d4,g4]@2 [d4,g4]@2]/3", // G5
  Y: "[d4,g4] [c4,f#4]@4 ~", Z: "~@2 [b3,d4]@2 [d4,g4]@2 [d4,g4]@3 [d4,g4]@3",
  AA: "[c4,e4,g4]@2 [b3,d4,g4]@2 [a3,c4,f#4]@2 [g3,d4]@5 ~", AB: "~ [b3,d4] [b3,d4,g4]!2 [b3,g4] [c4,e4]",
  AC: "[b3,d4]@4 [a3,d4]@4 [g3,b3]@9 ~@7", // Bm D5 G
  AD: "[~@2 [b3,d4]@2 [b3,d4,g4]@2 [b3,d4,g4]@3 [b3,d4,g4]@2 [c4,e4,g4]@3 [c4,e4,g4]@3 [c4,e4,g4]@3 [d4,f#4,a4]@3 ~]/2", // Bm G C D
  AE: "~@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@3 [b3,d4,g4]@3", AF: "[c4,e4,g4] [d4,e4,g4] [d4,f#4,a4]@2",
  AG: "[[d4,g4]@2 [c4,f#4]@6 [c4,e4,a4]@3 [c4,e4,a4]@3 [b3,d4,g4]@6 [b3,d4,g4] [b3,g4]@3, ~@21 d4@2 ~]/2", // G5 Cdim Am G Em
  AH: "[[c4,e4,a4]@2 [c4,e4,a4]@3 [d4,f#4,b4]@3 [c4,e4,a4]@3 [c4,e4,a4]@3 [b3,d4,g4]@6 [b3,d4,g4] [b3,d4,g4]@3]/2", // Am Bm Am G
  AI: "[c4,e4,a4]@2 [c4,e4,a4]@3 [d4,f#4,b4]@6 ~", // Am Bm
})).s("gm_epiano1").gain(0.4)

// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~@16 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~@9 B
>`.pickRestart({
  A: "~ [b4,d5,g5]", B: "[b4,d5,g5]@5 ~@7",
})).s("gm_percussive_organ").gain(0.29).pan(0.7)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@40 A B C D A E A F ~@8 A B C D A E A F ~@3 G A E A F A B C D A E A F ~@8 A B C D A E A F A B C D A E A F ~@3 G A E A
  F A B C D A E A F A B C D A E A F ~
>`.pickRestart({
  A: "[b4,d5]@2 d4@2 [b4,d5]@2 d4@2 [b4,d5]@2 d4@2 [b4,d5]@2 d4@2 [b4,d5]@2 d4@2 [b4,d5]@2 d4 ~", // Bm
  B: "[b4,d5]@2 d4 ~ [a4,c5]@2 d4@2 [a4,c5]@2 d4@2 [g4,b4]@2 d4@2 [g4,b4]@2 d4@2 f#4 ~ d4 ~", // Bm Am G
  C: "d5@2 d4@2 b4 ~ [d4,d5]@2 [b4,d5]@2 d4@2 [b4,d5] ~ d4@2 [b4,d5] ~ d4@2 [b4,d5]@2 d4@2", // D Bm
  D: "[b4,d5]@2 d4@2 [a4,c5]@2 d4@2 [a4,c5]@2 d4 ~ [g4,b4]@2 d4 ~ [g4,b4]@2 d4@2 [f#4,a4]@2 d4@2", // Bm Am G F#m
  E: "[b4,d5]@2 d4@2 [a4,c5]@2 d4 ~ c5@2 d4 ~ [g4,b4]@2 d4@2 [g4,b4]@2 d4@2 [f#4,a4]@2 d4@2", // Bm Am G F#m
  F: "[b4,d5]@2 d4@2 [a4,c5]@2 d4@2 [a4,c5]@2 d4 ~ [g4,b4]@2 d4@2 [f#4,a4]@2 d4 ~ [f#4,a4]@2 d4@2", // Bm Am G F#m
  G: "~@2 d4@2 [a4,c5]@2 d4@2 [a4,c5]@2 d4 ~ [g4,b4]@2 d4 ~ [g4,b4]@2 d4@2 [f#4,a4]@2 d4@2", // Am G F#m
})).s("gm_electric_guitar_jazz").gain(0.14).pan(0.7)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@8 A B C D E D F D F G H D F D I J K L K M K M K N O P Q P R P S P T U Q P Q P Q P V W X W X W X W ~@8 T U Q P Q P Q
  P V W X W X W X W ~@7 Y Z AA Z AA AB AC AB AA ~@8 T U Q P Q P Q P V W X W X W X W ~@9
>`.pickRestart({
  A: "g2@5 ~ g3@4 ~@2 g3@5 ~@7", B: "~@2 d3 ~ g3@2 g2 ~ d3@2 g3@2 c3@2 ~@2 c3@2 e3@4 d3@2",
  C: "g2@5 ~ g3@4 ~@2 g3@4 ~@6 g3 ~", D: "c3@5 ~ e3@6 d3@5 ~ c3@4 d3@2",
  E: "g2@3 ~ g2@2 g3@3 ~ d3@2 g3@2 ~@2 g3 ~ g3@3 ~ g3 ~", F: "g2@4 g3 ~@5 d3 ~ g3@3 ~ g3 ~ g3@3 ~ g3 ~",
  G: "c3@6 e3@6 d3@4 ~@6 d3 ~", H: "g2@6 ~@4 g2 ~ g3@3 ~ g3 ~@5 g3 ~", I: "g2@5 ~@5 g2 ~ g3@3 ~ g3 ~@5 g3 ~",
  J: "c3@6 e3@6 d3@6 ~@4 d3 ~", K: "g2@4 ~@2 g2@4 ~@2 g2@5 ~@7", L: "~@10 g2 ~ d3@3 ~ d3 ~ d3@3 ~ d3@2",
  M: "~@10 g2 ~ d3 ~ d3 ~ d3 ~ d3@2 ~@2 d3 ~", N: "~@10 g2 ~ d3@5 ~@7", O: "g2@4 ~@2 g2@4 ~@2 g2@5 ~@5 g2 ~",
  P: "c2@3 e2@3 d2@3 c2@2 d2", Q: "g2@5 ~@5 d2 ~ g2@3 ~ g2 ~ g2@3 ~ g2 ~", R: "g2@4 ~@6 d2 ~ g2@5 ~@5 g2 ~",
  S: "g2@4 ~@6 d2 ~ g2 ~ g2 ~ g2 ~ g2@2 ~@2 g2 ~", T: "g2@5 ~@5 d2 ~ g2@5 ~ g2@5 ~", U: "c2@5 ~ e2@6 d2@6 ~@4 d2 ~",
  V: "g2@5 ~@5 d2 ~ g2@5 ~@5 g2@2", W: "d2@4 ~@2 d2@4 ~@2 d2@5 ~@5 d2 ~", X: "g2@3 ~ g2 ~ g2@3 ~ g2 ~ g2@4 ~@2 g2@5 ~",
  Y: "~@22 d2 ~", Z: "g2@6 ~@4 g2 ~ g2@5 ~@5 g2 ~", AA: "c2@3 ~@3 c2@4 ~@2 d2@6 ~@4 d2 ~",
  AB: "g2@6 ~@4 g2 ~ g2@2 ~@2 g2 ~ g2@2 ~@2 g2 ~", AC: "c2@2 ~ c2@2 ~ d2@2 ~ d2@2 ~",
})).s("gm_electric_guitar_muted").gain(0.28)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz_2 = note(`<
  A@2 B@2 C@2 D@2 ~@32 E F G H I J I K L ~@7 E F G H I J I K ~@3 M I J I K N F G H I J I K ~@16 E F G H I J I K ~@3 M I
  J I K N F G H I J I K E F G H I J I K ~
>`.pickRestart({
  A: "[~@6 d5@3 ~ d5@23 ~@13 b4@2]/2", B: "[~@4 d5@3 ~@3 g4 ~ b4@2 ~@2 b4@2 c5@4 b4@6 g4@9 ~@3 g4 ~ d5@4 b4@2]/2",
  C: "[g4@4 d5@2 b4@4 g4 ~ c5@4 b4 ~ c5@4 b4@14 ~@4 g4@2 d4@4 e4@2]/2", D: "[g4@13 ~@5 g4@24 ~@6]/2",
  E: "~@4 [b4,d5]@2 d4@2 [b4,d5]@2 d4@2 [b4,d5]@2 d4 ~ [b4,d5]@2 d4 ~ [b4,d5]@2 d4 ~", // Bm
  F: "[b4,d5]@2 d4@2 [b4,d5]@2 d4 ~ [a4,c5]@2 d4@2 [a4,c5]@2 d4@2 [g4,b4]@2 d4@2 [g4,b4]@2 d4@2", // Bm Am G
  G: "f#4 ~ d4 ~ d5@2 d4@2 b4 ~ [d4,d5]@2 [b4,d5]@2 d4@2 [b4,d5] ~ d4@2 [b4,d5] ~ d4@2", // D Bm
  H: "[b4,d5]@2 d4@2 [b4,d5]@2 d4@2 [a4,c5]@2 d4@2 [a4,c5]@2 d4 ~ [g4,b4]@2 d4 ~ [g4,b4]@2 d4@2", // Bm Am G
  I: "[f#4,a4] d4 [b4,d5] d4 [b4,d5] d4 [b4,d5] d4 [b4,d5] d4 [b4,d5] d4", // F#m Bm
  J: "[b4,d5]@2 d4 ~ [b4,d5]@2 d4@2 [a4,c5]@2 d4 ~ c5@2 d4 ~ [g4,b4]@2 d4@2 [g4,b4]@2 d4@2", // Bm Am G
  K: "[b4,d5]@2 d4@2 [b4,d5]@2 d4@2 [a4,c5]@2 d4@2 [a4,c5]@2 d4 ~ [g4,b4]@2 d4@2 [f#4,a4]@2 d4 ~", L: "[f#4,a4] ~@11",
  M: "~@2 d4@2 [b4,d5]@2 d4@2 [a4,c5]@2 d4@2 [a4,c5]@2 d4 ~ [g4,b4]@2 d4 ~ [g4,b4]@2 d4@2", // Bm Am G
  N: "[f#4,a4]@2 ~@2 [b4,d5]@2 d4@2 [b4,d5]@2 d4@2 [b4,d5]@2 d4 ~ [b4,d5]@2 d4 ~ [b4,d5]@2 d4 ~", // F#m Bm
})).s("gm_electric_guitar_jazz").gain(0.1)

// other · soprano sax · "SOPRAN SAX"
const soprano_sax = note("<~@57 A@3 B@2 C D@2 ~@64>".pickRestart({
  A: "[~@11 d#5@2 e5@5 ~ f5@48 ~@3 d5@2]/3",
  B: "[f5@4 d5@3 ~ f5@3 ~ d5@3 f5@2 d5@2 ~ f5@3 d5@2 ~ f5@2 d5@2 f5@2 d5@2 ~ c5@2 a#4@2 b4@7 d4@2]/2", C: "g4@2 ~",
  D: "[~@3 b4@2 ~ c5@2 e5@2 g5@2 ~ c6@5 b5@4 g5@15 ~@11, ~@6 b5 ~@17]/2",
})).s("gm_soprano_sax").gain(0.3).pan(0.3)

// other · soprano sax · "SOPRAN SAX"
const soprano_sax_2 = note("<~@23 A@2 ~@5 B C D@2 E ~@18 F G H I@6 ~@7 J@2 K L ~@15 M N O P Q R S ~@34>".pickRestart({
  A: "[~@6 b4@4 g4@2 c5@4 b4@2 g4@4 ~ f#4@2 g4@4 ~@3 c4 ~@15, ~@22 d4@2 ~@5 f#4@2 d4@2 ~@15, ~@15 e4 ~@8]/2",
  B: "~@8 d5 g5@2 b5", C: "d6@4 b5@2 c6@3 ~ c6@2 b5@3 ~ g5@2 d5@4 c5@2",
  D: "[b4@4 d5@3 g4@3 d4@2 f4@24 d4@3 ~@2 d4 c4@4 a#3@2, ~@12 e4 ~@27 f4@2 ~@6]/2", E: "b3@2 g4 ~@9", F: "d4@5 ~@19",
  G: "d5 ~@2 b4 ~@2", H: "c5@2 e5 g5@2 b5 c6@3 b5@2 f#4", I: "[g4@11 ~]/6", J: "[~@5 b4@39 ~ c5@3]/2",
  K: "~@4 b4@5 ~ d4@2 g4@4 ~@3 g4@5, ~@17 d4@2 ~@5, ~@9 f#4 ~@2", L: "d4@5 ~@3", M: "~@12 d5@4 g5@3 ~@2 g5@2 ~",
  N: "~ a5@9 f#5@2 ~@4 d5@2 c5@3 a#4@2 ~, g5 ~@11", O: "b4@3 ~ d5@2 g5@4 d5 ~ g5@12",
  P: "~@3 a5@2 f#5@4 a5@3 d5@3 f#5@3 a4@4 d5@2", Q: "b4@4 d5@2 g4@4 b4 ~@13", R: "~@3 f4 f#4@8 d4@4 a4@2 c5@3 d5@3",
  S: "a#4 b4@5 g5@11 ~@7",
})).s("gm_soprano_sax").gain(0.2).pan(0.7)

// chords · melodic tom · "MELO TOM 1"
const melodic_tom = note(`<
  A ~@4 B C D E F@4 G@2 H G@2 F I G@3 J E F@4 G@2 H G@2 F I G@3 J E F@4 G@2 H G@2 F I G@3 J E F@4 G@2 K E F@4 G@2 H G@2
  F I G@2 L M E F@4 G@2 H G@2 F I G@2 L M E F@4 G@2 K E F@4 G@2 H G@2 F I G@2 L M E F@4 G@2 K ~
>`.pickRestart({
  A: "~@4 b2 ~ e2@2 ~@2 c2@6 ~@8", B: "~@18 a3@3 ~ a3 ~", C: "[c3,c4]@3 ~@13 d3 ~ c4@2 ~@2 c4 ~",
  D: "~@2 c4 ~@3 c4 ~@3 c4 ~ [f2,g2] ~ g2 ~ g2 ~ [d2,g2,d3]@6", E: "~@3 [d2,a2] ~@2, ~@6 d3 ~@5",
  F: "~@12 [d2,a2,d3]@5 ~@7", G: "~@4 [d2,a2,d3] ~@3", H: "~@4 [d2,a2] ~@3, ~@12 d3 ~@11", I: "~@3 [d2,a2,d3] ~@2",
  J: "~@6 [d2,d3] ~@5, ~@12 a2 ~@11", // D
  K: "~@6 [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [e3,a3]@3 ~ [e3,a3] ~ e3@2 [b2,e3] ~ [b2,e3] ~, ~@18 b2 ~@5", // D5 A5 E5
  L: "~@12 [d2,a2,d3]@3 ~@7 b3 ~", M: "b3 ~@3 b3@2 ~@4 b3 ~ a2@2 e3 ~ [a2,e3] ~ [d2,a2] ~ d2 ~ d2 ~",
})).s("gm_melodic_tom").gain(0.49)

// drums · kick
const kick = s("bd").struct("<~@8 A@40 ~ A@15 ~ A@7 ~ A@8 ~@8 A@15 ~ A@7 ~ A@15 ~>".pickRestart({
  A: "x",
})).gain(0.49)

// drums · rim
const rim = s("rim").struct("<~@48 [~ x ~@2] ~@23 [~ x ~@2] ~@39 [~ x ~@2] ~@16>").gain(0.44)

// drums · snare
const snare = s("sd").struct("<~@63 A ~@23 A ~@15 A ~@23 A ~>".pickRestart({
  A: "~@11 x",
})).gain(0.38)

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

// drums · open hat
// … 34 more lines

More by Sting