Strudelify

Elena

Ayllu Sacha

KeyC majorTempo120 bpm
0:00/0:00
// Elena — Ayllu Sacha
// 120 bpm, 3/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5869361; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 169 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

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

// other · violin · "Violín"
const violin = note(`<
  ~@27 A B C D E F G H I J C K L M N@2 O P Q R S T N@2 O P Q U L M N@2 O P Q R S T N@2 O P Q U L M ~@42 A B C D E F G H
  I J C K L M N@2 O P Q R S T N@2 O P Q U L M ~@24
>`.pickRestart({
  A: "~@5 f5@5 ~ e5@5", B: "f5@5 g5@5 ~ a5@5", C: "f5", D: "d5", E: "~@5 b5@5 ~ a5@5", F: "b5@5 a5@5 ~ g5@5", G: "e5",
  H: "~@5 g5@5 ~ e5@5", I: "c6", J: "~@5 a5@5 ~ g5@5", K: "~@5 a5@5 ~ f5@5", L: "g4@5 g4@5 ~ a4@5",
  M: "b4@5 c5@5 ~ d5@5", N: "e5@11 e5@2 d5@3", O: "e5@11 a4@5", P: "b4@11 c5@5", Q: "d5@11 d5@2 c5@3", R: "d5@11 f5@5",
  S: "c5@11 b4@2 c5@3", T: "d5@5 c5@5 ~ d5@5", U: "d5@5 c5@5 ~ a4@5",
})).s("gm_violin").gain(0.3)

// bass · electric bass pick · "Bajo eléctrico"
const bass = note(`<
  ~@9 A B C D E A F G H@2 A I J@2 E D A B C K E A L G M@2 A I N O P Q R S T U C E V ~ R S T U W O X Q R S T U C E V ~ R
  S T U W O X Q A B C B E@2 Y Z AA AB J AC E@2 Y ~@9 A B C D E A F G H@2 A I J@2 E D A B C K E A L G M@2 A I N O P Q R S
  T U C E V ~ R S T U W O X Q A B C B E@2 Y Z AA AB J AC E@2 Y C AD ~@7
>`.pickRestart({
  A: "c2@5 ~@11", B: "e2@5 ~@11", C: "f2@5 ~@11", D: "e2@8 ~@3 e2@3 ~@2", E: "d2@5 ~@11", F: "c2@8 ~@3 a1@3 ~@2",
  G: "b1@5 a1@5 ~ g1@5", H: "b1@5 ~@11", I: "~@5 c2@5 ~ d2@5", J: "a1@5 ~@11", K: "f2@8 ~@3 e2@3 ~@2",
  L: "c2@8 ~@3 c2@3 ~@2", M: "g1@5 ~@6 g1@5", N: "f2", O: "f2@5 e2@5 ~ c2@5", P: "a1@5 b1@5 ~ c2@5",
  Q: "d2@5 e2@5 ~ f2@5", R: "~@5 e2@3 f2@3 g2@5", S: "~@5 c2@3 d2@3 e2@5", T: "~@11 c2@5", U: "d2@5 ~@6 e2@5",
  V: "e2@11 d2@2 e2@3", W: "f2@11 f2@2 e2@3", X: "b1@5 b1@5 ~ c2@5", Y: "g1@5 ~@11", Z: "f1@5 ~@11", AA: "e1@5 ~@11",
  AB: "~@11 f1@2 g1@3", AC: "g2@5 ~@11", AD: "g1",
})).s("gm_electric_bass_pick").gain(0.3)

// other · glockenspiel
const glockenspiel = note(`<
  A B C D E F G H ~@3 I J K L M N O P Q R K S T U V ~ I J K L M N O P Q R K S W X Y Z ~@2 AA AB AC ~ Y Z AD AE AA AF W X
  Y Z ~@2 AA AB AC ~ Y Z AD AE AA AF W X AG AH AI AH AJ@2 AK AL AM AN AO AP AJ@2 AK A B C D E F G H ~@3 I J K L M N O P
  Q R K S T U V ~ I J K L M N O P Q R K S W X Y Z ~@2 AA AB AC ~ Y Z AD AE AA AF W X AG AH AI AH AJ@2 AK AL AM AN AO AP
  AJ@2 AK AI A B C D E F G AQ
>`.pickRestart({
  A: "e7@5 g6@5 ~ c7@5", B: "d7@5 e7@5 ~ d7@5", C: "c7@5 e6@5 ~ c7@5", D: "c7@5 b6@5 ~ g6@5", E: "a6@5 c6@5 ~ a6@5",
  F: "a6@5 b6@5 ~ c7@5", G: "c7@5 d6@5 ~ a6@5", H: "[g5,d6,g6,b6]", I: "~@5 f6@5 ~ e6@5", J: "f6@5 g6@5 ~ a6@5",
  K: "f6", L: "d6", M: "~@5 b6@5 ~ a6@5", N: "b6@5 a6@5 ~ g6@5", O: "e6", P: "~@5 g6@5 ~ e6@5", Q: "c7",
  R: "~@5 a6@5 ~ g6@5", S: "~@5 a6@5 ~ f6@5", T: "d7", U: "~@5 c7@5 ~ d7@5", V: "c7@11 ~@5", W: "g6@5 g6@5 ~ a6@5",
  X: "b6@5 c7@5 ~ d7@5", Y: "~@5 e7@3 f7@3 g7@5", Z: "~@5 c7@3 d7@3 e7@5", AA: "d7@11 d7@2 c7@3", AB: "d7@11 f7@5",
  AC: "c7@11 b6@2 c7@3", AD: "~@11 c7@5", AE: "d7@5 ~@6 e7@5", AF: "d7@5 c7@5 ~ a6@5", AG: "c7@5 ~@11", AH: "e7@5 ~@11",
  AI: "f7@5 ~@11", AJ: "d7@5 ~@11", AK: "g6@5 ~@11", AL: "f6@5 ~@11", AM: "e6@5 ~@11", AN: "~@11 f6@2 g6@3",
  AO: "a6@5 ~@11", AP: "g7@5 ~@11", AQ: "b6",
})).s("gm_glockenspiel").gain(0.3)

// chords · piano
const piano = note(`<
  ~@8 A B C D@2 E F G H I J K L M N O P B C D@2 E F G H I J K L Q R S T U V K W X Y Z AA V@2 K L AB AC S T U V K W X Y Z
  AA V@2 K L AB AC S T AD AE AF AG AH AI AJ AK AL@2 AM AN AO AP AQ ~@8 A B C D@2 E F G H I J K L M N O P B C D@2 E F G H
  I J K L Q R S T U V K W X Y Z AA V@2 K L AB AC S T AD AE AF AG AH AI AJ AK AL@2 AM AN AO AP AQ AR AS AT AU AV AW AX AY
  AZ
>`.pickRestart({
  A: "~@5 g4@5 ~ f4@5", B: "[c2,c3]@5 [c3,e3,g3]@5 ~ [c3,e3,g3,g4]@5, e4@5 ~@3",
  C: "[e2,e3]@5 [e3,g3,b3]@5 ~ [e3,g3,b3,b4]@5, d5@5 ~@3", // E Em
  D: "[f3@5 [a3,c4]@5 ~ [a3,c4]@5 e3@5 [a3,c4,a4]@5 ~ [a3,c4,g4]@5, c5@5 ~@3]/2", // Am Am7
  E: "d3@5 [f3,a3]@5 ~ [f3,a3,a4]@5, f4@5 ~@3", F: "d3@5 [f3,a3]@5 ~ [f3,a3,d5]@5, e5@5 ~@3",
  G: "[g2,g3]@5 [g3,b3,d4]@5 ~ [g3,b3,d4,a4]@5, c5@5 ~@3", H: "[f2,f3,b4]@5 [g3,b3,d4,c5]@5 ~ [b3,d4,d5]@5",
  I: "[e2,e3]@5 [e3,g3,b3]@5 ~ [e3,g3,b3,b4]@5, b4@5 ~@3", J: "[e2,e3]@5 [e3,g3,b3]@5 ~ [e3,g3,b3,g5]@5, g5@5 ~@3",
  K: "[a2,a3]@5 [a3,c4,e4]@5 ~ [a3,c4,e4,c5]@5, g5@5 ~@3", L: "[g2,g3]@5 [g3,b3,d4]@5 ~ [g3,b3,d4,e5]@5, d5@5 ~@3",
  M: "d3@5 [f3,a3]@5 ~ [f3,a3,a4]@5, a4@5 ~@3", N: "d3@5 [f3,a3]@5 ~ [f3,a3,e5]@5, f5@5 ~@3",
  O: "[g2,g3]@5 [g3,b3,d4]@5 ~ [g3,b3,d4,d5]@5, e5@5 ~@3", P: "[f2,f3]@5 [g3,b3,d4]@5 ~ [b3,d4,f5]@5, e5@5 ~@3",
  Q: "d3@5 [f3,a3]@5 ~ f5@2 e5@3, f5@10 ~ [f3,a3]@5", R: "[d3,f5]@5 [f3,a3,e5]@5 ~ [f3,a3,c5]@5",
  S: "[g2,g3,g4,b4]@5 [g3,b3,d4,g4,b4]@5 ~ [g3,b3,d4,g4,c5]@5", // G
  T: "[f2,f3,g4,d5]@5 [g3,b3,d4,c5,e5]@5 ~ [b3,d4,d5,f5]@5", // G7 Cmaj7 Bdim
  U: "[c2,c3]@5 [c3,e3,g3]@5 ~ [e5,g5]@2 [d5,f5]@3, [e5,g5]@10 ~ [c3,e3,g3]@5", // C Em Dm Em C
  V: "[e2,e3]@5 [e3,g3,b3]@5 ~ [e5,g5]@2 [d5,f5]@3, [e5,g5]@10 ~ [e3,g3,b3]@5", W: "g3@5 a3@5 ~ [c4,e5]@5, d5@5 ~@3",
  X: "[d2,d3]@5 [d3,f3,a3]@5 ~ f5@2 e5@3, f5@10 ~ [d3,f3,a3,d4]@5", // D Dm
  Y: "[d2,d3]@5 [d3,f3,a3]@5 ~ [f3,a3,d4,a5]@5, f5@5 ~@3", // D Dm
  Z: "[g2,g3]@5 [g3,b3,d4]@5 ~ d5@2 e5@3, e5@10 ~ [g3,b3,d4]@5", AA: "[f2,f3,f5]@5 [g3,b3,d4,e5]@5 ~ [b3,d4,f5]@5",
  AB: "[d2,d3,a4,d5,f5]@5 [d3,f3,a3]@5 ~ f5@2 e5@3, ~@11 [d3,f3,a3,d4]@5", // Dm
  AC: "[d2,d3,f5]@5 [d3,f3,a3,e5]@5 ~ [d3,f3,a3,d4,c5]@5", // Dm Dm7
  AD: "g5@3 g4@2 a4@3 b4@3 a4@2 g4@3, [c2,c3]@5 [c3,e3,g3]@5 ~ [c3,e3,g3]@5", // C
  AE: "d5@3 c5@2 b4@3 a4@3 g4@2 f4@3, [e2,e3]@5 [e3,g3,b3]@5 ~ [e3,g3,b3]@5", // E Em
  AF: "[f3,a4]@5 a4@3 b4@3 [a3,c4,c5]@5, ~@5 [a3,c4]@5 ~@6", // F Am
  AG: "~@3 a4@2 b4@3 c5@3 b4@2 a4@3, e3@5 [a3,c4]@5 ~ [a3,c4]@5", // Am
  AH: "f5@3 e5@2 d5@3 c5@3 b4@2 c5@3, d3@5 [f3,a3]@5 ~ [f3,a3]@5", // F
  AI: "f5@3 e5@2 d5@3 c5@3 b4@2 a4@3, d3@5 [f3,a3]@5 ~ [f3,a3]@5", // F
  AJ: "b4@3 a4@2 g4@3 a4@3 b4@2 c5@3, [g2,g3]@5 [g3,b3,d4]@5 ~ [g3,b3,d4]@5", // G
  AK: "d5@3 e5@2 d5@3 c5@3 b4@2 a4@3, [f2,f3]@5 [g3,b3,d4]@5 ~ [b3,d4]@5", // F G Bm
  AL: "g5@3 f5@2 e5@3 d5@3 c5@2 b4@3, [e2,e3]@5 [e3,g3,b3]@5 ~ [e3,g3,b3]@5", // E Em
  AM: "c5@3 b4@2 a4@3 b4@3 c5@2 d5@3, [a2,a3]@5 [a3,c4,e4]@5 ~ [a3,c4,e4]@5", // A Am
  AN: "e5@3 f5@2 e5@3 d5@3 c5@2 b4@3, [g2,g3]@5 [g3,b3,d4]@5 ~ [g3,b3,d4]@5", // G
  AO: "a5@3 g5@2 f5@3 e5@3 d5@2 a5@3, d3@5 [f3,a3]@5 ~ [f3,a3]@5", // F
  AP: "a5@3 g5@2 f5@3 e5@3 d5@2 c5@3, d3@5 [f3,a3]@5 ~ [f3,a3]@5", // F
  AQ: "d5@3 c5@2 b4@3 c5@3 d5@2 e5@3, [g2,g3]@5 [g3,b3,d4]@5 ~ [g3,b3,d4]@5", // G
  AR: "[f2,f3,d5]@5 [g3,b3,d4]@5 ~ [b3,d4]@5", AS: "c3@3 g3@2 c4@3 e4@3 c4@5", AT: "g2@3 d3@2 g3@5 ~ g#3@5",
  AU: "a2@3 e3@2 g3@3 c4@3 a3@5", AV: "e2@3 b2@2 e3@3 g3@3 e3@5", AW: "f2@3 c3@2 f3@3 a3@3 f3@5",
  AX: "d2@3 a2@2 d3@3 f3@3 f3@2 d2@3", AY: "g2@3 d3@2 g3@3 a3@3 g3@2 d3@3", AZ: "g2@15 ~",
})).s("gm_piano").gain(0.3)

// chords · acoustic guitar nylon · "Guitarra clásica"
const acoustic_guitar_nylon = note("<A B C D E F G H ~@80 A B C D E F G H ~@73>".pickRestart({
  A: "[c3,g3,c4,e4]@5 g3@5 ~ c4@5", B: "[b2,d3,g3,d4]@5 e4@5 ~ d4@5", C: "[a2,e3,a3,c4]@5 e3@5 ~ c4@5",
  D: "[g2,e3,g3,c4]@5 b3@5 ~ g3@5", E: "[f2,a3]@5 c3@5 ~ a3@5", F: "[f2,c3,f3,a3]@5 b3@5 ~ c4@5",
  G: "[g2,d3,g3,c4]@5 d3@5 ~ a3@5", H: "[g2,d3,g3,b3]",
})).s("gm_acoustic_guitar_nylon").gain(0.3)

stack(violin, bass, glockenspiel, piano, acoustic_guitar_nylon)