Strudelify

come back home

Louis Prima

KeyA majorTempo200 bpm
0:00/0:00
// come back home — Louis Prima
// 200 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5923620; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 159 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(200/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 · soprano sax · "Soprano Saxophone"
const soprano_sax = note(`<
  ~@3 A B C D E F ~@2 G H I J K L ~@2 G H I J K L ~ M N O P Q ~ D R S G H I J K L ~ T@3 ~ U V W X Y Z AA AB AC@2 AD AE
  AF AG AH AI AJ ~@9 AK AL AM AL AM AL AM AL AN AL AM AL AM AL AM AL AO AP AQ AR AQ AS AQ AR AQ AS AQ AR AQ AS AQ AR AQ
  AT ~@2 AU AV AW AX@2 AY AZ@2 BA BB BC BD@2 BE BF@3 BG BH BG BH BG BI@2 BJ BG BH BG BH BG BI@2 BJ ~@2 BK BL BK BL BK BL
  BM@2 BN BO BN BO BN BO BP@2
>`.pickRestart({
  A: "e4 g4 a#4 a4 a#4 g4 e4 g4", B: "a#4 a4 a#4 g4 e4 g4 e4 d#4", C: "e4 ~@7", D: "~@7 b4", E: "d5@2 e5@2 b4 g4 ~ e4",
  F: "a#4 a4 ~ a#4 a4@2 g4@2 e4@2 d4@2 d#4@2 e4@2", G: "~ b4 b4@2 ~ a4 a4@2", H: "~ g4 g4@2 ~ a4 a4@2", I: "b4 ~@3",
  J: "~@5 b4!3", K: "e5@2 e5@2 b4@2 ~ e5", L: "~ e5 ~ e5 b4@2 ~ b4", M: "~@7 e5", N: "g5 ~@3", O: "~@12 b4 c5 ~ c#5",
  P: "d5@2 d5@2 d5!2 ~ c5", Q: "b4 g4 e4 g4 ~@3 g4", R: "~ d5 ~ b4 d5 d#5 e5@2", S: "b4@2 g4!2 ~ a4 ~@2",
  T: "[~@5 e5 ~ a5@4 e5@4 d#5@4 d5@3 ~@2]/3", U: "~@5 e4 a4 c5", V: "e5", W: "d5 c5 d5 e5 d5 c5 a4 e4", X: "c5!2 c5@2",
  Y: "~@2 a4 c5 e5 a5 b5 c6", Z: "e6@6 e6 d6 c6@2 d6@2 b5@2 c6@2", AA: "a5 f5 e5 d5 c5 e5 a4 c5", AB: "e5@3 ~",
  AC: "[~@3 d#6 ~ d#6 ~ d#6@8 c6]/2", AD: "d6 c6 ~ a5@3 ~@2", AE: "d6 c6 d6 c6 d6 c6 a5 f5", AF: "e5 c5 a5@6",
  AG: "a5@3 e5@4 e5", AH: "a5!2 ~ e5@4 a5", AI: "~ a5@3 f5 d5 b4 a4", AJ: "e5@2 c5 a4 ~@4", AK: "~@7 d#5",
  AL: "e5 a5 e5@6", AM: "e5@3 d#5 ~@3 d#5", AN: "e5@2 c5 d5 ~@3 d#5", AO: "e5@2 d5 c5 ~@4", AP: "~@7 d#4",
  AQ: "e4 a4 b4 c5 b4@2 a4 c5", AR: "b4@2 a4 e5 ~@3 d#4", AS: "b4@2 a4 g#4 ~@3 d#4", AT: "b4@2 g#4 a4 ~@4",
  AU: "~@3 e4", AV: "a4 ~@3", AW: "~ e4 a4 g#4", AX: "[g4@3 e4@3 ~ c4]/2", AY: "e4 c4 e4 c4",
  AZ: "[d#4 d4 c4 a3@2 ~@3]/2", BA: "~@3 e5", BB: "a5 ~@3", BC: "~ e5 a5 g#5", BD: "[g5@3 e5@3 ~ c5]/2",
  BE: "e5 c5 e5 c5", BF: "[d#5 d5 c5 a4@9]/3", BG: "a5 ~ a4 c5", BH: "e5 d#5@7",
  BI: "[e5 d#5@5 e5 d#5@3 e5 d#5@3 e5 d#5]/2", BJ: "~ c5@5 ~@2", BK: "~ f#5 a5@2 ~ f5 a5@2",
  BL: "~ f#5 a5 g#5 ~ g#5 ~@2", BM: "[~@2 c6@9 c6 ~ c6 ~ c6]/2", BN: "~ a5 c6@2 ~ g#5 c6@2", BO: "~ a5 c6 b5 ~ b5 ~@2",
  BP: "[~ c6@5 e6 ~]/2",
})).s("gm_soprano_sax").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~@10 A B C D E F G H I B C D E F G H J K L M N K O P Q B C D E F G H R@2 S@2 ~ T@3 U V W ~@2 T@3 U X Y Z AA ~@17 AB AC
  AD AC AD AC AD AC AE ~@2 AF AG@12 AH@2 ~@3 AI AJ AI AJ ~@2 AI AK@2 AJ AI AJ AI AJ AI AK AL AM AL AM AL AN@2 AO AL AM
  AL AM AL AN@2 AO ~@2 AP AQ AP AQ AP AQ AR@2 AP AQ AP AQ AP AQ AS@2
>`.pickRestart({
  A: "e4 f#4 g4 a4 b4 e5 c5 a4", B: "b4 a4", C: "g4@3 a4@5", D: "~ b4 ~ b4 a4@2 a4@2", E: "g4@2 a4 b4@5",
  F: "g4@3 a4 ~ a4 f#4 a4", G: "g4@3 a4 ~ a4 f#4 g4", H: "~ b4 g4@2 a4 g4 a4 b4", I: "a4 g#4 g4 e4 ~ f#4 g4 a4",
  J: "a4 g#4 g4 e4 ~ d#4 d4@2", K: "~ g4!3 a4 b4 ~ g4", L: "~ b4 ~ b4 a4@3 ~", M: "a4@2 g#4@2 a4!2 ~ c5",
  N: "b4 g4 e4 g4 ~@3 g4", O: "~ b4 ~ b4 a4@4", P: "g4 a4", Q: "g4@2 ~@2 d#4 f#4 a4 c5",
  R: "[a4 g#4 g4 e4 ~ e4 ~ a4@2 b4 c5 d5 e5 d5 e5@2]/2", S: "[d#5 c5 d#5 c5 ~ b4 ~ a4@3 ~@6]/2",
  T: "[~@4 g#4 f#4 g#4 a4@3 ~@2 g#4 f#4 g#4 a4@3 ~@2 g#4@2 g#4@2]/3", U: "a4@2 b4 a4@4 ~", V: "a4 b4", W: "c5@3 b4 ~@4",
  X: "c5@3 b4@4 b4", Y: "c5!2 ~ b4@4 c5", Z: "~ c5@3 b4 a4 f4 d4", AA: "f#4@2 g#4 f#4 ~@4", AB: "~@7 d#5",
  AC: "e5 d#5 e5 b4 c5 b4 c5 a4", AD: "c5 a4 c5 b4 ~@3 d#5", AE: "c5 a4 c5 b4 ~@4", AF: "~@5 f5@3",
  AG: "[e5@10 ~@3 f5@3]/2", AH: "[e5@5 ~@3]/2", AI: "~ c5 a4 c5", AJ: "a4@3 ~", AK: "a4 c5 a4 c5",
  AL: "~@4 e4 f#4 ~ a4 c5@8", AM: "c5 b4@7", AN: "[c5 b4@5 c5 b4@3 c5 b4@3 c5 b4]/2", AO: "~ a4@5 ~@2",
  AP: "~ c5 e5@2 ~ b4 e5@2", AQ: "~ c5 e5 b4 ~ b4 ~@2", AR: "[~ e5@5 ~@2]/2", AS: "[~ e5@5 e5 ~]/2",
})).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@10 A B C D E F G H I B C D E F G H J K L M N K O P Q B C D E F G H R@2 S@2 ~ T@3 U V W ~@2 T@3 U X Y Z AA ~@17 AB AC
  AD AC AD AC AD AC AE ~@2 AF AG@12 AH@2 ~@3 AI AJ AI AJ ~@2 AI AK@2 AJ AI AJ AI AJ AI AK AL AM AL AM AL AN@2 AO AL AM
  AL AM AL AN@2 AO ~@2 AP AQ AP AQ AP AQ AR@2 AP AQ AP AQ AP AQ AS@2
>`.pickRestart({
  A: "e3 f#3 g3 a3 b3 e4 c4 a3", B: "b3 a3", C: "g3@3 a3@5", D: "~ b3 ~ b3 a3@2 a3@2", E: "g3@2 a3 b3@5",
  F: "c#4@3 d#4 ~ d#4 b3 d#4", G: "c#4@3 d#4 ~ d#4 b3 c#4", H: "~ b3 g3@2 a3 g3 a3 b3", I: "a3 g#3 g3 e3 ~ f#3 g3 a3",
  J: "a3 g#3 g3 e3 ~ d#3 d3@2", K: "~ d4!3 e4!2 ~ d4", L: "~ e4 ~ d4 e4@3 ~", M: "d4@2 d4@2 d4!2 ~ g4",
  N: "e4 d4 b3 d4 ~@3 d4", O: "~ e4 ~ e4 d4@4", P: "d4 e4", Q: "d4@2 ~@2 d#3 f#3 a3 c4",
  R: "[a3 g#3 g3 e3 ~ e3 ~ g#3@2 b3 c4 d4 e4 c4 e4@2]/2", S: "[d#4 c4 d#4 d4 ~ g#4 ~ f#4@3 ~@6]/2",
  T: "[~@4 e4 d4 e4 f#4@3 ~@2 e4 d4 e4 f#4@3 ~@2 e4@2 e4@2]/3", U: "f#4@2 g#4 f#4@4 ~", V: "f#4 g#4", W: "a4@3 g#4 ~@4",
  X: "a4@3 g#4@4 g#4", Y: "a4!2 ~ g#4@4 a4", Z: "~ a4@3 a4 f4 d4 b3", AA: "e4@2 e4!2 ~@4", AB: "~@7 b4",
  AC: "c5 b4 c5 g#4 a4 g#4 a4 f#4", AD: "a4 f#4 a4 g#4 ~@3 b4", AE: "a4 f#4 a4 g#4 ~@4", AF: "~@5 b4@3",
  AG: "[c5@10 ~@3 b4@3]/2", AH: "[c5@5 ~@3]/2", AI: "~ c5 a4 c5", AJ: "a4@3 ~", AK: "a4 c5 a4 c5",
  AL: "~@4 c4 e4 ~ f#4 a4@8", AM: "a4 g#4@7", AN: "[a4 g#4@5 a4 g#4@3 a4 g#4@3 a4 g#4]/2", AO: "~ f#4@5 ~@2",
  AP: "~ a4 c5@2 ~ g#4 c5@2", AQ: "~ a4 c5 g#4 ~ g#4 ~@2", AR: "[~ c5@5 ~@2]/2", AS: "[~ c5@5 c5 ~]/2",
})).s("gm_tenor_sax").gain(0.3)

stack(soprano_sax, alto_sax, tenor_sax)

More by Louis Prima