Strudelify

Back in Time

Eiffel 65

KeyB majorTempo133 bpm
0:00/0:00
// Back in Time — Eiffel 65
// 133 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 181 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(133/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 · lead 1 square · "Square Lead"
const lead_1_square = note(`<
  A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B E F G ~@15 H I@2 J@2 K L M N O A B C D A B
  E F A B C D A B E F G ~@31 H I@2 J@2 K L M N O A B C D A B E F A B C D A B E F G ~@6 P A B C D A B E F A B C D A B E F
  G ~@16
>`.pickRestart({
  A: "d#5 b4 f#4 b4 d#5 b4 f#4 b4", B: "a#4 f#4 d#4 f#4 c#5 f#4 d#5 f#4", C: "b4 g#4 a#4 b4 c#5 b4 a#4 f4",
  D: "f#4 d#4 a#3 d#4 d#5 d#4 e5 d#4", E: "b4 f#4 e5 d#5 a#4 d#5 b4 f4", F: "f#4 d#4 a#3 d#4 d#5 f#4 e5 f#4",
  G: "d#5 f#4 e5 f#4 d#5 f#4 e5 f#4", H: "~@7 c#4", I: "[e4@2 c#4@2 f4@2 c#4@2 f#4@2 d#4@2 g#4@2 c#5@9 ~@9]/2",
  J: "[~@6 d#4@2 f#4@2 f4@2 d#4@2 g#4@9 ~@9]/2", K: "~@8 f#4@3 ~ d#4@2 f#4@2", L: "b4 f#4 c#5 f#4 d#5 f#4 b4 f#4",
  M: "a#4@7 ~ f#4@2 f4@2 d#4@2 f#4@2", N: "b4@2 a#4@2 g#4@2 f#4@2 g#4@3 ~ c#4@2 f4@2",
  O: "f#4@7 ~ d#5@2 f#4@2 e5@2 f#4@2", P: "~@4 d#5 f#4 e5 f#4",
})).s("gm_lead_1_square").gain(0.56)

// other · string ensemble 1 · "Strings 1"
const string_ensemble_1 = note(`<
  ~@16 A B C D A B E F A B C D A B E F A B C D A B E F ~@22 G H I J A B C D A B E F A B C D A B E F ~@38 G H I J A B C D
  A B E F A B C D A B E F ~@7 K A B C D A B E F A B C D A B E F ~@17
>`.pickRestart({
  A: "d#5 b4 f#4 b4 d#5 b4 f#4 b4", B: "a#4 f#4 d#4 f#4 c#5 f#4 d#5 f#4", C: "b4 g#4 a#4 b4 c#5 b4 a#4 f4",
  D: "f#4 d#4 a#3 d#4 d#5 d#4 e5 d#4", E: "b4 f#4 e5 d#5 a#4 d#5 b4 f4", F: "f#4 d#4 a#3 d#4 d#5 f#4 e5 f#4",
  G: "b4 f#4 c#5 f#4 d#5 f#4 b4 f#4", H: "a#4@7 ~ f#4@2 f4@2 d#4@2 f#4@2",
  I: "b4@2 a#4@2 g#4@2 f#4@2 g#4@3 ~ c#4@2 f4@2", J: "f#4@7 ~ d#5@2 f#4@2 e5@2 f#4@2", K: "~@4 d#5 f#4 e5 f#4",
})).s("gm_string_ensemble_1").gain(0.4)

// other · string ensemble 1 · "Strings 2"
const string_ensemble_1_2 = note(`<
  ~@16 A B C D A B C D A B C D A B C D E F G H E F G H E F G H E F G H I@2 ~@12 J K L H E F G H E F G H E F G H E F G H
  E F G H E F G H E F G H E F G H I@2 M@8 ~@12 J K L H E F G H E F G H E F G H E F G H ~@8 E F G H E F G H E F G H E F G
  H ~@17
>`.pickRestart({
  A: "[g#1,g#2]@7 ~ [b1,b2]@7 ~", B: "[d#2,d#3]@7 ~ [f#1,f#2]@7 ~", C: "[g#1,g#2]@7 ~ [c#2,c#3]@7 ~",
  D: "[d#2,d#3]@7 ~ [f#2,f#3]@7 ~", E: "e2@7 ~ b1@7 ~", F: "f#1@7 ~ g#1@7 ~", G: "f1@7 ~ c#2@7 ~", H: "d#2@11 ~ b1@3 ~",
  I: "[g#1@23 ~ d#1@7 ~]/2", J: "g#1@7 ~ b1@7 ~", K: "d#2@7 ~ f#1@7 ~", L: "g#1@7 ~ c#2@7 ~", M: "[g#1@127 ~]/8",
})).s("gm_string_ensemble_1").gain(0.4)

// other · synth strings 1 · "Synth Strings"
const synth_strings_1 = note(`<
  ~@12 A B C D ~@16 A B C E A B C D ~@34 A B C E A B C D ~@8 A B C E A B C D ~@34 A B C E A B C D ~@4 F@3 G ~@8 A B C E
  A B C D ~@17
>`.pickRestart({
  A: "b4", B: "c#5 d#5", C: "b4 f5", D: "f#5@15 ~", E: "f#5", F: "[f#5@3 d#5@2 [c#5,f5]]/3", G: "[d#5,f#5]@15 ~",
})).s("gm_synth_strings_1").gain(0.56)

// other · lead 2 sawtooth · "Sawtooth Lead"
const lead_2_sawtooth = note(`<
  ~@39 A B C D E B C D E F ~@32 A B C D E B C D E B C D E B C D E F ~@64 A B C D E B C D E B C D E B C D E F
>`.pickRestart({
  A: "~@7 [e2,e3,e4]", // E
  B: "[g#2,g#3,g#4] [e2,e3,e4] [b2,b3,b4] [e2,e3,e4] [d#3,d#4,d#5] [f#3,f#4,f#5] [f#2,f#3,f#4] [f#3,f#4,f#5]", // G# E B E D# F#
  C: "[f#2,f#3,f#4] [g#2,g#3,g#4] [a#2,a#3,a#4] [c#3,c#4,c#5] [d#3,d#4,d#5] [g#2,g#3,g#4] [b2,b3,b4] [d#3,d#4,d#5]", // F# G# A# C# D# G# B D#
  D: "[c#3,c#4,c#5] [b2,b3,b4] [a#2,a#3,a#4] [g#2,g#3,g#4] [f#2,f#3,f#4] [f2,f3,f4] [d#2,d#3,d#4] [f2,f3,f4]", // C# B A# G# F# F D# F
  E: "[f#2,f#3,f#4] [d#2,d#3,d#4] [a#1,a#2,a#3] [d#2,d#3,d#4] [f#2,f#3,f#4] [g#2,g#3,g#4] [f#2,f#3,f#4] [e2,e3,e4]", // F# D# A# D# F# G# F# E
  F: "d#3@15 ~",
})).s("gm_lead_2_sawtooth").gain(0.72)

// bass · synth bass 1 · "Synth Bass"
const bass = note(`<
  ~ A@15 B C D E B C D E B C D E B C D E F G H I F G H I F G H I F G H I A J B C D E B C D E B C D E B C D I F G H I F G
  H I F G H I F G H I F G H I F G H I F G H I F G H I A J A@8 K L M N K L M N B C D E B C D I F G H I F G H I F G H I F
  G H I O P O P O P Q R F G H I F G H I F G H I F G H I F G H I F G H I S T U V ~@5
>`.pickRestart({
  A: "g#1!2 [g#1,g#2]!2 g#1!2 [g#1,g#2]!2 g#1!2 [g#1,g#2]!2 g#1!2 [g#1,g#2]!2", // G#
  B: "g#1!2 [g#1,g#2]!2 g#1!2 [g#1,g#2]!2 b1!2 [b1,b2]!2 b1!2 [b1,b2]!2", // G# B
  C: "d#2!2 [d#2,d#3]!2 d#2!2 [d#2,d#3]!2 f#1!2 [f#1,f#2]!2 f#1!2 [f#1,f#2]!2", // D# F#
  D: "g#1!2 [g#1,g#2]!2 g#1!2 [g#1,g#2]!2 c#2!2 [c#2,c#3]!2 c#2!2 [c#2,c#3]!2", // G# C#
  E: "d#2!2 [d#2,d#3]!2 d#2!2 [d#2,d#3]!2 f#2!2 [f#2,f#3]!2 f#2!2 [f#2,f#3]!2", // D# F#
  F: "e2!2 [e2,e3]!2 e2!2 [e2,e3]!2 b1!2 [b1,b2]!2 b1!2 [b1,b2]!2", // E B
  G: "f#1!2 [f#1,f#2]!2 f#1!2 [f#1,f#2]!2 g#1!2 [g#1,g#2]!2 g#1!2 [g#1,g#2]!2", // F# G#
  H: "f1!2 [f1,f2]!2 f1!2 [f1,f2]!2 c#2!2 [c#2,c#3]!2 c#2!2 [c#2,c#3]!2", // F C#
  I: "d#2!2 [d#2,d#3]!2 d#2!2 [d#2,d#3]!2 d#2!2 [d#2,d#3]!2 b1!2 [b1,b2]!2", // D# B
  J: "g#1!2 [g#1,g#2]!2 g#1!2 [g#1,g#2]!2 d#1!2 [d#1,d#2]!2 d#1!2 [d#1,d#2]!2", // G# D#
  K: "~@2 g#2!2 ~@2 g#2!2 ~@2 b2!2 ~@2 b2!2", L: "~@2 d#3!2 ~@2 d#3!2 ~@2 f#2!2 ~@2 f#2!2",
  M: "~@2 g#2!2 ~@2 g#2!2 ~@2 c#3!2 ~@2 c#3!2", N: "~@2 d#3!2 ~@2 d#3!2 ~@2 f#3!2 ~@2 f#3!2",
  O: "d#2!2 [d#2,d#3]!2 d#2!2 [d#2,d#3]!2 e2!2 [e2,e3]!2 e2!2 [e2,e3]!2", // D# E
  P: "f#2!2 [f#2,f#3]!2 f#2!2 [f#2,f#3]!2 g#2!2 [g#2,g#3]!2 g#2!2 [g#2,g#3]!2", // F# G#
  Q: "g#2!2 [g#2,g#3]!2 g#2!2 [g#2,g#3]!2 c#2!2 [c#2,c#3]!2 c#2!2 [c#2,c#3]!2", // G# C#
  R: "d#2!2 [d#2,d#3]!2 d#2!2 [d#2,d#3]!2 d#2!2 [d#2,d#3]!2 d#2!2 [d#2,d#3]!2", // D#
  S: "~@2 e3!2 ~@2 e3!2 ~@2 b2!2 ~@2 b2!2", T: "~@2 f#2!2 ~@2 f#2!2 ~@2 g#2!2 ~@2 g#2!2",
  U: "~@2 f2!2 ~@2 f2!2 ~@2 c#3!2 ~@2 c#3!2", V: "~@2 d#3!2 ~@2 d#3!2 ~@2 d#3!2 ~@2 b2!2",
})).s("gm_synth_bass_1").gain(0.56)

// drums · kick
const kick = s("bd").struct("<~@7 A B@23 A B@7 C B@25 A B@33 D B@15 D B@7 A B@23 A B@31 A@2>".pickRestart({
  A: "x", B: "x!4", C: "x!2 ~@2", D: "x!3 ~",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct("<~@7 A B@23 A B@7 C B@22 ~@3 D B@42 ~@7 D B@7 D B@20 ~@3 D B@28 ~@3 D ~>".pickRestart({
  A: "~@8 x!8", B: "~ x ~ x", C: "~ x!3", D: "~@3 x",
})).gain(0.72)

// drums · clap
const clap = s("cp").struct("<~@7 A ~@23 A ~@7 B ~@25 C ~@33 C ~@15 C ~@7 C ~@23 C ~@31 C ~>".pickRestart({
  A: "~@8 x!8", B: "~@2 x!2", C: "~@3 x",
})).gain(0.72)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~ A@6 ~ A@23 ~ A@30 ~@3 B A@42 ~@7 B A@7 B A@20 ~@3 B A@28 ~@3 B ~>".pickRestart({
  A: "x!16", B: "~@3 x",
})).gain(0.72)

// drums · crash
const crash = s("cr").struct(`<
  ~@8 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~ A ~@7 A ~@3 A ~@2 A@2 ~@7 A ~@7 A ~@7 A ~@7 A@3 ~@7 A ~@7 A ~@6 A@2 ~@7 A ~@7 A
  ~@3 A ~@2 A@2 ~@7 A ~@7 A ~@3 A ~@3 A ~@3 A ~@2 A@2
>`.pickRestart({
  A: "x",
})).gain(0.72)

stack(
  lead_1_square, string_ensemble_1, string_ensemble_1_2, synth_strings_1, lead_2_sawtooth, bass, kick, snare, clap,
  pedal_hat, crash
)

More by Eiffel 65