Strudelify

My Favorite Things - Flute Quartet

Maxwell Sithiphong

KeyG majorTempo180 bpm
0:00/0:00
// My Favorite Things - Flute Quartet — Maxwell Sithiphong
// 180 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5636830; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 40 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(180/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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.

// other · flute
const flute = note("<A@6 ~@4 B C D E F G H I J K L I M N@2 O N P Q R S T U V H I J W X I>".pickRestart({
  A: "[~@14 b4@20 a4@20 ~ g4@20 a4@20 ~]/6", B: "c5@5 g5@3 ~@3 g5@3 ~@2",
  C: "d5@2 e5@2 ~ c5@3 ~@3 c5@3 ~@2, ~@2 d5 ~@5", D: "g4@5 c5@3 ~@3 c5@3 ~@2", E: "d5@2 e5@2 ~ c5@10 ~, ~@2 d5 ~@5",
  F: "c5@5 g5@5 ~ e5@5", G: "e5@5 d5@3 ~@3 b4@3 ~@2", H: "b4@5 f#5@5 ~ e5@3 ~@2", I: "a4@15 ~", J: "g4@5 a4@5 ~ b4@5",
  K: "c5@2 b4@2 ~ d5@5 ~ e5@5, ~@2 c5 ~@5", L: "e5@5 g5@5 ~@2 g5@2 e5@2, ~@11 e5@2 ~@3", M: "~@5 b4@3 ~@3 e5@3 ~@2",
  N: "~@5 b5@3 ~@3 e6@3 ~@2", O: "b5 ~@2 e6@2 b5@3 ~@3 g#5@3 ~@2", P: "b5 ~@2 e6@2 b5@3 ~@3 e5@3 ~@2",
  Q: "e5 ~@2 e5 ~ b5 ~@2 b5 ~@2 b5 ~ b5 ~@2", R: "f#5 ~@2 f#5 ~ e5 ~@2 e5 ~@2 e5 ~ e5 ~@2",
  S: "b4 ~@2 b4 ~ e5 ~@2 e5 ~@2 e5 ~ e5 ~@2", T: "f#5 ~@2 f#5 ~ e5@3 ~@8", U: "c5@5 g5@5 ~ f#5@5",
  V: "c5@5 d5@3 ~@3 b4@3 ~@2", W: "c5@5 d5@5 ~ e5@5", X: "e5@5 g5@5 ~ e5@5",
})).s("gm_flute").gain(0.4)

// other · flute
const flute_2 = note("<A@3 B@3 ~@8 C D E F G H I J K L@2 M L M N O P Q R S E F T U V W>".pickRestart({
  A: "[~@14 f#5@20 f#5@7 e5@7]/3", B: "[e5@7 d5@20 d5@7 c#5@13 ~]/3", C: "c5@15 ~", D: "a4@5 b4@3 ~@3 a4@3 ~@2",
  E: "d4@5 a4@5 ~ g4@3 ~@2", F: "e4@15 ~", G: "b4@5 c5@5 ~ d5@5", H: "e5@2 d5@2 ~ f#5@5 ~ g5@5, ~@2 e5 ~@5",
  I: "a5@5 b5@5 ~@2 b5@2 a5@2, ~@11 a5@2 ~@3", J: "d#5@15 ~", K: "~@5 g#4@3 ~@3 b4@3 ~@2", L: "~@5 e5@3 ~@3 g#5@3 ~@2",
  M: "e5 ~@2 g#5 ~ e5@3 ~@3 b4@3 ~@2", N: "c5 ~@2 c5 ~ b5 ~@2 b5 ~@2 b5 ~ b5 ~@2",
  O: "a4 ~@2 a4 ~ a4 ~@2 a4 ~@2 a4 ~ a4 ~@2", P: "g#4 ~@2 g#4 ~ a4 ~@2 a4 ~@2 a4 ~ a4 ~@2", Q: "a4 ~@2 a4 ~ a4@3 ~@8",
  R: "e4@5 b4@5 ~ a4@5", S: "e4@5 f#4@3 ~@3 d4@3 ~@2", T: "e4@5 f4@5 ~ g4@5", U: "g4@5 a4@5 ~ c5@5",
  V: "c5@5 d5@5 ~ c5@5", W: "f5@15 ~",
})).s("gm_flute").gain(0.4)

// other · flute
const flute_3 = note("<A@6 ~@8 B C D E ~@4 F G H I H J K L M N B C D E O P Q R>".pickRestart({
  A: "[~@14 g4@20 a4@20 ~ e4@20 f#4@20 ~]/6", B: "a4@5 g#4@5 ~ g4@5", C: "f#4@5 b4@3 ~@3 f#4@3 ~@2", D: "f#4@10 ~ e4@5",
  E: "g4@15 ~", F: "~@5 e4@3 ~@3 g#4@3 ~@2", G: "~@5 g#4@3 ~@3 b4@3 ~@2", H: "~@5 b4@3 ~@3 e5@3 ~@2",
  I: "b4 ~@2 e5@2 b4@3 ~@3 g#4@3 ~@2", J: "b4 ~@2 e5@2 b4@3 ~@3 e4@3 ~@2", K: "a4 ~@2 a4 ~ e5 ~@2 e5 ~@2 c#5 ~ c#5 ~@2",
  L: "f#4 ~@2 f#4 ~ e4 ~@2 e4 ~@2 e4 ~ e4 ~@2", M: "b4 ~@2 b4 ~ e4 ~@2 e4 ~@2 e4 ~ e4 ~@2", N: "f#4 ~@2 f#4 ~ c5@3 ~@8",
  O: "~@5 d4@5 ~ e4@5", P: "b4@5 d5@5 ~ c5@5", Q: "c5@5 b4@5 ~ a4@5", R: "d#4@15 ~",
})).s("gm_flute").gain(0.4)

stack(flute, flute_2, flute_3)

More by Maxwell Sithiphong