Strudelify

Springtime Fair

Thomas Powles

KeyG majorTempo120 bpm
0:00/0:00
// Springtime Fair — Thomas Powles
// 120 bpm, 6/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/2561836; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 32 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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 · "Lute"
const acoustic_guitar_nylon = note("<A B C D E F G ~@2 H I ~ J K L M N O P Q R S T U ~ H I ~ J K L M>".pickRestart({
  A: "~ [d4,g4]@15, g3", B: "~ [c4,c5]@15, g3", C: "~@3 g4@2 a4@3 f#4@8, d3, a4@3 ~@13, ~ d4@15",
  D: "~@3 f#4@2 e4@3 d4@8, g3, g4@3 ~@13, ~ d4@7 ~@8", E: "[d4,e4]@4 ~ e4@3 ~@3 e4@2 f#4@3, g3, ~ d4 d4@2",
  F: "~ e4@3 f#4 ~@3 d4@3 f#4@2 g4@3, e3, g4@4 ~ e4@11, ~ c4@15",
  G: "~@3 b3@2 a3@3 ~@3 g3@3 ~@2, c3 d3, c4@3 ~@13, ~ g3@7 ~ [a3,d4]@7", H: "g4 g4@12 g4@3, c3, ~ c4@15",
  I: "~@8 a4@3 g4@2 a4@3, d3, a4 ~, ~ d4@15", J: "~@11 f#4@2 e4@3, g3, g4@11 ~@5, ~ d4@15",
  K: "e4 e4@12 e4@3, e3, ~ c4@15", L: "c4@3 b3@2 c4@3 ~@5 d4@3, [c3,g3] d3, ~@8 d4@5 ~@3, ~@9 a3@7",
  M: "~@5 f#4@3 ~@3 g4@5, [d4,g4]@3 d4@6 [g3,b3]@7, ~ [g2,g3]@7 g2@8, ~@5 d4@3", // G5 G
  N: "b4@3 a4@2 ~@3 e4@3 f#4@2 g4@3, [g3,d4], g4@5 g4@8 ~@3", // G5
  O: "~@3 [b3,d5]@2 [a3,c5]@3 g4@3 [d4,f#4]@2 e4@3, g3, c5@3 ~@13, ~ c4@7 c4@8", // Bm Am D
  P: "~@3 c5@2 b4@3 a4@3 g4@2 f#4@3, d3, b4@3 ~@13, ~ d4@15",
  Q: "~@3 f#4@2 e4@3 ~@3 e4@2 f#4@3, g3, g4@3 ~@13, ~ d4@7 d4@8",
  R: "~@3 g4@2 b4@3 e4@3 f#4@2 g4@3, g3, b4@3 ~@13, ~ d4@15",
  S: "~@3 g4@2 f#4@3 g4@3 f#4@2 e4@3, e3, a4@3 ~@13, ~ c4@15, ~ e4@12 ~@3",
  T: "~@3 [b3,b4]@2 [a3,a4]@3 ~@3 [g3,g4]@2 [f#3,f#4]@3, c3 d3, [c4,c5]@3 ~@5 a4@3 ~@5, ~ g3@7 ~ [a3,d4]@7", // B A G F# C D5
  U: "~@5 [b3,f#4]@3 [g3,b3,d4,g4]@8, [d4,g4]@3 d4@5 ~@8, ~ g2@15, ~ g3@7 ~@8", // B5 G G5
})).s("gm_acoustic_guitar_nylon").gain(0.36)

// chords · acoustic guitar nylon · "Lute" · soft notes
const acoustic_guitar_nylon_2 = note("<~@6 A B C ~@2 D ~@12 C ~@2 D ~@4>".pickRestart({
  A: "~@13 f#3@3", B: "~ [g3,d4]@15, g2", C: "b3@13 b3@3, [b2,g3,d4]", D: "~@13 a4@3, [g3,d4,b4]",
})).s("gm_acoustic_guitar_nylon").gain(0.21)

stack(acoustic_guitar_nylon, acoustic_guitar_nylon_2)