Strudelify
Crocket's Theme cover art

1991 · Escape From Television

Crocket's Theme

Jan Hammer

KeyC minorTempo100 bpm
0:00/0:00
// Crocket's Theme — Jan Hammer
// 100 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A@4 B C D E B F D E G@2 B C D E B F D E G@2 B C D E B F D E G@2 B C D E B F D H I@2 J@5 K B C D E B F D E G@2 B C D E
  B F D H I@3 D I D I L B C D E B F D E G@2 M N@5
>`.pickRestart({
  A: "d2!12 d3 d2!3", B: "d1 d2 d1 d2 d1 d2 d1 d2 f1 f2 f1 f2 f1 f2 f1 f2",
  C: "c1 c2 c1 c2 c1 c2 c1 c2 c1 c2 c1 c2 c1 c2 c1 c2",
  D: "eb1 eb2 eb1 eb2 eb1 eb2 eb1 eb2 eb1 eb2 eb1 eb2 eb1 eb2 eb1 eb2",
  E: "c2 c3 c2 c3 c2 c3 c2 c3 g1 g2 g1 g2 g1 g2 g1 g2", F: "c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3",
  G: "d1 d2 d1 d2 d1 d2 d1 d2 d1 d2 d1 d2 d1 d2 d1 d2",
  H: "eb1 eb2 eb1 eb2 eb1 eb2 eb1 eb2 bb1 bb2 bb1 bb2 bb1 bb2 bb1 bb2",
  I: "f1 f2 f1 f2 f1 f2 f1 f2 f1 f2 f1 f2 f1 f2 f1 f2", J: "f1!7 f2 f1!8", K: "a1 a2 a1 a2 a1!12",
  L: "a1 a2 a1 a2 a1 a2 a1 a2 a1 a2 a1 a2 a1 a2 a1 a2", M: "d1!10 [c1,d1]!2 d1!3 c1",
  N: "[c1,d1] d1!9 [c1,d1]!2 d1!3 c1", // Csus2
})).s("gm_electric_bass_finger").gain(0.64)

// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@2 A ~@9 A ~@11 B C D E B C D E F ~ B C D E B C D G H ~@6 I B C D E B C D E F ~ B C D E B C D G H ~@6 I B C D E B C D
  E F ~@7
>`.pickRestart({
  A: "[d2,d3]@13 ~@3", B: "[d2,d3] [f2,f3]", C: "[c2,c3]", D: "[eb2,eb3]", E: "[c2,c3] [g2,g3]", F: "[d2,d3]",
  G: "[eb2,eb3] [bb2,bb3]", H: "[f2,f3]", I: "[a2,a3]@13 ~@3",
})).s("gm_synth_brass_1").gain(0.39)

// chords · synth strings 2 · "SYN STR 2"
const synth_strings_2 = note(`<
  ~@4 A B C D A B C D E ~ A B C D A B C D E ~ A B C D A B C D E ~ A B C D A B C F G H G H G H I J A B C D A B C D E ~ A
  B C D A B C F G H G H G H I J A B C D A B C D E ~@7
>`.pickRestart({
  A: "[f4,a4,d5] [f4,a4,c5]", B: "[e4,g4,c5]", C: "[eb4,g4,bb4]", D: "[g4,c5,eb5] [g4,bb4,d5]", E: "[f4,a4,d5]",
  F: "[eb4,g4,bb4] [f4,bb4,d5]", G: "[f3,f4,a4,c5]", H: "[eb3,eb4,g4,bb4]", I: "[c4,f4,a4]", J: "[e4,a4,c5]",
})).s("gm_synth_strings_2").gain(0.46)

// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<~@50 A@2 B C D@2 E F@2 ~ G H I J K L M N@2 ~@23>".pickRestart({
  A: "[~@4 d5@2 c5 ~ a4@4 f4@2 g4@5 ~ f4 ~ g4@9 ~]/2", B: "g4@3 ~ f4 ~ g4@8 f4@2", C: "g4@3 ~ f4 ~ d4@9 ~",
  D: "[~@4 d5 ~ c5 ~ a4@4 f4 ~ g4@5 ~ f4 ~ g4@8 ~@2]/2", E: "g4@4 f4@2 g4@5 ~ g4@2 f4 ~",
  F: "[g4@3 ~ g4@2 f4 ~ [ab4,a4]@2 g4 ~ f4 ~ d4@18]/2", G: "~@4 d5@2 c5 ~ a4@5 ~ f4 ~", H: "g4@3 ~ f4 ~ g4@6 ~@4",
  I: "g4@3 ~ f4 ~ g4@6 ~@2 f4 ~", J: "g4@3 ~ f4 ~ d4@8 ~@2", K: "~@4 d5@2 c5 ~ a4@4 ~@2 f4 ~",
  L: "g4@3 ~ f4 ~ g4@7 ~@3", M: "g4@3 ~ f4 ~ g4@5 ~ g4@2 a4 ~", N: "[bb4@3 ~ bb4 ~ c5 ~ d5@2 bb4 ~ c5 ~ f4@16 ~@2]/2",
})).s("gm_electric_guitar_jazz").gain(0.48)

// drums · kick
const kick = s("bd").struct("x!4").gain(0.78)

// drums · clap
const clap = s("cp").struct("<~@42 [~ x ~ x]!34 ~@16>").gain(0.62)

// drums · hihat
const hihat = s("hh").struct("x!16").gain(0.47)

// drums · bongos
const bongos = s("bongo:18").struct("<~@50 [~@2 x!2 ~@7 x ~@4]!25 ~@17>").gain(1.43)

// drums · congas
const congas = s("conga:13").struct("<~@50 [~@3 x ~ x ~ x]!25 ~@17>").gain(1.74)

// drums · congas
const congas_2 = s("conga:18").struct("<~@50 [x!2 ~@2 x ~@4 x ~@2 x ~@3]!25 ~@17>").gain(1.74)

// drums · congas
const congas_3 = s("conga:33").struct("<~@50 [~ x]!25 ~@17>").gain(1.74)

// drums · lt
const lt = s("lt").struct("<~@42 [~ x ~ x]!34 ~@16>").gain(0.62)

stack(
  bass, synth_brass_1, synth_strings_2, electric_guitar_jazz, kick, clap, hihat, bongos, congas, congas_2, congas_3, lt
)

More by Jan Hammer