Strudelify

Take Your Clothes Off When You Dance

Zappa

KeyD majorTempo159 bpm
0:00/0:00
// Take Your Clothes Off When You Dance — Zappa
// 159 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 76 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(159/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · electric guitar clean · "rhythm guitar"
const electric_guitar_clean = note("<A B A ~@41 C@2 D@2 C@2 D@2 E F G H C@2 D@2 I J I J I J I J K ~@7>".pickRestart({
  A: "a4@3 ~ d5@2 d5@5 ~@5", B: "~@2 g4 ~@2 a4 ~@2 b4 ~@2 a4 ~@2 g4 ~", C: "~@4 e3 ~ e3 ~@5 e3 ~@3",
  D: "~@4 d3 ~ d3 ~@5 d3 ~@3", E: "f3 ~@3 f3 ~@3 f3 ~@3 f3 ~@3", F: "e3 ~@3 e3 ~ d3 ~@3 d3 ~ d3 ~ d3 ~",
  G: "f#3 ~@3 f#3 ~@3 a3 ~@3 a3 ~ b2 ~", H: "~@4 b2 ~ b2 ~@5 b2 ~@3",
  I: "[d3,a3] ~@3 [d3,a3] ~@3 [c3,g3] ~@3 [c3,g3] ~@3", J: "[d3,a3] ~@3 [d3,a3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~@3",
  K: "[d3,a3] ~@3 [d3,a3] ~@3 [c3,g3] ~@7", // D5 C5
})).s("gm_electric_guitar_clean").gain(0.2)

// chords · electric guitar clean · "rhythm guitar" · soft notes
const electric_guitar_clean_2 = note("<~@68 A B C B C B C B>".pickRestart({
  A: "~@12 [c3,g3] ~@3", B: "[d3,a3] ~@3 [d3,a3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~@3",
  C: "[d3,a3] ~@3 [d3,a3] ~@3 [c3,g3] ~@3 [c3,g3] ~@3", // D5 C5
})).s("gm_electric_guitar_clean").gain(0.05)

// bass · electric bass finger · "bass"
const bass = note(`<
  A B C D E@2 F@2 E@2 F G H I J K L@2 M N E@2 F@2 E@2 F G H I J K L@2 M O E@2 P@2 E@2 P Q E@2 F@2 E@2 F G H I J K L@2
  R@2 S T S T S T S T S T S T S T S T
>`.pickRestart({
  A: "d2@3 ~ d2@2 d2@3 ~ d2@2 e2@2 d2@2", B: "g1@3 ~ g1@2 g1@3 ~ g1@2 a1@2 b1@2",
  C: "d2@3 ~ d2@2 d2@3 ~ d2@2 c2@2 d2@2", D: "d2@3 ~@13", E: "b1@4 b1@2 e2@3 ~ e2 ~ e2 ~ e2 ~",
  F: "a1@4 a1@2 d2@3 ~ d2 ~ d2 ~ d2 ~", G: "a1@4 a1@2 d2@3 ~ d2 ~ d2 ~ d2 a1", H: "f2@3 ~ f2@2 f2@3 ~ f2@2 f2@2 f2@2",
  I: "e2@3 ~ e2@2 d2@3 ~ d2@2 d2@2 d2@2", J: "f#2@3 ~ a2@2 f#2@3 ~ a2@2 f#2@2 a2@2",
  K: "b1@3 ~ b1@3 ~ a1@2 b1@3 ~ b1@2", L: "b1@3 ~ b1@2 e2@3 ~ e2@2 e2@2 e2@2", M: "d2 ~@3 d2 ~@3 c2 ~ d2@3 ~ d2@2",
  N: "~ a1!7", O: "~ d2!3 d2@2 c#2@2", P: "d2@4 d2@2 a1@3 ~ d2 ~ d2 ~ d2 ~", Q: "d2 ~@15",
  R: "d2@3 ~ d2@2 d2@2 f#2@3 ~ a2@3 ~", S: "d2@5 ~@3 c2@5 ~@3", T: "a1@5 ~ c2@5 ~@5",
})).s("gm_electric_bass_finger").gain(0.41)

// other · rock organ · "organ"
const rock_organ = note(`<
  ~@4 A B C D A B C D E F G H A I J ~ A B C D A B C D E F G H A I J ~@9 A B C D A B C D E F G H A I J ~@17
>`.pickRestart({
  A: "b5 d6 e6 b5 d6 e6 b5 d6", B: "e6 b5 d6 e6 b5 d6 e6 d6", C: "a6@2 f#6 e6 f#6 a6 f#6 e6", D: "f#6@5 ~@11",
  E: "~@2 f6 ~ f6 ~ e6 ~ e6 ~ d6 ~ d6 ~ c#6 ~", F: "c#6 ~ d6 ~ d6 ~ e6 ~ e6 ~ f6 ~ f6 ~ d6 ~",
  G: "f#6@3 ~@3 a6@2 f#6@2 e6@2 d6@2 a5@2", H: "b5@3 ~@13", I: "e6 b5 d6 e6 f#6 e6 d6 e6", J: "d6@5 ~@11",
})).s("gm_rock_organ").gain(0.41)

// other · shakuhachi · "chorus"
const shakuhachi = note("<~@35 A B C D A B C D ~@33>".pickRestart({
  A: "~@2 f#5 a5 f#5 e5 d5 a4", B: "b4@5 ~@11", C: "~@2 f#5 a5 f#5 e5 d5 b4", D: "d5@5 ~@11",
})).s("gm_shakuhachi").gain(0.36).pan(0.4)

// drums · kick
const kick = s("bd").struct("<A@3 B A@15 B C A@22 B A@24 B ~@7>".pickRestart({
  A: "x!2", B: "x", C: "x ~@2 x!2 ~@3",
})).gain(0.41)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@68 [~ x] [x!2]!7>").gain(0.15)

// drums · snare
const snare = s("sd").struct("<A@3 ~ A@15 ~ B A@22 ~ A@24 ~@8>".pickRestart({
  A: "~@2 x!2 ~ x!2 ~", B: "~@2 x ~@2 x!2 ~",
})).gain(0.41)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@68 [~@2 x!2 ~ x!2 ~]!8>").gain(0.15)

// drums · low tom
const low_tom = s("lt").struct(`<
  [~@5 x ~@8 x ~]!3
  [~@11 x!2 ~ x ~]
  [~@5 x ~@8 x ~]!15
  [~@11 x!2 ~ x ~]
  [~@5 x ~@8 x ~]!23
  [~@11 x!2 ~ x ~]
  [~@5 x ~@8 x ~]!24
  ~@8
>`).gain(0.41)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@68 [~@5 x ~@8 x ~]!8>").gain(0.15)

// drums · mid tom
const mid_tom = s("mt").struct("<~@3 A ~@7 B ~@7 A ~@7 B ~@15 A ~@7 B ~@24>".pickRestart({
  A: "~@2 x!3 ~ x ~ x!3 ~@5", B: "x",
})).gain(0.41)

// drums · open hat
const open_hat = s("oh").struct("<[~ x ~ x]!3 ~ [~ x ~ x]!15 ~ [~ x ~ x]!23 x [~ x ~ x]!24 ~@8>").gain(0.41)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@68 [~ x ~ x]!8>").gain(0.15)

stack(
  electric_guitar_clean, electric_guitar_clean_2, bass, rock_organ, shakuhachi, kick, kick_soft, snare, snare_soft,
  low_tom, low_tom_soft, mid_tom, open_hat, open_hat_soft
)

More by Zappa