Strudelify

Supermarket

Battisti

KeyE majorTempo110 bpm
0:00/0:00
// Supermarket — Battisti
// 110 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/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@16 B C A@2 D C A@2 C E C F A@15 G@2 B C A@2 D C A H I J A H I J K L M@4 N@4 O P Q@3 P R@8 S@7 T@8 S@7 T@8 U@5 V W
>`.pickRestart({
  A: "[b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~", // E7 A7 E7
  B: "[c#4,e4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4] [c#4,e4,a4]@2 [c#4,e4,a4] [c#4,e4,a4]@2 [d4,f#4,a4]@2 [c#4,e4,a4] ~", // A D A
  C: "[c#4,e4,g4,a4]@2 [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4] [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4] [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4] ~", // A7
  D: "[c#4,e4,g4,a4]@2 [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4] [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4] [c#4,e4,g4,a4]@2 [d4,f#4,a4]@2 [c#4,e4,g4,a4] ~", // A7 D A7
  E: "[c#4,e4,g4,a#4]@2 [c#4,e4,g4,a#4]@2 [c#4,e4,g4,a#4]@2 [c#4,e4,g4,a#4] [c#4,e4,g4,a#4]@2 [c#4,e4,g4,a#4] [c#4,e4,g4,a#4]@2 [c#4,e4,g4,a#4]@2 [c#4,e4,g4,a#4] ~", // C#dim
  F: "[c#4,e4,g4,a4]@2 [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4] ~ a4 [c#4,e4,g4,a4] [c#4,e4,g4,g#4,a4]@2 [d4,f#4,a4]@2 [c#4,e4,g4,a4] ~, ~@7 [c#4,e4,g4,a4]@2 ~@7", // A7 D A7
  G: "[[b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@4 [c#4,e4,g4,a4]@3 [b3,d4,e4,g#4]@3 [c#4,e4,g4,a4]@3 [b3,d4,e4,g#4]@4]/2", // E7 A7 E7 A7 E7 A7 E7
  H: "[b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [d4,f#4,a4]@2", // E7 A7 D
  I: "[c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4] [b3,d4,g4]@2 [b3,d4,g4] [b3,d4,g4]@2", // C G
  J: "[d4,f#4,a4]@2 [d4,f#4,a4] [d4,f#4,a4]@2 [d4,f#4,a4] [d4,f#4,a4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2", // D C
  K: "[b3,d#4,f#4,a4]@2 [b3,d#4,f#4,a4]@2 [b3,d#4,f#4,a4]@2 [b3,d#4,f#4,a4] [b3,d#4,f#4,a4]@2 [b3,d#4,f#4,a4] [b3,d#4,f#4,a4]@2 [b3,d#4,f#4,a4]@2 [b3,d#4,f#4,a4] ~", // B7
  L: "f#5 d#5@2 b4 d#5@2 b4@2 e5 c#5@2 b4 c#5@4",
  M: "[g#5@2 g5@2 f#5@2 e5@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [g#4,b4,d5,e5]@4 [g4,a#4,c#5,d#5] [f#4,a4,c5,d5]@3 [f4,g#4,b4,c#5]@2]/4", // E7 A7 E7 A7 E7 A7 E7 D#7 …
  N: "[~ [e4,g4,a#4,c5]@3 [d#4,f#4,a4,b4]@3 ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [g#4,b4,d5,e5]@4 [g4,a#4,c#5,d#5] [f#4,a4,c5,d5]@3 [f4,g#4,b4,c#5]@2]/4", // C7 B7 E7 A7 E7 A7 E7 A7 …
  O: "~ [e4,g4,a#4,c5]@3 [d#4,f#4,a4,b4]@3 ~ [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2", // C7 B7 C
  P: "[b3,d4,g4]@2 [b3,d4,g4] [b3,d4,g4]@2 [b3,d4,g4] [b3,d4,g4]@2 [d4,f#4,a4]@2 [d4,f#4,a4] [d4,f#4,a4]@2 [d4,f#4,a4] [d4,f#4,a4]@2", // G D
  Q: "[[c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [d4,f#4,a4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2]/3", // C E7 A7 E7 A7 D C
  R: "[[c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]!2]/8", // C E7 A7 E7 A7 E7 A7 E7 …
  S: "[~ [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [d4,f#4,g#4,b4]@3 [c#4,f4,g#4,a#4]@3 [c4,e4,f#4,a4]@2]/7", // E7 A7 E7 A7 E7 A7 E7 A7 …
  T: "[~ [b3,d#4,f4,g#4]@3 [a#3,d4,e4,g4]@2 [a3,c#4,d#4,f#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]!2]/8", // Fm7b5 Em7b5 D#m7b5 E7 A7 E7 A7 E7 …
  U: "[~ [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4] [b3,d4,e4,g#4]@2 [c#4,e4,g4,a4]@2 [b3,d4,e4,g#4] ~ f#5 d#5@2 b4 d#5@2 b4@2]/5", // E7 A7 E7 A7 E7 A7 E7 A7 …
  V: "e5 c#5@2 b4 c#5@4 [g#3,g#5]@2 [g3,g5]@2 [f#3,f#5]@2 [e3,e5]@2", W: "[e4,g#4,b4,e5] ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.04)

// bass · electric bass finger · "Basso"
const bass = note(`<
  A@16 B@2 A@2 B@2 A@2 B C B@2 A@17 B@2 A@2 B@2 A D E F A D E F G ~ H A@2 I@2 A@2 J@2 K L A M K L A@13 N O A@13 N O A@11
  P ~ Q
>`.pickRestart({
  A: "e2!16", B: "a2!16", C: "a#2!16", D: "e2!14 d2@2", E: "c2!8 g2!8", F: "d2!8 c2!8", G: "b1!15 ~", H: "~@8 e2!8",
  I: "[e2!8 e2@2 d#2 ~ d2@3 c#2@3 c2@3 b1@3 e2!8]/2", J: "[e2!8 e2@2 d#2 ~ d2@3 c#2@3 c2@3 b1@3 c2!8]/2",
  K: "g2!8 d2!8", L: "c2!8 e2!8", M: "e2!6 d2@2 c2!8", N: "e2!8 e2@3 d#2@3 d2@2", O: "~ c#2@3 c2@2 b1@2 e2!8",
  P: "e2!8 ~@8", Q: "e2 ~@3",
})).s("gm_electric_bass_finger").gain(0.08)

stack(acoustic_guitar_steel, bass)

More by Battisti