Strudelify

Bad to Me (demo)

The Beatles

KeyE♭ majorTempo120 bpm
0:00/0:00
// Bad to Me (demo) — The Beatles
// 120 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: track names are the Roland MT-32 patch names at their program numbers ("Elec Guit" on 62, "Brass" on 24), so with no bank select the whole file is read through the MT-32 patch table: ch 2 "Bass Guit" Acou Bass 1 -> acoustic bass; ch 3 "Elec Guit" Elec Gtr 2 -> overdriven guitar; ch 4 "Lead" Echo Pan -> fx echoes; ch 5 "Duet" Chorale -> choir aahs; ch 6 "Brass" Syn Brass 1 -> synth brass 1
// note: Full arrangement: all 41 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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.

// bass · acoustic bass · "Bass Guit"
const bass = note("<A B C D E F E F G H I J E F E F G H K L M N O P Q R S T E F E F G H U V W H E F I>".pickRestart({
  A: "eb2@2 eb2@3 ~ bb1@2 eb2@2 eb2@3 ~ bb1@2", B: "c2@2 c2@3 ~ g1@2 eb1@2 f1@2 gb1@2 g1@2",
  C: "g1@2 g1@3 ~ d1@2 g1@2 g1@3 ~ d1@2", D: "f1@2 f1@3 ~ c1@2 bb1@2 bb1@3 ~ f1@2",
  E: "eb2@2 eb2@3 ~ bb1@2 g1@2 g1@3 ~ d1@2", F: "c2@2 c2@3 ~ g1@2 bb1@2 bb1@3 ~ f1@2",
  G: "ab1@2 ab1@3 ~ eb1@2 ab1@2 ab1@3 ~ eb1@2", H: "bb1@2 bb1@3 ~ f1@2 bb1@2 bb1@3 ~ f1@2",
  I: "eb2@2 eb2@3 ~ bb1@2 g2@2 ab2@2 a2@2 bb2@2", J: "g1@2 g1@3 ~ d1@2 bb1@2 bb1@3 ~ f1@2",
  K: "eb2@2 eb2@3 ~ bb1@2 bb1@2 bb1@2 db2@2 d2@2", L: "eb2!7 bb1", M: "ab1!8", N: "bb1!7 f1", O: "g1!8", P: "c2!7 g1",
  Q: "f1!8", R: "bb1!7 f2", S: "eb2!8", T: "f1!4 bb1!3 f2", U: "bb1@2 bb1@3 ~ f1@2 bb1@2 bb1@2 b1@2 b1@2",
  V: "c2@2 c2@3 ~ g1@2 c2@2 c2@3 ~ g1@2", W: "ab1@2 ab1@3 ~ eb1@2 c2@2 db2@2 d2@2 eb2@2",
})).s("gm_acoustic_bass").gain(0.46)

// chords · overdriven guitar · "Elec Guit"
const overdriven_guitar = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V C W X Y Z AA AB AC AD AE Q R AF AG Q AH AI AC T
>`.pickRestart({
  A: "~@2 [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@2 ~@2", // Eb
  B: "~@2 [g3,c4,eb4]@5 ~ [g3,c4,eb4]@3 ~ [g3,c4,eb4]@2 ~@2", // Cm
  C: "~@2 [g3,bb3,d4]@5 ~ [g3,bb3,d4]@3 ~ [g3,bb3,d4]@2 ~@2", D: "~@2 [c4,eb4,f4,ab4]@3 ~@5 [d4,f4,ab4,bb4]@3 ~@3",
  E: "[g3,bb3,eb4] ~ [g3,bb3,eb4]@2 ~@4 [bb3,d4,g4]@3 ~ [bb3,d4,g4]@3 ~", // Eb Gm
  F: "[g3,c4,eb4] ~ [g3,c4,eb4]@2 ~@4 [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@2 ~@4", // Cm Bb7
  G: "~@2 [g3,bb3,eb4]@3 ~@3 [g3,bb3,d4] ~ [g3,bb3,d4]@2 ~@4", // Eb Gm
  H: "~@2 [g3,c4,eb4]@3 ~@3 [d4,f4,ab4,bb4]@3 ~ [d4,f4,ab4,bb4]@3 ~", I: "[ab3,c4,eb4]!2 ~ [ab3,c4,eb4]@2 ~@3",
  J: "~@2 [ab3,bb3,d4,gb4]@5 ~ [ab3,bb3,d4,gb4]@3 ~ [ab3,bb3,d4,gb4]@2 ~@2", K: "[g3,bb3,eb4]!2 ~ [g3,bb3,eb4]@2 ~@3",
  L: "[bb3,d4,f4,g4] ~ [bb3,d4,f4,g4]@2 ~@4 [ab3,bb3,d4,f4]@7 ~", M: "~@2 [g3,bb3,eb4]@3 ~@5 [d4,g4,bb4]@3 ~@3",
  N: "~@2 [g3,c4,eb4]@3 ~@3 [d4,f4,ab4,bb4]@7 ~", O: "[g3,bb3,eb4]@7 ~ [g3,bb3,d4]@7 ~",
  P: "[g3,c4,eb4]@7 ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@2 ~@4", // Cm Bb7
  Q: "~@2 [ab3,c4,eb4]@5 ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@2 ~@2", // Ab
  R: "~@2 [d4,gb4,ab4,bb4]@5 ~ [d4,gb4,ab4,bb4]@3 ~ [d4,gb4,ab4,bb4]@2 ~@2", // Daug
  S: "[g3,bb3,eb4]!2 ~@2 [g3,bb3,eb4] ~ [g3,bb3,eb4] ~", T: "[bb3,eb4,g4]!2 ~ [bb3,eb4,g4]@2 ~@3",
  U: "[ab3,c4,eb4]!2 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", V: "[d4,f4,ab4,bb4]!2 ~ [d4,f4,ab4,bb4]@2 ~@3",
  W: "~@2 [bb3,c4,e4,g4]@5 ~ [bb3,c4,e4,g4]@3 ~ [bb3,c4,e4,g4]@2 ~@2", // C7
  X: "[ab3,c4,f4]!2 ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~", // Fm
  Y: "~@2 [d4,f4,ab4,bb4]@5 ~ [d4,f4,ab4,bb4]@3 ~ [d4,f4,ab4,bb4]@2 ~@2", // Bb7
  Z: "[g3,bb3,eb4] ~ [g3,bb3,eb4]@2 ~@4 [bb3,eb4,gb4]@7 ~", AA: "[c4,eb4,f4,ab4]@7 ~ [d4,f4,ab4,bb4]@7 ~",
  AB: "[bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@3 ~@3 [g3,bb3,d4]@3 ~@3", AC: "[g3,c4,eb4]@7 ~ [d4,f4,ab4,bb4]@7 ~",
  AD: "~@2 [g3,bb3,eb4]@3 ~@5 [g3,bb3,d4]@3 ~@3", AE: "[g3,c4,eb4]@7 ~ [ab3,bb3,d4,f4]@3 ~ [ab3,bb3,d4,f4]@3 ~",
  AF: "[g3,bb3,db4,f4]!2 ~ [g3,bb3,db4,f4]@2 ~@3", AG: "[bb3,c4,e4,g4]@7 ~ [bb3,c4,e4,g4]@2 ~@2 [bb3,c4,e4,g4]@2 ~@2",
  AH: "[d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@2 ~@4 [ab3,bb3,d4,gb4]@3 ~ [ab3,bb3,d4,gb4]@3 ~", // Bb7 Daug
  AI: "[g3,bb3,eb4]@7 ~ [g3,bb3,d4] ~ [g3,bb3,d4]@2 ~@4", // Eb Gm
})).s("gm_overdriven_guitar").gain(0.24).pan(0.8)

// drums · kick
const kick = s("bd").struct("<A B A@3 B A B A@5 B A B A@3 C@8 A@2 B A@4 B A B A B A@2>".pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x ~@2 x!3 ~ x", C: "x!2 ~ x!3 ~ x",
})).gain(0.31)

// drums · snare
const snare = s("sd").struct("<A@3 B A@4 C A D@2 A@4 D A C A@8 E A@3 C@2 A@7 D>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@3 x!4 ~@4", C: "~@4 x ~@6 x!2 ~ x ~", D: "~@3 x!2 ~@11", E: "~ x!7",
})).gain(0.37)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@8 A ~ B@2 ~@4 B ~ A ~@12 A@2 ~@7 B>".pickRestart({
  A: "~@5 x ~@2", B: "~ x ~@6",
})).gain(0.25)

// drums · low tom
const low_tom = s("lt").struct("<~@7 A ~@2 B@2 ~@3 C B ~@19 C ~@3 B>".pickRestart({
  A: "~@5 x ~@2", B: "~@7 x", C: "~ x ~@3 x ~@2",
})).gain(0.37)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@3 [~@12 x!4] ~@6 [~@3 x ~ x!2 ~]!2 ~@4 [~@3 x ~ x!2 ~] ~@23 [~@3 x ~ x!2 ~]>")
  .gain(0.37)

// drums · open hat
const open_hat = s("oh").struct("<~@16 [~@7 x] ~@6 [~@7 x] ~@9 [~@7 x] ~@7>").gain(0.31)

// drums · high tom
const high_tom = s("ht").struct("<~@10 [~ x]!2 ~@4 [~ x] ~@23 [~ x]>").gain(0.37)

// drums · crash
const crash = s("cr").struct("<~@4 A ~@4 B ~@2 A ~@4 B ~ A ~@8 B ~@4 A ~@7>".pickRestart({
  A: "x", B: "~ x ~@2",
})).gain(0.37)

// drums · tambourine
const tambourine = s("tb").struct("<~@19 [x!8]!8 [~ x!7] x ~@12>").gain(0.44)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@19 [x!8]!8 [~ x!7] x ~@12>").gain(2.21)

stack(
  bass, overdriven_guitar, kick, snare, snare_soft, low_tom, hihat, mid_tom, open_hat, high_tom, crash, tambourine,
  cabasa
)

More by The Beatles