Strudelify

Huajra

Inti Illimani

KeyD minorTempo160 bpm
0:00/0:00
// Huajra — Inti Illimani
// 160 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/8 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/2393386; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 54 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/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 · acoustic guitar nylon · "Classical Guitar"
const acoustic_guitar_nylon = note(`<
  ~@4 A@2 B@2 C D ~@2 A@2 B@2 C D ~ E F G H I J K L E F G H I J K L ~ M N ~@2 O N ~@2 P Q R@2 P Q R@2 ~@2
>`.pickRestart({
  A: "[a4@2 a4 a4@2 g4 g4@3 f4@2 f4 f4@2 f4@2]/2", B: "[a4@2 a4 a4@2 g4 g4@3 f4!5 f4@2]/2", C: "a4@2 a4 a4@2 g4 g4@2",
  D: "f4", E: "~@3 a2", F: "f3 d3", G: "d3@3 d3!2 c3 d3 e3", H: "f3!2", I: "f3@2 c3 d3 f3 d3 c3 a2", J: "c3 a2",
  K: "d3@2 c3 a2@2 g2 f2@2", L: "d2", M: "d4@2 e4 f4@2 e4 d4@2", N: "c4 ~@3", O: "d4@2 e4 g4@2 f4 d4@2",
  P: "a4@2 c5 d5@2 c5 d5 c5", Q: "a4 a4@2 a4@2 c5 d5 c5", R: "[a4@2 a4 a4@2 g4 g4@4 f4@6]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// other · acoustic guitar nylon · "Classical Guitar"
const acoustic_guitar_nylon_2 = note(`<
  ~@4 A@2 B@2 C D ~@2 A@2 B@2 C D ~@2 E F G H I J ~@2 E F G H I J ~@3 K L M ~ K L M N O P@2 N O P@2 ~@2
>`.pickRestart({
  A: "[f4@2 f4 f4@2 e4 e4@3 d4@2 d4 d4@2 d4@2]/2", B: "[f4@2 f4 f4@2 e4 e4@3 d4!5 d4@2]/2", C: "f4@2 f4 f4@2 e4 e4@2",
  D: "d4", E: "a3 f3", F: "f3@3 f3!2 e3 f3 g3", G: "a3!2", H: "a3 g3", I: "f3!2", J: "f3@2 e3 d3@4 ~",
  K: "~@5 c3 d3 c3", L: "a2@4 ~ c3 d3 c3", M: "a2 f2", N: "a3@2 c4 d4@2 c4 d4 c4", O: "a3 a3@2 a3@2 c4 d4 c4",
  P: "[a3@2 a3 a3@2 g3 g3@4 f3@6]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  ~ A@2 B C D C D C E@2 B C F C G C E@2 B H@2 I@3 J A B H@2 I@3 J A B K L@2 M K L@3 N@2 L O N@2 L A@2 P
>`.pickRestart({
  A: "d2@5 a1@3", B: "d2", C: "f2@3 f2@3 e2@2", D: "d2!2", E: "d2@3 a1", F: "d2@3 d2@3 d2@2", G: "d2 d2@2 d2 d2@2 d2@2",
  H: "d2 a2", I: "f2 a2", J: "f2 e2", K: "bb2@3 bb2@3 a2@2", L: "f2@3 e2", M: "f2@6 g2 a2", N: "f2@3 g2", O: "d2@3 e2",
  P: "d2!3 ~",
})).s("gm_electric_bass_finger").gain(0.3)

stack(acoustic_guitar_nylon, acoustic_guitar_nylon_2, bass)