Strudelify

Bachianas brasileiras No.5 W389-391

Heitor Villa-Lobos

KeyA minorTempo66 bpm
0:00/0:00
// Bachianas brasileiras No.5 W389-391 — Heitor Villa-Lobos
// 66 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (5/4 at bar 1, 3/4 at bar 6, 6/4 at bar 7, 4/4 at bar 10, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 2 "Guitarra acústica" named as a guitar, played on electric guitar clean (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1325391; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 23 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(66/4)

// 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 · electric guitar clean · "Guitarra acústica"
const electric_guitar_clean = note("<A B C D E F G H I J K L M N O P Q R S T U V W>".pickRestart({
  A: "~@5 f3 g3 a3 b3 e3 f3 g3 a3 d3 e3 f3, ~ a2 g2 e2",
  B: "g3 c4 b3 a3 ~ b3 ~ g#3 ~ f3 g3 a3 b3 e3 f3 g3, e2@2 [f2,a3] [e2,a3] a2@2 g2@2", // F A5
  C: "a3 d3 e3 f3 g3 c4 b3 a3 ~ b3 ~ g#3 ~ e3 c4 a3, e2@2 e2@2 [f2,a3] [e2,a3] a2@2", // F A5
  D: "~ a3 f4 e4 ~ c4 a4 g4 f4 e4 d4 c4 ~ e4 c4 b3, e3 a3 g#3 a3",
  E: "~ d4 e4 f4 ~ g4 f4 e4 ~ f4 e4 d4 ~ e4 d4 c4, f3 b3 g#3 b2",
  F: "~ g#3 f4 e4 ~ [a3,c4,e4]@2 [a3,c4,e4] ~ [c#4,e4]@2 [c#4,e4] ~ [c#4,e4]@2 [c#4,e4], e3 a2 a3 g3", // Am C#m
  G: "~ [a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4], e3 c#3 a2 c#3", // A
  H: "~ [c#4,e4]@2 [c#4,e4] ~ [c#4,e4]@2 [c#4,e4] ~ [d4,f#4,a4]@2 [d4,f#4,a4] ~ [f#4,a4]@2 [f#4,a4], a3!2 d3 d4", // C#m D F#m
  I: "~ [f#4,a4]@2 [f#4,a4] ~ [f#4,a4]@2 [f4,a4] ~ [a3,b3,a4]@2 [a3,b3,a4] ~ [a3,b3,a4]@2 [a3,b3,a4], c4 b3 f#3 d3", // F#m F Asus2
  J: "~ a#3 g4 d4 ~ a#3 g4 a#3 ~ a#3 g4 a#3 ~ a#3 g4 a#3, g3 f3 e3 c3",
  K: "~ a3 f4 d4 ~ a3 f4 c#4 ~ a#3 f4 e4 ~ g3 f4 d4, f3 e3 d3 a#2",
  L: "~ a#3 g4 c#4 ~ a#3 g4 a#3 ~ a3 g4 a#3 ~ g3 g4 c#4, e3 d3 c#3 a2",
  M: "~ a3 f4 d4 ~ a3 f4 d4 ~ g3 f4 d4 ~ g3 f4 b3, d3 c3 b2 g2",
  N: "~ g3 e4 c4 ~ g#3 e4 c4 ~ a3 f4 c#4 ~ a3 f4 d4, c3 b2 a2 d3",
  O: "~ a3 e4 [g2,g3,c4] ~ a3 d4 [d3,b3] ~ a3 d4 b3 ~ g#3 f4 d4, [e2,e3]@3 ~ [f2,f3]@3 ~ [e2,e3]@4 [e2,e3]@4", // C5 G E F E
  P: "~ g3 e4 c#4 ~ c#4 a4 e4 ~ c#4 a4 e4 ~ a3 g4 c#4, a2 a3 g3 e3",
  Q: "c#3 [c#3,a3] [c#3,g4] [c#3,e4] a2 [a2,a3] [a2,g4] [a2,c#4] ~ a3 a4 d4 ~ a3 g4 d4, ~@2 d3!2", // F#m C#dim C#m A A7 A
  R: "~ d3 a3 f3 ~ d3 a3 f3 ~ b2 f3 d3 ~ d3 c4 g3, c3 b2 a2 c3",
  S: "~ e3 d4 g#3 ~ e3 c4 a3 ~ d3 d4 a3 ~ c4 a4 e4, b2 a2 g2 [a2,a3]", // A
  T: "~ c4 a4 e4 ~ c4 a4 d4 ~ b3 a4 f4 ~ f3 d4 a3, g3 f3 d3 b2",
  U: "~ d3 a3 f3 ~ d3 b3 g#3 ~ d3 g#3 f3 ~ c4 a4 e4, a2 g#2 [e2,e3]!2", // E
  V: "~ b3 a4 d4 ~ c4 a4 e4 ~ d4 g#4 f4 a2 e4 d4 c4, [f2,e3] [e2,e3]!2 ~", // Fmaj7 E
  W: "b3 a3 g#3 a3 a2 c3 g3 f3 e3 d3 c3 b2 a2@4",
})).s("gm_electric_guitar_clean").gain(0.3)

stack(electric_guitar_clean)