Strudelify
I'm Your Boogie Man cover art

1976 · KC and the Sunshine Band, Pt. 3...And More

I'm Your Boogie Man

KC and The Sunshine Band

KeyG minorTempo120 bpm
0:00/0:00
// I'm Your Boogie Man — KC and The Sunshine Band
// 120 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 97 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: The whole transcription plays 56 ms ahead of the beat; the grid follows it, so its parts stay together.
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, A@4 for four bars: edit a riff to change every repeat.

// bass · slap bass 1 · "SLAP BASS"
const bass = note(`<
  A B C D E F G H@8 I@8 J@2 K L M L M N M L M O@8 P@8 Q K L M L M L M L M O@8 P@8 Q K R@8 S@8 T@3
>`.pickRestart({
  A: "~ [ab2,gb3] ab2 [ab2,gb3]!3 ab2 [ab2,gb3] [ab2,c4] [ab2,gb3,c4] ab2 [ab2,gb3]!2 [ab2,gb3,d4] ~@2, ~ c4@2 ~@2 d4@2 ~@9", // Ab7 Ab Ab7 Abm7b5
  B: "~ g3@5 ~ g3!2 ~@7", C: "~ g3@5 ~ g3!2 ~@2 g3@5", D: "~ g3@5 ~ g3!2 ~@2 f2 ~@2 f2 gb2", E: "~ g2@7 g3!2 ~@6",
  F: "~ g3@6 ~ g3!2 ~@5 f3", G: "gb3 g3@15",
  H: "[~ g2@4 ~ g2 g3!2 ~@4 bb3@2 g3@2 g2@4 bb2@4 c3@3 d3 ~ c3 bb2@2 g2@4 bb2@4 c3@3 d3 ~ c3 bb2@2 g2@4 bb2@4 c3@3 d3 ~ c3 bb2@2 g2@4 bb2@4 c3@3 d3 ~ c3 bb2@2 g2@4 bb2@4 c3@3 d3 ~ c3 bb2@2 g2@4 bb2@4 c3@3 d3 ~ c3 bb2@2 g2@4 bb2@4 c3@3 d3 ~ c3 bb2]/8",
  I: "[~ g2@4 bb2@4 c3@3 d3 ~ c3 bb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@2 g3 ~ bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2]/8",
  J: "[~ g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 eb3!2 ~ eb3!2 ~ eb3!2 ~ eb3!2 ~ eb3@3]/2", K: "~ f2@2 ~@13",
  L: "~ g2@2 ~@5 g2 g2@2 ~@5", M: "~ g2@2 ~@3 bb2 b2@2 c3@2 ~@2 c3 bb2@2", N: "~ g2@2 ~@5 g2 g2@3 ~@4",
  O: "[~ g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2]/8",
  P: "[~ g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@2 g3 ~ bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2]/8",
  Q: "~ eb3!2 ~ eb3!2 ~ eb3!2 ~ eb3!2 ~ eb3@3",
  R: "[~ g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@3 bb2 f2@2 gb2@2 g2@4 bb2@4 c3@2 bb2@2 f2@2 gb2@2 g2@4 bb2@4 c3@2 bb2@2 f2@2 gb2@2 g2@4 bb2@4 c3 f2@2 ~ f2@2 gb2]/8",
  S: "[~ g2@4 bb2@4 c3 f2@2 ~ f2@2 gb2@2 g2@4 bb2@4 c3 f2@2 ~ f2@2 gb2@2 g2@4 bb2@4 c3@2 bb2@2 f2@2 gb2@2 g2@4 bb2@4 c3@2 bb2@2 f2@2 gb2@2 g2@4 bb2@4 c3 f2@2 ~ f2@2 gb2@2 g2@4 bb2@4 c3 f2@2 ~ f2@2 gb2@2 g2@4 bb2@4 c3 f2@2 ~ f2@2 gb2@2 g2@4 bb2@4 c3 f2@2 ~ f2@2 gb2]/8",
  T: "[~ g2@4 bb2@4 c3 f2@2 ~ f2@2 gb2@2 g2@3 bb2@2 c3@3 db3@2 ~ d3@3 d3@2 g2@2 ~@13]/3",
})).s("gm_slap_bass_1").gain(0.56)

// chords · brass section · "BRASS"
const brass_section = note(`<
  ~@8 A@2 B C D E F G H@8 I J K L M L N O P L A@2 B@2 E@2 Q R H@8 I S K L M L N O T L U@4 V@4 H@8 I W ~@5 X@7 H@5 Y Z
>`.pickRestart({
  A: "~ [g2,g3]@14 ~", B: "~ [g3,bb3]@15", C: "~ [g2,bb3]@15", D: "~ [g2,d4]@15", E: "~ [bb3,d4]@15",
  F: "~ [bb3,g4]@15", G: "~ g4@15", H: "~ [d5,g5] ~ [d5,g5] ~ [d5,f5] ~@3 [c5,e5]@3 [d5,f5] ~ [d5,f5]!2",
  I: "~ [eb5,g5]!2 ~ [eb5,g5]!2 ~ [eb5,g5]!2 ~ [eb5,g5] ~@2 [eb5,g5]@3", J: "~ [f5,a5]@2 ~@13",
  K: "~@5 g5 a4 [b3,c4,d4,e4,f4,g4] a3 ~@4 [bb4,g5] [g4,a4] [d4,e4,f4], ~@5 [bb4,d5]@2 ~@6 d5@2 ~", // Cmaj7 Eb Gsus2 Dm Bb
  L: "~ [g4,bb4]!2 ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] [g4,c5]@3 ~ [g4,c5] [g4,bb4]@2", // Gm C5 Gm
  M: "~@5 g5 a4 [d4,e4,f4,g4] c4 ~@4 [bb4,d5,g5] a4 [d4,e4,f4,g4], ~@5 [bb4,d5]@2 ~@9", // Em7 Gm Em7 Bb
  N: "~@5 [d5,g5] a4 [c4,d4,e4,f4,g4] [a3,b3] ~@4 [bb4,d5,g5] a4 [d4,e4,f4,g4], ~@5 bb4@2 ~@9", // G5 C Asus2 Gm Em7
  O: "~ [g4,bb4]!2 ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] [g4,c5]@3 ~ [g4,c5] [g4,bb4]@2, ~@14 c5 ~", // Gm C5 Gm
  P: "~@5 [bb4,d5,g5] a4 [c4,d4,e4,f4,g4] ~@5 [bb4,d5,g5] a4 [d4,e4,f4,g4]", Q: "~ [d4,g4]@15", R: "~ d4@15",
  S: "~ [f5,a5] ~@14", T: "~@5 [bb4,d5,g5] a4 [c4,d4,e4,f4,g4] ~@5 [bb4,d5] a4 [d4,e4,f4,g4], ~@13 g5@2 ~",
  U: "~ g4@3 bb4@3 c5@3 d5@3 c5 ~ bb4", V: "~ [g4,g5]@3 [bb4,bb5]@3 [c5,c6]@3 [d5,d6]@3 [c5,c6] ~ [bb4,bb5]",
  W: "~ [c5,f5,a5]@2 ~@13", X: "~ g4@4 bb4@4 c5@3 d5@2 c5 bb4",
  Y: "~ [g3,g4,g5]@3 [bb3,bb4,bb5]@2 [c4,c5,c6]@3 [db4,db5,db6]@2 ~ [d5,d6]@2 [d4,gb4,a4,c5,f5,f6]@2, ~@11 d4@2 ~@3", // G Bb C Db D D7
  Z: "~ [d4,g4,a4,c5,f5,g5] ~@14, ~ g6@2 ~@13", // Dm7
})).s("gm_brass_section").gain(0.41)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B C D E F G H I J@7 K L M N O M P Q R S T U V W X Y Z AA AB J@7 AC L M N O M P Q R S T U V W X Y Z AA AB J@7 AC L M
  N O M P Q R S AD AE AF AG AH AI AE AF AG AH AJ AE AF AG AH AJ AE AK AL
>`.pickRestart({
  A: "~ [g4,bb4] bb4!2 [bb4,d5] [g4,bb4,d5] [bb4,d5] ~ [g4,bb4,d5] ~@4 [c5,e5] [bb4,d5] ~", // Gm Bb Gm Bb Gm C Bb
  B: "~ [g4,bb4] bb4 [bb4,d5]!4 ~ [g4,bb4,d5] ~ d5 ~@2 g5 ~@2", // Gm Bb Gm
  C: "~ [g4,bb4] bb4!2 [g4,bb4] bb4 [g4,bb4] bb4 [g4,bb4] ~ [g4,bb4,d5] ~@2 [g4,c5] ~@2", // Gm C5
  D: "~ [g4,bb4]!5 bb4 [g4,bb4,d5]!2 ~ [g4,bb4,d5] ~@2 g5 ~@2", // Gm
  E: "~ [g4,bb4] bb4!2 [g4,bb4]!2 bb4 [bb4,d5]!2 ~ [c5,e5] ~@2 [c5,e5]@2 [bb4,d5]", // Gm Bb C Bb
  F: "~ [g4,bb4] bb4 [g4,bb4]!3 bb4 [g4,bb4,d5]!2 ~ [g4,bb4,d5] ~@2 [g4,bb4,d5] ~@2", // Gm
  G: "~@2 [g4,bb4]!7 ~ [g4,bb4,d5] ~@2 [g4,bb4,d5]!2 ~", H: "~ g4!2 f4!2 g4!2 f4!2 g4!2 f4!2 g4!2 f4",
  I: "f4 [d5,g5]!3 d5 [d5,g5]!3 d5 [d5,g5]!4 ~ [d5,g5]!2", J: "~ [d5,g5]!3 d5 [d5,g5]!3 d5 [d5,g5]!4 ~ [d5,g5]!2",
  K: "~ [bb4,d5] ~@2 [bb4,d5]!2 d5 [bb4,d5] [c5,e5] ~ [c5,e5] ~ d5 e5 ~@2", // Bb C
  L: "~ [bb4,d5]!2 ~@2 [bb4,d5] ~ [bb4,d5] [c5,e5] ~ [c5,e5] ~ d5 e5 ~@2", // Bb C
  M: "~ [bb4,d5]!3 d5 [bb4,d5] d5 [bb4,d5] [c5,e5] ~ [c5,e5] ~ d5 e5 ~@2", // Bb C
  N: "~ [bb4,d5]!2 ~ bb4 [bb4,d5] d5 [bb4,d5] [c5,e5] ~ [c5,e5] ~ d5 e5 ~@2", // Bb C
  O: "~ [bb4,d5]!2 d5 [bb4,d5]!2 d5 [bb4,d5] [c5,e5] ~ [c5,e5] ~ d5 e5 ~@2", // Bb C
  P: "~ [bb4,d5]!2 d5 ~ [bb4,d5] d5 [bb4,d5] [c5,e5] ~ [c5,e5] ~ d5 e5 ~@2", // Bb C
  Q: "~ [bb4,d5] d5!2 [bb4,d5]!2 d5 [bb4,d5] [c5,e5] ~ [c5,e5] ~ d5 e5 ~@2", // Bb C
  R: "~ [eb5,g5]!2 ~ [eb5,g5]!2 ~ [eb5,g5]!2 ~ [eb5,g5]!2 ~ [eb5,g5]@3", S: "~ [f5,a5]@2 ~@13",
  T: "~ [d5,g5]!11 d5 [d5,g5] d5!2", U: "[d5,g5]!3 ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] [e5,g5] e5 [e5,g5]!3 e5!2",
  V: "e5 [d5,g5] d5!2 [d5,g5]!2 d5!2 [d5,g5]!2 d5 [d5,g5]!3 d5!2", // G5
  W: "d5 [d5,g5]!2 ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] [e5,g5]!4 [d5,e5,g5] e5 [e5,g5]", // G5 Em Em7 Em
  X: "e5 [d5,g5] d5 [d5,g5] ~ [d5,g5]!5 d5 [d5,g5]!3 d5 [d5,g5]", // G5
  Y: "[d5,g5]!3 ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] [e5,g5]!7", Z: "e5 [d5,g5]!9 d5 [d5,g5] g5 [d5,g5]!3",
  AA: "[d5,g5]!3 ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] [e5,g5] e5 [e5,g5]!5", // G5 Em
  AB: "[e5,g5] [d5,g5]!3 d5 [d5,g5]!3 d5 [d5,g5]!4 ~ [d5,g5]!2", // Em G5
  AC: "~ d5 ~@2 [bb4,d5]!2 d5 [bb4,d5] [c5,e5] ~ [c5,e5] ~ d5 e5 ~@2", // Bb C
  AD: "~ [g4,bb4,d5] bb4!2 [bb4,d5]!4 [c5,e5] c5 [c5,e5] c5 [bb4,d5] [c5,e5]!3", // Gm Bb C Bb C
  AE: "[c5,e5] [bb4,d5] d5!2 [bb4,d5]!4 [c5,e5]!4 [bb4,d5] [c5,e5]!3", // C Bb C Bb C
  AF: "[c5,e5] [bb4,d5]!3 d5 [bb4,d5]!2 d5 [c5,e5] ~ [c5,e5] c5 [bb4,d5] [c5,e5] c5 [c5,e5]", // C Bb C Bb C
  AG: "c5 [bb4,d5]!5 d5 [bb4,d5] [c5,e5] c5 [c5,e5] c5 [bb4,d5] [c5,e5] c5 [c5,e5]", // Bb C Bb C
  AH: "[c5,e5] [bb4,d5] d5!3 [bb4,d5]!3 [c5,e5] c5 [c5,e5] c5 [bb4,d5] [c5,e5]!3", // C Bb C Bb C
  AI: "[c5,e5] [g4,bb4,d5] bb4!2 [bb4,d5]!4 [c5,e5] c5 [c5,e5] c5 [bb4,d5] [c5,e5]!3", // C Gm Bb C Bb C
  AJ: "[c5,e5] [bb4,d5] bb4!2 [bb4,d5]!4 [c5,e5] c5 [c5,e5] c5 [bb4,d5] [c5,e5]!3", // C Bb C Bb C
  AK: "[c5,e5] g5@3 bb5@2 c6@3 db6@3 d6@2 [c6,d6,f6]@2", AL: "~ [bb5,d6,g6]@2 ~@13",
})).s("gm_electric_guitar_muted").gain(0.26)

// chords · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  A B C D E F G ~ H@8 I J K L M N O P ~@2 Q R S T U ~ V W H@8 I J K L M N O P ~@2 Q R S T U ~ V W H@8 I J K L M N O P
  ~@2 X Y Z AA AB X Y Z AA AB X Y Z AA AB X Y ~@2
>`.pickRestart({
  A: "~@3 g4!2 ~ g4 ~@9", B: "~@2 g4!5 ~@9", C: "~@2 g4!2 ~ g4 ~ g4 ~@8", D: "~@6 g4 ~@9", E: "~@2 g4!2 ~@2 g4 ~@9",
  F: "~@2 g4 ~@3 g4 ~@9", G: "~ [g4,bb4] ~@14", H: "~@4 g5 ~@3 g5 ~@7", I: "~@2 [bb4,d5]!2 ~@2 bb4 ~@9",
  J: "~@3 d5 [bb4,d5] ~ d5 ~@9", K: "~@4 bb4 ~ bb4 ~@9", L: "~@3 d5!2 ~ bb4 ~@9", M: "~@3 bb4 ~@2 bb4 ~@9",
  N: "~@4 bb4 ~@11", O: "~@3 bb4 [bb4,d5] ~@11", P: "~@2 bb4 ~@3 bb4 ~@9", Q: "~@12 g5 ~ g5!2", R: "~@10 g5 ~@3 g5!2",
  S: "g5 ~@2 g5 ~@2 g5!2 ~@2 g5 ~@3 g5!2", T: "g5 ~@13 g5 ~", U: "g5 ~ g5 ~ [d5,g5] ~@5 g5 ~@3 g5 ~",
  V: "g5 ~@9 g5 ~ d5 ~@3", W: "~@10 g5 ~@5", X: "~@2 d5!2 ~@5 e5 ~@6", Y: "~@2 bb4 ~@13",
  Z: "~@4 bb4 ~@4 [c5,e5] ~@4 e5 ~", AA: "~@9 e5 ~@4 e5 ~", AB: "~@2 bb4 ~@8 e5 ~@4",
})).s("gm_electric_guitar_muted").gain(0.13)

// chords · piano · "A.PIANO"
const piano = note(`<
  ~@2 A B@5 C@8 D@2 E D@2 F G@2 H I J K J L J M J K N O P Q R S T U D@2 E D@2 F G@2 V I J K J L J M J K W X Y@2 Z AA Y
  AB D@2 E AC D F G@2 V I AD AE AF AG AD AH@7 D@2 E AC D AI AJ
>`.pickRestart({
  A: "~@13 bb5@3, ~@13 g5 ~@2",
  B: "[~@12 [g6,bb6] c7@2 g6@2 ~@12 [g5,bb5]@6 ~@9 [g6,bb6] c7@2 [g6,bb6]@2 ~@12 [g5,bb5]@19, ~@13 g6 ~ bb6 ~@29 g6 ~@34]/5", // Gm
  C: "~ [g2,g3,g4]@3 ~ [bb2,bb3,bb4]@3 ~ [c3,c4,c5]@2 ~@4 [bb2,bb3,bb4], ~@3 [d3,d4,d5], ~@7 [c3,c4,c5]", // G Bb C Bb D C
  D: "~ [g1,g2,g3,d4,g4]@3 ~ [bb1,bb2,g3,d4,g4]@3 ~ [c2,c3,g3,c4,g4]@3 ~ [f1,a3,d4,f4]@2 [gb1,gb2], ~@13 f2 ~@2", // G5 Gm C5 Dm Gb
  E: "~ [g1,g2,g3,d4,g4]@3 ~ [bb2,g3,d4,g4]@3 ~ [c2,c3,g3,c4,g4]@3 f2 ~ [gb1,gb2] ~, ~@5 bb1 ~@7 [f1,a3,d4,f4]@3", // G5 Gm C5 Gb Dm
  F: "~ [g1,g3,d4,g4]@4 [bb1,bb2,g3,d4,g4]@4 [c2,c3,g3,c4,g4]@3 f2 [f1,a3,d4,f4]@2 [gb1,gb2], ~ g2@2 ~@13", // G5 Gm C5 Dm Gb
  G: "[~ [g1,g2,g3,d4,g4]@3 ~ [bb2,g3,d4,g4]@4 [c2,c3,g3,c4,g4]@3 [a3,d4,f4]@3 gb1@2 [g1,g2,g3,d4,g4]@3 ~ [bb2,g3,d4,g4]@4 [c2,c3,g3,c4,g4]@3 f2 [a3,d4,f4]@2 [gb1,gb2], ~@5 bb1@2 ~@5 f1@2 ~@7 bb1@2 ~@6 f1 ~@2, ~@12 f2 ~@2 gb2 ~@16]/2", // G5 Gm C5 Dm G5 Gm C5 Dm …
  H: "~ [eb2,eb3,eb4,g4,bb4,c5] [eb2,eb3,eb4,g4,bb4,c5]@3 ~ [eb2,eb3,eb4,g4,bb4,c5]@2 ~ [eb2,eb3,eb4,g4,bb4,c5]@3 ~ [eb2,eb3,eb4,g4,bb4,c5]@3", // Cm7
  I: "~ [f2,f3,c4,f4,a4,c5]@2 ~@13", J: "~ [g1,g2,bb3,d4,g4]@2 ~@6 [g1,g2,bb3,d4,g4]@2 ~@5",
  K: "~ [g1,g2,bb3,d4,g4]@2 ~@3 [bb1,bb2] [b1,b2] ~ [c2,c3,c4,e4,g4]@3 ~ [c2,c3,c4,e4] [bb3,d4]@2, ~@13 g4@3, ~@14 [bb1,bb2] ~", // Gm Bb B C Bb
  L: "~ [g1,g2,bb3,d4,g4]@2 ~@3 [bb1,bb2] [b1,b2] ~ [c2,c3,c4,e4,g4]@3 ~ [c2,c3,c4,e4,g4] [bb1,bb3,d4,g4]@2, ~@14 bb2 ~", // Gm Bb B C Gm
  M: "~ [g1,g2,bb3,d4,g4]@2 ~@3 [bb1,bb2] [b1,b2] ~ [c2,c3,c4,e4,g4]@3 ~ [c2,c3,c4,e4] [bb1,bb3,d4]@2, ~@13 g4@3, ~@14 bb2 ~", // Gm Bb B C Bb
  N: "~ [g1,g2,g3,g4]@2 ~ [bb1,bb2,bb3,bb4]@2 ~@5 [d2,d3,d4,d5]@2 [d2,d3,d4,d5]@2 ~, ~@7 [c2,c3,c4,c5]@8 ~", // G Bb D C
  O: "~ [g1,g2,g3,g4]@2 ~ [bb1,bb2,bb3,bb4]@2 ~ [c2,c3,c4,c5]@3 ~@3 [c2,c3,c4,c5]@2 [bb1,bb2,bb3,bb4], ~@11 [d2,d3,d4,d5]@5", // G Bb C Bb D
  P: "~ [g1,g2,g3,g4]@3 [bb1,bb2,bb3,bb4]@2 ~@5 [d2,d3,d4,d5]@2 [d2,d3,d4,d5]@3, ~@7 [c2,c3,c4,c5]@9, ~@5 eb2@3", // G Bb D C
  Q: "~ [g1,g2,g3,g4]@2 ~ [bb1,bb2,bb3,bb4]@2 ~ [c2,c3,c4,c5]@3 ~ [d2,d3,d4,d5]@2 [c2,b2,c3,c4,c5] ~ [bb1,bb2,bb3,bb4]", // G Bb C D Cmaj7 Bb
  R: "~ [g1,g2,g3,g4]@3 [bb1,bb2,bb3] ~@2 [c2,c3,c4,c5]@3 [d2,d3,d4,d5]@3 [d2,d3,d4,d5]@2 ~, ~ f4 ~@2 bb4@2 ~@10", // G Bb C D
  S: "~ [g1,g2,g3,g4]@3 [bb1,bb2,bb3,bb4]@2 ~ [c2,c3,c4,c5]@2 ~@4 [c2,c3,c4,c5]@2 [bb1,bb2,bb3,bb4], ~@10 [d2,d3,d4,d5]@5 ~", // G Bb C Bb D
  T: "~ [g1,g2,g3,g4]@2 bb1 [bb1,bb2,bb3,bb4]@2 ~ [c2,c3,c4,c5]@3 ~ [d2,d3,d4,d5]@2 [d2,d3,d4,d5]@2 ~, ~ bb1 ~@14", // G Bb C D
  U: "~ [g1,g2,g3,g4]@3 [bb1,bb2,bb3,bb4]@2 ~ [c2,c3,c4,c5]@3 ~@3 [c2,c3,c4,c5]@2 [bb1,bb2,bb3,bb4], ~@5 [d2,d3]@2 ~, ~@11 [d4,d5]@4 ~", // G Bb C Bb D
  V: "~ [eb2,eb3,eb4,g4,bb4,c5] [eb2,eb3,eb4,g4,bb4,c5]@4 [eb2,eb3,eb4,g4,bb4,c5]@2 ~ [eb2,eb3,eb4,g4,bb4,c5]@3 ~ [eb2,eb3,eb4,g4,bb4,c5]@3", // Cm7
  W: "~ [g3,d4,g4]@2 ~ [bb1,bb2,g3,d4,g4]@3 [c2,c3,g3,c4,g4]@3 [d2,d3] ~@2 [c2,c3] ~ [bb1,b1,db2,bb2], ~ [g1,g2] ~@8 [g3,d4,g4]@6", // G5 Gm C5 D C Bbm G G5
  X: "~ [g1,g2,g3,d4,g4]@3 [bb1,bb2,g3,d4,g4]@2 ~ [c2,c3]@2 ~ [d2,d3] ~@2 [c2,c3] ~ [bb1,bb2], ~@7 [g3,c4,g4]@9", // G5 Gm C D C Bb C5
  Y: "~ [g1,g2,g3,d4,g4]@3 [bb1,bb2,g3,d4,g4]@2 ~ [c2,c3,g3,c4,g4]@3 [d2,d3]@2 ~ [c2,c3] ~ [bb1,bb2], ~@5 [g3,d4,g4]@3", // G5 Gm C5 D C Bb G5
  Z: "~ g1 bb1 ~ [bb1,bb2,g3,d4,g4]@2 ~ [c2,c3,g3,c4,g4]@3 [d2,d3]@2 ~ [c2,c3] ~ [bb1,bb2], ~ [g2,g3,d4,g4]@2 ~@7 [g3,d4,g4]@6", // Gm C5 D C Bb G5
  AA: "~ [g1,g2,g3,d4,g4]@2 bb1 [bb1,bb2,g3,d4,g4]@2 ~ [c2,c3,g3,c4,g4]@3 [d2,d3]@2 ~ [c2,c3] ~ [bb1,bb2], ~@5 [g3,d4,g4]@3", // G5 Gm C5 D C Bb G5
  AB: "~ [g1,g2,g3,d4,g4]@2 ~ [bb1,bb2,g3,d4,g4]@2 ~ [c2,c3,g3,c4,g4]@3 [g3,d4,g4]@3 [c2,c3] ~ [bb1,bb2], ~@5 d2 ~@2, ~@10 d3 ~@5", // G5 Gm C5 G5 C Bb
  AC: "~ [g1,g2,g3,d4,g4]@3 ~ [bb1,bb2,g3,d4,g4]@4 [c2,c3,g3,c4,g4]@3 ~ [f1,a3,d4,f4]@2 [gb1,gb2], ~@13 f2 ~@2", // G5 Gm C5 Dm Gb
  AD: "~ [g1,g2,g3,d4,g4]@3 [bb1,bb2,g3,d4,g4]@3 [c2,c3,g3,c4,g4]@3 ~ [d2,d3,d4,d5] ~ [d2,d3,d5] ~@2, ~@13 d4@2 ~", // G5 Gm C5 D
  AE: "~ [g1,g2,g3,d4,g4]@2 ~ [bb1,bb2,g3,d4,g4]@2 ~ [c2,c3,g3,c4,g4]@3 ~ [d2,d3]@2 [c2,c3] ~ [bb1,bb2], ~@11 [g3,d4,g4]@5", // G5 Gm C5 D C Bb G5
  AF: "~ [g1,g2,g3,d4,g4]@3 [bb1,bb2,g3,d4,g4]@2 ~ [c2,c3,g3,d4,g4]@3 ~ [d2,d3,d4,d5] ~ [d2,d3,d5] ~@2, ~@13 d4@2 ~", // G5 Gm Csus2 D
  AG: "~ [g1,g2,g3,d4,g4]@2 ~ [bb1,bb2,g3,d4,g4]@3 [c2,c3,g3,c4,g4]@3 ~ [d2,d3] ~ [c2,c3] ~ [bb1,bb2], ~@11 [g3,d4,g4]@5", // G5 Gm C5 D C Bb G5
  AH: "~ [g1,g2,g3,d4,g4]@4 [bb1,bb2,g3,d4,g4]@4 [c2,c3,g3,c4,g4]@3 [d2,d3] ~ [c2,c3] [bb1,bb2], ~@3 [g3,d4,g4]", // G5 Gm C5 D C Bb G5
  AI: "~ [g1,g3,g4]@2 ~ [bb1,bb2,bb3,bb4]@2 [c3,c4,c5]@2 ~ [db2,db3,db4,db5]@2 ~ [d2,d3,d4,d5]@2 [d2,c5,f5]@2, ~ g2 ~@4 c2 ~@7 [d3,gb4] ~", // G Bb C Db D Dm7 D
  AJ: "~ [g1,g2,g4,bb4,d5,g5]@2 ~@13", // Gm
})).s("gm_piano").gain(0.39)

// drums · kick
const kick = s("bd").struct("<[~ x ~@6 x!2 ~@6]!95 [~ x ~@6 x!2 ~@5 x] [~ x ~@14]>").gain(0.4)

// drums · snare
const snare = s("sd").struct("<[~@5 x ~@7 x ~@2]!95 [~@5 x ~@4 x!5 ~] ~>").gain(0.5)

// drums · hihat
const hihat = s("hh").struct("<A B C B D E F A G H@86 I ~>".pickRestart({
  A: "~ x ~ x!3 ~ x ~ x ~ x!3 ~ x", B: "x!6 ~ x!3 ~ x ~ x ~ x", C: "x!2 ~ x!5 ~ x ~ x!3 ~ x",
  D: "x!2 ~ x ~ x!5 ~ x!3 ~ x", E: "x!3 ~ x!2 ~ x!3 ~ x ~ x ~ x", F: "x!2 ~ x!7 ~ x!3 ~ x", G: "~@2 x!3 ~ x!7 ~ x!2",
  H: "x!5 ~ x!7 ~ x!2", I: "x!5 ~ x!3 ~@7",
})).gain(0.25)

// drums · crash
const crash = s("cr").struct("<~@8 [~ x ~@14] ~@87 [~ x ~@14]>").gain(0.35)

// drums · tambourine
const tambourine = s("tb").struct("<[~ x!15] [x!16]!95 x>").gain(0.2)

stack(bass, brass_section, electric_guitar_muted, electric_guitar_muted_2, piano, kick, snare, hihat, crash, tambourine)

More by KC and The Sunshine Band