Strudelify
Elle Est a Toi cover art

chercheuse d'or

Elle Est a Toi

Assia

KeyF♯ majorTempo87 bpm
0:00/0:00
// Elle Est a Toi — Assia
// 87 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 101 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(87/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(`<
  A B A C D E D E D E D E F G F G F G F G H B H C H B H C D E D E D E D E F G F G F G F G H B H C H B H C D E D E D E D
  E F G F G F G F G H B H C H B H C D E D E D E D E I J I J D E D E D E D E D E D E K
>`.pickRestart({
  A: "[f#4,a#4]", B: "~@3 [f#4,a#4]@2 ~ [g#4,c#5]@3 ~ [g#4,c#5]@12 ~@2",
  C: "~@3 [f#4,a#4]@2 ~ [g#4,c#5]@4 [g#4,c#5]@13 ~", D: "~@3 c#4@19 ~@2, f#3@11 ~", E: "[d#3,f#3,a#3]@23 ~",
  F: "g#4@8 ~ f#4@13 ~@2, c#4@11 ~", G: "f4@9 d#4@14 ~, a#3@23 ~", H: "[f#4,g#4,a#4]",
  I: "~ [f#4,g#4,c#5]@3, f#3@11 ~, ~@3 c#4@19 ~@2", J: "~ [f4,f#4,a#4]@3, [d#3,f#3,a#3]@23 ~",
  K: "f#3@11 ~, c#4@19 ~@5",
})).s("gm_piano").gain(0.35)

// bass · electric bass finger · "Basse"
const bass = note(`<
  ~@3 A B C D E F G D E H C D E H C D E H C D E H C D E H C D E I G D E H C D E H C D E H C D E H C D E H C D E I G D E
  H C D E H C D E H C D E H C D E H C D E I G D E H C D E I G D E I G D E I G D E J
>`.pickRestart({
  A: "~@14 [c#3,d#3] ~@2 c#3@7", B: "f#2@2 ~@7 f#2@2 f#2 ~@2 f#2 c#2 ~@2 f#2@2 ~ g#2@2 f#2",
  C: "d#2@2 ~@7 d#2@2 d#2 ~@2 a#1 c#2@2 ~ d#2@2 ~ f2@2 ~",
  D: "f#2@2 ~@6 c#2 f#2@2 f#2 ~@2 f#2 c#2 ~@2 f#2@2 ~ g#2@2 f#2",
  E: "d#2@2 ~@6 a#1 d#2@2 d#2 ~@2 d#2 c#2@2 ~ d#2@2 ~ c#2@2 ~",
  F: "f#1@2 ~@7 f#2@2 f#2 ~@2 f#2 c#2 ~@2 f#2@2 ~ g#2@2 f#2", G: "d#2@2 ~@7 d#2@2 d#2 ~@2 d#2 c#2@2 ~ d#2@2 ~ f2@2 ~",
  H: "f#1@6 ~@3 f#2@2 f#2 ~@2 f#2 c#2 ~@2 f#2@2 ~ g#2@2 f#2",
  I: "f#1@5 ~@4 f#2@2 f#2 ~@2 f#2 c#2 ~@2 f#2@2 ~ g#2@2 f#2", J: "f#1@5 ~@19",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · acoustic guitar nylon · "NylonGt"
const acoustic_guitar_nylon = note(`<
  ~@4 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3
  A B@3 A B@3 A B@3 A B@3 A B@3 A
>`.pickRestart({
  A: "g#4@9 f#4@11 ~@4, [a#3,c#4]@7 ~", // A#m
  B: "[f4@8 ~ d#4@12 ~@3 g#4@8 ~ f#4@12 ~@3 f4@8 ~ d#4@14 ~, [f#3,a#3]@21 ~@2 a#3@22 ~@2 f#3@23 ~@2, ~@24 c#4@21 ~@3 a#3@23 ~]/3", // F#
})).s("gm_acoustic_guitar_nylon").gain(0.35).pan(0.3)

// chords · synth strings 1 · "OB Strings"
const synth_strings_1 = note(`<
  ~@4 A B A B A B A B ~@16 A B A B A B A B ~@16 A B A B A B A B ~@16 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
>`.pickRestart({
  A: "[f#4,a#4,c#5,f#5,a#5]", B: "[f#4,a#4,d#5,f#5,a#5]",
})).s("gm_synth_strings_1").gain(0.15)

// other · pad new age · "Fantasia"
const pad_new_age = note(`<
  ~@4 A B A B A B A B ~@16 A B A B A B A B ~@16 A B A B A B A B ~@16 A B A B A B A B A B A B A B A B A B A B A B A B C
>`.pickRestart({
  A: "[g#4,g#5]@8 ~ [f#4,f#5]@8 ~ [a#4,a#5]@6", B: "[f4,f5]@8 ~ [d#4,d#5]@12 ~@3", C: "[g#4,g#5]@8 ~ [f#4,f#5]@8 ~@7",
})).s("gm_pad_new_age").gain(0.3)

// other · ocarina
const ocarina = note(`<
  ~@4 A B A C A B A ~@17 A B A C A B A ~@17 A B A C A B A ~@17 A B A C A B A D A B A D A B A D A B A D A B A D A
>`.pickRestart({
  A: "c#5@3 ~", B: "~@9 d#5@3 c#5@3 a#4@2 c#5 d#5@3 c#5@3, ~@9 c#5 ~@14", C: "~@8 c#5 d#5@3 c#5@3 a#4@3 d#5@3 f5@3",
  D: "~@8 c#5 d#5@3 c#5@3 a#4@3 d#5@3 c#5@3",
})).s("gm_ocarina").gain(0.35).pan(0.3)

// chords · pad warm · "WarmPad"
const pad_warm = note(`<
  ~@12 A B A B A B A B A B A B A B A B ~@8 A B A B A B A B A B A B A B A B ~@8 A B A B A B A B A B A B A B A B ~@25
>`.pickRestart({
  A: "g#4@3 f#4@5, [c#4,a#4]", B: "f4@3 d#4@5, [f#4,a#4]",
})).s("gm_pad_warm").gain(0.2)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 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 E ~@3 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 E ~@3 A B C D A B C D A B C D E
>`.pickRestart({
  A: "x ~@8 x ~@5 x ~@7 x", B: "x ~@2 x!2 ~@3", C: "x ~@14 x ~@7 x", D: "x ~@4 x ~@8 x!2 ~@8", E: "x",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@3 A B@40 ~@3 A B@36 ~@3 A B@12 ~>".pickRestart({
  A: "~@3 x", B: "~ x ~ x",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<~@3 A B@40 C ~@2 A B@36 D@16 C>".pickRestart({
  A: "~@7 x", B: "x!2 ~ x!3 ~ x", C: "x", D: "x!8",
})).gain(0.56)

stack(piano, bass, acoustic_guitar_nylon, synth_strings_1, pad_new_age, ocarina, pad_warm, kick, snare, hihat)

More by Assia