Strudelify

My Favorite Mistake

Crow Sheryl

KeyB minorTempo104 bpm
0:00/0:00
// My Favorite Mistake — Crow Sheryl
// 104 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 11 alto sax (copy of ch 4 tenor sax); ch 12 piano (copy of ch 13 epiano1)
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 29, guitar program 27.
setcpm(104/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 · electric guitar clean · "Guitar"
const electric_guitar_clean = note(`<
  A B@4 C@7 D E D F G H I@2 D E D J G H K@2 L M N O L P Q@2 R@2 S@2 D E D T G H U@2 D E D J G H K@2 L M N O L P V@2 W@7
  X@3 Y ~@6 V@2 ~@6 V@2 ~@6 V@6 Z@2 ~@2
>`.pickRestart({
  A: "~@14 [f#1,g1] [g#1,a1,a#1]", // Gmaj7
  B: "[b2@4 ~@4 d4@2 e4@4 [b3,d4,b4]@4 ~@6 d4@2 e4@3 ~ [b3,d4,b4]@4 ~@4 b2@2 d4@2 e4@3 ~ [b2,b3,d4]@6 ~@4 d4@2 e4@3 ~ [b2,d4,b4]@2, ~@6 b2@4 ~@4 b2@6 ~@2 b2@4 ~@4 b2@7 ~@17 b2@4 ~@6, ~@4 [f#3,a3]@3 ~@5 a3@2 ~@6 a3@2 ~ b4@2 ~@3 a3@2 ~@2]/4", // Bm F#m
  C: "[~@8 d4@2 e4@4 [b3,d4,b4]@4 ~@6 d4@2 e4@3 ~ [b3,d4,b4]@4 ~@4 b2@2 d4@2 e4@3 ~ [b2,b3,d4]@6 ~@4 d4@2 e4@4 [b3,d4,b4]@4 ~@6 d4@2 e4@3 ~ [b3,d4,b4]@4 ~@4 b2@2 d4@2 e4@3 ~ [b2,b3,d4]@6 ~@4 [a3,b3,e4]@4 [a3,d4]@2 b2@2, ~@6 b2@4 ~@4 b2@6 ~@2 b2@4 ~@4 b2@6 ~@18 b2@4 ~@4 b2@6 ~@2 b2@4 ~@4 b2@7 ~@17 b2@4 ~@6, ~@4 [f#3,a3]@3 ~@5 a3@2 ~@6 a3@2 ~ b4@2 ~@3 [f#3,a3]@3 ~@5 a3@2 ~@6 a3@2 ~ b4@2 ~@7]/7", // Bm Asus2 D5 F#m
  D: "[a2,e3,a3]@3 ~ [a3,e4,a4] ~@3 a2@2 [e3,a3,e4,a4]@2 [a2,e3,a3,e4,a4] ~@3", // A5
  E: "b2@4 [b3,f#4,b4] ~@3 b2@2 b2@2 [b3,d4,e4,b4] ~@3", F: "~@5 [b2,f#3,e4] [b2,f#3,d4] [b2,f#3,e4]",
  G: "[c3,g3]@4 [g3,c4,g4,c5] ~@3 c3@2 ~@2 c3@2 ~@2, ~@5 [g3,c4,g4,c5]@2 ~", // C5
  H: "[g2,d3]@4 [g3,d4,g4] ~@3 [g3,d4,g4]@2 ~@2 [g3,d4,g4]@2 ~@2, ~@5 b3@2 ~", // G5
  I: "[b2@6 b2@2 d4@2 e4@3 ~ [b3,d4,f#4]@5 ~@5 [b3,e4]@2 [b3,d4]@2 [a3,b3]@2 [b2,f#3]@2, a2 ~@7 a3@4 ~@2 [b2,b4]@7 ~ b2@4 ~@6, ~@6 a3 ~]/2", // Bm E5 Bm Asus2 B5 B
  J: "~@10 [b2,f#3,b3]@2 [b2,f#3,e4]@2 b2 ~", // B5 Bsus4
  K: "[b2@3 b2 d4 e4@2 [b2,b3,d4]@3 ~@2 [a3,b3,e4]@2 [a3,d4] b2, a2 ~@7 a3@4 ~@2 b4@8 b2@4 ~@6]/2", // Bm Asus2 D5
  L: "[d3,f#3]@3 d3 [f#3,a3]@3 f#3", M: "[b2,d3]@5 ~ b2@2 [c3,g3]@4 [c3,g3]@4", N: "[d2,a2]@2 [g2,d3] [f#2,a2]",
  O: "e2@7 ~@9", P: "[b2,f#3]@5 ~ b2@2 [c3,g3]@4 [c3,g3]@4", Q: "[~@2 b2 ~ d3@2 ~ d3@5 ~@4]/2",
  R: "[b2@6 b2@2 d4@2 e4@3 ~ [b3,d4,f#4]@5 ~@5 e4 ~ f#4@2 [b2,d3,b3,e4]@2 [b2,d4]@2, ~@8 a3@4 ~@2 [b2,b4]@7 ~ b2@3 d4@2 ~@5, ~@6 [e3,f#3] ~]/2", // Bm E7 Bm B Esus2
  S: "[[f#3,b3]@3 ~@3 b2@2 d4@2 e4@3 ~ [b3,d4,b4]@6 ~@2 a3@2 b3 ~ [b2,b3,d4,f#4]@2 [b2,b3,e4] ~ b2@2, b2@3 ~ a3@2 ~@10]/2", // B5 Bm E5
  T: "b2@4 [b3,f#4,b4] ~@5 [b2,f#3,e4]@2 [b2,f#3,d4]@2 [b2,f#3,e4]@2", // B5 Bsus4 Bm Bsus4
  U: "[b2@6 b2@2 d4@2 e4@3 ~ [b3,d4,f#4]@5 ~@5 [a3,b3,e4]@4 [b2,b3,d4]@2 b2@2, a2 ~@7 a3@4 ~@2 [b2,b4]@7 ~ b2@4 ~@6]/2", // Bm Asus2 Bm B
  V: "[~@2 [b2,b4] ~ [d3,d5]@2 ~ [d3,d5]@5 ~@4]/2", // B D
  W: "[~@4 [b2,b4]@2 ~@2 [d3,d5]@4 ~@2 [d3,d5]@10 ~@8 [b3,b5]@14 ~@8 [c5,c6]@9 f3 [a2,c3,a3,c4]@11 ~@4 g3 [b2,d3,b3,d4]@11 ~@5 [b3,b5]@14 ~ a#2, ~@31 [b2,d3,b4,d5]@8 ~@8 a#2 [d3,d5,f5]@8 ~@7 f2@12 ~@4 g2@8 ~@8 [b2,d3,b4,d5]@8 ~@9, ~@16 [f#3,f#5]@5 ~@3 a#3@7 ~@25, ~@12 a#5@3 ~@13, ~@48 f3@10 ~@6 [f3,f4]@14 ~@2 [g3,g4]@15 ~ [f#3,f#5]@10 ~@6]/7", // B D B C Am Bm B Bm …
  X: "[~@6 [c5,c6]@9 f3 [a2,c3,a3,c4]@11 ~@5 [g2,b2,g3]@11 ~@5, a#3@7 ~@17, a#5 ~@3, f3@10 ~@6 [f3,f4]@14 ~@2 [e3,b3]@15 ~, [d3,d5,f5]@8 ~@7 f2@12 ~@4 e2@8 ~@9]/3", // C Am G F E5 Dm
  Y: "[e2,g2,b2,e3]!2 [e2,g2,b2,e3]@2 [e2,g2,b2,e3]!4", Z: "[[b2,d3,b3]@31 ~, f#3@29 ~@3]/2",
})).s("gm_electric_guitar_clean").gain(0.64).pan(0.8)

// chords · church organ · "Organ"
const church_organ = note(`<
  ~@6 A@2 B@4 ~@8 C D E F G H I J ~@6 K L ~@10 M N C D E F G H ~@8 K L K L ~@15 K L ~@6 K L ~@6 K L K L K L O@3 ~
>`.pickRestart({
  A: "[~@3 f#5 a5 ~@11 f#6@12 a5 f#5 e5 d5, ~ b5@6 ~, ~@7 b6@7 ~@2]/2", B: "[e5 b4@63, ~ d5 ~@62]/4", C: "e4", D: "f#4",
  E: "[a3,e4]", F: "[b3,f#4]", G: "[c3,g3,g4]", H: "[d3,b3,d4]", I: "~@5 f#5 e5 d5, [b4,b6]",
  J: "[e5,a6] d5 ~@2 b5@8 ~@4, ~ b4@7", K: "[g4,d5,g5]", L: "[g5,c6]", M: "b5@3 e5 d5@3 b4",
  N: "d5@2 ~@2 f#5 e5 e5@2 d5 e5@3 d5 b4@3, ~ b4@3 ~@4, ~@6 d5 ~@9", O: "[[f#4,b4,d5], f#5@2 ~]/3",
})).s("gm_church_organ").gain(0.4).pan(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@7 A B C D E F G H I J K L M F G N I J K L O P Q R S T Q U V L M W X F G N I J K L M F G N I J K L O P Q R S T Q U V
  U V Y Z AA AB Y Z AA AC AD AE Q R S AE Q U V AE Q R S AE Q U V AE AF R S AE Q U V U V U V AG@2 ~@2
>`.pickRestart({
  A: "~@6 e2@2 f#2@2 a2@2 a2 ~ f#2@2", B: "b2@5 ~ b2@2 b2@4 ~@2 b2@2", C: "b2@5 ~ e2@2 f#2@2 a2@3 ~ f#2@2",
  D: "b2@4 ~@2 b2@2 b2@3 ~@3 b2@2", E: "b2@3 ~@3 e2@2 f#2@2 a2@2 f#2@4", F: "a1@3 ~@3 a1@2 a1@2 a1@2 ~@2 a1@2",
  G: "b1@2 ~ b1!3 ~ b1", H: "a1@2 ~ a1 a1@2 ~ a1", I: "b1@2 ~ b1 b1@2 b1@2", J: "c2@2 ~ c2 c2@2 d2@2",
  K: "g2@2 ~ g2 g2@2 ~@2", L: "b1@2 ~ b1 b1@3 ~", M: "b1@5 ~ b1@2 d2@2 e2@2 b2@4", N: "a1@2 ~ a1!2 ~@2 a1",
  O: "b1@5 ~ b1@2 d2@2 e2@2 f#2@2 d2@2", P: "d2@4 ~@2 e2@2 g2@3 ~@3 g2@2", Q: "e2@2 ~ g2 c3@2 c3@2",
  R: "d2@2 ~ e2 g2@2 f#2@2", S: "e2@2 ~ e2 e2@2 e2@2", T: "d2@4 ~@2 e2@2 g2@3 ~ f#2@2 g2@2",
  U: "g2@3 ~@3 g2@2 g2@3 ~@3 g2@2", V: "c2@3 ~@3 c2@2 c2@3 ~ c2@3 ~", W: "b1@4 ~@2 b1@2 b1@7 ~",
  X: "b1@3 e2 f#2 a2 b2@2", Y: "b2@3 ~ b2@3 ~ b2@3 ~ b2@3 ~", Z: "a#2@3 ~ a#2@3 ~ a#2@3 ~ a#2@3 ~",
  AA: "f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~", AB: "g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~", AC: "e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~", AD: "e2!8",
  AE: "d2@4 ~@2 e2@2 g2@3 ~ f#2@4", AF: "e2@4 ~@2 g2 ~ c3@4 c3@4", AG: "b1/2",
})).s("gm_electric_bass_finger").gain(0.8).pan(0.3)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A B@8 C@3 D E D F G H I J D K D F G H I J ~@6 L@2 I J I J D E D F G H I M D K D F G H I J ~@6 L@4 ~@15 L@2 ~@6 L@2 ~@6
  L@6 ~@4
>`.pickRestart({
  A: "~@14 [f#2,g2] [g#2,a2,a#2]", // Gmaj7
  B: "[b2@6 ~@2 [b3,d4]@6 [b2,b3,d4,b4]@5 ~@5 [b3,d4]@6 [b2,b3,d4,b4]@5 ~@5 [b3,d4]@6 [b2,b3,d4,b4]@5 ~@5 [b3,d4]@6 [b2,b3,d4,b4]@5 ~@5 [b3,d4]@6 [b2,b3,d4,b4]@5 ~@5 [b3,d4]@6 [b2,b3,d4,b4]@5 ~@5 [b3,d4]@6 [b2,b3,d4,b4]@5 ~@5 [b3,d4]@6 [b2,b3,d4,b4]@2, ~@4 a3 ~@23 a3 ~@15 a3 ~@15 a3 ~@3]/8", // Bm
  C: "[~@8 [b3,d4]@6 [b2,b3,d4,b4]@5 ~@5 [b3,d4]@6 [b2,b3,d4,b4]@5 ~@13]/3", // Bm
  D: "[a2,e3,a3]@4 ~@2 [a2,e3,a3]@2 [a2,e3,a3]@5 ~@3", E: "[f#3,b3,b4]@4 ~@2 [f#3,b3,b4]@2 [f#3,b3,b4]@3 ~@5",
  F: "[f#3,b3,b4]@2 ~ [f#3,b3,b4]!4 ~", G: "[c3,g3,c4]@2 ~ [c3,g3,c4]@2 ~@3", H: "[g2,d3,g3]@2 ~ [g2,d3,g3]!2 ~@3",
  I: "[b2,f#3,b3,f#4] ~@2 [b2,f#3,b3,f#4]!2 ~@3", J: "[b2,f#3,b3,f#4] ~@2 [b2,f#3,b3,f#4]!2 ~ [b2,f#3,b3,f#4] ~",
  K: "[f#3,b3,b4]@4 ~@2 [f#3,b3,b4]@2 ~@2 a3@2 f#3@3 ~, ~@2 [g#3,b4] ~", // B5 G#m
  L: "[~@2 [b3,b4] ~ [d4,d5]@2 ~ [d4,d5]@7 ~@2]/2", M: "[b2,f#3,b3,f#4] ~@2 [b2,f#3,b3,f#4] [b3,e4]@2 [b3,d4]@2",
})).s("gm_acoustic_guitar_nylon").gain(0.57).pan(0.6)

// chords · distortion guitar
const distortion_guitar = note("<~ A@8 B@3 ~@16 C D E F C D ~@5 G ~@16 C D E F ~@47>".pickRestart({
  A: "[~@7 [b3,d4,b4]@3 ~@5 [b3,d4,b4]@3 ~@5 [b3,d4,b4]@3 ~@5 [b3,d4,b4]@3 ~@5 [b3,d4,b4]@3 ~@5 [b3,d4,b4]@3 ~@5 [b3,d4,b4]@3 ~@5 [b3,d4,b4]]/8", // Bm
  B: "[~@7 [b3,d4,b4]@3 ~@5 [b3,d4,b4]@3 ~@2 [b3,f#4,b4]@2 [d4,a4] ~]/3", C: "d3 f#3", D: "d3@2 c3!2", E: "a3@2 g2 f#2",
  F: "e2", G: "~@3 a3 b3 d4 e4 ~",
})).s("gm_distortion_guitar").gain(0.56).pan(0.6)

// chords · distortion guitar · soft notes · B5
const distortion_guitar_soft = note("<~ [~@8 [b3,f#4]@5 ~@3]!10 ~@96>").s("gm_distortion_guitar").gain(0.24).pan(0.6)

// other · electric guitar muted · B
const electric_guitar_muted = note("<~ [~@4 [b2,b3] ~@7 [b2,b3] ~@3]!11 ~@95>")
  .s("gm_electric_guitar_muted").gain(0.64).pan(0.4)

// chords · percussive organ · "Organ"
const percussive_organ = note(`<
  ~@6 A@2 B ~@11 C D E F G H I J K L M N O L P Q ~@10 R S C D E F G H T U O L M N O L P Q P Q V W X Y V W X Z@2 ~@8 O L
  M N O L AA AB O L M N O L AA AC AA AC AA AB AD@3 ~
>`.pickRestart({
  A: "[~@3 f#5 b5@24 a5 f#5 e5 d5, ~@4 a5 ~@27]/2", B: "e5 b4@15, ~ d5 ~@14", C: "e5", D: "f#5", E: "[a4,e5]",
  F: "[b4,f#5]", G: "[c4,g4,g5]", H: "[d4,b4,d5]", I: "b5@5 f#5 e5 d5", J: "e5 d5 ~@2 b5@11 ~, ~ b4@7",
  K: "[d5,f#5]@4 [b4,d5]@3 f#5", L: "[b4,d5]@7 b4 c5@8", M: "[a4,d5]@2 g5 f#5", N: "e5@7 ~ e5@4 e5@2 e5@2",
  O: "[d5,f#5]@4 [b4,f#5]@3 f#5", P: "[g4,d5,g5]", Q: "[g5,c6]", R: "b5@3 e5 d5@3 b4",
  S: "d5@2 ~@2 f#5 e5 e5@2 d5 e5@3 d5 b4@2 ~, ~ b4@3 ~@4, ~@6 d5 ~@9",
  T: "~@2 [b4,f#5,a5]@2 [f#5,a5]@2 g#5 [d5,f#5], ~@8 b4 ~@3 e5@4", // B7 F#m D
  U: "[e5,a5] f#5 [e5,f#5] [d5,f#5] [e5,f#5] b4 a5 b4, ~@5 f#5@3", V: "[b3,d4,f#4,b4,f#5]", W: "[a#3,d4,a#4,f5,a#5]",
  X: "[c4,f4,a4,c5,f5]", Y: "[b3,d4,g4,b4,g5]", Z: "[e4,g4,b4,e5,g5]/2", AA: "[g4,b4,d5]", AB: "[c5,g5,c6]",
  AC: "[c5,e5,c6]", AD: "[b5,d6]/3",
})).s("gm_percussive_organ").gain(0.48).pan(0.7)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~ A@8 B@3 C D E F G H I@2 C D E J G H K@2 L@2 M N L@2 O P Q@2 R@2 C D E S G T U@2 C D E J G H K@2 L@2 M N L@2 V W V
  X@8 Y ~ Z@4 AA AB AC AD AE@4 AF@2 AC AG AH@4 AF@2 AC AG AC AG AC AG AI@3 ~
>`.pickRestart({
  A: "[~@14 [b4,d5,b5]@5 ~@11 [b4,d5,b5]@5 ~@11 [b4,d5,b5]@5 ~@11 [b4,d5,b5]@5 ~@11 [b4,d5,b5]@5 ~@11 [b4,d5,b5]@5 ~@11 [b4,d5,b5]@5 ~@11 [b4,d5,b5]@2]/8", // Bm
  B: "[~@14 [b4,d5,b5]@5 ~@11 [b4,d5,b5]@5 ~@13]/3", // Bm
  C: "[a2,e3,a3]@3 ~ [a3,e4,a4] ~@3 a2@2 [e3,a3,e4,a4]@2 [a2,e3,a3,e4,a4] ~@3", // A5
  D: "b2@4 [b3,f#4,b4] ~@3 b2@2 [b3,e4,b4]@2 [a3,d4,b4] ~@3", // B5 E5 Bm7
  E: "[a2,a3]@3 ~ [a3,e4,a4] ~@3 a2@2 [e3,a3,e4,a4]@2 [a2,e3,a3,e4,a4] ~@3", // A A5
  F: "~@5 [b2,f#3,e4] [b2,f#3,d4] [b2,f#3,e4]", // Bsus4 Bm Bsus4
  G: "[c3,g3]@4 [g3,c4,g4,c5] ~@3 c3@2 ~@2 c3@2 ~@2, ~@5 [g3,c4,g4,c5]@2 ~", // C5
  H: "[g2,d3]@4 [g3,d4,g4] ~@3 [g3,d4,g4]@2 ~@2 [g3,d4,g4]@2 ~@2, ~@5 b3@2 ~", // G5
  I: "[b2@3 b2 d4 e4@2 [b2,b3,d4,b4]@3 ~@2 e4 d4 [a3,b3] [b2,f#3], ~@4 a3@2 ~@5 b2@2 ~@3, ~@6 [a3,b3] ~]/2", // Bm Asus2 B5 Asus2
  J: "~@5 [b2,f#3,b3] [b2,f#3,e4] ~", // B5 Bsus4
  K: "[b2@3 b2 d4 e4@2 [b2,b3,d4]@3 ~@2 [a3,b3,e4]@2 [a3,d4] b2, ~@4 a3@2 ~ b4@4 b2@2 ~@3]/2", // Bm Asus2 D5
  L: "[[d2,a2]@3 d2 a2@3 f#2 [d2,a2]@3 b2 [g2,c3]@2 [g2,c3]@2, d3@11 ~@5]/2", M: "[d2,a2]@2 [g2,d3] [f#2,a2]",
  N: "~@2 e4@3 d4 b3 d4, e2@7 ~@9", O: "[g2,d3]", P: "[c3,g3]",
  Q: "[b2@6 b2@2 d4@2 e4@3 ~ [b3,d4,f#4]@5 ~@5 e4 ~ f#4@2 [b2,d3,b3,e4]@2 [b2,d4]@2, ~@8 a3@4 ~@2 [b2,b4]@7 ~ b2@3 d4@2 ~@5, ~@6 [e3,f#3] ~]/2", // Bm E7 Bm B Esus2
  R: "[[f#3,b3]@3 ~@3 b2@2 d4@2 e4@3 ~ [b3,d4,b4]@6 ~@2 a3@2 b3 ~ [b2,b3,d4,f#4]@2 [b2,b3,e4] ~@3, b2@3 ~ a3@2 ~@10]/2", // B5 Bm E5
  S: "b2@4 [b3,f#4,b4] ~@5 [b2,f#3,e4]@2 [b2,f#3,d4]@2 [b2,f#3,e4]@2", // B5 Bsus4 Bm Bsus4
  T: "[g2,d3]@4 [g3,d4,g4] ~@3 [g3,d4,g4]@2 g3 ~ [g3,d4,g4]@2 ~@2, ~@5 b3@2 ~", // G5
  U: "[b2@6 b2@2 d4@2 e4@4 [b2,b3,d4,b4]@6 ~@4 [a3,d4]@4 [a3,d4]@3 ~, ~@4 a3@2 ~@5 b2@2 ~@3]/2", // Bm D5
  V: "[g2,d3,g3]@5 ~ [g2,d3,g3]@2 [g2,d3,g3]@4 [g2,d3,g3]@4", W: "[c3,g3,c4]@3 [c3,g3,c4] [c3,g3,c4]@2 [c3,g3,c4]@2",
  X: "[[c3,g3,c4]@6 [c3,g3,c4]@2 [c3,g3,c4]@4 [c3,g3,c4]@3 ~ [d4,f#4]@11 ~@5 [d4,f4]@11 ~@5 [a3,c4]@11 ~@5 [b3,d4]@11 ~@5 [d4,f#4]@11 ~@5 [d4,f4]@11 ~@5 [a3,c4]@11 ~@4 e3, ~@15 b5@17 ~@47 b5@17 ~@32, ~@15 b3@12 ~@4 a#3@8 ~@8 f3@12 ~@4 g3@8 ~@8 b3@12 ~@4 a#3@8 ~@8 f3@12 ~@5, ~@15 d6 f#6@5 ~@58 d6 f#6@5 ~@43, ~@16 b4@14 ~@2 a#4@15 ~ f4@14 ~@2 g4@15 ~ b4@14 ~@2 a#4@15 ~ f4@14 ~@2]/8", // C5 D Dm Am Bm D Dm Am
  Y: "[g3,b3,e4]@11 ~@5, b4@15 ~", // Em
  Z: "[[d2,d3]@8 ~@10 g2@2 b2@2 g2@2 ~@6 g2@2 [d2,d3]@8 ~@4 f#2@2 ~@6 b2@3 ~@3 d4@2 b3@2 d4@2, ~@8 g2@4 f#2@4 e2@6 ~@4 [g2,g3]@4 g4@5 ~@7 b2@4 ~@2 e2@4 e4@6 ~@6, ~@10 b2@4 a2@4 ~@6 c3@4 [c3,c4]@5 ~@7 g2@4 ~@2 g2@4 g2@4 ~@2 e2@8]/4", // D G C
  AA: "[d2,d3]@4 ~@2 f#2 g2, ~@2 g2 ~, ~@5 b2@2 ~", // D
  AB: "~ g2 b2 g2 ~@3 [g2,g4], e2@3 ~ c3@2 [c3,c4]@2, ~@5 [g2,g3]@2 ~", AC: "[g2,d3,g3]", AD: "~ g3@3, [c2,c3], ~ e3@7",
  AE: "[[d2,d3]@4 ~@5 g2 b2 g2 ~@3 g2 [d2,d3]@4 ~@5 g2 ~@3 d4 b3 d4, ~@8 g2@4 f#2@4 e2@6 ~@4 [g2,g3]@4 g4@5 ~@7 b2@4 a2@4 ~@2 e4@6 ~@6, ~@10 b2@4 a2@4 ~@6 c3@4 [c3,c4]@5 ~@7 g2@4 f#2@4 e2@8 e2@8]/4", // D G C
  AF: "[[d2,d3]@4 ~@5 g2 b2 g2 ~@3 [g2,g4], ~@4 g2@2 f#2@2 e2@3 ~@2 [g2,g3]@2 ~, ~@5 b2@2 a2@2 ~@3 c3@2 [c3,c4]@2]/2", // D G C
  AG: "~ g3@3, c3, ~ e3@7",
  AH: "[[d2,d3]@8 ~@10 g2@2 b2@2 g2@2 ~@6 g2@2 [d2,d3]@8 ~@10 g2@2 b2@3 ~@3 d4@2 b3@2 d4@2, ~@8 g2@4 f#2@4 e2@6 ~@4 [g2,g3]@4 g4@5 ~@7 b2@4 a2@4 ~@2 e4@6 ~@6, ~@10 b2@4 a2@4 ~@6 c3@4 [c3,c4]@5 ~@7 g2@4 f#2@4 e2@8 e2@8]/4", // D G C
  AI: "[f#2,b2]/3", // B5
})).s("gm_overdriven_guitar").gain(0.64).pan(0.2)

// other · clarinet
const clarinet = note("<~@28 A B ~@2 C D@2 ~@21 A B ~@2 C E F G F ~@42>".pickRestart({
  A: "~@6 g5 ~ a5@3 ~ f#5 ~ g5@2", B: "a5@3 ~@3 g5@2 a5 ~ g5 ~ f#5 ~ g5@2", C: "~@4 f#5 ~ g5 ~ a5@3 ~ f#5 ~ g5@2",
  D: "[a5@3 ~ f#5 ~ g5@2 a5 ~ g5 ~ f#5 ~ g5@6 a5@2 g5@7 ~@3]/2", E: "a5@3 ~ f#5 ~ g5@2 a5@2 g5 ~ f#5 ~ g5@2",
  F: "a5@2 g5@7 ~@7", G: "~@4 f#5 ~ g5@2 a5 ~ g5 ~ f#5 ~ g5@2",
})).s("gm_clarinet").gain(0.48).pan(0.8)

// other · clarinet · soft notes
const clarinet_soft = note("<~@28 [~@4 f#5 ~@11]!2 ~@26 [~@4 f#5 ~@11]!2 ~@49>").s("gm_clarinet").gain(0.32).pan(0.8)

// chords · epiano1
const epiano1 = note("<~@75 A@2 B C D@3 E ~@24>".pickRestart({
  A: "[[d5,f#5,a5]@2 g5 f#5 [d5,e5,a5]@2 ~ b4@2 [d5,f#5] d5!2 [e5,a5]@2 [d5,e5]@2, ~@4 [d5,a5]@4 ~@4 d5@4 ~@2 a5@5 ~@9, ~@18 f5 ~ f#5@4 ~@8, ~@20 f5 ~@3 d5@2 ~@6]/2", // D Dsus2 D A5 Dsus2 D5
  B: "[d5,f#5]@2 [d5,g5] [d5,f#5] [d5,e5] d5 b4 [b4,e5], ~@14 d5 ~", // D G5 D Dsus2 E5
  C: "[b4,e5] [b4,e5,f#5] [b4,e5] d5 [d5,e5] ~ [b4,f#5]@2, ~@3 b4@3 ~@2, ~@5 d5@2 ~", // E5 Bsus4 E5 Dsus2 B5
  D: "[[d5,f#5]@2 [d5,g5] [d5,f#5] [d5,e5] d5 b4 [d5,a5]@2 [d5,a5]@2 [d5,f#5] [d5,e5] d5 [b4,d5] d5@3 ~@6]/3", // D G5 D Dsus2 D5 D Dsus2 Bm
  E: "~@3 d5 [d5,e5] b4 b4@2, ~@3 b4@2 d5@2 ~", // Dsus2
})).s("gm_epiano1").gain(0.53).pan(1)

// drums · rim
const rim = s("rim").struct("<~ [~ x ~ x]!102 ~@4>").gain(0.8).pan(0.6)

// drums · rim · soft notes
const rim_soft = s("rim").struct("<~ [~@4 x!2 ~@6 x!2 ~@2]!8 ~@98>").gain(0.24).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~@8 A@38 B C A@25 D E A@25 F A@2 G ~@3>".pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x ~@2 x!2 ~ x ~", C: "x ~@2 x!2 ~@3", D: "x ~@2 x!2 ~ x!2", E: "~ x ~ x!5",
  F: "x!2 ~ x!2 ~@2 x", G: "x",
})).gain(0.8).pan(0.6)

// drums · snare
const snare = s("sd").struct("<~@7 A B@19 C B@7 D B@10 E B@18 F B@3 G H B@2 I J B@7 G B@7 K B@11 F ~@4>".pickRestart({
  A: "~@7 x", B: "~ x ~ x", C: "~@4 x ~@7 x!2 ~@2", D: "~@4 x ~@6 x!2 ~ x!2", E: "~@4 x ~@7 x!4", F: "~@2 x ~@2 x!2 ~",
  G: "~@4 x ~@7 x ~ x!2", H: "x!2 ~ x", I: "~@4 x ~@6 x ~@4", J: "x ~@3 x ~@2 x ~@2 x ~ x ~ x ~",
  K: "~@4 x ~@5 x ~ x ~@2 x",
})).gain(0.8).pan(0.6)

// drums · low tom
const low_tom = s("lt").struct("<~@27 A ~@19 B ~@17 C ~@24 A ~@16>".pickRestart({
  A: "~@7 x", B: "~@14 x!2", C: "~@15 x",
})).gain(0.64).pan(0.6)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@6 B C@9 D C E C@9 F C@5 F C@3 G C@7 D C@13 G C@3 H C@10 G C@3 G C@7 D C@5 D C@8 ~@4
>`.pickRestart({
  A: "~ x ~ x", B: "~ x!3", C: "x!8", D: "x!7 ~", E: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", F: "x!5 ~ x!2", G: "x!5 ~ x ~",
  H: "x!6 ~ x",
})).gain(0.8).pan(0.6)

// drums · open hat
const open_hat = s("oh").struct(`<
// … 34 more lines

More by Crow Sheryl