Strudelify

La Traviata

Giuseppe Verdi

KeyD majorTempo60 bpm
0:00/0:00
// La Traviata — Giuseppe Verdi
// 60 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/4788046; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 51 bars on a 32-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 · [...]/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 · trumpet · "Tromba in Si♭"
const trumpet = note(`<
  A@6 B C@6 D E F@2 ~ G@2 H G H I J K L M L N O P Q R S T U V@2 W X V@2 W X Y Z AA AB AC AD
>`.pickRestart({
  A: "[~@17 d4@35 f#4@17 g4@17 ~ f#4@17 a4@9 g4@9 f#4@17 ~@18 g#4@17 g4@9 f#4@9]/6", B: "g4@17 c#4@15",
  C: "[~@3 c4@34 b3@35 c4@35 d#4@70 d#4@15]/6", D: "~@3 d4@8 c4@9 c4@9 b3@3", E: "~@5 f4@9 e4@4 ~@5 g4@9",
  F: "[f4@4 ~@4 b4@9 a4@4 ~@5 g4@4 f#4@4 ~ f4@4 d4@4 ~@21]/2", G: "~@2 c4 ~ c4 ~@5 c4 ~ c4 ~@3",
  H: "~@2 b3 ~ b3 ~@5 b3 ~ b3 ~@3", I: "~@2 c4 ~ c4 ~@5 g#3 ~ g#3 ~@3", J: "~@2 a3 ~ a3 ~@5 c4 ~ c4 ~@3",
  K: "~@2 c4 ~ c4 ~@5 d4 ~ d4 ~@3", L: "c#4@5 ~@3", M: "d4@5 ~@3", N: "d4 ~@7",
  O: "~@2 c4 ~ c4 ~ c4 ~@3 c4 ~ c4 ~ c4 ~", P: "~@2 b3 ~ b3 ~ b3 ~@3 b3 ~ b3 ~ b3 ~",
  Q: "~@2 e4 ~ e4 ~ e4 ~@3 e4 ~ e4 ~ e4 ~", R: "~@2 f4 ~ f4 ~ f4 ~@3 f4 ~ f4 ~ f4 ~",
  S: "~@2 e4 ~ e4 ~ e4 ~@3 d4 ~ d4 ~ d4 ~", T: "~@2 c4 ~ c4 ~ c4 ~@3 d#4 ~ d#4 ~ d#4 ~",
  U: "~@2 e4 ~ e4 ~ e4 ~@3 b3 ~ b3 ~ b3 ~", V: "c4 ~@5 c4 ~ b3 ~@5 b3 ~", W: "~@3 d#4", X: "e4 ~ g4 ~@3 f4 ~",
  Y: "c4@2 ~@2 c4 ~ c4@2 b3@2 ~@2 a3 ~ b3 ~", Z: "c4 ~@3 c4 ~ c4@2 b3@2 ~@2 a3 ~ b3 ~",
  AA: "c4@4 ~@12 c4@2 g3 ~ c4 ~ e4 ~ a4 ~ g4 ~ e4 ~ c4 ~", AB: "~@8 c5 ~ b4 ~ c5 ~ b4 ~@9 c5 ~ b4 ~ c5 ~ b4 ~",
  AC: "~@16 c5 ~ b4 ~ c5 ~ b4 ~ c5 ~ b4 ~ c5 ~ b4 ~", AD: "c5 ~",
})).s("gm_trumpet").gain(0.15)

// other · french horn · "Corno in Fa"
const french_horn = note(`<
  A B@5 C D@5 E@4 ~@2 F@5 G H I J K J L M N M O P Q R S T U V S T U V W@2 X Y X Z
>`.pickRestart({
  A: "~@17 a#3@15", B: "[~@3 c4@8 a#3@9 d4@61 c#4@9 d4@17 ~@18 f4@17 e4@9 d#4@9]/5", C: "d4@17 a3@15",
  D: "[~@3 a3@34 f3@35 g3@35 g3@17 ~ g#3@8 a#3@9 c#4@17 ~]/5",
  E: "[c4@17 f#3@35 g3@17 a#3@17 ~ b3@17 d#4@17 ~ d4@4 ~@2]/4", F: "~@2 g3 ~ g3 ~@5 g3 ~ g3 ~@3",
  G: "~@2 g3 ~ g3 ~@5 e3 ~ e3 ~@3", H: "~@2 e3 ~ e3 ~@5 a3 ~ a3 ~@3", I: "~@2 g3 ~ g3 ~@5 f3 ~ f3 ~@3", J: "a#3@5 ~@3",
  K: "b3@5 ~@3", L: "b3 ~@7", M: "~@2 e4 ~ e4 ~ e4 ~@3 e4 ~ e4 ~ e4 ~", N: "~@2 f4 ~ f4 ~ f4 ~@3 f4 ~ f4 ~ f4 ~",
  O: "~@2 d4 ~ d4 ~ d4 ~@3 d4 ~ d4 ~ d4 ~", P: "~@2 g3 ~ g3 ~ g3 ~@3 b3 ~ b3 ~ b3 ~",
  Q: "~@2 a3 ~ a3 ~ a3 ~@3 a3 ~ a3 ~ a3 ~", R: "~@2 c4 ~ c4 ~ c4 ~@3 f3 ~ f3 ~ f3 ~", S: "e3 ~@5 g3 ~ g3 ~@5 g3 ~",
  T: "g3 ~@5 g3 ~ g3 ~@5 g3 ~", U: "~@3 a3", V: "c4 ~ e4 ~@3 c4 ~", W: "c4 g3!3 ~ g3 ~ g3 ~ g3!3 ~ g3 ~ g3",
  X: "g3 ~@3 g3 ~@3", Y: "c4 ~ g#3 ~ g3 ~ g#3 ~", Z: "g3 ~",
})).s("gm_french_horn").gain(0.15)

// other · tuba · "Bombardino"
const tuba = note(`<
  A B@5 C@6 D E@3 F@2 ~ G H G H I J K L M@2 N G O G O I J K P Q R S T Q R S U V W X Y Z
>`.pickRestart({
  A: "~@17 g3@15", B: "[~@3 a3@8 a#3@9 d3@61 c#3@9 d3@17 ~@18 b3@17 a#3@9 a3@9]/5",
  C: "[g3@17 e3@9 d#3@9 d3@34 d3@35 f3@17 ~ d#3@17 d#3@17 ~ f3@8 g3@9 a#3@17 ~]/6", D: "g#3@17 c3@15",
  E: "[~@3 d3@8 d#3@9 d3@17 g3@35 c4@17 ~ b3@4 ~@2]/3", F: "[~@11 b3@4 ~ a3@4 f3@4 d3@4 ~ b2@17 ~@18]/2",
  G: "c4@2 b3 a3", H: "g3@3 f3 d3 ~@3", I: "e4@4 f4@3 e4", J: "d4@3 c4 d4@3 c4 b3@3 a3 b3@3 a3", K: "a3@2 g3 ~ e4@3 d4",
  L: "c#4@5 f#3 g3 f#3", M: "g3@5 f#3 g3 f#3", N: "g3 f#3 g3 f#3 g3 g#3 a3 b3", O: "g3@3 f3 d3@2 ~@2",
  P: "c4 ~@5 e3 ~ f3 ~@5 f3 ~", Q: "e3 ~@5 e3 ~ f3 ~@5 f3 ~", R: "e4@4 d4@2 c4@2 b3@3 a3 b3@3 a3",
  S: "g3@3 a3 g3@8 a3@2 b3@2", T: "c4@2 ~@4 e3 ~ f3 ~@5 f3 ~", U: "c4@2 ~@2 g3 ~ g3 ~ f3 ~@3 f3 ~ f3 ~",
  V: "e3 ~@3 g3 ~ g3 ~ f3 ~@3 f3 ~ f3 ~", W: "c3 ~@3 c3 ~@3", X: "e3 ~ f3 ~ e3 ~ f3 ~", Y: "e3 ~@3 e3 ~@3", Z: "e3 ~",
})).s("gm_tuba").gain(0.15)

// bass · tuba · "Tuba in Si♭"
const bass = note("<~@8 A@8 ~@2 B@2 C B C D E F G@3 H I J I J K L J M@2 N O M@2 N O P@2 I Q I R>".pickRestart({
  A: "[~@5 g2@35 c3@35 a#2@26 d#2@9 g#2@35 a2@35 g2@17 c#3@17 ~ d3@17 f#3@17 ~ g3@4 ~@2]/8",
  B: "c3 ~@5 g2 ~ c3 ~@5 g2 ~", C: "b2 ~@5 g2 ~ b2 ~@5 g2 ~", D: "c3 ~@5 e3 ~ b2 ~@5 e3 ~",
  E: "a2 ~@5 c3 ~ f#2 ~@5 f#3 ~", F: "g2 ~@5 g3 ~ g2 ~@5 g3 ~", G: "g2@5 ~@3", H: "g2 ~@7", I: "c3 ~@3 c3 ~@3",
  J: "g2 ~@3 g2 ~@3", K: "c3 ~@3 b2 ~@3", L: "a2 ~@3 f#2 ~@3", M: "c3 ~@5 e3 ~ d3 ~@5 g2 ~", N: "~@3 f#3",
  O: "g3 ~@3 g2 ~@3", P: "c3 ~@3 e3 ~ d#3 ~ d3 ~@3 g2 ~ g2 ~", Q: "c3 ~ f2 ~ c3 ~ f2 ~", R: "c3 ~",
})).s("gm_tuba").gain(0.15)

stack(trumpet, french_horn, tuba, bass)

More by Giuseppe Verdi