Strudelify

There Goes My Heart

The Mavericks

KeyC majorTempo140 bpm
0:00/0:00
// There Goes My Heart — The Mavericks
// 140 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 11 "Violin" named as a string part, played on violin (its fiddle patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 108 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/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 · "Bass"
const bass = note(`<
  ~@2 A B C D E D E B C F G H I J K L M N O P Q D E P Q R S L T N O U A F J V D E V U L T U W X J V F A P Q D E N O P Q
  U Y R S U K B C D E P Q D E L T R S P Q N O U A F U V D E Z U L T G W AA J V U AA J K AB X U Z F AC ~
>`.pickRestart({
  A: "c2@23 ~", B: "c2@5 ~ e2@6 g2@6 a2@4 c1 ~", C: "c2@3 e2@3 g2@3 e2@2 ~", D: "g2@5 ~ b2@6 d3@6 b2@6",
  E: "g2@5 ~ b2@6 d3@6 g2@3 ~@3", F: "c2@3 e2@3 g2@3 c2@2 c#2", G: "c2@5 ~ e2@6 g2@6 f#2@6",
  H: "f3@4 c3@2 a2@6 a#2@6 b2@5 ~", I: "c3@6 d3@6 e3@5 ~ f3@4 ~@2", J: "c2@3 e2@3 g2@3 c2@2 g#2",
  K: "g2@3 b2@3 d3@3 g2@2 c#2", L: "c2@5 ~ e2@6 g2@6 e2@6", M: "c2@5 ~ e2@6 g2@6 f2@4 f#2@2",
  N: "g2@5 ~ b2@6 d3@6 e3@4 g1 ~", O: "g2@3 b2@3 d3@3 b2@2 ~", P: "c2@5 ~ e2@6 g2@6 a2@5 ~",
  Q: "c2@5 ~ e2@5 ~ g2@6 a2@4 g2 ~", R: "f2@5 ~ a2@6 c3@6 a2@6", S: "f2@5 ~ a2@6 c3@6 f2@3 ~@3",
  T: "c2@5 ~ e2@6 g2@6 c2@3 ~@3", U: "c2@5 ~ e2@6 g2@6 c2@4 ~@2", V: "g2@5 ~ b2@6 d3@6 g2@4 ~@2",
  W: "f2@3 a2@3 c3@3 f2@2 f#2", X: "f2@5 ~ a2@6 c3@6 f2@4 ~@2", Y: "c2@3 e2@3 g2@3 c2@2 f#2",
  Z: "g2@6 f2@6 e2@6 d2@5 ~", AA: "f2@3 a2@3 c3@3 f2@2 c#2", AB: "c2@6 d2@6 d#2@6 e2@5 ~", AC: "~@12 c2@5 ~@7",
})).s("gm_acoustic_bass").gain(0.24)

// chords · epiano1 · "Piano"
const epiano1 = note(`<
  ~@2 A B@2 C@2 D@2 E@2 F G H@2 I J K@2 L@2 M@2 N@2 O@2 H@2 M@2 D@2 P ~ I@2 J C@2 Q R B@2 S T U V J R W E@2 C@2 L@2 O@2
  F X Y@2 P Z E@2 L@2 E@2 D@2 O@2 Y@2 AA@2 C@2 F ~ V P AB L@2 Q I K@2 S AC AD I J V U R Z P AD I AE I AF ~
>`.pickRestart({
  A: "c2@23 ~", B: "[[g3,c4,e4]@43 ~@5]/2",
  C: "[~@10 b3@30 ~@4 b3@3 ~, ~ g2@11, ~@6 g3@28 ~@6 g3@7 ~, ~@5 f4@18 ~, ~@10 g4@33 ~@5]/2",
  D: "[[b3,d4,f4,g4]@43 ~@5]/2", // G7
  E: "[~@4 g3@12 ~@2 g3@21 ~@3 g3@4 ~@2, c2@11 ~, ~@2 [c4,e4,g4]@21 ~, ~@8 c3@11 ~ c3@2 ~@2]/2", // C
  F: "~@2 g3@6 ~ g3@3, c2, ~ [c4,e4,g4]@5, ~@2 c3", G: "[a#3,e4,g4,c5]",
  H: "[~@4 a3@12 ~@2 a3@21 ~@3 a3@4 ~@2, f2@39 ~ f2@4 ~@4, ~@2 [c4,f4,a4]@21 ~]/2", I: "[g3,c4,e4]", J: "[b3,d4,f4,g4]",
  K: "[g3@17 ~@5 c5@2, c5@11 ~, g4@5 g4, e4@19 e4@5, ~@17 g3@7]/2",
  L: "[~@4 b3@12 ~@2 b3@21 ~@3 b3@4 ~@2, g2@39 ~ g2@4 ~@4, ~@2 [d4,f4,g4]@21 ~]/2", // G7
  M: "[~@44 g4@3 ~, [g3,c4,e4]@47 ~, ~@36 g5@11 ~, ~@40 e5@7 ~]/2", // C
  N: "[~@44 g4@3 ~, [g3,b3,d4]@47 ~, ~@36 f5@11 ~, ~@40 d5@7 ~]/2", // G
  O: "[~@10 c4@30 ~@4 c4@3 ~, ~ c3@11, ~@6 g3@28 ~@6 g3@7 ~, ~@10 g4@33 ~@5]/2", P: "~@5 [c4,g4]@7, ~ c3@5, ~ g3@3",
  Q: "[b3,f4,g4,d5]", R: "[g3,e4,g4,c5]", S: "~@5 [a#3,e4,g4]@7, ~ c3@5, ~ g3@3", T: "~@5 [c4,a4]@7, ~ f2@5, ~ a3@3",
  U: "[a3,c4,f4]", V: "[c3,g3,c4,e4]", W: "[c3,g3,c4,e4]@23 ~", X: "~@2 a#3@6 ~ a#3@3, c2, ~ [c4,e4,g4]@5, ~@2 c3",
  Y: "[[f4,a4]@27 ~@3 c5@2 d5@4 c5@9 ~@3, [f3,c4]@23 ~, ~@14 f4@9 ~, ~@15 f5@8 ~]/2", // F F5
  Z: "~@2 b3@6 ~ b3@3, g2, ~ [d4,f4,g4]@5", // G7
  AA: "[[c4,e4]@27 ~@3 g4@2 a4@4 g4@9 ~@3, [c3,g3]@23 ~, ~@14 c4@9 ~, ~@15 c5@8 ~]/2", // C C5
  AB: "~@5 [b3,f4,g4]@7, ~ g2@5, ~ g3@3", AC: "[f3,c4,f4,a4]", AD: "~@2 a3@6 ~ a3@3, f2, ~ [c4,f4,a4]@5",
  AE: "[g3,b3,d4]", AF: "~@2 [g3,c4,e4] ~",
})).s("gm_epiano1").gain(0.24)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  ~@2 A B@2 C@2 D@2 B@2 E F G@2 H I B@2 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q A E R S T@2 I U V@2 W X Y Z I H A AA@2 T@2 AB@2
  V@2 E F AC@2 E S AA@2 AD@2 AE@2 AF@2 O@2 AG@2 AE@2 AF@2 AH A H Z AI T@2 AJ U V@2 AK AL X H S H Y Z AJ R AM Z AJ R AN ~
>`.pickRestart({
  A: "[g3,c4,e4]@23 ~", // C
  B: "[[g3,c4,e4]@4 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@6 ~@2 [g3,c4,e4]@3 ~@9 [g3,c4,e4]@2 ~@2 [g3,c4,e4]@6 ~@2 [g3,c4,e4]@3 ~@3, ~@2 c3@5 ~ c3@3 [g3,c4,e4]@3 e3@5 ~@5, ~@24 c3@14 ~@2 c3@5 ~@3]/2", // C
  C: "[~@6 [g3,b3,d4]@3 ~ [g3,b3,d4]@6 ~@2 [g3,b3,d4]@2 ~@4 g2@2 ~@4 [g3,b3,d4]@3 ~ [g3,b3,d4]@6 ~@2 [g3,b3,d4]@3 ~@3, ~@4 g2@11 ~ g2@6 [g3,b3,d4]@6 g2@10 ~@2 g2@5 ~@3]/2", // G
  D: "[~@6 [g3,b3,d4]@3 ~ [g3,b3,d4]@6 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@6 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@5 ~ g2@2 [g3,b3,d4]@3 ~@3, ~@2 g2@5 ~ g2@5 ~ g2@4 ~@6]/2", // G
  E: "[g3,c4,e4]@10 ~@2 [c4,e4]@4 ~@2 [g3,c4,e4]@3 ~@3, ~@10 c3@5 ~ c3@4 ~@4, ~@4 g3 ~@3", // C
  F: "[g3,a#3,c4]@10 ~@2 [a#3,c4]@4 ~@2 [g3,a#3,c4]@3 ~@3, ~@10 c3@5 ~ c3@4 ~@4, ~@4 g3 ~@3", // C7 A#sus2 C7
  G: "[~@6 [a3,c4,f4]@3 ~ [a3,c4,f4]@6 ~@2 [a3,c4,f4]@2 ~@4 f2@2 ~@4 [a3,c4,f4]@3 ~ [a3,c4,f4]@6 ~@2 [a3,c4,f4]@3 ~@3, ~@4 f2@11 ~ f2@6 [a3,c4,f4]@6 f2@10 ~@2 f2@5 ~@3]/2", // F
  H: "[g3,c4,e4]@4 ~@2 [g3,c4,e4]@2 ~@2 [g3,c4,e4]@6 c3@2 [g3,c4,e4]@3 ~@3, ~@4 c3@11 ~@9", // C
  I: "[g3,b3,d4]@4 ~@2 [g3,b3,d4]@3 ~ [g3,b3,d4]@6 ~@2 [g3,b3,d4]@4 ~@2, ~@2 g2@9 ~", // G
  J: "[~@10 g2@2 [g3,b3,d4]@4 ~@2 [g3,b3,d4]@3 ~ [g3,b3,d4]@6 g2@2 [g3,b3,d4]@4 g2@2 g3@4 ~@2 g3@4 [b3,d4]@2, ~@4 g2@6 ~@6 g2@7 ~@17 g2@7 ~, ~ [g3,b3,d4] ~@4 [b3,d4] ~]/2", // G Bm G Bm
  K: "[~@5 c4@3 ~@3 c4@3 ~@9 c4, ~@4 c3@8 ~@4 c3@9 ~@3 c3@8 ~@4 c3@8, ~@6 g3@10 ~@2 g3@21 ~@3 g3@6, ~@17 e4@7]/2",
  L: "[~@17 b3@3 ~ d4@2 b3, f4@11 d4@6 ~@7, b3@6 g3@10 f3@7 ~@5 f3@6 ~@6 f3@6 ~@2, ~@2 g2@21 ~, ~@5 b3@4 g3@5 ~ g3@9]/2",
  M: "[~@10 c3@2 [g3,c4,e4]@4 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@6 c3@2 [g3,c4,e4]@4 c3@2 g3@4 ~@2 g3@4 [c4,e4]@2, ~@4 c3@6 ~@6 c3@7 ~@17 c3@7 ~, ~ [g3,c4,e4] ~@4 [c4,e4] ~]/2", // C
  N: "[~@11 c4@3 ~@7 a3@3, f2, ~@4 f3@9 ~@3 f3@8 ~@4 f3@7 ~@5 f3@8, ~@6 a3@11 ~ a3@10 ~@2 a3@10 ~@8, ~@10 f4@9 ~@15 f4@14]/2",
  O: "[~@6 c4@4 e4@6 ~@2 c4@4 e4@6 ~@2 c4@4 ~@8 c4@3 ~@3, c3@11 ~@23 e4@8 ~@6, ~@4 g3@11 ~ g3@11 ~ g3@11 ~ g3@5 ~@3]/2",
  P: "[~@5 g3@3 ~@3 b3@3 ~@3 b3@3 ~@3 b3, g2, ~ d4@11, ~@6 b3@10 f3@9 ~@3 f3@8 ~@4 f3@8, ~@9 g3@5 ~ g3@5 ~ g3@3]/2",
  Q: "~@6 e4 ~, c4@3 g3@8 ~, ~@4 c3@10 ~@2 c3@5 ~@3, ~@10 c4@11 ~@3",
  R: "[g3,c4,e4]@4 ~@2 [g3,c4,e4]@3 ~@3 c3@2 ~@4 [g3,c4,e4]@3 ~@3, ~@2 c3@3 [g3,c4,e4]@3 c3@2 ~@2", // C
  S: "[g3,b3,d4]@4 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@6 g2@2 [g3,b3,d4]@3 ~@3, ~@4 g2@11 ~@9", // G
  T: "[[g3,b3,d4]@4 ~@2 [g3,b3,d4]@3 ~ [g3,b3,d4]@6 ~@2 [g3,b3,d4]@3 ~@9 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@6 ~@2 [g3,b3,d4]@3 ~@3, ~@2 g2@5 ~ g2@3 [g3,b3,d4]@3 f3@5 ~@5, ~@24 g2@14 ~@2 g2@5 ~@3]/2", // G
  U: "[g3,c4,e4]@4 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@6 ~@2 [g3,c4,e4]@4 ~@2, ~@2 c3@9 ~", // C
  V: "[~@6 [g3,c4,e4]@3 ~ [g3,c4,e4]@6 ~@2 [g3,c4,e4]@2 ~@4 c3@2 ~@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@6 ~@2 [g3,c4,e4]@3 ~@3, ~@4 c3@11 ~ c3@6 [g3,c4,e4]@6 c3@10 ~@2 c3@5 ~@3]/2", // C
  W: "[g3,a#3,c4]@4 ~@2 [g3,a#3,c4]@2 ~@2 [g3,a#3,c4]@6 c3@2 [g3,a#3,c4]@3 ~@3, ~@4 c3@11 ~@9", // C7
  X: "[a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~@3 f2@2 ~@4 [a3,c4,f4]@3 ~@3, ~@2 f2@3 [a3,c4,f4]@3 f2@2 ~@2", // F
  Y: "[a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@6 ~@2 [a3,c4,f4]@4 ~@2, ~@2 f2@9 ~", // F
  Z: "[g3,c4,e4]@4 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@6 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@2, ~@4 c3@11 ~ c3@6 ~@2", // C
  AA: "[[g3,c4,e4]@4 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@6 ~@2 [g3,c4,e4]@2 ~@2 [g3,c4,e4]@6 ~@2 [g3,c4,e4]@2 ~@2 [g3,c4,e4] ~ [g3,c4,e4]@3 ~@3 [g3,c4,e4]@3 ~@3, ~@4 c3@11 ~ c3@11 ~ c3@10 ~@2 c3@4 ~@4]/2", // C
  AB: "[[g3,b3,d4]@4 ~@2 [g3,b3,d4]@3 ~ [g3,b3,d4]@6 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@6 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4] ~ [g3,b3,d4]@3 ~@3 [g3,b3,d4]@3 ~@3, ~@4 g2@11 ~ g2@11 ~ g2@10 ~@2 g2@4 ~@4]/2", // G
  AC: "[[a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@6 ~@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@6 ~@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~ [a3,c4,f4]@3 ~@3 [a3,c4,f4]@3 ~@3, ~@4 f2@11 ~ f2@11 ~ f2@10 ~@2 f2@4 ~@4]/2", // F
  AD: "[~@10 g3@11 ~ f3@2 g3@4 f3@2 g3@4 ~@8 b3@4 ~@2, g2, ~ d4@11, ~@3 b3@10 ~@4 f3@2 ~ f3@4, ~@6 g3 ~]/2",
  AE: "[~@11 e4@3 ~@9 c4, c3, ~@4 e3@9 ~@3 e3@7 ~@5 e3@9 ~@3 e3@8, ~@3 g3@11 ~ g3@9, ~@5 e4@4 c4@6 ~@2 c4@4 e4@3]/2",
  AF: "[~@22 b3@6 ~@14 g3@5 ~, g2@47 ~, ~@4 g3@12 f3@7 ~@5 f3@7 ~@5 f3@7 ~, ~@6 b3@9 ~@3 g3@10 ~@2 g3@10 ~@8, ~@10 d4@13 ~@11 d4@13 ~]/2",
  AG: "[~@5 c4@3 ~@3 c4@3 ~@9 c4, ~@4 f2@8 ~@4 f2@9 ~@3 f2@8 ~@4 f2@8, ~@6 a3@10 ~@2 a3@21 ~@3 a3@6, ~@17 f4@7]/2",
  AH: "~@3 c4@2 e4@5 ~@2, c3@5 ~, ~ g3@4 ~",
  AI: "[g3,b3,d4]@4 ~@2 [g3,b3,d4]@3 ~@3 g2@2 ~@4 [g3,b3,d4]@3 ~@3, ~@2 g2@3 [g3,b3,d4]@3 g2@2 ~@2", // G
  AJ: "[g3,b3,d4]@10 ~@2 [b3,d4]@4 ~@2 [g3,b3,d4]@3 ~@3, ~@10 g2@5 ~ g2@4 ~@4, ~@4 g3 ~@3", // G Bm G
  AK: "[g3,a#3,c4]@4 ~@2 [g3,a#3,c4]@3 ~@3 c3@2 ~@4 [g3,a#3,c4]@3 ~@3, ~@2 c3@3 [g3,a#3,c4]@3 c3@2 ~@2", // C7
  AL: "[a3,c4,f4]@4 ~@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@6 f2@2 [a3,c4,f4]@3 ~@3, ~@4 f2@11 ~@9", // F
  AM: "[a3,c4,f4]@4 ~@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@6 ~@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@2, ~@4 f2@11 ~ f2@6 ~@2", // F
  AN: "~@6 [g3,c4,e4] ~@5", // C
})).s("gm_acoustic_guitar_steel").gain(0.16)

// chords · piano
const piano = note(`<
  ~@2 A B@2 C@2 D@4 E@2 F@5 G H@2 I@2 J@2 K@2 L@2 M@2 N O@2 P Q@2 R@2 S@4 T@2 U@6 ~@15 V W@2 X@2 Y@2 Z@4 AA@2 AB AC@2 AD
  AE@2 AF@2 AG@4 AH@2 AI@5 AJ@4 AK@4 AL@2
>`.pickRestart({
  A: "~@4 c6!2 [c6,e6]@4 ~@2 [b5,e6]@3 ~@3 [a5,c6]@4 ~@2, ~@2 g5 ~@9, ~@5 a5@2 ~@17", // C E5 Am
  B: "[[a5,c6]@3 ~ [g5,c6]@22 ~@2 c6!2 [c6,e6]@4 ~@2 [b5,e6]@4 ~@2 [a5,c6]@4 ~@2, ~@14 g5 ~@9, ~@29 a5@2 ~@17]/2", // Am C5 C E5 Am
  C: "[[a5,d6]@10 [b5,f6]@17 ~ [g5,a5,b5,c6]@2 [c6,f6]@5 ~ [b5,f6]@5 ~ [a5,c6]@4 [g5,b5]@2, [g5,b5] ~@47]/2", // D5 Bdim Cmaj7 F5 Bdim Am G
  D: "[[a5,c6]@3 [g5,b5]@23 ~ [f5,b5]@8 ~ [f5,b5]@4 [g5,b5]@2 [a5,c6]@3 ~ [g5,c6]@29 ~ c6!2 [c6,e6]@5 ~ [b5,e6]@6 [a5,c6]@5 ~, ~@27 [e5,g5] ~@48 g5@2 ~@18, ~@77 a5@2 ~@17]/4", // Am G Fdim G Am C5 C E5 …
  E: "[[a5,c6]@4 [g5,c6]@23 ~@2 c6 [c6,e6]@5 ~ [c6,e6]@4 [d6,f6]@4 ~ [c6,e6]@3, ~@14 [g5,a#5] ~@9, ~@29 a5@2 ~@17]/2", // Am C5 C Dm C Gm
  F: "[[a5,c6]@27 ~@2 c6 [c6,f6]@6 [b5,f6]@6 [a5,c6]@4 [c6,e6]@5 ~ [c6,e6]@2 [g5,c6]@6 [e5,g5]@6 [g5,c6]@4 [a5,d6]@5 ~ [a5,c6]@2 [f5,b5]@6 [d5,f5]@6 [b4,f5]@3 ~ [c5,e5]@15 ~@11, ~@14 [g5,a#5] ~@45, ~@29 a5@2 ~@89]/5", // Am F5 Bdim Am C C5 Em C5 …
  G: "~@4 [c5,e5,g5]@5 ~ [c5,e5,g5]@2 [d5,f5,g5,c6]@4 ~@2 [c5,e5,g5]@5 ~", // C Dm7 C
  H: "[[b4,e5,f5,g5]@9 ~ [b4,d5,f5]@17 ~ [f5,a5,b5,d6]@5 ~ [a5,c6]@2 [e5,g5,b5]@5 ~ [d5,f5,b5]@6, ~@11 [f5,b5] ~@4]/2", // Em Bdim Bm7b5 Am Em Bdim Fdim
  I: "[[c5,e5,g5]@27 ~ [c5,e5,g5]@5 ~ [c5,e5,g5]@2 [d5,f5,g5,c6]@5 ~ [e5,g5,c6]@6]/2", // C Dm7 C
  J: "[[c5,e5,f5,g5]@9 ~ [b4,d5,f5]@16 ~@2 [f5,a5,b5,d6]@5 ~ [f5,a5,b5,c6]@2 [e5,g5,b5]@5 ~ [d5,f5,b5]@5 ~]/2", // C Bdim Bm7b5 F Em Bdim
  K: "[[c5,e5,g5]@27 ~ [c5,e5,g5]@5 ~ [e5,g5]@2 [d5,f5,g5,c6]@5 ~ [e5,g5,c6]@5 ~, ~@34 c5 ~@13]/2", // C Em Dm7 C
  L: "[[f5,a5,c6]@5 ~ [f5,g#5,a5,c6]@3 ~ [f5,a5,c6]@5 [f5,a5,c6]@2 ~ [g5,b5,c6,d6]@3 [a5,c6,f6]@17 ~@2 [g5,b5,c6,d6]@4 [f5,a5,c6]@3 ~]/2", // F G F G F
  M: "[[e5,g5,a5,c6]@6 [e5,g5]@3 ~ [e5,g5,c6]@16 ~@2 [c5,e5,g5]@5 [c5,e5,g5]@2 ~ [d5,f5,g5,c6]@5 ~ [c5,e5,g5]@5 ~]/2", // Am7 Em C Dm7 C
  N: "[b4,e5,f5,g5]@9 ~ [b4,d5,f5]@13 ~", // Em Bdim
  O: "[[b4,d5,f5]@3 ~ [f5,a5,b5,d6]@7 ~ [e5,g5,b5]@6 [b4,f5]@4 [c5,e5]@13 ~@13, ~@12 f5 ~@35]/2", // Bdim Bm7b5 Em Bdim C
  P: "~@5 c6 [c6,e6]@5 ~ [b5,e6]@4 ~@2 [a5,c6]@4 ~@2, ~@5 [g5,a5]@2 ~@17", // C E5 Am Gsus2
  Q: "[[a5,c6]@3 ~ [g5,c6]@23 ~ c6!2 [c6,e6]@5 ~ [b5,e6]@5 ~ [a5,c6]@5 ~, ~@14 g5 ~@9, ~@29 a5@2 ~@17]/2", // Am C5 C E5 Am
  R: "[[a5,d6]@10 [b5,f6]@17 ~ [g5,b5,c6] [c6,f6]@7 [b5,f6]@5 ~ [a5,c6]@4 [g5,b5]@2, [g5,b5] ~@27 a5@2 ~@18]/2", // D5 Bdim Cmaj7 F5 Bdim Am G
  S: "[[a5,c6]@4 [g5,b5]@23 [e5,g5] [f5,b5]@7 ~ [f5,b5]@3 ~@2 [a5,c6]@4 ~ [g5,c6]@28 ~@2 c6!2 [c6,e6]@6 [b5,e6]@5 ~ [a5,c6]@5 [g5,c6], ~@20 [g5,b5] ~@17 g5 ~@9, ~@77 a5@2 ~@17]/4", // Am G Em Fdim Am C5 C E5 …
  T: "[[a5,c6]@4 [g5,c6]@23 ~@2 c6 [c6,e6]@4 ~@2 [c6,e6]@4 [d6,f6]@3 ~ [c6,e6]@3 ~, ~@14 [g5,a#5] ~@9, ~@29 a5@2 ~@17]/2", // Am C5 C Dm C Gm
  U: "[[a5,c6]@27 ~@2 c6 [c6,f6]@5 ~ [b5,f6]@6 [a5,c6]@3 ~ [c6,e6]@5 [c6,e6]@2 ~ [g5,c6]@6 [e5,g5]@6 [g5,c6]@4 [a5,d6]@5 ~ [a5,c6]@2 [f5,b5]@6 [d5,f5]@6 [b4,f5]@4 [c5,e5]@30 ~@20, ~@14 [g5,a#5] ~@57, ~@29 a5@2 ~@113]/6", // Am F5 Bdim Am C C5 Em C5 …
  V: "~@4 [c5,e5,g5]@5 ~ [c5,e5,g5]@2 [d5,f5,g5,c6]@5 ~ [c5,e5,g5]@5 ~", // C Dm7 C
  W: "[[b4,e5,f5,g5]@9 ~ [b4,d5,f5]@17 ~ [f5,a5,b5,d6]@5 ~ [f5,a5,b5,c6]@2 [e5,g5,b5]@5 ~ [d5,f5,b5]@6]/2", // Em Bdim Bm7b5 F Em Bdim
  X: "[[c5,e5,g5]@26 ~@2 [c5,e5,g5]@5 ~ [c5,e5,g5]@2 [d5,f5,g5,c6]@5 ~ [e5,g5,c6]@5 ~]/2", // C Dm7 C
  Y: "[[e5,g5]@10 [b4,d5,f5]@17 ~ [f5,a5,b5,d6]@5 [f5,a5,b5,c6]@3 [e5,g5,b5]@5 ~ [d5,f5,b5]@6, [c5,f5] ~@5]/2", // Em Bdim Bm7b5 F Em Bdim F5
  Z: "[[c5,e5,g5]@26 ~ [c5,e5,g5]@5 ~ [c5,e5,g5]@2 [d5,f5,g5,c6]@5 ~ [e5,g5,c6]@4 ~@2 [f5,a5]@7 [g#5,c6]@2 ~ [f5,a5,c6]@5 ~ [f5,a5,c6]@2 ~ [b5,d6]@3 [a5,c6,f6]@16 ~@2 [g5,b5,c6,d6]@4 ~ [f5,a5,c6]@3 ~, ~@47 c6@6 ~@12 [g5,c6]@3 ~@28]/4", // C Dm7 C F G# F Bm F …
  AA: "[[e5,g5,a5,c6]@6 [e5,g5]@3 ~ [e5,g5,c6]@17 ~ [c5,e5,g5]@5 ~ [c5,e5,g5]@2 [d5,f5,g5,c6]@4 ~@2 [c5,e5,g5]@5 ~]/2", // Am7 Em C Dm7 C
  AB: "[b4,e5,f5,g5]@9 f5 [d5,f5]@13 ~, ~@9 b4@13 ~@2", // Em Dm
  AC: "[[b4,d5,f5]@3 ~ [f5,a5,b5,d6]@7 ~ [e5,g5,b5]@6 [b4,f5]@4 [c5,e5]@22 ~@4]/2", // Bdim Bm7b5 Em Bdim C
  AD: "~@4 c6!2 [c6,e6]@5 ~ [b5,e6]@4 ~@2 [a5,c6]@4 ~@2, ~@2 g5 ~@9, ~@5 a5@2 ~@17", // C E5 Am
  AE: "[[a5,c6]@4 [g5,c6]@23 ~ c6!2 [c6,e6]@5 ~ [b5,e6]@5 ~ [a5,c6]@5 ~, g5 ~@27 g5@2 ~@18, ~@29 a5@2 ~@17]/2", // Am C5 C E5 Am
  AF: "[[a5,d6]@10 [b5,f6]@18 ~ c6 [c6,f6]@6 [b5,f6]@5 ~ [a5,c6]@4 [g5,b5]@2, [g5,b5] ~@27 [g5,b5]@2 ~@18, ~@29 a5@2 ~@17]/2", // D5 Bdim F5 Bdim Am G
  AG: "[[a5,c6]@3 ~ [g5,b5]@23 [e5,g5] [f5,b5]@7 ~ [f5,b5]@4 [g5,b5]@2 [a5,c6]@4 [g5,c6]@28 ~@2 c6!2 [c6,e6]@5 ~ [b5,e6]@5 ~ [a5,c6]@4 ~ [g5,c6], ~@38 g5 ~@9, ~@77 a5@2 ~@17]/4", // Am G Em Fdim G Am C5 C …
  AH: "[[a5,c6]@3 [g5,c6]@23 ~@3 c6 [c6,e6]@4 ~@2 [c6,e6]@4 [d6,f6]@3 ~@2 [c6,e6]@3, ~@14 [g5,a#5] ~@9, ~@29 a5@2 ~@17]/2", // Am C5 C Dm C Gm
  AI: "[[a5,c6]@27 ~@2 c6 [c6,f6]@5 ~ [b5,f6]@5 ~ [a5,c6]@3 ~ [c6,e6]@5 ~ [c6,e6]@2 [g5,c6]@6 [e5,g5]@6 [g5,c6]@4 [a5,d6]@4 ~@2 [a5,c6]@2 [f5,b5]@6 [d5,f5]@6 [b4,f5]@3 f5@2 ~ e5@6 ~@18, ~@28 [g5,a#5]@2 ~@63 c5@9 ~@18, ~@29 a5@2 ~@89]/5", // Am F5 Bdim Am C C5 Em C5 …
  AJ: "[~@5 c6 [c6,f6]@5 ~ [b5,f6]@5 ~ [a5,c6]@3 ~ [c6,e6]@4 ~ [c6,e6]@2 ~ [g5,c6]@6 [e5,g5]@5 [g5,c6]@4 c6@2 ~ b5@2 ~@2 [a5,c6]@2 [f5,b5]@5 ~ [d5,f5]@6 [b4,f5]@4 [c5,e5]@9 ~@17, ~@2 [g5,a#5] ~@45, ~@5 a5@2 ~@38 a5@5 ~@46]/4", // F5 Bdim Am C C5 Em C5 Am …
  AK: "[~@4 [g5,a#5] c6 [c6,f6]@5 ~ [b5,f6]@5 ~ [a5,c6]@3 ~ [c6,e6]@4 ~ [c6,e6]@2 ~ [g5,c6]@6 [e5,g5]@6 [g5,c6]@4 [a5,d6]@4 ~@2 [a5,c6]@2 [f5,b5]@5 ~ [d5,f5]@6 [b4,f5]@3 ~ [c5,e5]@6 [g4,c5]@5 [g4,c5]@3 [c5,e5]@3 [g4,c5]@3 [d5,f5]@3 [g4,c5]@3, ~@5 a5@2 ~@89]/4", // Gm F5 Bdim Am C C5 Em C5 …
  AL: "[[e5,g5]@4 ~@8 [e4,g4,c5,e5]@25 ~@11]/2", // Em C
})).s("gm_piano").gain(0.46)

// other · violin
const violin = note("<~@58 A B@2 C@6 ~@41>".pickRestart({
  A: "~@6 c5@5 b4@6 a4@6 ~", B: "[a4@4 g4@26 c5@5 ~ c5@4 d5@4 c5@4]/2",
  C: "[a4@30 c5@6 b4@6 a4@4 c5@8 g4@6 e4@6 g4@4 a4@8 f4@6 d4@5 b3@4 c4@48 ~@3]/6",
})).s("gm_violin").gain(0.36)

// drums · kick
const kick = s("bd").struct("<~@2 A B@31 A B@15 A B@31 A B@23 C ~>".pickRestart({
  A: "x ~@10 x", B: "x ~@5 x ~@4 x", C: "~ x",
})).gain(0.28)

// drums · rim
const rim = s("rim").struct("<[x!2] [x!4] ~@106>").gain(0.28)

// drums · snare
const snare = s("sd").struct("<~@2 A B@15 C B@14 C D B@14 E F B@15 E B@14 C D B@14 C B@8 ~@2>".pickRestart({
  A: "~@9 x!3", B: "~ x ~ x", C: "~@3 x ~@5 x ~ x", D: "~@3 x", E: "~@3 x ~@3 x!5", F: "~@9 x ~ x",
})).gain(0.36)

// drums · hihat
const hihat = s("hh").struct("<~@2 A ~@16 B@15 ~@16 A ~@16 B@15 ~@26>".pickRestart({
  A: "x ~@2 x", B: "x!4",
})).gain(0.32)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@19
  [~@2 x ~@2 x ~@2 x ~@2 x]!15
  ~@16
  [~@11 x]
  ~@16
  [~@2 x ~@2 x ~@2 x ~@2 x]!15
  ~@26
>`).gain(0.2)

// drums · open hat
const open_hat = s("oh").struct("<~@2 [~@11 x] ~@105>").gain(0.24)

// drums · crash
const crash = s("cr").struct("<~@3 A ~@30 A ~@16 A ~@30 A ~@15 A ~@9>".pickRestart({
  A: "x",
})).gain(0.24)

// drums · ride
const ride = s("rd").struct("<~@3 A@16 ~@15 B A@15 ~ A@16 ~@15 B A@23 C ~>".pickRestart({
  A: "x!4", B: "x ~@2 x", C: "~ x",
})).gain(0.32)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@3 A@16 ~@15 B A@15 ~ A@16 ~@15 B A@23 ~@2>".pickRestart({
  A: "~@2 x ~@2 x ~@2 x ~@2 x", B: "~@11 x",
})).gain(0.2)

stack(
  bass, epiano1, acoustic_guitar_steel, piano, violin, kick, rim, snare, hihat, hihat_soft, open_hat, crash, ride,
  ride_soft
// … 1 more lines

More by The Mavericks