Strudelify

FAMU Alma Mater

Lindsey B. Sarjeant

KeyG majorTempo100 bpm
0:00/0:00
// FAMU Alma Mater — Lindsey B. Sarjeant
// 100 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5687100; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 29 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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.

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<A B C B D E F E G H I J K L@2 M@2 N@2 O@2 P Q P Q P Q P A>".pickRestart({
  A: "c5!5 ~@3", B: "d4!2 ~@3 b3@3 c4 ~@6 c#4", C: "d4!2 b3@2 c4 ~@11", D: "d4!2 b3@2 c4 ~@8 a3 c4 ~",
  E: "d4 ~@3 f4@2 ~@2 e4@3 d4 ~ a3 c4 d4", F: "~@2 f4 ~ e4 d#4 ~ d4 ~@5 a3 c4 ~", G: "~@2 f4 ~ e4 d#4 ~ d4 ~@5 a4 c5 ~",
  H: "d5 ~@3 f5@2 ~@2 e5@3 d5 ~ a4 c5 d5", I: "~@2 f5 ~ e5 d#5 ~ d5 ~@5 a4 c5 ~", J: "d5 ~@3 f5@2 ~@2 e5@3 d5 ~@4",
  K: "c5@2 c5@2 c5@2 c5@2 ~ a3 d4 g4 e4 a4 c5 ~", L: "[[a4,e5]@24 ~ a3 d4 g4 e4 a4 c5 ~]/2",
  M: "[e5@2 c5 a4@20 ~@2 a3 d4 g4 e4 a4 c5 ~]/2",
  N: "[[c5,e5]@3 [d5,d#5,f5,f#5] [c5,e5,g5]@20 ~ a3 d4 g4 e4 a4 c5 ~]/2", O: "[e5@2 c5 a4@20 ~@9]/2",
  P: "c5!2 ~@4 c5!2 ~@8", Q: "c5!2 ~@4 c5!2 ~ a4 g4 f4 g4 f4 d4 c4",
})).s("gm_alto_sax").gain(0.45)

// other · alto sax · "Alto Saxophone"
const alto_sax_2 = note("<A B C B C B C B D E F G H I@2 J@2 K@2 L@2 M N M N M N M A>".pickRestart({
  A: "[c4,a4]!5 ~@3", B: "d4!2 ~@3 b3@3 c4 ~@6 c#4", C: "d4!2 b3@2 c4 ~@11", D: "d4!2 b3@2 c4 ~@8 a3 c4 ~",
  E: "f4 ~@3 a4@2 ~@2 g4@3 f4 ~ a3 c4 d4", F: "~@2 f4 ~ e4 d#4 ~ d4 ~@5 a3 c4 ~", G: "f4 ~@3 a4@2 ~@2 g4@3 f4 ~@4",
  H: "[c4,a4]@2 [c4,a4]@2 [c4,a4]@2 [c4,a4]@2 ~ a3 d4 g4 e4 a4 c5 ~", I: "[[e4,a4]@24 ~ a3 d4 g4 e4 a4 c5 ~]/2",
  J: "[e5@2 c5 a4@20 ~@2 a3 d4 g4 e4 a4 c5 ~]/2",
  K: "[[c4,e4]@3 [d4,d#4,f4,f#4] [c4,e4,g4]@20 ~ a3 d4 g4 e4 a4 c5 ~]/2", L: "[e5@2 c5 a4@20 ~@9]/2",
  M: "a4!2 ~@4 a4!2 ~@8", N: "a4!2 ~@4 a4!2 ~ a4 g4 f4 g4 f4 d4 c4",
})).s("gm_alto_sax").gain(0.45)

stack(alto_sax, alto_sax_2)