Strudelify

Ave Maria

Andrea Bocelli

KeyB♭ majorTempo64 bpm
0:00/0:00
// Ave Maria — Andrea Bocelli
// 64 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 13 "PIANO" epiano1 (copy of ch 1 "PIANO" epiano1); ch 14 "Clarinet" clarinet (copy of ch 2 "Clarinet" clarinet)
// note: Full arrangement: all 33 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(64/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.

// chords · epiano1 · "PIANO"
const epiano1 = note("<A B C D E F G H I J K L G M N O P Q R S T U V W X Y Z AA C AB AC AD AE>".pickRestart({
  A: "~ f4 bb4!2 f4 [d4,f4] ~@2 bb4!2 ~ [d4,f4], [bb1,bb2]!2, ~ d4@4 ~@2 [d4,f4]@4 ~, ~ f4 bb4 ~@2 bb4, ~ d5 ~ d5", // Dm Bb Dm
  B: "~ bb4 [bb4,d5] d5 ~ [f4,bb4] ~ d5 [d5,f5] f5 d5 [ab4,d5], [bb1,bb2]!2, ~ f4@2 f5@3 ~@3 ab5@3, ~@4 d5@2 ~ ab4@2 ~ f5@2", // Bb Bb5 Dm Abdim Bb
  C: "~ bb4 [bb4,eb5] eb5 bb4 [g4,bb4] ~ a4 [a4,eb5] eb5 a4 [gb4,a4], [bb1,bb2]!2, ~ g4@2 g5@3 ~@3 gb5@3, ~@4 eb5@2 ~ gb4@2 ~ eb5@2", // Eb5 Gm Adim Gbm Bb
  D: "~@2 bb4@2 [bb4,d5]@2 d5 ~ bb4@2 [f4,bb4]@2 ~@4 bb4@2 bb4 ~ f4@2 [d4,f4]@2, [bb1,bb2]!2, ~ f4@2 f5@3 ~@3 d5@3, ~@4 d5@2 ~ [d4,f4]@2 ~ bb4@2", // Bb Bb5 Dm Bb Dm
  E: "~@2 bb4!2 ~ [d4,f4] ~ e4 [e4,bb4] bb4 e4 [d4,e4], [bb1,bb2] [g1,g2], ~ [d4,f4]@4 ~@2 d4@2 ~@3, ~ d5 ~ d5, ~@2 bb4 ~@2 bb4", // Dm Edim Dsus2 Bb G Dm
  F: "~@2 f4@2 [f4,bb4]@2 bb4 ~ f4@2 [d4,f4]@2 ~@2 a4@2 [a4,c5]@2 c5 ~ a4@2 [eb4,a4]@2, [f1,f2]!2, ~@2 d4@4 d5@7 ~@5 eb5@6, ~@8 bb4@5 ~ eb4@5 ~ c5@4", // Bb5 Dm Am Ebdim F
  G: "~ g4 [g4,bb4] bb4 g4 [d4,g4] ~ g4 [g4,bb4] bb4 g4 [d4,g4], [g1,g2]!2, ~ d4@2 d5@3 ~@3 d5@3, ~@4 bb4@2 ~ d4@2 ~ bb4@2", // Gm G5 Gm G5 G
  H: "~@2 g4@2 [g4,c5]@2 c5 ~ g4@2 [eb4,g4]@2 ~@2 f4@2 [f4,a4]@2 a4 ~ f4@2 [eb4,f4]@2, [eb1,eb2] [f1,f2], ~ eb4@2 eb5@3 ~@3 c5@3, ~@4 c5@2 ~ eb4@2 ~ a4@2", // C5 Eb F Ebsus2 Eb F
  I: "~ f4 [f4,bb4] bb4 f4 [d4,f4] ~ f4 [f4,bb4] bb4 f4 [d4,f4], [bb1,bb2]!2, ~ d4@2 d5@3 ~@3 d5@3, ~@4 bb4@2 ~ d4@2 ~ bb4@2", // Bb5 Dm Bb5 Dm Bb
  J: "~ gb4 [gb4,bb4] bb4 gb4 [d4,gb4] ~ g4 [g4,bb4] bb4 ~ [d4,g4], [bb1,bb2]!2, ~ d4@2 d5@3 ~@3 d5@3, ~@4 bb4@2 ~ d4@2 ~ bb4@2", // Gb D Gm G5 Bb
  K: "~ g4 [g4,bb4] bb4 g4 [e4,g4] ~ g4 [g4,a4] a4 g4 [e4,g4], [a1,a2]!2, ~ e4@2 d5@3 ~@3 db5@3, ~@4 bb4@2 ~ e4@2 ~ a4@2", // Gm Em Gsus2 Em A
  L: "~ a4 [a4,c5] c5 a4 [eb4,a4] ~ a4 [a4,c5] c5 a4 [eb4,a4], [gb1,gb2]!2, ~ eb4@2 eb5@3 ~@3 eb5@3, ~@4 c5@2 ~ eb4@2 ~ c5@2", // Am Ebdim Am Ebdim Gb
  M: "~@2 f4@2 [f4,a4]@2 a4 ~ f4@2 [c4,f4]@2 ~@2 g4@2 [g4,b4]@2 b4@2 g4@2 [f4,g4]@2, [a1,a2] [d2,d3], ~ c4@2 c5@3 ~@3 f5@3, ~@4 a4@2 ~ f4@2 ~ b4@2", // F F5 G Fsus2 A D
  N: "~ a4 [a4,c5] c5 a4 [f4,a4] ~ bb4 [bb4,c5] c5 bb4 [e4,bb4], [c2,c3]!2, ~ f4@2 f5@3 ~@3 e5@3, ~@4 c5@2 ~ e4@2 ~ c5@2", // Am F Bbsus2 Edim C
  O: "~@2 c5!2 a4 [f4,a4] ~ a4 c5!2 a4 [f4,a4], [f2,f3]@3 ~ c5@2 [f2,f3]@6, ~ [f4,a4]@2 f5@3 ~ f4@4 ~, ~@4 a4 c5, ~@3 f5", // F
  P: "~ a4 [a4,c5]!2 a4 [eb4,a4] ~ a4 c5!2 ~ [eb4,a4], [f2,f3]!2, ~ eb4@4 ~@2 eb4@3 c5@2, ~ f5 ~ f5, ~@4 c5@2 ~@2 a4@3 ~", // Am Ebdim F
  Q: "~@2 bb4@2 ~@4 [bb4,d5]@2 bb4 ~@3 bb4@2 ~@4 [bb4,d5]@3 bb4, [f2,f3]@11 ~ [f2,f3]@11 ~, ~ [bb4,d5] ~@2 [bb4,d5] ~, ~@6 f5@5 ~@7 f5@5 ~", // Bb F Bb
  R: "~ a4 c5!2 a4 [eb4,a4] ~ a4 c5!2 ~ [eb4,a4], [f2,f3]!2, ~ eb4@4 ~@2 eb4@3 c5@2, ~@2 a4@2 c5@2 ~@2 a4@3 ~, ~ f5 ~ f5", // Ebdim F
  S: "~ g4 bb4!2 ~ [d4,g4] ~ d4 g4!2 ~ [bb3,d4], [g2,g3]!2, ~ d4@3 bb4@2 ~@2 d4@2 g4@2, ~@2 g4@3 ~@2 bb3@4 ~, ~ d5 ~ bb4", // G5 Bb G
  T: "~ f4 a4!2 f4 [c4,f4] ~ gb4 a4!2 gb4 [d4,gb4], [f2,f3] [d2,d3], ~@2 f4@2 a4@2 ~ d4@4 ~, ~@3 c5@3 ~@2 gb4@2 a4@2, ~@3 d5", // F5 D F D
  U: "~ g4 c5!2 g4 [eb4,g4] ~ g4 [g4,c5] c5 g4 [eb4,g4], [c2,c3]!2, ~ eb4@4 ~@2 eb4@2 ~@3, ~ g4 c5 ~@2 c5, ~ eb5 ~ eb5", // Eb C5 Eb C
  V: "~ eb4 [eb4,g4] g4 ~ [c4,eb4] ~ e4 [e4,bb4] bb4 e4 [db4,e4], [eb2,eb3] [g2,g3], ~@2 c4@4 c5@7 ~@5 db5@6, ~@8 g4@5 ~ db4@4 ~@2 bb4@4", // Eb Cm Edim Dbm Eb G
  W: "~ f4 [f4,a4] a4 f4 [c4,f4] ~@2 a4!2 f4 [eb4,f4], [f2,f3]!2, ~ c4@2 c5@3 ~ f4@3 a4@2, ~@4 a4@2 ~ eb4@4 ~, ~@3 c5", // F F5 Ebsus2 F
  X: "~ f4 bb4!2 f4 [d4,f4] ~ e4 bb4!2 e4 [d4,e4], [bb1,bb2]@13 ~@5 d5@6, ~ d4@4 ~ [g1,g2]@6, ~@4 f4@4 bb4@5 ~ d4@8 ~@2, ~@6 d5@7 ~@3 e4@4 bb4@4", // Dm Dsus2 Bb G
  Y: "~ f4 bb4!2 f4 [d4,f4] ~ f4 a4!2 f4 [eb4,f4], [f1,f2]!2, ~ d4@4 ~@2 eb4@4 ~, ~ f4 bb4 ~ f4 a4, ~ d5 ~ c5", // Dm Ebsus2 F
  Z: "~ f4 bb4!2 f4 [d4,f4] ~ f4 bb4!2 f4 [d4,f4], [bb1,bb2]!2, ~ d4@4 ~@2 d4@4 ~, ~ f4 bb4 ~ f4 bb4, ~ d5 ~ d5", // Dm Bb
  AA: "~ bb4 [bb4,d5] d5 bb4 [f4,bb4] ~ d5 f5!2 d5 [ab4,d5], [bb1,bb2]!2, ~ f4@2 f5@3 ~@2 d5@2 f5@2, ~@4 d5@2 ~ ab4@4 ~, ~@3 ab5", // Bb Bb5 Abdim Bb
  AB: "~@2 bb4@2 [bb4,d5]@2 d5 ~ bb4@2 [f4,bb4]@2 ~@2 f4@2 [f4,bb4]@2 bb4@2 f4@2 [d4,f4]@2, [bb1,bb2]!2, ~ f4@2 f5@3 ~@3 d5@3, ~@4 d5@2 ~ d4@2 ~ bb4@2", // Bb Bb5 Dm Bb
  AC: "~@4 f4@2 f4 ~ d4@2 [bb3,d4]@2 ~@2 bb3@2 [bb3,d4]@2 d4@2 bb3@2 [f3,bb3]@2, [bb1,bb2]!2, ~ [bb3,d4]@2 bb4@3 ~@3 f4@3, ~@4 f4@2 ~ f3@2 ~ d4@2", // Bb Bb5 Bb
  AD: "~@2 bb3!2 ~ [d3,f3] ~@2 bb3!2 ~ [d3,f3], [bb1,bb2]!2, ~ [d3,f3]@2 d4@3 ~@3 d4@3, ~@4 bb3@2 ~ f3@2 ~ bb3@2", // Dm Bb Dm
  AE: "~@2 d4@9 ~, bb1@19 ~@5, ~ f2@18 ~@5, ~ [bb2,f3]@9 ~@2, ~ bb3@6 ~", // Bb5
})).s("gm_epiano1").gain(0.32)

stack(epiano1)

More by Andrea Bocelli