Strudelify

Catch Us If You Can

The Dave Clark Five

KeyG majorTempo142 bpm
0:00/0:00
// Catch Us If You Can — The Dave Clark Five
// 142 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 70 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(142/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@9 A B C D E B F G@2 H I J I@2 H K L B C D E B F M@2 N O P Q R S T U V W X Y Z S AA AB AC H I J I@2 H K L B C D AD B
  F AE@3 AF@2
>`.pickRestart({
  A: "~@22 g1 ~", B: "a1@8 ~@2 a1 ~ a1@5 ~ a1@4 ~@2", C: "b1@8 ~@2 b1@2 f#1@5 ~ b1@4 ~@2",
  D: "g1@8 ~@2 g1@2 d2@5 ~ g2@5 ~", E: "e2@7 ~@3 e2@2 b1@5 ~ e2@5 ~", F: "b1@8 ~@2 b1 ~ f#2@5 ~ b1@5 ~",
  G: "[e2@35 ~@13]/2", H: "g1@11 ~", I: "g1@7 ~", J: "e1@23 ~", K: "e1@11 ~", L: "g1@21 ~ g1@2", M: "[e2@41 ~@7]/2",
  N: "g1@5 ~ b1@4 ~@2 d2@4 ~@2 b1@4 ~@2", O: "c2@4 ~@2 e2@5 ~ g2@4 ~@2 e2@4 ~@2", P: "g1@5 ~ b1@4 ~@2 d2@5 ~ b1@4 ~@2",
  Q: "d2@2 ~ c2@2 ~ b1@2 ~ a1@2 ~", R: "g1@4 ~@2 d2@5 ~ b1@4 ~@2 g1@4 ~@2", S: "c2@5 ~ g2@5 ~ e2@5 ~ c2@4 ~@2",
  T: "g1@5 ~ g2@5 ~ d2@4 ~@2 a2@5 ~", U: "g2@11 ~ d2@5 ~ d2@5 ~", V: "g1@4 ~@2 b1@4 ~@2 d2@5 ~ b1@5 ~",
  W: "c2@5 ~ g2@5 ~ e2@4 ~@2 c2@4 ~@2", X: "g1@5 ~ b1@5 ~ d2@5 ~ b1@5 ~", Y: "d2@5 ~ c2@5 ~ b1@5 ~ a1@5 ~",
  Z: "g1@4 ~@2 d2@5 ~ b1@5 ~ g1@4 ~@2", AA: "g1@5 ~ g2@5 ~ d2@5 ~ a2@4 ~@2", AB: "g2@11 ~", AC: "g2@7 ~",
  AD: "e2@7 ~@3 e2@2 b1@6 e2@5 ~", AE: "e2@23 ~", AF: "[g2@19 ~@5]/2",
})).s("gm_acoustic_bass").gain(0.72)

// chords · harmonica
const harmonica = note("<~@33 A@2 B C D E F G@2 H I J@2 K L M@2 ~@20>".pickRestart({
  A: "[~@16 b4@8 d5@3 ~ [d5,f5]@4 ~@2 [d5,f5]@11 ~ [d5,f5] ~, ~@8 g4@5 ~@11, ~@3 b4 ~@2]/2", // Dm
  B: "[c5,e5]@3 ~ [c5,e5]@4 ~@2 [c5,e5]@12 [c5,e5] ~", C: "[d5,f5]@2 ~@2 [d5,f5]@4 ~@2 [d5,f5]@12 [d5,f5] ~",
  D: "[d5,f5]@15 ~@3 c5@5 ~, ~@16 e5@7 ~", E: "[b4,d5]@4 [d5,f5]@3 ~@3 [d5,f5]@11 ~ d5@2, ~@22 f5 ~",
  F: "[c5,e5]@3 ~ [c5,e5]@4 ~@2 [c5,e5]@8 [c5,e5]@5 ~", // C
  G: "[[b4,d5]@5 ~ [b4,d5]@5 ~ [a4,c5]@3 ~ d5@2 [a4,c5]@2 ~@2 [g4,b4]@25 ~, ~@16 b4 ~@31]/2", // Bm Am G
  H: "[g4,b4]@3 ~ [g4,b4]@3 ~@3 [g4,b4]@5 ~ [g4,d5]@4 ~@2 [g4,b4] ~", // G G5 G
  I: "[g4,c5]@3 ~ [g4,c5]@3 ~@3 g4@7 ~ g4@3 ~ e5 ~, ~@10 c5@13 ~", // C5
  J: "[[g4,d5]@3 ~ [g4,b4]@3 ~@3 [g4,b4]@5 ~ [b4,d5]@3 ~@3 [d5,f5]@5 ~ [d5,f5] ~ [c5,e5]@4 c5 ~ [b4,d5]@3 ~ e5@2 [b4,d5]@3 ~ b4 ~, ~@22 c#5 ~@17 c5 ~@7]/2", // G5 G Bm Dm C Bm
  K: "[g4,b4]@3 ~ [b4,d5]@3 ~@3 [d5,f5]@4 ~@2 [d5,f5]@5 ~ f5@2, ~@22 d5 ~", // G Bm Dm
  L: "e5@3 ~ c5@4 ~@2 c5 ~@7 c5@3 ~ g4 ~, ~@4 e5 ~@5 g4@10 ~@4, ~@8 e5@3 ~",
  M: "[[g4,b4,d5]@3 ~@3 [b4,d5]@3 ~ [b4,d5] ~ [a4,c5]@3 ~ [b4,d5] ~ [a4,c5]@2 ~@2 [g4,b4]@21 ~@5]/2", // G Bm Am Bm Am G
})).s("gm_harmonica").gain(0.72)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B C A D E A F G A H@2 I J K@2 L@2 A@2 D E A F G A H@2 I J K@2 L@2 M N O P Q R S T U N V W U X Y@2 A@3 D E A F G A
  H@2 I J K@2 Z@3 AA@2
>`.pickRestart({
  A: "[g3,d4]@11 ~", B: "[g3,d4]", C: "g3, d4@11 ~", D: "[e3,b3]@7 ~", E: "[g3,d4]@23 ~", F: "[g3,d4]@7 ~",
  G: "[e3,b3]@23 ~", // E5
  H: "[[a4,c5]@4 ~@2 [a4,c5]@2 ~@2 c5@2 [a4,c5]@2 ~@2 [a4,c5]@4 ~@2 [d5,f#5]@8 d5@2 ~@2 b4 ~ b4@3 ~ b4@2 b4@4 ~@2, e5@22 b4@10 ~@2 d5@4 ~@2 d5@7 ~, ~@15 f#5@8 ~]/2", // Am D
  I: "[g4,b4,e5]@5 ~ [b4,d5]@3 ~ [b4,d5]@4 ~@2 [b4,d5]@7 ~, ~@3 g4@8 ~", // Em Bm
  J: "[g4,b4]@5 ~ [g4,b4] ~@3 g4@2 g4@3 ~ g4 ~ g4@4 b4@2, e5@23 ~, ~@10 b4@4 ~@2 b4@5 ~@3", // G
  K: "[[a4,c5]@5 ~ [a4,c5]@2 ~@2 [a4,c5] ~ [a4,c5]@3 ~ [a4,c5]@4 ~@2 d5@7 ~ d5@3 ~ d5 ~ d5@3 ~@3 b4@4 ~@2, e5@20 ~@2 b4@10 ~@2 b4@5 ~ d5@4 ~@4, ~@10 f#5@5 ~]/2", // Am
  L: "[[b4,e5]@11 ~@5]/2", M: "[g4,b4] ~@5 [g4,b4]@3 ~@7 g4 ~ [g4,b4]@3 ~@3", N: "~@2 [g4,c5] ~@3 [g4,c5] ~",
  O: "~@4 g4 ~ [g4,b4]@3 ~@9 [g4,b4]@3 ~@3", P: "~@6 [f#4,a4]@3 ~@7 f#4 ~ [f#4,a4] ~@3 [f#4,a4] ~",
  Q: "~@2 [g4,b4] ~@3 [g4,b4] ~", R: "~@4 g4 ~ [g4,c5]@3 ~@9 [g4,c5]@3 ~@3", S: "~@2 [g4,b4] ~@3 [f#4,a4] ~",
  T: "~@6 g4@2 ~@10 [d4,g4]@3 ~@3", U: "~@6 [g4,b4]@2 ~@10 [g4,b4]@3 ~@3", V: "~@3 [g4,b4] ~@5 [g4,b4] ~@2",
  W: "~@6 a4@3 ~ f#4 ~@7 [f#4,a4]@2 ~@4, ~@6 f#4 ~@17", X: "~@6 [g4,c5]@2 ~@10 [g4,c5]@3 ~ g4 ~",
  Y: "[~@6 b4@4 g4 ~ [f#4,a4] ~@3 [f#4,a4] ~ [f#4,a4] ~@3 [d4,g4]@22 ~@4, ~@3 g4 ~@20]/2", // F#m G5
  Z: "[[b4,e5]@7 ~ e5@7 ~ e5@7 ~, ~@22 g4@23 ~ g4@23 ~@3, ~@23 b4@22 ~@2 b4@22 ~@3]/3", AA: "[[g4,b4,d5]@19 ~@5]/2",
})).s("gm_acoustic_guitar_steel").gain(0.48)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
  ~@10 A B C D A E F ~@9 A B C D A E F ~ G H I J I K L I G H G M I K N O P ~@8 A B C D A E F ~@4
>`.pickRestart({
  A: "[e4,a4,c5]@23 ~", B: "[f#4,b4,d5]@23 ~", C: "[d4,g4,b4]@23 ~", D: "[e4,g4,b4]@11 ~", E: "[f#4,d5], b4@11 ~",
  F: "[e4,g4,b4]", G: "[b4,d5,g5]@23 ~", H: "[c5,e5,g5]@23 ~", I: "[b4,d5,g5]@11 ~", J: "[d5,f#5,a5]@11 ~",
  K: "[c5,e5,g5]@11 ~", L: "[b4,d5,g5]@11 ~ [d5,f#5,a5]@10 ~@2", M: "[d5,f#5,a5]@23 ~",
  N: "[b4,d5,g5]@5 ~ [d5,f#5,a5]@5 ~", O: "[b4,d5,g5]", P: "g3@11 ~",
})).s("gm_drawbar_organ").gain(0.66)

// drums · kick
const kick = s("bd").struct("<~@9 A B@15 C B@15 C B@7 C B@8 C B@8 D E ~>".pickRestart({
  A: "~@11 x", B: "x ~@4 x!2 ~@5", C: "x ~@4 x!2 ~@4 x", D: "~@5 x!2 ~@5", E: "x",
})).gain(0.64)

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

// drums · clap
const clap = s("cp").struct("<[~ x ~ x]!10 ~@8 [~ x ~ x]!8 ~@8 [~ x ~ x]!25 ~@11>").gain(0.71)

// drums · hihat
const hihat = s("hh").struct("<~@10 [x ~@2 x ~ x!2 ~ x!2 ~ x]!58 ~@2>").gain(0.64)

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

stack(bass, harmonica, acoustic_guitar_steel, drawbar_organ, kick, snare, clap, hihat, crash)

More by The Dave Clark Five