Strudelify
Bandiera bianca cover art

La Voce Del Padrone

Bandiera bianca

Battiato

KeyC majorTempo103 bpm
0:00/0:00
// Bandiera bianca — Battiato
// 103 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 135 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(103/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.

// bass · fretless bass · "BANDIERA"
const bass = note(`<
  A B A C A C A D A B E F G B A H E F G B A H A B E F G B A H A B I J K L E H G M A H E F G B A H A B I J N@2 O@2 P N Q
  R S N T U V W X U V Y Z AA V W AB Y Z AA V W AB U V AC AD@3 Y Z AA AE Y Z AF@2 N AG AH AI N AJ AK@2 AL AM A B A C A B
  A AN A B A C A B A C A B A C A B A C A B A C A AO
>`.pickRestart({
  A: "c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2!2", B: "f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2!2",
  C: "f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1!2", D: "f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 d2 ~ b1@2",
  E: "c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2 a1", F: "f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 a1@2 b1!2",
  G: "c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2 ~", H: "f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 a1 ~ b1!2", I: "c2!8", J: "f2!8",
  K: "g1@15 ~", L: "g1@6 g2 e2", M: "f2@2 f2@2 f2@2 f2@2 f2!2 a1@2 a#1@2 b1@2",
  N: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", O: "[f2@2 c2@2 f2@2 c2@2 f2@2 c2!2 c1@12 f1@3 ~ f1@4]/2",
  P: "f1@4 c1 ~ c1@2 g1 ~ g1 ~ g1 ~ g1 ~", Q: "g1 ~ g1 ~ f2@2 c2@2 f2@2 c2@2 f2@2 c2!2", R: "c1@12 f1@3 ~",
  S: "f1@4 f1@4 c1 ~ c1@2 g1 ~ g1 ~", T: "g1 ~ g1 ~ [g1,g2]@2 g1@2 c2@2 c2@2 c2@2 c2@2",
  U: "c2@2 c2@2 c2@2 c2!2 f2@2 f2@2 f2@2 f2@2", V: "f2@2 f2@2 f2@2 f2!2 c2@2 c2@2 c2@2 c2@2",
  W: "c2@2 c2@2 c2@2 c2!2 f1@2 f1@2 f1@2 f1@2", X: "f1@2 f1@2 f1@2 f1!2 c2@2 c2@2 c2@2 c2@2",
  Y: "c2@2 c2@2 c2@2 c2 a1 f1@2 f1@2 f1@2 f1@2", Z: "f1@2 f1@2 a1@2 b1!2 c2@2 c2@2 c2@2 c2@2",
  AA: "c2@2 c2@2 c2@2 c2 ~ f2@2 f2@2 f2@2 f2@2", AB: "f1@2 f1@2 a1 ~ b1!2 c2@2 c2@2 c2@2 c2@2", AC: "c2!4 f2!4",
  AD: "[f2@2 f2@2 f2@2 f2@2 g1@15 ~ g1@12 g2@2 e2@2 c2@2 c2@2 c2@2 c2@2]/3",
  AE: "f2!2 a1@2 a#1@2 b1@2 c2@2 c2@2 c2@2 c2@2", AF: "[c2@2 c2@2 c2@2 c2 ~ f2@16 g1 ~ g1 ~ g1 ~ g1 ~]/2",
  AG: "g1 ~ g1 ~ g1 ~ g1 ~ f2@2 c2@2 f2@2 c2@2", AH: "f2@2 c2!2 c1@12", AI: "f1@3 ~ f1@4 f1@4 c1 ~ c1@2",
  AJ: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ f2@2 c2@2", AK: "[f2@2 c2@2 f2@2 c2!2 c1@12 f1@3 ~ f1@4 f1@4]/2",
  AL: "c1 ~ c1@2 g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", AM: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ [g1,g2]@2 g1@2",
  AN: "f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1 ~ f1!2", AO: "f1!6 ~@2",
})).s("gm_fretless_bass").gain(0.64)

// chords · string ensemble 2 · "BANDIERA"
const string_ensemble_2 = note(`<
  A B A B A B A B A B A B C D C D A B C D C D A B A B C D C D A B A B ~@18 E@3 ~@7 F@8 G@5 ~@9 H@3 ~@7 I@3 ~@38
>`.pickRestart({
  A: "e3", B: "f3", C: "[e3,g3]", D: "[f3,a3]", E: "[[g6,d7]@17 ~@7]/3",
  F: "[~ [e3,g4,c6]@2 [f3,a4,a5]@2 [e3,g5]@2 [f3,f5]@2 e3@2 f3@2 e3@2 f3, ~@20 c5@5 ~@39]/8", // C F Em F
  G: "[~@8 [e3,g3]@16 ~@13 a4@3 ~@16 [f3,a3]@16 ~@8, ~@4 c4@19 ~@4 f4@9 ~@4, ~@8 c5@30 ~@3 g4@15 ~@24, ~@3 [f3,a3]@2 [e3,g3]@2 ~@3]/5", // Em F Em
  H: "[~ g3@4 ~]/3", I: "[~@4 [g6,d7]@17 ~@3]/3",
})).s("gm_string_ensemble_2").gain(0.34).pan(0.4)

// other · rock organ · "BANDIERA"
const rock_organ = note(`<
  A@2 B C A@2 B C ~@4 D@2 E F ~@2 D@2 E F ~@4 G@2 E F ~@4 H I ~@4 J@2 K ~@2 L M F ~@14 N@3 O@2 ~@10 P@2 Q@2 ~ R@4 ~@4
  S@5 ~@40
>`.pickRestart({
  A: "[c5@2 b4 ~ c5 ~ c5@4 b4 ~ c5 ~ c5@4 b4 ~ c5 ~ c5@4 b4 ~ b4 ~ c5 ~]/2",
  B: "c5@2 b4 ~ b4 ~ c5 ~ c5@2 b4 ~ b4 ~ c5 ~", C: "c5@2 b4 ~ c5 ~ c5@4 b4@2 c5@3 ~",
  D: "[c6@2 b5 ~ c6 ~ c6@4 b5 ~ c6 ~ c6@4 b5 ~ c6 ~ c6@4 b5 ~ b5 ~ c6 ~]/2",
  E: "c6@2 b5 ~ b5 ~ c6 ~ c6@2 b5 ~ b5 ~ c6 ~", F: "c6@2 b5 ~ c6 ~ c6@4 b5@2 c6@3 ~",
  G: "[e6@2 d6 ~ e6 ~ e6@4 d6 ~ e6 ~ f6@4 e6 ~ d6 ~ c6@4 b5 ~ a5 ~ b5 ~]/2",
  H: "~@2 d5@3 ~@3 b6@8, ~ g4@14 ~, ~@5 g5@5 ~@6", I: "~@12 d5@3 d5, g4@7 ~, ~@7 b6@8 ~",
  J: "[[e5,c6]@2 d5@2 e5@2 [e5,c6]@4 d5@2 e5@2 [f5,c6]@4 e5@2 d5@2 [c5,a5]@4 b4@2 [c5,a5] ~@3, ~@2 b5 ~ c6 ~@5 b5 ~ c6 ~@5 c6 ~ b5 ~@5 a5 ~@5]/2", // C F5 F
  K: "[e5,c6] ~@3", L: "c6@2 b5 ~ c6 ~ c6@4 b5 ~ c6@4", M: "c6@2 b5@2 b5@2 c6@2 c6@2 b5 ~ b5 ~ c6 ~",
  N: "[~@8 c5@2 b4 ~ c5 ~ c5@4 b4 ~ c5 ~ c5@4 b4 ~ c5 ~ c5@4 b4 ~ b4 ~ c5 ~ c5@2 b4 ~ b4 ~ c5 ~]/3",
  O: "[c5@2 b4 ~ b4 ~ c5 ~ c5@2 b4 ~ c5 ~ c5@4 b4@2 c5@3 ~@9]/2",
  P: "[~@8 c6@2 b5 ~ c6 ~ c6@4 b5 ~ c6@4 c6@2 b5@2 b5@2 c6@2]/2",
  Q: "[c6@2 ~@2 b5 ~ c6 ~ c6@2 b5 ~ c6 ~ c6@4 b5@2 c6@3 ~@9]/2",
  R: "[~@8 e5@2 d5@2 e5 ~ e5@4 d5@2 e5 ~@5 e5@2 d5@2 c5@4 d5@2 ~ f5@2 ~ [d5,g5]@18 ~@6, ~@4 c5@5 ~@2 f5@2 ~@5 e5 ~@13, ~@3 f4@2 ~@3]/4", // G5
  S: "[~@8 e5@16 f5@16 e5@16 f5@15 ~@9]/5",
})).s("gm_rock_organ").gain(0.46).pan(0.6)

// other · rock organ · "BANDIERA" · soft notes · G5
const rock_organ_soft = note(`<
  ~@34
  [~@7 g6@2 ~@6 d6, ~ g5 d6 d5@2 g5@3, ~@3 b5@2 b5@8 d6 b5@2, ~@6 d6@3 [d6,g6]@3 g6@4, ~@11 d5@5]
  [~@3 [d6,g6]@2 ~ g6@2 ~@3 g5@3 g4@2, ~ [d5,g5]@11 ~@4, ~@2 b5@13 ~, ~@5 d6@3 g6@2 g6@5 ~, ~@9 d6@6 ~]
  ~@43
  [~@2 b5 ~@13]
  ~@55
>`).s("gm_rock_organ").gain(0.23).pan(0.6)

// chords · vibraphone · "BANDIERA"
const vibraphone = note("<~@105 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 C>".pickRestart({
  A: "[g4,e5]!2 [c5,e5]!2 e5@2 c5 ~ g4!2 [g4,g5] g4!5, ~@4 g4 ~ g5@4 ~ g5@3 e5@2", // C G
  B: "[f4,f5]!2 [a4,f5]!2 f5@2 a4 ~ f4!2 [a4,a5]!2 g5@2 f5@2, ~@4 f4 ~ a5@4 ~@2 f4 ~ a4 ~", // F Dm A
  C: "[f4,f5]!2 [a4,f5]!2 f5@2 a4 ~ f4!2 [a4,a5]!2 g5@2 ~@2, ~@4 f4 ~ a5@4 ~@2 f4 ~@3", // F Dm A
})).s("gm_vibraphone").gain(0.36).pan(0.9)

// other · overdriven guitar · "BANDIERA"
const overdriven_guitar = note(`<
  ~@33 A B@2 C D C E F D F D C G@4 D C E ~@2 H I J K L M N O@2 ~@3 P Q R S T@5 U V W X@4 V Y@4 Z V AA@2 U V AB@2 ~ AC AD
  H K AE AF AG AH AI ~@30
>`.pickRestart({
  A: "~@9 [g2,f3]@5 g2@2", B: "g2@15 ~", C: "c3@5 ~ c3 ~ c3@4 c3@4", D: "f2@5 ~ f2 ~ f2@4 f2@2 g2@2",
  E: "f2@5 ~ f2@4 g2@3 ~ g2@2", F: "c3@5 ~ c3 ~ c3@3 ~ c3@4",
  G: "[f2@5 ~@5 c3@11 ~ c3 ~@5 f2@9 ~ f2 ~@5 c3@4 c3@4 ~@2 c3 ~ c3@3 ~ c3@4, ~@5 f2@9 c3@8 f2@10]/4",
  H: "f3 a3 c4 a3 f3 a3 c4 g3", I: "e3 g3 c4 g3 f3 a3 c4 a3", J: "f3@2 a3@2 c4@2 g3@2 d3 ~ g3 ~ b3 ~ g3 ~",
  K: "d3 ~ g3 ~ b3 ~ g3 ~ d3 ~ g3 ~ b3 ~ g3 ~", L: "d3 ~ g3 ~ f3@2 a3@2 c4@2 a3@2 f3@2 a3@2",
  M: "c4 g3 e3 g3 c4 g3 f3 a3", N: "c4@2 a3@2 f3@2 a3@2 c4@2 g3@2 d3 ~ g3 ~",
  O: "[b3 ~ g3 ~ d3 ~ g3 ~ b3 ~ g3 ~ d3 ~ g3@10 ~@8]/2", P: "~@8 e3 ~ c3 ~@3 g2 ~",
  Q: "~@2 e3 ~ c3 ~ g2 ~ f3 ~ c3 ~@3 a2 ~", R: "~@2 f3 ~ c3 ~ a2 ~ e3 ~ c3 ~@3 g2 ~",
  S: "~@2 e3 ~ c3 ~ g2 ~ f3 ~ c3 ~@3 a2@2",
  T: "[~@2 f3 ~ c3 ~ a2 ~ e3@2 c3@4 g2@4 e3@2 c3@2 g2@2 f3@2 c3@4 a2@4 f3@2 c3@2 a2@2 e3@2 c3@4 g2@4 e3@2 c3@2 g2@2 f3@2 c3@4 a2@4 f3@2 c3@2 a2 ~ c3@5 ~ c3 ~]/5",
  U: "c3@4 c3@4 f2@5 ~ f2 ~", V: "f2@4 f2@2 g2@2 c3@5 ~ c3 ~", W: "c3@4 c3@4 f2@5 ~@3",
  X: "[~@2 c3@11 ~ c3 ~@5 f2@9 ~ f2 ~@5 c3@4 c3@4 ~@2 c3 ~ c3@4 c3@4 f2@5 ~ f2 ~, ~ f2@9 c3@8 f2@10 ~@4]/4",
  Y: "[c3@4 c3@4 f2@5 ~ f2@4 g2@3 ~ g2@2 g4@15 ~ g4@2 e4@4 d4@4 g4@2 d4@2 g3@2 c3@5 ~ c3 ~]/4",
  Z: "c3@3 ~ c3@4 f2@5 ~ f2 ~", AA: "[c3@4 c3@4 f2@5 ~ f2@4 g2@3 ~ g2@2 c3@5 ~ c3 ~]/2",
  AB: "[c3 f2@5 ~@2, ~@4 c2 ~@27]/2", AC: "~@4 f3 a3 c4 a3", AD: "f3 a3 c4 g3 e3 g3 c4 g3",
  AE: "d3 ~ g3 ~ b3 ~ g3 ~ d3 ~ g3 ~ f3@2 a3@2", AF: "c4 a3 f3 a3 c4 g3 e3 g3", AG: "c4 g3 f3 a3 c4 a3 f3 a3",
  AH: "c4@2 g3@2 d3 ~ g3 ~ b3 ~ g3 ~ d3 ~ g3 ~", AI: "b3 ~ g3 ~ d3 ~ g3@10",
})).s("gm_overdriven_guitar").gain(0.48).pan(0.3)

// drums · kick
const kick = s("bd").struct("<A@53 B C@8 D A@22 E A@7 F G A H C@8 A@30>".pickRestart({
  A: "x!2", B: "x ~@7 x ~@2 x ~@4", C: "x!4", D: "x!3 ~", E: "x ~@3 x ~@2 x", F: "x", G: "~ x",
  H: "x ~@2 x ~@4 x ~@3 x ~@3",
})).gain(0.61)

// drums · snare
const snare = s("sd").struct(`<
  A@11 B A@5 B A@7 B A@7 B A@3 B A@5 B A@7 B A@2 ~@8 A@8 C A@5 C A@7 C A D A C A@3 C E F A E ~@7 F A@30
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~ x!2", C: "~@4 x ~ x!2 ~@4 x ~@3", D: "~ x!2 ~@3 x ~", E: "~ x ~@2", F: "~@3 x",
})).gain(0.53)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C B C B C B A B C B A B C B C B A B C B A B C B A B C B A B C B A B C B A B C B C B A B C B A B C B A B D@2 E F G
  H I D J C K C L C K C L C K C K C L C K C L C K C L C M C L C K C L N O C P D Q R S T U V W C B C B C B C B C B C B C
  B C B C B C B C B C B C B C B C B
>`.pickRestart({
  A: "~ x!7", B: "x!7 ~", C: "x!8", D: "x ~ x!3 ~ x ~ x ~ x!3 ~ x ~", E: "x ~ x ~ x ~ x!3 ~ x!3 ~ x!2",
  F: "x ~@3 x ~ x!3 ~ x!3 ~ x!2", G: "x ~@3 x ~ x ~ x ~ x ~ x ~ x!2", H: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~",
  I: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", J: "x!2 ~@3 x!3", K: "x!3 ~ x!4", L: "x!3 ~@2 x!3", M: "~ x!2 ~ x!4", N: "x!4 ~@4",
  O: "~@5 x!3", P: "x ~ x ~ x ~@3 x ~ x!3 ~ x ~", Q: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x!2", R: "x ~ x!3 ~ x!3 ~@3 x ~ x!2",
  S: "x ~ x!3 ~ x!3 ~@3 x ~ x ~", T: "x ~ x ~ x ~ x!3 ~ x!3 ~ x ~", U: "x ~ x ~ x ~ x ~ x ~ x!3 ~ x!2",
  V: "x ~ x!3 ~ x!3 ~ x!3 ~ x ~", W: "x ~ x!3 ~ x ~ x ~ x ~@5",
})).gain(0.23)

// drums · low tom
const low_tom = s("lt").struct("<~@62 [~@3 x ~@4] ~@23 [~@3 x ~@4] ~@17 [~@7 x] ~@30>").gain(0.46)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 B@2
  ~@5 C ~ C ~ C ~ C ~ C ~ C ~ C ~ C ~ C ~ C ~ C ~ D ~ C ~ C ~ C ~@3 C ~@2 E@2 ~@5 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~@2
>`.pickRestart({
  A: "~@7 x", B: "~ x ~@6", C: "~@3 x ~@4", D: "x ~@2 x ~@4", E: "~@5 x ~@2",
})).gain(0.23)

// drums · mid tom
const mid_tom = s("mt").struct("<~@62 [~ x ~@2] ~@23 [~@3 x!2 ~@11] ~@17 [~@3 x] ~@30>").gain(0.53)

// drums · crash
const crash = s("cr").struct(`<
  A ~@7 A ~@3 A ~@5 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@5 A ~@3 A ~@3 A ~@9 B ~@3 B ~@3 B ~@5 B ~@3 B ~@3 B ~@3 B ~@3 B@3
  ~@40
>`.pickRestart({
  A: "x", B: "~ x",
})).gain(0.31)

stack(
  bass, string_ensemble_2, rock_organ, rock_organ_soft, vibraphone, overdriven_guitar, kick, snare, hihat, low_tom,
  open_hat, mid_tom, crash
)

More by Battiato