Strudelify

have yourself a merry little christmas

Judy Garland

KeyC majorTempo70 bpm
0:00/0:00
// have yourself a merry little christmas — Judy Garland
// 70 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5872846; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 36 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(70/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · violin · "Violin I"
const violin = note("<A B A C A D E ~ A B A C A F G H I J K L M N O C P Q P R P S T H U V W@2>".pickRestart({
  A: "c4 e4 g4 c5", B: "g4 f4 e4 d4 c4@2 d4@2", C: "g4", D: "d5 c5 b4 a4 g4@2 f4@2", E: "e4",
  F: "d5 c5 b4 a4 g#4@2 b4@2", G: "c5", H: "f4 e4", I: "a4@2 a4@2 g#4@2 b4 g#4", J: "b4 a4 g4@2 f#4@2 ~@2",
  K: "c5!2 c5@2 c5@2 c5!2", L: "~@4 g3 c4 g4@2 g4@2 g3@2 c4@4", M: "~ e4 a4 e4 d#4 f#4 d#4@2", N: "e4 f#4", O: "b4 g4",
  P: "c5 e5 g5 c6", Q: "g5 f5 e5 d5 c5@2 d5@2", R: "g5", S: "f6 e6 d6 c6 b5@2 d6@2", T: "e6", U: "e5 f4 a4 c5",
  V: "e5 d5 c5 b4 a4@2 b4@2", W: "c5/2",
})).s("gm_violin").gain(0.3)

// other · cello · "Violoncello"
const cello = note("<A B C D E F G H A B C D E I J K L M N D O P Q D A B C R E S L K T U V K>".pickRestart({
  A: "c4@3 b3 a3@4", B: "a3 g#3", C: "g3@3 b3 a3@4", D: "g3", E: "e3@3 g3 c4@4", F: "d3 g3", G: "b3 e4", H: "a3@2 a3!2",
  I: "d3@4 e3 g#3 b3@2", J: "~@2 c3 e3!2 a3 c4@2", K: "c4", L: "e4", M: "d4!2", N: "f3 a3", O: "c4 f#3", P: "e3 ~",
  Q: "g3 c4", R: "g3@4 b3 c4 d4@2", S: "d3 e3", T: "f3 c4", U: "g3!2", V: "a#3 c4",
})).s("gm_cello").gain(0.3)

stack(violin, cello)