Strudelify

batman 1966 theme

Raul Huezo

KeyE♭ majorTempo152 bpm
0:00/0:00
// batman 1966 theme — Raul Huezo
// 152 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 8 "Trombone" trombone (copy of ch 4 "Tenor Saxophone" tenor sax)
// note: Transcription provider: pdmx. https://musescore.com/score/349256; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 31 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(152/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.

// other · flute
const flute = note("<~@12 A ~ A ~ B ~ A ~ C B A ~ C B A ~@3 D>".pickRestart({
  A: "ab5 ab5@3", B: "db6 db6@3", C: "eb6 eb6@3", D: "ab5 ~@3",
})).s("gm_flute").gain(0.3)

// other · clarinet · "Bb Clarinet"
const clarinet = note("<~@12 A ~ A ~ B ~ A ~ C B A ~ C B A ~@3 D>".pickRestart({
  A: "eb5 eb5@3", B: "ab5 ab5@3", C: "bb5 bb5@3", D: "ab4 ~@3",
})).s("gm_clarinet").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<~@12 A ~ A ~ B ~ A ~ C B A ~ C B A ~@3 D>".pickRestart({
  A: "eb4 eb4@3", B: "ab4 ab4@3", C: "bb4 bb4@3", D: "ab4 ~@3",
})).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<A@4 B@2 A@2 C B A@6 B@2 A@2 C B A@2 C B A@4 D>".pickRestart({
  A: "eb3!2 d3!2 db3!2 d3!2", B: "ab3!2 g3!2 gb3!2 g3!2", C: "bb3!2 a3!2 ab3!2 a3!2", D: "ab3 ~@3",
})).s("gm_tenor_sax").gain(0.3)

// other · trumpet · "Bb Trumpet"
const trumpet = note("<~@12 A ~ A ~ B ~ A ~ C B A ~ C B A ~@3 D>".pickRestart({
  A: "ab4 ab4@3", B: "db5 db5@3", C: "eb5 eb5@3", D: "ab4 ~@3",
})).s("gm_trumpet").gain(0.3)

// bass · tuba · "Euphonium"
const bass = note("<A@4 B@2 A@2 C B A@6 B@2 A@2 C B A@2 C B A@4 D>".pickRestart({
  A: "ab2!8", B: "db3!8", C: "eb3!8", D: "ab2 ~@3",
})).s("gm_tuba").gain(0.3)

// bass · tuba · "C Tuba"
const bass_2 = note("<A@4 B@2 A@2 C B A@6 B@2 A@2 C B A@2 C B A@4 D>".pickRestart({
  A: "[ab1,ab2]!8", B: "[db2,db3]!8", C: "[eb2,eb3]!8", D: "ab2 ~@3",
})).s("gm_tuba").gain(0.3)

// other · tinkle bell · "High Hand Bells"
const tinkle_bell = note("<A@4 B@2 A@2 C B A@2 D A D A E B D A F E G A F E G A@3 H>".pickRestart({
  A: "eb6!2 d6!2 db6!2 d6!2", B: "ab6!2 g6!2 gb6!2 g6!2", C: "bb6!2 a6!2 ab6!2 a6!2", D: "ab6 ab6@3", E: "db6 db6@3",
  F: "eb6 eb6@3", G: "ab5 ab5@3", H: "[ab5,ab6] ~@3",
})).s("gm_tinkle_bell").gain(0.3)

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

// drums · rim
const rim = s("rim").struct("<A@3 B C B C B C A@2 D ~@19>".pickRestart({
  A: "~@2 x!2 ~@2 x ~", B: "~@4 x ~ x ~@5 x!4", C: "x ~ x!2 ~@2 x ~", D: "~@2 x!2 ~@4",
})).gain(0.3)

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

// drums · low tom
const low_tom = s("lt").struct("<~@11 A B C@2 D B C@2 D B C@2 D B C@4 D E>".pickRestart({
  A: "~@12 x!4", B: "x ~ x!2 ~@2 x ~", C: "~@2 x!2 ~@2 x ~", D: "~@4 x ~ x ~@5 x!4", E: "x",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<[~ x ~ x]!30 x>").gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<~@12 A@3 B A@3 B A@3 B A@5 B C>".pickRestart({
  A: "~@2 x!2 ~@2 x ~", B: "~@2 x!2 ~@4", C: "x",
})).gain(0.3)

stack(
  flute, clarinet, alto_sax, tenor_sax, trumpet, bass, bass_2, tinkle_bell, kick, rim, snare, low_tom, hihat, mid_tom
)