Strudelify

Davanti a un distributore automatico di fiori

Battisti

KeyA minorTempo60 bpm
0:00/0:00
// Davanti a un distributore automatico di fiori — Battisti
// 60 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 29 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/4)

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

// other · piano
const piano = note("<A B C D E@2 F G H I J K L@2 M N ~@13>".pickRestart({
  A: "a3 ~ b3 ~ c4 ~ d4 ~ e4 ~ f4 ~ g4 ~ a4 ~", B: "a4 ~ b4 ~ g4 ~ a4 f4@3 ~@6",
  C: "f4 ~ e4 ~ e4 ~ d4 d4@2 ~ e4 ~ e4 ~ f4 ~", D: "f4 ~ e4 ~ e4 ~ d4 e4@2 ~@7", E: "d4 c4 ~@14", F: "e4 d4 ~@14",
  G: "f4 e4 ~@4 e4 ~@9", H: "a4 ~ b4 ~ c5 ~ d5 ~ e5 ~ f5 ~ g5 ~ a5 ~", I: "a5 ~ b5 ~ g5 ~ a5 f5@3 ~@6",
  J: "f5 ~ e5 ~ e5 ~ d5 d5@2 ~ e5 ~ e5 ~ f5 ~", K: "f5 ~ e5 ~ e5 ~ d5 e5@2 ~@7", L: "d5 c5 ~@14", M: "e5 d5 ~@14",
  N: "f5 e5 ~@4 e5 ~@9",
})).s("gm_piano").gain(0.64)

// chords · piano
const piano_2 = note("<A B C D E F G H A B C D E F G H I J K L M N O P Q@2 R S T>".pickRestart({
  A: "[a3,c4,e4]@11 ~@5", B: "[a3,d4,g4]@11 ~@5", C: "[g3,b3]@11 ~@5", D: "[g3,c4]@5 ~@3 [g#3,d4]@5 ~@3",
  E: "[a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~", // Am
  F: "[a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~, g3!3 ~@5", // Am Am7
  G: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // D
  H: "[e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~", // E7
  I: "[c4,e4]", J: "[d4,f4]", K: "[d4,g4]", L: "[e4,g4] [d4,g#4]", M: "a3", N: "g3", O: "f#3", P: "e3",
  Q: "d4!2 c4@2 ~@2 d4!2 c4@2 ~@2 e4 d4 c4@2", R: "e4!2 d4@2 ~@2 e4!2 d4@2 ~@2 e4!2 d4@2",
  S: "[a3,d4,e4]!4 [g#3,d4,e4]!4", T: "[a3,d4,f#4]",
})).s("gm_piano").gain(0.64)

stack(piano, piano_2)

More by Battisti