Strudelify

poggers

Reel Big Fish

KeyF majorTempo120 bpm
0:00/0:00
// poggers — Reel Big Fish
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/652441; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 193 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A ~ B ~ C ~ D ~ E@2 F G H@2 I@2 E@2 F G J@2 I K ~@8 L@2 I K ~ M ~ M ~@2 N O P@2 Q R Q R Q R S T@2 U ~ U ~@5 E@2 F G
  H@2 I@2 E@2 F G J@2 I K ~@6 I K ~ M ~ M ~@2 N O P@2 Q R Q R Q R S T@2 U ~ U ~@5 A ~ B ~ C ~ D ~@7 V@2 ~@2 V@2 ~@4 P@2
  Q R Q R Q R S T@2 U ~ U ~@5 E@2 F G H@2 I@2 E@2 F G J@2 I K W@2 X Y W@2 X Y W@2 X Y Z@2 AA AB W@2 X AC
>`.pickRestart({
  A: "ab3@2 ab3@2 g3!2 ab3@2", B: "c4@2 c4@2 b3!2 c4@2", C: "eb4@2 eb4@2 d4!2 eb4@2", D: "ab4@2 ab4@2 g4!2 ab4@2",
  E: "[~@8 ab4@3 f4 ~@2 eb4@18]/2", F: "~@2 eb4!3 f4 ab4 ~", G: "db5@3 c5 ~@2 bb4@2 ~@2 ab4@6",
  H: "[ab4 ~@2 f4 ~@2 eb4@6 ~@2 c5 ~]/2", I: "db5@3 db5 ~@2 db5@2 ~@2 c5@2 ~@2 ab4@2",
  J: "[ab4 ~@2 f4 ~@2 c5@6 ~@2 c5 ~]/2", K: "db5@3 db5 ~@2 db5@2 ~@2 c5@2 ~@4",
  L: "[~@8 ab4@3 f4 ~@2 eb4@10 ~@4 c5@2 ~@2]/2", M: "~@6 eb5 ~", N: "c5", O: "db5", P: "[eb5@12 ~ db5!3]/2",
  Q: "ab4 ~@7", R: "~@5 db5!3", S: "db5@3 ~", T: "[eb5@3 eb5 ~@2 c5@2 ~@2 db5@2 ~@2 eb5@10 ~@8]/2", U: "~@2 eb5 ~@5",
  V: "ab4/2", W: "db5 c5 bb4 ab4 ~@4", X: "db5 c5 bb4 ab4 ~ bb4 ~ c5", Y: "~ db5 ~ c5@3 ~@2", Z: "ab4 g4 f4 eb4 ~@4",
  AA: "ab4 g4 f4 eb4 ~ f4 ~ ab4", AB: "~ bb4 ~ ab4@3 ~@2", AC: "~ db5 ~ c5@4 ~",
})).s("gm_alto_sax").gain(0.3)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A ~ B ~ C ~ D ~ E@2 F G H@2 I@2 E@2 F G J@2 I K ~@8 L@2 I K ~ M ~ M ~@2 N O P@2 Q R Q R Q R S T@2 U ~ U ~@5 E@2 F G
  H@2 I@2 E@2 F G J@2 I K ~@6 I K ~ V ~ V ~@2 N O P@2 Q R Q R Q R S T@2 U ~ U ~@5 A ~ B ~ C ~ D ~@7 W@2 ~@2 W@2 ~@4 P@2
  Q R Q R Q R S T@2 U ~ U ~@5 E@2 F G H@2 I@2 E@2 F G J@2 I K X@2 Y Z X@2 Y Z X@2 Y Z AA@2 AB AC X@2 Y AD
>`.pickRestart({
  A: "ab2@2 ab2@2 g2!2 ab2@2", B: "c3@2 c3@2 b2!2 c3@2", C: "eb3@2 eb3@2 d3!2 eb3@2", D: "ab3@2 ab3@2 g3!2 ab3@2",
  E: "[~@8 ab3@3 f3 ~@2 eb3@18]/2", F: "~@2 eb3!3 f3 ab3 ~", G: "db4@3 c4 ~@2 bb3@2 ~@2 ab3@6",
  H: "[ab3 ~@2 f3 ~@2 eb3@6 ~@2 c3 ~]/2", I: "db3@3 db3 ~@2 db3@2 ~@2 c3@2 ~@2 ab2@2",
  J: "[ab3 ~@2 f3 ~@2 c3@6 ~@2 c3 ~]/2", K: "db3@3 db3 ~@2 db3@2 ~@2 c3@2 ~@4",
  L: "[~@8 ab3@3 f3 ~@2 eb3@10 ~@4 c3@2 ~@2]/2", M: "~@6 eb3 ~", N: "c3", O: "db3", P: "[eb3@12 ~ db3!3]/2",
  Q: "ab2 ~@7", R: "~@5 db3!3", S: "db3@3 ~", T: "[eb3@3 eb3 ~@2 c3@2 ~@2 db3@2 ~@2 eb3@10 ~@8]/2", U: "~@2 eb4 ~@5",
  V: "~@6 eb4 ~", W: "ab2/2", X: "db3 c3 bb2 ab2 ~@4", Y: "db3 c3 bb2 ab2 ~ bb2 ~ c3", Z: "~ db3 ~ c3@3 ~@2",
  AA: "ab3 g3 f3 eb3 ~@4", AB: "ab3 g3 f3 eb3 ~ f3 ~ ab3", AC: "~ bb3 ~ ab3@3 ~@2", AD: "~ db3 ~ c3@4 ~",
})).s("gm_baritone_sax").gain(0.3)

// other · trumpet · "Bb Trumpet"
const trumpet = note(`<
  A ~ B ~ C ~ D ~ E@2 F G H@2 I@2 E@2 F G J@2 I K ~@8 L@2 I K ~ M ~ M ~@2 N O P@2 Q R Q R Q R S T@2 U ~ U ~@5 E@2 F G
  H@2 I@2 E@2 F G J@2 I K ~@6 I K ~ M ~ M ~@2 N O P@2 Q R Q R Q R S T@2 U ~ U ~@5 A ~ B ~ C ~ D ~@7 V@2 ~@2 V@2 ~@4 P@2
  Q R Q R Q R S T@2 U ~ U ~@5 E@2 F G H@2 I@2 E@2 F G J@2 I K W@2 X Y W@2 X Y W@2 X Y Z@2 AA AB W@2 X AC
>`.pickRestart({
  A: "ab4@2 ab4@2 g4!2 ab4@2", B: "c5@2 c5@2 b4!2 c5@2", C: "eb5@2 eb5@2 d5!2 eb5@2", D: "ab5@2 ab5@2 g5!2 ab5@2",
  E: "[~@8 ab4@3 f4 ~@2 eb4@18]/2", F: "~@2 eb4!3 f4 ab4 ~", G: "db5@3 c5 ~@2 bb4@2 ~@2 ab4@6",
  H: "[ab4 ~@2 f4 ~@2 eb4@6 ~@2 c5 ~]/2", I: "db5@3 db5 ~@2 db5@2 ~@2 c5@2 ~@2 ab4@2",
  J: "[ab4 ~@2 f4 ~@2 c5@6 ~@2 c5 ~]/2", K: "db5@3 db5 ~@2 db5@2 ~@2 c5@2 ~@4",
  L: "[~@8 ab4@3 f4 ~@2 eb4@10 ~@4 c5@2 ~@2]/2", M: "~@6 eb5 ~", N: "c5", O: "db5", P: "[eb5@12 ~ db5!3]/2",
  Q: "ab4 ~@7", R: "~@5 db5!3", S: "db5@3 ~", T: "[eb5@3 eb5 ~@2 c5@2 ~@2 db5@2 ~@2 eb5@10 ~@8]/2", U: "~@2 eb5 ~@5",
  V: "ab4/2", W: "db5 c5 bb4 ab4 ~@4", X: "db5 c5 bb4 ab4 ~ bb4 ~ c5", Y: "~ db5 ~ c5@3 ~@2", Z: "ab5 g5 f5 eb5 ~@4",
  AA: "ab5 g5 f5 eb5 ~ f5 ~ ab5", AB: "~ bb5 ~ ab5@3 ~@2", AC: "~ db5 ~ c5@4 ~",
})).s("gm_trumpet").gain(0.3)

stack(alto_sax, baritone_sax, trumpet)

More by Reel Big Fish