Strudelify
Gonna Make You Swat (Everybody dance Now) cover art

1990 · Gonna Make You Sweat

Gonna Make You Swat (Everybody dance Now)

C+C Music Factory

KeyB♭ minorTempo113 bpm
0:00/0:00
// Gonna Make You Swat (Everybody dance Now) — C+C Music Factory
// 113 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 9 "Electric Bass" electric bass finger (copy of ch 7 "Synth Bass" synth bass 2)
// note: Full arrangement: all 119 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(113/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 jazz · "Synth Guitar"
const electric_guitar_jazz = note(`<
  ~@27 A B A B A B A B A B A B A B C@4 ~@38 A B A B A B A B A B A B A B A ~@21
>`.pickRestart({
  A: "[db4,f4,db5] ~@2 [eb4,f4,eb5] ~@2 [db4,f4,db5] ~@2 [eb4,f4,eb5] ~@2 [db4,f4,db5] ~ [eb4,f4,eb5] ~", // Db Ebsus2 Db Ebsus2 Db Ebsus2
  B: "[db4,f4,db5] ~@2 [eb4,f4,eb5] ~@2 [db4,f4,db5] ~@2 [eb4,f4,eb5] ~ [db4,f4,db5] ~ [eb4,f4,eb5] ~@2", // Db Ebsus2 Db Ebsus2 Db Ebsus2
  C: "[db4,f4,db5] ~@2 [eb4,f4,eb5] ~@2 [db4,f4,db5] ~@9", // Db Ebsus2 Db
})).s("gm_electric_guitar_jazz").gain(0.2).pan(0.1)

// chords · electric guitar jazz · "Synth Guitar" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@27 A B A B A B A B A B A B A B C@4 ~@38 A B A B A B A B A B A B A B A ~@21
>`.pickRestart({
  A: "~ [db4,f4,db5] ~@2 [eb4,f4,eb5] ~@2 [db4,f4,db5] ~@2 [eb4,f4,eb5] ~@2 [db4,f4,db5] ~ [eb4,f4,eb5]", // Db Ebsus2 Db Ebsus2 Db Ebsus2
  B: "~ [db4,f4,db5] ~@2 [eb4,f4,eb5] ~@2 [db4,f4,db5] ~@2 [eb4,f4,eb5] ~ [db4,f4,db5] ~ [eb4,f4,eb5] ~", // Db Ebsus2 Db Ebsus2 Db Ebsus2
  C: "~ [db4,f4,db5] ~@2 [eb4,f4,eb5] ~@2 [db4,f4,db5] ~@8", // Db Ebsus2 Db
})).s("gm_electric_guitar_jazz").gain(0.08).pan(0.1)

// other · rock organ · "Lead"
const rock_organ = note("<~@95 A B C D ~ E ~ E ~ F ~ G ~@12>".pickRestart({
  A: "~@7 ab4@3 ab4 ~ bb4 ~@3", B: "~@7 f5@2 db5 eb5 ~ db5@4", C: "~@7 bb4", D: "f5 eb5 db5 eb5 f5 ~ bb4@2",
  E: "f5@2 eb5 ~ eb5 ~ db5 ~ f5@3 ~ bb4@4", F: "f5@2 eb5 ~ eb5@2 db5 ~ f5@2 ~@2 bb4@4",
  G: "f5@2 eb5 ~ eb5@2 db5@2 ~@2 ab4!2 ~ ab4@2 ~",
})).s("gm_rock_organ").gain(0.57)

// chords · overdriven guitar · "Guitar"
const overdriven_guitar = note("<~@3 A@16 ~@12 A@8 B C B D B@2 A@8 E@4 ~@8 A@18 ~@4 A@11 ~@9 A@8 B ~@3>".pickRestart({
  A: "[bb1,bb2,f3] ~@5 [bb1,bb2,f3] ~@3 [f1,f2,c3] ~@2 [ab1,ab2,eb3] ~@2", B: "[bb1,bb2,f3] ~@15",
  C: "~@10 [f1,f2,c3] ~@2 [ab1,ab2,eb3] ~@2", D: "[bb1,bb2,f3] ~@9 [f1,f2,c3] ~@2 [ab1,ab2,eb3] ~@2",
  E: "[bb1,bb2,f3] ~ [bb1,bb2,f3] ~@3 [bb1,bb2,f3] ~ [bb1,bb2,f3] ~ [f1,f2,c3] ~ [f1,f2,c3] [ab1,ab2,eb3] ~ [ab1,ab2,eb3]", // Bb5 F5 Ab5
})).s("gm_overdriven_guitar").gain(0.48).pan(0.9)

// other · woodblock
const woodblock = note("<~@7 A@4 B C B C B C B C A@4 B C B C ~@22 B C B C ~@16 B C ~@48>".pickRestart({
  A: "bb6!3 f6 ~@2 f6 bb5 ~ f6 bb5 ~ db7!2 ~@2", B: "ab3 a3 bb3 ab2 ab3 a3 bb3 ab2 ab3 a3 bb3 ab2 ab3 a3 bb3 ab2",
  C: "ab3 a3 bb3 ab2 ab3 a3 bb3 ab2 ab3 a3 bb3 ab2 db4!2 ~ ab2",
})).s("gm_woodblock").gain(0.32).pan(0.1)

// bass · synth bass 2 · "Synth Bass"
const bass = note("<~@19 A@54 ~@6 A@19 ~ B ~ B ~ B ~ B ~ A@8 C ~@3>".pickRestart({
  A: "bb1 ~@5 bb1 ~@3 f1 ~@2 ab1 ~@2", B: "f2 ~@7", C: "bb1 ~@15",
})).s("gm_synth_bass_2").gain(0.54).pan(0.4)

// bass · synth bass 2 · "Synth Bass" · soft notes
const bass_soft = note("<~@15 [bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~]!4 ~@100>")
  .s("gm_synth_bass_2").gain(0.24).pan(0.4)

// other · brass section
const brass_section = note(`<
  ~@7 A ~@11 B C D E B C B F ~@8 G ~@9 H@8 ~@4 I ~@7 A ~@3 A ~@5 A ~@15 J B H@5 ~ K ~ K ~ K ~ K ~ H@8 G ~@3
>`.pickRestart({
  A: "[ab3,c4,f4]@3 ~@13", B: "[bb4,bb5] ~@3 [ab4,ab5] ~@2 [bb4,bb5] ~@2 [db5,db6]@2 [bb4,bb5]@2 [db5,db6]@2",
  C: "[bb4,bb5] ~@3 [ab4,ab5] ~@2 [bb4,bb5] ~@2 [db5,db6]!2 [bb4,bb5]@2 [db5,db6]@2", // Bb Ab Bb Db Bb Db
  D: "[bb4,bb5] ~@3 [ab4,ab5] ~@2 [bb4,bb5] ~@6 [ab4,ab5] ~", E: "~@4 [ab4,ab5] ~@2 [bb4,bb5] ~@8",
  F: "[bb4,bb5]@2 [f4,f5] [ab4,ab5]", G: "[bb4,bb5] ~@7", H: "[bb4,bb5] ~@5 [bb4,bb5] ~@3 [f4,f5] ~@2 [ab4,ab5] ~@2",
  I: "[f4,bb4,f5]@3 ~@13", J: "[bb4,bb5] ~@15", K: "[f3,c4,f4]@3 ~@13",
})).s("gm_brass_section").gain(0.45).pan(0.6)

// other · brass section · soft notes · Gbsus2 Db Bbsus2 Gbsus2 Db Bbsus2
const brass_section_soft = note(`<
  ~@35
  [~@2 [gb4,ab4,gb5,ab5] [db4,eb4,f4,db5,eb5,f5] [bb3,c4,bb4,c5] ~@11]
  ~@79
  [~@2 [gb4,ab4,gb5,ab5] [db4,eb4,f4,db5,eb5,f5] [bb3,c4,bb4,c5] ~@11]
  ~@3
>`).s("gm_brass_section").gain(0.25).pan(0.6)

// other · synth strings 2 · "Strings"
const synth_strings_2 = note("<~@11 A@8 ~@16 B@2 C@2 D@2 B@2 E@2 F@2 E@2 F@2 E@2 ~@16 G@4 ~@46>".pickRestart({
  A: "bb5/8", B: "bb5/2", C: "bb4/2", D: "[bb5@7 ab5]/2", E: "[bb4@26 bb4 [db5,eb5] f5 eb5 [db5,eb5] f5]/2",
  F: "[bb5@28 ab5 f5 [eb5,e5] db5]/2", G: "[~ db5@7]/4",
})).s("gm_synth_strings_2").gain(0.33).pan(0.8)

// other · alto sax · "Sax"
const alto_sax = note("<~@61 A B A B ~@12 C D E@4 ~@16 F ~ F ~ F ~ F ~@9 G ~@3>".pickRestart({
  A: "~@2 bb2 ~@2 bb2 ~@2 bb2 ~ bb3 bb2 ~@4", B: "~@2 bb3 ~ bb4 bb3 ~@2 bb3 ~ bb4 bb3 ~@4",
  C: "[c4,eb4] [db4,f4] ~ [db4,f4] ~ [c4,eb4] ~@10", D: "[c4,eb4] [db4,f4] ~ [db4,f4] ~ [c4,eb4] ~ [db4,f4,ab4] ~@8",
  E: "c5 db5 c5 db5 c5 db5 c5 db5 c5 db5 c5 db5 c5 db5 c5 db5", F: "[f3,f4]@3 ~@13", G: "[bb3,f4,bb4]@3 ~@13",
})).s("gm_alto_sax").gain(0.5).pan(0.2)

// other · alto sax · "Sax" · soft notes
const alto_sax_soft = note("<~@61 A B A B ~@34 C ~ C ~ C ~ C ~@13>".pickRestart({
  A: "~@3 bb2 ~@2 bb2 ~@2 bb2 ~ bb3 bb2 ~@3", B: "~@3 bb3 ~ bb4 bb3 ~@2 bb3 ~ bb4 bb3 ~@3", C: "ab3@3 ~@13",
})).s("gm_alto_sax").gain(0.21).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~@7 A@46 ~@2 B@2 A@16 B@2 A@2 B C A@19 ~ C D B C@2 D B E A@8 F ~@3>".pickRestart({
  A: "x!2 ~ x ~@6 x ~@2 x ~@2", B: "x ~@8 x!2 ~@2 x ~@2", C: "x ~@8 x!2 ~@3 x ~", D: "x ~@8 x!2 ~@5", E: "x ~@4 x ~@2",
  F: "x",
})).gain(0.48)

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

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@10 A ~@3 B ~@3 C ~@3 D ~@3 A ~@7 E ~@9 A ~@3 F ~@7 G ~@7 H ~@7 I ~@9 J ~@31 K ~@4
>`.pickRestart({
  A: "~@3 x", B: "~@5 x!2 ~", C: "~@12 x!3 ~", D: "~@10 x ~ x!2 ~@2", E: "~@7 x ~@2 x ~ x ~@3", F: "~@12 x ~ x!2",
  G: "~@3 x ~@4", H: "~@11 x ~@4", I: "~@9 x ~@2 x ~@3", J: "~@12 x!4", K: "~@8 x!4 ~@4",
})).gain(0.54)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@7 A@46 ~@2 B@2 A@16 B@2 A@2 B@2 A@19 ~ B@7 C A@8 ~@4>".pickRestart({
  A: "x!4 ~@2 x!2 ~@2 x!2 ~@4", B: "x!8", C: "x!2 ~@6",
})).gain(0.48)

// drums · pedal hat · soft notes
const pedal_hat_soft = s("hh").struct("<~@7 A@46 ~@4 A@16 ~@2 A@2 ~@2 A@19 ~@9 A@8 ~@4>".pickRestart({
  A: "~@5 x ~@3 x ~@3 x ~@2",
})).gain(0.06)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@10 A ~@3 B ~@3 C ~@3 D ~@3 E ~@7 F ~@9 G ~@3 H ~@7 I ~@7 J ~@7 K ~@9 L ~@23 M ~@7 N ~@4
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@5 x ~@7 x ~@2", C: "~@8 x!3 ~@5", D: "~@4 x ~@2 x!3 ~@4 x ~", E: "~@9 x!2 ~@5",
  F: "~@6 x ~@4 x ~@2 x ~", G: "~@10 x ~@2 x ~@2", H: "~@11 x!2 ~ x!2", I: "~@7 x ~@8", J: "~@11 x!2 ~@3",
  K: "~@4 x!2 ~ x ~@2 x ~@2 x ~@2", L: "~@8 x!4 ~@4", M: "~@5 x ~ x", N: "x!4 ~@8 x!4",
})).gain(0.54)

// drums · open hat
const open_hat = s("oh").struct("<~@7 A@41 B A@4 ~@4 A@16 ~@2 A@2 ~@2 A@19 ~@9 A@8 ~@4>".pickRestart({
  A: "~@2 x ~ x ~ x!2", B: "~@2 x ~ x ~@2 x",
})).gain(0.36)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@10 A ~@3 B ~@3 C ~@3 D ~@3 E ~@7 F ~@9 A ~@3 G ~@15 H ~@7 I ~@9 C ~@23 J ~@7 C ~@4
>`.pickRestart({
  A: "~@9 x ~@6", B: "~ x!2 ~@5", C: "~@4 x!4 ~@8", D: "~@5 x!2 ~@9", E: "~@8 x ~@4 x ~@2", F: "~@5 x ~@10",
  G: "~@10 x!2 ~@4", H: "~@5 x ~@2", I: "~ x ~ x ~@10 x ~", J: "~@12 x!2 ~@2",
})).gain(0.54)

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

// drums · agogo bells
const agogo_bells = s("agogo:2").struct("<~@7 A@46 ~@4 A@16 ~@2 A@2 ~@2 A@19 ~@9 A@7 B ~@4>".pickRestart({
  A: "~@2 x ~@2 x ~@2 x ~@3 x ~@2 x", B: "~@2 x ~@2 x ~@2 x ~@3 x ~@3",
})).gain(3.06)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@34 A ~@9 B ~@7 C ~@29 D ~@31 E ~@4>".pickRestart({
  A: "x!6 ~@4 x ~ x ~@3", B: "x!4 ~@2 x ~ x!2 ~@6", C: "~@12 x!4", D: "~@12 x ~ x!2", E: "x!4 ~@2 x ~ x!2 ~ x ~ x!2 ~",
})).gain(2.43)

// drums · shaker
const shaker = s("sh").struct("<~@34 A ~@9 B ~@37 C ~@31 D E ~@3>".pickRestart({
  A: "~@6 x ~ x ~@4 x ~@2", B: "~@7 x ~@8", C: "~@13 x ~@2", D: "~@7 x ~@2 x ~ x ~@2 x", E: "x",
})).gain(0.48)

stack(
  electric_guitar_jazz, electric_guitar_jazz_2, rock_organ, overdriven_guitar, woodblock, bass, bass_soft,
  brass_section, brass_section_soft, synth_strings_2, alto_sax, alto_sax_soft, kick, rim, snare, low_tom, pedal_hat,
  pedal_hat_soft, mid_tom, open_hat, high_tom, crash, agogo_bells, cabasa, shaker
)