Strudelify

Sonatina in E minor for the Soprano Ukulele

Phillip Wolke

KeyG majorTempo110 bpm
0:00/0:00
// Sonatina in E minor for the Soprano Ukulele — Phillip Wolke
// 110 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "Ukulele [Tablature]" acoustic guitar nylon (copy of ch 1 "Ukulele" acoustic guitar nylon)
// note: Transcription provider: pdmx. https://musescore.com/score/3042176; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 38 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/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 · acoustic guitar nylon · "Ukulele"
const acoustic_guitar_nylon = note(`<
  A B C D E F G H A B C D E F G H I J K I L M N O I J K P@2 Q R S I T R U V W
>`.pickRestart({
  A: "[g4,b4]@6 g4 f#4", B: "~@2 c5 d#5, d#4, ~ f#4@3", C: "~ [f#4,a4]@17 g4@3 f#4@3, d#4@3 ~", D: "[e4,g4,b4]",
  E: "[d#4,f#4,c5]@6 b4 a4", F: "b4 g4 e4 b4", G: "[d#4,f#4,a4]@6 g5 f#5", H: "[g4,b4,e5]",
  I: "~ e5!3 ~ e5!3, g4!2, e5 ~@3 e5 ~@3, ~ b4@11 ~ b4@11",
  J: "~ f#5!3 ~ f#5!3, b4!2, f#5 ~@3 f#5 ~@3, ~ d#5@11 ~ d#5@11",
  K: "~ d#5!3 ~ d#5!3, f#4!2, d#5 ~@3 d#5 ~@3, ~ b4@11 ~ b4@11",
  L: "~ a4!3 ~ b4!3, d#4!2, a4 ~@3 b4 ~@3, ~ f#4@11 ~ f#4@11",
  M: "~ d#5!3 ~ b4!3, d#4!2, d#5 ~@3 b4 ~@3, ~ f#4@11 ~ f#4@11",
  N: "~ e5!3 ~ d5!3, g4 g#4, e5 ~@3 d5 ~@3, ~ b4@11 ~ c5@11",
  O: "~ c#5!3 ~ b4 ~ b4, e4@2 d#4!2, c#5 ~@3 b4 ~ b4 ~, ~ g4@11 ~ g4@5 ~ f#4@5",
  P: "~ e5!3 ~ e5!3, g#4!2, e5 ~@3 e5 ~@3, ~ b4@11 ~ b4@11", Q: "~ d5!3 ~ d5!3, g#4!2, d5 ~@3 d5 ~@3, ~ b4@11 ~ b4@11",
  R: "~ c5!3 ~ c5!3, e4!2, c5 ~@3 c5 ~@3, ~ a4@11 ~ a4@11",
  S: "~ b4!3 [d#4,f#4,b4]@2 [f#4,b4,d#5]@2, d#4 ~, b4 ~@7, ~ f#4@11 ~@12", // B
  T: "~ c#5!3 ~ d5!3, g#4!2, c#5 ~@3 d5 ~@3, ~ b4@11 ~ b4@11", U: "~ [a4,d#5]@11 ~ [a4,d#5]@11, f#4!2",
  V: "~ [a4,c5]@11 ~ [a4,b4]@11, f#4!2", W: "[e4,g4,e5]",
})).s("gm_acoustic_guitar_nylon").gain(0.3)

stack(acoustic_guitar_nylon)