Strudelify

Turn Back, You Wanton Flyer

Thomas Campion

KeyF majorTempo150 bpm
0:00/0:00
// Turn Back, You Wanton Flyer — Thomas Campion
// 150 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "bass" named as a bass, played on electric bass finger (its cello patch is not one)
// note: Full arrangement: all 54 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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.

// chords · harpsichord · "treble"
const harpsichord = note(`<
  A B C D E F A B C D E F G H I@2 J K L M@3 N M@3 O A B C D E F A B C D E F G H I@2 J K L M@3 N M@3 O
>`.pickRestart({
  A: "~@2 bb3 c4 [d4,g4]@3 [d4,gb4], ~ d4 ~@2", B: "[d4,g4] [f4,a4] [d4,f4,bb4]@2",
  C: "[d4,f4,bb4]@2 [d4,f4,bb4]@2 [f4,a4]@3 [d4,f4,bb4]", D: "[f4,a4] [d4,g4] [d4,gb4]@2",
  E: "gb4@3 g4 a4@2 g4@2, d4 ~", F: "d4@2 ~ g4 [d4,gb4]@4, e4 ~, a4@3 ~@5, ~ db4 ~@2",
  G: "f4@3 g4 [f4,a4]@2 [d4,f4,bb4]@2, c4 ~", H: "[f4,a4]@3 [c4,f4,a4]",
  I: "[bb4@6 bb4@2 [d4,g4]@4 d4@6 d4 bb3 c4@4 d4@8, d4@2 ~ f4 ~@4]/2", J: "[d4,f4]@2 [d4,f4,bb4] [f4,a4]",
  K: "~@2 d4@2 d4@2 ~ g4, [f4,a4] e4, ~@4 a4@3 ~, ~@3 db4", L: "[d4,gb4]@4 [d4,f4]@2 c4 bb3, ~@3 g4",
  M: "[~ c4@3 [d4,f4,bb4]@2 g4 ~ [d4,gb4]@2 [d4,f4]@2 ~@11 c4, [f4,a4]@2 ~ eb4 ~@2 eb4@2 d4@2 d4@2, ~@7 a4@3 bb4@4 a4@4 g4@4 gb4@2]/3", // Bb D Dm F
  N: "[b3,d4,g4]@4 [d4,f4]@2 c4 bb3, ~@3 g4", O: "[b3,d4,g4] ~",
})).s("gm_harpsichord").gain(0.46)

// bass · electric bass finger · "bass"
const bass = note(`<
  A B C D E F A B C D E F G H I J K L M N O P Q N O P R A B C D E F A B C D E F G H I J K L M N O P Q N O P R
>`.pickRestart({
  A: "~@2 g3@2 g3@3 d3", B: "g3 f3 bb2@2", C: "bb2@4 f3@3 bb2", D: "f3 g3 d3@2", E: "d3@2 a2 bb2", F: "a2 [d3,a3]",
  G: "f3@2 f3 bb3", H: "f3!2", I: "g3@2 g3 e3", J: "[eb3,g3,bb3] [d3,a3]", K: "bb2@2 bb2 f3", L: "d3!2 a3@2",
  M: "d3@2 d3 e3", N: "f3@4 bb2@2 eb3 c3", O: "d3 bb2 c3@2", P: "d3@2 d3 d2", Q: "[g2,d3,g3]@2 d3 e3",
  R: "[g2,d3,g3] ~", // G5
})).s("gm_electric_bass_finger").gain(0.46)

stack(harpsichord, bass)

More by Thomas Campion