Strudelify

I Only Want to Be With You

Bay City Rollers

KeyG majorTempo130 bpm
0:00/0:00
// I Only Want to Be With You — Bay City Rollers
// 130 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 89 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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 · slap bass 2
const bass = note(`<
  ~@3 A B C D A B A B E F A B G H E I A B A B E F A B G H E J K@2 L A H M N H A B A B E F A B G H E I A B A B E F A B G
  H E J K@2 L A H M N H A B A B E F A B G H E O P H P Q E R
>`.pickRestart({
  A: "g1 ~ g2 ~ g1 ~ g2 ~ g1 ~ g2 ~ g1 ~ g2 ~", B: "e1 ~ e2 ~ e1 ~ e2 ~ e1 ~ e2 ~ e1 ~ e2 ~",
  C: "a1 ~ a2 ~ a1 ~ a2 ~ a1 ~ a2 ~ a1 ~ a2 ~", D: "d1 ~ d2 ~ d1 ~ d2 ~ d1 ~ d2 ~ d1 ~ d2 ~",
  E: "c2 ~ c3 ~ c2 ~ c3 ~ d2 ~ d3 ~ d2 ~ d3 ~", F: "a1 ~ a2 ~ a1 ~ a2 ~ d2 ~ d3 ~ d2 ~ d3 ~",
  G: "a1 ~ a2 ~ b1 ~ b2 ~ c2 ~ c3 ~ c#2 ~ c#3 ~", H: "d2 ~ d3 ~ d2 ~ d3 ~ d2 ~ d3 ~ d2 ~ d3 ~",
  I: "g1 ~ g2 ~ c2 ~ c3 ~ d2 ~ d3 ~ d2 ~ d3 ~", J: "g1 ~ g2 ~ c2 ~ c3 ~ g1 ~ g2 ~ g1 ~ g2 ~",
  K: "d#2 ~ d#3 ~ d#2 ~ d#3 ~ d#2 ~ d#3 ~ d#2 ~ d#3 ~", L: "g1 ~ g2 ~ g1 ~ g2 ~ c2 ~ c3 ~ c2 ~ c3 ~",
  M: "d2 ~ d3 ~ d2 ~ d3 ~ b1 ~ b2 ~ b1 ~ b2 ~", N: "e2 ~ e3 ~ e2 ~ e3 ~ a1 ~ a2 ~ a1 ~ a2 ~",
  O: "~@2 g2 ~ c2 ~ c3 ~ g1 ~ g2 ~ g1 ~ g2 ~", P: "c2 ~ c3 ~ c2 ~ c3 ~ c2 ~ c3 ~ c2 ~ c3 ~",
  Q: "c2 ~ c3 ~ c2 ~ c3 ~ c2 ~ c3 ~ c2 ~ c3 g3", R: "g1 ~ g2 ~ g1 ~ g2 ~ g1 ~@7",
})).s("gm_slap_bass_2").gain(0.5)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@3 A B C D@5 E F@3 G H I J@5 E F@3 G H I K L@2 M@2 N O P Q@5 E F@3 G H I R S T S U V W X Y Z@2 AA K L@2 M@2 N O P Q@5
  E F@3 G H I AB G H AC@2 I AD
>`.pickRestart({
  A: "[g5,b5,d6] g6 ~@14", B: "[e5,g5,b5] e6 ~@14", C: "[a5,c6,e6] a6 ~@14",
  D: "[[a4,d5] [f#5,a5] ~@24 f#5@4 e5@4 b4@3 ~@5 [b5,b6] ~ [a5,a6] ~ [g5,g6] ~@11 f#5@4 e5@4 b4@3 ~@5 [b5,b6] ~ [a5,a6] ~ [g5,g6] ~, ~@7 b5@8 ~@8 b5@8 ~@9, ~@9 a5@6 ~@10 a5@6 ~@9, ~@11 g5@4 ~@4 b4@4 ~@4 g5@4 ~@4 b4@4 ~]/5", // D5 F#m B A G B A G
  E: "e5 f#5", F: "[e5@6 f#5@8 ~@12 f#5@4 e5@4 b4@3 ~ b4@8 ~@2, ~@7 b5@8 ~@9, ~@3 a5@2 ~@3, ~@11 g5@4 ~@9]/3", G: "e5",
  H: "~ [d5,f#5,a5]@3", I: "[g4,c5,e5]@4 ~@4 [d5,f#5,a5] ~ [d5,f#5,a5]@3 ~@3",
  J: "[~@4 [e5,g5] ~@3 [d5,f#5,a5]@6 ~@12 f#5@4 e5@4 b4@3 ~@5 [b5,b6] ~ [a5,a6] ~ [g5,g6] ~@11 f#5@4 e5@4 b4@3 ~@5 [b5,b6] ~ [a5,a6] ~ [g5,g6] ~, ~@2 c5 ~@4 b5@8 ~@8 b5@8 ~@9, ~@9 a5@6 ~@10 a5@6 ~@9, ~@11 g5@4 ~@4 b4@4 ~@4 g5@4 ~@4 b4@4 ~]/5", // Em D B A G B A G
  K: "~@4 [c5,e5,g5] ~@3 [b4,d5,g5]@6 ~@2", // C G
  L: "~@2 [d#5,d#6] ~ [g5,g6] ~ [a#5,a#6] ~@3 [a#5,a#6] ~ [g5,g6] ~ [d#5,d#6] ~", // D# G A# G D#
  M: "~@2 [g5,g6] ~ [a5,a6] ~ [d6,d7] ~@3 [d6,d7] ~ [a5,a6] ~ [g5,g6] ~", // G A D A G
  N: "~@2 [d5,d6] ~ [a5,a6] ~ [d6,d7] ~@3 [d6,d7] ~ [a5,a6] ~ [f#5,f#6] ~", // D A D A F#
  O: "~@2 [d5,d6] ~ [a5,a6] ~ [d6,d7] ~@3 [d6,d7] ~ [b5,b6] ~ [f#5,f#6] ~", // D A D B F#
  P: "~@2 [e5,e6] ~ [b5,b6] ~ [e6,e7] ~@3 [e6,e7] ~ [c#6,c#7] ~ [a5,a6] ~", // E B E C# A
  Q: "[[f#5,f#6] ~ [f#5,f#6] ~ [a5,a6] ~ [f#5,f#6] ~@3 [f#5,f#6] ~ [a5,a6] ~ [f#5,f#6] ~@11 f#5@4 e5@4 b4@3 ~@5 [b5,b6] ~ [a5,a6] ~ [g5,g6] ~@11 f#5@4 e5@4 b4@3 ~@5 [b5,b6] ~ [a5,a6] ~ [g5,g6] ~, ~@7 b5@8 ~@8 b5@8 ~@9, ~@9 a5@6 ~@10 a5@6 ~@9, ~@11 g5@4 ~@4 b4@4 ~@4 g5@4 ~@4 b4@4 ~]/5", // F# A F# A F# B A G …
  R: "~@4 [e5,g5] ~@3 [d5,f#5,a5]@6 [b4,b5,b6] ~, ~@2 c5 ~@5", // Em D B
  S: "[b4,b5,b6]@2 [a4,a5,a6] ~ [a4,a5,a6]@2 [g4,g5,g6] ~ [g4,g5,g6]@2 [f#4,f#5,f#6] ~ [f#4,f#5,f#6]@2 [e4,e5,e6] ~", // B A G F# E
  T: "[e4,e5,e6]@2 [b3,b4,b5]@3 ~ b5@4 b6 ~ [a5,a6] ~ [b4,b5,b6]@2, ~@3 [b3,b4]@4 ~, ~@10 b5@4 [g5,g6] ~", // E B A B G
  U: "[e4,e5,e6]@2 [b3,b4,b5]@3 ~ b5@4 b6 ~ [a5,a6] ~ [b3,b4,b5]@2, ~@3 [b3,b4]@4 ~, ~@10 b5@4 [g5,g6] ~", // E B A B G
  V: "[c4,c5,c6]!2 [e4,e5,e6] [g4,g5,g6] [f#4,f#5,f#6]@2 ~ [b3,b4,b5]", // C E G F# B
  W: "[c4,c5,c6]@2 [b4,b5,b6]@3 ~ [a4,a5,a6]@4 ~@4 [b4,b5,b6]@2", // C B A B
  X: "[b4,b5,b6]@2 [a4,a5,a6] ~ [a4,a5,a6]@2 [g4,g5,g6] ~ [g4,g5,g6]@2 [f#4,f#5,f#6] ~ [g4,g5,g6]@2 [a4,a5,a6] ~", // B A G F# G A
  Y: "[b4,b5,b6]@2 [e4,e5,e6]@3 ~ [e4,e5,e6]@8 [e4,e5,e6]@2", // B E
  Z: "[[c5,c6,c7]@4 [b4,b5,b6]@4 [a4,a5,a6]@2 [g4,g5,g6]@3 ~ [a4,a5,a6]@12 ~@4 [b4,b5,b6] ~]/2", // C B A G A B
  AA: "[c5,c6,c7] ~ [b4,b5,b6] ~ [a4,a5,a6] ~ [g4,g5,g6] ~ [a4,d5,f#5,a5,a6] ~ [a4,d5,f#5,a5,a6] ~@3 [g4,g5,g6] ~, [g4,e5] ~@3", // C B A G D G C
  AB: "~@4 [e5,g5] ~@3 [b4,d5,g5]@6 ~@2, ~@2 c5 ~@5", AC: "[g4,c5,e5] ~@3",
  AD: "[g4,b4,d5]@2 [g5,g6] ~ [b5,b6] ~ [d6,d7] ~ [g6,g7] ~@7", // G B D G
})).s("gm_string_ensemble_1").gain(0.24).pan(0.3)

// chords · orchestra hit · G Em Am D5 F#m
const orchestra_hit = note(`<
  ~@3
  [[g5,b5,d6] g6 ~@14]
  [[e5,g5,b5] e6 ~@14]
  [[a5,c6,e6] a6 ~@14]
  [[a4,d5] [f#5,a5] ~@14]
  ~@82
>`).s("gm_orchestra_hit").gain(0.32).pan(0.7)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  ~ A@2 B C D E B C B C F G B C H E F I B C B C F G B C H E F J K@2 L B E M N E B C B C F G B C H E F I B C B C F G B C
  H E F J K@2 L B E M N E B C B C F G B C H E F O D E P@2 F Q
>`.pickRestart({
  A: "g4!16", B: "[d5,g5,b5] ~ [d5,g5,b5]!2 ~@2 [d5,g5,b5] ~@3 [d5,g5,b5] ~@2 [d5,g5,b5] ~@2",
  C: "[e5,g5,b5] ~ [e5,g5,b5]!2 ~@2 [e5,g5,b5] ~@3 [e5,g5,b5] ~@2 [e5,g5,b5] ~@2", // Em
  D: "[c5,e5,a5] ~ [c5,e5,a5]!2 ~@2 [c5,e5,a5] ~@3 [c5,e5,a5] ~@2 [c5,e5,a5] ~@2", // Am
  E: "[d5,f#5,a5] ~ [d5,f#5,a5]!2 ~@2 [d5,f#5,a5] ~@3 [d5,f#5,a5] ~@2 [d5,f#5,a5] ~@2", // D
  F: "[c5,e5,g5] ~ [c5,e5,g5]!2 ~@2 [c5,e5,g5] ~@3 [d5,f#5,a5] ~@2 [d5,f#5,a5] ~@2", // C D
  G: "[c5,e5,a5] ~ [c5,e5,a5]!2 ~@2 [c5,e5,a5] ~@3 [d5,f#5,a5] ~@2 [d5,f#5,a5] ~@2", // Am D
  H: "[c5,e5,a5] ~ [c5,e5,a5]!2 ~@2 [c5,e5,a5] ~@3 [c5,e5,g5] ~@2 [c5,e5,g5] ~@2", // Am C
  I: "[d5,g5,b5] ~ [d5,g5,b5]!2 ~@2 [e5,g5,c6] ~@3 [d5,f#5,a5] ~@2 [d5,f#5,a5] ~@2", // G C D
  J: "[d5,g5,b5] ~ [d5,g5,b5]!2 [e5,g5,c6] ~@3 [d5,g5,b5] ~@7", // G C G
  K: "[d#5,g5,a#5] ~ [d#5,g5,a#5]!2 ~@2 [d#5,g5,a#5] ~@3 [d#5,g5,a#5] ~@2 [d#5,g5,a#5] ~@2", // D#
  L: "[d5,g5,b5] ~ [d5,g5,b5]!2 ~@2 [d5,g5,b5] ~@3 [e5,g5,c6] ~@2 [e5,g5,c6] ~@2", // G C
  M: "[d5,f#5,a5] ~ [d5,f#5,a5]!2 ~@2 [d5,f#5,a5] ~@3 [d5,f#5,b5] ~@2 [d5,f#5,b5] ~@2", // D Bm
  N: "[b4,e5,g5] ~ [b4,e5,g5]!2 ~@2 [b4,e5,g5] ~@3 [c#5,e5,a5] ~@2 [c#5,e5,a5] ~@2", // Em A
  O: "[d5,g5,b5] ~ [d5,g5,b5]!2 ~@2 [e5,g5,c6] ~@3 [d5,g5,b5] ~@2 [d5,g5,b5] ~@2", // G C G
  P: "[c5,e5,g5] ~ [c5,e5,g5]!2 ~@2 [c5,e5,g5] ~@3 [c5,e5,g5] ~@2 [c5,e5,g5] ~@2", // C
  Q: "[d5,g5,b5] ~ [d5,g5,b5]!2 ~@2 [e5,g5,c6] ~ [d5,g5,b5] ~@7", // G C G
})).s("gm_electric_guitar_muted").gain(0.19).pan(0.8)

// chords · harpsichord
const harpsichord = note(`<
  ~@3 A B C D E F G F H I J B K L H M N B A F O P J Q R S T U V@2 W J X Y Z D A B G B T P AA F AB AC AD M J AE J F AF AG
  J AH R L AI U V AJ AK J AL Y Z D AM F J F T P J Q R D T U AN D AO@2 AP AQ
>`.pickRestart({
  A: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [b4,d5] ~, ~@7 g4", // G Bm
  B: "[e4,g4,b4] ~@2 [e4,g4,b4] ~@2 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [g4,b4] ~, ~@7 e4", // Em G
  C: "[e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~", // Am
  D: "[f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~", // D
  E: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@3 [b4,d5] ~@3 [b4,d5] ~, ~@5 g4 ~ g4", // G Bm
  F: "[e4,g4,b4] ~@2 [e4,g4,b4] ~@2 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~", // Em
  G: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4]@2, ~@14 d5 ~", // G
  H: "[e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [e4,g4,c5] ~@3 [f#4,a4,d5] ~@3 [f#4,d5] ~, ~@7 a4", // C D
  I: "[e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4]@2 ~@2 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~, ~@6 c5 ~@9", // Am A5 D
  J: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~", // G
  K: "[e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3 [g4,c5] ~@3 [e4,g4,c5] ~, ~@5 e4 ~@2", // Am C5 C
  L: "[f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~@3 [f#4,d5] ~, ~@7 a4", // D
  M: "[g4,b4,d5] ~@3 [g4,c5,e5] ~@3 [a4,d5,f#5]@6 ~@2", // G C D
  N: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,d5] ~@3 [b4,d5] ~@3 [g4,b4,d5] ~, ~@3 b4 ~ g4 ~@2", // G G5 Bm G
  O: "[e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [g4,c5] ~@3 [f#4,a4,d5] ~@3 [f#4,a4]@2, ~@6 e4@2 ~@6 d5 ~", // C C5 D F#m
  P: "[e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~", // Am D
  Q: "[e4,g4,b4] ~@2 [e4,g4,b4] ~@2 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4]@2, ~@14 b4 ~", // Em
  R: "[e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~", // Am C
  S: "[f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~@3 [f#4,a4]@2, ~@14 d5 ~", // D F#m
  T: "[e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [e4,g4,c5] ~@3 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~", // C D
  U: "[g4,b4,d5] ~@3 [g4,c5,e5] ~@3 [g4,b4,d5]@6 ~@2", // G C G
  V: "[d#4,g4,a#4] ~@2 [d#4,g4,a#4] ~@2 [d#4,g4,a#4] ~@3 [d#4,g4,a#4] ~@3 [d#4,g4,a#4] ~", // D#
  W: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@3 [g4,c5,e5] ~@3 [g4,c5]@2, ~@14 e5 ~", // G C C5
  X: "[f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@3 [f#4,a4]@2 ~@2 [a4,d5] ~, ~@10 d5 ~@3 f#4@2", // D F#m D5
  Y: "[f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@3 [f#4,b4,d5] ~@3 [f#4,b4,d5] ~", // D Bm
  Z: "[g4,b4,e5] ~@2 [g4,b4,e5] ~@2 [g4,b4,e5] ~@3 [e4,a4,c#5] ~@3 [e4,a4,c#5] ~", // Em A
  AA: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@3 [g4,b4,d5]@2 ~@2 [g4,b4,d5] ~", // G
  AB: "[e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3 [e4,g4,c5] ~@3 [e4,c5] ~, ~@7 g4", // Am C
  AC: "[f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [a4,d5] ~@3 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~, ~@3 f#4 ~@4", // D D5 D
  AD: "[e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [e4,g4,c5] ~@3 [a4,d5] ~@3 [f#4,a4]@2, ~@10 f#4@2 ~@2 d5 ~", // C D5 F#m
  AE: "[e4,g4,b4] ~@2 [e4,g4,b4] ~@2 [e4,b4]@2 ~@2 [e4,g4,b4] ~@3 [e4,g4,b4] ~, ~@6 g4 ~@9", // Em E5 Em
  AF: "[e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [e4,g4,c5] ~@3 [f#4,a4,d5] ~@3 [f#4,d5]@2, ~@14 a4 ~", // C D
  AG: "[e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,c5] ~@3 [a4,d5] ~@3 [f#4,d5] ~, ~@3 a4 ~ f#4 ~ a4", // Am C D5 D
  AH: "[e4,g4,b4] ~@2 [e4,g4,b4] ~@2 [e4,g4]@2 ~@2 [e4,g4,b4] ~@3 [e4,g4,b4] ~, ~@6 b4 ~@9", // Em
  AI: "[e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [g4,c5]@2 ~@2 [f#4,a4,d5] ~@3 [f#4,d5] ~, ~@6 e4 ~@7 a4@2", // C C5 D
  AJ: "[d#4,g4,a#4] ~@2 [d#4,g4,a#4] ~@2 [d#4,g4,a#4] ~@3 [d#4,g4,a#4] ~@3 [g4,a#4] ~, ~@7 d#4", // D# Gm
  AK: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4]@2 ~@2 [g4,c5,e5] ~@3 [g4,e5] ~, ~@6 d5 ~@7 c5@2", // G C
  AL: "[f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@3 [f#4,d5] ~@3 [a4,d5] ~, ~@5 a4 ~ f#4", // D D5
  AM: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@3 [g4,b4]@2 ~@2 [g4,b4,d5] ~, ~@10 d5 ~@5", // G
  AN: "[e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4]@2, ~@6 e4@2 ~@6 c5 ~", // Am A5
  AO: "[e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [e4,g4,c5] ~ [e4,g4,c5]@8", // C
  AP: "[e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [e4,g4,c5] ~@3 [f#4,a4]@2 ~@2 [f#4,a4]@2, ~@10 d5 ~@3 d5 ~", // C F#m
  AQ: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~ [g4,b4,d5] ~@7", // G
})).s("gm_harpsichord").gain(0.11).pan(0.2)

// chords · epiano2
const epiano2 = note(`<
  ~@3 A B C D A B A B E F A B G H E I A B A B E F A B G H E J K@2 L A M@2 N H A B A B E F A B G H E I A B A B E F A B G
  H E J O@2 L A D P N H A B A B E F A B G H E J C H Q@2 E R
>`.pickRestart({
  A: "[d4,g4,b4]", B: "[e4,g4,b4]", C: "[e4,a4,c5]", D: "[d4,f#4,a4]", E: "[e4,g4,c5] [f#4,a4,d5]",
  F: "[e4,a4,c5] [f#4,a4,d5]", G: "[e4,a4,c5] [e4,g4,c5]", H: "[f#4,a4,d5]", I: "[d4,g4,b4] [e4,g4,c5] [f#4,a4,d5]@2",
  J: "[d4,g4,b4] [e4,g4,c5] [d4,g4,b4]@2", K: "[~ [g4,a#4,d#5], [d#4,g4,a#4] ~, ~@5 d#5@3 ~@8, ~@3 g5@5, ~@7 a#5@9]/2",
  L: "[d4,g4,b4] [e4,g4,c5]", // G C
  M: "[~@2 [f#4,a4,d5] [d4,f#4,b4], [d4,f#4,a4] ~, ~@5 d5@3 ~@8, ~@3 f#5@3 ~@2, ~@7 a5@5 ~@4]/2", // D Bm D
  N: "[e4,g4,b4] [e4,a4,c#5]", O: "[d#4,g4,a#4]", P: "[d4,f#4,a4] [d4,f#4,b4]", Q: "[e4,g4,c5]", R: "[d4,g4,b4] ~",
})).s("gm_epiano2").gain(0.18).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~ [x!4]!2 [x!2]!85 [x!3 ~]>").gain(0.8)

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

// drums · hihat
const hihat = s("hh").struct("<[x!4] [~ x ~ x ~ x ~ x]!2 [x!16]!85 [x!9 ~@7]>").gain(0.4)

// drums · crash
const crash = s("cr").struct(`<
  ~@3 A ~@3 A ~@8 B A C A ~@8 B A C A ~@3 A ~@3 A ~@8 B A C A ~@8 B A C A ~@3 A ~@3 A ~@8 B A C ~@5 D
>`.pickRestart({
  A: "x", B: "~ x ~@2", C: "~ x!2 ~", D: "~ x",
})).gain(0.4)

// drums · shaker
const shaker = s("sh").struct("<~ [x!16]!87 [x!9 ~@7]>").gain(0.56)

stack(
  bass, string_ensemble_1, orchestra_hit, electric_guitar_muted, harpsichord, epiano2, kick, snare, hihat, crash, shaker
)

More by Bay City Rollers