Strudelify
Nessun rimpianto cover art

La dura legge del gol

Nessun rimpianto

883

KeyC majorTempo77 bpm
0:00/0:00
// Nessun rimpianto — 883
// 77 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 71 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(77/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@2 E F G H I J K L M L N O P Q R A S C T A U C V W E F G H I J X L M L N O P Q R A S C T A U C Y Z S C T A U C
  AA Z S C T A U C AB@4
>`.pickRestart({
  A: "~@2 c2@2 c2@2 f1@2 f1 ~ f1 ~ f1 ~ f1 ~", B: "f1 ~ a1@2 a1@2 g1 ~ g1 ~ g1@2 g1 ~ g1 ~",
  C: "c2 ~ c2 ~ c2@2 f1@2 f1@2 f1@2 f1 ~ f1 ~", D: "[a1 ~ a1 ~ a1 ~ a1@2 g1 ~ g1 ~ g1 ~ c2@6 c2@3 c2!2 ~ c2@2 f1@4]/2",
  E: "g1@3 ~ g1@3 g1@2 ~ g1@2 f1@4", F: "c2@3 ~ c2@2 ~ c2@2 ~ c2@2 f1@4", G: "g1@3 ~ g1@2 ~ g1@2 ~ g1@2 f1@4",
  H: "a1@4 a1@3 a1@2 ~ a1@2 g1@4", I: "f1@3 ~ f1@3 f1@2 ~ f1@2 g1@4", J: "c2@4 c2@3 c2 c2@2 c2@2 f1@4",
  K: "c2@3 ~ c2@3 g1@3 g2@2 g1@2 e1 g1", L: "a1@4 a1@3 a1 g1@2 g1@2 f1@4", M: "c1@4 c1@3 c1 c1@2 c1@2 g1@2 e1 g1",
  N: "c2@4 c2@3 c2 c2@2 c2@2 b1@4", O: "a1@4 a1@3 a1 g1@2 g1@2 g1@4", P: "f1@4 f1@3 f1 c1@2 c1@2 c1@4",
  Q: "f1@4 f1@2 ~ f1 c1@2 c1@2 c1@2 c1@2", R: "g1@4 g1@3 g1 f1@2 f1@2 g1@2 g1@2",
  S: "a1 ~ a1@2 a1@2 g1 ~ g1 ~ g1@2 g1 f1@3", T: "a1 ~ a1 ~ a1 ~ g1@2 g1 ~ g1 ~ g1 f1@3",
  U: "a1 ~ a1@2 a1@2 g1 ~ g1 ~ g1@2 g1@2 g1@2", V: "a1 ~ a1 ~ a1 ~ a1@2 g1 ~ g1 ~ g1 ~ g1 ~",
  W: "c2@3 ~ c2@3 c2!2 ~ c2@2 f1@4", X: "c2@3 ~ c2@3 g1@3 g1@2 g2@2 e1 g1",
  Y: "a1 ~ a1 ~ a1 ~ a1@2 g1 ~ g1 ~ g1 ~ c2 ~", Z: "c2@2 c2@2 c2@2 f1@2 f1 ~ f1 ~ f1 ~ f1 ~",
  AA: "a1 ~ a1 ~ a1 ~ a1@2 g1 ~ g1 ~ g1@4", AB: "[a1 ~ a1 ~ a1@2 a1@2 g1 ~@2 g1@2 g1@2 g1@2 ~ c1@42 ~@4]/4",
})).s("gm_electric_bass_finger").gain(0.8)

// chords · piano
const piano = note(`<
  A B C D@2 E F E G H I J K L K M N O P Q R S T U V W C X Y E F E G H I J K L K M N O P Q R S T U V W C Z@2 S T U V W C
  X R S T U V W C AA@4
>`.pickRestart({
  A: "~ [c2,c3,g3,c4,e4]!2 [f1,f2,a3,c4,f4] [f1,f2,a3,c4,f4]@2 [f1,f2,a3,c4,f4]@2", // C F
  B: "~ [a1,a2,a3,c4,e4]!2 [g1,g2,g3,b3,d4] [g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@2", // Am G
  C: "[c2,c3,g3,c4,e4]!3 [f1,f2,a3,c4,f4]@2 [f1,f2,a3,c4,f4]!3", // C F
  D: "[[a1,a2,a3,c4,e4]@4 [a1,a2,a3,c4,e4]@4 [g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@2 [c2,c3,g3,c4,e4]@13 ~ [f2,f3,a3,c4]@4]/2", // Am G C F
  E: "[g2,g3,b3,d4]@3 [f2,a3,c4,f4]", F: "[c2,g3,c4,e4]@3 [f2,f3,a3,c4]", G: "[a2,a3,c4,e4]@3 [g2,g3,b3,d4]",
  H: "[f2,f3,a3,c4]@3 [g2,g3,b3,d4]", I: "[c3,g3,c4,e4]@3 [f2,f3,a3,d4]", J: "[c3,g3,c4,e4]@7 ~ [g2,g3,b3,d4]@8",
  K: "[a2,a3,c4,e4]@2 [g2,g3,b3,d4] [f2,f3,a3,c4]", L: "[c2,g3,c4,e4]", M: "[c2,g3,c4,e4]@15 ~",
  N: "[a1,a2,a3,c4,e4] [g2,g3,b3,d4]", O: "[f1,f2,f3,a3,c4] [c2,c3,g3,c4,e4]", P: "[f1,f2,a3,c4,f4] [c2,c3,g3,c4,e4]",
  Q: "[g1,g2,g3,b3,d4]@2 [f1,f2,f3,a3,c4] [g1,g2,g3,b3,d4]", // G F G
  R: "~ [c2,g3,c4,e4] [c2,c3,g3,c4,e4] [f1,f2,a3,c4,f4] [f1,f2,a3,c4,f4]@2 [f1,f2,a3,c4,f4]@2, ~@2 c3 ~@13", // C F
  S: "~@2 [a1,a2,a3,c4,e4]@2 [a1,a2,a3,c4,e4]@2 [g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@4 [g1,g2,g3,b3,d4] [f1,f2,f3,a3,c4]@3", // Am G F
  T: "[c2,c3,g3,c4,e4]!3 [f1,f2,a3,c4,f4] [f1,f2,a3,c4,f4]@2 [f1,f2,a3,c4,f4]@2", // C F
  U: "[a1,a2,a3,c4,e4]@2 [a1,a2,a3,c4,e4]@2 [a1,a2,a3,c4,e4]@2 [g1,g2,g3,b3,d4]@4 [g1,g2,g3,b3,d4]@3 [f1,f2,f3,a3,c4]@3", // Am G F
  V: "~ [g3,c4,e4] [c2,c3,g3,c4,e4] [f1,f2,a3,c4,f4] [f1,f2,a3,c4,f4]@2 [f1,f2,a3,c4,f4]@2, [c2,c3] ~@3", // C F C
  W: "[a1,a2] ~ [a3,c4,e4]@2 [a1,a2,a3,c4,e4]@2 [g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@4 [g1,g2,g3,b3,d4]@4, ~@2 [a1,a2] ~@13", // A Am G A
  X: "[a1,a2,a3,c4,e4]@2 [a1,a2,a3,c4,e4]@2 [g1,g2,g3,b3,d4]!2 [g1,g2,g3,b3,d4]@2", // Am G
  Y: "[c2,g3,c4,e4]@5 ~ [f2,f3,a3,c4]@2", // C F
  Z: "[[a1,a2,a3,c4,e4]@4 [a1,a2,a3,c4,e4]@4 [g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@2 [c2,c3,g3,c4,e4]@4 [c2,c3,g3,c4,e4] ~ [c2,c3,g3,c4,e4]@2 [f1,f2,a3,c4,f4]@2 [f1,f2,a3,c4,f4]@4 [f1,f2,a3,c4,f4]@4]/2", // Am G C F
  AA: "[[a1,a2,a3,c4,e4]@4 [a1,a2,a3,c4,e4]@4 [g1,g2,g3,b3,d4]@2 ~ [g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@5 [c2,c3,g3,c4,e4]@42 ~@4]/4", // Am G C
})).s("gm_piano").gain(0.44)

// other · electric guitar clean
const electric_guitar_clean = note(`<
  ~@9
  [~@3 f3 f3@3 ~]
  [~@6 g3 ~ g3@4 ~@4]
  ~@22
  [~@3 f3 f3@3 ~]
  [~@6 g3 ~ g3@4 ~@4]
  ~@36
>`).s("gm_electric_guitar_clean").gain(0.4).pan(0.3)

// chords · synth strings 1
const synth_strings_1 = note(`<
  A@5 B@2 C D E@3 F@4 G H@3 I@4 J@2 K@2 L B@2 C D E@3 F@4 G H@3 I@4 J@2 M@4 I@2 J@2 K@2 I@4 J@2 N@5
>`.pickRestart({
  A: "[~ [g3,e4]@2 [f2,f4]@6 [a2,e4]@2 [g2,b3,d4]@5 [c3,e4]@3 [f2,f4]@5 [a2,e4]@4 [g2,g3,b3,d4]@3 [c3,e3,g3]@7 [f2,f3,a3]@2, c4@11 ~@5 c4@12 ~@3 c4@9, c3@3 a3@8 g3@8 a3@9 ~@12]/5", // C F A5 G C F A5 G …
  B: "[[g2,g3,b3,d4]@3 [f2,f3,a3] [c2,e3,g3]@3 [f2,f3,a3], ~@3 c4@5]/2", C: "[g2,g3,b3,d4]@3 [f2,f3,a3,c4]",
  D: "[a2,e3,a3,c4]@3 [g2,g3,b3,d4]", // Am G
  E: "[[f2,f3,a3,c4]@3 [g2,b3,d4] [c2,e4]@3 [f2,a3,f4] [c2,e4]@2 [g2,b3,d4]@2, ~@3 g3@4 ~ g3@4, ~@2 c4@3 ~]/3", // F G C F C G
  F: "[[a2,e3,a3,c4]@2 [g2,d3,g3,b3] [f2,f3,a3] [c2,g3]@4 [a2,a3,c4]@2 [g2,g3,b3,d4] [f2,f3,a3] [c3,e4]@3 b2, ~@3 c3@5 ~@4 g3@4, ~@4 e3@6 ~ c4@5]/4", // Am G F C5 Am G F C
  G: "[a2,e3,a3,c4] [g2,d3,g3,b3]", // Am G
  H: "[[f2,f3,a3]@2 [c2,e3,g3]@2 [f2,f3,a3]@2 [c2,e3]@2 [g2,d4]@2 [f2,f3,a3,c4] [g2,g3,b3,d4], c3@2 ~, ~@3 g3@2 ~]/3", // F C F C G5 F G
  I: "[[c3,g3,e4]@6 [f2,f4]@10 [a2,e4]@6 [g2,g3,b3,d4]@7 [f2,f3,a3,c4]@3, c4@11 ~@5, ~@3 a3@8 ~@5]/2", // C F A5 G F
  J: "[[c3,g3,e4]@3 [f2,f4]@5 [a2,e4]@3 [g2,g3,b3,d4]@5, c4@11 ~@5, ~@3 a3@8 ~@5]/2", // C F A5 G
  K: "[[c3,g3,e4]@3 [f2,f4]@5 [a2,e4]@4 [g2,g3,b3,d4]@4, c4@3 ~, ~@3 a3@9 ~@4]/2", L: "[c3,e3,g3]@3 [f2,f3,a3], c4",
  M: "[[c3,g3,e4]@6 [f2,f4]@10 [a2,e4]@8 [g2,g3,b3,d4]@6 [c3,g3,e4]@8 [f2,f4]@10 [a2,e4]@6 [g2,g3,b3,d4]@7 [f2,f3,a3,c4]@3, c4@12 ~@3 c4@12 ~@5, ~@3 a3@9 ~@7 a3@8 ~@5]/4", // C F A5 G C F A5 G …
  N: "[[c3,g3,e4]@3 [f2,f4]@5 [a2,e4]@4 [g2,g3,b3,d4]@5 [c3,g3,c4,e4]@21 ~@2, c4@3 ~@7, ~@3 a3@9 ~@28]/5", // C F A5 G C
})).s("gm_synth_strings_1").gain(0.4)

// other · overdriven guitar
const overdriven_guitar = note("<~@60 A B C D E F G H@3 ~>".pickRestart({
  A: "c5@6 b4 a4 g4@6 a4 b4", B: "c5@2 d5@2 d5@10 c5 d5", C: "e5@2 c5@2 g5@2 c5@2 a5@2 g5 [g5,a5] f5@2 e5@2",
  D: "e5@2 d5@2 c5@2 d5@8 ~ g5", E: "g5 f5 e5 d5 f5 e5 d5 c5 e5 d5 c5 b4 d5 c5 b4 a4",
  F: "c5@2 [b4,c5] b4 a4@2 g4@8 c5 d5", G: "e5@2 c5@2 g5@2 c5@2 a5@2 [g5,a5] g5 f5@2 e5@2",
  H: "[e5@2 d5@2 c5@2 d5@4 ~ e5@2 d5@2 c5@32 ~]/3",
})).s("gm_overdriven_guitar").gain(0.48)

// drums · kick
const kick = s("bd").struct(`<
  A@4 B C D C D C D C@2 E@3 C E@3 A F A G A F A@2 D C D C D C D H I E@3 C E@3 A@3 G A F A@5 G A F A@5 G A F A J K ~@2
>`.pickRestart({
  A: "x!2 ~ x!3 ~ x", B: "~@7 x!2 ~ x ~@3 x ~", C: "x ~@6 x ~@2 x ~@2 x ~@2", D: "x ~@6 x!2 ~ x ~@3 x ~",
  E: "x ~@6 x!2 ~ x ~@2 x ~@2", F: "x ~ x ~@3 x ~ x ~ x ~@2 x ~@2", G: "x ~ x ~@3 x ~@3 x ~@2 x ~@2",
  H: "x ~@6 x ~@2 x ~@2 x ~ x", I: "~@7 x ~@2 x ~@2 x ~@2", J: "x ~ x ~@3 x ~ x ~@2 x ~@3 x", K: "~ x ~@6",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct(`<
  [~ x ~ x]!19
  [~@4 x ~@7 x!2 ~@2]
  [~ x ~ x]!23
  [~@4 x ~@7 x!2 ~@2]
  [~ x ~ x]!23
  [~@4 x ~@8 x!2 ~]
  ~@3
>`).gain(0.64)

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

// drums · low tom
const low_tom = s("lt").struct("<~@67 [~@15 x] ~@3>").gain(0.56)

// drums · mid tom
const mid_tom = s("mt").struct("<~@67 [~@3 x] ~@3>").gain(0.56)

// drums · open hat
const open_hat = s("oh").struct(`<
  A@5 ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@9 ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@23 B ~@3
>`.pickRestart({
  A: "~@7 x", B: "~@15 x",
})).gain(0.56)

// drums · tambourine
const tambourine = s("tb").struct("<~@60 [x!8]!7 [x ~ x ~ x ~ x ~ x ~@2 x ~ x ~ x] ~@3>").gain(0.48)

// drums · crash
const crash = s("cr").struct("<~@20 A ~@3 A ~@3 A ~@15 A ~@3 A ~@2 B ~@4 A ~@3 A ~@3 A ~@3 C ~@2>".pickRestart({
  A: "x", B: "~@7 x", C: "~ x ~@6",
})).gain(0.4)

// drums · claves
const claves = s("clave:2").struct(`<
  ~ A ~ B ~@15 C ~ A ~ B ~ A ~ B ~@15 C ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ C D ~@2
>`.pickRestart({
  A: "~@7 x", B: "~@14 x!2", C: "~@15 x", D: "~ x ~@14",
})).gain(1.96)

stack(
  bass, piano, electric_guitar_clean, synth_strings_1, overdriven_guitar, kick, snare, hihat, low_tom, mid_tom,
  open_hat, tambourine, crash, claves
)

More by 883