Strudelify

Non sei tu (Si jamais)

Adamo

KeyG majorTempo90 bpm
0:00/0:00
// Non sei tu (Si jamais) — Adamo
// 90 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 65 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(90/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 · acoustic bass
const bass = note(`<
  A B C D A E F G A E F G H I B J C@2 K D A I B J C@2 K D A E F G A E F G H I B J C@2 K D A I B J C@2 K D A I B L A I B
  L A I B L M
>`.pickRestart({
  A: "g1@3 b1 d2@2 b1 d2", B: "e2@3 g2 b2@2 g2 b2", C: "c2@3 e2 g2@2 e2 g2", D: "d2@6 f#2@2 a2@4 f#2@2 a2 ~",
  E: "e2@3 g2 b2@2 g2 e2", F: "c2@3 e2 g2@2 e2 c2", G: "d2@3 f#2 a2 f#2 d2@2", H: "g1@4 ~@2 g1@2 c2@4 ~@2 c2 ~",
  I: "g2@3 b2 d3@2 b2 g2", J: "e2@6 g2@2 b2@4 g2@2 e2 ~", K: "d2@3 f#2 a2@2 f#2 a2", L: "e2@6 g2@2 d2@2 f#2@2 a2@3 ~",
  M: "g1",
})).s("gm_acoustic_bass").gain(0.48)

// chords · drawbar organ
const drawbar_organ = note(`<
  A B C D E@3 F E@3 F G@2 H@2 I@2 J@2 K@2 H@2 I@2 J@2 E@3 F E@3 F G@2 H@2 I@2 J@2 K@2 H@2 I@2 J@2 K@2 L@2 K@2 L@2 K@2
  L@2 M
>`.pickRestart({
  A: "[g5,b5]@6 [f#5,a5] [e5,g5]", B: "[g5,b5]@6 [a5,c6] [b5,d6]", C: "[c6,e6]@5 [b5,d6] [a5,c6] [g5,b5]",
  D: "[f#5,a5]@15 ~", E: "[d5 ~ c5, g5, b4@2 ~, ~ e5@2]/3", F: "[a4,d5,f#5]",
  G: "[[g4,b4,d5] [c5,e5] [b4,d5]@2, ~ g4@3]/2", H: "[g4,b4,e5]/2", I: "[g4,c5,e5]/2", J: "[a4,d5,f#5]/2",
  K: "[b4,d5,g5]/2", L: "[[b4,e5,g5]@3 [a4,d5,f#5]]/2", M: "[b4,d5,g5]",
})).s("gm_drawbar_organ").gain(0.21).pan(0.3)

// chords · vibraphone
const vibraphone = note("<A@2 B C ~@4 D E F G ~@16 H I@2 J H I@2 J ~@29>".pickRestart({
  A: "~@4 f#4 g4@3 g5@8", B: "~@4 g4@4 g5@7 ~, ~@4 f#4 ~@11", C: "~@4 c#4 d4@3 d5@6 ~@2", D: "[b4,g5]@15 ~",
  E: "[g4,e5]@15 ~", F: "[c5,e5]@15 ~", G: "[d5,f#5]@15 ~", H: "[b4,d5]@15 ~", I: "[g4,e5]@7 ~", J: "[a4,d5]@15 ~",
})).s("gm_vibraphone").gain(0.5)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A@2 B C D@3 E D@3 E F G H@2 I@2 J K L@2 H@2 I@2 J M N@3 E N@3 E F G H@2 I@2 J O L@2 H@2 I@2 J P L@2 Q@2 L@2 R@2 L@2
  Q@2 S
>`.pickRestart({
  A: "[~@4 b3 ~ b3 ~ b3@2 b3@2 g2@2 b3@2 ~@2 b3 ~ b3 ~ b3 ~ b3 ~ b3@2 e3@2 b3@2, g2@11 ~@5 e3@11 ~@5, ~@2 [d4,g4]@3 [d4,g4]@4 ~ [e4,g4]@3 [e4,g4]@3]/2", // G5 Em
  B: "c3@2 a3 ~ a3@2 a3@2 a3@2 a3@2 c3@2 a3@2, ~@2 [c3,c4,e4]@3 [c4,e4]@3", C: "d4 e4 d4 e4 d4 c4 b3 a3",
  D: "[~@5 d4 ~@3 b3 e4 ~@2 e4 ~@3 c4 e4 ~@2 e4 c4 e4, g2@8 ~@7 e4@2 ~@7, ~ b3@2 b3@2 ~ b3@2 e3@8 c3@8, ~@4 d4@4 g4@10 ~@6 g4@9 ~@7 g4@6 ~@2, ~@7 d4@2 ~@2 b3@2 ~ b3@2 ~@3 c4@2 ~@3]/3",
  E: "d3 e3 d3 e3 d3 c3 b2 a2", F: "~@3 b3 ~@3 c4, g2 c3, ~@2 g4@7 ~ g4@6, ~@4 d4@5 ~@3 e4@4",
  G: "~@2 d4 ~@2 d4 b3 d4, g2@15 ~, ~ g4@2 b3@2 ~@3, ~@8 g4@7 ~",
  H: "[~ b3 e4 ~@2 e4 ~@3 b3 ~@3 e4 ~ e4, e3@7 e4@2 ~ e4@2 g4@4, ~@3 b3@2 ~ b3@2 e3@8, ~@8 g4@10 ~@4 b3@5 ~ b3@4]/2",
  I: "[e4 ~ e4 ~@2 e4 ~@4 e4 ~@2 e4 c4 e4, c3@14 e4@4 g3@13 ~, ~@2 g3@13 ~ c3@15 ~, ~@6 c4@4 ~@2 c4@9 ~ c4@5 ~@5, ~@8 g4@11 ~@5 g4@5 ~@3]/2",
  J: "~@2 a3@2 ~@2 a3@2 d4@2 a3@2 d4@2 a3 ~, d3@15 ~, d4 f#4@3", K: "d4 e4 f#4 e4 d4 c4 b3 a3, a3@3 ~",
  L: "[~ b3 d4 b3 ~ b3 ~ b3 ~ g4 d4 ~@2 d4 b3 d4, g2@15 ~ g2@15 ~, ~@8 g4@9 ~@7 g4@7 ~, ~@6 d4@3 ~@2 b3@2 ~@3]/2",
  M: "~ e4 f#4 e4 d4 c4 b3 a3, a3@3 ~, d4@5 ~@11",
  N: "[~ b3 ~@3 d4 ~@3 b3 e4 ~@2 e4 ~@3 c4 e4 ~@2 e4 c4 e4, g2@8 ~@7 e4@2 ~@7, ~@4 d4@4 g4@10 ~@6 g4@9 ~@7 g4@6 ~@2, ~@3 b3@2 ~ b3@2 e3@8 c3@8, ~@7 d4@2 ~@2 b3@2 ~ b3@2 ~@3 c4@2 ~@3]/3",
  O: "~ e4 f#4 e4 d4 c4 b3 a3, a3@11 ~@5, d4@5 ~@11", P: "~ e4 f#4 e4 d4 c4 b3 a3, a3@3 ~, d4 ~@3",
  Q: "[~ b3 e4 ~@2 e4 ~@3 b3 [b3,e4,g4] e3 [a3,f#4] d4 [a3,d4,f#4] d3, e3@7 e4@2 ~@7, ~@6 b3@4 ~@2 b3@4 e3@5 ~@3 d3@5 ~@3, ~@4 g4@5 ~@7]/2", // Em D
  R: "[~@2 b3@2 e4@2 ~@4 e4@2 ~@6 b3@2 [b3,e4,g4]@2 e3@2 [a3,f#4]@2 d4@2 [a3,d4,f#4]@2 d3 ~, e3@7 e4@2 ~@7, ~@6 b3@4 ~@2 b3@4 e3@5 ~@3 d3@5 ~@3, ~@4 g4@5 ~@7]/2", // Em D
  S: "[g2,b3,d4,g4]", // G
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.7)

// drums · kick
const kick = s("bd").struct("<[x ~@2 x!2 ~@3]!64 x>").gain(0.53)

// drums · snare
const snare = s("sd").struct("<[~@2 x ~@3 x!2]!64 ~>").gain(0.6)

// drums · hihat
const hihat = s("hh").struct("<[x!8]!64 ~>").gain(0.47)

// drums · splash
const splash = s("cr").struct("<~@64 x>").gain(0.53)

stack(bass, drawbar_organ, vibraphone, electric_guitar_clean, kick, snare, hihat, splash)

More by Adamo