Strudelify

halloween theme

Re. Zuhair Nur Faizal

KeyA majorTempo90 bpm
0:00/0:00
// halloween theme — Re. Zuhair Nur Faizal
// 90 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Piano" named as a piano, played on piano (its pizzicato strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5967842; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 28 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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 · piano
const piano = note("f#1@4 ~@12 f#1 ~ f#1 ~@13").s("gm_piano").gain(0.45)

// bass · electric bass pick · "Bass Guitar"
const bass = note("f#1!8").s("gm_electric_bass_pick").gain(0.15)

// other · brass section · "Brass"
const brass_section = note("<~@4 A B A B A B A B A B A B C@8 D E D E>".pickRestart({
  A: "f#2@4 ~@12 f#2 ~ f#2 ~@13", B: "f#2@4 ~@12 f#2 ~ f#2 ~@5 f2@8",
  C: "[f#2,f#3]@4 ~@12 [f#2,f#3] ~ [f#2,f#3] ~ [g2,g3]@12", D: "[f#2,f#3]@4 ~@12 [f#2,f#3] ~ [f#2,f#3] ~@13",
  E: "[f#2,f#3]@4 ~@12 [f#2,f#3] ~ [f#2,f#3] ~@5 [f2,f3]@8", // F# F
})).s("gm_brass_section").gain(0.45)

// other · string ensemble 1 · "Violas"
const string_ensemble_1 = note("<~@4 A@4 B@2 C@2 B@2 C@2 A D A D A D A D ~@4>".pickRestart({
  A: "~@4 f#3@2 ~@2 f#3@2 ~@2 f#3@2 ~@2 f#3 ~ f#3 ~@13", B: "d5 ~ d5 ~ d5 ~ d5 ~", C: "c#5 ~ c#5 ~ c#5 ~ c#5 ~",
  D: "~@4 f#3@2 ~@2 f#3@2 ~@2 f#3@2 ~@2 f#3 ~ f#3 ~@5 f3@8",
})).s("gm_string_ensemble_1").gain(0.3)

// bass · string ensemble 1 · "Violoncellos"
const bass_2 = note("<~@4 A@13 B A B A B A B A@4>".pickRestart({
  A: "~@4 f#2@2 ~@2 f#2@2 ~@2 f#2@2 ~@2 f#2 ~ f#2 ~@13", B: "~@4 f#2@2 ~@2 f#2@2 ~@2 f#2@2 ~@2 f#2 ~ f#2 ~@5 f2@8",
})).s("gm_string_ensemble_1").gain(0.5)

// other · tuba
const tuba = note("<~@16 [f#2 ~@7]!12>").s("gm_tuba").gain(0.5)

// other · timpani
const timpani = note("<~@4 [f#2@4 ~@4 f#2!2 ~@6]!24>").s("gm_timpani").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@4 x!12 [x ~@7 x!2 ~@6]!4 [x!4]!4 [x ~@7 x!2 ~@6]!4>").gain(0.3)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  [x ~@7 x!2 ~@6]
  [x ~@15 x ~ x ~@5 x!8]
  [x ~@7 x!2 ~@6]
  [x ~@15 x ~ x ~@5 x!8]
  ~@24
>`).gain(0.15)

stack(piano, bass, brass_section, string_ensemble_1, bass_2, tuba, timpani, kick, snare, snare_soft)