Strudelify
KeyE majorTempo180 bpm
0:00/0:00
// Valsa — Joao Gilberto
// 180 bpm, 3/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5851200; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 219 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · acoustic guitar nylon · "Classical Guitar"
const acoustic_guitar_nylon = note(`<
  A B C D E F G H I J K L M N O P Q B R H S T U V W T K X Y B A B C D E F G H I J K L M N O P Q B R H S T U V W T K X Y
  B C Z B Z N P S AA N AB AC R AD P Q AA O AB E AE AF AA O AG AH AI AJ AG AK AI AL AM Y B Z AN O K E AE G H I J K AO M N
  O P Q B R H S T U V W T K X Y B C B C D E F G H I J K L M N O P Q B R H S T U V W T K X Y B C Z B Z N P S AA N AB AC R
  AD P Q AA O AB E AE AF AA O AG AH AI AJ AG AK AI AL AM Y B Z AN O K E AE G H I J K AO M N O P Q B R H S T U V W T K X
  Y B C
>`.pickRestart({
  A: "b2@5 [a3,d#4,g4]@11", B: "e2@5 [b3,d#4,g#4]@11", C: "e2@5 [g#3,c#4,f#4]@11", D: "f#2@5 [f#3,a3,c#4,g#4]@11",
  E: "b2@5 [d#3,a3,c#4]@11", F: "b2@5 [a3,d4,f#4]@11", G: "e2@5 [d3,g#3,c4]@11", H: "a2@5 [g#3,c#4]@11",
  I: "g#2@5 [f#3,c4]@11", J: "g2@5 [f#3,b3]@11", K: "f#2@5 [e3,a#3,d#4]@11", L: "f#2@5 [f#3,a3,e4]@11",
  M: "b2@5 [f#3,a3,d#4]@11", N: "g#2@5 [f3,b3,d#4]@11", O: "c#3@5 [f3,b3,d#4]@11", P: "a2@5 [g3,c4,e4]@11",
  Q: "d3@5 [f#3,c4,e4]@11", R: "e2@5 [g#3,d4,f#4]@11", S: "a2@5 [f#3,c4,e4]@11", T: "g2@5 [f#3,b3,d4]@11",
  U: "e2@5 [g#3,d4,f4]@11", V: "a2@5 [g#3,c#4,e4]@11", W: "g#2@5 [f#3,c4,d#4]@11", X: "f2@5 [e3,a3,d4]@11",
  Y: "f2@5 [e3,a3,c4]@11", Z: "a2@5 [g3,c#4,f#4]@11", AA: "g#2@5 [f#3,b3,d#4]@11", AB: "f#2@5 [e3,a3,c#4]@11",
  AC: "f#2@5 [d#3,a3,c#4]@11", AD: "a2@5 [g3,c#4,e4]@11", AE: "e2@5 [d3,g#3,c#4]@11", AF: "a2@5 [g3,b3,e4]@11",
  AG: "a#2@5 [g#3,c#4,e4]@11", AH: "d#3@5 [g3,c#4,d#4]@11", AI: "g#2@5 [f#3,b3,d4]@11", AJ: "c#3@5 [f3,b3,c#4]@11",
  AK: "a2@5 [g3,c#4,d#4]@11", AL: "g2@5 [f3,b3,c#4]@11", AM: "f#2@5 [e3,a3,c4]@11", AN: "g#2@5 [f#3,c4,f4]@11",
  AO: "f#2@5 [f#3,a3,c#4,a4]@11", // F#m
})).s("gm_acoustic_guitar_nylon").gain(0.3)

stack(acoustic_guitar_nylon)