Strudelify

Try Again

Aaliyah

KeyE majorTempo95 bpm
0:00/0:00
// Try Again — Aaliyah
// 95 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(95/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.

// other · synth strings 2 · "Staff"
const synth_strings_2 = note("<A B C D A B E F ~@78 G@2 ~@2 G@2 ~@2 G@2 ~@2 G@2 ~@2 G@2 ~@8>".pickRestart({
  A: "[e1,e2]@2 g#4!3 ~ g#4 ~ g#4!3 ~ g#4 ~ g#4!2", // E
  B: "g#4 ~ g#4!2 [e1,e2]@2 g#4!2 [e1,e2]@2 g#4 ~ [f#1,f#2]@2 g#4 ~, ~@4 g#4 ~@11", // E F#
  C: "[g#1,g#2]@2 g#4!3 ~ g#4 ~ g#4!3 ~ g#4 ~ g#4!2", D: "g#4 ~ g#4!3 ~ g#4!2 [g#1,g#2]@2 g#4 ~ [f#1,f#2]@2 g#4 ~",
  E: "[g#1,g#2]@2 g#4!3 ~ g#4 ~ g#4!3 ~ g#4 ~ [g#1,g#2,g#4]!2", // G#
  F: "[g#1,g#2]@2 g#4!3 ~ [g#1,g#2,g#4]!2 [g#1,g#2]@2 g#4 ~@3 g#4 ~, g#4 ~@15", // G#
  G: "[~@2 g#4!5 a#4@2 a#4 g#4@2 a#4@2 g#4@2 ~@2 g#4!5 a#4@2 a#4 c#4@2 d#4@2 c#4@2, [g#1,g#2]@31 ~]/2", // G#
})).s("gm_synth_strings_2").gain(0.72)

// other · sitar · "Staff-3"
const sitar = note("<~ A B C ~ A B D ~@104>".pickRestart({
  A: "~@4 d#5@2 d#5!2 a#4@3 ~ c#5@3 ~", B: "g#4 ~@7", C: "~@4 c#5@2 d#5@2 a#4@3 ~ c#5@3 ~",
  D: "g#4 ~ g#4!3 ~ g#4!2 ~@2 g#4 ~@3 g#4 ~",
})).s("gm_sitar").gain(0.19)

// bass · lead 2 sawtooth · "Staff-6"
const bass = note(`<
  ~@8 A B C@2 A B C@2 A B C@2 A B C@2 ~@4 A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 ~@36 A
  B C@2 A B C@2 A B C@2
>`.pickRestart({
  A: "c#2 c#1 e2 e1 ~ f#1 ~ e1 c#1 c#2 c#1 e2 ~ c#2 ~ c#1",
  B: "c#2 c#1 ~ c#1 f#2 c#1 e2 c#1 c#2 c#1 ~ c#1 f#2 c#1 e2 c#1",
  C: "g#2 g#1 d#2 g#1 g#3 g#1 d#2 g#1!2 d#2 g#1 g#2 g#1 g#2 g#1!2",
})).s("gm_lead_2_sawtooth").gain(0.54)

// other · recorder · "Staff-7"
const recorder = note(`<
  ~@16 A@2 B@2 A@2 B@2 ~@8 A@2 B@2 A@2 B@2 ~@8 A@2 B@2 A@2 B@2 ~@16 A@2 B@2 A@2 B@2 ~@24 A@2 B@2 A@2 B@2
>`.pickRestart({
  A: "c#4 d#4 e4!2 e4@2 g#4@2 e4!4 d#4!4", B: "g#4 a#4 b4!2 b4@2 d#5@2 b4!4 a#4!4",
})).s("gm_recorder").gain(0.49)

// chords · acoustic guitar nylon · "Staff-10"
const acoustic_guitar_nylon = note(`<
  ~@24 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@24 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@32
>`.pickRestart({
  A: "[c#3,e3,g#3] ~@15", // C#m
  B: "[g#1,g#3,b3,d#4]@2 [g#1,g#3,b3,d#4]@2 [g#1,g#3,b3,d#4]@3 [g#1,g#3,b3,d#4]@3 ~ [g#1,g#3,b3,d#4]@2 [g#1,g#3,b3,d#4]@3", // G#m
})).s("gm_acoustic_guitar_nylon").gain(0.4)

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

// drums · snare
const snare = s("sd").struct("<~@4 [~ x ~ x]!3 ~ [~ x ~ x]!52 ~ [~@3 x] [~ x ~ x]!50>").gain(0.72)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  ~@2 A@3 B A ~ 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 B 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 B
  ~@2 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 B A B A B A B A B A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "x ~ x ~@2 x ~ x ~@2 x ~@2 x ~@2", B: "x ~ x ~@2 x ~ x ~@2 x!2 ~ x ~@2",
})).gain(3.65)

stack(synth_strings_2, sitar, bass, recorder, acoustic_guitar_nylon, kick, snare, cabasa)

More by Aaliyah