Strudelify
Se qualcuno cercasse di te cover art

Se qualcuno cercasse di te

Leali

KeyE♭ majorTempo106 bpm
0:00/0:00
// Se qualcuno cercasse di te — Leali
// 106 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 51 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(106/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.

// bass · electric bass finger
const bass = note(`<
  A B C D E F C D E F E F C D E F C D E F E F G H I J K L M N C D E F C D E F E F C D E F C D E A B O@2
>`.pickRestart({
  A: "eb2@7 bb1", B: "eb2@13 ~ eb2@2", C: "ab1@4 ~@2 ab1 ~ bb1@4 ~@2 bb1@2", D: "eb2@5 ~ eb2@2 d2@5 ~ d2@2",
  E: "c2@4 ~@2 c2@2 bb1@4 bb2 ~ bb1@2", F: "eb1@4 eb2@2 eb1 ~ eb1@2 bb1@2 eb2@2 bb1 ~",
  G: "ab1@5 ~ ab1@2 bb1@4 ~@2 bb1@2", H: "eb2@5 ~ eb2@2 bb1@2 eb1@2 eb2@2 eb1@2", I: "ab1@5 ~ ab1@2 bb1@5 ~ bb1 ~",
  J: "eb2@6 eb1 ~ eb1@2 bb1@2 eb2 ~ eb1@2", K: "ab1@2 ~ ab1 bb1@2 ~ bb1", L: "eb2@5 ~ eb2 ~ eb2@3 ~ eb2@2 d2@2",
  M: "c2@5 ~ c2@2 f1@5 ~ f1@2", N: "bb1@6 f2@2 bb2@2 f2@2 bb1@2 f2 ~", O: "[eb1@31 ~]/2",
})).s("gm_electric_bass_finger").gain(0.57)

// other · electric guitar clean
const electric_guitar_clean = note("<A@2 ~@3 B ~@5 C ~@3 B ~@5 C ~ D@2 E@2 ~@6 B ~@5 C ~@3 B ~@3 A@2 F@2>".pickRestart({
  A: "[~@4 g4@2 f4@2 ab4 g4 ab4 g4 ab4@2 g4@4 bb4@2 g4@2 f4@2 ab4 g4 ab4 g4 ab4@2 g4@2, ~ bb4@2 ~@13]/2",
  B: "~@2 g4 ~@2 g4 f4 eb4, ~@3 f4@2 ~@3, ~@2 ab4 ~", C: "~@2 ab4@2 g4@2 f4@2 ab4 g4 ab4 g4 ab4@2 g4@2",
  D: "[~@6 bb4@2 c5@2 bb4@2 g4 ~ eb5@6 ~@12, ~@13 f4@3 ~@16]/2",
  E: "[~@6 bb4@2 c5@2 bb4@2 g4 ~@3 eb4@7 ~@9, ~@13 f4@3 ~@16, ~@7 eb5@4 ~@5]/2", F: "[eb2,eb3]/2",
})).s("gm_electric_guitar_clean").gain(0.64)

// chords · electric guitar clean
const electric_guitar_clean_2 = note(`<
  A@2 B C B D B C B D B D B C B D B C B D B D E F G F G H ~@2 B C B D B C B D B D B C B D B C B I@2 J@2
>`.pickRestart({
  A: "[~@4 g4@2 ~@2 eb4@5 ~@7 g4@2 ~@2 eb4@6 eb3@2, ~@2 bb4@11 ~@3 eb3@13 ~@3, ~@6 f4@8 bb2@15 ~@3, ~@9 bb4@6 ~, ~@11 f4@4 ~]/2",
  B: "~@4 [ab4,c5,eb5] ~@7 [f4,bb4,d5] ~@3", C: "~@4 [g4,bb4,eb5] ~@7 [f4,bb4,d5] ~@3",
  D: "~@4 [g4,bb4,eb5] ~@7 [g4,bb4,eb5] ~@3", E: "~@4 [eb4,ab4,c5] ~@7 [f4,bb4,d5] ~@3",
  F: "~@4 [eb4,g4,bb4] ~@7 [eb4,g4,bb4] ~@3", G: "~@4 [eb4,ab4,c5] ~@7 [d4,f4,bb4] ~@3", H: "~@4 [eb4,ab4,c5] ~@11",
  I: "[~@4 g4@2 ~@2 eb4@5 ~@7 g4@2 ~@2 eb4@6 eb3@2, eb3@13 ~ bb2@15 ~@3, ~@2 bb4@11 ~@5 bb4@12 ~@2, ~@6 f4@8 ~@2 eb3@13 ~@3, ~@11 f4@4 ~]/2",
  J: "[eb3,bb3,eb4,f4,g4]/2", // Eb
})).s("gm_electric_guitar_clean").gain(0.39)

// chords · piano
const piano = note(`<
  ~@2 A B C D A B C D C D A B C D A B C D C D E F G H I J K L A B C D A B C D C D A B C D A B C ~@2 M@2
>`.pickRestart({
  A: "[ab2,ab3,eb4]@2 [ab3,c4,eb4] ab2 ~ f3 [f3,bb3,d4] bb2, ~@8 bb2@5 ~@3", // Ab5 Ab Bb
  B: "~@3 eb2 ~ f3 [f3,bb3,d4] d2, eb2@4 [bb3,eb4]@5 ~@7, ~@2 g3@6 d2@5 ~@3", // Bb Eb5
  C: "[c2,ab3]@2 ~ c2 ~@3 bb2, [c4,eb4]@8 ~@2 f3@5 ~, ~ ab3 bb2 [bb3,d4]", // Fm Cm Bb
  D: "~@2 g3 ~ g3 ~ g3@2 ~@4 [bb3,eb4]@2 eb2@2, eb2@7 ~ eb2@5 ~@3, ~@4 [bb3,eb4]@6 g3@5 ~", // Eb5
  E: "~@2 ab3@2 [c4,eb4]@2 ab3@2 ~@2 f3@2 f3 ~ f3@2, ab2 bb2, ~@4 ab3 ~@7 [bb3,d4]@4", // Cm Bb
  F: "~ g3 ~ g3 ~ g3 [g3,bb3,eb4] eb2, eb2@7 ~ eb2@5 ~@3, ~@2 [bb3,eb4]@3 ~@3", // Eb Eb5
  G: "~ ab3 ~ ab3 bb2@2 [f3,bb3,d4] bb2, ab2 ~, ~ [c4,eb4] ~@2", // Bb Cm
  H: "~@2 g3@2 g3 ~ g3@2 ~@2 g3@2 ~@2 g3@2, eb2@7 ~ eb2@8, ~@2 [bb3,eb4]@3 ~ [bb3,eb4]@2", // Eb5
  I: "[ab3,c4]@3 ~ [ab3,c4,eb4]@2 ab2@2 ~@2 f3@2 [f3,bb3,d4]@2 bb2@2, ab2@4 ~@4 bb2@5 ~@3, eb4 ~@15", // Ab Bb
  J: "[eb2,bb3]@2 ~@4 eb4 d2, [g3,eb4]@3 ~ eb4@6 bb3@6, ~ [g3,bb3] g3@2, ~@3 eb2@4 ~", // Eb5 Cm Gm
  K: "~@2 g3@2 ~@2 g3@2 ~@2 a3@2 [c4,f4]@2 a3 ~, c2 f2, ~@4 [c4,eb4]@5 ~@7", // F5 Cm
  L: "[bb2,eb4]@3 [bb3,eb4,f4]@2 ~ [eb4,f4]@2 [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 bb2 ~, [bb3,f4]@2 ~@3 bb2@2 ~ bb2@2 ~ bb2@2 ~@3, ~@6 bb3 ~@9", // Eb5 Bbsus4 Ebsus2 Bb Bb5
  M: "[eb2,g3,bb3,eb4]/2", // Eb
})).s("gm_piano").gain(0.56)

// chords · piano
const piano_2 = note(`<
  ~@3 A ~@3 A ~@2 B C ~ A ~@3 A ~@2 B C ~@6 D E ~ A ~@3 A ~@2 B C F G B H F G B C ~@3
>`.pickRestart({
  A: "[eb4,g4,bb4]@3 [d4,f4,bb4]@4 ~", B: "[ab4,c5] [ab4,d5] [ab4,c5]@6 [f4,bb4]@4 [eb4,ab4]@4", C: "[eb4,g4]@13 ~@3",
  D: "[g3,c4,eb4] [a3,c4,f4]", E: "[f3,bb3,eb4] [f3,bb3,d4]", F: "c5@6 d5 c5 bb4@4 ab4@4", G: "c5@2 bb4@2 ab4@3 ~",
  H: "[eb4,g4]@7 ~", // Eb
})).s("gm_piano").gain(0.08)

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

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

// drums · low tom
const low_tom = s("lt").struct("<[x ~@6 x]!2 ~@19 [~@9 x ~@2 x!3 ~] ~@25 [x ~@6 x]!2 ~@2>").gain(0.6)

// drums · hihat
const hihat = s("hh").struct("<~@2 A@9 B A@9 C A@7 D A@9 B A@7 ~@4>".pickRestart({
  A: "x!8", B: "x!6 ~@2", C: "x", D: "x!4 ~@4",
})).gain(0.53)

// drums · mid tom
const mid_tom = s("mt").struct("<[~@7 x]!2 ~@19 [~@4 x!2 ~@2] ~@7 [~@7 x] ~@17 [~@7 x]!2 ~@2>").gain(0.6)

// drums · open hat
const open_hat = s("oh").struct("<x!2 ~@45 x!2 ~@2>").gain(0.6)

// drums · crash
const crash = s("cr").struct("<~@2 A ~@3 A ~@5 A ~@3 A ~@5 A ~@3 A ~@3 A ~@3 A ~@5 A ~@3 A ~@4 A ~>".pickRestart({
  A: "x",
})).gain(0.45)

stack(
  bass, electric_guitar_clean, electric_guitar_clean_2, piano, piano_2, kick, snare, low_tom, hihat, mid_tom, open_hat,
  crash
)

More by Leali