Strudelify

la vita e bella

Irene L?pez

KeyD majorTempo120 bpm
0:00/0:00
// la vita e bella — Irene L?pez
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4550671; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.

// other · pizzicato strings
const pizzicato_strings = note("<~@52 [b4 ~] ~@35>").s("gm_pizzicato_strings").gain(0.2)

// chords · piano
const piano = note(`<
  A@2 B@2 C@4 D@2 E F G H I J K L M N O P Q R@3 S T U V@2 W X Y Z AA AB AC AD@3 AE AF AG AH AI AJ@2 AK@2 AL AM AN AO@2
  AP@2 AQ AR AS AT AU Q R@3 S T U V@2 W X Y Z AV AW AC AD@3 AE AX AG AY@2 AZ@2
>`.pickRestart({
  A: "d3 ~ a2!2", B: "~@2 a4 [d4,f#4] a3 ~ a3 ~@3 a3 ~ a2@4, d3 ~ a2 ~",
  C: "~@2 a4 [d4,f#4] a3 ~ a3 ~@3 a3 ~ [a2,d4,f#4,a4]@4, [d3,d4]@2 ~ [d4,f#4,a4]@3 ~@2, ~@2 a2 ~", // D
  D: "~@2 a4 g4 c#4 ~@3 a2@4 [c#4,e4,g4,a4]@2 [c#4,e4,g4,a4]@2, [e3,c#4,e4]@2 ~ [c#4,e4,g4,a4]@3 a2@2", // A7 C#m A7
  E: "~@2 a4 g4 c#4 ~@3 a2@4 [a2,c#4]@4, [e3,c#4,e4]@4 ~@2 [e4,g4,a4]@9 ~, ~@3 c#4@3 ~@2", // A C#m A7
  F: "~@2 a4 g4 c#4 ~@3 a2@4 [a2,c#4,f4,a4]@4, [a2,c#4,f4]@2 ~ [c#4,f4,a4]@3 ~@2", // Aaug C#aug
  G: "~@2 a4 [d4,f#4] d4 ~@5 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2, d3@2 ~ [a3,d4,f#4]@2 ~@3, ~@2 a2!2", // D
  H: "[d3,a3,d4,f#4] ~ [d3,d4,f#4,a4] [c#3,c#4,f#4,a#4]", I: "~ d6@3 ~@4 f#2@4 b2@4, [b2,d5] ~@3", J: "e2 ~ e2 g2",
  K: "~ d6@3 ~@4 f#2@4 b2@4, [b2,d5] b4@3, ~@5 b5@11", L: "e2 ~ e2!2", M: "g2 ~ b2 ~", N: "f2@2 ~ f2 f#2@2 ~@2",
  O: "b3@2 a#3 b3 c#4 ~ b3 ~ a3 ~ g3 ~ f#3 ~ e3 ~",
  P: "d3@2 a4 [d4,f#4] a3 ~ [d3,a3,d4,f#4,a4] ~ a2@4 a3!4, d4 ~@11 a2@4", // D
  Q: "d3@2 a4 [d4,f#4] a3 ~ [d3,a3,d4,f#4,a4] ~ a2@4 a3!4, a3 ~@11 a2@4", // D
  R: "[e3,g3]@2 a4 g4 c#4 ~ [e3,g3,c#4,e4,g4,a4] ~ [a2,g3]@4 a3!4, a3 ~@11 [a2,g3]@4", // Em A7
  S: "[a2,f3]@2 a4 f4 c#4 ~ [a2,c#4,f4,a4] ~ f3@4 a3!4, a3 ~@11 a2@4", // Dm Aaug
  T: "a3 ~ a4 [d4,f#4] d4 ~@3 d3@2 [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~, d3@4 ~@2 d3 ~, ~@3 [a3,d4,f#4]@2 ~@3", // D
  U: "[d3,a3,d4,f#4] ~@3 [f#3,a3,d4,f#4,a4,d5]@2 [f#3,a#3,c#4,f#4,a#4,c#5]@2", // D F#
  V: "[[b2,b3] ~ f#3!2 f#3@2 [f#2,f#3]@2 f#3@2 [b3,d4]@2 f#3@2 [b3,d4]@2 [e2,e3] ~ b3!2 [b3,d5,d6]@2 [b2,b3,e5,e6]@2 [e3,f#5,f#6]@2 [g3,b3,g5,g6]@2 [e3,f#5,f#6]@2 [g3,b3,e5,e6]@2, [d5,d6]@19 ~@13]/2", // B F# Bm E Bm E5 Esus2 G …
  W: "[d5,d6]@2 f#3!2 f#3@2 [f#2,f#3]@2 f#3@2 [b3,d4]@2 f#3@2 [b3,d4]@2, [b2,b3] ~@3 [b4,b5]@11 ~", // D F# Bm B
  X: "[e2,e3] ~ b3!2 [b3,d5,d6]@2 [b2,b3,e5,e6]@2 [e3,f#5,f#6]@2 [g3,b3,g5,g6]@2 [e3,f#5,f#6]@2 [g3,b3,e5,e6]@2", // E Bm E5 Esus2 G Esus2 Em
  Y: "[g2,g3,d5,d6]@4 ~@2 [b3,d4,b4,b5]@2 [b3,d4]@2 [b3,d4]!2 [b3,d4]@2 b3!2, ~@4 [c#5,c#6]@3 [b4,b5]", // G5 Bm C# B
  Z: "[d5,d6]@2 ~ [b3,b4,b5] [d5,d6] [c#5,c#6] [b4,b5] [a#4,a#5], b3 ~@3 [f#3,c#4]@2 f#2@2", // D B D C# B A# F#5
  AA: "[b2,b4,b5] ~@11 g4 [a4,b4] [c#5,d5] [e5,f#5]", // B Asus2 Dmaj7 Esus2
  AB: "[g5,a5] ~ a4 [d4,f#4] a3 ~ [d3,a3,d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2, d3 ~@3 a2@2 a2@2", // Gsus2 D
  AC: "d3@2 a4 [d4,f#4] a3 ~ [d3,a3,d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2, d4 ~@7 a2@4 a2@4", // D
  AD: "[e3,g3]@2 a4 g4 c#4 ~ [e3,g3,c#4,e4,g4,a4]@2 c#4@2 [e4,g4,a4]@2 c#4@2 [e4,g4,a4]@2, [c#4,e4] ~@7 [a2,g3]@4 [a2,g3]@4", // Em A7 C#m A7
  AE: "[a2,f3]@2 a4 f4 c#4 ~ [a2,c#4,f4,a4]@2 c#4@2 [e4,a4]@2 c#4@2 [e4,a4]@2, [c#4,f4] ~@7 g3@4 g3@4", // Dm Aaug A5 C#
  AF: "b3@2 g4 d4!2 ~ g4@2 a#3@2 g4@2 a#3@2 g4@2, g3 ~ d3!2", AG: "d3@2 a3 d4 [a2,c#4,e4]@2 [a2,c#4,e4]@2, d4 ~@7",
  AH: "[d3,d4]@2 d3!3 ~ [d3,d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2, ~@2 a2!2", // D
  AI: "[d3,d4,f#4] ~@3 [d3,a3,d4,f#4]@2 [c#3,a#3,c#4,e4,f#4]@2", // D F#7
  AJ: "[b2@2 f#4 ~ d5 ~ b4 b2 b2@2 [g4,e5] f#5 [e5,g5] f#5 [b4,e5] g5, f#5@19 ~@13, ~@3 b3@3 ~@5 b3@3 ~@2]/2", // C Em E5
  AK: "[b2@2 f#4 ~ d5 ~ b4 b2 b2@2 [g4,e5] f#5 [e5,g5] f#5 [b4,e5] [b2,d5], f#5@19 ~@13, ~@3 b3@3 ~@5 b3@3 ~@2]/2", // C Em E5 Bm
  AL: "[f3,c#5]@2 [g#4,b4] ~ d5 ~ [f3,b4] f2, ~@3 d4@3 ~@2", AM: "c#5@2 f#4 a#4 e5 c#5 a#4 [f#2,f#4], f#2@3 ~",
  AN: "b4 ~, b2 ~@3", AO: "[b2@2 ~ d4@3 ~ b2 a2@2 e5 f#5 g5 f#5 e5 [c#3,g5], f#5@19 ~@3 c#4@6 ~@4]/2",
  AP: "[d3@2 ~ d4@3 ~ d3 e3@2 e5 f#5 g5 f#5 e5 [e3,d5], f#5@19 ~@3 b3@6 ~@4]/2", // E7
  AQ: "c#5@2 d5 c#5 ~@4 d5@4 ~@2 d3@2, f3 b4 ~ b4, ~@3 d4@3 ~@2", AR: "c#5@4 d5@3 f#5 e5@4 c#5@4, c#3@11 ~@5",
  AS: "c#4@11 ~ c#3@2 ~@2, c#5 ~@3", AT: "a2 ~@7",
  AU: "d3@2 a4 [d4,f#4] a3 ~ [a3,d4,f#4,a4] ~ a2@4 a3!4, a5 ~@5 d3@2 ~@4 a2@4", // D
  AV: "[b2,b4,b5] ~ a#3 b3 c#4 ~ b3 ~ a3 ~ g3 ~ f#3 ~ e3 ~", // B
  AW: "d3@2 a4 [d4,f#4] a3 ~ [d3,a3,d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2, a5 ~@7 a2@4 a2@4", // D
  AX: "b3@2 g4 d4!2 ~ g4@2 ~@2 d4@2 ~@2 d4@2, g3 ~ d3!2",
  AY: "d4@2 a4 f#4 d4@2 [d4,f#4,a4]@2 d4@2 [f#4,a4]@2 d4@2 [f#4,a4]@2, d3@2 a2!2", // D F#m
  AZ: "[[d3,d4,f#4,a4]@4 [d3,d4,f#4,a4]@4 [d3,d4,f#4,a4]@23 ~]/2", // D
})).s("gm_piano").gain(0.25)

stack(pizzicato_strings, piano)

More by Irene L?pez