Strudelify

Al cinema

Battisti

KeyD majorTempo120 bpm
0:00/0:00
// Al cinema — Battisti
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 159 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// chords · acoustic guitar steel · "Chit."
const acoustic_guitar_steel = note(`<
  A@6 B@2 C D A@4 B@2 C D A@2 E@2 B@2 C@2 D@2 A@2 F@2 G H I J G H I J G H I J G H K@2 A@6 B@2 C D A@4 B@2 C D A@2 E@2
  B@2 C@2 D@2 A@2 F@2 G H I J G H I J G H I J G H K@2 G H I J G H I J G H K@2 G H I J G H K@2 G H I J G H I J G H I J G
  H K@2 G H I J G H I G H I J G H I J G H I J G H I J G H I J
>`.pickRestart({
  A: "f#4 [d4,f#4,b4]@2 ~ a4 [d4,f#4,b4] ~@2", B: "d4 [d4,f#4,g4,b4]@2 ~ g4 [d4,f#4,g4,b4] ~@2",
  C: "d4 [d4,f#4,a4,d5]@2 ~ a4 [d4,f#4,a4,d5] ~@2", D: "e4 [c4,e4,g4,c5]@2 ~ g4 [c4,e4,g4,c5] ~@2",
  E: "e4 [e4,a4,c#5]@2 ~ a4 [e4,a4,c#5] ~@2", F: "f#4 [f#4,a#4,c#5]@2 ~ a#4 [f#4,a#4,c#5] ~@2",
  G: "[f#4,a#4,c#5]@2 [f#4,a#4,c#5]!2 [f#4,a#4,c#5]@2 [f#4,a#4,c#5]!2 [f#4,a#4,c#5]@2 [f#4,a#4,c#5]!2 [f#4,a#4,c#5]@2 [f#4,a#4,c#5]!2", // F#
  H: "[d4,f#4,b4]@2 [d4,f#4,b4]!2 [d4,f#4,b4]@2 [d4,f#4,b4]!2 [d4,f#4,b4]@2 [d4,f#4,b4]!2 [d4,f#4,b4]@2 [d4,f#4,b4]!2", // Bm
  I: "[d4,e4,g#4,b4]@2 [d4,e4,g#4,b4]!2 [d4,e4,g#4,b4]@2 [d4,e4,g#4,b4]!2 [d4,e4,g#4,b4]@2 [d4,e4,g#4,b4]!2 [d4,e4,g#4,b4]@2 [d4,e4,g#4,b4]!2", // E7
  J: "[e4,a4,c#5]@2 [e4,a4,c#5]!2 [e4,a4,c#5]@2 [e4,a4,c#5]!2 [e4,a4,c#5]@2 [e4,a4,c#5]!2 [e4,a4,c#5]@2 [e4,a4,c#5]!2", // A
  K: "[[b3,e4,g#4]@3 [c#4,f#4,a4]@3 [b3,e4,g#4]@3 [c#4,f#4,a4]@3 [b3,e4,g#4]@2 [b3,e4,g#4]@2]/2", // E F#m E F#m E
})).s("gm_acoustic_guitar_steel").gain(0.17)

// bass · electric bass finger · "Basso"
const bass = note(`<
  A@5 B C@2 D E A@3 F G C D E A@2 H@2 G C D@2 E@2 A@2 I@2 J K@2 L J K@2 L M@4 N O@3 A@5 B C@2 D E A@3 F G C D E A@2 H@2
  G C D@2 E@2 A@2 I@2 J K@2 L J K@2 L M@4 N O@3 P Q R S P Q R S P Q T@2 P Q R S P Q T@2 J K@2 L J K@2 L U@8 V@4 W@3 V@16
  X Q R S
>`.pickRestart({
  A: "b2@2 ~@2 a2 b2@2 f#2", B: "b2@2 ~@2 a2 a2@2 f#2", C: "b2@2 ~@2 a2 b2@2 g2", D: "d3@2 ~@2 a2 d3@2 g2",
  E: "c3@2 ~@2 g2 c3@2 g2", F: "b2@2 ~@2 a2 a2@3", G: "g2@2 ~@2 a2 b2@2 g2", H: "a2@2 ~@2 a2 b2@2 e2",
  I: "f#2@2 ~@2 a#2 c#3@2 e2", J: "f#2@5 g#2 a#2 b2", K: "[b2@5 c#3 d3 e3@6 f#3 g#3 a3]/2", L: "~ a2 g#2 g2",
  M: "[~@5 g#2 a#2 b2@6 d3 f#3 e3@6 g#3 b3 c#4@2 a3@2 e3@2 c#3 d3 e3, f#2@9 ~@23]/4", N: "f#3 g3 f#3 e3 d3 c#3 c3 b2",
  O: "[d3 c#3 b2 a2 g#2 f#2 f2 e2@17]/3", P: "f#2@3 f#2 f#2@4", Q: "b2@3 b2 b2@4", R: "e2@3 e2 e2@4", S: "a2@3 a2 a2@4",
  T: "[e2@3 f#2@3 e2@3 f#2@3 e2@2 e2@2]/2",
  U: "[~@5 g#2 a#2 b2@6 d3 f#3 e3@6 g#3 b3 c#4@2 a3@2 e3@2 c#3 d3 e3 f#3 g3 f#3 e3 d3 c#3 c3 b2 d3 c#3 b2 a2 g#2 ~ f2 e2@17, f#2@45 f#2@19]/8",
  V: "[f#2@3 f#2 ~@4 b2@3 b2 b2@4 e2@3 e2 e2@4 a2@3 a2 a2@4, ~ f#2@7]/4",
  W: "[f#2@3 f#2 ~@4 b2@3 b2 b2@4 e2@3 e2 e2@4, ~ f#2@5]/3", X: "f#2@3 f#2@5",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · piano · "Coro"
const piano = note(`<
  ~@10 A B C ~@5 A D E@2 F@2 G H I@2 J ~ K ~ L M N O L M N O P M Q@2 L R@3 ~@10 A B C ~@5 A D E@2 F@2 G H I@2 J ~ K ~ L
  M N O L M N O P M Q@2 L R@3 L M N O L M N O P M S@2 L M N O P M S@2 L M N O L M N O P M Q@2 L R@3 L M N O P M ~ L M N
  O L M N O L M N O L M N O L M N O
>`.pickRestart({
  A: "[e4,a4] [f#4,b4] ~@2 [d4,g4] [e4,a4] ~@2", B: "[c#4,e4] [d4,f#4] ~@2 [b3,d4] [c#4,e4] ~@2",
  C: "[a3,c#4] [b3,d4]@3 ~@4", D: "[c#4,e4] [d4,f#4] ~@2 [b3,d4]@4", E: "[[a3,c#4]@7 [c#4,e4]]/2", F: "[b3,d4]/2",
  G: "~ a3", H: "d4 f#4", I: "[g4 d4 g4 ~, [c4,e4]]/2", J: "[d4,f#4,b4]!2 ~@6", K: "[c#4,f#4,a#4]!2 ~@6",
  L: "[f#4,a#4]", M: "[d4,f#4,b4]", N: "[d4,g#4,b4]", O: "[e4,a4,c#5]", P: "[f#4,a#4,c#5]",
  Q: "[[g#4,b4,d5]@5 [b4,d5,e5]@2 [a4,c#5,e5]@3 d5 c#5@2 b4 a4 ~]/2", // G#dim E7 A
  R: "[[d4,f#4,b4]@4 ~ g#4 f#4 ~ [b3,g#4]@3 [c#4,f#4,a4]@3 [b3,e4,g#4]@3 [c#4,f#4,a4]@3 [b3,e4,g#4]@2 [b3,e4,g#4]@2, ~@7 e4@4 ~@13]/3", // Bm E F#m E F#m E
  S: "[[b3,e4,g#4]@3 [c#4,f#4,a4]@3 [b3,e4,g#4]@3 [c#4,f#4,a4]@3 [b3,e4,g#4]@2 [b3,e4,g#4]@2]/2", // E F#m E F#m E
})).s("gm_piano").gain(0.64)

stack(acoustic_guitar_steel, bass, piano)

More by Battisti