Strudelify

Pueblito Viejo

Jose A. Morales

KeyA majorTempo120 bpm
0:00/0:00
// Pueblito Viejo — Jose A. Morales
// 120 bpm, 3/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5931906; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 129 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.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · acoustic guitar nylon · "Guitarra clásica"
const acoustic_guitar_nylon = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W H X Y Z AA AB AC AD AE AF B C D E F G H I J K L M N O P Q R S T U V W H
  X Y Z AA AB AC AD AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB AW BC BD BE BF BG BH BI BJ BK AW
  AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB AW BC BD BE BF BG BH BI BJ BK BL BM
>`.pickRestart({
  A: "~@3 a3@2 c4@3 b3@3 a3@2 g3@3", B: "[d3,f3]@5 f3@3 e3@3 d3@2 [d3,a3,b3,f4]@3, ~@5 [d3,a3,b3,f4]@5 ~@6",
  C: "~@3 a3@2 a3@3 a3@3 [g2,g3]@2 [g2,b2,f3,a3,b3]@3, g2@5 [g2,b2,f3,b3]@5 ~@6", // G G7
  D: "[c3,e3]@5 ~@3 d3@3 c3@2 [c3,e3,g3,b3,e4]@3, ~@5 [c3,e3,g3,b3,e4]@5 ~@6", // C Cmaj7
  E: "~@3 e3@2 a3@3 g3@3 f3@2 [e3,f3,c4,e4,a4,c5]@3, f3@5 [f3,c4,e4,a4,c5]@5 ~@6", // Fmaj7
  F: "[b2,d3]@5 d3@3 c3@3 b2@2 [b2,f#3,b3,d4,f#4]@3, ~@5 [b2,f#3,b3,d4,f#4]@5 ~@6", // Bm
  G: "~@3 b2@2 [b2,c3]@3 b2@3 [e2,c3]@2 [e2,b2,d3,g#3,b3,e4]@3, e2@5 [e2,d3,g#3,b3,e4]@5 ~@6", // Cmaj7 C E7
  H: "[a2,e3]@5 [a2,a3,c4,e4]@5 ~ a2@2 [a2,e3,a3,c4,e4]@3, ~@5 e3@8 ~@3", // A5 Am
  I: "a2@3 a2@2 a2@3 a2@3 [a2,b2]@2 [a2,c3,e3,g3,c#4,e4]@3, ~@5 [e3,g3,c#4,e4]@5 ~@6", // Asus2 A7 C#dim
  J: "d3@5 ~@3 e3@3 d3@2 [d3,a3,b3,f4]@3, ~@5 [d3,a3,b3,f4]@5 ~ f3@5", // Bm7b5
  K: "~@3 a3@2 [f3,g3]@3 f3@3 [g2,e3]@2 [g2,b2,d3,f3,a3,b3]@3, g2@5 [g2,b2,a3,b3]@5 ~@6", // Fsus2 C G7 G
  L: "c3@5 ~@3 d3@3 [c3,e3]@2 [c3,e3,g3,b3,e4]@3, ~@5 [c3,e3,g3,b3,e4]@5 ~@6", // C Cmaj7
  M: "~@3 g3@2 ~@3 e3@3 [d3,f3]@2 [c3,f3,c4,e4,a4,c5]@3, f3@5 [f3,c4,e4,a4,c5]@5 ~@6", // Dm Fmaj7
  N: "b2@5 ~@3 c3@3 b2@2 [b2,f#3,b3,d4,f#4]@3, ~@5 [b2,f#3,b3,d4,f#4]@5 ~ d3@5", // Bm
  O: "~@3 f3@2 [d3,e3]@3 d3@3 [e2,c3]@2 [e2,b2,d3,g#3,b3,e4]@3, e2@5 [e2,b2,g#3,b3,e4]@5 ~@6", // Dsus2 C E7 E
  P: "a2@5 [a2,c3,e3,a3,c4,e4,f#4]@5 ~ [a2,e3]@2 [a2,e3,a3,c4,e4,f#4]@3", // F#m7b5 A5 F#m7b5
  Q: "[a2,a3]@3 a2@2 ~@3 b2@3 [a2,c3]@2 [a2,d3,e3,a3,c4,e4]@3, ~@5 [a2,e3,a3,c4,e4]@5 ~@6", // A Am
  R: "[a2,e3]@5 [a2,e3,a3,c4,e4]@5 ~ [a2,e3]@2 [a2,e3,a3,c4,e4]@3", // A5 Am A5 Am
  S: "[a2,a3]@5 [a2,e3,g3,a3,c#4,e4]@5 ~ a2@2 [a2,e3,g3,a3,c#4,e4]@3", // A A7
  T: "[d3,a3]@5 [d3,a3,d4,f4]@5 ~ d3@2 [d3,a3,d4,f4]@3", // D5 Dm
  U: "d3@5 a3@3 a3@3 [d3,b3]@2 [d3,a3,d4,f4]@3, ~@5 [d3,d4,f4]@5 ~@6", // G Dm
  V: "[e2,g#3]@5 [e2,b2,d3,g#3,b3,e4]@5 ~ e2@2 [e2,b2,d3,e3,g#3,b3,e4]@3", // E E7
  W: "[e2,f3]@5 [e2,b2,d3,g3,g#3,b3,e4]@5 ~ e2@2 [e2,b2,d3,g#3,b3,e4]@3, ~@11 f3@5", // Fmaj7 E7
  X: "a2@5 ~@3 b2@3 [a2,c3]@2 [a2,e3,a3,c4,e4]@3, ~@5 [a2,e3,a3,c4,e4]@5 ~@6", // Am
  Y: "[a2,g3]@5 [a2,e3,g3,c#4,e4]@5 ~ a2@2 [a2,e3,g3,c#4,e4]@3", // A7
  Z: "[a2,g3]@5 [a2,e3,f3,g3,c#4,e4]@5 ~ [a2,e3]@2 [a2,e3,g3,c#4,e4]@3", // A7 A5 A7
  AA: "[d3,a3]@5 [d3,d4,f4]@5 ~ d3@2 [d3,a3,d4,f4]@3, ~@5 a3@8 ~@3", // D5 Dm
  AB: "g2@5 a3@3 a3@3 [g2,g3]@2 [g2,b2,f3,a3,b3]@3, ~@5 [g2,b2,f3,b3]@5 ~@6", // G G7
  AC: "[c3,e3]@5 [c3,e3,g3,b3,e4]@5 ~ f3@2 [c3,f3,c4,e4,a4,c5]@3", // C Cmaj7 Fmaj7
  AD: "[b2,d3]@5 [b2,f#3,b3,d4,f#4]@5 ~ b2@2 [b2,f#3,b3,d4,f#4]@3, ~@5 d3@8 ~@3", // Bm
  AE: "a2@5 [a2,e3,a3,c4,e4]@5 ~ a2@2 [a2,e3,a3,c4,e4]@3, c3", // Am
  AF: "~@3 a3@2 ~@3 b3@3 [a2,a3]@2 [a2,e3,g3,a3,c4,e4]@3, a2@5 [a2,e3,a3,c4,e4]@5 ~@6", // A Am7 Am
  AG: "a2@5 [a2,e3,a3,c#4,e4]@5 ~ a2@2 [a2,e3,a3,c#4,e4]@3, c#3", // A
  AH: "~@3 f#4@2 f#4@3 f#4@3 [a2,f#4]@2 [a2,e3,a3,c#4,e4,f#4]@3, a2@5 [a2,e3,a3,c#4,e4]@5 ~@6", // D F#m7 A
  AI: "[a2,a4]@5 [a2,e3,a3,c#4,e4]@5 ~ a2@2 [a2,e3,a3,c#4,e4]@3, ~@5 a4@11", // A
  AJ: "~@3 e4@2 e4@3 e4@3 [a2,e4]@2 [a2,e3,a3,c#4,e4]@3, a2@5 [a2,e3,a3,c#4]@5 ~@6", // A5 A
  AK: "[a2,g#4]@5 [a2,e3,a3,c#4,e4]@5 ~ a2@2 [a2,e3,a3,c#4,e4]@3, ~@5 g#4@11", // Amaj7 A
  AL: "~@3 d4@2 d4@3 d4@3 [a2,d4]@2 [a2,e3,a3,c#4,d4,e4]@3, a2@5 [a2,e3,a3,c#4,e4]@5 ~@6", // D5 A
  AM: "[a2,f#4]@5 [a2,e3,a3,c#4,e4,f#4]@5 ~ a2@2 [a2,e3,a3,c#4,e4]@3", // D F#m7 A
  AN: "[a2,e4]@5 c#4@3 ~@3 a2@2 [a2,e3,a3,c#4,e4]@3, ~@5 [a2,e3,a3,e4]@5 ~@6, ~@8 c#4@5 ~@3", // A5 A A5
  AO: "[b2,b3]@5 [b2,f#3,d4,f#4]@5 ~ b2@2 [b2,f#3,b3,d4,f#4]@3, ~@5 b3@8 ~@3", // B Bm
  AP: "~@3 e4@2 e4@3 e4@3 [b2,e4]@2 [b2,f#3,b3,d4,e4,f#4]@3, b2@5 [b2,f#3,b3,d4,f#4]@5 ~@6", // E5 Bm
  AQ: "b2@5 [b2,f#3,b3,d4,f#4]@5 ~ b2@2 [b2,f#3,b3,d4,f#4]@3, g#4", // Bm
  AR: "~@3 d4@2 d4@3 d4@3 [b2,d4]@2 [b2,f#3,b3,d4,f#4]@3, b2@5 [b2,f#3,b3,f#4]@5 ~@6", // Bm B5
  AS: "e2@5 [e2,b2,d3,g#3,b3,e4]@5 ~ e2@2 [e2,b2,d3,g#3,b3,e4]@3, f#4", // E7
  AT: "~@3 c#4@2 c#4@3 c#4@3 [e2,c#4]@2 [e2,b2,d3,g#3,b3,d4,e4]@3, e2@5 [e2,b2,d3,g#3,b3,e4]@5 ~@6", // C#m E7
  AU: "[e2,e4]@5 [e2,b2,d3,g#3,b3,e4]@5 ~ e2@2 [e2,b2,d3,g#3,b3,c#4,e4]@3, ~@5 d4@8 ~@3", // E E7
  AV: "[e2,b3]@5 [g#3,a3]@3 ~@3 e2@2 [e2,b2,d3,g#3,a3,b3,e4]@3, ~@5 [e2,b2,d3,b3,e4]@5 ~@6, ~@8 g#3@5 ~@3", // E5 Amaj7 E7
  AW: "[a2,a3]@5 [a2,e3,c#4,e4]@5 ~ a2@2 [a2,e3,a3,c#4,e4]@3, ~@5 a3@8 ~@3", // A
  AX: "~@3 a3@2 a3@3 a3@3 [a2,a3]@2 [a2,e3,a3,c#4,e4]@3, a2@5 [a2,e3,c#4,e4]@5 ~@6", // A
  AY: "[a2,c#4]@5 [a2,e3,a3,e4]@5 ~ a2@2 [a2,e3,a3,c#4,e4]@3, ~@5 c#4@8 ~@3", // A A5 A
  AZ: "~@3 g#3@2 g#3@3 g#3@3 [a2,g#3]@2 [a2,e3,g#3,a3,c#4,e4]@3, a2@5 [a2,e3,a3,c#4,e4]@5 ~@6", // Amaj7 A
  BA: "[a2,b3]@5 [a2,e3,a3,c#4,e4]@5 ~ a2@2 [a2,e3,a3,c#4,e4]@3, ~@5 b3@11", // Asus2 A
  BB: "~@3 f#3@2 f#3@3 f#3@3 [a2,f#3]@2 [a2,e3,f#3,a3,c#4,e4]@3, a2@5 [a2,e3,a3,c#4,e4]@5 ~@6", // D F#m7 A
  BC: "[e2,b3]@5 [b3,c#4]@3 ~@3 a2@2 [a2,e3,g3,a3,c#4,e4]@3, ~@5 [e2,b2,d3,g#3,e4]@5 ~@6, ~@8 b3@5 ~@3", // E5 Bsus2 A7 E7
  BD: "d3@5 [d3,a3,d4,f#4]@5 ~ d3@2 [d3,a3,d4,f#4]@3, b3", // D
  BE: "~@3 f#3@2 f#3@3 f#3@3 [c3,f#3]@2 [c3,e3,f#3,g3,c4,e4]@3, c3@5 [c3,e3,g3,c4,e4]@5 ~@6", // Cdim C
  BF: "[b2,c#4]@5 [b2,f#3,d4,f#4]@5 ~ b2@2 [b2,f#3,b3,d4,f#4]@3, ~@5 b3@8 ~@3", // Bsus2 Bm
  BG: "[e2,c#4]@5 ~@6 e2@2 [e2,b2,d3,g#3,b3,e4]@3, ~@5 [e2,b2,d3,g#3,b3,e4]@5 ~@6, ~@8 a3@5 ~@3", // C#m E7
  BH: "[a2,b3]@5 [a2,e3,c#4,e4]@5 ~ a2@2 [a2,e3,a3,c#4,e4]@3, ~@5 a3@8 ~@3", // Asus2 A
  BI: "~@3 e3@2 e3@3 e3@3 [f#2,e3]@2 [f#2,c#3,e3,f#3,a#3,c#4,f#4]@3, f#2@5 [f#2,c#3,f#3,a#3,c#4,f#4]@5 ~@6", // F#7 F#
  BJ: "[b2,f#3]@5 [b2,f#3,b3,d4,f#4]@5 ~ b2@2 [b2,f#3,a3,b3,d4,f#4]@3", // B5 Bm Bm7
  BK: "[e2,g#3]@5 g#3@3 g#3@3 [e2,a3]@2 [e2,b2,d3,g#3,b3,e4]@3, ~@5 [e2,b2,d3,b3,e4]@5 ~@6", // E A5 E7
  BL: "[a2,a3]@5 [a2,e3,a3,c#4,e4]@5 ~ [e2,b2,d3,e3,g#3,b3,e4]@5", BM: "[a2,e3,a3,c#4,e4]@5 ~@11",
})).s("gm_acoustic_guitar_nylon").gain(0.3)

stack(acoustic_guitar_nylon)