Strudelify

Where Is the Love

Timeless

KeyD majorTempo105 bpm
0:00/0:00
// Where Is the Love — Timeless
// 105 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 124 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(105/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 · piano · "A.Piano"
const piano = note(`<
  ~ A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A C D@4 E F G D E F G D A H G I A H D J A@2 B@2 A@2 B@2 A C D@4 E F G D E F G D A H
  G I A H D J A@2 B@2 A@2 B@2 A C D@4 A@2 B@2 A C D@2 A H G I A H D K L M@2 N@2 M@2 N@2 M O K@2 M@2 N@2 M@2 N@2 M O K P
>`.pickRestart({
  A: "[g2,f#3,a3,b3,d4]@4 ~ [g2,f#3,a3,b3,d4] ~@3 [g2,f#3,a3,b3,d4]@4 ~@2 [g2,f#3,a3,b3,d4] ~@4 [g2,f#3,a3,b3,d4] ~@3", // Gmaj7
  B: "[d2,d3,f#3,a3,d4]@4 ~ [d2,d3,f#3,a3,d4] ~@3 [d2,d3,f#3,a3,d4]@4 ~@2 [d2,d3,f#3,a3,d4] ~@4 [d2,d3,f#3,a3,d4] ~@3", // D
  C: "[f#2,d3,f#3,a3,d4]@4 ~ [f#2,d3,f#3,a3,d4] ~@3 [f#2,d3,f#3,a3,d4]@4 ~@2 [f#2,d3,f#3,a3,d4] ~@4 [f#2,d3,f#3,a3,d4] ~@3", // D
  D: "[a2,e3,g3,b3,d4]@4 ~ [a2,e3,g3,b3,d4] ~@3 [a2,e3,g3,b3,d4]@4 ~@2 [a2,e3,g3,b3,d4] ~@4 [a2,e3,g3,b3,d4] ~@3", // Em7
  E: "[d2,f#3,a3,c#4,e4]@4 ~ [d2,f#3,a3,c#4,e4] ~@3 [d2,f#3,a3,c#4,e4]@4 ~@2 [d2,f#3,a3,c#4,e4] ~@4 [d2,f#3,a3,c#4,e4] ~@3", // Dmaj7
  F: "[b2,f#3,a3,b3,d4]@4 ~ [b2,f#3,a3,b3,d4] ~@3 [b2,f#3,a3,b3,d4]@4 ~@2 [b2,f#3,a3,b3,d4] ~@4 [b2,f#3,a3,b3,d4] ~@3", // Bm7
  G: "[e2,e3,g3,b3,d4]@4 ~ [e2,e3,g3,b3,d4] ~@3 [e2,e3,g3,b3,d4]@4 ~@2 [e2,e3,g3,b3,d4] ~@4 [e2,e3,g3,b3,d4] ~@3", // Em7
  H: "[f#2,f#3,a3,c#4,e4]@4 ~ [f#2,f#3,a3,c#4,e4] ~@3 [f#2,f#3,a3,c#4,e4]@4 ~@2 [f#2,f#3,a3,c#4,e4] ~@4 [f#2,f#3,a3,c#4,e4] ~@3", // F#m7
  I: "[d2,f#3,a3,d4,f#4]@4 ~ [d2,f#3,a3,d4,f#4] ~@3 [d2,f#3,a3,d4,f#4]@4 ~@2 [d2,f#3,a3,d4,f#4] ~@4 [d2,f#3,a3,d4,f#4] ~@3", // D
  J: "~@3 [a2,e3,g3,b3,d4] ~@4 [a2,e3,g3,b3,d4] ~@3 [a2,e3,g3,b3,d4] ~@11", // Em7
  K: "[b2,f#3,a3,c#4,e4]@4 ~ [b2,f#3,a3,c#4,e4] ~@3 [b2,f#3,a3,c#4,e4]@4 ~@2 [b2,f#3,a3,c#4,e4] ~@4 [b2,f#3,a3,c#4,e4] ~@3", // F#m7
  L: "~@3 [b2,f#3,a3,c#4,e4] ~@4 [b2,f#3,a3,c#4,e4] ~@3 [b2,f#3,a3,c#4,e4] ~@11", // F#m7
  M: "[a2,g#3,b3,c#4,e4]@4 ~ [a2,g#3,b3,c#4,e4] ~@3 [a2,g#3,b3,c#4,e4]@4 ~@2 [a2,g#3,b3,c#4,e4] ~@4 [a2,g#3,b3,c#4,e4] ~@3", // Amaj7
  N: "[e2,e3,g#3,b3,e4]@4 ~ [e2,e3,g#3,b3,e4] ~@3 [e2,e3,g#3,b3,e4]@4 ~@2 [e2,e3,g#3,b3,e4] ~@4 [e2,e3,g#3,b3,e4] ~@3", // E
  O: "[g#2,e3,g#3,b3,e4]@4 ~ [g#2,e3,g#3,b3,e4] ~@3 [g#2,e3,g#3,b3,e4]@4 ~@2 [g#2,e3,g#3,b3,e4] ~@4 [g#2,e3,g#3,b3,e4] ~@3", // E
  P: "[b2,f#3,a3,c#4,e4]@4 ~ [b2,f#3,a3,c#4,e4] ~@3 [b2,f#3,a3,c#4,e4]@4 ~@11", // F#m7
})).s("gm_piano").gain(0.24)

// bass · electric bass finger · "Fing.Bass"
const bass = note(`<
  ~@9 A B C D A B C D E F G H I J K L M N K L M O P Q R S T U V W A B C D A B C D E F G H I J K L M N K L M O P Q R S T
  U V W A B C D A B C D E F G H I J X ~@5 Y@2 P Q R S T U V Z AA AB AC AD AE AB AC AD AE AF AG AH AI AB AC AD AE AB AC
  AD AE AF AG AH AI
>`.pickRestart({
  A: "g1@6 ~@2 g1 ~@3 g1@5 ~@3 d1 e1@3", B: "g1@6 ~@2 g1 ~@3 g1@5 ~ a1@5 ~", C: "d2@6 ~@2 d2 ~@3 d1@5 ~@3 a1 b1@3",
  D: "d1@5 ~ e1@5 ~ f#1@5 ~ a1@5 ~", E: "g1@6 ~@2 g1 ~@3 g1@5 ~@3 a1 g1@3", F: "f#1@6 ~@2 f#1 ~@3 f#1@5 ~@3 f#1 g1@3",
  G: "a1@6 ~@2 a1 ~@3 a1@5 ~@3 f#1 g1@3", H: "a1@6 ~@2 a1 ~@2 a1@2 ~ a1 f#1@3 g1@2 ~ g#1@2 ~",
  I: "a1@4 ~ a1 ~@3 a2@5 ~ a1@3 a1 ~ e1 f#1@2 ~", J: "a1@4 ~@2 a1@3 ~@2 a1 ~@3 a1@3 ~@3 a1@3",
  K: "d1@9 ~@2 d1 d1@4 ~@2 f#1@4 ~@2", L: "b1@9 ~@2 b1 b1@4 ~@2 f#1@4 ~@2", M: "e1@9 ~@2 e1 e1@4 ~@2 g1@4 ~@2",
  N: "a1@9 ~@2 a1 ~@2 a1 b1@2 ~ d2@2 ~ b1@2 d2", O: "a1@9 ~@2 a1 a1@4 ~@2 a1@4 ~@2",
  P: "g1@6 ~@2 g1 ~@2 g1 g1@5 ~@3 g1 e1@3", Q: "f#1@6 ~@2 f#1 ~@2 f#1 f#1@5 ~@3 f#1 d1@3",
  R: "e1@6 ~@2 e1 ~@2 e1 a1@4 ~@2 b1@5 ~", S: "d1@6 ~@2 d1 ~@2 d1 d1@4 ~@2 f#1@5 ~",
  T: "g1@6 ~@2 g1 ~@2 g1 g1@5 ~@3 a1 g1@3", U: "f#1@6 ~@2 f#1 ~@2 f#1 f#1@5 ~@3 f#1 g1@3", V: "a1 ~ a1 ~ a1 ~ a1 ~",
  W: "~@3 a1@2 ~@3 a1 ~@3 a1 ~@11", X: "g1 ~@5", Y: "a1@6 ~@3 a1@14 ~", Z: "b1 ~ b1 ~ b1 ~ b1 ~",
  AA: "~@3 b1@2 ~@3 b1 ~@3 b1 ~@11", AB: "a1@6 ~@2 a1 ~@3 a1@5 ~@3 e1 f#1@3", AC: "a1@6 ~@2 a1 ~@3 a1@5 ~ b1@5 ~",
  AD: "e2@6 ~@2 e2 ~@3 e1@5 ~@3 b1 c#2@3", AE: "e1@5 ~ f#1@5 ~ g#1@5 ~ b1@5 ~", AF: "a1@6 ~@2 a1 ~@3 a1@5 ~@3 b1 a1@3",
  AG: "g#1@6 ~@2 g#1 ~@3 g#1@5 ~@3 g#1 a1@3", AH: "b1@6 ~@2 b1 ~@2 b1 b1@5 ~@3 g#1 a1@3",
  AI: "b1@6 ~@2 b1 ~@2 b1 b1@5 ~ g#1@6",
})).s("gm_electric_bass_finger").gain(0.42)

// other · brass section · "Brass Sec" · A
const brass_section = note(`<
  ~@38
  [~@3 [a4,a5] ~@4 [a4,a5] ~@3 [a4,a5] ~@11]
  ~@29
  [~@3 [a4,a5] ~@4 [a4,a5] ~@3 [a4,a5] ~@11]
  ~@55
>`).s("gm_brass_section").gain(0.64).pan(0.6)

// other · string ensemble 1 · "Violins"
const string_ensemble_1 = note(`<
  ~ A@2 B C A@2 D E F@2 G H I@2 J@2 K L M ~ N ~ O@2 P Q R@2 P S T U V W T X Y Z F@2 G H I@2 J@2 K L M ~ N ~ O@2 P Q R@2
  P S T U V W T X Y Z F@2 G H I@2 J@2 K L M ~ N ~ A@2 B C A@2 AA@3 U V W AB X Y AC AD AE@2 AF AG AH@2 AI@2 AJ AK AL ~
  AE@2 AF AG AH@2 AI@2 AJ AK AL ~
>`.pickRestart({
  A: "[d6@6 c#6 b5]/2", B: "a5@3 a4", C: "f#5@3 e5@3 d5@2", D: "a5@18 ~@4 a4 b4",
  E: "c#5 b4 c#5 d5 c#5 d5 e5 d5 e5 f#5 e5 f#5 g5 f#5 g5 a5 g5 a5 b5 a5 b5 c#6 b5 c#6", F: "[f#6@6 e6 d6]/2", G: "a5",
  H: "a5 b5 d6 b6", I: "[a6@5 f#6@30 ~ e6@6 d6@6]/2", J: "[a5@22 ~ a5@6 ~ b5@6 d6@6 b6@6]/2",
  K: "f#6@21 [f#4,f#5]@2 [g4,g5]", L: "[a4,a5] [f#4,f#5] [d5,d6] [b4,b5]", M: "[a4,a5]",
  N: "~@9 [a4,a5]@6 [g4,g5]@2 ~ [g4,g5]@3 [a4,a5] ~@2, ~@17 [f#4,f#5]@2 ~@5", // A G A F#
  O: "[~@15 c#6@2 b5 c#6 ~@2 a5@15 c#5@4 d5@4 ~ a5@3]/2", P: "g5@15 b5@2 a5 b5 ~@2 f#5@2 e5", Q: "f#5@2 b4 b5",
  R: "[a5@15 c#6@2 b5 c#6 ~@2 a5@15 c#5@4 d5@4 ~ a5@3]/2", S: "f#5@3 ~", T: "f#6@3 d6", U: "e6@3 a5", V: "b5@2 d6 b6",
  W: "f#6@4 a5@2 b5 c#6", X: "e6@3 b6", Y: "a6", Z: "~@3 [a4,a5] ~@4 [a4,a5] ~@3 [a4,a5] ~@11",
  AA: "[a5@18 f#5@3 e5@9 d5@6 g5 f#5 g5 a5 g5 a5 b5 a5 b5 c#6 b5 f#6@19 d6@6, ~@47 c#6 ~@24]/3", AB: "d6@3 f#6",
  AC: "b6", AD: "~@3 [b5,b6] ~@4 [b5,b6] ~@3 [b5,b6] ~@11", AE: "[g#6@6 f#6 e6]/2", AF: "b5", AG: "b5 c#6 e6 c#7",
  AH: "[b6@5 g#6@30 ~ f#6@6 e6@6]/2", AI: "[b5@22 ~ b5@6 ~ c#6@6 e6@6 c#7@6]/2", AJ: "g#6@21 [g#4,g#5]@2 [a4,a5]",
  AK: "[b4,b5] [g#4,g#5] [e5,e6] [c#5,c#6]", AL: "[b4,b5]",
})).s("gm_string_ensemble_1").gain(0.48)

// chords · electric guitar muted · "Muted Gtr"
const electric_guitar_muted = note(`<
  ~@9 A B C D A B C D A D E F E G ~@16 A B C D A B C D A D E F E G ~@16 A B C D A B C D A D E F E H ~@17 I J K L I J K L
  I L M N I J K L I J K L I L M N
>`.pickRestart({
  A: "[b3,d4]@2 d4 d4@2 [b3,d4] ~@2 [b3,d4] ~@3 [b3,d4] ~@7 a3 b3@2 ~", // Bm
  B: "[b3,d4]@2 d4 d4@2 [b3,d4] ~@2 [b3,d4] ~@2 b3 [b3,d4] ~@2 [b3,e4] ~@2 [b3,d4] ~@5", // Bm E5 Bm
  C: "[a3,d4]@2 d4 d4@2 [a3,d4] ~@2 [a3,d4] ~@3 [a3,d4] ~@7 a3 b3@2 ~", // D5
  D: "[a3,d4]@2 d4 d4@2 [a3,d4] ~@2 [a3,d4] ~@2 a3 [a3,d4] ~@2 [a3,e4] ~@2 [a3,d4] ~@5", // D5 A5 D5
  E: "[a3,d4]@2 d4 d4@2 [a3,d4] ~@2 [a3,d4] ~@3 [a3,d4] ~@4 a3 b3 ~@2 d4 ~@2", // D5
  F: "[a3,d4]@2 d4 d4@2 [a3,d4] ~@2 [a3,d4] ~@2 d4 [d4,f4,f#4] ~@2 d4 ~@2 d4@2 ~ b3@2 ~", // D5 D
  G: "[a3,d4]@2 d4 d4@2 [a3,d4] ~@2 [a3,d4] ~@2 d4!2 ~@2 e4 ~@2 d4 ~@5", // D5
  H: "[a3,d4]@2 d4 d4@2 [a3,d4] ~@2 [a3,d4] ~@2 d4 a4 ~ e4@2 ~ d4 b3@2 a3 e3@2 d3", // D5
  I: "[c#4,e4]@2 e4 e4@2 [c#4,e4] ~@2 [c#4,e4] ~@3 [c#4,e4] ~@7 b3 c#4@2 ~", // C#m
  J: "[c#4,e4]@2 e4 e4@2 [c#4,e4] ~@2 [c#4,e4] ~@2 c#4 [c#4,e4] ~@2 [c#4,f#4] ~@2 [c#4,e4] ~@5", // C#m F#5 C#m
  K: "[b3,e4]@2 e4 e4@2 [b3,e4] ~@2 [b3,e4] ~@3 [b3,e4] ~@7 b3 c#4@2 ~", // E5
  L: "[b3,e4]@2 e4 e4@2 [b3,e4] ~@2 [b3,e4] ~@2 b3 [b3,e4] ~@2 [b3,f#4] ~@2 [b3,e4] ~@5", // E5 B5 E5
  M: "[b3,e4]@2 e4 e4@2 [b3,e4] ~@2 [b3,e4] ~@3 [b3,e4] ~@4 b3 c#4 ~@2 e4 ~@2", // E5
  N: "[b3,e4]@2 e4 e4@2 [b3,e4] ~@2 [b3,e4] ~@2 e4 [e4,g4,g#4] ~@2 f#4 ~@2 e4@2 ~ c#4@2 ~", // E5 E
})).s("gm_electric_guitar_muted").gain(0.3).pan(0.3)

// chords · electric guitar muted · "Muted Gtr" · soft notes
const electric_guitar_muted_2 = note(`<
  ~@9 A@2 B@2 A@2 B@2 A B@5 ~@16 A@2 B@2 A@2 B@2 A B@5 ~@16 A@2 B@2 A@2 B@2 A B@5 ~@17 C@2 A@2 C@2 A@2 C A@3 C@2 A@2 C@2
  A@2 C A@3
>`.pickRestart({
  A: "~@2 b3 b3@2 ~@19", B: "~@2 a3 a3@2 ~@19", C: "~@2 c#4 c#4@2 ~@19",
})).s("gm_electric_guitar_muted").gain(0.12).pan(0.3)

// chords · electric guitar jazz · "Wah Guita"
const electric_guitar_jazz = note(`<
  A B ~@2 A B ~@2 C ~@3 C ~@3 C ~@3 D E D ~@7 F@8 C ~@3 C ~@3 C ~@3 D E D ~@7 F@8 C ~@3 C ~@3 C ~@3 D E D ~@7 G@4 H@5 I
  ~@3 I ~@3 I ~@3 J ~@3 I ~@3 I ~@3 K
>`.pickRestart({
  A: "~@21 [a4,d5]!3", B: "[a4,d5] [g4,g#4,c5,c#5] [f4,f#4,a#4,b4] [e4,g#4,a4] ~@20",
  C: "~@15 [a4,d5]!4 [g4,g#4,c5,c#5] [f4,f#4,a#4,b4] [e4,g#4,a4] ~@2", // D5 C#maj7 F#maj7 Amaj7
  D: "[a3,a4]@2 [a3,a4] ~@2 [a3,a4] [a3,a4]@2 [a3,a4] ~@2 [a3,a4] [a3,a4]@2 ~ [a3,a4] a4 [a3,a4] [a3,a4]@4 ~@2", // A
  E: "[a3,a4]@2 [a3,a4] ~@2 [a3,a4] [a3,a4]@2 [a3,a4] ~@2 [a3,a4] [a3,a4]@2 [a3,a4] ~@2 [a3,a4] [a3,a4]@2 [a3,a4] ~@2 [a3,a4]", // A
  F: "[~@24 [g4,b4]@23 ~ [a4,c#5]@23 ~ [g4,b4]@23 ~ [c#5,f#5]@2 [c5,f5] [g4,a#4,b4,d#5,e5] [f4,f#4,a4,d5] ~ [c#5,f#5]@3 [g4,b4,d#5,e5] f4 ~@4 [a4,d5]!4 [g4,g#4,c5,c#5] [f4,f#4,a#4,b4] [e4,g#4,a4] ~@2 [g4,b4]@23 ~ [a4,c#5]@23 ~ [g4,b4]@23 ~, ~@23 d4@23 ~ f#4@23 ~ d4@23 ~ a4@4 ~@2 a4@4 ~@14 d4@23 ~ f#4@23 ~ d4@23 ~@2]/8", // G A G F#5 F5 D# D F#5 …
  G: "[~@24 [g4,b4]@23 ~ [a4,c#5]@23 ~ [g4,b4]@23 a4, ~@23 d4@23 ~ f#4@23 ~ d4@23 ~@2]/4", // G A G
  H: "[[c#5,f#5]@2 [c5,f5] [g4,a#4,b4,d#5,e5] [f4,f#4,a4,d5] ~ [c#5,f#5]@3 [g4,b4,d#5,e5] f4 ~@4 [a4,d5]!4 [g4,g#4,c5,c#5] [f4,f#4,a#4,b4] [e4,g#4,a4] ~@2 [g4,b4]@23 ~ [a4,c#5]@23 ~ [g4,b4]@23 ~ [a4,c#5]@23 ~, ~@5 a4@4 ~@14 d4@23 ~ f#4@23 ~ d4@23 ~ e4@23 ~@2]/5", // F#5 F5 D# D F#5 Em D5 C#maj7 …
  I: "~@15 [b4,e5]!4 [a4,a#4,d5,d#5] [g4,g#4,c5,c#5] [f#4,a#4,b4] ~@2", // E5 D#maj7 C#maj7 Bmaj7
  J: "[b3,b4]@2 [b3,b4] ~@2 [b3,b4] [b3,b4]@2 [b3,b4] ~@2 [b3,b4] [b3,b4]@2 ~ [b3,b4] b4 [b3,b4] [b3,b4]@4 ~@2", // B
  K: "[b3,b4]@2 [b3,b4] ~@2 [b3,b4] [b3,b4]@2 [b3,b4] ~@2 [b3,b4] [b3,b4]@2 ~ [b3,b4] b4 [b3,b4] b3 ~@5", // B
})).s("gm_electric_guitar_jazz").gain(0.19).pan(0.9)

// chords · electric guitar jazz · "Wah Guita" · soft notes
const electric_guitar_jazz_2 = note(`<
  A B ~@2 A B ~@2 C ~@3 C ~@3 C ~@3 D ~ D ~@11 E ~@3 C ~@3 C ~@3 C ~@3 D ~ D ~@11 E ~@3 C ~@3 C ~@3 C ~@3 D ~ D ~@11 E
  ~@4 F ~@3 F ~@3 F ~@3 G ~@3 F ~@3 F ~@3 G
>`.pickRestart({
  A: "~@20 d4 ~@3", B: "~@3 [d4,d#4,g4] ~@20", C: "~@14 d4 ~@6 [d4,d#4,g4] ~@2", D: "~@16 a3 ~@7",
  E: "~@2 g#4 ~@5 [g#4,c5,f5] a#4 [f#4,a4,d5] ~@3 d4 ~@6 [d4,d#4,g4] ~@2", F: "~@14 e4 ~@6 [e4,f4,a4] ~@2",
  G: "~@16 b3 ~@7",
})).s("gm_electric_guitar_jazz").gain(0.08).pan(0.9)

// chords · flute
const flute = note(`<
  ~@12 A ~@3 A ~@2 B ~ B C ~@19 A ~@3 A ~@2 B ~ B C ~@3 D E F G H ~@3 I J K L ~@4 A ~@3 A ~@2 B ~ B C M ~ M ~ N ~ N ~@4
  O P ~@7 Q ~@3 Q ~@2 R ~@4 Q ~@3 Q ~@2 R ~
>`.pickRestart({
  A: "d5@2 [d5,f#5] [c#5,e5] ~@2 [b4,d5] ~ [b4,d5] [a4,d5] ~@2 [a4,d5]@7 ~@5, f#5 ~@23", // D C#m Bm D5
  B: "~@9 [f#5,a5]@6 [e5,g5]@2 [d5,f#5] [e5,g5]@3 [f#5,a5] ~@2", C: "~@3 b4@3 a4@13 ~@5",
  D: "~@11 [c5,c#5] d5@3 c#5@3 b4@3 c#5@3", E: "a4@17 ~ f#4@5 [c#5,d5]", F: "e5 d5 c#5 d5", G: "b4", H: "a4@23 ~",
  I: "~@4 a4@2 [b4,d5] [c#5,e5]", J: "[d5,f#5]@17 ~ [d5,f#5]@6", K: "[c#5,e5]", L: "[b4,d5]",
  M: "f#5 ~@2 e5 ~ f#5 ~@2 e5 ~@2 d5@8 ~@5",
  N: "[d5,f#5] ~@2 [c#5,e5] ~ [d5,f#5] ~@2 [c#5,e5] ~@2 [b4,d5]@5 ~ [a4,c5] b4 ~@5, ~@8 [a#4,c#5] ~@3", // D C#m D C#m Bm Am A#m
  O: "~@6 a4@6 d5@5 ~ [b4,d5]@3 [c#5,e5]@3", P: "[d5,f#5] ~",
  Q: "e5@2 [e5,g#5] [d#5,f#5] ~@2 [c#5,e5] ~ [c#5,e5] [b4,e5] ~@2 [b4,e5]@7 ~@5, g#5 ~@23", // E D#m C#m E5
  R: "~@9 [g#5,b5]@6 [f#5,a5]@2 [e5,g#5] [f#5,a5]@3 [g#5,b5] ~@2", // G#m F#m E F#m G#m
})).s("gm_flute").gain(0.32).pan(0.4)

// other · orchestral harp · "Harp"
const orchestral_harp = note(`<
  ~@7 A B ~@7 C ~@2 D E D E ~@11 F ~@3 G@2 ~@6 C ~@2 D E D E ~@11 F ~@3 G@2 ~@7 C ~@2 D E D E H I J K ~ L M ~@4 F ~@3
  N@2 ~@6 O ~@2 P Q ~@7 O ~@2 P Q
>`.pickRestart({
  A: "~@22 a5 [b4,d5,f#5]", // Bm
  B: "a4 ~@4 [b5,d6] b6 ~@7 [a4,b4] d5 f#5 ~@7, ~@10 a3@3 f#4@2 ~@9, ~@11 b3@3 ~@10, ~@6 d4 ~@5", // Bm Asus2
  C: "~@16 d4 f#4 a4 ~ d5 f#5 ~@2, ~@15 [a3,b3]@2 ~@2 b4@2 ~@3", // Asus2
  D: "~@3 e6 d6 b5 [e5,g5] d5 b4 g4 e4 d4 a3@2 ~ d3 ~@3 d4 e4 ~ f#4 g4, ~@12 b3 ~@3 e3@2 b3@2 ~@4, ~@17 g3@2 ~@5", // Em
  E: "b4 ~@23", F: "~@16 f#5 [a5,c#6] [e6,f#6] ~@5",
  G: "[~@18 a3 ~ f#4 a4 b4 ~ f#5 ~@23, ~@19 b3@2 ~@27, ~@20 d4@2 ~ d5@2 ~@23]/2", H: "~@23 [d4,f#4], ~@11 a3",
  I: "[a4,d5] ~@7 b3 ~ [d4,f#4] a4 b4@2 f#4 a4 ~ [b4,d5] f#5 ~@5, ~@2 f#3 ~@5, ~@7 a3@2 ~@5 d4@2 ~@8", // D5 D Bm
  J: "~@6 d3 a3 b3 d4 f#4 a4 a4@2 f#4 ~ b3 ~ d3@2 ~@3 d4, ~@6 f#3@2 ~@4 b4 ~@2 d4@2 [f#3,a3]@2 ~@5", K: "f#4 b4 ~@22",
  L: "~@4 e6 ~ a5 ~ e5 d5 b4 a4 f#4 ~ d4@2 d4 ~@2 a4 ~ d4 ~ a4, ~@3 f#6@2 b5@2 f#5@2 ~@4 e4@2 ~@2 f#4@2 ~ f#4@2 f#4@2, ~@2 d6 ~@6 b4 ~@2",
  M: "[a4,b4] f#4 ~ d4 a4 b4 a4 f#4 d4 ~ a4 b4 [f#4,a4] d4 ~@4 a4 b4 d5 f#5 ~@2, ~@4 f#4@2 ~@3 f#4@2 ~@4 a3@2 f#4@2 ~@5, ~@8 [b3,d4] ~@3", // Asus2 F#m Bm
  N: "[~@18 b3 ~ g#4 b4 c#5 e5@2 ~@23, ~@19 c#4@2 ~@27, ~@20 e4@2 ~ g#5 ~@24]/2",
  O: "~@16 e4 g#4 b4 ~ e5 g#5 ~@2, ~@15 [b3,c#4]@2 ~@2 c#5@2 ~@3", // Bsus2
  P: "~@3 f#6 e6 c#6 [f#5,a5] e5 c#5 a4 f#4 [c#4,e4] b3@2 ~ e3 ~@3 e4 f#4 g#4 ~ a4, ~@8 f#3 c#4 ~@2, ~@17 a3@2 ~@5", // F#m C#m
  Q: "c#5 ~@23",
})).s("gm_orchestral_harp").gain(0.2).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@5 A@3 ~ A@29 B A@29 B A@21 ~ A@7 B@2 A@24>".pickRestart({
  A: "x!4", B: "x!3 ~",
})).gain(0.64)

// drums · clap
const clap = s("cp").struct("<~@5 [~ x ~ x]!3 ~ [~ x ~ x]!74 ~@8 [~ x ~ x]!33>").gain(0.48)

// drums · snare
const snare = s("sd").struct("<~@8 A B@29 A B@29 A B@13 A ~@7 A B@8 A B@11 A B@11 C>".pickRestart({
  A: "~@3 x ~@4 x ~@3 x ~@2 x ~@2 x ~@2 x ~ x", B: "~ x ~ x", C: "~@3 x ~@4 x ~@3 x ~@2 x ~@2 x ~@2 x ~@2",
})).gain(0.56)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@7 A B C D E F C D E F C D E F G H C D E F C D E F C D E F C D E F C D E F C D E F C D E F G H C D E F C D E F C D E
  F C D E F C D E F C D E F C D E F G H C D E F C D E F C D E F C D E F@2 C D E F C D E F C D E F C D E F C D E F C D E
  F
>`.pickRestart({
  A: "~@23 x", B: "x ~ x!2 ~@2 x ~@2 x ~@2 x!4 ~@8", C: "x ~@2 x!3 ~ x", D: "x ~@8 x ~@2 x ~@5 x ~ x!2 ~ x",
  E: "x ~ x ~@6 x ~@2 x ~@2 x ~@5 x ~ x", F: "x ~ x ~@6 x ~@2 x!4 ~@5 x ~@2",
  G: "x ~ x ~@6 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x", H: "x ~ x!2 ~@5 x ~ x!5 ~@5 x ~@2",
})).gain(0.48)
// … 32 more lines