Strudelify

Are You Ready to Fly

Rozalla

KeyE♭ majorTempo120 bpm
0:00/0:00
// Are You Ready to Fly — Rozalla
// 120 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 12 orchestra hit (copy of ch 7 pad choir)
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// chords · piano
const piano = note(`<
  ~@8 A B C D A B C D A B C D A B C D A B C D A B C E A B C D A B C F A B C D A B C D A B C D A B C E A B C D A B C F A
  B C D A B C F ~@4 A B C D A B C D A B C D A B C D A B C D A B C E A B C D A B C F A B C D A B C F A B C D A B C F G@3
>`.pickRestart({
  A: "c3@2 [eb4,g4,bb4] ~ c3 [eb4,g4,bb4] ~ c3 [eb4,g4,bb4] ~ c3 [eb4,g4,bb4] ~ c3 [eb4,g4,bb4] ~", // Eb
  B: "bb2@2 [bb3,d4,f4] ~ bb2 [bb3,d4,f4] ~ bb2 [bb3,d4,f4] ~ bb2 [bb3,d4,f4] ~ bb2 [bb3,d4,f4] ~", // Bb
  C: "ab2@2 [c4,eb4,g4] ~ ab2 [c4,eb4,g4] ~ ab2 [c4,eb4,g4] ~ ab2 [c4,eb4,g4] ~ ab2 [c4,eb4,g4] ~", // Cm
  D: "bb2@2 [d4,f4,bb4] ~ bb2 [d4,f4,bb4] ~ bb2 [eb4,f4,bb4] ~ [eb4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~", // Bb Ebsus2 Bb
  E: "bb2@2 [bb3,eb4,f4] ~ bb2 [bb3,eb4,f4] ~ bb2 [bb3,d4,f4] ~ bb2 [bb3,d4,f4] ~ bb2 [bb3,d4,f4] ~", // Bbsus4 Bb
  F: "bb2@2 [d4,f4,bb4] ~ bb2 [d4,f4,bb4] ~ bb2 [bb3,d4,f4]@4 [bb3,d4,g4]@2 [bb3,d4,ab4] ~", // Bb Gm Bb7
  G: "[[c3,bb3,c4,eb4]@5 ~]/3", // Cm7
})).s("gm_piano").gain(0.35)

// bass · synth bass 2
const bass = note(`<
  ~@4 A B C D A B C E A B C D A B C E A B C E A B C E A B C D A B C E A B C D A B C E A B C E A B C E A B C D A B C E A
  B C D A B C E A B C D ~@4 A B C E A B C D A B C E A B C E A B C E A B C D A B C E A B C E A B C E A B C E A B C E A B
  C E F@3
>`.pickRestart({
  A: "c2@2 ~ c2 ~@2 c2 ~ eb2@2 ~ c2@2 ~ c2!2", B: "bb1@2 ~ bb1@2 ~ bb1 ~ bb1@2 ~ bb1@2 ~ g1@2",
  C: "ab1@2 ~ ab1@2 ~ ab1 ~ ab1@2 ~ ab1@2 ~ g1 ab1", D: "bb1 ~@7", E: "bb1@2 ~ bb1@2 ~ bb1 ~ bb1 ~ bb1 ~ bb1@3 ~",
  F: "[c2@5 ~]/3",
})).s("gm_synth_bass_2").gain(0.45)

// chords · percussive organ
const percussive_organ = note(`<
  ~@4 A B C D A B C D A B C D ~@16 A B C D A B C D ~@16 A B C D A B C D A B C D A B C D ~@4 A B C D A B C D ~@16 A B C D
  A B C D A B C D A B C D A B C D A B C D E@2 ~
>`.pickRestart({
  A: "[c6,eb6,g6] ~ [c6,eb6,g6]@3 ~ [c6,eb6,f6] ~ [c6,eb6,g6]@2 ~ [c6,eb6,g6]@2 ~ [bb5,c6,eb6] ~", // Cm F7 Cm Cm7
  B: "~@2 [bb5,d6,g6]@3 ~ [bb5,d6,f6] ~ [bb5,d6,g6] ~@2 [bb5,d6,g6]@2 ~ [bb5,d6,ab6] ~", // Gm Bb Gm Bb7
  C: "[c6,eb6,g6] ~ [c6,eb6,g6]@3 ~ [c6,eb6,f6] ~ [c6,eb6,g6] ~@2 [c6,eb6,g6]@2 ~ [c6,eb6] ~", // Cm F7 Cm
  D: "~@2 [c6,eb6,g6]@3 ~ [c6,eb6,g6] ~ [c6,eb6,f6]@2 ~ [c6,eb6,g6]@2 ~ [c6,eb6,ab6] ~", E: "[g5,bb5,c6]/2",
})).s("gm_percussive_organ").gain(0.3).pan(0.3)

// chords · lead 4 chiff
const lead_4_chiff = note(`<
  ~@8 A B A C A B A C A D E C A D E C A D E C A D E C A D E C A D E C A D E C A D E C A D E C A D E C A D E C A D E C A
  D E C A D E C ~@4 A B A C A B A C A D E C A D E C A D E C A D E C A D E C A D E C A D E C A D E C A D E C A D E C F@3
>`.pickRestart({
  A: "[g3,c4,eb4]", B: "[g3,bb3,d4]", C: "eb4 d4, [f3,bb3]", D: "[f3,bb3,d4]", E: "[ab3,c4,eb4]",
  F: "[[g3,bb3,eb4]@13 ~@3]/3", // Eb
})).s("gm_lead_4_chiff").gain(0.35).pan(0.7)

// other · pad poly
const pad_poly = note(`<
  [c3@2 c4 ~ c3 c4 ~ c3 c4 ~ c3 c4 ~ c3 c4 ~]!8
  ~@64
  [c3@2 c4 ~ c3 c4 ~ c3 c4 ~ c3 c4 ~ c3 c4 ~]!4
  ~@51
>`).s("gm_pad_poly").gain(0.4).pan(0.6)

// other · pad choir
const pad_choir = note("<A ~ A B ~@68 A ~ A ~@52>".pickRestart({
  A: "[c4,c5] ~@2 [c4,c5] ~@2 [c4,c5] ~@9", B: "~@14 [c4,c5]!2",
})).s("gm_pad_choir").gain(0.4)

// other · string ensemble 1
const string_ensemble_1 = note("<~@4 A@12 ~@15 B A@8 ~@15 B A@16 ~@20 A@32 C@3>".pickRestart({
  A: "[g5@7 f5]/4", B: "eb4 d4", C: "[c5@5 ~]/3",
})).s("gm_string_ensemble_1").gain(0.25)

// chords · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~@9 A B C ~ A B C ~@17 A B C ~ A B C ~@17 A B C ~ A B C ~@13 A B C ~ A B C ~@17 A B C ~ A B C ~ A B C ~ A B C ~ A B C
  ~ A B C D@3
>`.pickRestart({
  A: "[f3,bb3,d4]", B: "[g3,c4,eb4]", C: "eb4 d4, [f3,bb3]", D: "[[g3,c4,eb4]@5 ~]/3",
})).s("gm_string_ensemble_1").gain(0.3)

// other · alto sax
const alto_sax = note("<~@8 A@2 B C D@2 ~@62 A@2 B E A@2 B F G ~@42>".pickRestart({
  A: "[g5@28 eb5 d5 c5 bb4]/2", B: "c5@5 bb4 c5 d5", C: "eb5@3 f5@3 bb5@2 d5@3 f5@3 c6@2", D: "g5/2",
  E: "eb5@8 d5@4 bb5 ab5 g5 f5", F: "eb5@3 f5@2 bb5@3 d5@3 f5@2 c6@3", G: "g5",
})).s("gm_alto_sax").gain(0.7)

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

// drums · snare
const snare = s("sd").struct("<A ~ A B C@4 D@64 A ~ A ~ D@48 ~@3>".pickRestart({
  A: "x ~@2 x ~@2 x ~@9", B: "~@14 x!2", C: "~ x ~ x ~ x ~ x", D: "~ x ~ x",
})).gain(0.45)

// drums · clap
const clap = s("cp").struct("<~@4 [~ x ~ x]!12 ~@60 [~ x ~ x]!8 ~@43>").gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<~@4 [~ x ~ x ~ x ~ x]!68 ~@4 [~ x ~ x ~ x ~ x]!48 ~@3>").gain(0.3)

// drums · tambourine
const tambourine = s("tb").struct("<~@8 [x!16]!118 [x!9 ~@7]>").gain(0.2)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@4 [x!16]!120 ~@3>").gain(1.01)

stack(
  piano, bass, percussive_organ, lead_4_chiff, pad_poly, pad_choir, string_ensemble_1, string_ensemble_1_2, alto_sax,
  kick, snare, clap, hihat, tambourine, cabasa
)

More by Rozalla