Strudelify
KeyG majorTempo120 bpm
0:00/0:00
// Because — The Dave Clark Five
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 2 "ElGitCln" electric guitar clean (copy of ch 1 "HamOrg" drawbar organ)
// note: Full arrangement: all 72 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 · [...]/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.

// other · drawbar organ · "HamOrg"
const drawbar_organ = note(`<
  ~@3 A B C D E F G H I J K L M N O P ~ Q R S T U V W@2 X Y Z AA AB AC H I J K AD M N O P AE AF AG P AG AH AI P AJ AK Y
  Z ~@2 AC H I J K AD M N O P AL AM AN AO@2
>`.pickRestart({
  A: "d#4@3 ~", B: "b4@3 d4", C: "d#4@2 b4@2 a4@3 g4", D: "b4 e4@3", E: "~@7 g4", F: "c5@3 c5 d5@2 c5@2",
  G: "b4@2 g4@3 ~ a4 b4", H: "a4", I: "a#4@3 b4", J: "d5@3 d5", K: "d#5@3 b4", L: "a4 g4@2 g4 a4@2 b4@2",
  M: "a4 g4@4 ~ a4@2", N: "b4@3 b4", O: "a4@8 b4@3 b4@3 b4@2", P: "g4", Q: "~ a4!3", R: "a4@6 a4@2 e5@3 d5@3 e5@2",
  S: "d5@13 ~@3", T: "~@2 b4@2 ~ b4 ~@2", U: "~@4 a4@3 ~ a4@3 ~ a4@3 ~", V: "b4@2 b4@3 ~ a4@8 a4@2",
  W: "[a4@2 a4@2 e5 e5@2 d5@5 a#4@4]/2", X: "b4@2 d4!2", Y: "d#4 b4 a4 g4", Z: "b4 e4@7", AA: "~@4 f4@3 ~@3 f4@2 ~@4",
  AB: "c5@13 ~@3", AC: "~@3 b4@3 g4@2 g4@3 a4@3 b4@2", AD: "a4 g4@3 a4@2 b4@2", AE: "~@4 g4@3 ~@3 f#4@2 ~@4", AF: "d4",
  AG: "d#4", AH: "e5@4 e5@4 e5@2 d5@4 f5 e5", AI: "d5@4 b4 b4@2 b4", AJ: "d#4@3 d#4 d4@4", AK: "b4@6 ~@2 d4@3 ~ d4@3 ~",
  AL: "g#4@3 b4", AM: "a4@3 a4", AN: "b4@8 b4@3 b4@3 b4@2", AO: "[g4@29 ~@3]/2",
})).s("gm_drawbar_organ").gain(0.78)

// other · drawbar organ · "HamOrg" · soft notes
const drawbar_organ_soft = note("<A B C D ~@3 E ~@47 E F ~@15>".pickRestart({
  A: "d4@13 ~@3", B: "d#4@13 ~@3", C: "g4@13 ~@3", D: "~@12 d4@3 ~", E: "~@4 f4@3 ~@3 f4@2 ~@4", F: "c5@13 ~@3",
})).s("gm_drawbar_organ").gain(0.47)

// other · drawbar organ · "HamOrg"
const drawbar_organ_2 = note(`<
  A@2 B A@4 C D@2 E@2 A@2 F G H G I@2 J G K L M E C N C@4 M@2 G@2 C@2 G@2 C E K O A@2 B A G M K P C@4 M@2 G@2 C@2 G@2 C
  E K@2 G M K Q
>`.pickRestart({
  A: "~ g4@14 ~", B: "~ b4@14 ~", C: "g4", D: "g4/2", E: "f#4", F: "~ c5@14 ~", G: "c5", H: "~ d5@14 ~", I: "b4/2",
  J: "~ a4@14 ~", K: "b4", L: "e4", M: "a4", N: "~@2 f#4@2 ~ c4 ~@2", O: "g4 f#4", P: "c#5 c5", Q: "g3",
})).s("gm_drawbar_organ").gain(0.56)

// other · fretless bass · "FrtlsBas"
const fretless_bass = note(`<
  A B C D E@2 F G H I J@2 K@2 J@2 L M G N O P K L O J Q R S G F G H T J@2 K@2 J@2 L M G U D B C V J M G W S G F G H T
  J@2 K@2 J@2 L M G@2 J M G X
>`.pickRestart({
  A: "~@4 b3@3 ~ b3@3 ~@5", B: "~ d4!2 ~", C: "~ e4!2 ~", D: "~ b3!2 ~", E: "b3@2 b3@2 ~ b3 ~@2",
  F: "~@2 g3@2 ~ g3 ~@2", G: "~@2 b3@2 ~ b3 ~@2", H: "e4@2 e4@2 ~ e4 ~@2", I: "c4!2 ~ c4", J: "~@2 c4@2 ~ c4 ~@2",
  K: "~@2 g4@2 ~ g4 ~@2", L: "~@2 d4@2 ~ d4 ~@2", M: "~ c4 c4@2", N: "~@2 b3 b3@2 b3!3", O: "c4@2 c4@2 ~ c4 ~@2",
  P: "~ c4 f#4@2", Q: "~@2 c#4@2 ~ g4 ~@2", R: "~@2 a4@2 ~ f#4 ~@2", S: "~@2 b3@2 ~ g3 ~@2", T: "~@3 c4@13",
  U: "~@2 a#3@2 ~ a3 ~@2", V: "~ f4!2 ~", W: "a#3 f#3", X: "g4",
})).s("gm_fretless_bass").gain(0.56)

// other · electric guitar muted · "ElGitMut"
const electric_guitar_muted = note(`<
  A B@7 C@2 D@2 B@2 E F G H I J C K L M C N O P B@4 Q R D@2 B@2 E F G H S T B@4 E H S U B@4 Q R D@2 B@2 E F G H V W C K
  X Y
>`.pickRestart({
  A: "g2@3 ~@3 g2@2 g2@3 ~@5", B: "g2@2 ~ g2 g2@2 ~@2", C: "a2@2 ~ a2 e3@2 ~@2", D: "d3@2 ~ d3 a2@2 ~@2",
  E: "c3@2 ~ c3 g2@2 ~@2", F: "c3@2 ~ c3 g2@2 c3@2", G: "g2@2 ~ g2 d3@2 ~@2", H: "a2@2 ~ a2 d3@2 ~@2",
  I: "g2@2 ~ g2 d2@2 d2@2", J: "g2@2 g2 g2@2 g2!3", K: "d3@2 ~ d3 d3@2 ~@2", L: "g3@2 ~ g3 g3@2 ~@2",
  M: "e3@2 ~ e3 b2@2 ~@2", N: "d3@2 ~ d3 a2@2 d3@2", O: "a2@2 ~ a2 e3@2 a2@2", P: "d3@2 ~ d3 a#2@2 d3@2",
  Q: "a2@2 ~ a2 ~@2 e3@2", R: "a2 ~ a2 ~", S: "g3@2 ~ g3 d3@2 g3@2", T: "d#3@2 ~ d#3 d3@2 ~@2", U: "d#3@2 ~ d#3 d3@4",
  V: "g2@2 ~ g2 d3@2 g2@2", W: "e3@2 ~ e3 b2@2 e3@2", X: "g3@2 ~ g3 d3@2 b2@2", Y: "g2",
})).s("gm_electric_guitar_muted").gain(0.63)

// drums · snare
const snare = s("sd").struct("<A@8 B@10 A C B D B@4 A C B@16 A@4 B@3 C B@19 E>".pickRestart({
  A: "x ~@2 x!4 ~", B: "x ~@2 x!2 ~ x ~", C: "x ~@2 x!5", D: "x ~@2 x!2 ~ x!2", E: "x",
})).gain(0.21)

// drums · open hat
const open_hat = s("oh").struct("<[~@3 x]!19 [~@3 x!5] [x ~@2 x] [~@3 x]!50 ~>").gain(0.21)

// drums · crash
const crash = s("cr").struct("<~@71 x>").gain(0.21)

stack(drawbar_organ, drawbar_organ_soft, drawbar_organ_2, fretless_bass, electric_guitar_muted, snare, open_hat, crash)

More by The Dave Clark Five