Strudelify

I Want Tomorrow

Enya

KeyA majorTempo71 bpm
0:00/0:00
// I Want Tomorrow — Enya
// 71 bpm, 6/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (6/4 at bar 1, 4/4 at bar 21, 6/4 at bar 22, 4/4 at bar 38, ...) are rendered on a constant 6/4 grid of one bar per cycle
// note: Full arrangement: all 50 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(71/6)

// 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.

// bass · electric bass pick · "PICK BASS"
const bass = note("<A@2 B ~@14 C D@2 E@7 ~@6 F@4 G@7 H@2 ~@4>".pickRestart({
  A: "[~@4 a2@4 ~ g2@3]/2", B: "f2 g2", C: "a2@6 g#2@4 ~ e2", D: "f#2 e2",
  E: "[a1 b1@6 ~ a2@6 g#2@4 ~ e2 f#2@6 e2@6 f#2@6 e2@6 a2@6 g#2@4 ~ e2 f#2@6 e2@6 f#2@2 e2@8 ~@6]/7",
  F: "[~@8 a2@6 g#2@4 ~ e2 f#2@6 e2@6 f#2@6 e2@6 a1 b1@3]/4",
  G: "[~@4 a2@6 g#2@4 ~ e2 f#2@6 e2@6 f#2@6 e2@6 a2@6 g#2@4 ~ e2 f#2@6 e2@6 f#2@2 e2@8 ~@2 a2@6 g#2@2]/7",
  H: "[~@3 e2 f#2@6 e2@6 ~@8]/2",
})).s("gm_electric_bass_pick").gain(0.26)

// bass · electric bass pick · "PICK BASS" · soft notes
const bass_soft = note("<~@45 A@5>".pickRestart({
  A: "[~@4 d2@2 e2@8 ~@2 a2@6 g#2@4 ~ e2 f#2@6 e2@6 d2@2 e2@8 ~@10]/5",
})).s("gm_electric_bass_pick").gain(0.05)

// other · pad new age · "FANTASIA"
const pad_new_age = note("<~@10 A@6 B C D E F@7 ~@5 G@4 H@7 I@3 ~@4>".pickRestart({
  A: "[c3,a3]", B: "a3", C: "a3 g#3", D: "f#3 e3", E: "d3 a3, ~@3 c#3@2 ~",
  F: "[[e3,g#3]@2 ~@2 a3@3 g#3@3 f#3@3 e3@3 d3@3 a3@3 a3@3 g#3@3 f#3@3 e3@3 d3 a3@4 ~@3]/7", // E
  G: "[~@4 a3@6 a3@3 g#3@3 f#3@3 e3@3 d3@2]/4",
  H: "[~ a3@3 [e3,g#3]@3 ~ a3@3 g#3@3 f#3@3 e3@3 d3@3 a3@3 a3@3 g#3@3 f#3@3 e3@3 d3 a3@3, ~ c#3@2 ~@39]/7", // E
  I: "[~@2 a3@3 g#3@3 f#3@3 e3@3 ~@4]/3",
})).s("gm_pad_new_age").gain(0.31)

// other · pad new age · "FANTASIA" · soft notes
const pad_new_age_soft = note("<~@46 A@3 ~>".pickRestart({
  A: "[~@2 a3@3 g#3@3 f#3@3 e3@3 ~@4]/3",
})).s("gm_pad_new_age").gain(0.05)

// other · pizzicato strings · "PIZZICATO"
const pizzicato_strings = note("<~@3 A B A B A B ~ A B A B A B ~@10 C D E D E D F ~@17>".pickRestart({
  A: "a2 e3 c4 ~@2 a2 g2 d3 b3 ~@3", B: "f2 c3 a3 ~@3 g2 d3 b3 ~@3", C: "~@8 a2 e3 c4 ~",
  D: "~ a2 g2 d3 b3 ~@3 f2 c3 a3 ~", E: "~@2 g2 d3 b3 ~@3 a2 e3 c4 ~", F: "~@2 g2 d3 b3 ~@7",
})).s("gm_pizzicato_strings").gain(0.46)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@26 A B@6 C ~@9 D E F ~@4>".pickRestart({
  A: "~@3 b3 g#4@6 ~ e4",
  B: "[e4@2 e4@2 e4@2 e4@2 e4@2 ~@10 a3@12 ~@6 g4@2 ~@2 a4@2 a4@6 ~@4 a4@2 a4@4 ~@2 a4@2 ~@4 f4@8 ~@12 c5@3 ~ c5@3 ~ c5@3 ~ b4@3 ~ b4@4 ~@4 a4@3 ~@5 a4@3 ~ g4@4 g4@4 g4@4 a4@4 a4@4, ~@16 d4@12 ~@7 b4@4 ~ g4@6 ~@6 g4@8 ~@27 a4@2 ~@2 a4@2 ~@2 a4@2 ~@2 a4@2 ~@2 a4@2 ~@6 g4@4 g4@4 a3@2 ~@23, ~@18 e4@6 ~@10 c5@4 ~@26 b4@8 ~@44 a4@4 ~@3 f4@2 ~@19, ~@18 a4@3 ~@12 c5@4 ~@22 g3 c4@4 ~@8]/6",
  C: "a4 ~@5", D: "~@5 f#5 ~ e5@4 f#5, ~@2 f#5 ~", E: "~ e5@4 ~@7, f#5 ~@3", F: "~ c#5!2 b4 ~@8",
})).s("gm_electric_guitar_clean").gain(0.41)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note("<~@46 [~@5 f#5 ~ e5@4 f#5, ~@2 f#5 ~] [~ e5@4 ~@7, f#5 ~@3] [~ c#5!2 b4 ~@8] ~>")
  .s("gm_electric_guitar_clean").gain(0.05)

stack(bass, bass_soft, pad_new_age, pad_new_age_soft, pizzicato_strings, electric_guitar_clean, electric_guitar_clean_2)

More by Enya