Strudelify

Greensleeves Flute Trio

Audrey Boughton

KeyF majorTempo60 bpm
0:00/0:00
// Greensleeves Flute Trio — Audrey Boughton
// 60 bpm, 6/8, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5842098; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 42 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/3)

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

// other · flute · "Flute 2"
const flute = note("<~ A B C D E F G H I J K L M N O P Q R G S T R G U V R G S W R G X V ~@3 Y N Z AA AB>".pickRestart({
  A: "~@5 a4", B: "d5@4 e5@2 f5@3 g5 f5@2", C: "e5@2 c5 a4@2 ~", D: "a4@2 f4 ab4@2 ~", E: "db5 ~@2",
  F: "d5@4 c5@2 c5@3 g5 f5@2", G: "e5@4 c5@2 a4@3 b4 c5@2", H: "a4@3 g4 f4@2 e4@3 d4 e4@2", I: "f4@11 ~@9 d5@4",
  J: "f5@4 g5@2 a5@3 bb5 a5@2", K: "g5@4 e5@2 c5@3 d5 e5@2", L: "f5@2 d5!2 db5 d5", M: "e5@2 db5 a4@2 ~",
  N: "d4@2 e4 f4@2 ~", O: "c5 ~@2", P: "~@3 a4@2 ~", Q: "d4@11 ~ d4@8 ~@4", R: "a5@11 ~ a5@6 g5@2 f5@4",
  S: "a4@2 f4 ab4@2 ab4", T: "db5@2 ~ a4 db5 e5", U: "bb4@11 ~ e4@6 d4@2 e4@4", V: "f4@11 ~ d5@8 ~@4",
  W: "db5@11 ~ a4@11 ~", X: "bb4@4 ~@2 e4@3 d4 e4@2", Y: "~@2 a4 e4@2 ~", Z: "c5@11 ~ a4@11 ~", AA: "d4@11 ~ a4@11 ~",
  AB: "f4@11 ~ d5@11 ~",
})).s("gm_flute").gain(0.3)

// other · flute · "Alto Flute"
const flute_2 = note(`<
  A B C D E F C D E G C H I J K L M G N O P F Q O R S Q T P U Q O R V N W X Y K L M Z
>`.pickRestart({
  A: "d4 a4 d5 f5 d5 a4", B: "d4 a4 d5 f5@2 a4", C: "d4@2 e4 f4@2 ~", D: "c4@2 d4 e4@2 ~", E: "d4@2 d4 e4@2 ~",
  F: "a4@3 a3 db4 e4", G: "d4@3 d4@2 ~", H: "c4@2 ~ a4@2 ~", I: "d4@2 ~ e4@2 ~", J: "a4@2 ~@3 d4",
  K: "f4@4 g4@2 a4@3 bb4 a4@2", L: "g4@4 e4@2 c4@3 d4 e4@2", M: "f4@3 e4 d4@2 db4@3 b3 db4@2", N: "f4 a4", O: "c4 a4",
  P: "d4 e4", Q: "f4 g4", R: "g4 a4", S: "d4 d5", T: "c5 a4", U: "a4 ~@2", V: "d4 ~", W: "g4 c4", X: "f4 d4",
  Y: "e4@3 a3@2 d4", Z: "d4!2",
})).s("gm_flute").gain(0.3)

stack(flute, flute_2)