Strudelify

La bikina

El Churro Maiz

KeyG majorTempo166 bpm
0:00/0:00
// La bikina — El Churro Maiz
// 166 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/2164631; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 140 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(166/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.

// other · viola
const viola = note(`<
  A ~ B@6 C D E F G H I J K ~ D@2 B@2 D@2 C ~ L M N ~ I@2 O P Q R S@2 T U V@2 W X Y Z AA AB AC AD K O@2 AE AF AG AH ~@2
  K O@2 AE D AI O ~ B@6 C D E F G H I J K ~ D@2 B@2 D@2 C ~ L M N ~ I@2 O P Q R S@2 T U V@2 W X Y Z AA AB AC AD K O@2 AE
  AF AG AH ~@2 K O@2 AE D AI O AJ AK AL AH AJ AK AL AM AN
>`.pickRestart({
  A: "~@5 d4@5 ~ d4@5", B: "~@5 b3@5 ~ b3@5", C: "~@5 f4@5 ~ f4@5", D: "~@5 g4@5 ~ g4@5", E: "e4@5 e4@5 ~ d#4@2 e4@3",
  F: "f#4@8 e4@3 f#4@5", G: "g4@8 a4@5 b4@3", H: "c5@5 ~@11", I: "b4@3 a4@2 g4@3 b4@3 a4@2 g4@3",
  J: "a4@3 g4@2 f#4@3 a4@3 g4@2 f#4@3", K: "g4", L: "g4@5 f#4@5 ~ e4@5", M: "f#4@5 e4@5 ~ f#4@5", N: "g4@5 e4@11",
  O: "a4", P: "~@5 d5@5 ~ d5@5", Q: "c5@5 b4@8 d5@3", R: "c5@5 b4@5 ~ a4@2 g4@3", S: "[b4@5 a4@5 ~ c5@16 b4@5]/2",
  T: "a4@5 g4@5 ~ b4@5", U: "a4@5 g4@5 ~ a4@2 g4@3", V: "f4", W: "~@11 e4@5", X: "d#4", Y: "d4", Z: "c4@5 ~@11",
  AA: "d5@3 c5@2 b4@3 d5@3 c5@2 b4@3", AB: "c5@3 b4@2 a4@3 c5@3 b4@2 a4@3", AC: "g4@5 b4@5 ~ d5@5", AD: "g4@5 ~@11",
  AE: "a#4", AF: "a#4@11 a#4@5", AG: "c5@5 a#4@5 ~ c5@5", AH: "d5@5 ~@11", AI: "g4@5 f#4@5 ~ g4@5",
  AJ: "d5@5 d4@3 d5@3 ~@5", AK: "~@3 d#5@2 d5@3 c#5@3 d5@2 d#5@3", AL: "d5@5 d4@3 d5@3 ~@2 d4@3", AM: "d5@5 ~@6 d5@5",
  AN: "g5@5 ~@11",
})).s("gm_viola").gain(0.3)

// chords · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A B C D E@2 F G H ~ I J K L K M N O P@2 Q@2 P@2 Q K R J K@2 S T M U A@2 Q@2 A@2 Q P V W X L K Y K Z AA AB Y AC R AB Z
  AD AE AA AB Y AC AF AG AH B C D E@2 F G H ~ I J K L K M N O P@2 Q@2 P@2 Q K R J K@2 S T M U A@2 Q@2 A@2 Q P V W X L K
  Y K Z AA AB Y AC R AB Z AD AE AA AB Y AC AF AG AH A@2 AI AJ AK AL AM AN AO
>`.pickRestart({
  A: "~@5 g3@5 ~ g3@5", B: "~@5 d4@5 ~ g4@5", C: "c5@5 b4@8 d5@3", D: "c5@5 b4@3 a4@5 g4@3",
  E: "[b4@5 a4@5 ~ c5@16 b4@5]/2", F: "a4@5 g4@8 b4@3", G: "a4@5 g4@3 a4@5 g4@3", H: "f4",
  I: "~@5 [g3,e4]@5 ~ [g3,e4]@5", J: "~@5 [a3,b3]@5 ~ [a3,b3]@5", K: "~@5 [b3,g4]@5 ~ [b3,g4]@5", L: "a3@5 ~@11",
  M: "~@5 [a3,d4]@5 ~ [a3,d4]@5", N: "g3@5 b3@5 ~ d4@5", O: "g3@5 ~@11", P: "~@5 b3@5 ~ b3@5", Q: "~@5 a3@5 ~ a3@5",
  R: "~@5 [g3,c4]@5 ~ [g3,c4]@5", S: "a3", T: "e3", U: "~@5 f#4@5 ~ f#4@5", V: "c4", W: "b3", X: "e4",
  Y: "~@5 [f#3,d4]@5 ~ [f#3,d4]@5", Z: "d4@5 ~@11", AA: "~@5 [g3,d#4]@5 ~ [g3,d#4]@5", AB: "~@5 [a3,c4]@5 ~ [a3,c4]@5",
  AC: "~@5 [a#3,d4]@5 ~ [a#3,d4]@5", AD: "d4@3 c4@2 a#3@3 c4@3 a#3@2 a3@3", AE: "a#3@3 a3@2 g3@3 a3@3 g3@2 f#3@3",
  AF: "~@5 [c#4,e4]@5 ~ [c#4,e4]@5", AG: "~@5 e4@5 ~ e4@5", AH: "d4", AI: "~@5 [e3,c4]@5 ~ [e3,c4]@5",
  AJ: "~@5 [a3,c4]@5 ~ [a3,c5]@5", AK: "~@5 [g3,b3]@5 ~ [g3,b3]@5", AL: "~@5 a#3@5 ~ a#3@5", AM: "~@5 e3@5 ~ e3@5",
  AN: "~@5 c4@5 ~ c4@5", AO: "b3@5 ~@11",
})).s("gm_trumpet").gain(0.3)

// bass · contrabass · "Contrabajo"
const bass = note(`<
  A B C@2 D@2 E@2 F G H I E J C G C B C@2 I D K E G C H I E K L@2 G M C@2 I D E I G C N O P Q C G C B H R G C H R S ~@2
  H R G C M E G B C@2 D@2 E@2 F G H I E J C G C B C@2 I D K E G C H I E K L@2 G M C@2 I D E I G C N O P Q C G C B H R G
  C H R S ~@2 H R G C M E G C E M G I T M G U
>`.pickRestart({
  A: "g2@5 ~@11", B: "g1@5 ~@11", C: "g1", D: "f#1", E: "e1", F: "d2@3 g2@2 a2@3 b2@3 d3@2 g2@3", G: "d2", H: "c2",
  I: "b1", J: "e1@5 ~@11", K: "e2", L: "g2@3 f#2@2 e2@3 g2@3 f#2@2 e2@3", M: "a1", N: "e2@5 f#2@5 ~ g2@5",
  O: "f#2@5 e2@5 ~ f#2@5", P: "g2@5 a2@5 ~ b2@5", Q: "c3@5 ~@11", R: "f1", S: "a#1@5 ~@11", T: "a#1",
  U: "g2@5 g1@5 ~@6",
})).s("gm_contrabass").gain(0.3)

stack(viola, trumpet, bass)