Strudelify

Let Love Lead the Way

Spice Girls

KeyB majorTempo116 bpm
0:00/0:00
// Let Love Lead the Way — Spice Girls
// 116 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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 · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A@4 B@4 C@2 D@2 E@2 F@2 G@4 H@2 I@2 J@3 K L@3 M N@4 O@2 P@2 Q@2 R S T@2 U@2 V@2 W@2 X@4 Y@2 Z@2 J@3 K L@3 M N@4 O@2
  AA@2 AB AC AD AC AB AE AF AG AH AI AJ AK AL AM AN AO J@3 K L@3 M N@4 O@2 AA@2 AP@2 AQ AR@8 AS@2
>`.pickRestart({
  A: "[d#4@3 b3@4 c#4@4 b3@2 a#3@2 g#3@3 a#3 b3@4 b3@4 a#3@2 e4@3]/4",
  B: "[d#4@3 b3@2 f#4@2 c#4@4 c#4@2 b3 a#3 g#3@17]/4", C: "[g#3@6 f#3@6 d#3@12 ~@2 b3@3 a#3@3]/2",
  D: "[g#3@6 d#3@7 ~ f#3 g#3]/2", E: "[f#3@6 f#3@6 d#3@13 ~ b3@3 a#3@3]/2", F: "[g#3@2 a#3 g#3@3 d#3@6 ~@2 g#3 a#3]/2",
  G: "[~@22 a#3@8 c#4@4 ~@16 d#3@8 [b3,d#4]@3 [a#3,c#4]@3, b3@4 f#3@7 ~ f#3@7 ~ f#3@11 ~@5 g#3@7 ~ g#3@14 ~@6, ~@2 c#3@6 ~@2 c#3@6 ~@2 c#3@13 ~@3 d#3@6 ~@2 d#3@6 ~@16, ~@3 b3@3 ~ b3@3 ~@9 c#4@3 ~ b3@6 ~@3]/4", // B A#m
  H: "[g#3@6 f#3@6 d#3@14 b3@3 a#3@3, c#4 ~, ~@12 c#3 ~@19]/2", I: "[g#3@3 ~@5 b3@4 a#3@4, ~@3 a#3@5 ~@8, ~@3 e3@5]/2",
  J: "[~@11 f#4, f#3@6 f#4@5 b3@7 ~ b3@7 ~@2 b3@5 ~@2 b3@7 ~ b3@4 ~, ~@3 b3@6 f#3@6 ~ f#3@7 ~@2 f#3@6 ~ f#3@7 ~@2 f#3@7, ~@12 f#4@8 ~@2 f#4@7 ~ f#4@6 ~@2 f#4@5 ~@5]/3",
  K: "~@7 d#4, f#3@2 f#4@2 b3@3 ~, ~ b3@2 f#3@2 e4@2 ~, ~@3 f#3",
  L: "[~@19 b3@3 b3@3 ~ a#3@4 ~@14 f#4@4, f#3@6 f#4@5 b3@7 ~@14 f#3@7 ~@2 f#3@7, ~@3 b3@6 f#3@6 ~ f#3@7 ~@2 f#3@5 g#3@5 b3@7 ~ b3@4 ~, ~@12 f#4@8 ~@2 f#4@7 ~@9 f#4@5 ~@5]/3",
  M: "~@2 d#4 ~ f#4 f#3 f#4 f#3, f#3@5 ~ f#3@4 ~@6, ~@2 b3@13 ~",
  N: "[~@19 b3@3 b3@3 ~ a#3@4 ~@6 e4@2 ~@4 a#3@4 b3@4 a#3@4 ~@5 f#4 c#4@3 ~, f#3@6 f#4@5 b3@7 ~@14 f#3@7 ~@2 f#3@7 ~@6 f#3@9 ~, ~@3 b3@6 f#3@6 ~ f#3@7 ~@2 f#3@5 g#3@5 ~@3 [b3,f#4]@5 ~@14 a#3@7, ~@12 f#4@8 ~@2 f#4@7 ~@35]/4", // B5
  O: "[~@12 f#4 ~ f#4@2 f#4@3 f#3@3 ~@6 f#4@2 ~ d#4, g#3@6 f#4@5 b3@5 ~@6 f#4@5 b3@4 ~, ~@3 b3@6 g#3@10 ~@6 f#3@4 ~ [f#3,c#4]@2]/2", // F#5
  P: "[e4@2 e4@2 d#4@2 c#4@4 b3@4 g#3@4 f#4@2 ~ f#4@2 ~ f#4@2 ~ f#4@2 ~ g#3 a#3, ~@20 g#3@2 ~ g#3@2 ~ g#3@2 ~@4]/2",
  Q: "[b3@4 f#4@2 a#3@4 ~@2 a#3@2 [e3,g#3]@8 ~@4 g#3 f#4@2 g#3 f#4@2, ~@10 f#3@4 ~@8 [d#3,f#3]@7 ~@3]/2", // E D#m
  R: "f#3@2 f#4@2 f#3 f#4@2 ~ f#4@2 ~ f#4@3 g#3 a#3, ~@7 f#3@2 ~ f#3@2 ~@4", S: "b3@2 a#3 g#3@2 f#3@2 f#3",
  T: "[~@2 b3@2 ~@4 b3@3 ~@3 b3@4 b3@3 b3@5 b3@3 ~ b3@2, g#3@5 b3@3 ~@3 b3@3 ~@15 a#3@3, ~@3 f#3@3 d#3@6 ~@4]/2",
  U: "[~@2 b3@2 ~ b3@3 b3@3 ~@3 b3@4 b3@3 b3@6 ~ f#3@2 [g#3,b3]@2, g#3@11 b3@3 ~@13 b3@3 ~@2, ~@6 d#3@7 ~@3]/2", // G#m
  V: "[~@2 b3@2 ~@4 b3@3 ~@3 b3@4 b3@3 b3@5 b3@3 ~ b3@2, f#3@5 b3@3 ~@3 b3@3 ~@15 a#3@3, ~@6 f#3@6 d#3@13 ~@7]/2",
  W: "[~@2 b3@2 ~@4 b3@3 ~@3 b3@4 b3@3 b3@6 ~ g#3@2 [a#3,b3]@2, g#3@2 a#3 g#3@3 d#3@6 ~@4, ~@5 b3@3 ~@3 b3@3 ~@13 b3@3 ~@2]/2", // Bmaj7
  X: "[b3@2 b3@2 ~ b3 b3@2 b3@2 ~@4 b3@4 b3@2 ~@7 b3@3 c#4@4 b3@2 ~@4 b3@2 ~@4 b3@4 b3@3 b3@5 [b3,d#4]@3 ~ b3@2, ~@2 c#3@6 ~@2 c#3@6 ~@2 c#3@13 ~@3 d#3@6 ~@2 d#3@6 ~@2 d#3@8 ~@6, ~@4 f#3@7 b3@3 ~@7 b3@6 ~@3 b3@3 ~@4 b3@3 ~@3 b3@3 ~@15 [a#3,c#4]@3, ~@12 f#3@7 ~ f#3@11 ~@5 g#3@7 ~ g#3@14 ~@6, ~@11 a#3@4 ~@4 c#4@3 ~@10]/4", // B A#m
  Y: "[~@2 b3@2 ~@4 b3@3 ~ c#3 ~ b3@4 b3@3 b3@5 b3@3 ~ b3@2, c#4 ~, g#3@5 b3@3 ~@3 b3@3 ~@15 a#3@3, ~@3 f#3@3 d#3@7 ~@3]/2",
  Z: "[~@2 b3@2 ~@4 b3@3 ~@3 b3@2 b3@8 a#3@8, g#3@5 b3@3 ~@3 b3@3 ~@18, ~@3 a#3@5 ~@8, ~@3 e3@5]/2",
  AA: "[e4@2 e4@2 d#4@2 c#4@4 b3@4 g#3@4 f#4@2 ~ f#4@2 g#3 f#4@2 ~ f#4@2 ~ g#3 a#3, ~@10 g#3 ~@2 g#3 ~@2]/2",
  AB: "g3@3 a#3@3 d#4@10", AC: "g#3@3 b3@3 d#4@10", AD: "g3@3 b3@3 f#4@4 e4@6", AE: "g#3 b3 d#4 b3 f#3 b3 d#4 b3",
  AF: "g#3@2 b3 e4@5", AG: "[g3,d#4]@2 [g#3,f4] [a#3,g4]@5", AH: "g#3 b3 d#4 b3@5", AI: "g3 a#3 d#4 a#3@5",
  AJ: "f#3 b3 d#4 b3@2 f#3 b3 d#4", AK: "g#3 c#4 f4 c#4@5", AL: "d#4@3 b3@3 g#3@2 f#3@8", AM: "b3@3 c#4@3 d#4@2",
  AN: "c#4", AO: "f#4",
  AP: "[b3@4 f#4@2 a#3@4 ~@2 a#3@2 [e3,g#3]@8 ~@4 g#3 f#4@2 g#3 [d#4,f#4]@2, ~@10 f#3@4 ~@8 [d#3,f#3]@7 ~@3]/2", // E D#m
  AQ: "[f#3,e4]@2 f#4@2 f#3 f#4@2 ~ f#4@2 ~ f#4@3 g#3 a#3, ~@2 b4@11 ~@3, ~@7 f#3@2 ~ f#3@2 ~@4", // F#7
  AR: "[b3@4 a#3@2 g#3@4 f#3@4 ~@4 f#4@3 f#4@3 f#4@3 f#4@3 f#4@4 f#4@3 f#4@3 f#4@3 f#4@3 f#4@4 f#4@3 f#4@3 f#4@3 f#4@3 f#4@4 f#4@3 f#4@3 f#4@3 f#4@3 f#4@4 f#4@3 f#4@3 f#4@3 f#4@3 f#4@4 f#4@3 f#4@3 f#4@3 f#4@3 f#4@4 f#4@3 f#4@3 f#4@3 f#4@3 f#4@2, ~@7 d#3@9 ~@48]/8",
  AS: "[~@2 f#4@3 f#4@3 f#4@3 f#4@3 f#4@4 f#4@3 f#4@3 ~@8]/2",
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.3)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~ A B C B D@4 ~@8 E@2 F@2 G@2 H I J@2 K L M L K N J@2 K L O L M P Q@2 R I ~@8 E@2 F@2 G@2 H I J@2 K L M L K N J@2 K L
  O L M P S T U V S W X Y Z S AA AB AA AC AD@2 J@2 K L M L K N J@2 K L O L M P Q@2 R AE@3 ~@7
>`.pickRestart({
  A: "[b2,b3]", B: "[f#2,f#3]", C: "[e2,e3]", D: "[[b2,b3,d#4] [f#2,f#3,a#3,c#4] [e2,e3,b3,e4]@2, f#4]/4",
  E: "[b3 a#3, [f#3,c#4]]/2", F: "[c#4@7 b3@9, [d#3,g#3]]/2", G: "[[e3,g#3]@3 [d#3,f#3]@5, b3]/2", H: "[g#3,b3,e4]",
  I: "[a#3,c#4,f#4]", J: "[[b3,d#4] [a#3,c#4], f#3]/2", K: "[e3,g#3,b3]", L: "[f#3,a#3,c#4]", M: "[f#3,b3,d#4]",
  N: "[a#3,c#4]@3 [b3,d#4]@5, f#3", O: "[g#3,b3,d#4]", P: "[f#3,g#3,b3,e4]",
  Q: "[[g#3,b3,d#4]@5 [f#3,a#3,c#4]@9 [e3,g#3,b3]@8 [d#3,f#3,b3]@10]/2", R: "e4@2 d#4 e4@5, [g#3,b3,c#4]",
  S: "[d#4,g4,a#4]", T: "c#5 b4, [d#4,g#4]", U: "[e4,g4,b4]", V: "[g#4,b4,d#5]", W: "c#5 [f#4,b4], [d#4,g#4]",
  X: "[e4,g#4,b4]", Y: "d#4@2 f4 [g4,a#4,c#5]@5, [g4,c#5]@3 ~@5", Z: "[b3,d#4,g#4]", AA: "[d#4,f#4,g#4,b4]",
  AB: "~@3 b5@4 ~, [f4,g#4,c#5]", AC: "[d#4,b4]@3 [e4,c#5]@3 [d#4,d#5]@2, f#4", AD: "[f#4,a#4,c#5]/2",
  AE: "[[a#3,c#4] ~@2, f#4]/3", // A#m
})).s("gm_string_ensemble_2").gain(0.32).pan(0.6)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@9 A@8 ~@28 A@8 ~@69>".pickRestart({
  A: "[[e4,g#4]@3 [f#3,d#4]@5, b3]/2", // E D#m
})).s("gm_string_ensemble_2").gain(0.16).pan(0.6)

// bass · electric bass finger
const bass = note(`<
  ~ A B C B A B D@2 E@8 F@2 G@2 E@2 D@2 H B C I J K C L M K C B N O P Q R@2 S T E@8 F@2 G@2 E@2 D@2 H B C I J K C L M K
  C B N O P Q U V W X Y Z C AA AB AC AD AE AF AG AH AI H B C I J K C L M K C B N O P Q R@2 S AJ AK@4 ~@5
>`.pickRestart({
  A: "b1", B: "f#1", C: "e1", D: "e1/2", E: "[e1@3 b0@5]/2", F: "f#1/2", G: "g#1/2", H: "b1@7 g#1", I: "f#1@7 g#1",
  J: "b1@3 b0@4 g#1", K: "f#1@14 g#1 f#1", L: "a#1@3 b1@4 g#1", M: "b1@5 b1@2 g#1", N: "g#1@7 g#1", O: "a#1@14 g#1 a#1",
  P: "b1@5 f#1@3", Q: "e1@14 e1 f#1", R: "[g#1@3 f#1@4 e1@4 d#1@5]/2", S: "c#1@2 g#1 c#1@5", T: "f#1@5 c#2@2 b1",
  U: "d#1@3 a#1 d#2@4", V: "g#1@5 g#1@3", W: "e1@5 e2 e1@2", X: "g#1", Y: "d#1@4 d#2 a#1 d#1@2", Z: "g#1 f#1",
  AA: "d#1@2 f1 g1@5", AB: "g#1@6 g#1!2 g#1@2 g#1@6", AC: "a#1@6 a#1!2 a#1@2 a#1@6", AD: "b1@6 b1!2 b1@2 b1@6",
  AE: "c#2@6 c#2!2 c#2@8", AF: "d#1@7 b1", AG: "e2@2 e2 b1", AH: "f#1@7 c#2", AI: "f#2", AJ: "f#1 c#2 f#2@6",
  AK: "[b1@31 ~]/4",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  ~@9 A@8 B@4 C@2 D E F@3 G H@3 I J@4 K@2 L@2 M@2 N@2 O@2 A@6 B@4 C@2 D E F@3 G H@3 I J@4 K@2 P@2 Q R S R Q T U V W X Y
  Z AA AB AC AD F@3 G H@3 I J@4 K@2 P@2 M@2 N@2 ~@9
>`.pickRestart({
  A: "[[e2,g#2,b2,e3]@11 ~ [f#2,b2,d#3]@20, ~@11 d#2@20 ~, ~@12 c#3 ~@19]/2", // E B
  B: "[[c#3,f#3]@2 ~@16 f#3@2 ~@2 a#3@8 ~@2 d#3@2 ~@20 b3@4 b3@3 a#3@3, [f#2,b2]@18 [f#2,b2,c#3]@14 g#2@31 ~, b3@4 f#3@7 ~ f#3@6 ~@2 f#3@11 ~ g#3@4 g#3@6 d#3@4 b3@4 d#3@13 ~, ~@2 c#3@8 c#3@7 ~@15 b2@20 g#3@11 ~, ~@3 b3@3 ~ b3@3 ~@5 c#4@2 d#3@2 c#4@3 g#3@2 c#4@3 ~@5]/4", // F#5 B5 F#sus4
  C: "[g#3@6 f#3@5 ~ c#3 ~@13 b3@3 a#3@3, [e2,g#2,b2,e3]@11 d#2@20 ~, ~@3 [f#2,b2,d#3]@5]/2", // E B
  D: "g#3@3 a#3@5, [e2,g#2,b2,e3]", E: "[f#2,b2,c#3,f#3] [f#2,a#2,c#3,f#3]",
  F: "[~@11 f#4, f#3@6 f#4@5 b3@7 ~ b3@7 ~@2 b3@6 ~ b3@7 ~ b3@4 ~, ~@3 b3@6 f#3@6 ~ f#3@7 ~@2 f#3@6 ~ f#3@7 ~@2 f#3@7, ~@12 f#4@8 ~@2 f#4@7 ~ f#4@6 ~@2 f#4@6 ~@4]/3",
  G: "~@7 d#4, f#3@2 f#4@2 b3@3 ~, ~ b3@2 f#3@2 e4@2 ~, ~@3 f#3",
  H: "[~@19 b3@3 b3@3 ~ a#3@4 ~@14 f#4@4, f#3@6 f#4@5 b3@7 ~@14 f#3@7 ~@2 f#3@7, ~@3 b3@6 f#3@6 ~ f#3@7 ~@2 f#3@5 g#3@5 b3@7 ~ b3@4 ~, ~@12 f#4@8 ~@2 f#4@7 ~@9 f#4@6 ~@4]/3",
  I: "~@2 d#4 ~ f#4 f#3 f#4 f#3, f#3@5 ~ f#3@4 ~@6, ~@2 b3@13 ~",
  J: "[~@19 b3@3 b3@3 ~ a#3@4 ~@6 e4@2 b3@3 ~ a#3@4 b3@4 a#3@4 ~@5 f#4 c#4@3 ~, f#3@6 f#4@5 b3@7 ~@14 f#3@7 ~@2 f#3@7 ~@6 f#3@9 ~, ~@3 b3@6 f#3@6 ~ f#3@7 ~@2 f#3@5 g#3@5 ~@22 a#3@7, ~@12 f#4@8 ~@2 f#4@7 ~@9 f#4@6 ~@20]/4",
  K: "[~@12 f#4 ~ f#4@2 f#4@3 f#3@3 ~@6 f#4@2 ~ d#4, g#3@6 f#4@5 b3@5 ~@6 f#4@5 b3@4 ~, ~@3 b3@6 g#3@10 ~@6 f#3@4 ~ [f#3,c#4]@2]/2", // F#5
  L: "[e4@2 e4@2 d#4@2 c#4@4 b3@4 g#3@4 f#4@2 ~ f#4@2 ~ f#4@3 f#4@2 ~ g#3 a#3, ~@20 g#3@2 ~ g#3@2 ~@7]/2",
  M: "[b3@4 f#4@2 a#3@4 ~@2 a#3@2 [e3,g#3]@8 ~@4 g#3 f#4@2 g#3 f#4@2, ~@10 f#3@4 ~@8 [d#3,f#3]@7 ~@3]/2", // E D#m
  N: "[f#3@2 f#4@2 f#3 f#4@2 ~ f#4@2 ~ f#4@3 g#3 ~ b3@4 a#3@2 g#3@4 f#3@4 f#3@2, ~@7 f#3@2 ~ f#3@2 ~@3 a#3@2 ~@15]/2",
  O: "[e3@11 ~ [f#2,b2,d#3]@20, ~@11 d#2@20 ~, ~@12 c#3 ~@19]/2", // B
  P: "[e4@2 e4@2 d#4@2 c#4@4 b3@4 g#3@4 f#4@2 ~ f#4@2 ~ f#4@3 f#4@3 g#3 a#3, ~@20 g#3@2 ~ g#3@2 ~@7]/2",
  Q: "g3@3 a#3@3 d#4@10", R: "g#3@3 b3@3 d#4@10", S: "g3@3 b3@3 f#4@4 e4@6", T: "g#3 b3 d#4 b3 f#3 b3 d#4 b3",
  U: "g#3@2 b3 e4@5", V: "[g3,d#4]@2 [g#3,f4] [a#3,g4]@5", W: "g#3 b3 d#4 b3@5", X: "g3 a#3 d#4 a#3@5",
  Y: "f#3 b3 d#4 b3@2 f#3 b3 d#4", Z: "g#3 c#4 f4 c#4@5", AA: "d#4@3 b3@3 g#3@2 f#3@8", AB: "b3@3 c#4@3 d#4@2",
  AC: "c#4", AD: "f#4",
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.9)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_3 = note("<~@40 A ~@35 A ~@31 A ~@4 B C@5 D C E>".pickRestart({
  A: "~@5 g#3 ~@2", B: "~@4 f#4@3 f#4@3 f#4@3 f#4@3", C: "f#4@4 f#4@3 f#4@3 f#4@3 f#4@3",
  D: "f#4@2 f#4@3 f#4@3 f#4@3 f#4@3 f#4@2", E: "~@2 f#4@3 f#4@3 f#4@3 f#4@3 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.9)

// other · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~@38 A B@2 ~@2 C D@7 E@2 F G H I J@2 K@2 L M@2 N L O@2 P Q R S T F U B@2 ~@7 V ~@5 W X G ~@13 A B@2 ~@2 C Y@3 ~@7
>`.pickRestart({
  A: "~@15 d#5, ~@7 c#5", B: "[e5@4 d#5@2 c#5@4 d#5 b4@3 g#4@18, ~@4 c#5 ~@6 c#5 ~@20]/2", C: "~@14 g#4 a#4",
  D: "[b4@4 a#4@2 g#4@4 a#4@4 ~@2 g#3@6 f#3@6 d#3@11 f#4@21 d#4@16 f#4@2 g#4@8 f#4@6 d#4@12 ~@2 b4@3 a#4@3, ~@14 b4@15 ~@83]/7",
  E: "[g#4@2 a#4 g#4@2 f#4 d#4@8 g#4 a#4, f#4 ~@31]/2", F: "b4", G: "a#4", H: "c#5", I: "b4@10 b5@3 a#5@3",
  J: "[g#5@6 f#5@6 d#5@14 b5@3 a#5@3]/2", K: "[g#5@3 a#5@3 b5@6 a#5@4]/2", L: "d#5",
  M: "[c#5@3 b4@2 a#4@2 g#4@3 a#4 b4@5]/2", N: "c#5 e5", O: "[c#5@3 b4@2 a#4@2 g#4@9]/2", P: "f#4@3 d#4@5",
  Q: "f#5@7 g#5", R: "f#5@7 d#5", S: "e5", T: "c#5@3 a#4@5", U: "c#5@14 ~ d#5, ~@7 c#5", V: "g4@2 g#4 a#4@5",
  W: "b4@3 c#5@3 d#5@2", X: "c#5@7 b4", Y: "[b4@4 a#4@2 g#4@4 a#4@4 b4@33 ~]/3",
})).s("gm_lead_2_sawtooth").gain(0.45)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@7 A@2 ~@12 B@2 C D E F G H I J K L M@2 N O P Q R@2 S@4 ~@12 B@2 C D T U V W X Y@2 L Z@2 AA AB P Q R@2 AC AD@3 AC AE
  AF AG AH AI AJ AK AL@2 AM@2 AN AO AP AQ AR AS@2 AT AU@2 AV AW@2 AX AY@2 S@4 AZ@2 ~@7
>`.pickRestart({
  A: "[~@6 b5@25 ~]/2", B: "[e3@3 b2@5]/2", C: "e3", D: "[f#3,c#6,f#6]", E: "d#4", F: "c#4", G: "b3", H: "c#4 e4",
  I: "d#4 b4", J: "a#4@7 b4", K: "g#4", L: "f#4@3 d#4@4 e4", M: "f#4/2", N: "e4", O: "f#4", P: "[b4,b5]",
  Q: "[a#4,c#6]", R: "[d#6@5 b5@2 ~ g#4@8, b4 ~, ~@7 g#5@9]/2",
  S: "[[b4,d#5]@3 a#4@4 g#4@4 ~@5 b4@16, ~@3 c#5@13 ~@16, ~@11 f#4@21]/4", T: "[d#4,d#5]", U: "[c#4,c#5]", V: "[b3,b4]",
  W: "[c#4,c#5] [e4,e5]", X: "[d#4,d#5] b4", Y: "[a#4@3 b4@2 a#4@2 g#4@9]/2", Z: "[d#5 c#5, f#4]/2", AA: "[e4,b4]",
  AB: "c#5 e5, f#4", AC: "[g3,a#3,d#4,a#4]",
  AD: "[[c#4,c#5]@2 b3@2 [g3,e4]@4 ~@3 b5, [g#3,d#4] b3@2, ~ b4@3 [g#3,d#4,d#5]@2]/3", // C# C G#5
  AE: "[c#4,c#5] [b3,b4,b5], [g#3,d#4]", AF: "[g#3,b3,e4,g#4]", AG: "[g3,g4]@2 [g#3,g#4] [a#3,a#4]@5, d#4",
  AH: "[g#3,b3,d#4,b4]", AI: "[g3,a#3,d#4,c#5]", AJ: "[b3,d#4,f#4,d#5]", AK: "[g#3,c#4,f4,f5]",
  AL: "[b3@8 [b3,b4]@3 [c#4,c#5]@3 [d#4,d#5]@2, [f#3,f#5], d#4@7 ~]/2", AM: "[~@7 b3 [a#3,c#6]@8, [f#3,c#4,a#4,c#5]]/2",
  AN: "~@3 b5@2 c#6 d#6@2, [d#4,d#5,f#6]", AO: "c#6@3 a#5@2 b5 c#6@2, [c#4,c#5]", AP: "b5@7 e6, [b3,b4]",
  AQ: "[c#4,c#5]@4 ~@3 g#6, f#6@7 ~, ~ [e4,e5]", AR: "~@5 c#6 d#6@2, f#6, [d#4,d#5] b4, ~@3 b5@2 ~@3",
  AS: "[[a#4,c#6]@3 [b4,a#5]@2 b5 ~@2 b5@8, ~@5 a#4@2 g#4@9, ~@3 c#6 ~@4]/2", AT: "[f#4,f#6]@3 d#4@4 e4, ~@3 d#6@5",
  AU: "[~@3 b5@2 c#6 d#6@2 c#6@3 a#5@2 b5 c#6@2, f#4, [d#5,f#6] c#5]/2", AV: "[e4,b4,b5]",
  AW: "[c#5 ~ [b4,b5]@2, f#4 ~, f#6@7 g#6@9, ~ e5 ~@2]/2", AX: "[a#4,c#6,a#6]",
  AY: "[d#6@5 b5@2 ~ [g#4,g#6]@8, [b4,b6] ~, ~@7 g#5@9]/2", AZ: "[[b3,d#4,f#4]@15 ~]/2",
})).s("gm_string_ensemble_1").gain(0.34).pan(0.2)

// chords · epiano1
const epiano1 = note("<~ A B C D E F@3 G@8 H@2 I@2 G@2 J K ~@20 G@8 H@2 I@2 G@2 J K ~@61>".pickRestart({
  A: "~ f#4@7, f#3@15 ~", B: "~ f#4@3, f#3, ~ c#4@7", C: "~ b3@7, e3", D: "~ c#4@7, f#3", E: "~ f#4@7, f#3",
  F: "[~ f#4@11, f#3, ~ c#4@23]/3", G: "[[b2,e3,g#3]@3 [b2,d#3,f#3]@5]/2", H: "[c#3,f#3,b3]/2", I: "[d#3,g#3,b3]/2",
  J: "[b2,e3,g#3]", K: "b3 a#3, [c#3,f#3]",
})).s("gm_epiano1").gain(0.31)

// chords · piano
const piano = note(`<
  ~@25 A B C D@2 B C E@2 F G H@2 I J@2 ~@3 K@2 ~@15 A L C M@2 B C E@2 N G H@2 I O@2 ~@8 P Q R S ~@4 A B C D@2 B C E@2 F
  G H@2 I J@2 ~@3 T@2 ~@2 U@2 ~@2 U@2
>`.pickRestart({
  A: "~@3 [b3,f#4]@3 g#4 f#4, ~@3 b3", B: "[a#3,f#4]", C: "d#4@2 c#4@3 ~ e4@10, g#3@5 ~@11",
  D: "[[a#3,d#4]@2 [g#3,f#4]@2 [f#3,f#4]@2 [e3,e4] [d#3,d#4]@3 ~ [b3,f#4]@3 g#4 f#4, ~@7 b3]/2", // D#5 G#7 F# E D# B5
  E: "[[a#3,d#4]@2 [g#3,d#4]@2 [f#3,f#4]@2 [e3,e4] [d#3,d#4]@3 ~ [b3,f#4]@3 [b3,f#4,b4]@2]/2", // D#5 G#5 F# E D# B5
  F: "[a#3,f#4,a#4]@5 ~ [a#3,a#4]@4 [a#3,g#4]@2 f#4@2 g#4@2, ~@3 a#3", // D#m A# A#7
  G: "[g#3,g#4]@5 ~ [e4,g#4]@4 [e4,a#4]@2 [e4,b4]@4", // G# E Edim E5
  H: "[[a#3,d#4,a#4]@2 [g#3,d#4,g#4]@2 [f#3,f#4]@2 [e3,e4] [d#3,d#4]@3 ~ b3@2 [b3,c#4] [b3,d#4]@2]/2", // D#5 G#5 F# E D# Bsus2 B
  I: "[a#3,g#4]@5 ~ [a#3,f#4]@7 ~ d#4@2", // A#7 D#m
  J: "[[e4,g#4]@4 [d#4,f#4]@2 [c#4,d#4]@4 [b3,f#4]@4 f#4@2 d#4@2 c#4@4 b3@7 ~@3, ~@14 g#3@15 ~@3]/2", // E D#m C#sus2 B5
  K: "[[b3,d#4]@2 [a#3,c#4] [g#3,b3,f#4]@2 [f#3,c#4,f#4]@2 [f#3,d#4,f#4]@4 ~@5]/2", L: "a#4@2 g#4@3 ~@11, [a#3,f#4]",
  M: "[[a#3,d#4]@2 [g#3,c#4,f#4]@2 [f#3,f#4]@2 [e3,e4] [d#3,d#4]@3 ~ [b3,f#4]@3 g#4 f#4, ~@7 b3]/2", // D#5 C#sus4 F# E D# B5
  N: "[a#3,f#4,a#4]@5 ~ [a#3,a#4]@4 [a#3,g#4]@2 [f#4,b4]@2 [g#4,a#4]@2, ~@3 a#3", // D#m A# A#7 B5 G#sus2
  O: "[[e4,g#4]@4 [d#4,f#4]@2 [c#4,d#4]@4 [b3,f#4]@4 f#4@2 d#4@2 [c#4,a#4]@4 [b3,g#4]@7 ~@3, ~@14 g#3@15 ~@3, ~@7 b4@2 ~@7]/2", // E D#m C#sus2 B5 F# E
  P: "~@3 [g#3,c#4,g#4]@5", Q: "[a#3,g4,a#4]@5 ~ [a#3,d#4,a#4]@10", R: "[b3,f#4,b4]@5 ~ [b3,g#4,b4]@10",
  S: "[c#4,g#4,c#5]@5 ~ [c#4,g#4,b4]@6 ~@4", // C#5 C#7
  T: "[[b3,d#4]@2 [a#3,c#4] [g#3,b3,f#4]@2 [f#3,c#4,f#4]@2 [f#3,d#4,f#4]@8 ~]/2", // B A#m G#m7 F#5 D#m
  U: "[[b3,d#4]@2 [a#3,c#4] [g#3,b3]@2 [f#3,c#4]@2 d#4 c#4@7 ~, ~@7 f#3@8 ~]/2", // B A#m G#m F#5
})).s("gm_piano").gain(0.05)

// other · timpani
const timpani = note("<~@24 A B ~@34 A B ~@14 A ~@16 B ~@27 C>".pickRestart({
  A: "~@8 f#2!8", B: "b2 ~@15", C: "f#2!8 b2 ~@7",
})).s("gm_timpani").gain(0.32).pan(0.4)

// chords · woodblock
const woodblock = note(`<
  ~@25 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A ~ A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A ~@10
>`.pickRestart({
  A: "~@8 [c5,d5] ~@7", B: "~@4 d5 ~@3, ~@8 c5 ~@7",
})).s("gm_woodblock").gain(0.72)

// other · celesta
const celesta = note("<~@89 A B C@2 D E A ~ D E A ~ D E A ~@18>".pickRestart({
  A: "b5", B: "e6@3 f#6@3 g#6@2", C: "f#6", D: "~@6 b5@3 ~ c#6@2 d#6@4", E: "c#6@3 a#5@2 b5 c#6@2",
})).s("gm_celesta").gain(0.31).pan(0.8)

// drums · kick
const kick = s("bd").struct(`<
// … 66 more lines

More by Spice Girls