Strudelify

Mary Did You Know G major E minor

devaprasath

KeyG majorTempo120 bpm
0:00/0:00
// Mary Did You Know G major E minor — devaprasath
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5877990; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order, A@4 for four bars: edit a riff to change every repeat.

// other · flute
const flute = note(`<
  ~ A B C D E F G H I J K L M J K L N O P Q R S@2 T U V@2 W@2 V@2 X@3 Y Z AA AB AC AD@2 AE AF AG AH AI AJ G AK AL AM AN
  AO AP AQ AR AS@2 ~ AT AU AV AW AT AU AV AW AX AY AZ BA BB@2 BC BD AE AF AG AH AI AJ G AS BE@2
>`.pickRestart({
  A: "~ e6", B: "d6@15 ~", C: "~ b5", D: "a5@15 ~", E: "~ b4 g5 b5", F: "a5 f#5 d5 b4", G: "e5 f#5 g5 a5", H: "b4 e5",
  I: "d#5 ~", J: "e4 b4 e5 g5 ~@2 e5 ~", K: "d4 a4 d5 f#5 ~@2 d5 ~", L: "c4 g4 c5 e5 ~@2 c5 ~",
  M: "d#4 f#4 b4 d#5 ~@2 b4 ~", N: "f#4 b4 e5 d#5 ~@2 b4 ~", O: "g4 c5 e5 g5 ~@2 c6 ~", P: "a4 d5 f#5 a5 ~@2 f#5 ~",
  Q: "g4 b4 d5 ~ f#4 b4 d5 ~", R: "e4 b4 e5 g5 ~ e5 ~@2", S: "a4 c5 e5 a5 ~@2 e5 ~", T: "b4 d#5 f#5 b5 ~@2 f#5 ~",
  U: "b4 d#5 f#5 ~ e5 f#5 g5 a5", V: "[b5@4 b5 e5 b5 a5@3 g5 f#5@4 d5]/2",
  W: "[e5 f#5@2 g5@2 a5@2 g5@2 f#5@3 e5 f#5 g5 a5]/2", X: "[e5 f#5@2 g5@2 a5@2 c6@2 b5@4 b5 e6 e6@5 e6 f#6 g6 f#6]/3",
  Y: "f#6@2 e6 d6@4 c6", Z: "b5 b5@2 b5@2 d6@2 e6", AA: "e6@11 ~ b5@2 b5@2", AB: "c6@2 b5 a5@3 g5 a5",
  AC: "a5@2 b5@11 ~ c6@2", AD: "[b5@4 c6@2 b5@6 c6@2 b5@9 ~@9]/2", AE: "g5@4 e5 f#5 g5 b5", AF: "a5@4 d6 c6 b5 d6",
  AG: "c6@2 g5 e5", AH: "f#5@15 ~", AI: "g5 f#5 e5 d5 b5@4", AJ: "a5 g5 f#5 e5 f#5@4", AK: "b5 c#6 d#6 f#6",
  AL: "c5 g4 c5 g4 c5 g4 c5 g4", AM: "d5 a4 d5 a4 d5 a4 d5 a4", AN: "e5 b4 e5 b4 e5 b4 e5 b4",
  AO: "g4@2 b4@2 g5 f#5 e5 d5", AP: "e5@2 e5 e5@4 e5", AQ: "f#5@2 g5 f#5@4 f#5", AR: "g5@3 a5 b5@2 c6 b5",
  AS: "b5@15 ~", AT: "[e5,g5]@15 ~", AU: "[d5,f#5]@15 ~", AV: "[c5,e5]@15 ~", AW: "[b4,e5] [d#5,f#5]",
  AX: "g4 c5 e5 g5", AY: "a4 d5 f#5 a5", AZ: "g4 b4 f#4 b4", BA: "e4 g4 b4 e5", BB: "a4!2", BC: "~ e4 g4 b4",
  BD: "f#4 b4 d#5 f#5", BE: "[e5,b5]",
})).s("gm_flute").gain(0.3)

stack(flute)