Strudelify

seven nation army cover

james Baroni-harrison

KeyG minorTempo132 bpm
0:00/0:00
// seven nation army cover — james Baroni-harrison
// 132 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3181446; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 60 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/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 · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@4 A B ~@5 C D E F@2 G@3 ~ H@3 I J@2 K L K M ~@4 N O P@2 ~@2 Q R Q R S T U V W@4 X ~@3 Y Z K M
>`.pickRestart({
  A: "d5@9 d5@3 f5@4 d5@4 c5@4", B: "bb4 a4", C: "~@5 g5!3", D: "bb5 g5 g5@2 ~@4", E: "~@4 g5 f5 g5@2",
  F: "[g5@2 g5 f5 g5 g5@2 f5@3 ~@4 g5!2]/2", G: "[d6!2 c6!2 bb5 a5@2 g5@2 g5!3 gb5 gb5@2 g5@3 ~@6]/3",
  H: "[g5 f5 g5@2 g5 g5@2 g5@2 g5!2 d5 gb5 gb5@2 g5@3 ~@6]/3", I: "~@6 g4!2", J: "[g4!5 bb4@2 g4@3 g4@2 bb4 g4!3]/2",
  K: "g5@9 g5@3 bb5@4 g5@4 f5@4", L: "eb5 d5", M: "eb5 f5 eb5 d5@3", N: "g4!4", O: "a4!4", P: "d4/2", Q: "~@6 gb5!2",
  R: "g5 ~@3", S: "g5@2 bb5 a5@5", T: "f5 ab5 g5@3 eb5 d5 db5", U: "c5", V: "~@6 g5!2",
  W: "[d6!2 c6!2 bb5 a5@2 g5@2 g5!3 gb5 gb5@2 g5@15 ~@2]/4", X: "f5 ~@3", Y: "g5@9 g5@3 bb5@4 g5@4 g5@4",
  Z: "f5 gb5 f5 eb5@3",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note(`<
  ~@4 A B ~ C D E F@2 D G H@2 I@3 ~ J@3 ~@3 A B A K ~@10 L M L M N O P Q R@4 S ~@3 T U A K
>`.pickRestart({
  A: "g4@9 g4@3 bb4@4 g4@4 f4@4", B: "eb4 d4", C: "~@5 g4!3", D: "bb4 g4 g4@2 ~@4", E: "~@3 g4 g4@2 g4 f4",
  F: "[g4!3 f4 g4 g4@2 g4@3 ~@3 g4!3]/2", G: "~@4 g4 f4 g4@2", H: "[g4@2 g4 f4 g4 g4@2 f4@3 ~@4 g4!2]/2",
  I: "[d5!2 c5!2 bb4 a4@2 g4@2 g4!3 gb4 gb4@2 g4@3 ~@6]/3", J: "[g4 f4 g4@2 g4 g4@2 g4@2 g4!2 d4 gb4 gb4@2 g4@3 ~@6]/3",
  K: "eb4 f4 eb4 d4@3", L: "db5!2 d5@2 ~@4", M: "~@6 d5@3 d5@3 f5@4 eb5@4 f5@4", N: "d5@2 f5 e5@5",
  O: "c5 eb5 d5@3 bb4 a4 ab4", P: "g4", Q: "~@6 g4!2", R: "[d5!2 c5!2 bb4 a4@2 g4@2 g4!3 gb4 gb4@2 g4@15 ~@2]/4",
  S: "d5 ~@3", T: "g4@9 g4@3 bb4@4 g4@4 g4@4", U: "f4 gb4 f4 eb4@3",
})).s("gm_trumpet").gain(0.4)

// other · trombone
const trombone = note(`<
  ~@2 A B C D C E ~@7 F G H@2 ~@5 I J C D C E C D C E K L M N ~@2 O P O P Q R J ~@3 S T U ~ C D V W C E
>`.pickRestart({
  A: "d3@9 d3@3 f3@4 d3@4 c3@4", B: "bb2 c3 bb2 a2@3", C: "g3@9 g3@3 bb3@4 g3@4 f3@4", D: "eb3 d3",
  E: "eb3 f3 eb3 d3@3", F: "~@6 g3!2", G: "d4!2 c4!2 bb3 a3@2 g3", H: "[g3!4 gb3 gb3@2 g3@3 ~@6]/2", I: "f3", J: "g3",
  K: "f3!4", L: "g3!4", M: "g2@9 g2@3 bb2@4 g2@4 f2@4", N: "eb2 d2", O: "db4!2 d4@2 ~@4",
  P: "~@6 d4@3 d4@3 f4@4 eb4@4 f4@4", Q: "d4@2 f4 e4@5", R: "c4 e4 d4@3 bb3 a3 ab3", S: "~ a3 bb3 db4 c4 bb3",
  T: "d4@2 a3@7 ~@3", U: "g3 ~@3", V: "g3@9 g3@3 bb3@4 g3@4 g3@4", W: "f3 gb3 f3 eb3@3",
})).s("gm_trombone").gain(0.4)

// bass · tuba
const bass = note(`<
  A B A C A B A C A B A B A B A B A B A B A B A B D E A B A C A B A C F G H@2 A B A B A B A B A B ~@4 A B A B A B A C
>`.pickRestart({
  A: "g2@9 g2@3 bb2@4 g2@4 f2@4", B: "eb2 d2", C: "eb2 f2 eb2 d2@3", D: "bb1!4", E: "c2!4", F: "bb1!8", G: "c2!8",
  H: "bb1/2",
})).s("gm_tuba").gain(0.4)

// drums · kick
const kick = s("bd").struct("<~@2 A@22 B@2 A@2 C A@3 C A B@2 A@3 D A@7 E ~@2 F G A@2 C A@3 C G>".pickRestart({
  A: "x!4", B: "x!8", C: "x ~@2 x ~@2 x ~ x ~@3", D: "x ~ x ~ x ~ x!2", E: "x ~@3 x ~@10 x ~@2 x ~@5", F: "~ x!5",
  G: "x!4 ~@2",
})).gain(0.45)

stack(trumpet, trumpet_2, trombone, bass, kick)