Strudelify

Maria

Broadway

KeyG minorTempo92 bpm
0:00/0:00
// Maria — Broadway
// 92 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 63 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(92/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// chords · piano · ""Beautiful Maria"
const piano = note(`<
  A B C D E F G H I J K L M N O P Q@2 R S T U V@2 W@4 X Y R Z AA AB AC AD AE AF AG AH AI@2 AJ B AK AL ~@2 AM AN W@2 AO@2
  X Y R@2 AP AQ AR AS AT
>`.pickRestart({
  A: "d5 bb4 a4 [bb3,g4]@2 [bb3,d4,a4] bb4 d5", B: "[c4,g4,c5]@5 ~ g4@2 [c4,gb4,a4]@5 ~ a4 bb4",
  C: "~@2 [g3,bb3,d4,g4]@11 ~ a4 bb4", D: "[c4,gb4,a4]@3 ~@3 g4 a4 bb4@2 a4@2 ~@2 bb4 d4",
  E: "~@2 [g3,bb3,eb4]@3 ~ [bb3,eb4,g4]@8 ~@2", F: "~@2 [a3,eb4,g4]@3 ~ f4 g4 a4@2 g4@2 ~@2 [a3,f4] c4",
  G: "[g3,bb3,d4]@6 ~@4 d5@5 ~", H: "~@2 [d4,f4,g4,bb4]@3 ~ eb4 f4 g4@2 f4@2 ~@2 eb4 f4",
  I: "~@2 [bb3,d4,eb4,g4]@8 [bb3,eb4,g4]@3 [c4,f4,a4]@2 ~", // Ebmaj7 Eb F
  J: "[d4,f4,g4,bb4]@6 ~@2 [d4,bb4]@2 ~ [eb4,c5]@3 [d4,bb4]@2", K: "[c4,gb4,a4]@13 ~@3",
  L: "[c4,gb4,a4]@3 ~@3 g4 a4 bb4@2 a4@2 ~@2 g4 d4", // Gbdim
  M: "~@2 [eb4,g4,bb4,d5]@5 ~ [g4,d5]@2 ~ [eb4,bb4]@3 [bb3,g4] [g3,eb4]", // Ebmaj7 G5 Eb5 Eb Cm
  N: "~@2 [g3,a3,d4]@5 ~ [c4,a4]@2 ~ [d4,bb4]@3 [eb4,c5]@2", O: "[eb4,c5]@5 ~ [f4,d5]@2 [f4,d5]@3 ~@5",
  P: "[g3,bb3,d4]@6 ~@2 [d4,bb4]@2 ~ [eb4,c5]@3 [f4,d5]@2", // Gm Cm Dm
  Q: "[[eb4,g4,bb4,d5]@6 ~@2 [eb4,g4,bb4,d5]@2 [c4,eb4,g4,bb4]@3 ~ [bb3,d4,f4,a4]@8 ~@2 f4@2 d4@3 ~ eb4 f4]/2", // Ebmaj7 Cm7 Bbmaj7
  R: "[bb3,d4,g4]@13 ~@3", S: "[g4,bb4,d5,g5]@2 [g4,bb4,d5,g5]@2 ~@2 g4 a4 bb4@2 a4@2 ~@2 bb4 d4",
  T: "[eb4,g4,bb4,eb5]@11 ~@3 bb4@2", U: "[bb3,d4,f4,a4]@6 ~@2 [d4,bb4]@2 ~ [eb4,c5]@3 [f4,d5]@2",
  V: "[[eb4,g4,bb4,d5]@2 [eb4,g4,bb4,eb5]@2 ~@2 [eb4,g4,bb4,eb5]@2 [eb4,g4,bb4,eb5]@2 bb4@3 ~ [eb4,g4,c5]@8 ~@2 [gb4,c5,f5]@2 ~ eb5@3 d5 c5]/2", // Ebmaj7 Eb Cm F
  W: "[d5@6 ~@4 [d4,f4,a4,c5]@3 ~ [c4,f4,bb4,d5]@8 ~@2 f5@2 ~ eb5@3 d5 c5]/2", X: "[f4,bb4,d5]@3 ~ [bb3,d4,g4]@3 ~",
  Y: "[eb4,bb4,c5]@3 ~ [c4,gb4,a4]@3 ~", Z: "[g3,d4]@6 ~@2 [d4,gb4,bb4]@3 ~ [c4,gb4,a4]@3 ~", AA: "[bb3,d4]@13 ~@3",
  AB: "[gb4,d5]@3 ~@13", AC: "~@3 [eb4,g4,bb4,c5]@3 ~ bb4", AD: "[eb4,g4,a4,d5]@13 ~@3",
  AE: "~@6 [bb3,d4,f4,g4]@5 ~ [bb3,d4,f4,a4]@3 ~", AF: "[bb3,d4,g4,bb4]@13 ~@3",
  AG: "[bb3,eb4,g4]@10 [bb3,eb4,g4]@3 [c4,f4,a4]@2 ~", AH: "[d4,g4,bb4]@13 ~@3",
  AI: "[[g3,c4,eb4,g4]@5 ~ [g3,c4,eb4,f4]@5 ~ [ab3,c4,eb4,gb4]@10 ~@2 [f3,c4,f4]@6 ~@2]/2", // Cm Ab7 F5
  AJ: "d5 bb4 a4 [bb3,eb4,g4]@2 a4 bb4 d5", AK: "~@2 [g3,bb3,d4,g4]@10 ~@2 g4 a4",
  AL: "[c4,f4,a4]@3 ~@3 g4 a4 bb4@2 a4@2 ~@2 bb4 d4", // F
  AM: "a4@2 g4@3 ~ [g4,bb4,d5,g5]@2 ~@2 [g4,bb4,d5,g5]@3 ~ [g4,bb4,d5,g5]@2", // Gm
  AN: "[g4,bb4,d5,g5]@6 ~@2 [gb4,c5,f5]@2 ~ eb5@3 d5 c5", // Gm F
  AO: "[d5@6 ~@4 [d4,f4,a4,c5]@3 ~ [c4,f4,bb4,d5]@8 ~@2 f5@2 eb5@2 d5@2 c5@2]/2", // Dm7 Bb
  AP: "~ g5 bb5 d6 [bb5,d6,g6] d6 bb5 g5", AQ: "~ g5 bb5 eb6 ~ gb5 a5 d6", AR: "~ g4 bb4 d5 [bb4,g5] [g4,d5] bb4 g4",
  AS: "~ g4 bb4 [g4,eb5] ~ gb4 a4 [gb4,c5]", AT: "[bb3,f4,a4,c5]@13 ~@3",
})).s("gm_piano").gain(0.31)

// bass · acoustic bass
const bass = note(`<
  A@2 B C D E F G H I J C D E K L M N L O P Q R@2 S@2 T@2 U V N W X C Y Z AA AB H AC AD@2 A@2 B C ~@2 AE AF S@4 U V AG@3
  AH AI AJ AK
>`.pickRestart({
  A: "[g2@3 ~ d3@2 c2@7 ~ eb2@7 ~ bb2@2 d2@3 ~ a2@3 ~]/2", B: "~@2 eb2@2 bb2@2 eb3@4 bb2@2 eb2@3 ~", C: "d2@3 ~@13",
  D: "c2@6 ~@2 c3@3 ~ g2@3 ~", E: "f2@5 ~ f2@2 c3@3 ~ f2@3 ~", F: "g2@6 ~@2 g2@3 ~ f2@3 ~",
  G: "eb2@5 ~ eb2@2 c3@5 ~ eb2@2", H: "c2@10 c2@3 d2@2 ~", I: "eb2@6 ~@2 bb2@3 ~ g2@3 ~", J: "d2@6 ~@2 d2@3 ~ eb2@3 ~",
  K: "bb2@3 ~ f2 f3 bb2 f2", L: "eb2@6 ~@2 bb2@3 ~ eb2@3 ~", M: "c2@6 ~@2 a2@3 ~ d3@3 ~", N: "g2@6 ~@2 d3@3 ~ g2@3 ~",
  O: "eb2!2 ~@6", P: "eb2@6 ~@2 g2@3 ~ c3@3 ~", Q: "g2@6 ~@2 g2@5 ~ g2@2",
  R: "[c3@2 c3@2 ~@2 bb2@2 bb2@3 ~ bb2@2 a2@4 g2@2 f2@2 eb2@2 d2@6 ~@2]/2",
  S: "[[g2,g3]@2 [bb2,bb3]@2 [d3,d4]@2 [g2,g3]@2 ~@2 [f2,f3]@3 ~ eb2@7 ~ eb2@2 bb2@3 ~ ab2@3 ~]/2", // G Bb D G F
  T: "[[g2,g3]@2 [bb2,bb3]@2 [d3,d4]@2 [g2,a3]@2 ~@2 [f2,f3]@3 ~ eb2@7 ~ eb2@2 bb2@3 ~ ab2@3 ~]/2", U: "g2@3 ~ eb2@3 ~",
  V: "c2@3 ~ d2@3 ~", W: "eb2@6 ~@2 d2@3 ~ d2@3 ~", X: "g2@6 ~@2 g2@3 ~ f2@2 eb2@2", Y: "c2@5 ~ c2@5 ~ c2@3 ~",
  Z: "f2@6 ~@2 c3@3 ~ f2@3 ~", AA: "g2@5 ~ g2@5 ~ f2@3 ~", AB: "eb2@6 ~@2 eb2@3 ~ d2@3 ~",
  AC: "eb2@6 ~@2 bb2@3 ~ eb3@3 ~", AD: "[a2@2 bb2@2 c3@2 eb2@5 ~ d2@10 ~@2 ab2@3 ~ ab2@3 ~]/2",
  AE: "~@2 [g2,g3]@2 [bb2,bb3]@2 [d3,d4]@2 ~@2 [bb2,bb3]@3 ~ [g2,g3]@2", AF: "eb2@3 ~ d2@3 ~", AG: "bb2@13 ~@3",
  AH: "eb4@3 ~ d4@3 ~", AI: "g3@3 ~ d4@3 ~", AJ: "eb3@3 ~ d3@3 ~", AK: "g2@13 ~@3",
})).s("gm_acoustic_bass").gain(0.31)

// other · trombone
const trombone = note(`<
  A B C D E F G H I J K L E M N@2 O@2 P D Q R S@2 T U T U V B P W X Y ~ Z ~ AA AB AA AC@2 AD AE AD D ~@2 AF U T U T AG V
  B P AD ~@4 AC
>`.pickRestart({
  A: "d4 bb3 a3 g3@2 a3 bb3 d4", B: "c4@3 ~ a3@3 ~", C: "g3 ~@7", D: "~@6 g3 a3 bb3@2 a3@2 ~@2 bb3 d3", E: "eb3@3 ~@5",
  F: "~@6 f3 g3 a3@2 g3@2 ~@2 [a2,f3] c3", G: "d3@3 ~@5", H: "~@6 eb3 f3 g3@2 f3@2 ~@2 eb3@2",
  I: "g3@6 ~@4 g3@3 a3@2 ~", J: "bb3@6 ~@2 bb3@2 ~ c4@3 bb3@2", K: "a3@3 ~@5", L: "~@6 g3 a3 bb3@2 a3@2 ~@2 g3 d3",
  M: "~@8 a3@2 ~ bb3@3 c4@2", N: "[c4@5 ~ d4@2 d4@11 ~@5 bb3@2 ~ c4@3 d4@2]/2",
  O: "[d4@3 ~@5 d4@2 bb3@3 ~ a3@8 ~@2 f3@2 d3@3 ~ eb3 f3]/2", P: "g3@5 ~@3", Q: "d4@2 eb4@5 ~ eb4@2 bb3@5 ~",
  R: "a3@6 ~@2 bb3@2 ~ c4@3 d4@2", S: "[eb4@6 ~@2 eb4@2 bb3@3 ~ c4@5 ~@5 f4@2 ~ eb4@3 d4 c4]/2", T: "d4@3 ~@5",
  U: "~@8 f4@2 ~ eb4@3 d4 c4", V: "d4@3 ~ g3@3 ~", W: "~@8 bb3@3 ~ a3@3 ~", X: "g3@3 ~ a3@2 g3@2 c4@2 bb3@2 f4@2 eb4@2",
  Y: "d4@3 ~@13", Z: "d4@13 ~@3", AA: "bb3@13 ~@3", AB: "g3@10 g3@3 a3@2 ~", AC: "c4@13 ~@3", AD: "g3@13 ~@3",
  AE: "c3@13 ~@3", AF: "a3@2 g3@5 ~@9", AG: "~@4 f4 eb4 d4 c4",
})).s("gm_trombone").gain(0.31)

// other · tenor sax · "arr:  Josh Montero"
const tenor_sax = note(`<
  A B C ~@5 D E F ~ G H I J K@2 L@2 M N O@2 P Q P R S T U V W ~@2 X ~ Y Z AA AB@2 AA AC AD AE ~@2 AF R AG@2 AC AH AI AJ
  AK AL ~@4 X
>`.pickRestart({
  A: "d5 bb4 a4 g4@2 a4 bb4 d5", B: "c5@3 ~ c5@3 ~", C: "bb4 ~@7", D: "g4@10 g4@3 a4@2 ~",
  E: "bb4@6 ~@2 bb4@2 ~ c5@3 bb4@2", F: "a4@13 ~@3", G: "~@8 g5@2 ~ eb5@3 bb4 g4", H: "g4@6 ~@2 a4@2 ~ bb4@3 c5@2",
  I: "c5@5 ~ d5@2 d5@3 ~ d5@2 bb4@2", J: "g4@6 ~@2 bb4@2 ~ c5@3 d5@2",
  K: "[bb4@6 ~@2 c5@2 a4@3 ~ f4@8 ~@2 f4@2 d4@3 ~ eb4 f4]/2", L: "[g4@19 ~@13]/2", M: "bb5@11 ~@3 bb5@2",
  N: "a5@6 ~@2 bb5@2 ~ c6@3 d6@2", O: "[bb5@2 bb5@2 ~@2 bb5@2 bb5@2 bb5@3 ~ c6@15 ~@3]/2", P: "d5@3 ~@5",
  Q: "~@8 f5@2 ~@4 d5 c5", R: "~@8 f5@2 ~ eb5@3 d5 c5", S: "bb5@3 ~ d5@3 ~", T: "bb5@3 ~ gb5@3 ~",
  U: "d5@5 ~ g5 a5 bb5@2 a5@2 g5@2 bb5@2", V: "d5@6 ~@2 gb5@3 ~ gb5@3 ~", W: "d6@3 ~@5", X: "a5@13 ~@3", Y: "f5@13 ~@3",
  Z: "g5@10 g5@3 a5@2 ~", AA: "bb5@13 ~@3", AB: "c6@13 ~@3", AC: "g5@13 ~@3", AD: "~@2 eb5@2 g5@2 c6@4 g5@2 eb5@3 ~",
  AE: "d5@3 ~@13", AF: "a5@2 g5@5 ~@9", AG: "[d5@6 ~@4 c6@3 ~ d6@15 ~@3]/2", AH: "~@4 f5 eb5 d5 c5",
  AI: "d5@3 ~ g4@3 ~", AJ: "c5@3 ~ a4@3 ~", AK: "eb5@5 ~@3", AL: "eb5@13 ~@3",
})).s("gm_tenor_sax").gain(0.31)

stack(piano, bass, trombone, tenor_sax)

More by Broadway