Strudelify

joy to the world

The Roches

KeyD majorTempo120 bpm
0:00/0:00
// joy to the world — The Roches
// 120 bpm, 2/2, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5880136; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 19 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.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · alto sax · "Altsaxophon"
const alto_sax = note("<A B C D E F G H I H J K L M N O P Q R>".pickRestart({
  A: "f#4@4 a4@3 g4", B: "f#4@3 e4", C: "d4 c#4", D: "d4@3 a4", E: "g4@3 g4", F: "e4@3 g4", G: "f#4@3 f#4", H: "f#4 g4",
  I: "f#4@3 e4 d4@2 f#4@2", J: "d4 c#4 d4!2", K: "d4@2 d4@2 d4@2 d4 e4", L: "f#4@6 e4 d4",
  M: "c#4@2 c#4@2 c#4@2 c#4 d4", N: "e4@3 c#4", O: "d4 f#4@2 g4", P: "f#4@3 e4 d4@2 e4@2", Q: "e4 d4!2 c#4", R: "f#4",
})).s("gm_alto_sax").gain(0.3)

// other · violin · "Violine"
const violin = note("<A B C D E F@2 G H G I F J F J K L M N>".pickRestart({
  A: "a3@4 d4@3 d4", B: "d4@3 g4", C: "a4@3 g4", D: "f#4@3 d4", E: "d4@3 d4", F: "a3@3 a3", G: "a3@2 b3 c#4",
  H: "d4@3 b3 a3@2 a3@2", I: "d4 a3@2 a3", J: "a3!4", K: "d4 a3@2 d4", L: "d4@3 b3", M: "a3 g3", N: "a3",
})).s("gm_violin").gain(0.3)

// other · cello · "Violoncello"
const cello = note("<A B C D E F G H G I J G K L M G N C O>".pickRestart({
  A: "d3@4 d3@3 d3", B: "d3@3 b2", C: "a2!2", D: "d3@3 f#3", E: "g3@3 e3", F: "a2@3 a2", G: "d3@3 d3", H: "d3!2",
  I: "d3@2 d3 e3", J: "f#3 e3 d3!2", K: "d3!4", L: "a3@3 a2", M: "a2!4", N: "d3@3 g2", O: "[a2,d3]",
})).s("gm_cello").gain(0.3)

stack(alto_sax, violin, cello)