Strudelify

If I Said You Had a Beautiful Body (Would You Hold It Against Me)

Bellamy Brothers

KeyE majorTempo118 bpm
0:00/0:00
// If I Said You Had a Beautiful Body (Would You Hold It Against Me) — Bellamy Brothers
// 118 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 · fretless bass · "FRETLESS"
const bass = note(`<
  ~@2 A B C D E F C D E G C D E H I J K L K M N O P Q R S E T U V W D X B C D E F C D E G C D E H I J K L K M N O P Q R
  S E T U V W D X B C D E F C D E G C D E H I J K B C D E F C D E G C D Y
>`.pickRestart({
  A: "~@3 b1", B: "e1@3 ~@13", C: "b1@6 f#1 ~ f#1@8", D: "b1@6 f#1 ~ f#1@4 b1@4", E: "e1@6 b1 ~ b1@8",
  F: "e1@6 b1 ~ b1@4 e1@4", G: "e1@6 b1 ~ b1@4 e1@3 ~", H: "c#2@6 g#1 ~ g#1@4 c#2@3 ~", I: "a1@6 e1 ~ e1@8",
  J: "b1@6 f#1 ~ f#1@3 ~ b1@4", K: "e1@5 ~ b1 ~ b1@7 ~", L: "e1@5 ~ b1 ~ b1@3 ~ b1@4", M: "e1@5 ~ b1 ~ b1@4 g#1@4",
  N: "a1@4 e2@4 e1@7 ~", O: "a1 e2 e1!2", P: "f#1@6 c#2 ~ c#1@8", Q: "f#1@6 c#2 ~ c#1@4 f#1@4",
  R: "b1@6 f#2 ~ f#2@5 ~ f#2 ~", S: "b2 f#2 b1@2 c#2@2 d#2@2", T: "e1@6 b1 ~ b1@4 g#1@4", U: "a1@6 e1 ~ e1@7 ~",
  V: "a1@6 e1 ~ e1@4 e1@4", W: "f#1@6 c#2 ~ c#2@7 ~", X: "e1@6 b1 ~ c#2@2 e2@2 c#2@2 b1@2", Y: "e1@6 b1 ~@9",
})).s("gm_fretless_bass").gain(0.54)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B@2 C D E F G D E F G D E F H I D F G F G J I K@2 D E F G J I L D F C D E F G D E F G D E F H I D F G F G J I K@2 D
  E F G J I L D F C D E F G D E F G D E F H I D F C D E F G D E F G D E M
>`.pickRestart({
  A: "[e4,g#4]@2 [e4,g#4]!2 [b3,e4,g#4]@2 [b3,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [e4,g#4]@2 [e4,g#4] ~, e3@3 e3@3 [e3,b3]@2, b3 ~@3", // E E5
  B: "[e4,g#4]@2 [e4,g#4]!2 [b3,e4,g#4]@2 [b3,g#4]@2 [b3,e4,g#4] ~ [b3,e4,g#4]@2 [e4,g#4]@2 [e4,g#4] ~, e3@3 e3@3 [e3,b3]@2, b3 ~@3", // E E5
  C: "[e3,e4,g#4]@3 ~@5, b3 ~", // E
  D: "[d#4,a4]@2 [d#4,a4]!2 [b3,a4]@2 [b3,a4]@2 [b3,d#4,a4]@2 [b3,d#4,a4]@2 [d#4,a4]@2 [d#4,a4] ~, b2@3 b2@3 [b2,b3]@2, b3 d#4 ~@2", // D#dim B7 D#dim B
  E: "[d#4,a4]@2 [d#4,a4]!2 [b3,a4]@2 [b3,a4]@2 [b3,d#4,a4] ~ [b3,d#4,a4]@2 [d#4,a4]@2 [d#4,a4] ~, b2@3 b2@3 [b2,b3]@2, b3 d#4 ~@2", // D#dim B7 D#dim B
  F: "[e4,g#4]@2 [e4,g#4]!2 [b3,g#4]@2 [b3,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [e4,g#4]@2 [e4,g#4] ~, e3@3 e3@3 [e3,b3]@2, b3 e4 ~@2", // E E5
  G: "[e4,g#4]@2 [e4,g#4]!2 [b3,g#4]@2 [b3,g#4]@2 [b3,e4,g#4] ~ [b3,e4,g#4]@2 [e4,g#4]@2 [e4,g#4] ~, e3@3 e3@3 [e3,b3]@2, b3 e4 ~@2", // E E5
  H: "[e4,g#4]@2 [e4,g#4]!2 [c#4,g#4]@2 [c#4,g#4]@2 [c#4,e4,g#4] ~ [c#4,e4,g#4]@2 [e4,g#4]@2 [e4,g#4] ~, e3@3 e3@3 [e3,c#4]@2, c#4 e4 ~@2", // E C#5 C#m E C#m
  I: "[e4,a4]@2 [e4,a4]!2 [c#4,a4]@2 [c#4,a4]@2 [c#4,e4,a4] ~ [c#4,e4,a4]@2 [e4,a4]@2 [e4,a4] ~, e3@3 e3@3 [e3,c#4]@2, c#4 e4 ~@2", // A5 F#m A A5 C#m
  J: "[e4,a4]@2 [e4,a4]!2 [c#4,a4]@2 [c#4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4]@2 [e4,a4]@2 [e4,a4] ~, e3@3 e3@3 [e3,c#4]@2, c#4 e4 ~@2", // A5 F#m A A5 C#m
  K: "[f#4,a4]@2 [f#4,a4]!2 [c#4,a4]@2 [c#4,a4]@2 [c#4,f#4,a4] ~ [c#4,f#4,a4]@2 [f#4,a4]@2 [f#4,a4] ~, f#3@3 f#3@3 [f#3,c#4]@2, c#4 f#4 ~@2", // F#m F#5
  L: "[f#4,a4]@2 [f#4,a4]!2 [c#4,a4]@2 [c#4,a4]@2 [c#4,f#4,a4]@2 [c#4,f#4,a4]@2 [f#4,a4]@2 [f#4,a4] ~, f#3@3 f#3@3 [f#3,c#4]@2, c#4 f#4 ~@2", // F#m F#5
  M: "[e4,g#4]@2 [e4,g#4]!2 [b3,g#4]@2 [b3,g#4]@2 ~@8, e3@3 e3@3 ~@2, b3 e4 ~@2", // E
})).s("gm_acoustic_guitar_steel").gain(0.34)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  ~@2 A B ~@2 C@2 ~@2 D@2 ~@2 E F G H I J K L M@2 N O P Q R S M@2 N T U@2 ~@2 C@2 ~@2 D@2 ~@2 E F G H I J K L M@2 N O P
  Q R S M@2 N T U@2 ~@2 C@2 ~@2 D@2 ~@2 E F G H I ~@3 C@2 ~@2 D@2 ~@2 V
>`.pickRestart({
  A: "~@3 b4", B: "e5 ~", C: "[~@6 [g#5,b5]@2 [g#5,b5] ~ [g#5,b5] ~ [f#5,a5] ~ [f#5,a5]@4 [e5,g#5]@7 ~@7]/2",
  D: "[~@6 [g#5,b5]@2 [g#5,b5] ~ [g#5,b5] ~ [f#5,a5] ~ [e5,g#5]@7 ~@11]/2", // G#m F#m E
  E: "~@3 [g#5,b5]!2 f#5 [e5,g#5] [g#5,b5], ~@10 a5 ~@5", F: "[g#5,c#6]@7 ~@9", G: "[e4,c#5]", H: "[f#4,d#5]",
  I: "[g#4,e5]", J: "b4@15 ~, g#4 ~", K: "[g#4,b4]", L: "b4@2 c#5@2 [b4,e5]@9 ~@3, e4 ~@3",
  M: "[~@3 d5 ~@3 e4 e5@8, a4 ~, ~@4 c#5@9 ~@3]/2", N: "~ b4 [c#4,a4]@5 b4", O: "[c#4,a4]@13 ~@3",
  P: "[b3,d#4] [c#4,e4]", Q: "d#4@8 [d#4,a4]@7 ~, f#4@7 ~", R: "[e4,g#4]@5 ~@3", S: "~@2 c#5@2 [b4,e5]@9 ~@3",
  T: "[a4,d#5]@13 ~@3", // Adim
  U: "[~@14 e4@7 ~@11, g#5@21 ~@11, ~@2 f#5@6 b4@13 ~@11, ~@4 e5@17 ~@11, ~@3 c#5@2 g#4 f#4@2 ~@8]/2",
  V: "~@3 [g#5,b5] ~@4", // G#m
})).s("gm_epiano1").gain(0.3).pan(0.7)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A@4 B@2 C D B@2 C D B@2 E F@3 G@3 ~ H I J K L@2 M ~ H I J K N O B@2 C D B@2 C D B@2 E F@3 G@3 ~ H I J K L@2 M ~ H I J
  K N O B@2 C D B@2 C D B@2 E F@3 P@2 B@2 C D B@2 C D B@2 Q
>`.pickRestart({
  A: "[~@12 b3@13 ~@3 b3@14 ~@2 b3@8 ~@12]/4",
  B: "[~@2 d#5@2 d#5 ~ d#5@2 d#5@2 ~@8 b4@2 b4 ~ b4 ~ b4@2 a4@6, f#4 b4 f#4 b3, ~@5 c#5@4 ~@7]/2",
  C: "[b3,g#4]@9 ~ b4@2 a4@2 g#4@2", D: "b4@7 ~@9", E: "[b3,g#4]@9 ~ b4@2 a4@2 b4@2",
  F: "[c#5@7 ~@9 a4@8 ~@8 f#4@8 ~@8, ~@12 c#5@15 ~ b4@14 ~@6]/3",
  G: "[b4@2 g#4@2 f#4@2 e4@2 d#4@2 e4@3 g#4@13 ~@4 [g#4,e5]@7 ~@11]/3", H: "f#4@3 g#4@2 a4@3", I: "b4@3 c#5@2 a4 e4@2",
  J: "f#4@3 [g#4,b4]", K: "[f#4,a4]", L: "[f#4@2 g#4@2 a4 g#4 a4 b4@3 g#4@2 f#4 e4 d#4@2]/2", M: "e4@5 ~@11",
  N: "c#6@3 b5@5", O: "g#5 ~@3", P: "[b4@2 g#4@2 f#4@2 e4@2 d#4@2 e4@3 g#4@9 ~@10]/2", Q: "[b3,g#4]@9 ~@7",
})).s("gm_electric_guitar_jazz").gain(0.32).pan(0.3)

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

// drums · rim
const rim = s("rim").struct("<~@3 [~@3 x] [~ x ~ x]!15 [~@2 x ~@3 x!2] [~ x ~ x]!15 ~@17 [~ x ~ x]!15 ~@28>").gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@36 [~ x ~ x]!15 [~@2 x ~@3 x!2] ~@16 [~ x ~ x]!15 [~@6 x!2] [~ x ~ x]!10 [~ x ~@2]>")
  .gain(0.45)

// drums · hihat
const hihat = s("hh").struct("<~@20 A@5 B A B A B C A@2 B@2 D ~@16 A@5 B A B A B C A@2 B@2 D ~@15 D ~@11>".pickRestart({
  A: "x ~@2 x!3 ~@2", B: "x ~@2 x!3 ~ x", C: "~@3 x!3 ~@2", D: "~ x!2 ~",
})).gain(0.26)

// drums · low tom
const low_tom = s("lt").struct("<~@35 [~@3 x] ~@31 [~@3 x] ~@27>").gain(0.52)

// drums · open hat
const open_hat = s("oh").struct("<~@24 A@2 ~ A ~ A ~@3 A ~@22 A@2 ~ A ~ A ~@3 A ~@29>".pickRestart({
  A: "~@3 x",
})).gain(0.26)

// drums · splash
const splash = s("cr").struct("<~@35 x ~@31 x ~@15 x ~@11>").gain(0.32)

// drums · congas
const congas = s("conga:13").struct("<~@20 [~ x ~@2]!15 ~@17 [~ x ~@2]!15 ~@28>").gain(1.44)

// drums · congas
const congas_2 = s("conga:18").struct("<A@3 ~ A@16 B@15 ~ A@16 B@15 ~ A@15 ~ A@10 ~>".pickRestart({
  A: "~@3 x", B: "~@3 x ~@4",
})).gain(1.44)

// drums · congas
const congas_3 = s("conga:33").struct("<A@3 B A@16 C@15 B A@16 C@15 B A@15 B A@10 D>".pickRestart({
  A: "x ~ x!4 ~@2", B: "x", C: "~@5 x ~ x", D: "x ~ x!3 ~@3",
})).gain(1.44)

// drums · congas · soft notes
const congas_soft = s("conga:33").struct("<A@3 ~ A@16 ~@16 A@16 ~@16 A@15 ~ A@11>".pickRestart({
  A: "~@3 x ~@12",
})).gain(0.83)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@4 A@16 ~@16 A@16 ~@16 A@15 ~ A@10 B>".pickRestart({
  A: "x!8", B: "x!5 ~@3",
})).gain(0.98)

stack(
  bass, acoustic_guitar_steel, epiano1, electric_guitar_jazz, kick, rim, snare, hihat, low_tom, open_hat, splash,
  congas, congas_2, congas_3, congas_soft, cabasa
)

More by Bellamy Brothers