Strudelify

The Bad Touch

Bloodhound Gang

KeyE♭ majorTempo123 bpm
0:00/0:00
// The Bad Touch — Bloodhound Gang
// 122.9 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 13 "Picked Bs." electric bass pick (copy of ch 3 "Clean Gt." electric guitar clean); ch 4 "Polysynth" pad poly (copy of ch 6 "Harpsichord" harpsichord)
// note: Full arrangement: all 122 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(122.9/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 · synth bass 1
const bass = note(`<
  ~@9 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A
  B C D A B C D A B C D A B C D A B C D A B C D ~@8 E F G H E F G H E F G H E F G H E F G H E F G H ~
>`.pickRestart({
  A: "c2 [c2,c3] c2 [c2,c3] c2 [c2,c3] c2 [c2,c3]", B: "eb2 [eb2,eb3] eb2 [eb2,eb3] eb2 [eb2,eb3] eb2 [eb2,eb3]",
  C: "bb1 [bb1,bb2] bb1 [bb1,bb2] bb1 [bb1,bb2] bb1 [bb1,bb2]", // Bb
  D: "ab1 [ab1,ab2] ab1 [ab1,ab2] ab1 [ab1,ab2] ab1 [ab1,ab2]", // Ab
  E: "~ c2@4 [c2,c3]@4 c2@4 [c2,c3]@4 c2@4 [c2,c3]@4 c2@4 [c2,c3]@3", // C
  F: "~ eb2@4 [eb2,eb3]@4 eb2@4 [eb2,eb3]@4 eb2@4 [eb2,eb3]@4 eb2@4 [eb2,eb3]@3", // Eb
  G: "~ bb1@4 [bb1,bb2]@4 bb1@4 [bb1,bb2]@4 bb1@4 [bb1,bb2]@4 bb1@4 [bb1,bb2]@3", // Bb
  H: "~ ab1@4 [ab1,ab2]@4 ab1@4 [ab1,ab2]@4 ab1@4 [ab1,ab2]@4 ab1@4 [ab1,ab2]@3", // Ab
})).s("gm_synth_bass_1").gain(0.45)

// bass · electric bass finger · "Fingered Bs."
const bass_2 = note(`<
  ~@9 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A
  B C D A B C D A B C D A B C D A B C D A B C D ~@8 E F G H E F G H E F G H E F G H E F G H E F G H ~
>`.pickRestart({
  A: "c2 c3 c2 c3 c2 c3 c2 c3", B: "eb2 eb3 eb2 eb3 eb2 eb3 eb2 eb3", C: "bb1 bb2 bb1 bb2 bb1 bb2 bb1 bb2",
  D: "ab1 ab2 ab1 ab2 ab1 ab2 ab1 ab2", E: "~ c2@4 c3@4 c2@4 c3@4 c2@4 c3@4 c2@4 c3@3",
  F: "~ eb2@4 eb3@4 eb2@4 eb3@4 eb2@4 eb3@4 eb2@4 eb3@3", G: "~ bb1@4 bb2@4 bb1@4 bb2@4 bb1@4 bb2@4 bb1@4 bb2@3",
  H: "~ ab1@4 ab2@4 ab1@4 ab2@4 ab1@4 ab2@4 ab1@4 ab2@3",
})).s("gm_electric_bass_finger").gain(0.22)

// other · electric guitar clean · "Clean Gt."
const electric_guitar_clean = note("<~@9 A B C D A B C D ~@32 A B C D A B C D ~@65>".pickRestart({
  A: "~@4 c3@3 ~ c3@3 ~ bb2@2 c3@6 eb3@4 ~@8", B: "~@2 f3 eb3 ~ c3 eb3@2", C: "~@4 bb3@2 g3 g3@3 f3@2 ~@2 bb2@2",
  D: "ab2@2 ~@2 f3@2 eb3@2 ~@2 c3@2 eb3 f3@2 ~",
})).s("gm_electric_guitar_clean").gain(0.6)

// chords · harpsichord
const harpsichord = note(`<
  ~@9 A B C D A B C D ~@15 D A B C D A B C D A B C D A B C D A B C D A B C D ~@15 D A B C D A B C D A B C D A B C D ~@7
  E F G H E F G H E F G H E F G H E F G H E F G H E ~
>`.pickRestart({
  A: "[c4,eb4,g4]", B: "[eb4,g4,bb4]", C: "[bb3,d4,f4]", D: "[ab3,c4,eb4]", E: "~ [ab3,c4,eb4]@31",
  F: "~ [c4,eb4,g4]@31", G: "~ [eb4,g4,bb4]@31", H: "~ [bb3,d4,f4]@31",
})).s("gm_harpsichord").gain(0.54)

// chords · synth brass 1
const synth_brass_1 = note(`<
  ~@41 A B C D A B C D ~@32 A B C D A B C D ~@16 E F G H E F G H E F G H E F G H ~
>`.pickRestart({
  A: "~@2 [g4,c5] ~ [g4,c5] ~ [c5,eb5]!2 ~ [g4,c5] [g4,eb5] ~@5", // C5 Cm C5 Cm
  B: "~@2 [g4,bb4] ~ [g4,bb4] ~ [bb4,eb5]!2 ~ [g4,bb4] [g4,eb5] ~@5", // Gm Eb5 Gm Cm
  C: "~@2 [f4,bb4] ~ [f4,bb4] ~ [bb4,d5]!2 ~ [f4,bb4] [f4,d5] ~@5", // Bb5 Bb Bb5 Dm
  D: "[ab4,eb5]@3 ~@3 [ab4,eb5]@3 ~@2 [ab4,eb5]@3 ~@2 [ab4,eb5]@4 ~@2 [ab4,c5]@2 [ab4,eb5]@2 [ab4,eb5]@2 [ab4,eb5]@2 ~@2", // Ab5 Ab Ab5
  E: "~@5 [g4,c5]@2 ~@2 [g4,c5]@2 ~@2 [c5,eb5]@2 [c5,eb5]@2 ~@2 [g4,c5]@2 [g4,eb5]@2 ~@9", // C5 Cm C5 Cm
  F: "~@5 [g4,bb4]@2 ~@2 [g4,bb4]@2 ~@2 [bb4,eb5]@2 [bb4,eb5]@2 ~@2 [g4,bb4]@2 [g4,eb5]@2 ~@9", // Gm Eb5 Gm Cm
  G: "~@5 [f4,bb4]@2 ~@2 [f4,bb4]@2 ~@2 [bb4,d5]@2 [bb4,d5]@2 ~@2 [f4,bb4]@2 [f4,d5]@2 ~@9", // Bb5 Bb Bb5 Dm
  H: "~ [ab4,eb5]@3 ~@2 [ab4,eb5]@3 ~@2 [ab4,eb5]@3 ~@3 [ab4,eb5]@4 ~@2 [ab4,c5]@2 [ab4,eb5]@2 [ab4,eb5]@2 [ab4,eb5]@2 ~", // Ab5 Ab Ab5
})).s("gm_synth_brass_1").gain(0.54).pan(0.4)

// other · synth brass 2
const synth_brass_2 = note(`<
  ~@41 A B C D A B C D ~@32 A B C D A B C D ~@16 E F G H E F G H E F G H E F G H ~
>`.pickRestart({
  A: "[g4,g5] [c4,c5] ~@3 [c4,c5] [eb4,eb5] [c4,c5]", B: "[bb3,bb4] [eb3,eb4] ~@3 [bb3,bb4] [g4,g5] [eb4,eb5]",
  C: "[bb4,bb5] ~@4 [d4,d5] [f4,f5] [d4,d5]", // Bb D F D
  D: "[eb4,eb5]@3 ~@3 [eb4,eb5]@3 ~@2 [eb4,eb5]@3 ~@2 [eb4,eb5]@3 ~@3 [c4,c5]@2 [eb4,eb5]@2 [eb4,eb5]@2 [eb4,eb5]@2 ~@2", // Eb C Eb
  E: "~ [g4,g5]@4 [c4,c5]@4 ~@12 [c4,c5]@4 [eb4,eb5]@4 [c4,c5]@3", // G C Eb C
  F: "~ [bb3,bb4]@4 [eb3,eb4]@4 ~@12 [bb3,bb4]@4 [g4,g5]@4 [eb4,eb5]@3", // Bb Eb Bb G Eb
  G: "~ [bb4,bb5]@4 ~@16 [d4,d5]@4 [f4,f5]@4 [d4,d5]@3", // Bb D F D
  H: "~ [eb4,eb5]@3 ~@2 [eb4,eb5]@3 ~@2 [eb4,eb5]@3 ~@3 [eb4,eb5]@3 ~@3 [c4,c5]@2 [eb4,eb5]@2 [eb4,eb5]@2 [eb4,eb5]@2 ~", // Eb C Eb
})).s("gm_synth_brass_2").gain(0.45).pan(0.8)

// other · electric guitar muted · "Muted Gt."
const electric_guitar_muted = note("<~@41 A@2 B C A@2 B C ~@32 A@2 B C A@2 B C ~@8 D@24 ~>".pickRestart({
  A: "[~ c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 ~ eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2, ~@31 c3@2 ~@31]/2",
  B: "bb2!16", C: "ab2!16",
  D: "[~ c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 bb2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2]/8",
})).s("gm_electric_guitar_muted").gain(0.29)

// chords · orchestra hit
const orchestra_hit = note(`<
  ~@41 A B C D A B C D ~@32 A B C D A B C D ~@16 E F G H E F G H E F G H E F G H ~
>`.pickRestart({
  A: "~@2 [g5,c6] ~ [g5,c6] ~ [c6,eb6]!2 ~ [g5,c6] [g5,eb6] ~@5", // C5 Cm C5 Cm
  B: "~@2 [g5,bb5] ~ [g5,bb5] ~ [bb5,eb6]!2 ~ [g5,bb5] [g5,eb6] ~@5", // Gm Eb5 Gm Cm
  C: "~@2 [f5,bb5] ~ [f5,bb5] ~ [bb5,d6]!2 ~ [f5,bb5] [f5,d6] ~@5", // Bb5 Bb Bb5 Dm
  D: "[ab5,eb6]@3 ~@3 [ab5,eb6]@3 ~@2 [ab5,eb6]@3 ~@2 [ab5,eb6]@4 ~@2 [ab5,c6]@2 [ab5,eb6]@2 [ab5,eb6]@2 [ab5,eb6]@2 ~@2", // Ab5 Ab Ab5
  E: "~@5 [g5,c6]@2 ~@2 [g5,c6]@2 ~@2 [c6,eb6]@2 [c6,eb6]@2 ~@2 [g5,c6]@2 [g5,eb6]@2 ~@9", // C5 Cm C5 Cm
  F: "~@5 [g5,bb5]@2 ~@2 [g5,bb5]@2 ~@2 [bb5,eb6]@2 [bb5,eb6]@2 ~@2 [g5,bb5]@2 [g5,eb6]@2 ~@9", // Gm Eb5 Gm Cm
  G: "~@5 [f5,bb5]@2 ~@2 [f5,bb5]@2 ~@2 [bb5,d6]@2 [bb5,d6]@2 ~@2 [f5,bb5]@2 [f5,d6]@2 ~@9", // Bb5 Bb Bb5 Dm
  H: "~ [ab5,eb6]@3 ~@2 [ab5,eb6]@3 ~@2 [ab5,eb6]@3 ~@3 [ab5,eb6]@4 ~@2 [ab5,c6]@2 [ab5,eb6]@2 [ab5,eb6]@2 [ab5,eb6]@2 ~", // Ab5 Ab Ab5
})).s("gm_orchestra_hit").gain(0.29).pan(0.6)

// other · lead 7 fifths · "5th Saw Wave"
const lead_7_fifths = note(`<
  ~@41 A B C D A B C D ~@32 A B C D A B C D ~@16 E F G H E F G H E F G H E F G H ~
>`.pickRestart({
  A: "c5", B: "eb5", C: "bb4", D: "ab4", E: "~ c5@31", F: "~ eb5@31", G: "~ bb4@31", H: "~ ab4@31",
})).s("gm_lead_7_fifths").gain(0.32)

// chords · distortion guitar · "Distortion Gt."
const distortion_guitar = note(`<
  ~@9 A B C D A B C D ~@15 D A B C D A B C D A B C D A B C D A B C D A B C D ~@15 D A B C D A B C D A B C D A B C D ~@7
  E F G H E F G H E F G H E F G H E F G H E F G H E ~
>`.pickRestart({
  A: "[c3,g3]", B: "[eb3,bb3]", C: "[bb2,f3]", D: "[ab2,eb3]", E: "~ [ab2,eb3]@31", F: "~ [c3,g3]@31",
  G: "~ [eb3,bb3]@31", H: "~ [bb2,f3]@31",
})).s("gm_distortion_guitar").gain(0.45).pan(0.6)

// other · lead 8 bass lead · "TB 303 Sim"
const lead_8_bass_lead = note("<~@89 A B C D A B E@8 F@16 G@3>".pickRestart({
  A: "c3!2 c4!2 c3!2 c4!2 c3!2 c4!2 c3!2 c4!2", B: "eb3!2 eb4!2 eb3!2 eb4!2 eb3!2 eb4!2 eb3!2 eb4!2",
  C: "bb2!2 bb3!2 bb2!2 bb3!2 bb2!2 bb3!2 bb2!2 bb3!2", D: "ab2!2 ab3!2 ab2!2 ab3!2 ab2!2 ab3!2 ab2!2 ab3!2",
  E: "[bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 ~ bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4]/8",
  F: "[~ bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4@2 eb3@2 eb3@2 eb4@2 eb4]/8",
  G: "[~ bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 bb2@2 bb2@2 bb3@2 bb3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ab2@2 ab2@2 ab3@2 ab3@2 ~@31]/3",
})).s("gm_lead_8_bass_lead").gain(0.25)

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

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

// drums · snare
const snare = s("sd").struct(`<
  A B@7 A B@3 C B@3 C B@15 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@15 C B@3 C B@3 C B@3 C B@3 C ~@7 D E@3 F E@3 F E@3 F
  E@3 F E@3 F E@3 F ~
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x!12", D: "~@25 x ~@6", E: "~@9 x ~@15 x ~@6",
  F: "~@9 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
})).gain(0.7)

// drums · clap
const clap = s("cp").struct(`<
  A B@7 A B@3 C B@3 C B@15 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@15 C B@3 C B@3 C B@3 C B@3 C ~@7 D E@3 F E@3 F E@3 F
  E@3 F E@3 F E@3 F ~
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~ x ~@2", D: "~@25 x ~@6", E: "~@9 x ~@15 x ~@6", F: "~@9 x ~@22",
})).gain(0.7)

// drums · hihat
const hihat = s("hh").struct(`<
  [~@3 x]
  [x!4]!7
  [x ~@2 x]
  [x!4]!86
  [x ~@7 x ~@8 x ~@7 x ~@6]
  [~ x ~@7 x ~@7 x ~@7 x ~@6]!25
  ~
>`).gain(0.7)

// drums · open hat
const open_hat = s("oh").struct(`<
  [~@7 x]
  [~ x ~ x ~ x ~ x]!7
  [~@7 x]
  [~ x ~ x ~ x ~ x]!86
  [~@4 x ~@8 x ~@7 x ~@7 x ~@2]
  [~@5 x ~@7 x ~@7 x ~@7 x ~@2]!25
  ~
>`).gain(0.7)

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

// drums · shaker
const shaker = s("sh").struct("<~@9 A@8 ~@15 A@25 ~@15 A@17 ~@8 B@24 ~>".pickRestart({
  A: "x!16", B: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
})).gain(0.47)

stack(
  bass, bass_2, electric_guitar_clean, harpsichord, synth_brass_1, synth_brass_2, electric_guitar_muted, orchestra_hit,
  lead_7_fifths, distortion_guitar, lead_8_bass_lead, kick, rim, snare, clap, hihat, open_hat, crash, shaker
)

More by Bloodhound Gang