Strudelify
Un giorno cosi cover art

1997 · La Dura Legge Del Gol

Un giorno cosi

883

KeyA majorTempo119 bpm
0:00/0:00
// Un giorno cosi — 883
// 119 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 117 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 28.
// note: The whole transcription plays 43 ms ahead of the beat; the grid follows it, so its parts stay together.
setcpm(119/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, A@4 for four bars: edit a riff to change every repeat.

// bass · fretless bass
const bass = note(`<
  ~@8 A B C D E B C D F G H G H G H G D I J I K L D M F G H G H G H G D I J I K L D M E B C D E B C D C N C N C O P Q
  R@4 ~@8 S I J I K L D M E B C D E B C D C N C N C O P Q A B C D E B C D C N C N C O P Q T
>`.pickRestart({
  A: "~ a1!2 ~ a1!2 ~ a1!2 ~ g#1!2 ~ g#1 ~ g#1", B: "g#1 f#1!2 ~ f#1!2 ~ f#1!2 ~ e2!2 ~ e2 ~ e2",
  C: "e2 d2!2 ~ d2!2 ~ d2!2 ~ d2!2 ~ d2 ~ d2", D: "d2 e2!2 ~ e2!2 ~ e2!2 ~ e2!2 ~ e2 ~ e2",
  E: "e2 a1!2 ~ a1!2 ~ a1!2 ~ g#1!2 ~ g#1 ~ g#1", F: "e2 a1!2 ~ a1!2 ~ a1!2 ~ a1!2 ~ a1 ~ a1",
  G: "a1 d2!2 ~ d2!2 ~ d2!2 ~ d2!2 ~ d2 ~ d2", H: "d2 a1!2 ~ a1!2 ~ a1!2 ~ a1!2 ~ a1 ~ a1",
  I: "e2 f#2!2 ~ f#2!2 ~ f#2!2 ~ f#2!2 ~ f#2 ~ f#2", J: "f#2 e2!2 ~ e2!2 ~ e2!2 ~ e2!2 ~ e2 ~ e2",
  K: "f#2 g2!2 ~ g2!2 ~ g2!2 ~ g2!2 ~ g2 ~ g2", L: "g2 d2!2 ~ d2!2 ~ d2!2 ~ d2!2 ~ d2 ~ d2",
  M: "e2!3 ~ e2!2 ~ e2!2 ~ e2!2 ~ e2 ~ e2", N: "d2 f#2!2 ~ f#2!2 ~ f#2!2 ~ e2!2 ~ e2 ~ e2",
  O: "d2 f#2!2 ~ f#2!2 ~ f#2!2 ~ f#2!2 ~ f#2 ~ f#2", P: "f#2 e2!2 ~ e2!2 ~ e2!2 ~ e2!2 ~ e2 ~ b1",
  Q: "b1 e2!2 ~ e2!2 ~ e2!2 d2 ~ d2 ~ d2 ~ e2", R: "[~ a1@60 ~@3]/4", S: "~ e2!2 ~ e2!2 ~ e2!2 ~ e2!2 ~ e2 ~ e2",
  T: "~ a2 ~@14",
})).s("gm_fretless_bass").gain(0.29)

// other · distortion guitar
const distortion_guitar = note(`<
  A@8 ~@17 B ~ B ~ C D@2 ~@9 B ~ B ~ C E F ~@8 G H I H J K L M N ~@27 G H I H J K L M O P Q R S P Q R I H I H J K L M N
>`.pickRestart({
  A: "[~ [a2,a3]@124 ~@3]/8", B: "~ f#3 ~@2 f#3 ~@2 f#3 ~@2 f#3 ~@2 f#3 ~@2", C: "~ d3 ~@2 d3 ~@2 d3 ~@2 d3 ~@2 d3 ~@2",
  D: "~ e3 ~@2 e3 ~@2 e3 ~@2 e3 ~@2 e3 ~@2", E: "~ e3 ~@2 e3 ~@2 e3 ~@2 e3 ~@2 e3 ~ d3",
  F: "d3 e3 ~@2 e3 ~@2 e3 ~@2 e3 ~@2 e3 ~@2", G: "~ d3@2 ~ e3@2 ~ f#3@2 ~ a3@2 ~@4",
  H: "~ f#3@2 ~ f#3@2 ~ f#3@2 e3@2 ~ e3 ~@2 f#3", I: "e3 d3@2 ~ e3@2 ~ f#3@2 ~ a3@2 ~@4",
  J: "e3 d3@2 ~ e3@2 ~ f#3@2 ~ a3@2 ~@3 d3", K: "e3 f#3@2 ~ f#3@2 ~ f#3@2 ~ f#3@2 ~ f#3 ~ f#3",
  L: "~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3 ~ d3", M: "~ e3@2 ~ e3@2 ~ e3 ~ d3@2 ~ d3@2 ~ e3", N: "~ a2@2 ~@13",
  O: "~ a2 ~@2 a2 ~@2 a2 ~@2 a2 ~@2 a2 ~ e3", P: "~ f#3 ~@2 f#3 ~@2 f#3@2 ~ f#3@2 ~ f#3 ~ e3",
  Q: "~ d3 ~@2 d3 ~@2 d3 ~@2 d3 ~@2 d3 ~ d3", R: "~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3 ~@2",
  S: "e3 a2 ~@2 a2 ~@2 a2 ~@2 a2 ~@2 a2 ~ e3",
})).s("gm_distortion_guitar").gain(0.25).pan(0.7)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@7 A B C@4 D@3 ~@32 E@2 F G E@2 F G ~@8 H I J I K ~@15 E@2 F G E@2 F G ~@25
>`.pickRestart({
  A: "~@13 [c#4,e4,a4,c#5]!3", // A
  B: "[c#4,e4,a4,c#5] [a3,e4,a4,c#5]@3 [a3,e4,a4,c#5]@3 [a3,e4,a4,c#5]!2 [b3,e4,a4,c#5]@3 [b3,e4,a4,c#5]@3 [b3,e4,a4,c#5]", // A
  C: "[[b3,e4,a4,c#5] [c#4,e4,f#4,a4,c#5]@3 [c#4,e4,f#4,a4,c#5]@3 [c#4,e4,f#4,a4,c#5]!2 [b3,e4,g#4,b4]@3 [b3,e4,g#4,b4]@2 [b3,e4,g#4,b4] [b3,e4,g#4,b4]@2 [d4,e4,a4,c#5]@3 [d4,e4,a4,c#5]@2 [d4,e4,a4,c#5] [d4,e4,a4,c#5]@3 [d4,e4,a4,c#5]@2 [d4,e4,a4,c#5] [d4,e4,a4,c#5]@2 [d4,e4,a4,c#5]@2 [b3,e4,a4,c#5]@3 [b3,e4,a4,c#5]@3 [b3,e4,a4,c#5]@2 [b3,e4,g#4,b4]@3 [b3,e4,g#4,b4]@3 ~ c#4 [a3,e4,a4,c#5]@3 [a3,e4,a4,c#5]@3 [a3,e4,a4,c#5]!2 [b3,e4,a4,c#5]@3 [b3,e4,a4,c#5]@3 [b3,e4,a4,c#5], ~@47 [b3,g#4,b4]@2 ~@15]/4", // A F#m7 E A E A E
  D: "[[b3,e4,a4,c#5] [c#4,e4,f#4,a4,c#5]@3 [c#4,e4,f#4,a4,c#5]@3 [c#4,e4,f#4,a4,c#5]!2 [b3,e4,g#4,b4]@3 [b3,e4,g#4,b4]@2 [b3,e4,g#4,b4] [b3,e4,g#4,b4]@2 [d4,e4,a4,c#5]@3 [d4,e4,a4,c#5]@2 [d4,e4,a4,c#5] [d4,e4,a4,c#5]@3 [d4,e4,a4,c#5]@2 [d4,e4,a4,c#5] [d4,e4,a4,c#5]@2 [d4,e4,a4,c#5]@2 [b3,e4,a4,c#5]@3 [b3,e4,a4,c#5]@3 [b3,e4,a4,c#5]@2 [b3,e4,g#4,b4]@3 [b3,e4,g#4,b4]@3 [b3,e4,g#4,b4]]/3", // A F#m7 E A E
  E: "~ [a4,c#5]@2 ~ [a4,c#5]@4 ~ [a4,c#5]@2 ~ [a4,c#5]@4", F: "~ [a4,d5]@2 ~ [a4,d5]@3 ~@2 [a4,d5]@2 ~ [a4,d5]@4",
  G: "~ [b4,e5]@2 ~ [b4,e5]@4 ~ [b4,e5]@2 ~ [b4,e5]@4", // E5
  H: "~ [a4,c#5]@2 [a4,c#5] [a4,c#5]@3 [a4,c#5]@3 [a4,c#5]@2 [a4,c#5] [a4,c#5]@2 [a4,c#5]", // A
  I: "[a4,c#5] [a4,d5]@2 [a4,d5] [a4,d5]@3 [a4,d5]@3 [a4,d5]@2 [a4,d5] [a4,d5]@2 [a4,d5]", // A D5
  J: "[a4,d5] [a4,c#5]@2 [a4,c#5] [a4,c#5]@3 [a4,c#5]@3 [a4,c#5]@2 [a4,c#5] [a4,c#5]@2 [a4,c#5]", K: "[a4,d5] ~@15",
})).s("gm_electric_guitar_clean").gain(0.1).pan(0.2)

// chords · distortion guitar
const distortion_guitar_2 = note(`<
  ~@48 A B C D A B C D C E C E C F D G H@3 I ~@16 A B C D A B C D C E C E C F D G A B C D A B C D C E C E C F D G ~
>`.pickRestart({
  A: "~ [a2,e3,a3]@7 ~ [g#2,c#3,g#3]@7", B: "~ [f#2,c#3,f#3]@8 [e2,b2,e3]@7", C: "~ [d3,a3,d4]@15",
  D: "~ [e3,b3,e4]@15", E: "~ [f#2,f#3,c#4]@7 ~ [e2,e3,b3]@7", F: "~ [f#3,c#4,f#4]@15",
  G: "~ [e3,b3,e4]@8 [d3,a3,d4]@6 ~", H: "[~ [a2,e3,a3]@45 ~@2]/3", I: "~ [e3,a3,a4]@8 ~@7",
})).s("gm_distortion_guitar").gain(0.22).pan(0.8)

// chords · pad warm
const pad_warm = note("<~@68 A B A C A D A B E F E G H I E J ~@33>".pickRestart({
  A: "[a4,e5]@3 ~", B: "[a4,d5]@3 ~", C: "[d5,a5]@11 ~@5", D: "[d5,f#5]@3 ~", E: "[e5,b5]@3 ~", F: "[f#5,c#6]@7 ~",
  G: "[f#5,c#6]@11 ~@5", H: "[a5,d6]@13 ~@3", I: "[d5,a5]@13 ~@3", J: "[e5,b5]@7 ~",
})).s("gm_pad_warm").gain(0.06)

// other · electric guitar muted
const electric_guitar_muted = note("<~@108 [~@10 a3 ~ a3!2 ~@2] ~ [~@10 a3 ~ a3!2 ~@2] ~ [~@10 a3 ~ a3!2 ~@2] ~@4>")
  .s("gm_electric_guitar_muted").gain(0.11).pan(0.3)

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

// drums · snare
const snare = s("sd").struct("<A@8 ~@23 B A@15 C A@15 D E@3 F ~@7 G A@7 H A@15 D A@15 F ~>".pickRestart({
  A: "~@5 x ~@7 x ~@2", B: "~ x ~@4 x!2 ~@3 x!4 ~", C: "~ x ~@2 x!2 ~ x ~@5 x ~@2", D: "~ x ~ x!5 ~@4 x!2 ~@2",
  E: "~@5 x!2 ~@6 x!2 ~", F: "~@5 x!2 ~@6 x ~@2", G: "~ x ~@2 x!5 ~ x!2 ~ x ~@2", H: "~ x ~ x!3 ~ x ~@5 x ~@2",
})).gain(0.44)

// drums · clap
const clap = s("cp").struct("<~@32 [~@5 x ~@7 x ~@2]!35 [~@5 x ~@2 x ~@7] ~@8 [~@5 x ~@7 x ~@2]!40 ~>").gain(0.37)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@10 A@2 ~@2 A@2 ~@7 B C ~@6 D E@7 F E@7 G H E@6 I H E@6 J H E@2 K ~@7 L H E@7 H E@6 I H E@6 J H E@15 C
>`.pickRestart({
  A: "~@13 x ~@2", B: "~@9 x ~@3 x!3", C: "x", D: "~@9 x ~@5 x", E: "x!2 ~ x!2 ~@4 x ~ x!2 ~@3",
  F: "x!2 ~@2 x ~@4 x ~ x!5", G: "x ~@3 x ~@4 x ~ x!2 ~@3", H: "~ x ~ x!2 ~@4 x ~ x!2 ~@3", I: "x ~@12 x ~@2",
  J: "x ~@10 x ~@4", K: "x!3 ~@2 x ~@2 x ~@7", L: "~@9 x ~@2 x ~ x!2",
})).gain(0.31)

// drums · hihat
const hihat = s("hh").struct(`<
  [~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!8
  [~ x ~ x!3 ~ x!2 ~ x!2 ~ x!2 ~]!59
  [~ x ~@14]
  ~@8
  [~ x ~ x!3 ~ x!2 ~ x!2 ~ x!2 ~]!40
  ~
>`).gain(0.37)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@10 A@2 ~@2 A@2 ~@7 B ~@8 C@7 D C@7 E C@7 F C@7 G C@3 H ~@8 C@7 I C@7 F C@7 G C@16 ~
>`.pickRestart({
  A: "~@3 x ~@2 x!2 ~@2 x!3 ~@3", B: "~@3 x ~@4", C: "~@7 x!2 ~@6 x", D: "~@6 x!3 ~@7", E: "~@3 x ~@3 x!2 ~@5 x!2",
  F: "~@3 x!2 ~ x!2 ~ x!4 ~@3", G: "~@8 x!2 ~@4 x!2", H: "~@3 x!2 ~ x!2 ~@2 x!3 ~@3", I: "~@7 x!2 ~@5 x!2",
})).gain(0.37)

// drums · open hat
const open_hat = s("oh").struct("<~@8 [~@15 x]!59 ~@9 [~@15 x]!40 ~>").gain(0.37)

// drums · high tom
const high_tom = s("ht").struct("<~@10 A@2 ~@2 A@2 ~@7 B ~@7 B ~@7 B ~@15 C ~@11 D E ~@6 B ~@15 C ~@25>".pickRestart({
  A: "~ x ~@2", B: "~@3 x ~@12", C: "~@5 x ~@10", D: "~@9 x ~@3 x!3", E: "x",
})).gain(0.44)

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

// drums · tambourine
const tambourine = s("tb").struct("<~@68 [~@3 x ~@12]!8 ~@41>").gain(0.25)

// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct("<~@115 [~@5 x ~@2] ~>").gain(1.61)

stack(
  bass, distortion_guitar, electric_guitar_clean, distortion_guitar_2, pad_warm, electric_guitar_muted, kick, snare,
  clap, low_tom, hihat, mid_tom, open_hat, high_tom, crash, tambourine, jingle_bells
)

More by 883