Strudelify

Viva Cristo Rey

Jésed

KeyG majorTempo100 bpm
0:00/0:00
// Viva Cristo Rey — Jésed
// 100 bpm, 6/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 6 "Alto Saxophone" alto sax (copy of ch 4 "Tenor Saxophone" tenor sax)
// note: Transcription provider: pdmx. https://musescore.com/score/6321237; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 121 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/3)

// 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.

// chords · acoustic guitar steel · "Acoustic Guitar (Tablature)"
const acoustic_guitar_steel = note(`<
  A B C B A B C B A B C B A B C B D E C B D E C B D E C B D E C B C B C F A C A C A B C B A B G B D E C B D E C B D E C
  B D E C B C B C F A C A C A B C B A B G B D E C B D E C B D E C B D E C B C B C F D E C B D E C B C B C F H I C F D J
  D J K
>`.pickRestart({
  A: "[g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]!4 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]!4", // G
  B: "[d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!4 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!4", // D
  C: "[c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]!4 [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]!4", // C
  D: "[g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]!4 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!4", // G D
  E: "[e2,b2,e3,g3,b3,e4]@2 [e2,b2,e3,g3,b3,e4]!4 [e2,b2,e3,g3,b3,e4]@2 [e2,b2,e3,g3,b3,e4]!4", // Em
  F: "[d3,a3,d4,f#4] ~@9 [d3,a3,d4,f#4]@2", G: "[c3,e3,g3,c4,e4]!2 ~@4",
  H: "[g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]!4 [f#2,a2,d3,a3,d4,f#4]@2 [f#2,a2,d3,a3,d4,f#4]!4", // G D
  I: "[e2,b2,e3,g3,b3,e4]@2 [e2,b2,e3,g3,b3,e4]!4 [b2,f#3,b3,d4,f#4]@2 [b2,f#3,b3,d4,f#4]!4", // Em Bm
  J: "[c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]!4 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!4", K: "[g2,b2,d3,g3,d4,g4]",
})).s("gm_acoustic_guitar_steel").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@3 A B C D E F ~@7 G H I J G H I K G L ~@4 M N M N M O ~ P@4 ~@7 G H I K G H I K G L ~@4 M N M N M O ~ P@2 Q R ~@7 G
  H I J G H I K G L ~@4 M N M N M O ~@6 S N S N M O T U V W X@4 Y
>`.pickRestart({
  A: "~ d3", B: "d4 ~ d4 c4 d4 c4 d4@4 g3 ~", C: "e4!2 d4@6 ~@2 c3 d3", D: "e3 ~ e3 d3 e3 d3 e3@2 f#3 ~ g3 ~",
  E: "d4@6 c4@2 b3@2 a3 ~", F: "g3@2 ~", G: "g3 a3", H: "b3@6 b3@2 g3@2 a3 ~", I: "c4@8 c4 ~ e4 ~", J: "d4@2 ~",
  K: "d4", L: "b3", M: "e3@8 d3@2 e3 ~", N: "f#3@2 ~", O: "f#3 ~@5", P: "[e3 d3 e3 d3 e3 d3 e3 d3 e3 d3 e3 d3@5 ~@8]/2",
  Q: "e3 d3 e3 d3 e3 d3 e3 d3 e3 d3 e3 d3", R: "d3 ~@2", S: "e3 d3 e3 d3 e3 d3 e3@2 d3@2 g3 ~", T: "d4 a3", U: "g3 b3",
  V: "c4@8 d3@2 e3 ~", W: "f#3 ~@11", X: "d4/2", Y: "g3 ~@11",
})).s("gm_tenor_sax").gain(0.45)

// other · accordion
const accordion = note(`<
  ~@3 A B C D E F ~@11 G H I J ~@4 K@2 ~@2 L M L N O P O Q@2 ~@11 G H I J ~@4 K@2 ~@2 L M R S O P O T U ~@11 G H I J ~@4
  K@2 ~@2 L M L N O ~@3 O ~@3 V M L N O W X Y Z@4 AA
>`.pickRestart({
  A: "~ d5", B: "d6 ~ d6 c6 d6 c6 d6@4 b5 ~", C: "e6!2 d6@6 ~@2 c5 d5", D: "e5 ~ e5 d5 e5 d5 e5@2 d5 ~ e6 ~",
  E: "d6@6 c6@2 b5@2 a5 ~", F: "g5@2 ~", G: "g5 a5", H: "b5@6 b5@2 g5@2 a5 ~", I: "c6@8 c6 ~ e6 ~", J: "d6",
  K: "[[b4,d5]@5 ~]/2", L: "e5@8 d5@2 g5 ~", M: "f#5@2 ~", N: "f#5 ~@5", O: "d5 ~ d5 c5 d5@8", P: "~@10 d4 ~",
  Q: "[e5 d5 e5 d5 e5 d5 e5 d5 e5 d5 e5 d5@5 ~@8]/2", R: "[e5,g5]@8 [d5,f#5]@2 [g5,b5] ~", S: "[f#5,a5] ~@5",
  T: "e5 d5 e5 d5 e5 d5 e5 d5 e5 d5 e5 d5", U: "d5 ~@2", V: "e5 d5 e5 d5 e5 d5 e5@2 d5@2 g5 ~",
  W: "g4@2 ~@2 f#4@2 g4@3 ~@3 a4@4 b4@4 g4@2 ~@2", X: "c5@8 d5@2 g5 ~", Y: "f#5 ~@11", Z: "[d5 ~ d5 c5 d5@20]/2",
  AA: "g5 ~@11",
})).s("gm_accordion").gain(0.45)

stack(acoustic_guitar_steel, tenor_sax, accordion)