Strudelify

food glorious food

Lionel Bart

KeyB♭ majorTempo320 bpm
0:00/0:00
// food glorious food — Lionel Bart
// 320 bpm, 2/2, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 117, 2/2 at bar 120) are rendered on a constant 2/2 grid of one bar per cycle
// note: duplicate parts dropped: ch 2 "Flute" flute (copy of ch 1 "Piccolo" piccolo)
// note: Transcription provider: pdmx. https://musescore.com/score/5918152; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 196 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(320/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 · piccolo
const piccolo = note(`<
  ~@6 A@8 B@8 C@2 D@2 E@8 F@4 G@2 H@8 I@5 J@4 K@8 L@3 M@7 N O@7 P@8 Q@4 R@8 S@2 T@5 U@6 V@3 W@2 X Y Z AA AB@2 AC AD AE@2
  Z AA AB@2 AC AD AE@2 AF AG AH@2 AI AJ AK@2 AL AM AN Z AO Z AP@2 Z AA AB@2 AC AD AE@2 Z AA AB@2 AC AD AE@2 AF AG AQ@2
  AC AR AS AT AU AV AW@8 AX AY@2 AZ@4
>`.pickRestart({
  A: "[~@15 f5@6 ~ f5@6 f5@6 ~ f5@6 f5@6 f5@6 ~ f5@13 gb5@6 gb5@6 gb5@6 ~ gb5@6 gb5@6 ~ gb5@6 gb5@13 g5@6 g5@4]/8",
  B: "[~@3 g5@6 g5@6 g5@13 g5@13 gb5@26 d6@25 f5@6 ~ f5@6 f5@6 f5@6 ~ f5@6 f5@4]/8",
  C: "[~@3 f5@12 gb5@6 ~ gb5@6 gb5@4]/2", D: "[~@3 gb5@6 gb5@6 gb5@6 ~ gb5@10]/2",
  E: "[~@3 g5@6 g5@6 g5@6 ~ g5@6 g5@13 g5@13 a5@25 f6@26 bb5@13 bb5@6 bb5@4]/8",
  F: "[~@3 bb5@12 bb5@6 ~ bb5@6 a5@13 a5@6 a5@6 ~ a5@6 ~@4]/4", G: "[~@3 a5@6 a5@6 ab5@13 ab5@4]/2",
  H: "[~@3 ab5@6 ab5@6 ab5@6 ~ ab5@13 g5@38 g5@6 g5@6 ~ f5@13 f5@6 f5@6 f5@13 f5@4]/8",
  I: "[~@3 f5@6 a5@13 a5@6 a5@6 ~ a5@12 a5@6 ~ a5@6 c6@14 c6@6]/5", J: "[~ c6@7 ~ c6@14 c6@7 c6@7 eb6@27]/4",
  K: "[~ e6@28 ~ f6@15 c6@5 a5@5 f5@5 eb6@30 ~ d6@15 bb5@5 g5@5 e5@5 db6@7]/8", L: "[~ c6@23 f6@15 c6@5 a5@4]/3",
  M: "[~ f5@5 eb6@30 ~ d6@15 bb5@5 g5@5 e5@5 db6@8 c6@23 a5@14]/7", N: "~ a5@5 bb5@5 c6@5",
  O: "[c6@11 ~ d6@3 g5@15 ~ g5@15 g5@5 a5@5 bb5@5 b5@8 c6@23 c6@15 c6@5]/7",
  P: "[d6@5 e6@5 e6@11 ~ f6@3 f6@15 ~ e6@16 f6@17 gb6@8 ~ g6@25 f6@15 c6@5]/8",
  Q: "[a5@5 f5@5 eb6@30 ~ d6@15 bb5@5 g5@3]/4",
  R: "[~@2 e5@5 db6@8 c6@23 f6@15 c6@5 a5@5 f5@5 eb6@30 ~ d6@15 bb5@5 g5@5 e5@4]/8", S: "[~ db6@8 c6@23]/2",
  T: "[a5@15 a5@5 bb5@5 c6@5 c6@11 ~ d6@3 d6@15 ~ d6@15 d6@4]/5",
  U: "[~ e6@5 f6@5 g6@15 ab6@15 ~ a6@15 a6@6 f6@5 g6@6 a6@17 a6@5]/6", V: "[f6@6 g6@5 a6@18 ~ a6@6 f6@6 g6@6]/3",
  W: "[f6@3 ~]/2", X: "d5 f5", Y: "e5 g5", Z: "f6", AA: "c6@5 a5@5 ~ f5@5", AB: "eb6/2", AC: "d6",
  AD: "bb5@5 g5@5 ~ e5@5", AE: "[db6 c6@3]/2", AF: "a5", AG: "a5@5 bb5@5 ~ c6@5", AH: "[c6@2 d6 g5@5]/2", AI: "g5",
  AJ: "g5@5 a5@5 ~ bb5@5", AK: "[b5 c6@3]/2", AL: "c6", AM: "c6@5 d6@5 ~ e6@5", AN: "e6 f6", AO: "e6",
  AP: "[gb6 g6@3]/2", AQ: "[c6@2 d6 d6@5]/2", AR: "d6@5 e6@5 ~ f6@5", AS: "g6", AT: "ab6", AU: "a6",
  AV: "~ a6@5 f6@5 ~ g6@4",
  AW: "[~ a6@17 a6@5 f6@5 ~ g6@5 a6@17 a6@5 f6@5 ~ g6@5 a6@17 a6@5 f6@5 ~ g6@5 a6@17 a6@5 f6@5 ~]/8", AX: "g6@5 a6@11",
  AY: "[~@6 a6@13 f6@13]/2", AZ: "[g6@13 f6@39 ~@12]/4",
})).s("gm_piccolo").gain(0.25)

// other · flute
const flute = note(`<
  A@6 B@4 C@8 D@8 E@3 F@3 G@3 H@7 I@8 J@7 K@7 L@8 M@2 N O P@4 Q@5 R@8 S@2 T@8 U@2 V@8 W@6 X Y Z AA AB AC AD AE AF AG AD
  AH AB AC AD AE AF AG AD AH AI AJ AK AL AM AG AN AE AO AP AQ AR AS AT AL AU AB AC AD AE AF AG AD AH AB AC AD AE AF AG
  AD AH AI AJ AV AD AW AX AM AY AZ BA BB BC@6 BD BE BF@2 BG@4
>`.pickRestart({
  A: "[~@9 bb4@12 ~ bb4@12 ~ bb4@12 bb4@12 ~ bb4@12 ~ bb4@12 ~ bb4@10]/6", B: "[~@3 bb4@12 d4@49]/4",
  C: "[~@3 d4@49 ~@2 d4@49 ~@2 d4@23]/8", D: "[~@3 bb4@24 ~ d4@49 ~@2 d4@49]/8", E: "[~ d4@15]/3",
  F: "[~@6 f4@25 d5@17]/3", G: "[~@3 g4@13]/3", H: "[~@12 f4@49 ~@2 f4@49]/7",
  I: "[~@3 bb4@36 ~@2 eb4@12 ~ a4@24 ~ a4@24 ~@2 a4@23]/8", J: "[~@3 a4@24 ~ bb4@27 ~@2 bb4@27 ~ bb4@27]/7",
  K: "[~ bb4@27 ~@2 a4@29 ~ bb4@15 ~ a4@14 ~ g4@15 e4@6]/7",
  L: "[~@9 bb4@29 ~@2 f4@29 ~ bb4@15 ~ a4@14 ~ g4@15 e4@7 ~@5]/8", M: "[~@3 bb4@29]/2", N: "~ f5@7", O: "~ eb5@14 ~",
  P: "[f5@14 ~ e5@14 ~@2 f5@15 e5@14 ~ ab5@3]/4", Q: "[~@5 a5@22 ~ a5@14 ~ g5@14 ~ c6@22]/5",
  R: "[~@9 b5@32 ~ bb5@32 ~@2 a4@29 ~ bb4@15 ~ a4@6]/8", S: "[~@9 g4@15 e4@7 ~]/2",
  T: "[~@7 bb4@29 ~@2 f4@29 ~ bb4@15 ~ a4@14 ~ g4@15 e4@7 ~@7]/8", U: "[~ bb4@29 ~@2]/2",
  V: "[f5@14 ~ eb5@14 ~ f5@14 ~ g5@14 ~@2 a5@14 ~ a5@14 ~ d6@14 ~ f6@14 ~@2 f6@6]/8",
  W: "[~@9 d6@16 ~ b5@32 ~ d6@17 ~@2 c6@17 ~]/6", X: "f4 c5 e4 c5", Y: "d4 c5 c4 c5", Z: "bb4!2 a4 bb4",
  AA: "g4 bb4 c4 bb4", AB: "f5 c6@2 a5", AC: "a5@5 f5@5 ~ f5@5", AD: "c5 bb5 c5 bb5", AE: "f5 a5 f5 a5",
  AF: "bb4 bb5@2 f5", AG: "e5@5 e5@5 ~ e5@5", AH: "c5 bb4 c5 bb4", AI: "f5!4", AJ: "eb5@5 eb5@5 ~ eb5@5",
  AK: "g5 bb5 ~ f5", AL: "c5 e5 c5 e5", AM: "g5 f5 g5 f5", AN: "f5 ab5 f5 a5", AO: "a5!4", AP: "a5@5 b5@5 ~ c6@5",
  AQ: "d5 e5 d5!2", AR: "d5!4", AS: "g5 b5 g5 b5", AT: "d5 b5 g5 b5", AU: "g5 e5 g5 e5", AV: "g5 bb5 g5 bb5",
  AW: "d5 a5 d5 a5", AX: "a5@5 a5@5 ~ a5@5", AY: "db5 f5 db5 f5", AZ: "c5 f5 c5 f5", BA: "~ f6@5 d6@5 ~ d6@4",
  BB: "~ g5@4 d5@4 g5@4 d5@3",
  BC: "[~@2 f6@5 f6@5 ~ f6@5 g5@4 d5@4 g5@4 d5@4 ~ f6@5 f6@5 ~ f6@5 g5@4 d5@4 g5@4 d5@4 ~ f6@5 f6@5 ~ f6@5 g5@4 d5@4 g5@4]/6",
  BD: "~ d5@4 f6@5 f6@5 ~", BE: "f6@5 f6@11", BF: "[~@6 f6@12 ~ d6@12 ~]/2", BG: "[bb5@12 ~ f5@37 ~@14]/4",
})).s("gm_flute").gain(0.2)

// other · flute
const flute_2 = note(`<
  A@6 B@8 C@8 D@8 E@8 F@4 G@8 H@7 I@7 J@8 K@2 L M N@4 O@5 P@8 Q@8 R@2 S@2 T@8 U@6 V W X Y Z AA AB@2 AC AD AE@2 Z AA AB@2
  AC AD AE@2 AF AG AH@2 AI AJ AK@2 AL AM AN Z AO Z AP@2 Z AA AB@2 AC AD AE@2 Z AA AB@2 AC AD AE@2 AF AG AQ@2 AC AR AS AT
  AU AV AW AX@6 AY AZ@3 BA@4
>`.pickRestart({
  A: "[~@9 d4@12 ~ d4@12 ~ d4@12 f4@12 ~ d4@12 ~ d4@12 ~ d4@10]/6",
  B: "[~@3 f4@12 bb4@12 ~ f4@12 ~ bb4@12 ~ f4@12 ~ bb4@12 gb4@12 ~ bb4@12 ~ gb4@12 ~ bb4@10]/8",
  C: "[~@3 g4@12 bb4@12 ~ g4@12 ~ bb4@12 ~ gb4@12 ~ bb4@12 gb4@12 ~ bb4@12 ~ f4@12 ~ bb4@10]/8",
  D: "[~@3 f4@12 bb4@12 ~ gb4@12 ~ bb4@12 ~ gb4@12 ~ bb4@12 g4@12 ~ bb4@12 ~ g4@12 ~ d4@10]/8",
  E: "[~@3 a4@12 d4@12 ~ a4@12 ~ eb4@12 ~ bb4@12 ~ g4@12 eb4@12 ~ d4@12 ~ a4@12 ~ f4@10]/8",
  F: "[~@3 d4@12 bb4@12 ~ f4@12 ~ d4@12 ~ bb4@10]/4",
  G: "[~@3 eb4@12 bb4@12 ~ eb4@12 ~ eb4@12 ~ d4@24 ~ d4@24 ~@2 c4@23]/8", H: "[~@3 c4@24 ~ g4@27 ~@2 g4@27 ~ g4@27]/7",
  I: "[~ g4@27 ~@2 f4@29 ~ c4@15 ~ f4@14 ~ bb4@21]/7", J: "[~@9 c4@29 ~@2 f4@29 ~ c4@15 ~ f4@14 ~ bb4@27]/8",
  K: "[~@3 c4@29]/2", L: "~ c5@7", M: "~ c5@14 ~", N: "[bb4@29 ~@2 bb4@29 ~ ab4@3]/4",
  O: "[~@5 a4@22 ~ a4@14 ~ a4@14 ~ a5@22]/5", P: "[~@9 g4@32 ~ c5@32 ~@2 f4@29 ~ c4@15 ~ f4@6]/8",
  Q: "[~@9 bb4@29 ~ c4@29 ~@2 f4@29 ~ c4@15 ~ f4@12]/8", R: "[~@3 bb4@29]/2", S: "[~ c4@29 ~@2]/2",
  T: "[c5@14 ~ c5@14 ~ bb4@29 ~@2 f5@14 ~ f5@14 ~ b5@14 ~ b5@14 ~@2 c6@6]/8",
  U: "[~@9 f5@16 ~ g4@32 ~ a4@17 ~@2 bb4@17 ~]/6", V: "f4 a4 e4 a4", W: "d4 a4 c4 a4", X: "bb4 g4 a4 g4",
  Y: "g4!2 c5 g4", Z: "f5@15 ~", AA: "c5@5 c5@5 ~ f4@5", AB: "[eb5@15 ~]/2", AC: "d5@15 ~", AD: "d5@5 bb4@5 ~ e4@5",
  AE: "[db5@8 c5@23 ~]/2", AF: "a4@15 ~", AG: "c5@5 c5@5 ~ c5@5", AH: "[c5@8 d5@4 g4@19 ~]/2", AI: "g4@15 ~",
  AJ: "bb4@5 c5@5 ~ c5@5", AK: "[b4@8 c5@23 ~]/2", AL: "c5@15 ~", AM: "e5@5 e5@5 ~ g5@5", AN: "e5 f5", AO: "e5@15 ~",
  AP: "[gb5@8 g5@23 ~]/2", AQ: "[c5@8 d5@4 d5@19 ~]/2", AR: "f5@5 f5@5 ~ f5@5", AS: "g5@15 ~", AT: "ab5@15 ~", AU: "a5",
  AV: "~ a5@5 a5@5 ~ a5@4", AW: "~ a5@4 f5@4 a5@4 f5@3",
  AX: "[~@2 b5@5 b5@5 ~ b5@5 a5@4 f5@4 a5@4 f5@4 ~ bb5@5 bb5@5 ~ bb5@5 a5@4 f5@4 a5@4 f5@4 ~ b5@5 b5@5 ~ b5@5 a5@4 f5@4 a5@4]/6",
  AY: "~ f5@4 bb5@5 bb5@5 ~", AZ: "[bb5@5 c6@8 c4@8 ~ c5@12 ~ c5@12 ~]/3", BA: "[c5@12 ~ c5@37 ~@14]/4",
})).s("gm_flute").gain(0.2)

// other · flute · "Alto Flute"
const flute_3 = note(`<
  A@6 B@4 C@8 D@8 E@3 F@3 G@3 H@7 I@8 J@7 K@7 L@8 M@3 N O@4 P@5 Q@8 R@8 S@2 T@2 U@8 V@6 W X Y Z AA AB AC AB AD AE AF AC
  AA AB AC AB AD AE AF AC AB AG AH AC AH AC AI AB AJ AK AL AM AN AO AP AQ AA AB AC AB AD AE AF AC AA AB AC AB AD AE AF
  AC AB AG AH AC AM AR AS AT AC AU AV AW AX@2 AY@2 AZ BA BB@3 BC@4
>`.pickRestart({
  A: "[~@9 bb3@13 a3@13 g3@12 d4@13 bb3@13 a3@13 g3@10]/6", B: "[~@3 d4@12 bb3@49]/4",
  C: "[~@3 bb3@51 bb3@51 bb3@23]/8", D: "[~@3 f4@25 bb3@51 bb3@49]/8", E: "[~ bb3@15]/3", F: "[~@6 d4@25 a4@17]/3",
  G: "[~@3 eb4@13]/3", H: "[~@12 d4@51 d4@49]/7", I: "[~@3 eb4@38 bb3@13 a3@25 a3@26 a3@23]/8",
  J: "[~@3 a3@25 f4@28 ~ e4@28 c4@27]/7", K: "[~ c4@28 ~ c4@30 g4@15 ~ f4@15 f4@15 g4@6]/7",
  L: "[~@9 e4@30 ~ c4@30 g4@15 ~ f4@15 f4@15 g4@12]/8", M: "[~@3 e4@30 ~ f4@14]/3", N: "~ gb4@15",
  O: "[g4@15 c4@15 ~ g4@15 c4@15 ~@3]/4", P: "[~@12 c5@15 ~ e5@15 e5@15 d4@22]/5",
  Q: "[~@9 d4@33 e4@17 c4@17 c4@30 g4@15 ~ f4@6]/8", R: "[~@9 f4@15 g4@15 e4@30 ~ c4@30 g4@15 ~ f4@12]/8",
  S: "[~@3 f4@15 g4@14]/2", T: "[~ e4@30 ~]/2", U: "[f4@15 gb4@15 g4@15 c4@15 ~ d4@15 c4@15 f4@15 db4@15 ~ c4@6]/8",
  V: "[~@9 d4@17 f5@33 c5@18 ~ e5@18]/6", W: "f4 c5 e4 c5", X: "d4 c5 c4 c5", Y: "bb3 bb4 a3 bb4", Z: "g3 bb4 c4 bb4",
  AA: "f4 a4 c4 f4", AB: "f4 ~ f4 ~", AC: "c4 ~ c4 ~", AD: "bb3 ~ bb3 ~", AE: "g3 ~ g4 ~", AF: "c4 ~ g4 ~",
  AG: "gb4 ~ gb4 ~", AH: "g4 ~ g3 ~", AI: "f4 ~ c4 ~", AJ: "a3 ~ e4 ~", AK: "a3 ~ a3 ~", AL: "d4 ~ a3 ~",
  AM: "d4 ~ d4 ~", AN: "g3 ~ g3 ~", AO: "d4 ~ g3 ~", AP: "c4 bb4 c4 bb4", AQ: "g3 ~ c4 ~", AR: "a4 ~ d4 ~",
  AS: "g3 ~ d4 ~", AT: "db4 ~ db4 ~", AU: "~ d4@4 ~@4 d4@4 ~@3", AV: "~ g4@4 b4@4 d4@4 b4@3", AW: "~ g4@2 ~@2 d4@2 ~",
  AX: "[~@2 g4@4 bb4@4 d4@4 bb4@4 ~ g4@4 ~@4 d4@4 ~]/2", AY: "[~@3 g4@4 b4@4 d4@4 b4@4 ~ g4@4 ~@4 d4@4]/2",
  AZ: "~ g4 bb4 d4", BA: "~ bb4@4 g4@4 ~@4 d4@3", BB: "[~@5 c4@4 ~@4 c4@8 ~ bb4@13 bb4@13]/3",
  BC: "[bb4@13 c4@39 ~@12]/4",
})).s("gm_flute").gain(0.2)

// other · flute · "Bass Flute"
const flute_4 = note(`<
  A@6 B@8 C@8 D@8 E@8 F@4 G@8 H@7 I@7 J@8 K@3 L M@7 N@2 O@8 P@8 Q@2 R@2 S@8 T@6 U V W X Y Z AA Z AB AC AD AA Y Z AA Z AB
  AC AD AA AE AF AG AA AG AA AH AI AJ AK AL AM AC AN AA AO Y Z AA Z AB AC AD AA Y Z AA Z AB AC AD AA AE AF AG AA AP AQ
  AR AS AA AT AU AV@2 AW@2 AX@2 AY AZ@3 BA@4
>`.pickRestart({
  A: "[~@9 bb3@13 a3@13 g3@12 f3@13 bb3@13 a3@13 g3@10]/6",
  B: "[~@3 f3@12 bb3@13 f4@13 bb3@13 f4@13 bb3@12 gb4@13 bb3@13 gb4@13 bb3@10]/8",
  C: "[~@3 g4@12 bb3@13 g4@13 bb3@13 gb4@13 bb3@12 gb3@13 bb3@13 f4@13 bb3@10]/8",
  D: "[~@3 f4@12 bb3@13 gb4@13 bb3@13 gb4@13 bb3@12 g4@13 bb3@13 g4@13 d3@10]/8",
  E: "[~@3 a3@12 d4@13 a3@13 eb3@13 bb3@13 g3@12 eb3@13 d3@13 a3@13 f3@10]/8",
  F: "[~@3 d3@12 bb3@13 f4@13 d4@13 bb3@10]/4", G: "[~@3 eb3@12 bb3@13 eb3@13 bb3@13 d4@25 d4@26 c4@23]/8",
  H: "[~@3 c4@25 g3@28 ~ g3@28 c3@27]/7", I: "[~ c4@28 ~ f3@30 c4@15 ~ f4@15 bb3@15 g3@6]/7",
  J: "[~@9 c4@30 ~ f3@30 c4@15 ~ f4@15 bb3@15 g4@12]/8", K: "[~@3 c4@30 ~ f4@14]/3", L: "~ gb4@15",
  M: "[g4@15 c4@15 ~ g4@15 c4@15 f4@30 ~ a3@15 a3@5]/7", N: "[~@5 d4@11]/2",
  O: "[~@9 g3@33 c4@34 f3@30 c4@15 ~ f4@6]/8", P: "[~@9 bb3@15 g3@15 c4@30 ~ f3@30 c4@15 ~ f4@12]/8",
  Q: "[~@3 bb3@15 g4@14]/2", R: "[~ c4@30 ~]/2", S: "[f4@15 gb4@15 g4@15 c4@15 ~ d4@15 a3@15 g3@15 db4@15 ~ c4@6]/8",
  T: "[~@9 d4@17 g4@33 f4@18 ~ c4@18]/6", U: "f4 a4 e4 a4", V: "d4 a4 c4 a4", W: "bb3 g4 a3 g4", X: "g3 g4 c3 g4",
  Y: "f3 ~ c4 ~", Z: "f3 ~ f3 ~", AA: "c4 ~ c4 ~", AB: "bb3 ~ bb3 ~", AC: "g3 ~ g3 ~", AD: "c4 ~ g3 ~", AE: "f4 ~ f3 ~",
  AF: "gb3 ~ gb4 ~", AG: "g4 ~ g3 ~", AH: "f4 ~ c4 ~", AI: "f4 ~ f4 ~", AJ: "a3 ~ e3 ~", AK: "a3 ~ a3 ~",
  AL: "d4 ~ a3 ~", AM: "d3 ~ d3 ~", AN: "d4 ~ g3 ~", AO: "g3 ~ c4 ~", AP: "d4 ~ d4 ~", AQ: "a3 ~ d4 ~", AR: "g3 ~ d4 ~",
  AS: "db4 ~ db4 ~", AT: "~ d4@4 ~@4 d4@4 ~@3", AU: "~ g3@4 ~@4 d4@4 ~@3", AV: "~ g3@2 ~@2 d4@2 ~",
  AW: "~@3 g3@4 ~@4 d4@4 ~", AX: "~ g3 ~ d4", AY: "~@5 g3@4 ~@4 d4@3", AZ: "[~@5 c4@4 ~@4 c4@8 ~ c4@13 c4@13]/3",
  BA: "[c4@13 f3@39 ~@12]/4",
})).s("gm_flute").gain(0.2)

stack(piccolo, flute, flute_2, flute_3, flute_4)

More by Lionel Bart