Strudelify

(You Make Me Feel Like) A Natural Woman

Carole King

KeyC majorTempo70 bpm
0:00/0:00
// (You Make Me Feel Like) A Natural Woman — Carole King
// 70 bpm, 6/8, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 58 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/3)

// 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 · "Specials"
const piano = note(`<
  A B C D E B C D E F G H I J K L M N O P Q R S T U V W X Y J K L M Z AA AB@2 AC AD AE AF J K L AG J K L AG J K L AG J K
  L AH ~
>`.pickRestart({
  A: "~@8 a4@3 ~ [f2,c4,f4,a4]@4 [g2,d4,f4,a#4]@4 [a2,c4,f4,a4]@4", // F Gm7 F
  B: "[e4,g4]@8 [e4,g4,c5]@4 [e4,g4,c5]@11 ~, [c3,c4]@23 ~", // Em C
  C: "[b3,d4]@24 [g3,b3,d4]@13 ~@3 [b3,d4,g4]@8, b1@23 ~, [b2,g4]@37 b2@10 ~", // Bm G Em
  D: "a#3@8 ~@8 f3@6 a#3@2 [a#3,d4]@8 ~@8 f3@5 a#3@2 ~, a#1@47 ~, [a#2,d4,f4]@24 [a#2,f4]@23 ~, f3@2 ~ f3@2 ~, ~@8 a#3@13 ~@11 [a#3,d4]@15 ~", // A# A#5 A#
  E: "[f3,c4,f4,a4]@21 ~@3 [c4,f4,a4]@7 ~ [e2,e3,c4,e4,g4]@8 [d2,d3,a3,c4,f4,a4]@7 ~, f2@31 ~@17, ~@21 f3@10 ~@17", // F C Dm7
  F: "[f3,a3,c4,e4]@3 [g3,b3,d4]@2 [g3,b3,d4]", G: "[f3,a3,c4,e4]@24 [g3,b3,d4]@13 ~@3 [b3,d4]@8, ~@37 g3@11",
  H: "[f3,a3,c4,e4] [g3,b3,d4]", I: "[f3,a3,c4,d4] [a3,c4,f4]",
  J: "[c4,e4]@7 ~ [c4,e4]@6 ~@7 g3@3 [a3,c4,f4]@7 ~ [a3,c4,f4]@7 ~ [a3,c4,f4]@7 ~, g3@8 ~@6 g3@5 ~@29, ~@2 [c4,e4] ~@3", // C F C
  K: "[g3,c4,e4]@6 ~@2 [c4,e4]@5 ~@3 [c4,e4]@5 g3 ~@2 [a3,c4,f4]@6 ~@2 [c4,f4]@5 a3 ~@2 [a3,c4,f4]@6 ~@2, ~@8 g3 ~@4 g3@6 ~@13 a3@3 ~@13", // C F F5 F
  L: "[g3,c4,e4]@5 ~@43", M: "~@24 [a3,c4,f4]@7 ~ [g3,c4,e4]@7 ~ [f3,a3,d4]@8", N: "g3@24 g3@23 ~, [c2,g2,c4,e4]@47 ~",
  O: "g3@24 ~@16 [b3,d4]@3 g2@2 f2@2 ~, b2@11 ~, [b3,d4,g4]@8 [b3,d4,g4]@3 ~, ~@24 g3@13 g3@7 ~@4", // Bm G
  P: "[f3,a#3,d4]@24 [f3,a#3,d4]@14 ~@2 [a#3,d4]@7 ~, a#2@23 ~, ~@38 f3@9 ~", // A#
  Q: "[f2,f3,a3,c4]@22 ~@2 [c4,f4,a4]@8 [c4,e4,g4]@11 ~@3 f4@2", // F C
  R: "[c4,e4,g4]@24 [c4,e4,g4]@14 ~@2 c4@7 ~, ~@38 a3@9 ~", // C
  S: "[b3,d4]@24 [b3,d4,g4]@13 ~@3 [b3,d4]@3 g2@2 f2@2 ~, [b2,g3]@37 g3@6 ~@5", // Bm G Bm Em
  T: "[a#3,d4,f4]@7 ~ [d4,f4]@7 ~, a#2@15 ~, ~@7 a#3@8 ~", // A# Dm
  U: "[f2,a3,c4,f4]@21 ~@3 [a3,c4,f4]@7 ~ [g3,c4,e4]@6 ~@2 [f3,a3,d4]@7 ~, ~@21 f2@10 ~@17", // F C Dm
  V: "[f3,a3,c4,e4]@3 d4 ~ [g3,b3,g4], ~@3 [g3,b3]@2 ~, ~@2 d4", // Fmaj7 G
  W: "[f3,a3,c4,e4]@3 d4 ~ [b3,d4,g4], ~@24 [g3,b3]@13 g3@11, ~@4 d4 ~", X: "[f3,a3,c4,e4]@3 [g3,b3,d4]@2 ~",
  Y: "[d2,f3,a3,c4]@24 ~@19 [g2,g3]@5, ~@24 [a3,c4,f4]@6 g3@8 g3@5 ~@5, ~@27 g2@8 g2@8 ~@5, ~@4 [a3,c4,f4]!2", // Dm7 G F
  Z: "[g3,c4,e4]@11 ~ g3@5 ~@3 c3@4, c2, ~@11 c3@9 ~@4, ~ [c4,e4], ~@35 g3@13", // C
  AA: "~@37 [f3,a#3,d4]@10 ~, g2@32 g2@15 ~, [f3,a#3,d4]@23 ~ g4@23 ~, ~@16 g1@31 ~, ~@24 [a#3,d4]@13 ~@11", // A#
  AB: "[[c3,g3,c4,e4]@22 ~@2 g3@16 g3@6 ~@2 [g3,a#3,d4]@21 ~@3 g3@8 g3@8 g2@5 ~@3, c2@46 g1@47 ~@3, ~@22 c3@26 ~@21 g2@18 ~@9, ~@8 [c4,e4]@8 ~@8 [a#3,d4]@7 ~]/2", // C Gm C A#
  AC: "c4@15 ~ c4@5 d4@2 ~ f4@13 ~@3 f4@5 d4 ~@2, [a3,e4]@11 ~ [a3,c4,d4]@11 ~", // A5 D7
  AD: "[a#3,d#4,g4]@21 c4@2 ~ [d4,d#4,g4]@14 c4 ~ [d4,d#4,g4]@5 c4 ~@2", // D# D#maj7
  AE: "[c4,e4]@16 [c4,e4]@6 a3@2 a3@8 ~@5 [c4,f4]@8 a3 ~@2, a3@21 ~@3 [c4,f4]@13 ~@11, ~@32 a3@13 ~@3", // C F5
  AF: "a3@8 ~@5 [c4,f4]@8 a3@3 [g3,b3,d4]@8 [b3,d4]@8 [b3,d4]@6 ~@2, [c4,f4]@13 ~@11 f4@22 ~@2, ~@8 a3@13 ~@11 g3@13 ~@3", // F5 G Bm F5
  AG: "[c4,f4,a4]@14 ~@2 [f4,a4]@6 c4@2 a4@4 ~ g4@10 ~ [d4,f4,g4]@5 b3 ~@2, ~@7 c4@4 ~ [b3,d4,f4]@8 ~@4", // F G7 Bdim
  AH: "[c4,f4,a4]@14 ~@2 [f4,a4]@6 c4@3 ~@23, ~@7 c4@4 ~@13", // F
})).s("gm_piano").gain(0.38).pan(0.6)

// bass · electric bass finger · "Remixed"
const bass = note(`<
  A B C D E B C D F G H@2 I J@2 K L B M N O P Q R S T U V W X Y K Z AA AB AA AC AD AE AF AG AH Y AI AJ AK AL AI AM AH Y
  AI AJ AK AL AI AN ~
>`.pickRestart({
  A: "~@8 c2@7 ~", B: "c2@21 ~@3 c2@19 ~@2 c2 ~@2", C: "b1@22 ~@2 b1@19 ~@2 b1 ~@2", D: "a#1@21 ~@3 a#1@17 ~@4 a#1 ~@2",
  E: "f2@23 ~ f2@6 ~@2 e2@7 ~ d2@6 ~@2", F: "f2@23 ~ f2@7 ~ f2@8 f2@8", G: "d2@20 ~@4 e2@21 d2 ~@2",
  H: "d2@22 ~@2 e2@21 d2 ~@2", I: "d2@20 ~@2 d2 ~ g2@7 ~ g2@6 ~@2 g2@5 b1@2 ~",
  J: "c2@15 ~ c2@4 ~ e2 ~@2 f2@8 f1@7 ~ a1@5 ~ b1 ~", K: "c2@5 ~@3 a2@5 ~@3 g2@5 ~@3 e2@4 ~@4 d2@5 ~@3 c2@4 ~@4",
  L: "d2@14 ~@2 g1@4 ~@2 g1 ~ g1@6 ~@2 g1@6 ~@2 g1@5 b1 ~@2", M: "b1@22 ~@2 b1@15 ~ g1@4 ~@2 a1 ~",
  N: "a#1@22 ~@2 a#1@20 ~ d2@2 ~", O: "f2@22 ~@2 f2@7 ~ e2@6 ~@2 d2@7 ~", P: "c2@22 ~@2 c2@16 c2@7 ~",
  Q: "b1@22 ~@2 b1@7 ~ g1@7 ~ a1@6 ~@2", R: "a#1@21 ~@3 a#1@20 ~ d2 ~@2", S: "f2@22 ~@2 f2@7 ~ f2@7 ~ f2@5 ~ f2 ~",
  T: "d2@20 ~ d2@2 ~ e2@21 d2 ~@2", U: "d2@22 ~@2 e2@21 d2@2 ~", V: "d2@22 ~@2 e2@21 ~@3",
  W: "d2@20 ~@2 g1 ~ g1@7 ~ g1@6 ~@2 g1@5 b1@2 ~", X: "c2@15 ~ c2@4 ~ e2 ~@2 f2@5 f1 ~@2 f1@7 ~ a1@5 ~ b1 ~",
  Y: "c2@15 ~ c2@4 ~ e2 ~@2 f2@6 ~@2 f1@7 ~ a1@7 ~", Z: "d2@11 ~@2 d2 ~@2 d2@4 ~@4 g1@6 ~@2 g1@6 ~@2 g1@5 b1 ~@2",
  AA: "c2@20 ~@2 c2 ~ c2@14 ~@2 c2@7 ~", AB: "g1@7 ~ g1@7 ~ g1@7 ~ g1@7 ~ g1@7 ~ g1@4 ~ b1@2 ~",
  AC: "g1@7 ~ g1@7 ~ g1@7 ~ g1@7 ~ g1@7 ~ c2@4 ~ e2@2 ~", AD: "f2@21 ~@3 f2@15 ~ f2@5 f2 ~@2",
  AE: "c2@6 ~@2 c2@7 ~ c2@7 ~ c2@7 ~ c2@6 ~@2 c2@5 c2@2 ~", AF: "f2@22 ~@2 e2@20 ~@2 e2 ~",
  AG: "d2@19 ~@2 d2@2 ~ g1@6 ~@2 g1@7 ~ g1@4 ~@2 b1 ~", AH: "c2@13 a1@2 ~ c2@4 ~ e2 ~@2 f2@7 ~ f1@7 ~ a1@5 ~ b1 ~",
  AI: "c3@3 ~ a2@3 ~ g2@3 ~ e2@3 ~ d2@3 ~ c2@3 ~", AJ: "d2@7 ~ g1@7 ~ g1@5 ~ g1 ~ g1@7 ~ g1@6 ~@2 g1@2 ~ a1 ~ b1@2 ~",
  AK: "c2@13 a1@2 ~ c2@4 ~ e2 ~@2 f2@5 f1@2 ~ f1@7 ~ a1@5 ~ b1 ~",
  AL: "c2@13 g1 ~@2 c2@4 ~ e2 ~@2 f2@6 ~@2 f1@7 ~ a1@7 ~",
  AM: "d2@7 ~ d2@7 ~ d2@5 ~ g1 ~ g1@7 ~ g1@6 ~@2 g1@2 ~ a1 ~ b1@2 ~", AN: "d2@7 ~ d2@7 ~ d2@5 ~ g1 ~@25",
})).s("gm_electric_bass_finger").gain(0.38)

// chords · epiano1 · "Remixed" · Am A# Dm C Am A#
const epiano1 = note(`<
  ~@2
  [~@15 [c4,e4,a4]]
  [[d4,f4,a#4] ~@5]
  [~@15 [d4,f4,a4]]
  [[e4,g4,c5]@13 ~@35]
  [~@15 [c4,e4,a4]]
  [[d4,f4,a#4] ~@5]
  ~@50
>`).s("gm_epiano1").gain(0.24).pan(0.4)

// chords · epiano1 · "Remixed"
const epiano1_2 = note("<~@12 A B@2 C D@2 ~@10 E B@2 C D@2 F ~ G ~ H ~ A B@2 C I B@2 C I B@2 J K ~@5>".pickRestart({
  A: "~@3 [c4,f4,a4,c5] [c4,f4,a4] [c4,f4,a4,g5]", B: "[c4,e4,g4,e5]@3 [c4,f4,a4,c5] [c4,f4,a4] [c4,f4,a4,g5]",
  C: "[c4,e4,g4,e5] [f4,a4,d5] [e4,g4,c5] [c4,e4,g4] [a3,d4,f4] [g3,c4,e4]", // C Dm C Dm C
  D: "[[c4,e4,g4]@5 [a3,d4,f4]@19 e4@5 d4@8 c4@3 a3@16 ~@40]/2", E: "~@5 [c4,f4,a4,g5]",
  F: "~@16 a4@5 g4@3 a#4@5 a4@3 a4@16", G: "~@24 a#4@5 a4@3 a4@16", H: "~@24 d#5@5 d5@5 ~ d5@13",
  I: "[c4,e4,g4]@5 [a3,d4,f4]@19 [c4,f4,a4,c5]@8 [c4,f4,a4]@8 [c4,f4,a4,g5]@8", // C Dm F
  J: "[c4,e4,g4,e5] [f4,a4,d5] [e4,g4,c5] [c4,e4,g4] a3 [g3,e4]", K: "c4@5 a3@19 ~@24",
})).s("gm_epiano1").gain(0.24).pan(0.4)

// chords · epiano1 · "Remixed" · soft notes · Dm Em Dm F C F C Dm …
const epiano1_soft = note(`<
  ~@51
  [~@4 [d4,f4] c4]
  [[e4,g4]@5 [d4,f4]@19 [c4,f4,a4,c5]@8 [c4,f4,a4]@8 [c4,f4,a4,g5]@8]
  [[c4,e4,g4,e5]@3 [c4,f4,a4,c5] [c4,f4,a4] [c4,f4,a4,g5]]!2
  [[c4,e4,g4,e5] [f4,a4,d5] [e4,g4,c5] [c4,e4,g4] [a3,d4,f4] [g3,c4,e4]]
  [[c4,e4,g4]@5 [a3,d4,f4]@19 ~@24]
  ~
>`).s("gm_epiano1").gain(0.04).pan(0.4)

// other · french horn · "Remixed"
const french_horn = note("<~@5 A B@2 C ~@4 D E ~@6 F G B H ~@4 D E ~@10 D E ~@2 D E ~@2 D E ~@2 D E ~@3>".pickRestart({
  A: "e4", B: "d4@47 ~", C: "c4@47 ~", D: "~@7 e4@12 d4@2 ~ c4@2 a3@24", E: "~@7 e4@11 d4@2 c4@2 ~ a3@23 ~@2",
  F: "~@24 e4@23 ~", G: "d4@15 ~", H: "c4@7 ~",
})).s("gm_french_horn").gain(0.44).pan(0.7)

// other · string ensemble 2 · "Remixed"
const string_ensemble_2 = note("<~@4 A B@4 C@6 D A E@4 B@4 C@6 D F@8 G@3 H@12 I@2 ~>".pickRestart({
  A: "~@47 e4",
  B: "[~@7 e4@2 ~@6 e4@2 ~@6 e4@2 ~@6 e4@2 ~@6 e4@2 ~@6 d4@2 ~@6 d4@2 ~@6 d4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 a4@8 g4@8 f4@6 ~@3]/4",
  C: "[~@31 e4@2 d4@2 b3@2 d4 ~ e4@2 d4 ~ b3@2 d4 ~ e4@15 ~@17 e4@2 d4@2 b3@2 d4 ~ e4@2 d4 ~ b3@2 d4 ~ e4@24 d4@24 d4@40 ~@2 e5@2 ~@3 b5 c6@24 c6@24 c6@24 c6@24 ~, ~@183 c5@2 ~@3 g5@2 ~@98, ~@184 d5@3 f5@2 a5@2 ~@97]/6",
  D: "c6 ~@15",
  E: "[~@7 e4@2 ~@6 e4@2 ~@6 e4@2 ~@6 e4@2 ~@6 e4@2 ~@6 d4@2 ~@6 d4@2 ~@6 d4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 f4@2 ~@6 a4@8 g4@8 f4@6 ~@2 e4]/4",
  F: "[~@47 g5@48 g5@48 g5@48 g5@48 g5@48 g5@48 g5@24 a5@24 a5]/8", G: "[~@23 g5@24 c6@24 c6@24 c6@24 c6@24 ~]/3",
  H: "[c6@3 ~@44 a4@24 g4@24 c6@24 c6@24 c6@24 c6@24 ~]/4", I: "[c6@3 ~@44 a4@24 ~@25]/2",
})).s("gm_string_ensemble_2").gain(0.38).pan(0.3)

// other · string ensemble 2 · "Remixed"
const string_ensemble_2_2 = note("<~@4 A@5 B@6 C D@7 E@2 B@6 C F@8 G@3 H@4 I@4 H@4 J@2 ~>".pickRestart({
  A: "[~@47 c4@2 ~@6 c4@2 ~@6 c4@2 ~@6 c4@3 ~@5 c4@2 ~@6 c4@3 ~@5 b3@3 ~@5 b3@2 ~@6 b3@3 ~@5 [b3,d4]@3 ~@5 [b3,d4]@3 ~@5 [b3,d4]@3 ~@5 d4@2 ~@6 d4@2 ~@6 d4@3 ~@5 d4@3 ~@5 d4@2 ~@6 d4@3 ~@5 c4@3 ~@5 c4@3 ~@5 c4@2 ~@6 [c4,f4]@8 [c4,e4]@8 [c4,d4]@8 ~]/5", // Bm F5 C Csus2
  B: "[~@31 b3@2 a3@2 g3@2 a3 ~ b3@2 a3 ~ g3@2 a3 ~ c4@15 ~@17 b3@2 a3@2 g3@2 a3 ~ b3@2 a3 ~ g3@2 a3 ~ [a3,c4]@24 [g3,b3]@24 [a3,c4]@40 ~@8 g5@24 a5@24 g5@24 a5@24 ~]/6", // Am G Am
  C: "g5 ~@23",
  D: "[~@23 a4@8 ~ g4@7 ~ f4@7 c4@2 ~@6 c4@2 ~@6 c4@2 ~@6 c4@3 ~@5 c4@2 ~@6 c4@3 ~@5 b3@3 ~@5 b3@2 ~@6 b3@3 ~@5 [b3,d4]@3 ~@5 [b3,d4]@3 ~@5 [b3,d4]@3 ~@5 d4@2 ~@6 d4@2 ~@6 d4@3 ~@5 d4@3 ~@5 d4@2 ~@6 d4@3 ~@5 c4@3 ~@5 c4@3 ~@5 c4@2 ~@6 [c4,f4]@8 [c4,e4]@8 [c4,d4]@8 c4@2 ~@6 c4@2 ~@6 c4@2 ~@6 c4@3 ~@5 c4@2 ~@6 c4@3 ~@5 b3@3 ~@5 b3@2 ~@6 b3@3 ~@5 [b3,d4]@3 ~@5 [b3,d4]@3 ~@5 [b3,d4]@3 ~@5 d4]/7", // Bm F5 C Csus2 Bm
  E: "[~@7 d4@2 ~@6 d4@3 ~@5 d4@3 ~@5 d4@2 ~@6 d4@3 ~@5 c4@3 ~@5 c4@3 ~@5 c4@2 ~@6 [c4,f4]@8 [c4,e4]@8 [c4,d4]@8 ~]/2", // F5 C Csus2
  F: "[~@47 e5@48 d5@48 e5@48 d5@48 e5@48 d#5@48 e5@24 f5@24 f5]/8", G: "[~@23 f5@24 g5@24 a5@24 g5@24 a5@24 ~]/3",
  H: "[g5@2 ~@45 f4@24 f4@24 g5@24 a5@24 g5@24 a5@24 ~]/4", I: "[g5@2 ~@45 f4@24 d4@24 g5@24 a5@24 g5@24 a5@24 ~]/4",
  J: "[g5@2 ~@45 f4@24 ~@25]/2",
})).s("gm_string_ensemble_2").gain(0.38)

// other · string ensemble 2 · "Remixed"
const string_ensemble_2_3 = note("<~@4 A@5 B@6 C D@8 E B@6 C F@8 G@3 H@12 I@2 ~>".pickRestart({
  A: "[~@47 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@3 ~@5 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 a#3@3 ~@5 a#3@2 ~@6 a#3@3 ~@5 a#3@3 ~@5 a#3@2 ~@6 a#3@2 ~@6 a3@2 ~@6 a3@2 ~@6 a3@2 ~@6 a3@8 g3@8 a3@7 ~@2]/5",
  B: "[~@31 e4@2 d4@2 b3@2 d4 ~ e4@2 d4 ~ b3@2 d4 ~ e4@15 ~@17 e4@2 d4@2 b3@2 d4 ~ e4@2 d4 ~ b3@2 d4 ~ f3@24 e3@24 f3@40 ~@7 b5 e5@24 f5@24 e5@24 f5@24 ~, ~@92 c5 e5 g5 ~@49, ~@185 d5@2 f5@2 a5@2 ~@97]/6",
  C: "e5 ~@15",
  D: "[~@47 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@3 ~@5 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 a#3@3 ~@5 a#3@2 ~@6 a#3@3 ~@5 a#3@3 ~@5 a#3@2 ~@6 a#3@2 ~@6 a3@2 ~@6 a3@2 ~@6 a3@2 ~@6 a3@8 g3@8 a3@7 ~ g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@3 ~@5 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 a#3@3 ~@5 a#3@2 ~@6 a#3@3 ~@5 a#3@3 ~@5 a#3@2 ~@6 a#3@2 ~@6 a3]/8",
  E: "~@7 a3@2 ~@6 a3@2 ~@6 a3@8 g3@8 a3@7 ~@2", F: "[~@47 c5@48 a#4@48 c5@48 a#4@48 c5@48 a#4@48 c5@47 ~ c5]/8",
  G: "[~@23 b4@24 e5@24 f5@24 e5@24 f5@24 ~]/3", H: "[e5@3 ~@44 c4@24 b3@24 e5@24 f5@24 e5@24 f5@24 ~]/4",
  I: "[e5@3 ~@44 c4@24 ~@25]/2",
})).s("gm_string_ensemble_2").gain(0.38).pan(0.8)

// other · muted trumpet · "Remixed"
const muted_trumpet = note("<~@13 A B ~@14 A B ~@10 A B ~@2 A B ~@2 A B ~@2 A B ~@3>".pickRestart({
  A: "~@8 e5@11 d5@2 ~ c5@2 a4@24", B: "~@8 e5@11 d5@2 c5@2 ~ a4@22 ~@2",
})).s("gm_muted_trumpet").gain(0.38).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~ A@12 B@2 A ~ A@12 B@2 A ~ C@3 A D A@3 E F A G H@2 A ~ E F A G H@2 A ~@2>".pickRestart({
  A: "x", B: "x ~@6 x!2 ~@7", C: "x ~@14 x", D: "x ~@4 x", E: "x ~@23 x ~@4 x ~@10 x ~@7", F: "x ~ x!2 ~@2", G: "~@5 x",
  H: "x!2",
})).gain(0.38)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~ [~@15 x]!12 ~@4 [~@15 x]!12 ~@9 [~@15 x]!3 ~@17>").gain(0.22)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@3 B A@3 B A@2 C D E F ~ B A@3 G A@3 H A I@2 J K I L M A@3 N A@3 O P Q ~ R S T L U P Q ~ R S T L ~@2
>`.pickRestart({
  A: "~ x", B: "~@29 x ~@2 x ~@7 x ~@7", C: "~@8 x ~@6 x", D: "~@5 x ~@2 x ~@7 x ~@7 x ~@7 x ~@4 x ~@2 x ~@2 x ~ x ~@2",
  E: "~@13 x ~@29 x ~ x ~@2", F: "~@16 x ~@15 x ~@7 x ~@4 x ~@2", G: "~@29 x ~@2 x ~@7 x ~@4 x ~@2",
  H: "~@29 x ~@2 x ~@5 x!3 ~@7", I: "~@3 x!3", J: "x ~@7 x ~@7 x ~@7 x ~@4 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2",
  K: "~@16 x ~@12 x ~@15 x ~@2", L: "x", M: "~@37 x ~@2 x ~@7", N: "~@24 x ~@4 x ~@2 x ~@7 x ~@2 x ~ x ~@2",
  O: "x ~@7 x ~@7 x ~@7 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2", P: "~@16 x ~@10 x ~@4 x ~@4 x ~@5 x ~ x ~@2",
  Q: "~@5 x ~@2 x ~@39", R: "~@37 x ~@5 x ~ x ~@2", S: "~@16 x ~@7 x ~@4 x ~@2 x ~@7 x ~@7",
  T: "~@13 x ~@2 x ~@10 x ~@4 x ~@7 x ~@4 x ~@2", U: "~@37 x ~@2 x ~@2 x ~ x ~@2",
})).gain(0.38)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@4 A ~@3 A ~@4 B C ~ A ~@3 A ~@3 D ~ E F G H I ~ J ~@7 K ~ L ~@2 G ~@4 L ~@2 G ~@4
>`.pickRestart({
  A: "~@8 x!2 ~@6", B: "~@5 x", C: "~@13 x ~@34", D: "~@24 x ~@2 x ~@9 x ~@10", E: "~@29 x ~@15 x ~@2", F: "~@15 x",
  G: "~@9 x ~@6", H: "~@13 x ~@13 x ~@20", I: "~@7 x ~@8", J: "~@32 x ~@2 x ~@12", K: "~@5 x ~@42",
  L: "~@3 x ~@36 x ~@7",
})).gain(0.22)

// drums · hihat
const hihat = s("hh").struct("<~ A@3 B A@3 B A@4 ~@4 A@3 B A@3 C A@3 D ~@4 A@3 E A@3 F ~@7 G ~@7 G ~>".pickRestart({
  A: "x!6", B: "x ~@7 x ~@7 x ~@7 x ~@2 x ~ x ~@2 x ~@7 x ~@7", C: "x ~@7 x ~@7 x ~@7 x ~@2 x ~ x ~@2 x ~@15",
  D: "x!3 ~@3", E: "x!5 ~", F: "x!4 ~@2", G: "x",
})).gain(0.33)

// drums · open hat
const open_hat = s("oh").struct("<~@28 [~ x] ~@7 [~@5 x] ~@21>").gain(0.44)

// drums · crash
const crash = s("cr").struct("<~@13 A ~@15 A ~@13 A ~ A ~@5 A ~ A ~@4>".pickRestart({
  A: "x",
})).gain(0.38)

// drums · ride
const ride = s("rd").struct("<~@13 A B ~@14 A B ~@10 C D ~ E A B F G C D ~ H A B F G ~>".pickRestart({
  A: "~ x!5", B: "x!6", C: "x ~@7 x ~@7 x ~@7 x ~@4 x ~@10 x ~@7", D: "x ~@7 x ~@7 x ~@7 x ~@4 x ~@2 x ~@7 x ~@7",
  E: "x!5 ~", F: "x", G: "~ x!2 ~@3", H: "x!2 ~ x!2 ~",
})).gain(0.38)

// … 8 more lines

More by Carole King