Strudelify

Be Impressive

The Griswolds

KeyC majorTempo120 bpm
0:00/0:00
// Be Impressive — The Griswolds
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/608011; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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 · marimba
const marimba = note("<A@2 B@2 ~@8 C D E F@8 G ~@2 H I J@2 K@2 J@2 K@2 C D E F@8 G L@8 ~@17>".pickRestart({
  A: "~@2 [e4,g4,c5]@3 [d4,e4,g4] ~@2 [e4,g4,c5]@3 [e4,g4,c5]@3 [g4,a4,d5]@2, c3 ~", // C Em7 C Gsus2
  B: "~@2 [e4,g4,c5]@3 [d4,e4,g4] ~@2 [e4,g4,c5]@3 [e4,g4,c5]@3 [d4,e4,g4]@2, c3 ~", // C Em7 C Em7
  C: "[f4,c5]@3 [f4,c5]@3 [f4,c5]@4 [f4,c5]@3 [f4,b4]@3", D: "[f4,a4]@3 [f4,a4]@3 [f4,a4]@4 [f4,a4]@3 [f4,c5]@3",
  E: "[g4,b4]@3 [g4,b4]@3 [g4,b4]@4 [g4,a4]@3 [g4,c5]@3", // G Gsus2 C5
  F: "[[g4,d5]@3 [g4,d5]@3 [g4,d5]@2 ~@7 [f4,c5]@2 [f4,c5]@2 ~@3 [f4,c5]@2 [f3,f4,c5]@3 ~@2 f3 [f4,c5] [g4,c5]@2 [g4,c5]@2 ~@3 [g4,c5]@2 [a3,g4,c5]@3 ~@2 a3 [g4,c5] [d4,b4]@2 [d4,b4]@2 ~@3 [d4,b4]@2 [g3,d4,b4]@3 ~@2 g3 [d4,b4] [d4,b4]@2 [d4,b4]@2 ~@3 [d4,b4]@2 [g3,d4,b4]@3 ~@2 g3 [d4,b4] [f4,c5]@2 [f4,c5]@2 ~@3 [f4,c5]@2 [f3,f4,c5]@3 ~@2 f3 [f4,c5] [g4,c5]@2 [g4,c5]@2 ~@3 [g4,c5]@2 [a3,g4,c5]@3 ~@2 a3 [g4,c5] [d4,b4]@2 [d4,b4]@2 ~@3 [d4,b4]@2 [g3,d4,b4]@3 ~@2 g3 [d4,b4]!2, ~@19 f3@2 f3@3 ~@3 f3@2 ~@6 a3@2 a3@3 ~@3 a3@2 ~@6 g3@2 g3@3 ~@3 g3@2 ~@6 g3@2 g3@3 ~@3 g3@2 ~@6 f3@2 f3@3 ~@3 f3@2 ~@6 a3@2 a3@3 ~@3 a3@2 ~@6 g3@2 g3@3 ~@3 g3@2 ~@3, ~@10 [f4,c5] ~@3 [f4,c5] ~@3 [g4,c5] ~@3 [g4,c5] ~@3 [d4,b4] ~@3 [d4,b4] ~@3 [d4,b4] ~@3 [d4,b4] ~@3 [f4,c5] ~@3 [f4,c5] ~@3 [g4,c5] ~@3 [g4,c5] ~@3 [d4,b4] ~@3 [d4,b4] ~]/8", // G5 F5 C5 Am7 C5 G F5 C5 …
  G: "~ [d4,b4]@2 ~@3 [d4,b4]@2 [g3,d4,b4]@4 [g3,d4,b4]@4, ~@3 g3@2 g3@3 ~@8, ~@2 [d4,b4] ~@5", // G
  H: "~@2 g4 a4 g4@3 c5 a4@3 c5 a4@3 c5", I: "~@8 a2@2 f3 e3 d3 e3 d3 c3",
  J: "~@2 [e4,g4,c5]@3 [d4,e4,g4] ~@2 [e4,g4,c5]@3 [e4,g4,c5]@3 [g4,a4,d5]@2", // C Em7 C Gsus2
  K: "~@2 [e4,g4,c5]@3 [d4,e4,g4] ~@2 [e4,g4,c5]@3 [e4,g4,c5]@3 [d4,e4,g4]@2", // C Em7 C Em7
  L: "[[f4,c5] [f4,c5]@2 ~@3 [f4,c5]@2 [f3,f4,c5]@3 ~@2 f3 [f4,c5] [g4,c5]@2 [g4,c5]@2 ~@3 [g4,c5]@2 [a3,g4,c5]@3 ~@2 a3 [g4,c5] [d4,b4]@2 [d4,b4]@2 ~@3 [d4,b4]@2 [g3,d4,b4]@3 ~@2 g3 [d4,b4] [d4,b4]@2 [d4,b4]@2 ~@3 [d4,b4]@2 [g3,d4,b4]@3 ~@2 g3 [d4,b4] [f4,c5]@2 [f4,c5]@2 ~@3 [f4,c5]@2 [f3,f4,c5]@3 ~@2 f3 [f4,c5] [g4,c5]@2 [g4,c5]@2 ~@3 [g4,c5]@2 [a3,g4,c5]@3 ~@2 a3 [g4,c5] [d4,b4]@2 [d4,b4]@2 ~@3 [d4,b4]@2 [g3,d4,b4]@3 ~@2 g3 [d4,b4] [d4,b4]@2 [d4,b4]@2 ~@3 [d4,b4]@2 [g3,d4,b4]@4 [g3,d4,b4]@4, ~@3 f3@2 f3@3 ~@3 f3@2 ~@6 a3@2 a3@3 ~@3 a3@2 ~@6 g3@2 g3@3 ~@3 g3@2 ~@6 g3@2 g3@3 ~@3 g3@2 ~@6 f3@2 f3@3 ~@3 f3@2 ~@6 a3@2 a3@3 ~@3 a3@2 ~@6 g3@2 g3@3 ~@3 g3@2 ~@6 g3@2 g3@3 ~@8, ~@2 [f4,c5] ~@3 [f4,c5] ~@3 [g4,c5] ~@3 [g4,c5] ~@3 [d4,b4] ~@3 [d4,b4] ~@3 [d4,b4] ~@3 [d4,b4] ~@3 [f4,c5] ~@3 [f4,c5] ~@3 [g4,c5] ~@3 [g4,c5] ~@3 [d4,b4] ~@3 [d4,b4] ~@3 [d4,b4] ~@5]/8", // F5 C5 Am7 C5 G F5 C5 Am7 …
})).s("gm_marimba").gain(0.11)

// chords · marimba · soft notes
const marimba_soft = note("<~@4 A@2 B@2 A@2 B@2 ~@44 C D E F G H G H C D E F G H G H I>".pickRestart({
  A: "~@2 [e4,g4,c5]@3 [d4,e4,g4] ~@2 [e4,g4,c5]@3 [e4,g4,c5]@3 [g4,a4,d5]@2", // C Em7 C Gsus2
  B: "~@2 [e4,g4,c5]@3 [d4,e4,g4] ~@2 [e4,g4,c5]@3 [e4,g4,c5]@3 [d4,e4,g4]@2", // C Em7 C Em7
  C: "a4 b4 a4 b4 c5 d5 c5 b4 e5 d5 c5 d5 c5 b4 a4 g4", D: "a4 b4 a4 b4 c5 d5 c5 b4 e5 d5 c5 d5 e5 f5 e5 d5",
  E: "c5 d5 e5 f5 g5 a5 g5 f5 e5 f5 e5 d5 c5 b4 a4 g4", F: "a4 b4 c5 g4 a4 b4 c5 e5!2 f5 e5 d5 c5 d5 c5 b4",
  G: "g5 a5 g5 f5 g5 f5 e5 d5 c5 d5 c5 b4 a4 b4 a4 g4", H: "a4 b4 a4 g4 c5 d5 c5 b4 e5 f5 e5 d5 c5 d5 c5 b4",
  I: "a4 ~@3",
})).s("gm_marimba").gain(0.08)

// other · xylophone
const xylophone = note(`<
  A B C D A B C D A B C E@5 F G H@2 F I@3 ~@4 A B C D A B C E@5 F G H@2 F J@3 F G H@2 F I@3 K L M@2 K L M@2 K L M@2 K L
  M N@2
>`.pickRestart({
  A: "~@2 g6 a6 g6@3 e6 g6@2 e6@2 d6@2 e6@2", B: "c6 ~@7", C: "~@2 g6 a6 g6@3 c7 a6@3 c7 a6@3 c7", D: "g6 ~@7",
  E: "[g6@4 ~@11 d6@2 d6@2 e6 d6 c6 a5@2 a5@3 a5@4 d6@2 d6@2 e6 d6 c6 a5@2 a5@3 a5@4 d6@2 d6@2 e6 d6 c6 a5@2 g6@3 e6@4 d6@2 d6@2 e6 d6 c6 a5@2 a5@3 a5@4 ~]/5",
  F: "e6!4 d6@2 c6@2", G: "~@5 a5 c6 a5", H: "[e6@2 e6@2 e6@2 e6@2 d6@4 e6@3 d6@9 ~@2 a5@2 c6@2 a5@2]/2",
  I: "[~@11 d6 e6@2 e6 e6@3 d6@2 ~@7 d6 e6@2 e6 e6@3 d6@2 ~@12]/3",
  J: "[~@11 d6 e6@2 e6 e6@3 d6@2 ~@7 d6 e6@2 e6 e6@3 d6@2 ~@6 a5@2 c6@2 a5@2]/3", K: "~@2 g5 a5 c6@2 d6@2 [c6,e6]@8",
  L: "~@2 g5 a5 c6@2 d6@2 [c6,f6]@8", M: "~@2 g5 a5 c6@2 d6@2 [g5,c6]@8", N: "[~@2 g5 a5 c6@2 d6@2 [g5,c6]@24]/2",
})).s("gm_xylophone").gain(0.17)

// chords · vibraphone
const vibraphone = note(`<
  A B C@2 A B C@2 A B C@2 D E F G H I J K L M N O P Q R S A B C@2 A B C@2 D E F G H I J K L M N O H I J K L M N O T U V
  W V X V Y T U V W V X V Z ~
>`.pickRestart({
  A: "~@2 g4 a4 c5@2 d5@2 [c5,e5]@8", B: "~@2 g4 a4 c5@2 d5@2 [c5,f5]@8", C: "~@2 g4 a4 c5@2 d5@2 [g4,c5]@8",
  D: "~ f5@7, c4, ~ [a4,d5]@15", E: "~ d5@7, d4, ~ [f4,a4]@15", F: "~ b4@7, g3, ~ [d4,g4]@15", G: "a4 c5 d5 e5",
  H: "[c5,e5]@3 [c5,e5]", I: "[e5,g5]@3 [c5,e5]", J: "[b4,d5]@3 [c5,e5]", K: "[b4,d5]@3 [b4,d5]",
  L: "[a4,c5,d5]@3 [c5,e5]", M: "[e5,g5] [d5,f5] [c5,e5] [b4,d5]", N: "[d4,g4,b4,d5]@3 [g4,c5,e5]", O: "[g4,b4,d5] ~@3",
  P: "[a4,c5,f5]", Q: "[a4,c5,e5] [b4,d5,g5]", R: "[e4,g4,c5]", S: "[e4,a4,c5] [c5,e5] [b4,d5] [g4,c5]", T: "[a4,c5]",
  U: "[a4,c5]@4 ~ [b4,d5]@3", V: "[c5,e5]", W: "[c5,e5]@4 ~ [b4,d5]@3", X: "[d5,g5]@4 ~ [b4,d5]@3",
  Y: "[e5,g5]@4 ~ [c5,e5]@3", Z: "[e5,g5]",
})).s("gm_vibraphone").gain(0.11)

// other · glockenspiel
const glockenspiel = note(`<
  A B C D E F G ~ E F H@5 I J I K@2 J L@3 ~@2 C M E F G ~ E F N@2 O P@2 Q J I K@2 J R@3 J I K@2 J L@3 ~@8 E F G ~ E F G
  ~@2
>`.pickRestart({
  A: "~@2 g6 a6 g6@3 e6 g6@2 e6@2 d6@2 e6@2", B: "c6 ~@7", C: "~@2 g6 a6 g6@3 c7 a6@3 c7 a6@3 c7", D: "g6 ~@7",
  E: "c7@4 c7@2 c7 d7 ~@4 d7@2 d7 f7", F: "~@3 d7 f7@2 g7 e7 ~ d7 c7 ~ a6@2 g6 a6",
  G: "~@4 a6@2 g6 a6 ~@2 g6@2 g6@2 g6 c7",
  H: "[~@4 a6@2 g6 a6 ~@2 g6@2 g6@2 g6 c7@5 ~@11 d7@2 d7@2 e7 d7 c7 a6@2 a6@3 a6@4 d7@2 d7@2 e7 d7 c7 a6@2 a6@3 a6@4 d7@2 d7@2 e7 d7 c7 a6@2 g7@3 e7@4 d7]/5",
  I: "~@5 a6 c7 a6", J: "e7!4 d7@2 c7@2", K: "[e7@2 e7@2 e7@2 e7@2 d7@4 e7@3 d7@9 ~@2 a6@2 c7@2 a6@2]/2",
  L: "[~@11 d7 e7@2 e7 e7@3 d7@2 ~@7 d7 e7@2 e7 e7@3 d7@2 ~@12]/3", M: "g6 g7 f7 e7",
  N: "[~@4 a6@2 g6 a6 ~@2 g6@2 g6@2 g6 c7@5 ~@12]/2", O: "~@2 a7@2 a7@3 g7 a7@2 e7@2 e7@3 d7",
  P: "[e7!2 g7@2 e7@2 d7 e7@2 d7 c7@2 a6@2 c7 d7@4 e7 d7 c7 a6@2 g7@3 e7@4 d7]/2", Q: "~@6 c7 a6",
  R: "[~@11 d7 e7@2 e7 e7@3 d7@2 ~@7 d7 e7@2 e7 e7@3 d7@2 ~@6 a6@2 c7@2 a6@2]/3",
})).s("gm_glockenspiel").gain(0.44)

stack(marimba, marimba_soft, xylophone, vibraphone, glockenspiel)