Strudelify

Destiny

Zero

KeyD♭ majorTempo116 bpm
0:00/0:00
// Destiny — Zero
// 116 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "Orchestra Hits" named as a string part, played on string ensemble 1 (its clavinet patch is not one)
// note: Full arrangement: all 101 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(116/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.

// other · string ensemble 1 · "Orchestra Hits"
const string_ensemble_1 = note(`<
  ~@3 A B ~@3 B ~@2 C D ~@6 C D ~@7 D ~@6 C D ~@6 C D C ~@10 D ~@8 D ~@7 D ~@6 C D ~@6 C D ~@6 C D ~@2 E
>`.pickRestart({
  A: "~@7 [db2,db3,db4,db5,db6]", B: "[eb2,eb3,eb4,eb5,eb6] ~@7", C: "~@7 [db3,db4,db5,db6]",
  D: "[eb3,eb4,eb5,eb6] ~@7", E: "~@6 [eb3,eb4,eb5] ~",
})).s("gm_string_ensemble_1").gain(0.41)

// bass · slap bass 1 · "Bassline"
const bass = note(`<
  ~@3 A B ~@3 B ~@3 C D E F C D E F G H I@2 G H I@2 C D E F C D E F G H I@2 G H J K ~@4 L M N O L P N O G H Q R G H S
  T@2 G H I@2 G H J K C D E F C D E F G H I@2 G H J U G H I@2 G H J U G H J F
>`.pickRestart({
  A: "~@7 [db2,db3]", B: "[eb2,eb3] ~@3", C: "eb2 ~@2 eb2 ~@4", D: "eb2 eb2@2 eb2 ~@4", E: "eb2 ~@2 eb2 ~@3 db2",
  F: "eb2!2 db2 eb2@3 ~@2", G: "eb2", H: "db2", I: "[b1@7 db2]/2", J: "b1@7 db2", K: "eb2!2 db2 eb2@2 ~@3",
  L: "gb2@12 gb2 ab2 gb2 db2", M: "eb2 ~@6 db2", N: "eb2@2 gb2@2 ab2@8 gb2 ab2 gb2 db2", O: "eb2 ~@7",
  P: "eb2@2 ~@6 ab2@2 gb2 eb2 db2 bb1 gb1 db2", Q: "bb1@3 gb1@5", R: "e1", S: "b1", T: "bb1/2", U: "eb2!2 db2 eb2@5",
})).s("gm_slap_bass_1").gain(0.41)

// chords · synth strings 1 · "Chords"
const synth_strings_1 = note(`<
  ~@12 A B C D A B C D A E F@2 A E G@2 A B C D A B C D A E F@2 A E H I ~@4 J@8 A B C K D L M N@2 A E F@2 A E H I A B C D
  A B C D A E F@2 A E H O A E F@2 A E H O A E H I
>`.pickRestart({
  A: "[eb4,gb4,bb4]", B: "[db4,f4,ab4]", C: "[bb3,db4,f4]", D: "[bb3,eb4,gb4]", E: "[db4,f4,bb4]",
  F: "[[b3,eb4,gb4,bb4]@7 [db4,f4,ab4,bb4]]/2", G: "[[b3,eb4,gb4,bb4]@14 [db4,f4,ab4,bb4] [db4,db5]]/2",
  H: "[b3,eb4,gb4,bb4]@7 db5", I: "[eb4,gb4,bb4,eb5]@2 [db4,f4,ab4,db5] [eb4,gb4,bb4,eb5]@3 ~@2", J: "[eb4,gb4,bb4]/8",
  K: "[b3,e4,ab4]", L: "[db4,e4,ab4]", M: "[b3,eb4,gb4]", N: "[bb3,db4,f4,ab4]/2",
  O: "[eb4,gb4,bb4,eb5]@2 [db4,f4,ab4,db5] [eb4,gb4,bb4,eb5]@5", // Ebm Db Ebm
})).s("gm_synth_strings_1").gain(0.32)

// drums · kick
const kick = s("bd").struct(`<
  A B@2 C A B@2 C A B@2 C A B@2 C A B@2 C D E F G D E F G A B@2 C A B@2 C D E F G D E F G H I J K H I J K H I J K H I J
  K H I J@2 G D E F G D E F G A B@2 C A B@2 C D E F G D E F G D E F G D E F G D E F E
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "x ~@2 x ~@3 x", C: "x!2 ~ x ~ x ~ x", D: "x ~@6 x!2 ~@7", E: "x!4 ~ x ~ x!2 ~@7",
  F: "x ~@6 x!2 ~ x ~@3 x ~", G: "x!3 ~@2 x ~@2 x ~@5 x ~", H: "x!4 ~ x ~ x!3 ~@4 x ~", I: "x ~ x ~@2 x ~ x!4 ~@5",
  J: "x!3 ~@2 x!4 ~ x ~@4 x", K: "x!3 ~@2 x ~ x ~@2 x ~@3 x ~",
})).gain(0.41)

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!55 [~@4 x ~@2 x ~ x ~ x!5] [~ x ~ x]!44 [~ x ~@2]>").gain(0.41)

// drums · clap
const clap = s("cp").struct("<~@55 [~@11 x!5] ~@45>").gain(0.51)

// drums · pedal hat
const pedal_hat = s("hh").struct("<[x ~ x!3 ~ x!3 ~ x!3 ~ x!2]!100 [x ~ x!3 ~ x!3 ~ x!2 ~@4]>").gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<[~@7 x]!100 ~>").gain(0.41)

// drums · high tom
const high_tom = s("ht").struct("<[~@7 x]!100 ~>").gain(0.41)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A
  C A B A@2 C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A D
>`.pickRestart({
  A: "~@7 x", B: "x!5 ~ x!5 ~ x!3 ~", C: "~@8 x!5 ~ x ~", D: "x!5 ~ x!5 ~@5",
})).gain(0.41)

// drums · cowbell
const cowbell = s("cb").struct("<~@20 A@7 B ~@8 A@28 B A@8 ~@8 A@19 C>".pickRestart({
  A: "x ~ x ~ x ~ x!2 ~ x ~ x!2 ~ x ~", B: "x!3 ~@5", C: "x ~ x ~ x ~ x!2 ~ x ~ x ~@4",
})).gain(0.41)

stack(string_ensemble_1, bass, synth_strings_1, kick, snare, clap, pedal_hat, mid_tom, high_tom, ride_bell, cowbell)

More by Zero