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: 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 AT ~ AU AV AW AX AU AV AW AX AY AZ BA BB BC@2 BD BE AE AF AG AH AI AJ G AT BF BG
>`.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",
  AT: "b5@15 ~", AU: "[e5,g5]@15 ~", AV: "[d5,f#5]@15 ~", AW: "[c5,e5]@15 ~", AX: "[b4,e5] [d#5,f#5]",
  AY: "g4 c5 e5 g5", AZ: "a4 d5 f#5 a5", BA: "g4 b4 f#4 b4", BB: "e4 g4 b4 e5", BC: "a4!2", BD: "~ e4 g4 b4",
  BE: "f#4 b4 d#5 f#5", BF: "[e5,b5]", BG: "[e5,b5]@15 ~",
})).s("gm_flute").gain(0.3)

stack(flute)