Strudelify

Ami ancora Elisa

Battisti

KeyD majorTempo82 bpm
0:00/0:00
// Ami ancora Elisa — Battisti
// 81.6 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 130 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(81.6/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · electric guitar jazz · "Chit."
const electric_guitar_jazz = note(`<
  A B A B A B A C A C A C B D B E A B A B A C A C A C B D B E A B A B A B A B A B F G A H A B A B A B A B A B I B A B A
  B A B A B A B A B A G J B J B J B J B A B A B A B A H A B A B A B A B A B I B 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 B A B A B A B
>`.pickRestart({
  A: "[d4,f#4,a4]@4 [d4,f#4,a4,d5,f#5]@3 [d4,f#4,a4] [d4,f#4,a4,d5,f#5]@2 [d4,f#4,a4,d5,f#5]@2 [d4,f#4,a4]!3 [d4,f#4,a4,d5,f#5]", // D
  B: "[d4,f#4,b4]@4 [d4,f#4,b4,d5,f#5]@3 [d4,f#4,b4] [d4,f#4,b4,d5,f#5]@2 [d4,f#4,b4,d5,f#5]@2 [d4,f#4,b4]!3 [d4,f#4,b4,d5,f#5]", // Bm
  C: "[c#4,f#4,a4]@4 [c#4,f#4,a4,c#5,f#5]@3 [c#4,f#4,a4] [c#4,f#4,a4,c#5,f#5]@2 [c#4,f#4,a4,c#5,f#5]@2 [c#4,f#4,a4]!3 [c#4,f#4,a4,c#5,f#5]", // F#m
  D: "[d4,f#4,g4,b4]@4 [d4,f#4,g4,b4,d5,f#5]@3 [d4,f#4,b4] [d4,f#4,g4,b4,d5,f#5]@2 [d4,f#4,g4,b4,d5,f#5]@2 [d4,f#4,g4,b4]!3 [d4,f#4,g4,b4,d5,f#5]", // Gmaj7 Bm Gmaj7
  E: "[d4,e4,a4,c#5]!8", // A
  F: "[d4,f#4,a4,d5]@4 [d4,f#4,a4,d5,f#5]@3 [d4,f#4,a4] [d4,f#4,a4,d5,f#5]@2 [d4,f#4,a4,d5,f#5]@2 [d4,f#4,a4]!3 [d4,f#4,a4,d5,f#5]", // D
  G: "[d4,f#4,b4,d5,f#5]!3 [d4,f#4,b4,d5,f#5]@3 ~@2", // Bm
  H: "[d4,f#4,b4]@2 [d4,f#4,b4,d5,f#5]@3 [d4,f#4,b4] [d4,f#4,b4,d5,f#5]@2 ~@2 [d4,f#4,b4,d5,f#5]@2 [d4,f#4,b4]!3 [d4,f#4,b4,d5,f#5]", // Bm
  I: "[d4,f#4,a4]@2 [d4,f#4,a4,d5,f#5]@3 [d4,f#4,a4] ~@2 [d4,f#4,a4,d5,f#5]@2 [d4,f#4,a4,d5,f#5]@2 [d4,f#4,a4]!3 [d4,f#4,a4,d5,f#5]", // D
  J: "[c#4,d4,f#4,a4]@4 [c#4,d4,f#4,a4,d5,f#5]@3 [d4,f#4,a4] [c#4,d4,f#4,a4,d5,f#5]@2 [c#4,d4,f#4,a4,d5,f#5]@2 [c#4,d4,f#4,a4]!3 [c#4,d4,f#4,a4,d5,f#5]", // Dmaj7 D Dmaj7
})).s("gm_electric_guitar_jazz").gain(0.18)

// chords · piano
const piano = note(`<
  A B C D E C ~@10 F@4 ~@10 G@10 H ~ I J I J I J I J I J I J I J I K L G@10 ~ M N M N M N M N O P O P O P I J I J I J I
  J I J I J I J I K L G@29
>`.pickRestart({
  A: "[f#4,a4]", B: "[f#4,b4]@12 f#4!2 a4 f#4", C: "b4 a4@3", D: "[f#4,b4]", E: "[f#4,a4]@12 f#4!2 a4 f#4",
  F: "~@2 [d4,f#4,b4]@2 [d4,f#4,a4]@2 [d4,f#4,b4] [d4,f#4,a4]@9", // Bm D Bm D
  G: "~@2 [d4,f#4,b4]@2 [d4,f#4,a4]@2 [d4,f#4,b4] [d4,f#4,a4]@2 [d4,f#4,b4] [d4,f#4,a4]@2 ~@4", // Bm D Bm D Bm D
  H: "~@2 [d4,f#4,b4]@2 [d4,f#4,a4]@2 [d4,f#4,b4] [d4,f#4,a4]@3 [d4,f#4,b4]@2 [d4,f#4,a4]@4", // Bm D Bm D Bm D
  I: "[d4,f#4,a4]@3 [d4,f#4,a4]@5 [d4,f#4,a4]@3 [d4,f#4,a4]@5", // D
  J: "[b3,d4,f#4]@3 [b3,d4,f#4]@5 [b3,d4,f#4]@3 [b3,d4,f#4]@5", // Bm
  K: "[b3,d4,f#4]@3 [b3,d4,f#4]@5 [b3,d4,f#4]@3 f#4!3 a4 f#4", // Bm
  L: "b4@2 [d4,f#4,b4]@2 [d4,f#4,a4]@2 [d4,f#4,b4] [d4,f#4,a4]@2 [d4,f#4,b4] [d4,f#4,a4]@2 ~@4", M: "[c#4,f#4,a4]!4",
  N: "[b3,d4,f#4,a4]!4", O: "[d4,f#4,a4] [f#4,a4] ~@3 [f#4,a4] [d4,f#4] [f#4,a4]",
  P: "[d4,f#4] [f#4,b4] ~@3 [f#4,b4] [d4,f#4] [f#4,b4]", // D B5 D B5
})).s("gm_piano").gain(0.35)

// bass · electric bass finger · "Basso"
const bass = note(`<
  A B A B A B C D C D C D B E B F A B A B C D C D C D B E B F 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 B A B A
  B A B A B A B A B A B D B D B D B D B 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 B 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 B
>`.pickRestart({
  A: "d3@7 c#3", B: "b2", C: "d3", D: "c#3", E: "g2", F: "a2",
})).s("gm_electric_bass_finger").gain(0.64)

stack(electric_guitar_jazz, piano, bass)

More by Battisti