Strudelify
Don't Wanna Fall in Love cover art

Jane Child

Don't Wanna Fall in Love

Jane Child

KeyF♯ minorTempo120 bpm
0:00/0:00
// Don't Wanna Fall in Love — Jane Child
// 120 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 4 "BELLS" named as a mallet, played on tubular bells (its pad poly patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 114 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · acoustic bass
const bass = note(`<
  ~@3 A B@4 C@4 D E F G H I@2 J K L M N K L M O@4 C@4 D E P J K L M N K L M O@4 Q@8 R@4 S T@2 U S V W J K L M N K L M
  O@4 X@4 Y Z AA AB@4 Q@16 AC@6
>`.pickRestart({
  A: "~@6 f#2!2 a2@2 b2 ~ c#3 b2 a2 ~",
  B: "[c#3 b2 a2 f#2 d3 ~@4 d3 b2@2 e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2 ~ a#2@2 b2@3 a#2@3 c#3 ~ d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 ~@2 f#3 c#3 f#3 ~]/4",
  C: "[f#2@2 ~@2 d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 a#2 ~ a#2@3 b2@3 c#3 ~ d3 ~@4 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3 ~@5 f#3 ~ f#3@2]/4",
  D: "b3 a3 f#3 e3 f#3@3 ~@2 f#2 f#3 ~ f#2 ~ f#3 ~", E: "f#3@2 f#2 ~ e3@3 ~@3 e3 ~@3 e3@2",
  F: "~@2 e3@4 d3@2 c#3 ~ b2@2 a2@2 b2@2", G: "a2@2 f#2@3 ~ f#2@2 f#3@3 f#2 f#3 ~ f#2 ~",
  H: "f#3 f#2 f#3@2 ~@2 b3 a3 f#3@2 f#2@2 f#3@3 f#2",
  I: "[c#4@3 ~ b3@2 a3@2 g3@3 ~ g3@6 ~@2 g3@3 ~ f#3@3 ~ e3@2 d3 ~]/2", J: "c#3@2 b2@2 b2@4 c#3@3 ~ d3@4",
  K: "f#3@2 e3@3 ~@4 e3 c#3 e3 f#3@2 f#2@2", L: "f#3@2 f#2@2 b2@4 c#3@3 ~ d3@4",
  M: "f#3@2 e3@3 ~ f#3@2 e3@2 f#3@3 ~ f#3@2", N: "f#2@3 ~ b2@4 c#3@3 ~ d3@4",
  O: "[f#2@3 ~ d3 ~@4 d3 b2@2 e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2 ~ a#2@2 b2@3 a#2@3 c#3 ~ d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 ~@2 f#3 c#3 f#3 ~]/4",
  P: "~@2 e3@2 g3@3 ~ f#3@3 ~ e3@2 d3 ~",
  Q: "[f#2@2 ~@2 d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 a#2 ~ a#2@3 b2@3 c#3 ~ d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 a#2 ~ a#2@3 b2@3 c#3 ~ d3 ~@4 d3 b2@2 e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2 ~ a#2@2 b2@3 a#2@3 c#3 ~ d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 ~@2 f#3 c#3 f#3 ~]/8",
  R: "[f#2@2 ~@2 d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 a#2 ~ a#2@3 b2@3 c#3 ~ d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@2 d3@5 ~ d3 ~ d3@4]/4",
  S: "~@2 d3@2 b2@5 ~ b2 ~ b2 ~ b2@2", T: "[~@2 b2@2 c#3@5 ~ c#3 ~ c#3 ~ c#3@4 ~@2 f#2@4 g#2@3 ~ a2@4]/2",
  U: "f#3 e3 c#3 e3 d3@5 ~ d3 ~ d3@4", V: "~@2 b2@2 g2@4 g3@3 g2 g3@2 g2 ~",
  W: "g2@4 g3@3 ~ f#3@4 e3@2 d3@2, ~@8 g#3 ~@7",
  X: "[f#2@2 ~@2 d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 a#2 ~ a#2@3 b2@3 c#3 ~ d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@2 g3@4 f#3@4 e3@3 ~]/4",
  Y: "d3@2 c#3@6 b2@3 ~ a2@2 g#2@2", Z: "f#2@3 ~ g3@4 f#3@4 e3@2 d#3@2", AA: "d3@2 c#3@4 c3@3 ~ b2@4 a#2@2",
  AB: "[a2@2 g#2@2 d3 ~@4 d3 b2@2 e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2 ~ a#2@2 b2@3 a#2@3 c#3 ~ d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 ~@2 f#3 c#3 f#3 ~]/4",
  AC: "[f#2@2 ~@2 d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 a#2 ~ a#2@3 b2@3 c#3 ~ d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@3 f#2 f#3@2 f#2@2 a#2 ~ a#2@3 b2@3 c#3 ~ d3@2 ~@3 d3 b2 ~ e2@2 ~ f2@2 ~ f#2@2 ~@12]/6",
})).s("gm_acoustic_bass").gain(0.41)

// chords · piano
const piano = note(`<
  ~@4 A@2 B@2 C@2 D@4 E F G H I J K@6 L@3 B@2 C@2 D@4 I J K@6 L@3 B@2 C@2 M@2 N@2 B@2 C@2 O@2 P Q R S P T ~ U K@6 L@3
  B@2 C@2 V@7 B@2 C@2 M@2 N@2 B@2 C@2 M@2 N@2 B@2 C@2 M@2 W@2
>`.pickRestart({
  A: "[~@4 [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [c#4,e4,f#4,f#5,c#6,f#6] ~@3, ~@12 [f#5,c#6,f#6] ~@2 [b3,d4,f4,g#4]@3 [f#3,a3,c#4,e4,g#4]@9 ~ [f#3,a3]@2 ~@2]/2", // Dmaj7 F#5 Bm7 G#m7b5 F#5 F#7 F#5 Bdim …
  B: "[[f#3,a3,c#4,e4,f#4]@3 ~ [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,c#4,e4,g#4] ~, [f#5,c#6,f#6] ~@11 [f#5,c#6,f#6] ~@2 [b3,d4,f4,g#4]@2 ~ [f#3,a3,c#4,e4,g#4]@10 ~@4]/2", // F#m7 Dmaj7 F#5 Bm7 G#m7b5 F#5 F#m7 F#5 …
  C: "[[f#5,c#6,f#6] ~ [f#3,a3,c#4,e4,f#4] ~ [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [f#3,a3,c#4,e4,f#4]@2 ~@2, ~@12 [f#5,c#6,f#6] ~@2 [b3,d4,f4,g#4]@2 ~ [f#3,a3,c#4,e4,g#4]@10 [f#5,c#6,f#6] ~@3]/2", // F#5 F#m7 Dmaj7 F#5 Bm7 G#m7b5 F#5 F#m7 …
  D: "[[f#3,a3,c#4,e4,f#4]@2 ~@2 [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~ [f#3,a3,c#4,e4,g#4]@31 ~@3 [a3,b3,d4,e4,f#4]@3 ~@9, [f#5,c#6,f#6] ~@11 [f#5,c#6,f#6] ~@2 [b3,d4,f4,g#4]@2 ~@47]/4", // F#m7 Dmaj7 F#5 Bm7 G#m7b5 F#5 F#m7 Bm7 …
  E: "~@4 [a3,d4,e4,f#4]@3 [a3,d4,e4,f#4] ~@8", F: "~@4 [c#4,e4,f#4,a4]@2 ~ [c#4,e4,f#4,a4] ~@8",
  G: "~ [c#4,e4,f#4,a4] ~@8 [c#4,e4,f#4,a4] ~ [c#4,e4,f#4,a4]@2 ~ [c#4,e4,f#4,a4]", // F#m7
  H: "~@4 [a3,b3,d4,f#4]@2 ~ [a3,b3,d4,f#4] ~@8", // Bm7
  I: "~@4 [f#3,a3,b3,d4,f#4]@3 ~ [b3,c#4,e4,g#4]@3 ~ [d#4,f#4,a#4]@2 b4@2", // Bm7 C#m7 D#m
  J: "c#5 [b3,d4,f#4,a4] [d3,f#3,a3,c#4,e4,f#4]@6, ~@2 c#5 ~@13", // Bm7 Dmaj7
  K: "[[d3,f#3,c#4,e4] ~ [g#3,b3,c#4,e4]@9 ~ [a#3,c#4,e4,f#4]@7 ~ [d3,f#3,a3,c#4,e4,f#4]@12, a3 ~@15]/2", // Dmaj7 C#m7 F#7 Dmaj7
  L: "[[d3,f#3,c#4,e4] ~ [g#3,b3,c#4,e4]@9 ~ [a#3,c#4,e4,f#4]@7 ~ [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [c#4,e4,f#4,f#5,c#6,f#6] ~@3, a3@2 ~@26 [f#5,c#6,f#6] ~@2 [b3,d4,f4,g#4]@3 [f#3,a3,c#4,e4,g#4]@9 ~ [f#3,a3]@2 ~@2]/3", // Dmaj7 C#m7 F#7 Dmaj7 F#5 Bm7 G#m7b5 F#5 …
  M: "[[f#3,a3,c#4,e4,f#4]@2 ~@2 [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [f#3,a3,c#4,e4,f#4]@2 ~@2, [f#5,c#6,f#6] ~@11 [f#5,c#6,f#6] ~@2 [b3,d4,f4,g#4]@2 ~ [f#3,a3,c#4,e4,g#4]@10 [f#5,c#6,f#6] ~@3]/2", // F#m7 Dmaj7 F#5 Bm7 G#m7b5 F#5 F#m7 F#5 …
  N: "[[f#3,a3,c#4,e4,f#4]@2 ~@2 [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [c#4,e4,f#4,f#5,c#6,f#6] ~@3, [f#5,c#6,f#6] ~@11 [f#5,c#6,f#6] ~@2 [b3,d4,f4,g#4]@3 [f#3,a3,c#4,e4,g#4]@9 ~ [f#3,a3]@2 ~@2]/2", // F#m7 Dmaj7 F#5 Bm7 G#m7b5 F#5 F#7 F#5 …
  O: "[[f#3,a3,c#4,e4,f#4]@2 ~@2 [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~ [f#3,a3,c#4,e4,g#4]@2 [d4,f#4,a4]@3 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]@3 ~, [f#5,c#6,f#6] ~@11 [f#5,c#6,f#6] ~@2 [b3,d4,f4,g#4]@2 ~@15]/2", // F#m7 Dmaj7 F#5 Bm7 G#m7b5 F#5 F#m7 D …
  P: "[d4,f#4,a4]@3 ~ [d4,f#4,g#4,b4]@3 ~ [d4,f#4,g#4,b4]@3 ~ [d4,f#4,g#4,b4]@3 ~", // D G#m7b5
  Q: "[d4,f#4,g#4,b4]@3 ~ [c#4,f#4,a4]@3 ~ [c#4,f#4,a4]@3 ~ [c#4,f#4,a4]@3 ~", // G#m7b5 F#m
  R: "[c#4,f#4,a4]@2 ~@2 [c#4,e4,g4,a4]@3 ~ [c#4,e4,g4,a4]@3 ~ [c#4,e4,g4,a4]@3 ~", // F#m A7
  S: "[c#4,e4,g4,a4]@3 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]@3 ~", T: "[d4,f#4,g#4,b4]@3 ~@13",
  U: "~ [d3,f#3,a3,c#4,e4,f#4]@3", // Dmaj7
  V: "[[f#3,a3,c#4,e4,f#4]@2 ~@2 [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~@3 g2 ~@12 [e6,f6] ~@26 e6 f6 ~@9 f2@2 ~@9 e6 [f6,g6,a6] [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~@3 [c#4,e4,f#4,f#5,c#6,f#6] ~@3, [f#5,c#6,f#6] ~@11 [f#5,c#6,f#6] ~@2 [b3,d4,f4,g#4]@2 ~ [f#3,c#4,g#4]@19 [d5,e5,f5] [b4,c5] [f4,g4,a4] [d4,e4] [b3,c4] [f3,g3,a3] [d3,e3] [b2,c3] [g2,a2] [e2,f2]@2 [c2,d2]@15 [g5,a5] [d5,e5,f5] [g4,a4,b4,c5] [c4,d4,e4,f4] [g3,a3,b3] [e3,f3] [b2,c3,d3] [g2,a2] e2@3 [b2,c3]@4 [g4,a4] [b4,c5,d5] [e5,f5,g5] [a5,b5] [c6,d6]@2 ~@8 [f#5,c#6,f#6] ~@19, ~@18 e4@3 [f2,g2] [a2,b2] [c3,d3] [e3,f3] [g3,a3] [b3,c4] [d4,e4,f4] [g4,a4,b4] [c5,d5,e5] [f5,g5] a5 [b5,c6,d6]@2 [d6,e6,f6]@16 a2 [b2,c3] [d3,e3,f3] [g3,a3] [b3,c4,d4] [e4,f4,g4] [a4,b4] [c5,d5] [e5,f5,g5] [a5,b5] [c6,d6] g6@14 [d3,e3,f3]@9 ~@28, ~@18 a3@2 e2@15 [b5,c6]@15 [f2,g2]@12 [d6,e6,f6]@14 [g3,a3,b3,c4]@8 ~@14 [f#3,a3,c#4,e4,g#4]@9 ~ [f#3,a3]@2 ~@2, ~@20 [c2,d2]@16 [g5,a5]@13 e2@13 [b5,c6]@11 [f2,g2,a2]@4 [d4,e4,f4]@7 ~@11 [b3,d4,f4,g#4]@3 ~@14]/7", // F#m7 Dmaj7 F#5 Bm7 G#m7b5 F#5 Fmaj7 F …
  W: "[[f#3,a3,c#4,e4,f#4]@2 ~@2 [f#3,a3,b3,d4,f#4,f#5,c#6,f#6] ~@3 [f#5,c#6,f#6] ~ [f#3,a3,b3,d4,f#4] ~ [b3,d4,f#4,g#4]@2 ~@2 [f#5,c#6,f#6] ~ [f#3,a3,c#4,e4,g#4]@2 ~@12, [f#5,c#6,f#6] ~@11 [f#5,c#6,f#6] ~@2 [b3,d4,f4,g#4]@2 ~@15]/2", // F#m7 Dmaj7 F#5 Bm7 G#m7b5 F#5 F#m7 F#5 …
})).s("gm_piano").gain(0.36)

// chords · pad poly · "ANALOG SYNTH PAD"
const pad_poly = note(`<
  ~@4 A@2 B@2 C@2 D@4 E F G H I J K@6 L@3 B@2 C@2 D@4 I J K@6 M@3 N@2 O@2 P@2 Q@2 N@2 O@2 R S@8 T K@6 M@3 N@2 O@2 U@2 V
  W X Y@2 N@2 O@2 P@2 Q@2 N@2 O@2 P@2 Q@2 N@2 O@2 P@2 Z@2
>`.pickRestart({
  A: "[~@5 f#4 f#3 f#4 ~@2 [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@3 [f#4,a4,c#5,e5,g#5]@9 ~ [c#5,e5,f#5] ~@3, ~@14 [f#4,a4] ~]/2", // Bm7 G#m7b5 Bdim F#m7 F#7 F#m
  B: "[[f#4,a4,c#5,e5,f#5]@3 ~ [f#4,a4,b4,d5,f#5] f#4 f#3 ~@3 [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@2 ~ [f#4,a4,c#5,e5,g#5]@10 ~@2 [f#4,a4,c#5,e5,g#5] ~]/2", // F#m7 Bm7 G#m7b5 Bdim F#m7
  C: "[~@2 [f#4,a4,c#5,e5,f#5] ~ [f#4,a4,b4,d5,f#5] f#4 f#3 ~ f#4 ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@2 ~ [f#4,a4,c#5,e5,g#5]@10 [f#4,a4,c#5,e5,f#5]@2 ~@2]/2", // F#m7 Bm7 G#m7b5 Bdim F#m7
  D: "[[f#4,a4,c#5,e5,f#5]@2 ~@2 [f#4,a4,b4,d5,f#5] f#4 f#3 ~ f#4 ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@2 ~ g#5@15 a5 g#5@2 f#5@9 f#5 f#6 ~ f#5 ~@3 [a3,b3,d4,e4,f#4]@3 ~@9, ~@18 [f#4,a4,c#5,e5]@31 ~@15]/4", // F#m7 Bm7 G#m7b5 Bdim Bm7 F#m7
  E: "~@4 [a3,d4,e4,f#4]@3 [a3,d4,e4,f#4] ~@8", F: "~@4 [c#4,e4,f#4,a4]@2 ~ [c#4,e4,f#4,a4] ~@8",
  G: "~ [c#4,e4,f#4,a4] ~@8 [c#4,e4,f#4,a4] ~ [c#4,e4,f#4,a4]@2 ~ [c#4,e4,f#4,a4]", // F#m7
  H: "~@4 [a3,b3,d4,f#4]@2 ~ [a3,b3,d4,f#4] ~@8", // Bm7
  I: "~@4 [f#3,a3,b3,d4,f#4]@3 ~ [b3,c#4,e4,g#4]@3 ~ [d#4,f#4,a#4]@2 b4@2", // Bm7 C#m7 D#m
  J: "c#5 [b3,d4,f#4,a4] [d3,f#3,a3,c#4,e4,f#4]@6, ~@2 c#5 ~@13", // Bm7 Dmaj7
  K: "[[d3,f#3,c#4,e4] ~ [g#3,b3,c#4,e4]@9 ~ [a#3,c#4,e4,f#4]@7 ~ [d3,f#3,a3,c#4,e4,f#4]@12, a3 ~@15]/2", // Dmaj7 C#m7 F#7 Dmaj7
  L: "[[d3,f#3,c#4,e4] ~ [g#3,b3,c#4,e4]@9 ~ [a#3,c#4,e4,f#4]@7 ~ [f#4,a4,b4,d5,f#5] f#4 f#3 f#4 ~@2 [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@3 [f#4,a4,c#5,e5,g#5]@9 ~ [c#5,e5,f#5] ~@3, a3 ~@21 [f#4,a4] ~]/3", // Dmaj7 C#m7 F#7 Bm7 G#m7b5 Bdim F#m7 F#7 …
  M: "[[d3,f#3,c#4,e4] ~ [g#3,b3,c#4,e4]@9 ~ [a#3,c#4,e4,f#4]@7 ~ [f#4,a4,b4,d5,f#5] [f#4,a4] [f#3,a4] f#4 a4 ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@3 [f#4,a4,c#5,e5,g#5]@9 ~ [c#5,e5,f#5] ~@3, a3@2 ~@29 c#5 ~@12 [f#4,a4]@2 ~@2]/3", // Dmaj7 C#m7 F#7 Bm7 F#m Bm7 G#m7b5 Bdim …
  N: "[[f#4,a4,c#5,e5,f#5]@3 ~ [f#4,a4,b4,d5,f#5] [f#4,a4] [f#3,a4] ~ a4 ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@2 ~ [f#4,a4,e5,g#5]@10 ~@2 [f#4,a4,c#5,e5,g#5] ~, ~@15 c#5 ~@2 c#5@5 ~@9]/2", // F#m7 Bm7 F#m Bm7 G#m7b5 Bdim F#m7
  O: "[~@2 [f#4,a4,c#5,e5,f#5] ~ [f#4,a4,b4,d5,f#5] [f#4,a4] [f#3,a4] ~ [f#4,a4] ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@2 ~ [f#4,a4,e5,g#5]@10 [f#4,a4,c#5,e5,f#5]@2 ~@2, ~@15 c#5 ~@2 c#5@7 ~@7]/2", // F#m7 Bm7 F#m Bm7 G#m7b5 Bdim F#m7
  P: "[[f#4,a4,c#5,e5,f#5]@2 ~@2 [f#4,a4,b4,d5,f#5] [f#4,a4] [f#3,a4] ~ [f#4,a4] ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@2 ~ [f#4,a4,c#5,e5,g#5]@10 [f#4,a4,c#5,e5,f#5]@2 ~@2, ~@15 c#5 ~@16]/2", // F#m7 Bm7 F#m Bm7 G#m7b5 Bdim F#m7
  Q: "[[f#4,a4,c#5,e5,f#5]@2 ~@2 [f#4,a4,b4,d5,f#5] [f#4,a4] [f#3,a4] f#4 a4 ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@3 [f#4,a4,c#5,e5,g#5]@9 ~ [c#5,e5,f#5] ~@3, ~@15 c#5 ~@12 [f#4,a4]@2 ~@2]/2", // F#m7 Bm7 F#m Bm7 G#m7b5 Bdim F#m7 F#7 …
  R: "[f#4,a4,c#5,e5,f#5]@2 ~@2 [f#4,a4,b4,d5,f#5] [f#4,a4] [f#3,a4] ~ [f#4,a4] ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,c#5,d5,f5,g#5]", // F#m7 Bm7 F#m Bm7 G#m7b5 C#7
  S: "[~@2 [f#4,a4,c#5,e5,g#5]@2 [d4,f#4,a4]@15 ~ [d4,f#4,g#4,b4]@15 ~ [f#3,c#4,e4,f#4,a4]@14 ~@2 [c#4,e4,g4,a4]@14 ~@2 [d4,f#4,a4]@15 ~ [d4,f#4,g#4,b4]@15 ~ [g3,b3,d4,f#4,a4]@15 ~ [d4,f#4,a4]@3 ~ [c#4,e4,g#4]@3 ~ [g3,b3,d4,f#4] ~ b3@2, ~@18 a3@3 ~@41 a3 ~]/8", // F#m7 D G#m7b5 F#m7 A7 D G#m7b5 Gmaj7 …
  T: "c#4@2 d4 ~ [d3,f#3,a3,c#4,e4,f#4]@12", // Dmaj7
  U: "[[f#4,a4,c#5,e5,f#5]@2 ~@2 [f#4,a4,b4,d5,f#5] [f#4,a4] [f#3,a4] ~ [f#4,a4] ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@4 ~ [f#3,a3,b3,d4,f#4,d5]@4 [b3,c#4,e4,g#4,e5]@3 ~ [d#4,f#4,a#4]@2 ~@2, ~@7 [d#5,f#5]]/2", // F#m7 Bm7 F#m Bm7 G#m7b5 Bdim Bm7 C#m7 …
  V: "[b4,e5,g5] [c5,f5,g#5]@2 [c#5,f#5,a5]@2 [d5,g5,a#5]@2 [d#5,g#5,b5]", // Em Fm F#m Gm G#m
  W: "[e5,a5,c6] [f5,a#5,c#6] [f#5,b5,d6] [g5,c6,d#6]", // Am A#m Bm Cm
  X: "[g#5,c#6,e6] [a5,d6,f6]@2 [a#5,d#6,f#6]@2 [b5,e6,g6]@2 [c6,f6,g#6]", // C#m Dm D#m Em Fm
  Y: "[[c#6,a6] ~@3 [f#4,a4,b4,d5,f#5] [f#4,a4] [f#3,a4] f#4 a4 ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@3 [f#4,a4,c#5,e5,g#5]@9 ~ [c#5,e5,f#5] ~@3, f#6@2 ~@13 c#5 ~@12 [f#4,a4]@2 ~@2]/2", // F#m Bm7 F#m Bm7 G#m7b5 Bdim F#m7 F#7 …
  Z: "[[f#4,a4,c#5,e5,f#5]@2 ~@2 [f#4,a4,b4,d5,f#5] [f#4,a4] [f#3,a4] ~ [f#4,a4] ~ [f#4,a4,b4,d5,f#5] ~ [b4,d5,f#5,g#5]@2 ~ [b4,d5,f5,g#5]@2 ~ [f#4,a4,c#5,e5,g#5]@2 ~@12, ~@15 c#5 ~@16]/2", // F#m7 Bm7 F#m Bm7 G#m7b5 Bdim F#m7
})).s("gm_pad_poly").gain(0.36)

// chords · tubular bells · "BELLS"
const tubular_bells = note(`<
  ~@13 A B C D E F G ~ H@2 I@2 J@2 ~@9 K L M ~ H@2 I@2 J@2 ~@22 N O ~ H@2 I@2 J@2 ~@7 P@5 ~@25
>`.pickRestart({
  A: "~@8 a6@3 ~ g#6@3 ~", B: "f#6@3 ~ e6@3 ~@5 c#6@2 ~@2", C: "a6@2 ~@2 f#6@7 ~@5", D: "~@4 f#6 ~@7 f#6 ~ a6 ~",
  E: "b6 ~@3 b6@4 g6@8", F: "~@4 g6@3 ~ f#6@2 ~@2 e6 ~ d6 ~", G: "c#6 ~ f#6@10 ~@4, ~ b5 ~@6", H: "[~@4 f#6@17 ~@11]/2",
  I: "[~@4 f#6@23 ~@5]/2", J: "[~@4 f#6@15 ~@13]/2", K: "~@4 b6@3 ~ a6@3 ~ g#6@3 ~",
  L: "f#6@3 ~ g6@3 ~ f#6@2 ~@2 e6 ~ d6 ~", M: "c#6 ~ [b5,f#6]@2 f#6@8 ~@4", N: "~@12 b6 ~ a6 ~",
  O: "g#6 ~ f#6 ~ f#6@8 ~@4",
  P: "[~@20 a6 ~@44 [g3,a3]@2 ~@13, ~@4 [c2,d2,e2]@19 e6@14 [a2,b2,c3]@18 [e6,f6] [c6,d6] [a5,b5] [f5,g5] [d5,e5] [b4,c5] [g4,a4] [e4,f4] d4 [b3,c4]@3 ~@13, ~@6 [g2,a2]@18 [c6,d6]@14 [d3,e3]@29 ~@13, ~@7 [b2,c3]@18 [a5,b5] [f5,g5] [d5,e5] [b4,c5] [g4,a4] [e4,f4] [c4,d4] [a3,b3] [f3,g3] [d3,e3]@2 g2@31 ~@13, ~@8 [d3,e3] [f3,g3] [a3,b3] [c4,d4,e4] [f4,g4] [a4,b4]@3 a5 [b5,c6] d6 g6@2 [b6,c7]@18 [f3,g3] [a3,b3] [c4,d4] [e4,f4] [g4,a4,b4] c5 [e5,f5] [g5,a5] b5@4 c7@2 b6@14 ~@13]/5", // Gsus2 C Am Fmaj7 Csus2 Asus2 Fsus2 Dsus2 …
})).s("gm_tubular_bells").gain(0.26)

// chords · tubular bells · "BELLS" · soft notes
const tubular_bells_soft = note("<~@84 A@5 ~@25>".pickRestart({
  A: "[~@51 b6@2 ~ [g6,a6]@12 f3 ~@13, ~@5 f2@32 ~@7 d5@15 ~@21, ~@14 [c5,d5]@9 f6@24 c6@9 ~@24, ~@15 [e5,f5]@7 g6@26 [d6,e6]@8 ~@24, ~@16 g5@2 e6 f6@2 a6@28 [f6,g6] a6@4 ~@26]/5", // Gsus2 Csus2 Fmaj7 Dsus2 Fsus2
})).s("gm_tubular_bells").gain(0.15)

// drums · kick
const kick = s("bd").struct(`<
  A@2 B A C D C D C D C D C@2 D C D C E F D C D C D C D C D C D C D C D C@2 E F D C D C D C D C D C D C D C D C D C D C
  D C G H@15 I D C D C D C J K J K C D C D C D C D C D C D C D C D C D C D C D C D C L
>`.pickRestart({
  A: "~@2 x ~@2 x!2 ~", B: "~ x!2 ~@2 x!2 ~", C: "~ x!2 ~@2 x!3", D: "~ x ~ x ~ x ~ x",
  E: "~@2 x ~ x!2 ~@2 x!2 ~@2 x!2 ~@2", F: "x!3 ~ x ~@5 x ~ x ~ x ~", G: "~@2 x ~ x ~ x ~@4 x!2 ~ x ~",
  H: "~@3 x!2 ~ x ~@4 x!2 ~ x ~", I: "~@3 x!2 ~@5 x ~ x ~ x ~", J: "~ x!2 ~@3 x ~", K: "~ x ~@4 x!2", L: "~ x ~@6",
})).gain(0.51)

// drums · snare
const snare = s("sd").struct(`<
  A B@3 C B@8 D B@4 E F B@7 G B@8 D E F B@7 G B@14 D B@3 G B@3 G B@3 G B@2 H I B@6 D B@3 F B@14 J F B@6 J F K
>`.pickRestart({
  A: "~ x", B: "x!2", C: "~@2 x!2 ~@4 x ~@7", D: "x!2 ~@2 x ~@3", E: "x ~@3 x ~@2 x", F: "x!4 ~@4 x ~@7",
  G: "x ~ x!2 ~@4 x ~@7", H: "x ~@7 x ~@3 x ~@2 x", I: "x!2 ~ x ~@4 x ~@7", J: "x ~@7 x ~@3 x!2 ~ x", K: "x!2 ~@6",
})).gain(0.51)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@3 A B ~@7 C ~@22 C ~@24 C ~@15 D ~@6 C ~@3 E ~@24 F ~>".pickRestart({
  A: "~@6 x!2 ~@8", B: "x!2 ~@14", C: "~@6 x!2", D: "~@5 x ~@4 x!2 ~ x ~@2", E: "~@12 x!4", F: "~@14 x!2",
})).gain(0.15)

// drums · clap
const clap = s("cp").struct("<~@4 [~ x] [x!2]!108 x>").gain(0.51)

// drums · low tom
const low_tom = s("lt").struct("<~@3 A B C@8 D ~@13 A C@8 D ~@9 A C@14 D ~@15 B C@6 D ~@3 A C@24 E>".pickRestart({
  A: "~ x", B: "~ x ~@2 x ~@3", C: "x!2", D: "x!2 ~@6", E: "~ x ~@6",
})).gain(0.51)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C B D E@8 F G C G C G C G C G C G C G D E@8 F G C G C G C G C G D E@66 H
>`.pickRestart({
  A: "~@2 x!6", B: "x!8", C: "x ~ x!6", D: "x ~@3 x!12", E: "x!16", F: "x!5 ~ x ~ x ~ x ~ x ~ x ~",
  G: "x ~ x ~ x!5 ~ x ~ x ~ x ~", H: "x!3 ~@13",
})).gain(0.15)

// drums · mid tom
const mid_tom = s("mt").struct("<~@3 A B ~@7 C ~@22 C ~@24 C ~@15 C D ~@5 C ~@29 D>".pickRestart({
  A: "~@7 x ~@2 x!2 ~ x ~@2", B: "~@3 x ~@12", C: "~@7 x", D: "x",
})).gain(0.51)

// drums · open hat
const open_hat = s("oh").struct("<~@2 A ~ A ~@10 A ~ A ~ A ~ A ~ A ~ A ~ A ~@10 A ~ A ~ A ~ A ~ A ~@67>".pickRestart({
  A: "~ x ~@6",
})).gain(0.51)

// drums · high tom
const high_tom = s("ht").struct("<~@3 [~@15 x] [~ x ~@14] ~@109>").gain(0.51)

// drums · crash
const crash = s("cr").struct(`<
  A ~@2 B A ~@3 A ~@4 A ~ A ~ A ~ A ~@7 A ~@3 A ~@4 A ~ A ~@7 A ~@3 A ~@3 A ~@3 A ~@2 A ~@3 A ~@3 A ~@3 A ~ A ~ A ~@3 A
  ~@2 A C A C A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~
>`.pickRestart({
  A: "~ x ~@2", B: "~@7 x ~@8", C: "~ x ~@6",
})).gain(0.51)

// drums · cowbell
const cowbell = s("cb").struct("<[~ x!3] [x!4]!3 x ~@109>").gain(0.51)

// drums · congas
const congas = s("conga:13").struct("<[~@4 x ~@2 x] [~@8 x ~@5 x!2] [~@4 x ~@2 x]!2 ~@110>").gain(1.64)

// drums · congas
const congas_2 = s("conga:33").struct("<~ [x!2 ~@6]!3 x ~@109>").gain(1.64)

stack(
  bass, piano, pad_poly, tubular_bells, tubular_bells_soft, kick, snare, snare_soft, clap, low_tom, hihat, mid_tom,
  open_hat, high_tom, crash, cowbell, congas, congas_2
)